Internet Engineering Task Force A. Clark Internet-Draft Telchemy Incorporated Expires: 22 December 2006 A. Pendleton Nortel R. Kumar K. Connor Cisco Systems G. Hunt BT June 2006 RTCP HR - High Resolution VoIP Metrics Report Blocks draft-clark-avt-rtcphr-02 Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on 22 December 2006. Copyright Notice Copyright (C) The Internet Society (2006). Abstract This document defines extensions to the RTCP XR extended report packet type blocks to support Voice over IP (VoIP) monitoring for services that require higher resolution or more detailed metrics than those supported by RFC3611 [13]. Clark Expires August 2006 [Page 1] draft-clark-avt-rtcphr-02.txt June 2005 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . 2 3. High Resolution VoIP Metrics Report Block . . . . . . . . 5 4. RTCP HR Configuration Block . . . . . . . . . . . . . . . . 21 5. Application of RTCP HR to RTP translators. . . . . . . . . . 24 6. Practical applications . . . . . . . . . . . . . . . . . . 32 7. Summary . . . . . . . . . . . . . . . . . . . . . . . . . . 32 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . 32 9. Security Considerations . . . . . . . . . . . . . . . . . . 33 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 33 11. Informative References . . . . . . . . . . . . . . . . . . . 33 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . Intellectual Property and Copyright Statements . . . . . . . 1. Introduction This draft defines several new block types to augment those defined in RFC3611 for use in Quality of Service reporting for Voice over IP. The new block types support the reporting of metrics to a higher resolution to support certain applications, for example carrier backbone networks. For certain types of VoIP service it is desirable to report VoIP performance metrics to a higher resolution than provided in the RFC3611 [13] VoIP Metrics block or RFC3550 [12] Receiver Reports. The report blocks described in this section provide both interval based and cumulative metrics with a higher resolution than that provided in the RFC3611 VoIP metrics report block. The new block types defined in this draft are the High Resolution VoIP Metrics Report Block, and the High Resolution VoIP Metrics Configuration Block. 2. Definitions Clark Expires December 2006 [Page 2] draft-clark-avt-rtcphr-02.txt June 2005 2.1 Reporting modes RTCP HR report blocks may be produced by any of the types of RTP systems which are defined in RFC3550 [12] as capable of receiving RTP packets, that is, by an RTP end system, by an RTP mixer, or by an RTP translator. For purposes of sending reports about distribution quality, a mixer is equivalent to an end system, since mixers resynchronize audio packets before transmission and do not forward reception reports from contributing sources towards the destination of the mixed output RTP stream. However an RTP translator has RTP interfaces in more than one transport-level "cloud" RFC3550 [12], participating in the same session, and does not resynchronize audio packets in transit between "clouds". A translator may:- - forward RTCP reports generated by RTP systems in one cloud towards RTP systems in another cloud, possibly with modification - generate its own RTCP reports and send them to one or more of the clouds to which it is connected. This document defines three modes for reporting by translators. These modes are defined briefly here and described in more detail in section 5 below. "End system peering" is a mode in which a translator forwards RTCP reports originating from an RTP end system towards other RTP end systems (possibly with some modification consistent with the translation which it performs RFC3550 [12]). RTCP reports received from an end system are forwarded towards the same destination(s) as the destination(s) of the RTP packets received at the same interface as that at which the RTCP reports were received. This is the minimum which a translator must do to maintain the integrity of RTCP communication between the end systems. In end system peering mode, the translator does not originate any RTCP reports based on any measurements which it may make locally. "Local reporting" is a mode in which the translator forwards the end systems' reports as in "end system peering" mode, to maintain RTCP communication between end systems. In addition, the translator makes measurements on the RTP stream arriving at each receive transport interface, creating associated RTCP reports. These RTCP reports are sent by the translator both towards the source and destination(s) of the monitored RTP stream. However, the translator does not forward RTCP reports generated by other translators. "Local reporting" mode allows translators to assist in localising transport faults, whilst keeping RTCP traffic and processing bounded in systems which use large numbers of translators. "Global reporting" is a mode in which the translator forwards the end systems' reports as in "end system peering" mode, to maintain RTCP communication between end systems. In addition the translator makes measurements on the RTP stream arriving at each receive transport interface, creating associated RTCP reports. These RTCP Clark Expires August 2006 [Page 3] draft-clark-avt-rtcphr-02.txt June 2005 reports are sent by the translator both towards the source and destination(s) of the RTP stream. Finally, the translator also forwards RTCP reports generated by other translators, but only towards the same destination(s) as the destination(s) of the RTP stream received at the same interface as that at which the RTCP reports were received. In particular, no RTCP report received at a translator from a system S is ever sent back towards S. "Global reporting" provides complete transport metrics to every RTP system involved in a session. In particular, end systems receive reports of measurements made on RTP streams at all receive interfaces of every translator. However, the volume of RTCP traffic and RTCP processing may become excessively large in systems using large numbers of translators. In "local reporting" and "global reporting" modes, RTCP reports are generated based on measurements made on RTP streams received by translators. Typically translators are not able to make all of the measurements which an end system is able to make. For example, a translator does not contain a jitter buffer so cannot report on discarded packets. However, translators may make useful measurements of packet loss, round trip delay, and packet delay variation. 2.2 Cumulative and Interval Metrics Cumulative metrics relate to the entire duration of the call to the point at which metrics are determined and reported, and are typically used to report call quality. Cumulative metrics generally result in a lower volume of data that may need to be stored, as each report supersedes earlier reports. Interval metrics relate to the period since the last Interval report. Interval data may be easier to correlate with specific network events for which timing is known, and may also be used as a basis for threshold crossing alerts. Note that interval metrics for the start and end of calls may be unreliable due to factors such as irregular start and end interval length and the difficulty in knowing when packet transmission started and ended. 2.3 Bursts, Gaps, and Concealed Seconds The terms Burst and Gap are used in a manner consistent with that of RTCP XR (RFC3611). RTCP XR views a call as being divided into bursts, which are periods during which the combined packet loss and discard rate is high enough to cause noticeable call quality degradation (generally over 5 percent loss/discard rate), and gaps, which are periods during which lost or discarded packets are infrequent and hence call quality is generally acceptable. Clark Expires December 2006 [Page 4] draft-clark-avt-rtcphr-02.txt June 2005 The recommended value for Gmin in RFC3611 results in a Burst being a period of time during which the call quality is degraded to a similar extent to a typical PCM Severely Errored Second. The term Concealed Seconds defines a count of seconds during which some proportion of time was lost through packet loss and discard. The term Severely Concealed Seconds defines a count of seconds during which the proportion of time lost through packet loss and discard exceeds a specified threshold. 2.4 Numeric formats This report block makes use of binary fractions. The terminology used is S X:Y, where S indicates a signed representation, X the number of bits prior to the decimal place and Y the number of bits after the decimal place. Hence 8:8 represents an unsigned number in the range 0.0, 0.0039 to 255.996. S7:8 would represent the range -127.996 to +127.996. 3 High Resolution VoIP Metrics Report Block 3.1 Block Description This block comprises a header and a series of sub-blocks. The Map field in the header defines which sub-blocks are present. Header sub-block 0 1 2 3 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BT=N | Map | block length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SSRC of source | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Duration | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Basic Loss/Discard Metrics sub-block 0 1 2 3 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Loss Proportion | Discard Proportion | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Number of frames expected | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Clark Expires December 2006 [Page 5] draft-clark-avt-rtcphr-02.txt June 2005 Burst/Gap metrics sub-block 0 1 2 3 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Threshold | Burst Duration (ms) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Gap Duration (ms) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Burst Loss/Disc Proportion | Gap Loss/Disc Proportion | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Playout metrics sub-block 0 1 2 3 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | On-time Playout Duration | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | On-time Active Speech Playout Duration | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Loss Concealment Duration | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Buffer Adjustment Concealment Duration | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Concealed Seconds metrics sub-block 0 1 2 3 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Unimpaired Seconds | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Concealed Seconds | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Severely Concealed Seconds | RESERVED | threshold | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Clark Expires December 2006 [Page 6] draft-clark-avt-rtcphr-02.txt June 2005 Delay and PDV metrics sub-block 0 1 2 3 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Network Round Trip Delay | End System Delay | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | External Delay | Mean PDV | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Pos Threshold PDV | Pos PDV Percentile | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Neg Threshold PDV | Neg PDV Percentile | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | JB config | JB Metric | JB nominal | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | JB maximum | JB abs max | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Call Quality metrics sub-block 0 1 2 3 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | R-LQ | R-CQ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MOS-LQ | MOS-CQ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | R-LQ Ext In | R-LQ Ext Out |RFC3550 Payload| Media Type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RxSigLev (IP) |RxNoiseLev (IP)| Local RERL | Remote RERL | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RxSigLev (Ext)|RxNoiseLev(Ext)| Metric Status | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Vendor specific extension sub-block 0 1 2 3 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Vendor ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Vendor ID Src |Manuf Code Src | Extension Block Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Vendor-specific extension data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3.2 Header Implementations MUST send the Header block within each High Resolution Metrics report. 3.2.1 Block type Nine High Resolution VoIP Metrics blocks are defined mmm = HR Metrics- Cumulative, Locally Generated mmm+1 = HR Metrics- Cumulative, Relayed from Remote IP Endpoint Clark Expires December 2006 [Page 7] draft-clark-avt-rtcphr-02.txt June 2005 mmm+2 = HR Metrics- Cumulative, Relayed from Remote Ext Endpoint mmm+3 = HR Metrics- Cumulative,TBD mmm+4 = HR Metrics- Interval, Locally Generated mmm+5 = HR Metrics- Interval, Relayed from Remote IP Endpoint mmm+6 = HR Metrics- Interval, Relayed from Remote Ext Endpoint mmm+7 = HR Metrics- Interval, TBD mmm+7 = HR Metrics- Alert, Locally Generated mmm+9 = HR Metrics- Alert, Relayed from Remote IP Endpoint mmm+10 = HR Metrics- Alert, Relayed from Remote Ext Endpoint mmm+11 = HR Metrics- Alert, TBD The time interval associated with these report blocks is left to the implementation. Spacing of RTCP reports should be in accordance with RFC3550. The specific timing of RTCP HR reports may be determined in response to an internally derived alert such as a threshold violation however the spacing of RTCP HR reports must not exceed that defined in RFC3550. Note that interval data may be derived by subtracting successive cumulative reports, which provides increased tolerance to potential loss of RTCP reports. When these block types are used in SDP offer-answer, semantics are as defined in RFC3611 [13]. In particular, for "sendrecv" unicast connections, a block type in an offer indicates the offerer's wish to receive the specified block type. A block type in an answer indicates the answerer's wish to receive the specified block type. 3.2.2 Map field A Map field indicates the optional sub-blocks present in this report. A 1 indicates that the sub-block is present, and a 0 that the block is absent. If present, the sub-blocks must be in the sequence defined in this document. The bits have the following definitions: 0 Burst/Gap Metrics block 1 Playout Metrics block 2 Concealed Seconds Metrics block 3 Call Quality Metrics 4 Vendor specific extension block 5-15 Reserved, set to 0 3.2.3 Block Length The block length indicates the length of this report in 32 bit words and includes the header and any extension octets. Clark Expires December 2006 [Page 8] draft-clark-avt-rtcphr-02.txt June 2005 3.2.4 SSRC The SSRC of the stream to which this report relates. The value of this field shall follow the rules defined in RFC3550 with regard to the forwarding of RTP and RTCP messages. 3.2.5 Duration The duration of time for which this report applies expressed in milliseconds. For cumulative reports this would be the call duration. For interval reports this would be the duration of the interval. 3.3 Basic Loss/ Discard Metrics The Basic Loss/Discard Metrics sub-block MUST be present. This block reports the proportion of frames lost by the network and the proportion of frames discarded due to jitter. For sample-based codecs such as G.711, a frame shall be defined as an RTP frame. For endpoints that incorporate jitter buffers capable of fractional frame discard the proportion of frames discarded MAY be determined on the basis of the proportion of samples discarded. If Voice Activity Detection is used then the proportion of frames lost and discarded shall be determined based on transmitted packets, i.e. frames that contained silence and were not transmitted shall not be considered. A frame shall be regarded as lost if it fails to arrive within an implementation-specific time window. A frame that arrives within this time window but is too early or late to be played out shall be regarded as discarded. A frame shall be classified as one of received (or OK), discarded or lost. The Loss and Discard metrics are determined after the effects of FEC, redundancy (RFC2198) or other similar process. 3.3.1 Proportion of frames lost Proportion of frames lost within the network expressed as a binary fraction in 0:16 format. Duplicate frames shall be disregarded. 3.3.2 Proportion of frames discarded Proportion of voice frames received but discarded due to late or early arrival, expressed as a binary fraction in 0:16 format. 3.3.3 Dead connection detection If no RTP, SID or RTP no-op packets have been received for a pre- specified time interval(for example ten seconds) then an RTCP HR dead connection indication MUST be sent. This time interval may be changed during the connection, for example being longer at the start of a call. Dead connection detection may be temporarily disabled during silence periods if VAD is used. A dead connection is indicated by setting both the frames lost Clark Expires December 2006 [Page 9] draft-clark-avt-rtcphr-02.txt June 2005 and frames discarded fields above to 0xFFFF (equivalent to indicating 99.99% of packets have been both lost and discarded). Receipt of an RTCP HR block with either field set to a value other than 0xFFFF shall indicate that the remote endpoint HAS received some valid RTP packets. 3.3.4 Number of frames expected A count of the number of frames expected, estimated if necessary. If no frames have been received then this count shall be set to zero, however if a dead connection is indicated then this count shall be regarded as undefined. 3.4 Burst/Gap metrics sub-block The Burst/Gap metrics sub-block MAY be present and if present MUST be indicated in the Map field. This block provides information on transient IP problems and is able to represent the combined effect of packet loss and packet discard. Burst/Gap metrics are typically used in Cumulative reports however MAY be used in Interval reports. The definition of Burst and Gap is consistent with that defined in the RFC3611 VoIP Metrics block, with the clarification that Loss and Discard are defined in terms of frames (as described in 3.3 above). To accomodate the range of jitter buffer algorithms and packet discard logic that may be used by implementors, the method used to distinguish between bursts and gaps may be an equivalent method to that defined in RFC3611. The method used SHOULD produce the same result as that defined in RFC3611 for conditions of burst packet loss, but MAY produce different results for conditions of time varying jitter. If Voice Activity Detection is used the Burst and Gap Duration shall be determined as if silence frames had been sent, i.e. a period of silence in excess of Gmin frames MUST terminate a burst condition. The Burst/Gap Metrics sub-block contains the following elements. 3.4.1 Threshold The Threshold is equivalent to Gmin in RFC3611, i.e. the number of successive frames that must be received and not discarded prior to and following a lost or discarded frame in order for this lost or discarded frame to be regarded as part of a gap. 3.4.2 Burst Duration (ms) The average duration of a burst of lost and discarded frames. 3.4.3 Gap Duration (ms) The average duration of periods between bursts. Clark Expires December 2006 [Page 10] draft-clark-avt-rtcphr-02.txt June 2005 3.4.4 Burst Loss/Discard Rate The proportion of Lost and Discarded frames during Bursts expressed as a binary fraction expressed in 0:16 format. 3.4.5 Gap Loss/Discard Rate The proportion of Lost and Discarded frames during Gaps expressed as a binary fraction expressed in 0:16 format. 3.5 Playout Metrics sub-block The Playout Duration metrics sub-block MAY be present and if present MUST be indicated in the Map field. At any instant, the audio output at a receiver may be classified as either 'normal' or 'concealed'. 'Normal' refers to playout of audio payload received from the remote end, and also includes locally generated signals such as announcements, tones and comfort noise. Concealment refers to playout of locally-generated signals used to mask the impact of network impairments or to reduce the audibility of jitter buffer adaptations. This sub-block accounts for the source of the output audio, in millisecond units. The on-time and active speech playout durations allow calculation of the voice activity fraction. The on-time, and concealment durations allow calculation of concealment ratios. This sub-block distinguishes between reactive (due to effective packet loss) and proactive (due to buffer adaptation) concealment. 3.5.1 On-time Playout Duration 'On-time' playout is the uninterrupted, in-sequence playout of valid decoded audio information originating from the remote endpoint. This includes comfort noise during periods of remote talker silence, if VAD is used, and locally generated or regenerated tones and announcements. An equivalent definition is that on-time playout is playout of any signal other than those used for concealment. On-time playout duration MUST include both speech and silence intervals, whether VAD is used or not. This duration is reported in millisecond units. 3.5.2 On-time Active Speech Playout Duration (optional) The duration, in milliseconds, of the on-time playout duration corresponding to playout of active speech signals, if known. If not known, then this field is set to all ones (0x FFFF FFFF). In the absence of silence suppression, on-time active speech playout equals on-time playout (section 3.5.1). Clark Expires December 2006 [Page 11] draft-clark-avt-rtcphr-02.txt June 2005 3.5.3 Loss Concealment Duration The duration, in milliseconds, of audio playout corresponding to Loss-type concealment. Loss-type concealment is reactive insertion or deletion of samples in the audio playout stream due to effective frame loss at the audio decoder. "Effective frame loss" is the event in which a frame of coded audio is simply not present at the audio decoder when required. In this case, substitute audio samples are generally formed, at the decoder or elsewhere, to reduce audible impairment. Only loss-type concealment is necessary to form Concealed and Severely Concealed Seconds counts, in Section 3.6. 3.5.4 Buffer Adjustment Concealment Duration (optional) The duration, in milliseconds, of audio playout corresponding to Buffer Adjustment-type concealment, if known. If not known, then this field is set to all ones (0x FFFF FFFF). Buffer Adjustment-type concealment is proactive or controlled insertion or deletion of samples in the audio playout stream due to jitter buffer adaptation, re-sizing or re-centering decisions within the endpoint. Because this insertion is controlled, rather than occurring randomly in response to losses, it is typically less audible than loss-type concealment (section 3.5.3). For example, jitter buffer adaptation events may be constrained to occur during periods of talker silence, in which case only silence duration is affected, or sophisticated time-stretching methods for insertion/deletion during favorable periods in active speech may be employed. For these reasons, buffer adjustment-type concealment MAY be exempted from inclusion in calculations of Concealed Seconds and Severely Concealed Seconds. However, an implementation SHOULD include buffer-type concealment in counts of Concealed Seconds and Severely Concealed Seconds if the event occurs at an 'inopportune' moment, with an emergency or large, immediate adaptation during active speech, or for unsophisticated adaptation during speech without regard for the underlying signal, in which cases the assumption of low-audibility cannot hold. In other words, jitter buffer adaptation events which may be presumed to be audible SHOULD be included in Concealed Seconds and Severely Concealed Seconds counts. Concealment events which cannot be classified as Buffer Adjustment- type MUST be classified as Loss-type. 3.6 Concealed Seconds metrics sub-block The Concealed Seconds metrics sub-block MAY be present and if present MUST be indicated in the Map field. Clark Expires December 2006 [Page 12] draft-clark-avt-rtcphr-02.txt June 2005 This sub-block provides a description of potentially audible impairments due to lost and discarded packets at the endpoint, expressed on a time basis analogous to a traditional PSTN T1/E1 errored seconds metric. The following metrics are based on successive one second intervals as declared by a local clock. This local clock does NOT need to be synchronized to any external time reference. The starting time of this clock is unspecified. Note that this implies that the same loss pattern could result in slightly different count values, depending on where the losses occur relative to the particular one-second demarcation points. For example, two loss events occurring 50ms apart could result in either one concealed second or two, depending on the particular 1000 ms boundaries used. The seconds in this sub-block are not necessarily calendar seconds. At the tail end of a call, periods of time of less than 1000ms shall be incorporated into these counts if they exceed 500mS and shall be disregarded if they are less than 500mS. 3.6.1 Unimpaired Seconds A count of the number of unimpaired Seconds that have occurred on this call. An unimpaired Second is defined as a continuous period of 1000ms during which no frame loss or discard due to late arrival has occurred. Every second in a call must be classified as either OK or Concealed. Normal playout of comfort noise or other silence concealment signal during periods of talker silence, if VAD is used, shall be counted as unimpaired seconds. 3.6.2 Concealed Seconds A count of the number of Concealed Seconds that have occurred on this call. A Concealed Second is defined as a continuous period of 1000ms during which any frame loss or discard due to late arrival has occurred. Equivalently, a concealed second is one in which some Loss-type concealment (defined in section 3.6) has occurred. Buffer adjustment-type concealment SHALL not cause Concealed Seconds to be incremented, with the following exception. An implementation MAY cause Concealed Seconds to be incremented for 'emergency' buffer adjustments made during talkspurts. For clarification, the count of Concealed Seconds MUST include the count of Severely Concealed Seconds. Clark Expires December 2006 [Page 13] draft-clark-avt-rtcphr-02.txt June 2005 3.6.3 Severely Concealed Seconds A count of the number of Severely Concealed Seconds that have occurred on this call. A Severely Concealed Second is defined as a non-overlapping period of 1000 ms during which the cumulative amount of time that has been subject to frame loss or discard due to late arrival, exceeds the SCS Threshold. 3.6.4 SCS Threshold The SCS Threshold defines the amount of time corresponding to lost or discarded frames that must occur within a one second period in order for the second to be classified as a Severely Concealed Second. This is expressed in milliseconds and hence can represent a range of 0.1 to 25.5 percent loss/ discard. A default threshold of 50ms (5% effective frame loss per second) is suggested. 3.7 Delay and Packet Delay Variation (PDV) metrics sub-block The Delay and PDV metrics sub-block MUST be present. This sub-block contains a number of parameters related to overall delay (latency), delay variation and the current jitter buffer configuration. [Authors' note - need to add high and low water marks] 3.7.1 Network Round Trip Delay (ms) The Network Round Trip Delay is the most recently measured value of the RTP-to-RTP interface round trip delay, typically determined using RTCP SR/RR. If no measured delay is available then this field shall be set to 0xFFFF [Note - potentially add one way delay] 3.7.2 End System Delay (ms) The End System Delay is the internal round trip delay within the endpoint, calculated using the nominal value of the jitter buffer delay plus the accumulation/ encoding and decoding / playout delay associated with the codec being used. 3.7.3 External Network Delay (ms) The External Network Delay parameter indicates external network round trip delay through cellular, satellite or other types of network with significant delay impact, if known. A value of 0xFFFF shall indicate that the delay is unknown. If the external network is VoIP based then this parameter is typically determined using RTCP SR/RR. If the external network delay is known and does not vary materially then this value may be provisioned. Clark Expires December 2006 [Page 14] draft-clark-avt-rtcphr-02.txt June 2005 3.7.4 PDV/ Jitter Metrics Jitter metrics defined are: (i) Mean PDV - for cumulative reports this is a running average of PDV and for interval reports this is an interval average (16 bit, S11:4 format) expressed in milliseconds (ii) Threshold PDV - the PDV associated with the PDV percentile (16 bit, S11:4 format) expressed in milliseconds, both positive and negative thresholds are given (iii)PDV Percentile - the percentage of packets on the call for which individual packet delays were outside the Threshold PDV, expressed in 8:8 format. Both positive and negative percentiles are given. 3.7.5 PDV Type Indicates the type of algorithm used to calculate PDV: PPDV (0) according to RFC3550, MAPDV (1) according to ITU-T G.1020, IPDV (2) according to ITU-T Y.1540 Other values reserved For example:- (a) To report PPDV (RFC3550): Mean PDV = PPDV Threshold PDV = Undefined (FF FF) PDV Percentile = Undefined (FFF) PDV type = 0 PPDV (b) To report 95th percentile MAPDV (G.1020): Mean PDV = average MAPDV Pos Threshold PDV = 50.0 Pos PDV Percentile = 95.3 Neg Threshold PDV = 50.0 (note - implies -50ms) Neg PDV Percentile = 98.4 PDV type = 1 MAPDV Note that implementations may either fix the reported percentile and calculate the associated PDV level OR may fix a threshold PDV level and calculate the associated percentile. From a practical implementation perspective it is simpler to use the second of these approaches. 3.7.6 Jitter Buffer and PLC Configuration Indicates the configuration of the jitter buffer and the type of PLC algorithm in use. Clark Expires December 2006 [Page 15] draft-clark-avt-rtcphr-02.txt June 2005 bits 0-3 0 = silence insertion 1 = simple replay, no attenuation 2 = simple replay, with attenuation 3 = enhanced ? = ? Other values reserved bits 4-7 0 = Fixed jitter buffer 1 = Adaptive jitter buffer Other values reserved 3.7.7 Jitter Buffer Size parameters Current nominal, maximum and absolute maximum jitter buffer size expressed in milliseconds, as defined in RFC3611. 3.8 Call Quality Metrics sub-block The Call Quality Metrics sub-block MAY be present and if present MUST be indicated in the Header Map field. This sub-block reports call quality metrics and estimates of signal, noise and echo levels. Signal, noise and echo metrics should be long term averages and should not be instantaneous values. 3.8.1 Listening and Conversation Quality R Factors Expresses listening and conversational quality in terms of R factor, a 0-120 scaled parameter in 8:8 format. The algorithm used to calculate R factor MAY be defined in the Voice/Data Quality Metric Algorithm block. 3.8.2 Listening and Conversation Quality MOS Scores Expresses listening and conversational quality in terms of MOS, a 1-5 scaled parameter in 8:8 format. The algorithm used to calculate MOS MAY be defined in the Voice/Data Quality Metric Algorithm block (see Section 4). Note that R factors and MOS scores may be defined for both narrow and wide-band VoIP calls. R Factors are continuous for narrow and wideband, hence the R factor for a wideband call may be higher than that for a narrowband call. MOS scores are scaled relative to reference conditions and hence both narrow and wideband MOS occupy the same 1-5 scale; this can lead to a wideband MOS being lower than a narrowband MOS even though the listening quality may be higher. 3.8.3 R-LQ External In and Out. R-LQ External In - measured by this endpoint for incoming connection on "other" side of this endpoint R-LQ External Out - copied from RTCP XR message received from remote endpoint on "other" side of this endpoint Clark Expires December 2006 [Page 16] draft-clark-avt-rtcphr-02.txt June 2005 e.g. Phone A <---> Bridge <----> Phone B In XR message from Bridge to Phone A:- - R-LQ = quality for PhoneA ----> Bridge path - R-LQ-ExtIn = quality for Bridge <---- Phone B path - R-LQ-ExtOut = quality for Bridge -----> Phone B path This allows PhoneA to assess (i) received quality from the combination of R-LQ measured at A and R-LQ-ExtIn reported by the Bridge to A (ii) remote endpoint quality from the combination of R-LQ reported by the Bridge and R-LQ-ExtOut reported by the Bridge 3.8.4 RFC3550 RTP Payload Type The RTP Payload type field - as per RFC3551 and http://www.iana.org/assignments/rtp-parameters If the RFC3550 Payload type indicates a dynamic payload then it is strongly recommended that the Extended Payload Descriptor sub-block (Section 4.4) be sent in order that mid-stream management systems can identify the codec type used. 3.8.5 Media Type Media type - 0 = No media present 1 = Narrowband audio 2 = Wideband audio 3.8.6 Received Signal and Noise Levels - IP side The received signal level during talkspurts and the noise level expressed in dBm0, for the decoded packet stream. 3.8.7 Received Signal and Noise Levels - External The received signal level during talkspurts and the noise level expressed in dBm0, for the PCM side of a gateway, audio input from a handset or decoded packet stream for an IP-to-IP gateway. 3.8.8 Local and Remote Residual Echo Return Loss The Local and Remote Residual Echo Return Loss (RERL) expressed in dB. The Local RERL is the echo level that would be reflected into the Clark Expires December 2006 [Page 17] draft-clark-avt-rtcphr-02.txt June 2005 IP path due to line echo on the circuit switched element side of this IP endpoint if a gateway or acoustic echo if a handset or wireless terminal. The Remote RERL is the echo level that would be reflected into the remote IP endpoint from the network "behind" it, and would typically be measured at and reported from the remote endpoint. This value is included as it may be used in calculating the R-CQ and MOS-CQ values expressed in this report block. 3.8.9 Metric Status Indicates the source of parameter values used in call quality calculation: Bit Description Source 0-1 Local IP side Signal/Noise Levels measured on the incoming decoded VoIP stream to this endpoint 00 = assumed 01 = measured for this call 10 = measured across multiple calls on this port 11 = measured across multiple ports 2-3 Remote IP side Signal/Noise Levels reported by the remote IP endpoint through RTCP XR or equivalent 00 = assumed 01 = measured for this call 10 = measured across multiple calls on this port 11 = measured across multiple ports 4-5 Local Trunk side Signal/Noise Levels measured on the incoming PCM, Audio or non-IP side of this endpoint 00 = assumed 01 = measured for this call 10 = measured across multiple calls on this port 11 = measured across multiple ports 6-7 Local Echo level measured in the incoming line/ trunk/ handset direction at this endpoint after the effects of echo cancellation 00 = assumed 01 = measured for this call 10 = measured across multiple calls on this port 11 = measured across multiple ports Clark Expires December 2006 [Page 18] draft-clark-avt-rtcphr-02.txt June 2005 8 Remote Echo level measured in the incoming line/ trunk/ handset direction at the remote endpoint after the effects of echo cancellation and reported to this endpoint via RTCP XR or equivalent. 0 = assumed 1 = reported from remote endpoint 9-15 Reserved For example, if this endpoint is "C" in the diagram below then the following definitions would apply. Endpoint B -----RTP-------> Gateway C <-----PCM-------> D "Remote" "Local" "Trunk/PCM/External" Reporting endpoint is "B" Local IP side signal/noise metrics relate to signal/noise levels from decoded RTP packets received by C from B Remote IP side signal/noise metrics relate to signal/noise levels from decoded RTP packets received by B from C, and reported by B to C through RTCP XR or RTCP HR VoIP Metrics blocks Local Trunk side signal/noise metrics relate to signal/noise levels from the PCM signal received by C from D Local Echo level relates to the proportion of the signal passing from B to C to D that is reflected back to C at some point between C and D or on the far side of D. This would typically be electrical echo or acoustic echo. Remote Echo level relates to the proportion of the signal passing from D to C to B that is reflected back to B at some point between B and the user. This echo level is typically measured at B and reported to C via RTCP XR or RTCP HR VoIP Metrics blocks. Clark Expires December 2006 [Page 19] draft-clark-avt-rtcphr-02.txt June 2005 3.9 Vendor Extension sub-block One or more Vendor Extension sub-blocks MAY be present. Their presence MUST be indicated in the Header Map field. Note that the map field does not indicate the number of vendor extension sub-blocks. This must be deduced from the length of the overall report block and the lengths of the Vendor Extension sub-blocks. Each vendor extension sub-block consists of an extension header and vendor-specific extension data. The extension header has the form Vendor ID, Vendor ID Source and Extension Block Length. The Extension Block Length is defined as including these extension header and extension data octets but does not include any subsequent vendor extension sub-blocks. An implementation can skip over a vendor extension sub-block that it does not understand. The Vendor ID Source field indicates whether the four-octet Vendor ID is based on ITU T.35 or is an IANA private enterprise number. The designated values for these options are 1 and 2 respectively. If the Vendor ID Source field is assigned a value of 0, then all of the fields in the vendor extension sub-block with the exception of the Vendor ID Source field and the Extension Block Length field have proprietary definitions. If the Vendor ID is based on ITU-T Recommendation T.35, its first two octets either contain a country code from Annex A of ITU-T Rec. T.35 followed by 0x00, or an escape code of 0xFF followed by a country code from Annex B of ITU-T Rec. T.35. The next two octets comprise a terminal provider code allocated by a national assignment authority (http://people.itu.int/~campos/t35/t35db.htm). This field is padded with leading zeros if necessary. If a vendor has multiple terminal provider codes in different registries (e.g. the H-series, T-series and V-series registries for the USA), then this provenance shall be indicated in the Manufacturer Code Source field. Possible values of the Manufacturer Code Source field are: 0 Unspecified/don't care (may be used if there is no conflict) 1 G-series registry 2 H-series registry 3 T-series registry 4 V-series registry 5-255 Reserved. If the four-octet Vendor ID is an IANA private enterprise number, then it is padded with leading zeros as necessary. Current private enterprise numbers (www.iana.org/assignments/enterprise-numbers) can be accommodated within two octets. The additional two octets provide for future growth. Clark Expires December 2006 [Page 20] draft-clark-avt-rtcphr-02.txt June 2005 4. RTCP HR Configuration Block This block type provides a flexible means to describe the algorithms used for call quality calculation and other data. This block need only be exchanged occasionally, for example sent once at the start of a call. Header sub-block 0 1 2 3 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BT=N | Map | block length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SSRC of source | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Correlation Tag sub-block 0 1 2 3 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Tag Type | Tag length | Correlation Tag... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... Correlation Tag | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Algorithm sub-block 0 1 2 3 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Alg type | Descriptor len| Algorithm descriptor... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... Algorithm descriptor | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Vendor Specific Extensions sub-block 0 1 2 3 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Vendor ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Vendor ID Src |Manuf Code Src | Extension Block Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Vendor-specific extension data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4.1 Header Implementations MUST send the Header block within each RTCP HR Configuration report. Clark Expires December 2006 [Page 21] draft-clark-avt-rtcphr-02.txt June 2005 4.2.1 Block type One RTCP HR Configuration block is defined mmm+12 = RTCP HR Configuration Block The time interval associated with these report blocks is left to the implementation. Spacing of RTCP reports should be in accordance with RFC3550 however the specific timing of RTCP HR reports may be determined in response to an internally derived alert such as a threshold crossing. 4.2.2 Map field An Map field indicates the optional sub-blocks present in this report. A '1' indicates that the sub-block is present, and a '0' that the block is absent. If present, the sub-blocks must be in the sequence defined in this document. The bits have the following definitions: 0 Correlation Tag 1 Algorithm Descriptor 1 2 Algorithm Descriptor 2 3 Algorithm Descriptor 3 4 Algorithm Descriptor 4 5 Algorithm Descriptor 5 6 Algorithm Descriptor 6 7 Algorithm Descriptor 7 8 Algorithm Descriptor 8 9 Vendor Specific Extension 10-15 Reserved, set to '0' 4.2.3 Block Length The block length indicates the length of this report in 32 bit words and includes the header and any extension octets. 4.2.4 SSRC The SSRC of the stream to which this report relates. 4.3 Correlation Tag The Correlation Tag sub-block MAY be present and if present MUST be indicated in the map field. This tag facilitates the correlation of the high resolution VoIP metrics report blocks with other call-related data, session-related data or endpoint data. An example use case is for an endpoint may convey its version of a call identifier or a global call identifier via this tag. A flow measurement tool (sniffer) that is not call-aware can then forward the RTCP-HR reports along with this correlation tag to network management. Network management can then use this tag to correlate this report with other diagnostic information such as call detail records. Clark Expires December 2006 [Page 22] draft-clark-avt-rtcphr-02.txt June 2005 The Tag Type indicates the use of the correlation tag. The following values are defined: 0: IMS Charging Identity (ICID) subfield of the P-Charging-Vector header specified in RFC 3455 [1]. 1: Globally unique ID as specified in ITU-T H.225.0 (Table 20/H.225.0) [2]. 2: Conference Identifier, per ITU-T H.225.0 (Table 20/H.225.0) [2]. 3: SIP Call-ID as defined in RFC 3261 [3]. 4: PacketCable Billing Call ID (BCID) [4]. 5: Text string using the US-ASCII character set [5]. 6: Octet sting. 7-255: Future growth. Although the intent of this RFC is to list all currently known values of usable correlation tags, it is possible that new values may be defined in the future. An IANA registry of correlation tags is recommended. The tag length indicates the overall length of the sub-block in 32 bit words and includes the tag type and length fields. 4.4 Algorithm descriptor The Algorithm Type sub-block MAY be present and if present MUST be indicated in the map field The Algorithm Type is a bit field which indicates which algorithm is being described. The bits are defined as:- Bit 0: MOS-LQ Algorithm Bit 1: MOS-CQ Algorithm Bit 2: R-LQ Algorithm Bit 3: R-CQ Algorithm Bit 4-7: Reserved and set to '0' The descriptor length gives the overall length of the descriptor in 32 bit words and includes the algorithm descriptor and length fields. Clark Expires December 2006 [Page 23] draft-clark-avt-rtcphr-02.txt June 2005 The algorithm descriptor is a text field that contains the description or name of the algorithm. If the algorithm name is shorter than the length of the field then the trailing octets must be set to 0x00. For example, an implementation may report: Algorithm descriptor = 0xF0 - R and MOS algorithms Descriptor length = 3 - 3 words Descriptor = "Alg X" 0x00 - description Call quality estimation algorithms may be defined for listening or conversational quality MOS or R factor. 4.4 Vendor Extension field One or more vendor specific extension blocks may be added, as defined in Section 3.10 5. Application of RTCP HR to RTP translators RFC3550 [12] defines three types of RTP systems which may source and sink RTP streams. These types are RTP end systems, RTP mixers, and RTP translators. For purposes of reporting connection quality to other RTP systems, RTP mixers and RTP end systems are very similar. Mixers resynchronize audio packets and do not relay RTCP reports received from one cloud towards other cloud(s). Translators do not resynchronize packets and SHOULD forward certain RTCP reports between clouds. Translators have a wide range of possible reporting behaviours. This section describes in more detail the application of RTCP HR to RTP translators. An RTP translator is defined in RFC3550 [12] as "An intermediate system that forwards RTP packets with their synchronization source identifier intact". RFC3550 gives the following examples of translators: devices that convert encodings without mixing; replicators from multicast to unicast; and application-level filters in firewalls. An RTP translator has at least two RTP connections via different logical interfaces to network clouds, with logical separation based on a transport layer identifier (e.g. by UDP port) or at a lower layer (e.g. IP address, Ethernet VLAN identifier, ATM VCI, or physical interface). RTP traffic streams flowing via these two connections may be unicast or multicast, and may be unidirectional or bidirectional. Section 7 of RFC3550 [12] defines the RTCP processing in the translator which is required to maintain correct semantics for the RTCP communication between the RTP end systems involved in the connection. Clark Expires December 2006 [Page 24] draft-clark-avt-rtcphr-02.txt June 2005 Where the RTP translator makes its own measurements of the incoming packet stream, section 7 of RFC3550 [12] allows it to send RTCP reception reports about what it has received. To do this, it is allowed to allocate an SSRC and a CNAME for itself. An RTP translator has several potential sources of information about transport and application quality in a session. These include o RTCP (including XR and HR) reports received from RTP end systems and mixers o RTCP (including XR and HR) reports received from other translators o Measurements made locally on incoming RTP streams at the translators' interfaces In general, it is a matter of policy whether each of these types of information should be reported or forwarded by the translator towards neighbouring RTP systems involved in the same session. The objective of this policy may be to ensure that sufficient information is available to support network and service management at RTP systems, whilst avoiding excessive RTCP processing. Where a translator forms a boundary between service providers' domains, a provider may wish to apply policy to restrict the release of network performance information towards the provider's peer. This suggests that policy controlling reporting and forwarding of RTCP information MAY be configurable differently for each network interface. This allows certain types of RTCP reports for the session to be sent outwards via one subset of the translator's interfaces involved in the session, whilst restricting reporting and forwarding outwards via another subset. The following behaviours are potentially useful: o RTCP [12] reports received from an upstream RTP end system or mixer SHOULD be forwarded towards the downstream RTP end systems or mixers involved in the session. This behaviour is RECOMMENDED to maintain the integrity of the RTCP connection between the RTP end systems involved in the connection. We call this behaviour "a" to aid discussion below of the examples of end-to-end capabilities. Clark Expires December 2006 [Page 25] draft-clark-avt-rtcphr-02.txt June 2005 o RTCP XR and RTCP HR reports received from an upstream RTP end system or mixer MAY be forwarded towards the downstream RTP end systems or mixers involved in the session. We call this behaviour "b". o The results of measurements made on an RTP stream received at one of the translator's network interfaces MAY be sent out as RTCP reports towards neighbouring RTP systems, either upstream in the direction towards the RTP system which originated the RTP stream (behaviour "c1"), or downstream in the direction towards the RTP system(s) which will receive the translated RTP stream (behaviour "c2"), or both upstream and downstream (described as behaviour "c1+c2"). o RTCP XR and RTCP HR reports received from an upstream RTP translator MAY be forwarded towards the downstream RTP end systems or mixers involved in the session. We call this behaviour "d". In the next section we illustrate how policies may be applied to control these behaviours and hence achieve three end-to-end reporting modes "end system peering", "local reporting" and "global reporting" for a hypothetical bidirectional unicast connection using translators. These three modes provide different compromises between the amount of information available to the RTP systems, and the amount of RTCP traffic and processing. Other modes are possible, for example where policy restricts forwarding of reports on network performance to another operator, but these are out of the scope of this document. To help discussion of these example modes, we name the translator's left-side connections to the first cloud as 1T and 1R, where 1T is the connection on which the translator transmits packets to the first cloud and 1R is the connection on which the translator receives packets from the first cloud. Similarly the translator's right-side connections to the second cloud are named 2T and 2R. 5.1 Examples of measurement modes involving translators The three modes are described with reference to the following example, a bidirectional unicast connection which includes two RTP end systems A and Z connected through 3 translators J, K and L: ---- ----- ----- ----- ---- | T|-->|1R 2T|-->|1R 2T|-->|1R 2T|-->|R | | A | | J | | K | | L | | Z | | R|<--|1T 2R|<--|1T 2R|<--|1T 2R|<--|T | ---- ----- ----- ----- ---- The notation X.nR is used below for the receive interface of RTP system X facing a cloud identified by an index n, and similarly the Clark Expires December 2006 [Page 26] draft-clark-avt-rtcphr-02.txt June 2005 notation X.nT is used for X's transmit interface facing the same cloud. The index n is local to the RTP system, that is, a cloud identified as "1" by one translator may be identified as "2" by a neighbouring translator, including one connected to the same cloud. Where an RTP system is connected to only one cloud (as for RTP end -systems), the index n is dropped. 5.1.1 End system peering mode In the first mode, called "end system peering", a translator forwards RTCP reports generated by end systems but does not send any report of its own measurements (if any) to peer RTP/RTCP devices. RTCP reports received at 1R are sent out from 2T, and reports received at 2R are sent out from 1T. This end-to-end mode is achieved by policy to permit behaviours "a" and "b" at all translators involved in the connection. Note that translators operating in "end system peering" mode MAY make measurements on incoming RTP streams, and MAY report the measurements via "northbound" interfaces to management or session control systems, but such measurement and reporting is out of scope of this document. The following illustrates "end system peering" using the example connection. In "end system peering" mode, no measurements made at translators are sent in RTCP. Measurements made on the RTP stream received at end-system A's interface A.R are sent in RTCP from A.T, received at J.1R and relayed from J.2T. Following this pattern they are then successively received at K.1R and relayed from K.2T, received at L.1R and relayed from L.2T, and finally received at A's peer, the end-system Z, on interface Z.R. In the reverse direction (assuming a unicast bidirectional connection), measurements made on the RTP stream received at interface Z.R are sent in RTCP from Z.T, received at L.2R and relayed from L.1T, and follow this pattern until they are finally relayed from J.1T and received at Z's peer, the end-system A, on interface A.R. A translator may identify RTCP packets sent by an end system because they have the same SSRC as the RTP packets received at the same interface. Hence a translator behaving according to "a", or "a" and "b", (thus operating in "end system peering" mode) MAY police the mode (reducing the load on downstream systems) by discarding RTCP packets which do not have the same SSRC as the RTP traffic. The advantage of "end system peering" mode is that it minimises processing in translators whilst allowing compliance to section 7.2 of RFC3550 [12]. The amount of RTCP traffic is not increased by the introduction of translators into the connection. Clark Expires December 2006 [Page 27] draft-clark-avt-rtcphr-02.txt June 2005 The disadvantage of the "end system peering" mode is that RTP systems making up the connection are unable to identify the network segment in which an impairment occurred, because the RTP translators which form the boundaries between networks do not report measurements of impairments to their peer RTP systems. Note that in order to be compliant to [12], any processing of RTP packets by the translator must be accompanied by appropriate modification of RTCP fields such that the RTCP information remains consistent with the modified RTP traffic and will make sense to the RTP end-system which receives the translated stream. Hence a translator's forwarding of RTCP packets may include modification of the RTCP. 5.1.2 Local Reporting mode In the second mode, called "local reporting", a translator forwards RTCP reports generated by end systems, and also sends reports of its own measurements for both directions of transmission to both neighbouring RTP/RTCP devices (which may also be translators, but may instead be mixers or end systems). However a translator does not forward reports received from an RTP device which is not an end system or mixer. Specifically, RTCP reports originated by an RTP end system or mixer, and received at 1R, are sent out from 2T. RTCP reports originated by an RTP end system or mixer, and received at 2R, are sent out from 1T. In addition, reports based on measurements made by the translator itself on the packet stream incoming at 1R are sent out via both 1T and 2T. Similarly, reports based on measurements made by the translator itself on the packet stream incoming at 2R are sent out via both 1T and 2T. However, RTCP reports originated by a neighbouring translator and received at 1R are not forwarded either to 1T or to 2T, and similarly RTCP reports originated by a neighbouring translator and received at 2R are not forwarded either to 1T or to 2T. In "local reporting" mode, a translator must have a CNAME and must allocate an SSRC with which to label reports containing its own measurements. This end-to-end mode is achieved by policy to permit behaviours "a", "b", "c1", and "c2" at all translators involved in the connection. For "local reporting" mode, it is necessary to determine whether an RTCP report originated at an end-system or at a translator. This can be achieved by comparing the SSRC of the RTCP report with the SSRC of the RTP packets comprising the traffic stream. If the SSRC of the RTCP report is the same as that of the RTP packets, the RTCP report originated from an end system; otherwise, the RTCP report originated at a translator and should not be forwarded further in RTCP. The following illustrates "local reporting" using the example connection. In "local reporting" mode, measurements made at end-systems are forwarded along the whole chain, as for "end system peering". In addition, measurements made at an interface of a translator are sent to both the translator's neighbour RTP systems. Clark Expires December 2006 [Page 28] draft-clark-avt-rtcphr-02.txt June 2005 However, measurements made by a translator and received at another RTP system are not forwarded further in RTCP. In detail, measurements made on the RTP stream received at end-system A's interface A.R are sent in RTCP from A.T, received at J.1R and relayed from J.2T as for "end system peering" mode. However for "local reporting" mode, measurements made at J.1R and J.2R are also sent out from J.2T and received at K.1R. Hence K receives (at K.1R) measurements made at all of A.R, J.1R, and J.2R. Of these, translator K forwards measurements from A.R out via K.2T. Translator K also sends its own measurements made at K.1R and K.2R out via K.2T, such that L receives (at L.1R) measurements made at all of A.R, K.1R and K.2R. Finally similar processing occurs in L such that Z receives (at Z.R) measurements made at A.R, L.1R and L.2R. In the reverse direction, measurements made on the RTP stream received at end-system Z's interface Z.R are sent in RTCP from Z.T, received at L.2R and relayed from L.1T as for "end system peering" mode. However for "local reporting" mode, measurements made at L.1R and L.2R are also sent out from L.1T and received at K.2R. Hence K receives (at K.2R) measurements made at all of Z.R, L.1R, and L.2R. Of these, translator K forwards measurements from Z.R out via K.1T. Translator K also sends its own measurements made at K.1R and K.2R out via K.1T, such that J receives (at J.2R) measurements made at all of Z.R, K.1R and K.2R. Finally similar processing occurs in J such that A receives (at A.R) measurements made at Z.R, J.1R and J.2R. The first advantage of "local reporting" mode is that it permits a translator to learn via RTCP the results of measurements made at both its neighbours. In addition, it may observe RTCP HR reports of the results of measurements made at the terminating end system. From this information, a translator has the information which it requires to localise a single impairment to one of the locations "left of the cloud to my left", "in the cloud to my left", "in the cloud to my right", or "right of the cloud to my right". For example, K sees reports from J.1R and L.1R, and also has its own measurements made at K.1R. Finally it may observe RTCP reports of Z's measurements made at Z.R. Suppose a transport impairment is detected at Z.R. If a related impairment is detected at L.1R but not at K.1R, K may deduce that there is probably a fault in the network cloud between K and L. The second advantage of the "local reporting" mode (relative to the "global reporting" mode) is that the amount of RTCP traffic on any link is independent of the number of translators involved in the connection. The total amount of RTCP processing is proportional to the number of translators but this processing is distributed among the translators. Hence the mode scales to large numbers of translators, for unicast connections. Clark Expires December 2006 [Page 29] draft-clark-avt-rtcphr-02.txt June 2005 5.1.3 Global Reporting mode In the third mode, called "global reporting", measurements made at end-systems are forwarded along the whole chain, as for "end system peering". In addition, measurements made at an interface of a translator are sent to both the translator's neighbour RTP systems. Measurements made by a translator and received at another translator are also forwarded further in RTCP, but only in the direction away from the source of the measurement - that is, information received over RTCP from one cloud is sent to the other but is not copied back to any RTP system in the cloud which sent the measurement. In "global reporting" mode, a translator must have a CNAME and must allocate an SSRC with which to label reports containing its own measurements. Specifically, RTCP reports originated by an RTP end system or mixer, and received at 1R, are sent out from 2T. RTCP reports originated by an RTP end system or mixer, and received at 2R, are sent out from 1T. In addition, reports based on measurements made by the translator itself on the packet stream incoming at 1R and 2R are sent out via both 1T and 2T. In addition, RTCP reports either originated or forwarded by a neighbouring translator and received at 1R are forwarded out via 2T, and similarly RTCP reports either originated or forwarded by a neighbouring translator and received at 2R are forwarded out via 1T. This end-to-end mode is achieved by policy to permit behaviours "a", "b", "c1", "c2", and "d" at all translators involved in the connection. The following illustrates "global reporting" using the example connection. Measurements made on the RTP stream received at end-system A's interface A.R are sent in RTCP from A.T, received at J.1R and relayed from J.2T as for "end system peering" mode. However for "global reporting" mode, measurements made at J.1R and J.2R are also sent out from J.2T and received at K.1R. Hence K receives (at K.1R) measurements made at all of A.R, J.1R, and J.2R. Translator K forwards all of these measurements out via K.2T. Translator K also sends its own measurements made at K.1R and K.2R out via K.2T, such that L receives (at L.1R) measurements made at all of A.R, J.1R, J.2R, K.1R and K.2R. Finally similar processing occurs in L such that Z receives (at Z.R) measurements made at A.R, J.1R, J.2R, K.1R, K.2R, L.1R and L.2R. In the reverse direction, measurements made on the RTP stream received at end-system Z's interface Z.R are sent in RTCP from Z.T, received at L.2R and relayed from L.1T as for "end system peering" mode. However for "global reporting" mode, measurements made at L.1R and L.2R are also sent out from L.1T and received at K.2R. Hence K receives (at K.2R) measurements made at all of Z.R, L.1R, and L.2R. Translator K forwards all of these measurements out via K.1T. Translator K also sends its own measurements made at K.1R and K.2R out via K.1T, such that J receives (at J.2R) measurements made Clark Expires December 2006 [Page 30] draft-clark-avt-rtcphr-02.txt June 2005 at all of Z.R, L.1R, L.2R, K.1R and K.2R. Finally similar processing occurs in J such that A receives (at A.R) measurements made at Z.R, L.1R, L.2R, K.1R, K.2R, J.1R and J.2R. In "global reporting" mode, all RTCP packets received at an incoming interface should be assumed to be either from an end system or from a translator on the path from the end system, and should be forwarded. The advantage of the "global reporting" mode is that every RTP system (translators and end-systems) has access to all the information to allow localisation of impairments to the faulty cloud. The disadvantage of the "global reporting" mode is that the amount of RTCP traffic on every link is proportional to the number of translators in the connection, and the total amount of RTCP processing, though distributed among translators, is proportional to the square of the number of translators. Hence the "global reporting" mode does not scale well for connections which may involve large numbers of translators. 5.1.4 Summary of operating modes End System Peering - Measurements are made on received RTP streams at RTP endpoints and relayed via translators. Any measurements made by translators are not forwarded but MAY be sent "northbound" (out of scope of this document). Advantages - Minimises translator processing. RTCP traffic is not increased by additional translators. Disadvantages - RTP systems are unable to identify where impairments are occurring. Local mode - Translators forward end system reports (End System Peering), and also send reports of their own measurements to their neighbours. They do not forward reports from other translators or mixers. Advantages - Allows the translator to learn the results of neighbour measurements via RTCP. RTCP traffic is independent of the number of translators. RTCP traffic processing is proportional to the number of translators, but processing is distributed, so this mode scales better than Global mode. Clark Expires December 2006 [Page 31] draft-clark-avt-rtcphr-02.txt June 2005 Disadvantages - Not all RTP systems have access to all the information, so this mode is less powerful than Global mode for impairment localisation. Global mode Translators forward both end system reports (End System Peering) and measurements sent from a neighbour translator, but only in the direction away from the measurement source. Measurements made at a translator interface are also sent to both the translator's neighbour systems. Advantages - Every RTP system (translators and end-systems) has access to all the information to allow impairment localisation. Disadvantages - RTCP traffic in every link is proportional to the number of translators in the connection. The total RTCP processing is proportional to the square of the number of translators. 6. Practical Applications 6.1 Overview The objective of this section is to identify a number of cases in which there could potentially be some ambiguity in the application of the report blocks defined above or some exceptions to the defined operation of the metrics. 6.2 Call Hold and Transfer 6.3 VAD/Silence Elimination 6.4 Endpoint configuration changes mid-call 6.5 SSRC changes mid-call 7. Summary 8. IANA Considerations Clark Expires December 2006 [Page 32] draft-clark-avt-rtcphr-02.txt June 2005 9. Security Considerations RTCP reports can contain sensitive information since they can provide information about the nature and duration of a session established between two endpoints. As a result, any third party wishing to obtain this information should be properly authenticated and the information transferred securely. 10. Contributors The authors gratefully acknowledge the comments and contributions made by Jim Frauenthal, Mike Ramalho, Kevin Connor, Paul Jones, Claus Dahm, Bob Biskner, Mohamed Mostafa, Tom Hock, Albert Higashi, Shane Holthaus, Amit Arora, Bruce Adams, Geoff Hunt, Albrecht Schwarz, Keith Lantz and Randy Ethier. 11. Informative References [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, June 1997. [2] Schulzrinne, H., Casner, S., Frederick, R. and V. Jacobson, "RTP: A Transport Protocol for Real-Time Applications", STD 64, RFC 3550, July 2003. [3] Friedman, T., Caceres, R. and A. Clark, "RTP Control Protocol Extended Reports (RTCP XR)", RFC 3611, November 2003. [4] "Performance parameter definitions for quality of speech and other voiceband applications utilizing IP networks" ITU-T Rec. G.1020, November 2003 [5] Annex A to G.1020: "VoIP Gateway specific reference points and performance parameters", Amendment 1 to ITU-T Rec. G.1020 May 2004 [6] "Internet protocol data communication service - IP packet transfer and availability performance parameters:, ITU-T Rec. Y.1540, December 2002 [7] M. Garcia-Martin, E. Henrikson and D. Mills, "Private Header (P-Header) Extensions to the Session Initiation Protocol (SIP) for the 3rd-Generation Partnership Project (3GPP)", RFC 3455, January 2003. [8] ITU-T H.225.0, "Call signalling protocols and media stream packetization for packet-based multimedia communication systems", July 2003. [9] J. Rosenberg, H. Schulzrinne, G. Camarillo, A. Johnston, J. Peterson, J. Peterson, R. Sparks, M. Handley, E. Schooler, "SIP: Session Initiation Protocol", June 2002. Clark Expires December 2006 [Page 33] draft-clark-avt-rtcphr-02.txt June 2005 [10] PacketCable(TM) Multimedia Specification, PKT-SP-MM-I02-040930, September 2004. [11] Coded Character Set--7-Bit American Standard Code for Information Interchange, ANSI X3.4-1986. [12] Schulzrinne, H., Casner, S., Frederick, R. and V. Jacobson, "RTP: A Transport Protocol for Real-Time Applications", RFC 3550, July 2003. [13] Friedman, T., Caceres, R., Clark, A., "RTP Control Protocol Extended Reports (RTCP XR)", RFC 3611, November 2003 Authors' Addresses Alan Clark Telchemy Incorporated 2905 Premiere Parkway, Suite 280 Duluth, GA 30097 Email: alan@telchemy.com Amy Pendleton Nortel 2380 Performance Drive Richardson, TX 75081 Email: aspen@nortel.com Rajesh Kumar Cisco Systems 170 West Tasman Drive San Jose, CA 95134 Email: rkumar@cisco.com Kevin Connor Cisco Systems 5590 Whitehorn Way Blaine, WA 98230 Email: kconnor@cisco.com Geoff Hunt BT BT Adastral Park Martlesham Heath Ipswich IP5 3RE UK Email: geoff.hunt@bt.com Clark Expires December 2006 [Page 34] draft-clark-avt-rtcphr-02.txt June 2005 Full Copyright Statement Copyright (C) The Internet Society (2006). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Intellectual Property The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf- ipr@ietf.org. Acknowledgement Funding for the RFC Editor function is currently provided by the Internet Society. Clark Expires December 2006 [Page 35]