Session Initiation Protocol Event Package for Voice Quality Reporting
Extracted elements (29)
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
Session, Interval, and Alert reports MUST populate metrics with values measured over the interval explicitly defined by the 'start' and 'stop' timestamps.
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.
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.
The LocalAddr field in the LocalMetrics report MUST be the RemoteAddr in the RemoteMetrics report, establishing endpoint address symmetry across perspectives.
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.
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.
The REPORTER MUST NOT send any vq-rtcpxr events if a COLLECTOR address has not been configured.
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.
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.
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).
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.
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.
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.
Registers a new SIP Event Package with package name 'vq-rtcpxr', type 'package', per RFC 3265.
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.
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.
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).
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.