rfc-6035

Session Initiation Protocol Event Package for Voice Quality Reporting

A. Pendleton, A. Clark, A. Johnston, H. Sinnreich
date2010-11 streamIETF arearai wgsipping statusPROPOSED STANDARD pages41 canonicalhttps://www.rfc-editor.org/rfc/rfc6035 doi10.17487/RFC6035 errataview
This document defines a Session Initiation Protocol (SIP) event package that enables the collection and reporting of metrics that measure the quality for Voice over Internet Protocol (VoIP) sessions. Voice call quality information derived from RTP Control Protocol Extended Reports (RTCP-XR) and call information from SIP is conveyed from a User Agent (UA) in a session, known as a reporter, to a third party, known as a collector. A registration for the application/ vq-rtcpxr media type is also included. [STANDARDS-TRACK]

Extracted elements (29)

design-rationale §1.1

Only point-to-point (unicast) RTP topology is currently supported because accurate quality reporting for multipoint conferences and multi-hop translator/mixer paths is an active research area not yet suitable for standardization. Centrally mixed conferences can be reported as individual point-to-point legs.

sip, voip, rtp

design-rationale §3.2

SUBSCRIBE/NOTIFY is preferred over PUBLISH because PUBLISH requires the REPORTER to know the COLLECTOR address in advance, whereas SUBSCRIBE allows the COLLECTOR to establish the relationship, which better suits managed network deployments and avoids misconfiguration risks on the public Internet.

sip, voip

design-rationale §4.6

The event package is intentionally extensible and parameter-optional: implementers choose which metrics are most appropriate. There are no 'invalid' or 'not applicable' values; instead, unavailable parameters are simply omitted from the report.

sip, voip

interoperability-note §4.6.1

RERL (Residual Echo Return Loss) relates to echo in the transmitted packet stream affecting the remote user, not the local user. To support diagnosis of echo experienced by the local user, the RERL value received via RTCP XR SHOULD be reported in the RemoteMetrics set.

sip, voip, rtp

interoperability-note §4.6.2.1

RFC 3611 encodes loss/discard rates as 8-bit fixed-point numbers (value = (losses/expected) * 256). To map these to vq-rtcpxr percentage parameters, divide the RFC 3611 value by 256 and take the integer part.

sip, voip, rtp

normative-requirement §3.4 MUST

An overloaded proxy or COLLECTOR MUST send a 503 Service Unavailable (or other 5xx) with an appropriate Retry-After time. REPORTERs MUST act on these responses and respect the Retry-After interval.

sip, voip

normative-requirement §4.6.1 MUST

For codecs with variable sample rates, the lowest and highest sample rates MUST be reported in the SR (SampleRate) field, separated by semicolons (e.g., SR=8000;16000).

sip, voip, rtp

normative-requirement §4.6.1 MUST

For SignalLevel (SL) and NoiseLevel (NL), where the value is negative the sign MUST be explicitly included in the encoded field. Absence of a sign indicates a positive value.

sip, voip

normative-requirement §4.6.2.11.3 MUST

If RFC 3611 reports an R factor of 127 (indicating unavailability), the ConversationalQualityR, ExternalR-In, or ExternalR-Out parameter MUST (or SHALL) be omitted from the vq-rtcpxr event.

sip, voip, rtp

normative-requirement §3.2 RECOMMENDED

It is RECOMMENDED that the REPORTER send an OPTIONS message to the COLLECTOR to ensure support of the PUBLISH method before attempting to use it.

sip, voip

normative-requirement §4.6.2.11.9 MUST

MOS-LQ and MOS-CQ values from RFC 3611 MUST be converted by dividing the reported value by 10 if it is ≤50. If the RFC 3611 reported value is 127 (unavailable), the MOS-xQ parameter MUST be omitted from the vq-rtcpxr event.

sip, voip, rtp

normative-requirement §4.5 MUST

Session, Interval, and Alert reports MUST populate metrics with values measured over the interval explicitly defined by the 'start' and 'stop' timestamps.

sip, voip, rtp

normative-requirement §3.1 SHALL

The COLLECTOR SHALL send a SUBSCRIBE to the REPORTER to establish the reporting relationship. The REPORTER SHOULD send voice quality metric reports using the NOTIFY method.

sip, voip

normative-requirement §4.5 MUST NOT

The Interval report SHOULD be used for periodic reporting and MUST NOT be used for reporting of the complete media session. Report intervals SHOULD be non-overlapping time windows.

sip, voip

normative-requirement §4.6.1 MUST

The LocalAddr field in the LocalMetrics report MUST be the RemoteAddr in the RemoteMetrics report, establishing endpoint address symmetry across perspectives.

sip, voip, rtp

normative-requirement §4.6.2.3.2 SHOULD

The PayloadDesc (PD) parameter SHOULD use the IANA registry for media-type names (Audio Media Types) where it unambiguously defines the codec. IANA-registered payload types SHOULD be used for the PT field.

sip, voip, registry

normative-requirement §3.2 SHOULD NOT

The PUBLISH method MAY be supported for backward compatibility, but SHOULD NOT be used in general on the public Internet. The REPORTER MUST be configured with the address of the COLLECTOR before using PUBLISH.

sip, voip

normative-requirement §3.1 MUST NOT

The REPORTER MUST NOT send any vq-rtcpxr events if a COLLECTOR address has not been configured.

sip, voip

normative-requirement §4.5 MUST

The Session report MUST be used for cumulative metric reporting; timestamps MUST span from media session start to report generation time. The Session report MUST NOT be used for reporting at arbitrary points in time.

sip, voip, rtp

normative-requirement §4.6.1 SHOULD

Timestamps SHOULD reflect, as closely as possible, the actual time during which the media session was running to enable correlation to network events and billing records. Time zones other than 'Z' (UTC) are not allowed.

sip, voip

protocol-element §4.6.1

Metrics block contains: Timestamps (START/STOP in RFC 3339 UTC), SessionDescription (codec info: PT, PD, SR, FD, FO, FPP, PPS, FMTP, PLC, SSUP), JitterBuffer (JBA, JBR, JBN, JBM, JBX), PacketLoss (NLR, JDR), BurstGapLoss (BLD, BD, GLD, GD, GMIN), Delay (RTD, ESD, OWD, SOWD, IAJ, MAJ), Signal (SL, NL, RERL), and QualityEstimates (RLQ, RCQ, MOS-LQ, MOS-CQ).

sip, voip, rtp

protocol-element §4.4

The subscribe duration for the vq-rtcpxr event package defaults to one hour. Subscriptions may range from minutes to weeks, with hours or days being RECOMMENDED as more typical.

sip, voip

protocol-element §3

The vq-rtcpxr SIP event package enables collection and reporting of VoIP quality metrics. A REPORTER (SIP UA in the session) sends voice quality data derived from RTCP-XR and SIP to a COLLECTOR (third-party entity). The package supports both SUBSCRIBE/NOTIFY and PUBLISH methods.

sip, rtp, voip, realtime

protocol-element §4.5

Three NOTIFY body types are defined: SessionReport (sent at session end or codec change), IntervalReport (periodic/interval reporting), and AlertReport (triggered when voice quality degrades below a threshold). All report types include SessionInfo, LocalMetrics, and optionally RemoteMetrics.

sip, voip, rtp

registry §5.1

Registers a new SIP Event Package with package name 'vq-rtcpxr', type 'package', per RFC 3265.

sip, voip, registry

registry §5.2

Registers MIME type application/vq-rtcpxr for use in NOTIFY/PUBLISH bodies carrying VoIP quality reports. Encoding is 7-bit text; no required or optional parameters.

sip, voip, registry

security-consideration §6

RTCP quality reports contain sensitive information about session nature and duration. Any third party (COLLECTOR) wishing to receive this information SHOULD be properly authenticated by the SIP UA using standard SIP mechanisms. Event content MAY be encrypted for confidentiality using mechanisms from RFC 3261.

sip, voip, security, privacy

wire-format §4.6.1

VQAlertReport begins with 'VQAlertReport: Type=<MetricType> Severity=<Warning|Critical|Clear> Dir=<local|remote>' followed by SessionInfo, LocalMetrics, optionally RemoteMetrics, and DialogID. MetricType encodes the threshold-violating metric (e.g., RLQ, NLR, RTD).

sip, voip

wire-format §4.6.1

VQSessionReport and VQIntervalReport are CRLF-delimited text blocks beginning with the report type keyword (optionally followed by ':CallTerm'), then SessionInfo fields (CallID, LocalID, RemoteID, OrigID, LocalAddr, RemoteAddr, LocalGroupID, RemoteGroupID, and optional MAC addresses), followed by LocalMetrics and optionally RemoteMetrics and DialogID.

sip, voip, rtp