One document matched: draft-ietf-sipping-rtcp-summary-09.xml


<?xml version="1.0"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc compact="yes"?>
<?rfc toc="yes"?>
<?rfc symrefs="no"?>

<rfc ipr="pre5378Trust200902" docName="draft-ietf-sipping-rtcp-summary-09" 
category="std">

<front>

<title abbrev="SIP Package for Voice Quality Reporting">Session Initiation Protocol Event Package for Voice Quality Reporting</title>

<author initials="A." surname="Pendleton" fullname="Amy Pendleton">
<organization>Telchemy Incorporated</organization>
<address>
<email> 
aspen@telchemy.com</email>
</address>
</author>

<author initials="A." surname="Clark" fullname="Alan Clark">
<organization>Telchemy Incorporated</organization>
<address>
<email> 
alan.d.clark@telchemy.com</email>
</address>
</author>

<author initials="A." surname="Johnston" fullname="Alan Johnston">
<organization>Avaya</organization>
 <address>
  <postal>
   <city>St. Louis</city><region>MO</region><code>63124</code> 
  </postal>
  <email>alan.b.johnston@gmail.com</email>
  </address>
</author>

<author initials="H." surname="Sinnreich" fullname="Henry Sinnreich">
<organization>Unaffiliated</organization>
<address>
<email>henry.sinnreich@gmail.com</email>
</address>
</author>

<date month="March" year="2010"/>

<workgroup>SIPPING WG</workgroup>

<abstract>
 <t>
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-rtcp-xr MIME type is also included.
</t>
</abstract>

</front>
<middle>

<section title="Introduction">
 <t>  
Real time communications over IP networks use SIP for signaling with RTP/RTCP for media transport and reporting respectively. These protocols are very flexible and can support an extremely wide spectrum of usage scenarios. For this reason, extensions to these protocols must be specified in the context of a specific usage scenario. In this memo, extensions to SIP are proposed to support the reporting of RTP Control Protocol Extended Reports [4] metrics.
</t>
<section title="Applicability Statement">
<t>
RTP is utilized in many different architectures and topologies. RFC 5117 [13] lists and describes the following topologies: point to point, point to multipoint using multicast, point to multipoint using the RFC 3550 translator, point to multipoint using the RFC 3550 mixer model, point to multipoint using video switching MCUs, point to multipoint using RTCP-terminating MCU, and non-symmetric mixer/translators. As the abstract to this document points out, this specification is for reporting quality of Voice over Internet Protocol(VoIP) sessions. As such, only the first topology, point to point, is currently supported by this specification. This reflects both current VoIP deployments which are predominantly point to point using unicast, and also the state of research in the area of quality.
</t><t>
How to accurately report the quality of a multipart conference or a session involving multiple hops through translators and mixers is currently an area of research in the industry. However, this mechanism can easily be used for centrally mixed conference calls, in which each leg of the conferences is just a point to point call.  This mechanism could be extended to cover additional RTP topologies in the future once these topics progress out of the realm of research and into actual Internet deployments.

</t>
</section>
<section title="Use of the Mechanism">
<t>
RTCP reports are usually sent to other participating endpoints in a    session which can make collection of performance information by administration or management systems too complex. In the usage   scenarios addressed in this memo, the data contained in RTCP XR VoIP    metrics reports (RFC3611 [4]) are forwarded to a central collection    server systems using SIP. 
</t><t>
Applications residing in the server or elsewhere can aid in network    management to alleviate bandwidth constraints and also to support    customer service by identifying and acknowledging calls of poor    quality. Specifying such applications are however beyond the scope    of this paper. 
</t><t>
There is a large portfolio of quality parameters that can be    associated with VoIP, but only a minimal necessary number of    parameters are included on the RTCP-XR reports: 
</t><t>
1. The codec type, as resulting from the SDP offer-answer           negotiation in SIP, 
</t><t>
2. The burst gap loss density and max gap duration, since voice           cut-outs are the most annoying quality impairment in VoIP, 
</t><t>
3. Round trip delay because it is critical to conversational quality, 

</t><t>

4. Conversational quality as a catch-all for other voice quality           impairments, such as random distributed packet loss, jitter,           annoying silent suppression effects, etc.
</t><t>

  In specific usage scenarios where other parameters are required,    designers can include other parameters beyond the scope of this    paper.
</t><t>

RTCP reports are best effort only, and though very useful have a    number of limitations as discussed in [3]. This must be considered    when using RTCP reports in managed networks.
</t><t>

This document defines a new SIP event package, vq-rtcpxr, and a new    MIME type, application/vq-rtcpxr, that enable the collection and    reporting of metrics that measure quality for RTP [3] sessions. The    definitions of the metrics used in the event package are based on    RTCP Extended Reports [4] and RTCP [3]; a mapping between the SIP    event parameters and the parameters within the aforementioned RFC's    is defined within this document in section 4.6.2.
</t><t>

Monitoring of voice quality is believed to be the highest priority    for usage of this mechanism and as such, the metrics in the event    package are largely tailored for voice quality measurements. The    event package is designed to be extensible. However the negotiation    of such extensions is not defined in this document.
</t><t>

The event package supports reporting both the voice quality metrics    for both inbound and outbound directions.  Voice quality metrics for    the inbound direction can generally be computed locally by the    reporting endpoint however voice quality metrics for the outbound    direction are computed by the remote endpoint and sent to the    reporting endpoint using the RTCP Extended Reports [4].
</t><t>

Configuration of usage of the event package is not covered in this    document. It is the recommendation of this document that the SIP    configuration framework [8] be used. The authors have defined a    configuration dataset that would facilitate this support in section    5.8.
</t><t>
The event package SHOULD be used with the SUBSCRIBE/NOTIFY method   however it MAY be also used with the PUBLISH method for backward    compatibility with some existing implementations. Message flow    examples for both methods are provided in this document.

</t>
</section>
</section>
<section title="Terminology">
<t>
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in BCP 14, RFC 2119 <xref 
target="RFC2119"/>.
</t>
</section>


 <section title="SIP Events for VoIP Quality Reporting">
  <t> 
This document defines a SIP events package [5] for Voice over IP    performance reporting. A SIP UA can send these events to an entity    which can make the information available to other applications. For    purposes of illustration, the entities involved in SIP vq-rtcpxr    event reporting will be referred to as follows:
</t><t>

o REPORTER is an entity involved in the measurement and reporting of media quality i.e. the SIP UA involved in a media session.
</t><t>
o COLLECTOR is an entity that receives SIP vq-rtcpxr events. A COLLECTOR may be a proxy server or another entity that is capable of supporting SIP vq-rtcpxr events.
</t>
<section title="SUBSCRIBE NOTIFY Method">
<t>
The COLLECTOR SHALL send a SUBSCRIBE to the REPORTER to explicitly establish the relationship. The REPORTER SHOULD send the voice quality metric reports using the NOTIFY method. The REPORTER MUST NOT send any vq-rtcpxr events if a COLLECTOR address has not been configured.
The REPORTER populates the Request-URI according to the rules for an in-dialog request. The COLLECTOR MAY send a SUBSCRIBE to a SIP Proxy acting on behalf of the reporting SIP UA's.

</t>
</section>
<section title="PUBLISH Method">
<t>
A SIP UA that supports this specification MAY also send the service quality metric reports using the PUBLISH method, however this    approach SHOULD NOT be used in unmanaged Internet services. The PUBLISH method MAY be supported for backward compatibility with    existing implementations.
</t><t>

The REPORTER MAY therefore populate the Request-URI of the PUBLISH    method with the address of the COLLECTOR. To ensure security of SIP    proxies and the COLLECTOR, the REPORTER MUST be configured with the    address of the COLLECTOR, preferably using the SIP UA configuration    framework [8], as described in section 5.8.
</t><t>

It is recommended that the REPORTER send an OPTIONS message to the    COLLECTOR to ensure support of the PUBLISH message.

</t>
</section>

<section title="Multi-Party and Multi-Segment Calls">
<t>
A voice quality metric report may be sent for each session    terminating at the REPORTER and may contain multiple report bodies.    For a multi-party call the report MAY contain report bodies for the    session between the reporting endpoint and each remote endpoint for    which there was an RTP session during the call.
</t><t>

Multi-party services such as call hold and call transfer can result in the user participating in a series of concatenated sessions, potentially with different choices of codec or sample rate, although these may be perceived by the user as a single call.  A REPORTER MAY send a voice quality metric report at the end of each session or MAY send a single voice quality metric report containing a report body for each segment of the call.

</t>
</section>

<section title="Overload Avoidance">
<t>
Users of this extension should ensure they implement general SIP  mechanisms for avoiding overload.  For instance, an overloaded proxy  or COLLECTOR MUST send a 503 Service Unavailable or other 5xx esponse  with an appropriate Retry-After time specified. REPORTERs MUST act on  these responses and respect the retry after time interval. In  addition, future SIP extensions to better handle overload as covered in [14] should be followed as they are standardized.
</t><t>

To avoid overload of SIP Proxies or COLLECTORS it is important to do  capacity planning and to minimize the number of reports that are sent.
</t><t>

 Approaches to avoiding overload include:
</t><t>
 
a. Send only one report at the end of each call  
</t><t>
b. Use interval reports only on "problem" calls that are being     closely monitored
</t><t>

c. Limit the number of alerts that can be sent to a maximum of one per call.

</t>
</section>

</section>

<section title="Event Package Formal Definition">
<section title="Event Package Name">
<t>
This document defines a SIP Event Package as defined in RFC 3265 [5].
</t>
</section>

<section title="Event Package Parameters">
<t>
No event package parameters are defined.
</t>
</section>

<section title="SUBSCRIBE Bodies">
<t>
SUBSCRIBE bodies are described by this specification.
</t>
</section>

<section title="Subscribe Duration">
<t>
Subscriptions to this event package MAY range from minutes to weeks.    Subscriptions in hours or days are more typical and are RECOMMENDED.    The default subscription duration for this event package is one hour.

</t>
</section>

<section title="NOTIFY Bodies">
<t>
There are three notify bodies: a Session report, an Interval session    report, and an Alert report.
</t><t>
The Session report SHOULD be used for reporting when a voice media   session terminates or when a media change occurs, such as a codec    change or a session forks and MUST NOT be used for reporting at    arbitrary points in time. This report MUST be used for cumulative    metric reporting and the report timestamps MUST be from the start    of a media session to the time at which the report is generated.
</t><t>

The Interval report SHOULD be used for periodic or interval    reporting and MUST NOT be used for reporting for the complete    media session. This report is intended to capture short duration    metric reporting and the report intervals SHOULD be non-overlapping time windows.  
</t><t>

The Alert report MAY be used when voice quality degrades during a    session.  The time window to which an Alert report relates MAY be a short time interval or from the start of the call to the point the alert is generated; this time window SHOULD be selected to provide the most useful information to support problem diagnosis.
</t><t>

Session, Interval and Alert reports MUST populate the metrics with    values that are measured over the interval explicitly defined by    the "start" and "stop" timestamps.
</t><t>

Voice quality summary reports reference only one codec (payload type). This payload type SHOULD be the main voice payload, not comfort noise or
telephone events payloads.  For applications that consistently and
rapidly switch codecs, the most used codec should be reported.  All
values in the report, such as IP addresses, SSRC, etc represent those
values as received by the REPORTER.  In some scenarios, these may not be
the same on either end of the session - the COLLECTOR will need logic to
be able to put these sessions together.  The values of parameters such
as sample rate, frame duration, frame octets, packets per second, round
trip delay, etc depend on the type of report they are present in.  If
present in a Session or an Interval report, they represent average
values over the session or interval.  If present in an Alert report,
they represent instantaneous values.
</t><t>
The REPORTER always shares local quality reporting information and
should, if possible, share remote quality reporting information.  This
remote quality could be available from received RTCP-XR reports or other
sources.  Reporting this is useful in cases where the other end might
support RTCP-XR but not this voice quality reporting.
</t><t>
This specification defines a new MIME type application/vq-rtcpxr which is a text encoding of the RTCP and RTCP-XR statistics with some additional metrics and correlation information.

</t>
</section>

<section title="Voice Quality Event and Semantics">
<t>
This section describes the syntax extensions required for event    publication in SIP. The formal syntax definitions described in this    section are expressed in the Augmented BNF [6] format used in SIP    [2], and contains references to elements defined therein.
</t><t>
Additionally, the definition of the timestamp format is provided in    [7]. Note that most of the parameters are optional. In practice, most    implementations will send a subset of the parameters. It is not the    intention of this document to define what parameters may or may not    be useful for monitoring the quality of a voice session, but to    enable reporting of voice quality.  As such, the syntax allows the    implementer to choose which metrics are most appropriate for their    solution.  As there are no "invalid", "unknown", or "not applicable"    values in the syntax, the intention is to exclude any parameters for    which values are not available, not applicable, or unknown.
</t><t>
The authors recognize that implementers may need to add new parameter lines to the reports and new metrics to the existing parameter lines. The extension tokens are intended to fulfill this need.

</t>

<section title="ABNF Syntax Definition">
<figure><artwork><![CDATA[

    VQReportEvent  =  AlertReport /  SessionReport / IntervalReport

    SessionReport = "VQSessionReport" [HCOLON CallTerm] CRLF
                LocalMetrics [CRLF RemoteMetrics] 
                [DialogID] 
                
    ; CallTerm indicates the final report of a session.

    IntervalReport = "VQIntervalReport" [HCOLON CallTerm] CRLF 
                LocalMetrics [CRLF RemoteMetrics] 
                [DialogID]  

    LocalMetrics  = "LocalMetrics" HCOLON CRLF Metrics 

    RemoteMetrics = "RemoteMetrics" HCOLON CRLF Metrics   

    AlertReport   = "VQAlertReport" HCOLON 
          MetricType WSP Severity WSP Direction CRLF 
          LocalMetrics [CRLF RemoteMetrics] 
          [DialogID]    

    Metrics = TimeStamps CRLF 
    
      [SessionDescription CRLF] 
       CallID CRLF 
       FromID CRLF 
       ToID CRLF 
       OrigID CRLF
       LocalAddr CRLF 
       RemoteAddr CRLF 
       [LocalMACAddr CRLF]
       [RemoteMACAddr CRLF]
       [JitterBuffer CRLF] 
       [PacketLoss CRLF] 
       [BurstGapLoss CRLF]
       [Delay CRLF] 
       [Signal CRLF] 
       [QualityEstimates CRLF] 
       *(Extension CRLF)  

    ; Timestamps are provided in Coordinated Universal Time (UTC)
    ; using the ABNF format provided in RFC3339, 
    ;  "Date and Time on the Internet: Timestamps" 
    ; These timestamps SHOULD reflect, as closely as 
    ; possible, the actual time during which the media session 
    ; was running to enable correlation to events occurring 
    ; in the network infrastructure and to accounting records 

    TimeStamps = "Timestamps" HCOLON StartTime WSP StopTime 
    StartTime  = "START" EQUAL date-time 
    StopTime   = "STOP" EQUAL date-time       

    ; SessionDescription provides a shortened version of the 
    ; session SDP but contains only the relevant parameters for 
    ; session quality reporting purposes 

    SessionDescription  = "SessionDesc" HCOLON 
       [PayloadType WSP] 
       [MediaSubtype WSP]
       [PayloadDesc WSP] 
       [SampleRate WSP] 
       [PacketsPerSecond WSP]        
       [FrameDuration WSP]
       [FrameOctets WSP]     
       [FramesPerPacket WSP] 
       [FmtpOptions WSP] 
       [PacketLossConcealment WSP] 
       [SilenceSuppressionState] 
       *(WSP Extension) 

    ; PayloadType provides the PT parameter used in the RTP packets

    PayloadType  = "PT" EQUAL (1*3DIGIT)  

    ; PayloadDesc provides a text description of the codec 
    ; This parameter SHOULD use the IANA registry for
    ; media-type names defined by RFC 4855 where it unambiguously 
    ; defines the codec.  Refer to:
    ; http://www.iana.org/assignments/media-types/audio/
    
    PayloadDesc  = "PD" EQUAL (word / DQUOTE word-plus DQUOTE)
 
    ; SampleRate reports the rate at which voice was sampled 
    ; in the case of narrowband codecs, this value will typically
    ; be 8000. 
    ; For codecs that are able to change sample rates the lowest and
    ; highest sample rates MUST be reported (e.g. 8000;16000). 

    SampleRate = "SR" EQUAL (1*6DIGIT) *(SEMI (1*66DIGIT)) 

    ; FrameDuration can be combined with the FramesPerPacket
    ; to determine the packetization rate; the units for
    ; FrameDuration are milliseconds. NOTE: for frame based codecs, 
    ; each frame constitutes a single frame; for sample-based codecs,
    ; a "frame" refers to the set of samples carried in an RTP packet

    FrameDuration = "FD" EQUAL (1*4DIGIT) 

    ; FrameOctets provides the number of octets in each frame
    ; at the time the report is generated (i.e. last value)
    ; This MAY be used where FrameDuration is not available 
    ; NOTE: for frame-based codecs, each frame constitutes a single frame; 
    ; for sample-based codecs, a "frame" refers to the set of samples carried 
    ; in an RTP packet.
    
    FrameOctets  = "FO" EQUAL (1*5DIGIT) 

    ; FramesPerPacket provides the number of frames in each RTP
    ; packet at the time the report is generated
    ; NOTE: for frame based codecs, each frame constitutes a single frame; 
    ; for sample-based codecs, a "frame" refers to the set of samples carried 
    ; in an RTP packet
    
    FramesPerPacket = "FPP" EQUAL (1*2DIGIT) 

    ; Packets per second provides the average number of packets
    ; that are transmitted per second, as at the time the report is
    ; generated. 

    PacketsPerSecond = "PPS" EQUAL (1*5DIGIT)   

    ; FMTP options from SDP.  Note that the parameter is delineated 
    ; by " " to avoid parsing issues in transitioning between SDP
    ; and SIP parsing 

    FmtpOptions = "FMTP" EQUAL DQUOTE word-plus DQUOTE 

    ; PacketLossConcealment indicates whether a PLC algorithm was 
    ; or is being used for the session.  The values follow the same
    ; numbering convention as RFC 3611[4].
    ; 0 - unspecified 
    ; 1 - disabled 
    ; 2 - enhanced 
    ; 3 - standard 

    PacketLossConcealment  = "PLC" EQUAL ("0" / "1" / "2" / "3") 

    ; SilenceSuppressionState indicates whether silence suppression,
    ; also known as Voice Activity Detection (VAD) is enabled. 

    SilenceSuppressionState  = "SSUP" EQUAL ("on" / "off")

    ; CallId provides the call id from the SIP dialog 

    CallID  =  "CallID" HCOLON Call-ID-Parm 

    ; FromID provides the identification of the reporting endpoint
    ; of the media session [2]. 

    FromID = "FromID" HCOLON (name-addr/addr-spec) 

    ; ToID provides the identification of the remote endpoint 
    ; of the media session [2]. 

    ToID = "ToID" HCOLON (name-addr/addr-spec) 
    
    ; Originator specifies provides the identification of the 
    ; endpoint which originated the session 

    OrigID = "OrigID" HCOLON (name-addr/addr-spec)    

    ; LocalAddr provides the IP address, port and ssrc of the 
    ; endpoint/UA which is the receiving end of the stream being
    ; measured. 

    LocalAddr   = "LocalAddr" HCOLON IPAddress WSP Port WSP Ssrc
     
    ; RemoteAddr provides the IP address, port and ssrc of the 
    ; the source of the stream being measured. 

    RemoteAddr  = "RemoteAddr" HCOLON IPAddress WSP Port WSP Ssrc
    
    ; LocalMACAddr provides the MAC address
    ;                                 of the local SIP device 

    LocalMACAddr   = "LocalMAC" HCOLON hex2 *(":" hex2)       
    
    ; RemoteMACAddr provides the MAC address 
    ; of the remote SIP device 

    RemoteMACAddr   = "RemoteMAC" HCOLON hex2 *(":" hex2) 

    ; For clarification, the LocalAddr in the LocalMetrics report
    ; MUST be the RemoteAddr in the RemoteMetrics report. 
    
    IPAddress   = "IP" EQUAL IPv6address / IPv4address 
    Port        = "PORT" EQUAL 1*DIGIT 
    Ssrc        = "SSRC" EQUAL ( ''0x'' 1*8HEXDIG) 

    JitterBuffer = "JitterBuffer" HCOLON 

       [JitterBufferAdaptive WSP] 
       [JitterBufferRate WSP] 
       [JitterBufferNominal WSP] 
       [JitterBufferMax WSP] 
       [JitterBufferAbsMax] 
       *(WSP Extension)   

    ; JitterBufferAdaptive indicates whether the jitter buffer in
    ; the endpoint is adaptive, static, or unknown. 
    ; The values follow the same numbering convention as RFC3611. 
    ; For more details, please refer to that document. 
    ; 0 - unknown 
    ; 1 - reserved 
    ; 2 - non-adaptive 
    ; 3 - adaptive 

    JitterBufferAdaptive  = "JBA" EQUAL ("0" / "1" / "2" / "3")

    ; JitterBuffer metric definitions are provided in RFC3611 

    JitterBufferRate      = "JBR" EQUAL (1*2DIGIT) ;0-15 
    JitterBufferNominal   = "JBN" EQUAL (1*5DIGIT) ;0-65535 
    JitterBufferMax       = "JBM" EQUAL (1*5DIGIT) ;0-65535 
    JitterBufferAbsMax    = "JBX" EQUAL (1*5DIGIT) ;0-65535 

    ; PacketLoss metric definitions are provided in RFC3611 

    PacketLoss = "PacketLoss" HCOLON 
               [NetworkPacketLossRate WSP] 
               [JitterBufferDiscardRate] 
               *(WSP Extension) 

    NetworkPacketLossRate = 

      "NLR" EQUAL (1*3DIGIT ["." 1*2DIGIT]) ;percentage 

    JitterBufferDiscardRate = 

      "JDR" EQUAL (1*3DIGIT ["." 1*2DIGIT]) ;percentage    

    ; BurstGapLoss metric definitions are provided in RFC3611 [4]

    BurstGapLoss = "BurstGapLoss" HCOLON 

       [BurstLossDensity WSP] 
       [BurstDuration WSP] 
       [GapLossDensity WSP] 
       [GapDuration WSP] 
       [MinimumGapThreshold] 
       *(WSP Extension)    

    BurstLossDensity = 
     "BLD" EQUAL (1*3DIGIT ["." 1*2DIGIT]) ;percentage     

    BurstDuration = 
     "BD" EQUAL (1*7DIGIT) ;0-3,600,000 -- milliseconds  

    GapLossDensity = 
     "GLD" EQUAL (1*3DIGIT ["." 1*2DIGIT]) ;percentage  

    GapDuration = 
     "GD" EQUAL (1*7DIGIT) ;0-3,600,000 -- milliseconds  

    MinimumGapThreshold = 
     "GMIN" EQUAL (1*3DIGIT) ;1-255    

    Delay = "Delay" HCOLON 
       [RoundTripDelay WSP] 
       [EndSystemDelay WSP] 
       [OneWayDelay WSP] 
       [SymmOneWayDelay WSP]
       [InterarrivalJitter WSP] 
       [MeanAbsoluteJitter] 
       *(WSP Extension) 

    ; RoundTripDelay SHALL be measured as defined in RFC3550 [3].

    RoundTripDelay = "RTD" EQUAL (1*5DIGIT) ;0-65535  

    ; EndSystemDelay metric is defined in RFC 3611 [4] 

    EndSystemDelay = "ESD" EQUAL (1*5DIGIT) ;0-65535    

    ; OneWayDelay is defined in RFC2679 

    OneWayDelay = "OWD" EQUAL (1*5DIGIT) ;0-65535 

    ; SymmOneWayDelay is defined as half the sum of RoundTripDelay

    ; and the EndSystemDelay values for both endpoints. 

    SymmOneWayDelay = "SOWD" EQUAL (1*5DIGIT); 0-65535    

    ; Interarrival Jitter is calculated as defined RFC 3550 
    ; and converted into milliseconds

    InterarrivalJitter = "IAJ" EQUAL (1*5DIGIT) ;0-65535 ms  

    ; Mean Absolute Jitter is measured as defined 

    ; by ITU-T G.1020 [10] where it is known as MAPDV 

    MeanAbsoluteJitter = "MAJ" EQUAL (1*5DIGIT);0-65535 

    ; Signal metrics definitions are provided in RFC 3611 

    Signal = "Signal" HCOLON 
       [SignalLevel WSP] 
       [NoiseLevel WSP] 
       [ResidualEchoReturnLoss] 
       *(WSP Extension)   

    ; SignalLevel will normally be a negative value 
    ; the absence of the negative sign indicates a positive value
    ; where the signal level is negative, the sign MUST be 
    ; included.This metric applies to the speech signal decoded 
    ; from the received packet stream. 

    SignalLevel = "SL" EQUAL (["-"] 1*2DIGIT)    

    ; NoiseLevel will normally be negative and the sign MUST be
    ; explicitly included. 
    ; The absence of a sign indicates a positive value 
    ; This metric applies to the speech signal decoded from the 
    ; received packet stream. 

    NoiseLevel  = "NL" EQUAL (["-"] 1*2DIGIT)    

    ; Residual Echo Return Loss (RERL) the ratio between  
    ; the original signal and the echo level as measured after  
    ; echo cancellation or suppression has been applied. 
    ; Expressed in decibels (dB). This is typically a positive
    ; value. 
    ; This metric relates to the proportion of the speech signal 
    ; decoded from the received packet stream that is reflected 
    ; back in the encoded speech signal output in the transmitted 
    ; packet stream (i.e. will affect the REMOTE user's 
    ; conversational quality). To support the diagnosis of echo 
    ; related problems experienced by the local user of the device
    ; generating a report according to this document, the value of
    ; RERL reported via the RTCP XR VoIP Metrics payload SHOULD be
    ; reported in the RemoteMetrics set of data. 

    ResidualEchoReturnLoss = "RERL" EQUAL (1*3DIGIT) 

    ; Voice Quality estimation metrics 
    ; Each quality estimate has an optional associated algorithm. 
    ; These fields permit the implementation to use a variety 
    ; of different calculation methods for each type of metric 

    QualityEstimates  = "QualityEst" HCOLON 
       [ListeningQualityR WSP] 
       [RLQEstAlg WSP] 
       [ConversationalQualityR WSP] 
       [RCQEstAlg WSP] 
       [ExternalR-In WSP] 
       [ExtRInEstAlg WSP] 
       [ExternalR-Out WSP] 
       [ExtROutEstAlg WSP] 
       [MOS-LQ WSP] 
       [MOSLQEstAlg WSP] 
       [MOS-CQ WSP] 
       [MOSCQEstAlg WSP] 
       [QoEEstAlg] 
       *(WSP Extension) 

    ListeningQualityR = "RLQ" EQUAL (1*3DIGIT) ; 0 - 120 

    RLQEstAlg = "RLQEstAlg" EQUAL word ; "P.564", or other 

    ConversationalQualityR = "RCQ" EQUAL (1*3DIGIT) ; 0 - 120  

    RCQEstAlg = "RCQEstAlg" EQUAL word ; "P.564", or other   

    ; ExternalR-In is measured by the local endpoint for incoming 
    ; connection on "other" side of this endpoint 
    ;   e.g. Phone A <---> Bridge <----> Phone B 
    ;   ListeningQualityR = quality for Phone A ----> Bridge path 
    ;   ExternalR-In = quality for Bridge <---- Phone B path   

    ExternalR-In = "EXTRI" EQUAL (1*3DIGIT) ; 0 - 120   

    ExtRInEstAlg = "ExtRIEstAlg" EQUAL word ; "P.564" or other  

    ; ExternalR-Out is copied from RTCP XR message received from the
    ; remote endpoint on "other" side of this endpoint 
    ;   e.g. Phone A <---> Bridge <----> Phone B 
    ;   ExternalR-Out = quality for Bridge -----> Phone B path  

    ExternalR-Out = "EXTRO" EQUAL (1*3DIGIT) ; 0 - 120  

    ExtROutEstAlg = "ExtROEstAlg" EQUAL word ; "P.564" or other    

    MOS-LQ = "MOSLQ" EQUAL (DIGIT ["." 1*3DIGIT]) ; 0.0 - 4.9  

    MOSLQEstAlg = "MOSLQEstAlg" EQUAL word ; "P.564" or other 

    MOS-CQ = "MOSCQ" EQUAL (DIGIT ["." 1*3DIGIT])  ; 0.0 - 4.9 

    MOSCQEstAlg = "MOSCQEstAlg" EQUAL word ; "P.564" or other 

    ; QoEEstAlg provides an alternative to the separate
    ; estimation algorithms for use when the same algorithm 
    ; is used for all measurements 

    QoEEstAlg = "QoEEstAlg" EQUAL word ; "P.564" or other 
    
    ; DialogID provides the identification of the dialog with 
    ; which the media session is related.  This value is taken 
    ; from the SIP header. 

    DialogID  = "DialogID" COLON Call-ID-Parm *(SEMI did-parm) 

    did-parm  = to-tag / from-tag / word 

    to-tag    = "to-tag" EQUAL token 

    from-tag  = "from-tag" EQUAL token 

    ; MetricType provides the metric on which a notification of 
    ; threshold violation was based.  The more commonly used metrics
    ; for alerting purposes are included here explicitly, using the 
    ; character encoding that represents the parameter in
    ; this ABNF.   The Extension parameter can be used to provide
    ; metrics that are not defined by this draft. 

    MetricType = "Type" EQUAL "RLQ" / "RCQ" / "EXTR" / 
       "MOSLQ" / "MOSCQ" / 
       "BD" / "NLR" / "JDR" / 
       "RTD" / "ESD" / "IAJ" / 
       "RERL" / "SL" / "NL" / Extension 

    Direction = "Dir" EQUAL "local" / "remote" 
    Severity  = "Severity" EQUAL "Warning" / "Critical" / 
       "Clear" 

    Call-ID-Parm =  word [ "@" word ]     

    ; General ABNF notation from RFC5234 

    CRLF =  %x0D.0A 
    DIGIT =  %x30-39 
    WSP   =  SP / HTAB ; white space 
    SP    =  " " 
    HTAB  =  %x09 ; horizontal tab 
    HEXDIG =  DIGIT / "A" / "B" / "C" / "D" / "E" / "F" /  
                 "a" / "b" / "c" / "d" / "e" / "f" 
    DQUOTE  =  %x22 ; " (Double Quote)    
    ALPHA   =  %x41-5A / %x61-7A   ; A-Z / a-z     

    ; ABNF notation from RFC3261 

    alphanum  =  ALPHA / DIGIT 
    LWS  =  [*WSP CRLF] 1*WSP ; linear whitespace 
    SWS  =  [LWS] ; sep whitespace 
    SEMI =  SWS ";" SWS ; semicolon 
    EQUAL   =  SWS "=" SWS ; equal 
    COLON   =  SWS ":" SWS ; colon 
    HCOLON  =  *( SP / HTAB ) ":" SWS

    token       =  1*(alphanum / "-" / "." / "!" / "%" / "*" 
                      / "_" / "+" / "`" / "'" / "~" )  
                      
    IPv4address   =  1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT
    IPv6address   =  hexpart [ ":" IPv4address ] 
    hexpart       =  hexseq / hexseq "::" [ hexseq ] / "::" 
                          [ hexseq ] 
    hexseq        =  hex4 *( ":" hex4) 
    hex4          =  1*4HEXDIG  
    hex2          =  2HEXDIG

    ; ABNF notation from RFC3339 

    date-fullyear   = 4DIGIT ; e.g. 2006  
    date-month      = 2DIGIT ; e.g. 01 or 11 
    date-mday       = 2DIGIT ; e.g. 02 or 22  
    time-hour       = 2DIGIT ; e.g. 01 or 13  
    time-minute     = 2DIGIT ; e.g. 03 or 55
    time-second     = 2DIGIT ; e.g. 01 or 59 
    time-secfrac    = "." 1*DIGIT 
    time-numoffset  = ("+" / "-") time-hour ":" time-minute 
    time-offset     = "Z" / time-numoffset 
    partial-time = time-hour ":" time-minute ":" time-second  
   [time-secfrac] 
    full-date    = date-fullyear "-" date-month "-" date-mday 
    full-time    = partial-time time-offset 
    date-time    = full-date "T" full-time       
    
    ; Miscellaneous definitions  
    ; 

    Extension = word-plus 

    word  =  1*(alphanum / "-" / "." / "!" / "%" / "*" / 
       "_" / "+" / "`" / "'" / "~" / 
       "(" / ")" / "<" / ">" / 
       ":" / "\" / DQUOTE / 
       "/" / "[" / "]" / "?" ) 

    word-plus =  1*(alphanum /  "-"  /  "."  /  "!"  / "%" / "*" /
       "_"  /  "+"  /  "`"  /  "'"  /  "~"  / 
       "("  /  ")"  /  "<"  /  ">"  /  ":"  / 
       "\"  /  "/"  /  "["  /  "]"  /  "?"  / 
       "{"  /  "}"  /  "="  /  " ") 

]]></artwork></figure>
</section>

<section title="Parameter Definitions and Mappings">
<t>
Parameter values, codec types and other aspects of the endpoints may change dynamically during a session.  The reported values of metrics and configuration parameters SHALL be the current value at the time the report is generated.  
</t><t>
The Packet Loss Rate and Packet Discard Rate parameters are calculated over the period between the starting and ending timestamps for the report.  These are normally calculated from a count of the number of lost or discarded packets divided by the count of the number of packets, and hence are based on the current values of these counters at the time the report was generated.
</t><t>

Packet delay variation, signal level, noise level, echo level are computed as running or interval averages, based on the appropriate standard (e.g. RFC3550 for PDV) and the sampled value of these running averages is reported.
Delay, packet size, jitter buffer size and codec related data may change during a session and the current value of these parameters is reported as sampled at the time the report is generated.

</t>

<section title="General mapping percentages from 8 bit, fixed point numbers">
<t> 
RFC3611 uses an 8 bit, fixed point number with the binary point at    the left edge of the field.  This value is calculated by dividing the total number of packets lost by the total number of packets expected and multiplying the result by 256, and taking the integer part. 
</t><t>
For any RTCP XR parameter in this format, to map into the equivalent SIP vq-rtcpxr parameter, simply reverse the equation i.e. divide by 256 and taking the integer part. 
</t>
</section> 

<section title="Timestamps">
<t>
Following SIP and other IETF convention, timestamps are provided in Coordinated Universal Time (UTC) using the ABNF format provided in RFC 3339 [7]. These timestamps SHOULD reflect, as closely as possible, the actual time during which the media session was running to enable correlation to related events occurring in the network and to accounting or billing records.     

</t>
</section>

<section title="SessionDescription">
<t>
The parameters in this field provide a shortened version of the    session SDP(s), containing only the relevant parameters for session quality reporting purposes. Where values may change durina a session, for example a codec may change rate, then the most recent value of the parameter is reported.
</t>
<section title="Payload Type">
<t>  
This is the "payload type" parameter used in the RTP packets i.e. the codec. This field can also be mapped from the SDP "rtpmap" attribute field "payload type". IANA registered types SHOULD be used. 
</t>
</section>
<section title="Payload Desc">
<t>  
This parameter a text description of the codec.  This parameter SHOULD use the IANA registry for media-type names where it unambiguously defines the codec.  Refer to: http://www.iana.org/assignments/media-types/audio/
</t>
</section>
<section title="Sample Rate">
<t>  
This parameter is mapped from the SDP "rtpmap" attribute field "clock rate". The field provides the rate at which voice was sampled, measured in Hertz (Hz).    
</t>
</section>
<section title="Packets Per Second">
<t>  
This parameter is not contained in RTP or SDP but can usually be obtained from the device codec. Packets per second provides the (rounded) number of RTP packets that are transmitted per second. 
</t>
</section>
<section title="Frame Duration">
<t>  
This parameter is not contained in RTP or SDP but can usually be obtained from the device codec. The field reflects the amount of voice content in each frame within the RTP payload, measured in milliseconds. Note this value can be combined with the FramesPerPacket to determine the packetization rate. Also, where a sample-based codec is used, a "frame" refers to the set of samples carried in an RTP packet.  
</t>
</section>
<section title="Frame Octets">
<t>   
This parameter is not contained in RTP or SDP but is usually provided by the device codec. The field provides the number of octets in each frame within the RTP payload. This field is usually not provided when the FrameDuration is provided. Also, where a sample-based codec is used, a "frame" refers to the set of samples carried in an RTP packet.  
</t>
</section>
<section title="Frames Per Packet">
<t>  
This parameter is not contained in RTP or SDP but can usually be obtained from the device codec.  This field provides the number of frames in each RTP packet. Note this value can be combined with the FrameDuration to determine the packetization rate.  Also, where a sample-based codec is used, a "frame" refers to the set of samples carried in an RTP packet.  
</t>
</section>

<section title="FMTP Options">
<t>
This parameter is taken directly from the SDP attribute "fmtp".   
</t>
</section>
<section title="Silence Suppression State">
<t>   
This parameter does not correspond to SDP, RTP, or RTCP XR. It    indicates whether silence suppression, also known as Voice Activity    Detection (VAD) is enabled for the identified session. 
</t>
</section>
<section title="Packet Loss Concealment">
<t> 
This value corresponds to "PLC" in RFC3611 in the VoIP Metrics Report    Block. The values defined by RFC3611 are reused by this  recommendation and therefore no mapping is required. 

</t>
</section>

</section>


<section title="LocalAddr">
<t>
This field provides the IP address, port and synchronization source    (SSRC) for the session from the perspective of the endpoint that is    measuring performance.  The IPAddress can be IPv4 or IPv6 format. The SSRC is taken from SDP, RTCP, or RTCP XR input parameters. 
</t><t>
In the presence of NAT and where a NAT-traversal mechanism such as STUN [9] is used, the external IP address can be reported, since the internal IP address is not visible to the network operator.
</t>
</section>

<section title="RemoteAddr">
<t> 
This field provides the IP address, port and ssrc of the session peer from the perspective of the remote endpoint measuring performance. In the presence of NAT and where a NAT-traversal mechanism such as STUN [9] is used, the external IP address can be reported, since the internal IP address is not visible to the network operator. 
</t>
</section>

<section title="Jitter Buffer Parameters">
 
<section title="Jitter Buffer Adaptive">
<t>  
This value corresponds to "JBA" in RFC3611 in the VoIP Metrics Report Block. The values defined by RFC3611 are unchanged and therefore no mapping is required.
</t>
</section>

<section title="Jitter Buffer Rate">
<t> 
This value corresponds to "JB rate" in RFC3611 in the VoIP Metrics    Report Block. The parameter does not require any conversion.
</t>
</section>
<section title="Jitter Buffer Nominal">
<t> 
This value corresponds to "JB nominal" in RFC3611 in the VoIP Metrics       Report Block. The parameter does not require any conversion.
</t>
</section>
<section title="Jitter Buffer Max">
<t> 
This value corresponds to "JB maximum" in RFC3611 in the VoIP Metrics    Report Block. The parameter does not require any conversion.
</t>
</section>
<section title="Jitter Buffer Abs Max">
<t>    
This value corresponds to "JB abs max" in RFC3611 in the VoIP Metrics    Report Block. The parameter does not require any conversion.
</t>
</section>

</section>

<section title="Packet Loss Parameters">
<t>   
This value corresponds to "loss rate" in RFC3611 in the VoIP Metrics    Report Block. For conversion, see "General mapping percentages from 8    bit, fixed point numbers".
</t>
<section title="Jitter Buffer Discard Rate">
<t> 
This value corresponds to "discard rate" in RFC3611 in the VoIP    Metrics Report Block.  For conversion, see "General mapping    percentages from 8 bit, fixed point numbers".
</t>
</section>
</section>

<section title="Burst/Gap Parameters">
 
<section title="Burst Loss Density">
<t> 
This value corresponds to "burst density" in RFC3611 in the VoIP    Metrics Report Block. For conversion, see "General mapping    percentages from 8 bit, fixed point numbers".
</t>
</section>
<section title="Burst Duration">
<t>  
This value corresponds to "burst duration" in RFC3611 in the VoIP    Metrics Report Block. This value requires no conversion; the exact    value sent in an RTCP XR VoIP Metrics Report Block can be included in    the SIP vq-rtcpxr parameter.
</t>
</section>
<section title="Gap Loss Density">
<t>  
This value corresponds to "gap density" in RFC3611 in the VoIP    metrics Report Block.
</t>
</section>
<section title="Gap Duration">
<t>  
This value corresponds to "gap duration" in RFC3611 in the VoIP    Metrics Report Block.  This value requires no conversion; the exact    value sent in an RTCP XR VoIP Metrics Report Block can be reported.
</t>
</section>
<section title="Minimum Gap Threshold">
<t> 
This value corresponds to "Gmin" in RFC3611 in the VoIP Metrics  Report Block. This value requires no conversion; the exact value sent in an RTCP XR VoIP Metrics Report Block can be reported.
</t>
</section>
</section>

<section title="Delay Parameters">
<section title="Round Trip Delay">
<t>  
This value corresponds to "round trip delay" in RFC3611 in the VoIP Metrics Report Block and may be measured using the method defined in RFC3550. The parameter is expressed in milliseconds.
</t>
</section>
<section title="End System Delay">
<t>  
This value corresponds to "end system delay" in RFC3611 in the VoIP Metrics Report Block. This parameter does not require any conversion. The parameter is expressed in milliseconds.
</t>
</section>
<section title="Symmetric One Way Delay">
<t>
This value is computed by adding Round Trip Delay to the local and remote End System Delay and dividing by two.
</t>
</section>
<section title="One Way Delay">
<t>  
This value SHOULD be measured using the methods defined in IETF    RFC2679. The parameter is expressed in milliseconds.
</t>
</section>
<section title="Inter-arrival Jitter">
<t>  
Inter-arrival jitter is calculated as defined in RFC 3550 and converted into milliseconds.
</t>
</section>
<section title="Mean Absolute Jitter">
<t>  
It is recommended that MAJ be measured as defined in ITU-T G.1020 [10]. This parameter is often referred to as MAPDV. The parameter is expressed in milliseconds.
</t>
</section> 
</section>

<section title="Signal-related Parameters">
<section title="Signal Level">
<t>  
This field corresponds to "signal level" in RFC3611 in the VoIP    Metrics Report Block. This field provides the voice signal    relative level is defined as the ratio of the signal level to a 0    dBm0 reference, expressed in decibels. This value can be used    directly without extra conversion.
</t>
</section>
<section title="Noise Level">
<t>  
This field corresponds to "noise level" in RFC3611 in the VoIP    Metrics Report Block. This field provides the ratio of the silent    period background noise level to a 0 dBm0 reference, expressed in    decibels.  This value can be used directly without extra conversion.
</t>
</section>
<section title="Residual Echo Return Loss (RERL)">
<t>  
This field corresponds to "RERL" in RFC3611 in the VoIP Metrics    Report Block.  This field provides the ratio between the original    signal and the echo level in decibels, as measured after echo    cancellation or suppression has been applied. This value can be used    directly without extra conversion.
</t>
</section>
</section>

<section title="Quality Scores"> 
<section title="ListeningQualityR">
<t>  
This field reports the listening quality expressed as an R factor    (per G.107).  This does not include the effects of echo or delay.    The range of R is 0-95 for narrowband calls and 0-120 for wideband    calls. Algorithms for computing this value SHOULD be compliant with    ITU-T Recommendations P.564 [11] and G.107 [12].
</t>
</section> 
<section title="RLQEstAlg">
<t>    
This field provides a text name for the algorithm used to estimate    ListeningQualityR. 
</t>
</section> 
<section title="ConversationalQualityR">
<t>    
This field corresponds to "R factor" in RFC3611 in the VoIP Metrics    Report Block. This parameter provides a cumulative measurement of    voice quality from the start of the session to the reporting time.    The range of R is 0-95 for narrowband calls and 0-120 for wideband    calls. Algorithms for computing this value SHOULD be compliant with    ITU-T Recommendation P.564 and G.107. Within RFC3611 a reported R factor of 127 indicates that this parameter is unavailable; in    this case the ConversationalQualityR parameter MUST be omitted    from the vq-rtcpxr event. 
</t>
</section> 
<section title="RCQEstAlg">
<t>    
This field provides a text name for the algorithm used to estimate    ConversationalQualityR. 
</t>
</section> 
<section title="ExternalR-In">
<t>    
This field corresponds to "ext. R factor" in RFC3611 in the VoIP    Metrics Report Block.  This parameter reflects voice quality as    measured by the local endpoint for incoming connection on "other"    side (refer to RFC3611 for a more detailed explanation). The range of    R is 0-95 for narrowband calls and 0-120 for wideband calls.    Algorithms for computing this value SHOULD be compliant with ITU-T    Recommendation P.564 and G.107. Within RFC3611 a reported R factor    of 127 indicates that this parameter is unavailable; in this case the    ConversationalQualityR parameter MUST be omitted from the vq-rtcpxr    event. 
</t>
</section> 
<section title="ExtRInEstAlg">
<t>   
This field provides a text name for the algorithm used to estimate    ExternalR-In. 
</t>
</section> 
<section title="ExternalR-Out">
<t>
This field corresponds to "ext. R factor" in RFC3611 in the VoIP    Metrics Report Block.  Here, the value is copied from RTCP XR message    received from the remote endpoint on "other" side of this endpoint    refer to RFC3611 for a more detailed explanation). The range of R is    0-95 for narrowband calls and 0-120 for wideband calls.  Algorithms    for computing this value SHOULD be compliant with ITU-T    Recommendation P.564 and G.107. Within RFC3611 a reported R factor of    127 indicates that this parameter is unavailable; in this case the    ConversationalQualityR parameter SHALL be omitted from the vq-rtcpxr    event. 
</t>
</section> 
<section title="ExtROutEstAlg">
<t>   
This field provides a text name for the algorithm used to estimate    ExternalR-Out. Conversion of RFC3611 reported MOS scores for use in reporting MOS-LQ and MOS-CQ MUST be performed by dividing the RFC3611 reported value by 10 if this value is less than or equal to 50 or omitting the MOS-xQ parameter if the RFC3611 reported value is 127 (which indicates unavailable). 
</t>
</section> 
<section title="MOS-LQ">
<t>    
This field corresponds to "MOSLQ" in RFC3611 in the VoIP Metrics    Report Block.  This parameter is the estimated mean opinion score for listening voice quality on a scale from 1 to 5, in which 5 represents    "Excellent" and 1 represents "Unacceptable". Algorithms for computing this value SHOULD be compliant with ITU-T Recommendation P.564 [11].  This field provides a text name for the algorithm used to estimate    MOS-LQ. 
</t>
</section> 
<section title="MOS-CQ">
<t>    
This field corresponds to "MOSCQ" in RFC3611 in the VoIP Metrics    Report Block.  This parameter is the estimated mean opinion score for    conversation voice quality on a scale from 1 to 5, in which 5    represents excellent and 1 represents unacceptable. Algorithms for    computing this value SHOULD be compliant with ITU-T Recommendation    P.564 with regard to the listening quality element of the computed    MOS score. 
</t>
</section> 
<section title="MOSCQEstAlg">
<t>    
This field provides a text name for the algorithm used to estimate    MOS-CQ.
</t>
</section> 
<section title="QoEEstAlg">
<t>  
This field provides a text description of the algorithm used to    estimate all voice quality metrics. This parameter is provided as an    alternative to the separate estimation algorithms for use when the    same algorithm is used for all measurements.
</t>
</section>
</section>

</section>

</section>

<section title="Message Flow and Syntax Examples">
<t>
This section shows a number of message flow examples showing how the event package works. 
</t>

<section title="End of Session Report using NOTIFY">
<figure><artwork><![CDATA[    
    Alice            Proxy/Registrar        Collector             Bob
    |                    |                    |                    | 
    |                    |                    |                    | 
    | REGISTER Allow-Event:vq-rtcpxr F1       |                    | 
    |------------------->|                    |                    | 
    |      200 OK F2     |                    |                    | 
    |<-------------------|                    |                    | 
    |                    |  SUBSCRIBE Event:vq-rtcpxr F3           | 
    |                    |<-------------------|                    | 
    | SUBSCRIBE Event:vq-rtcpxr F4            |                    | 
    |<-------------------|                    |                    | 
    |     200 OK F5      |                    |                    | 
    |------------------->|                    |                    | 
    |                    |   200 OK F6        |                    | 
    |                    |------------------->|                    | 
    |      INVITE F7     |                    |                    | 
    |------------------->|                    |                    | 
    |                    |      INVITE F8     |                    | 
    |                    |---------------------------------------->| 
    |                    |      200 OK F9     |                    | 
    |                    |<----------------------------------------| 
    |     200 OK F10     |                    |                    | 
    |<-------------------|                    |                    | 
    |        ACK F11     |                    |                    | 
    |------------------->|                    |                    | 
    |                    |      ACK F12       |                    | 
    |                    |---------------------------------------->| 
    |        RTP         |                    |                    | 
    |<============================================================>| 
    |        RTCP, RTCP XR                    |                    | 
    |<============================================================>| 
    |                    |                    |                    | 
    |    BYE F13         |                    |                    | 
    |------------------->|      BYE F14       |                    | 
    |                    |---------------------------------------->| 
    |                    |     200 OK F15     |                    | 
    |                    |<----------------------------------------| 
    |     200 OK F16     |                    |                    | 
    |<-------------------|                    |                    | 
    |  NOTIFY Event:vq-rtcpxr F17             |                    | 
    |------------------->|                    |                    | 
    |                    | NOTIFY Event:vq-rtcpxr F18              | 
    |                    |------------------->|                    | 
    |                    |     200 OK F19     |                    | 
    |                    |<-------------------|                    | 
    |     200 OK F20     |                    |                    | 
    |<-------------------|                    |                    | 

Figure 1. Summary report with NOTIFY sent after session termination.
In the call flow depicted in Figure 1, the following message format
is sent in F17: 

    NOTIFY sip:collector@example.org SIP/2.0 
    Via: SIP/2.0/UDP pc22.example.org;branch=z9hG4bK3343d7 
    Max-Forwards: 70 
    To: <sip:collector@example.org>;tag=43524545 
    From: Alice <sip:alice@example.org>;tag=a3343df32 
    Call-ID: 1890463548
    CSeq: 4321 NOTIFY 
    Contact: <sip:alice@pc22.example.org> 
    Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, 
    SUBSCRIBE, NOTIFY 
    Event: vq-rtcpxr 
    Accept: application/sdp, message/sipfrag 
    Subscription-State: active;expires=3600 
    Content-Type: application/vq-rtcpxr 
    Content-Length: ... 

    VQSessionReport: CallTerm
    LocalMetrics: 
    Timestamps:START=2004-10-10T18:23:43Z STOP=2004-10-01T18:26:02Z
    SessionDesc:PT=0 PD=PCMU SR=8000 FD=20 FO=160 FPP=1 PPS=50 
                    PLC=3 SSUP=on 
    CallID: 6dg37f1890463 
    FromID: Alice <sip:alice@example.org> 
    ToID: Bill <sip:bill@elpmaxe.org> 
    OrigID: Alice <sip:alice@example.org>
    LocalAddr: IP=10.10.1.100 PORT=5000 SSRC=1a3b5c7d 
    LocalMAC: 00:1f:5b:cc:21:0f
    RemoteAddr:IP=11.1.1.150 PORT=5002 SSRC=0x2468abcd
    RemoteMAC: 00:26:08:8e:95:02 
    JitterBuffer:JBA=3 JBR=2 JBN=40 JBM=80 JBX=120 
    PacketLoss:NLR=5.0 JDR=2.0 
    BurstGapLoss:BLD=0 BD=0 GLD=2.0 GD=500 GMIN=16 
    Delay:RTD=200 ESD=140 SOWD=200 IAJ=2 MAJ=10 
    Signal:SL=-18 NL=-50 RERL=55 
    QualityEst:RLQ=88 RCQ=85 EXTRI=90 MOSLQ=4.1 MOSCQ=4.0 
      QoEEstAlg=P.564 
    RemoteMetrics: 
    Timestamps:START=2004-10-10T18:23:43Z STOP=2004-10-01T18:26:02Z
    SessionDesc:PT=0 PD=PCMU SR=8000 FD=20 FO=160 FPP=1 PPS=50 
                    PLC=3 SSUP=on 
    CallID:6dg37f1890463
    LocalAddr:IP=11.1.1.150 PORT=5002 SSRC=0x2468abcd 
    RemoteAddr:IP=10.10.1.100 PORT=5000 SSRC=0x1a3b5c7d 
    JitterBuffer:JBA=3 JBR=2 JBN=40 JBM=80 JBX=120 
    PacketLoss:NLR=5.0 JDR=2.0 
    BurstGapLoss:BLD=0 BD=0 GLD=2.0 GD=500 GMIN=16 
    Delay:RTD=200 ESD=140 SOWD=200 IAJ=2 MAJ=10 
    Signal:SL=-21 NL=-45 RERL=55 
    QualityEst:RLQ=90 RCQ=85 EXTRI=90 MOSLQ=4.3 MOSCQ=4.2 
      QoEEstAlg=P.564 
    DialogID:1890463548@alice.example.org;to-tag=8472761;  
      from-tag=9123dh311 
      
]]></artwork></figure>

</section>

<section title="Mid Session Threshold Violation using NOTIFY">
<figure><artwork><![CDATA[     
Alice            Proxy/Registrar        Collector             Bob 
 |                    |                    |                    | 
 |                    |                    |                    | 
 | REGISTER Allow-Event:vq-rtcpxr F1       |                    | 
 |------------------->|                    |                    | 
 |      200 OK F2     |                    |                    | 
 |<-------------------|                    |                    | 
 |                    |  SUBSCRIBE Event:vq-rtcpxr F3           | 
 |                    |<-------------------|                    | 
 | SUBSCRIBE Event:vq-rtcpxr F4            |                    | 
 |<-------------------|                    |                    | 
 |     200 OK F5      |                    |                    | 
 |------------------->|                    |                    | 
 |                    |   200 OK F6        |                    | 
 |                    |------------------->|                    | 
 |      INVITE F7     |                    |                    | 
 |------------------->|                    |                    | 
 |                    |      INVITE F8     |                    | 
 |                    |---------------------------------------->| 
 |                    |      200 OK F9     |                    | 
 |                    |<----------------------------------------| 
 |     200 OK F10     |                    |                    | 
 |<-------------------|                    |                    | 
 |        ACK F11     |                    |                    | 
 |------------------->|                    |                    | 
 |                    |      ACK F12       |                    | 
 |                    |---------------------------------------->| 
 |        RTP         |                    |                    | 
 |<============================================================>| 
 |        RTCP, RTCP XR                    |                    | 
 |<============================================================>| 
 |  NOTIFY Event:vq-rtcpxr F17             |                    | 
 |------------------->|                    |                    | 
 |                    | NOTIFY Event:vq-rtcpxr F18              | 
 |                    |------------------->|                    | 
 |                    |     200 OK F19     |                    | 
 |                    |<-------------------|                    | 
 |     200 OK F20     |                    |                    | 
 |<-------------------|                    |                    | 
 |                    |                    |                    | 
 |    BYE F13         |                    |                    | 
 |------------------->|      BYE F14       |                    | 
 |                    |---------------------------------------->| 
 |                    |     200 OK F15     |                    | 
 |                    |<----------------------------------------| 
 |     200 OK F16     |                    |                    | 
 |<-------------------|                    |                    | 
 |  NOTIFY Event:vq-rtcpxr F17             |                    | 
 |------------------->|                    |                    | 
 |                    | NOTIFY Event:vq-rtcpxr F18              | 
 |                    |------------------->|                    | 
 |                    |     200 OK F19     |                    | 
 |                    |<-------------------|                    | 
 |     200 OK F20     |                    |                    | 
 |<-------------------|                    |                    |

Figure 2.  An alert report is sent during the session.
In the call flow depicted in Figure 2, the following message 
format is sent in F17: 

    NOTIFY sip:collector@example.org SIP/2.0 
    Via: SIP/2.0/UDP pc22.example.org;branch=z9hG4bK3343d7 
    Max-Forwards: 70       
    To: <sip:proxy@example.org> 
    From: Alice <sip:alice@example.org>;tag=a3343df32 
    Call-ID: 1890463548
    CSeq: 4331 PUBLISH 
    Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, 
    SUBSCRIBE, NOTIFY 
    Event: vq-rtcpxr 
    Accept: application/sdp, message/sipfrag 
    Content-Type: application/vq-rtcpxr 
    Content-Length: ... 

    VQAlertReport: Type=NLR Severity=Critical Dir=local
    LocalMetrics: 
    Timestamps:START=2004-10-10T18:23:43Z STOP=2004-10-01T18:26:02Z
    SessionDesc:PT=18 PD=G729 SR=8000 FD=20 FO=20 FPP=2 PPS=50 
                    FMTP="annexb=no" PLC=3 SSUP=on 
    CallID: 6dg37f1890463
    FromID: Alice <sip:alice@example.org> 
    ToID: Bill <sip:bill@example.org> 
    OrigID: Alice <sip:alice@example.org>
    LocalAddr:IP=10.10.1.100 PORT=5000 SSRC=0x2468abcd 
    LocalMAC: 00:1f:5b:cc:21:0f
    RemoteAddr:IP=11.1.1.150 PORT=5002 SSRC=1357efff 
    RemoteMAC: 00:26:08:8e:95:02
    JitterBuffer:JBA=3 JBR=2 JBN=40 JBM=80 JBX=120 
    PacketLoss:NLR=10.0 JDR=2.0 
    BurstGapLoss:BLD=0 BD=0 GLD=2.0 GD=500 GMIN=16 
    Delay:RTD=200 ESD=140 SOWD=200 IAJ=2 MAJ=10 
    Signal:SL=-21 NL=-50 RERL=55 
    QualityEst:RLQ=80 RCQ=85 EXTRI=90 MOSLQ=3.5 MOSCQ=3.7 QoEEstAlg=P.564 

    RemoteMetrics: 
    Timestamps:START=2004-10-10T18:23:43Z STOP=2004-10-01T18:26:02Z
    SessionDesc:PT=18 PD=G729 SR=8000 FD=20 FO=20 FPP=2 PPS=50 
                    FMTP="annexb=no" PLC=3 SSUP=on 
    CallID: 6dg37f1890463  
    LocalAddr:IP=11.1.1.150 PORT=5002 SSRC=1357efff 
    RemoteAddr:IP=10.10.1.100 PORT=5000 SSRC=0x2468abcd 
    JitterBuffer:JBA=3 JBR=2 JBN=40 JBM=80 JBX=120 
    PacketLoss:NLR=5.0 JDR=2.0 
    BurstGapLoss:BLD=0 BD=0 GLD=2.0 GD=500 GMIN=16 
    Delay:RTD=200 ESD=140 SOWD=200 IAJ=2 MAJ=10 
    Signal:SL=-21 NL=-45 RERL=55 
    QualityEst:RLQ=90 RCQ=85 MOSLQ=4.3 MOSCQ=4.2 QoEEstAlg=P.564 
    DialogID:1890463548@alice.example.org;to-tag=8472761;
       from-tag=9123dh311
]]></artwork></figure>
</section>

<section title="End of Session Report using PUBLISH"> 
<figure><artwork><![CDATA[     
   Alice            Proxy/Registrar        Collector              Bob
    |                    |                    |                    | 
    |                    |                    |                    | 
    | REGISTER Allow-Event:vq-rtcpxr  F1      |                    | 
    |------------------->|                    |                    | 
    |      200 OK F2     |                    |                    | 
    |<-------------------|                    |                    | 
    |      INVITE F3     |                    |                    | 
    |------------------->|                    |                    | 
    |                    |      INVITE F4     |                    | 
    |                    |---------------------------------------->| 
    |                    |      200 OK F5     |                    | 
    |                    |<----------------------------------------| 
    |     200 OK F6      |                    |                    | 
    |<-------------------|                    |                    | 
    |        ACK F7      |                    |                    | 
    |------------------->|                    |                    | 
    |                    |      ACK F8        |                    | 
    |                    |---------------------------------------->| 
    |        RTP         |                    |                    | 
    |<============================================================>| 
    |        RTCP        |                    |                    | 
    |<============================================================>| 
    |                    |                    |                    | 
    |    BYE F9          |                    |                    | 
    |------------------->|      BYE F10       |                    | 
    |                    |---------------------------------------->| 
    |                    |     200 OK F11     |                    | 
    |                    |<----------------------------------------| 
    |     200 OK F12     |                    |                    | 
    |<-------------------|                    |                    | 
    |  PUBLISH Event:vq-rtcpxr F13            |                    | 
    |------------------->|                    |                    | 
    |                    | PUBLISH Event:vq-rtcpxr F14             | 
    |                    |------------------->|                    | 
    |                    |     200 OK F15     |                    | 
    |                    |<-------------------|                    | 
    |     200 OK F16     |                    |                    | 
    |<-------------------|                    |                    | 
 
Figure 3. End of session report sent after session termination.
In the message flow depicted in Figure 3, the following message is
sent in F13.

    PUBLISH sip:collector@example.org SIP/2.0 
    Via: SIP/2.0/UDP pc22.example.org;branch=z9hG4bK3343d7 
    Max-Forwards: 70       
    To: <sip:proxy@example.org> 
    From: Alice <sip:alice@example.org>;tag=a3343df32 
    Call-ID: 1890463548
    CSeq: 4331 PUBLISH 
    Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, 
    SUBSCRIBE, NOTIFY 
    Event: vq-rtcpxr 
    Accept: application/sdp, message/sipfrag 
    Content-Type: application/vq-rtcpxr 
    Content-Length: ... 

    VQSessionReport: CallTerm

    LocalMetrics: 
    Timestamps:START=2004-10-10T18:23:43Z STOP=2004-10-01T18:26:02Z
    SessionDesc:PT=18 PD=G729 SR=8000 FD=20 FO=20 FPP=2 PPS=50 
                    FMTP="annexb=no" PLC=3 SSUP=on 
    CallID: 6dg37f1890463  
    FromID: Alice <sip:alice@example.org> 
    ToID: Bill <sip:bill@elpmaxe.org> 
    OrigID: Alice <sip:alice@example.org>
    LocalAddr: IP=10.10.1.100 PORT=5000 SSRC=1a3b5c7d 
    LocalMAC: 00:1f:5b:cc:21:0f
    RemoteAddr:IP=11.1.1.150 PORT=5002 SSRC=0x2468abcd
    RemoteMAC: 00:26:08:8e:95:02 
    JitterBuffer:JBA=3 JBR=2 JBN=40 JBM=80 JBX=120 
    PacketLoss:NLR=5.0 JDR=2.0 
    BurstGapLoss:BLD=0 BD=0 GLD=2.0 GD=500 GMIN=16 
    Delay:RTD=200 ESD=140 SOWD=200 IAJ=2 MAJ=10 
    Signal:SL=-21 NL=-50 RERL=55 
    QualityEst:RLQ=90 RCQ=85 EXTRI=90 MOSLQ=4.2 MOSCQ=4.3 
      QoEEstAlg=P.564 

    RemoteMetrics: 
    Timestamps:START=2004-10-10T18:23:43Z STOP=2004-10-01T18:26:02Z
    SessionDesc:PT=18 PD=G729 SR=8000 FD=20 FO=20 FPP=2 PPS=50 
                    FMTP="annexb=no" PLC=3 SSUP=on 
    CallID:6dg37f1890463  
    LocalAddr:IP=11.1.1.150 PORT=5002 SSRC=1357efff 
    RemoteAddr:IP=10.10.1.100 PORT=5000 SSRC=0x2468abcd 
    JitterBuffer:JBA=3 JBR=2 JBN=40 JBM=80 JBX=120 
    PacketLoss:NLR=5.0 JDR=2.0 
    BurstGapLoss:BLD=0 BD=0 GLD=2.0 GD=500 GMIN=16 
    Delay:RTD=200 ESD=140 SOWD=200 IAJ=2 MAJ=10 
    Signal:SL=-21 NL=-45 RERL=55 
    QualityEst:RLQ=90 RCQ=85 MOSLQ=4.3 MOSCQ=4.2 QoEEstAlg=P.564 
    DialogID:1890463548@alice.example.org;to-tag=8472761;
       from-tag=9123dh311
]]></artwork></figure>
</section>

<section title="Alert Report using PUBLISH"> 
<figure><artwork><![CDATA[     
    Alice            Proxy/Registrar        Collector             Bob
    |                    |                    |                    | 
    |      INVITE F1     |                    |                    | 
    |------------------->|                    |                    | 
    |                    |      INVITE F2     |                    | 
    |                    |---------------------------------------->| 
    |                    |      200 OK F3     |                    | 
    |                    |<----------------------------------------| 
    |     200 OK F4      |                    |                    | 
    |<-------------------|                    |                    | 
    |        ACK F5      |                    |                    | 
    |------------------->|                    |                    | 
    |                    |      ACK F6        |                    | 
    |                    |---------------------------------------->| 
    |        RTP         |                    |                    | 
    |<============================================================>| 
    |        RTCP        |                    |                    | 
    |<============================================================>| 
    |  PUBLISH Event:vq-rtcpxr F7             |                    | 
    |------------------->|                    |                    | 
    |                    | PUBLISH Event:vq-rtcpxr F8              | 
    |                    |------------------->|                    | 
    |                    |     200 OK F9      |                    | 
    |                    |<-------------------|                    | 
    |     200 OK F10     |                    |                    | 
    |<-------------------|                    |                    | 
    |                    |                    |                    | 
    |      BYE F12       |                    |                    | 
    |------------------->|      BYE F13       |                    | 
    |                    |---------------------------------------->| 
    |                    |     200 OK F14     |                    | 
    |                    |<----------------------------------------| 
    |     200 OK F15     |                    |                    | 
    |<-------------------|                    |                    | 

Figure 4. Alert report message flow

   In the message flow depicted in Figure 4, the following message is
   sent in F7: 

    PUBLISH sip:collector@example.org SIP/2.0 
    Via: SIP/2.0/UDP pc22.example.org;branch=z9hG4bK3343d7 
    Max-Forwards: 70 
    To: <sip:collector@example.org> 
    From: Alice <sip:alice@example.org>;tag=a3343df32 
    Call-ID: 1890463548
    CSeq: 4321 PUBLISH 
    Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, 
    SUBSCRIBE, NOTIFY 
    Event: vq-rtcpxr 
    Accept: application/sdp, message/sipfrag 
    Content-Type: application/vq-rtcpxr 
    Content-Length: ... 
    
    VQAlertReport: Type=RLQ Severity=Warning Dir=local 
    Metrics: 
    Timestamps:START=2004-10-10T18:23:43Z STOP=2004-10-01T18:26:02Z
    SessionDesc:PT=0 PD=PCMU SR=8000 FD=20 FO=160 FPP=1 PPS=50 
                    PLC=3 SSUP=on 
    CallID: 6dg37f1890463
    FromID: Alice <sip:alice@example.org> 
    ToID: Bill <sip:bill@example.org> 
    OrigID: Alice <sip:alice@example.org>
    LocalAddr: IP=10.10.1.100 PORT=5000 SSRC=1a3b5c7d 
    LocalMAC: 00:1f:5b:cc:21:0f
    RemoteAddr:IP=11.1.1.150 PORT=5002 SSRC=0x2468abcd
    RemoteMAC: 00:26:08:8e:95:02 
    JitterBuffer:JBA=3 JBR=2 JBN=40 JBM=80 JBX=120 
    PacketLoss:NLR=5.0 JDR=2.0 
    BurstGapLoss:BLD=0 BD=0 GLD=2.0 GD=500 GMIN=16 
    Delay:RTD=200 ESD=140 SOWD=200 IAJ=2 MAJ=10 
    Signal:SL=-12 NL=-30 RERL=55 
    QualityEst:RLQ=60 RCQ=55 EXTR=90 MOSLQ=2.4 MOSCQ=2.3 
       QoEEstAlg=P.564 

    RemoteMetrics: 
    Timestamps:START=2004-10-10T18:23:43Z STOP=2004-10-01T18:26:02Z
    SessionDesc:PT=0 PD=PCMU SR=8000 FD=20 FO=160 FPP=1 PPS=50 
                    PLC=3 SSUP=on 
    CallID: 6dg37f1890463  
    LocalAddr:IP=11.1.1.150 PORT=5002 SSRC=9f7e5d3c 
    RemoteAddr:IP=10.10.1.100 PORT=5000 SSRC=2a4b6c8d 
    JitterBuffer:JBA=3 JBR=2 JBN=40 JBM=80 JBX=120 
    PacketLoss:NLR=5.0 JDR=2.0 
    BurstGapLoss:BLD=0 BD=0 GLD=2.0 GD=500 GMIN=16 
    Delay:RTD=200 ESD=140 SOWD=200 IAJ=2 MAJ=10 
    Signal:SL=-23 NL=-60 RERL=55 
    QualityEst:RLQ=90 RCQ=85 EXTRI=90 MOSLQ=4.2 MOSCQ=4.3 
       QoEEstAlg=P.564 
    DialogID:1890463548@alice.example.org;to-tag=8472761; 
            from-tag=9123dh3111 
]]></artwork></figure>
</section>

</section>

<section title="Configuration Dataset for vq-rtcpxr Events">
<t> 
It is the suggestion of the authors that the SIP configuration    framework [8] be used to establish the necessary parameters for    usage of vq-rtcpxr events.  A dataset for this purpose should be    designed and documented in a separate draft upon completion of     the framework.
</t>
</section>

</section>

<section title="IANA Considerations">
<t>  
This document registers a new SIP Event Package and a new MIME type. 
</t>

<section title="SIP Event Package Registration">
<figure><artwork><![CDATA[     
   Package name: vq-rtcpx 
   Type: package 
   Contact: Amy Pendleton <aspen@telchemy.com> 
   Published Specification: This document 
]]></artwork></figure>
</section>
<section title="application/vq-rtcp-xr MIME Registration">    
<figure><artwork><![CDATA[     
MIME media type name: application 
MIME subtype name: vq-rtcpxr 
Mandatory parameters: none 
Optional parameters: none 
Encoding considerations: text 
Security considerations: See next section. 
Interoperability considerations: none. 
Published specification: This document. 

Applications which use this media type: This document type is
being used in notifications of VoIP quality reports.

Additional Information: 

Magic Number: None 
File Extension: None 
Macintosh file type code: "TEXT" 

   Personal and email address for further information: Amy Pendleton
   <aspen@telchemy.com> 

   Intended usage: COMMON 

   Author/Change controller: The IETF.
]]></artwork></figure>
</section>
</section>

<section title="Security Considerations">
<t>
RTCP reports can contain sensitive information since they can provide    information about the nature and duration of a session established    between two or more endpoints.  As a result, any third party wishing    to obtain this information SHOULD be properly authenticated by the    SIP UA using standard SIP mechanisms and according to the  recommendations in [5]. Additionally the event content MAY be    encrypted to ensure confidentiality; the mechanisms for providing    confidentiality are detailed in [2].
</t>
</section>

<section title="Contributors">
<t>
The authors would like to thank Rajesh Kumar, Dave Oran, Tom    Redman, Shane Holthaus and Jack Ford for their comments and input.
</t>
</section>

</middle>
<back>
<references title="Normative References">

<?rfc include="reference.RFC.2119" ?>
<?rfc include="reference.RFC.3261" ?>
<?rfc include="reference.RFC.3550" ?>
<?rfc include="reference.RFC.3611" ?>
<?rfc include="reference.RFC.3265" ?>
<?rfc include="reference.RFC.5234" ?>
<?rfc include="reference.RFC.3339" ?>
<?rfc include="reference.RFC.3903" ?>

<?rfc include="reference.I-D.ietf-sipping-config-framework" ?>

<?rfc include="reference.RFC.5389" ?>

<reference anchor='G.1020'>
<front>
<title>Performance parameter definitions for quality of speech and other voiceband applications utilizing IP networks.</title>
<author surname='ITU-T G.1020' ></author>
</front>
</reference>

<reference anchor='P.564'>
<front>
<title>Conformance testing for voice over IP transmission quality assessment models.</title>
<author surname='ITU-T P.564' ></author>
</front>
</reference>


<reference anchor='G.107'>
<front>
<title>The E-model, a computational model for use in transmission planning. </title>
<author surname='ITU-T G.107' ></author>
</front>
</reference>

</references>

<references title="Informative References">


<?rfc include="reference.RFC.5117" ?>

<?rfc include="reference.I-D.ietf-sipping-overload-design" ?>



</references>

</back>
</rfc>


PAFTECH AB 2003-20262026-04-23 15:35:11