Internet Engineering Task Force R.Kumar Internet Draft D.Auerbach Document: draft-auerbach-mgcp-rtcpxr-03 C. Sivachelvan Category: Informational Cisco Systems Expires: May 1, 2005 D. Hancock CableLabs B. Hare Arris November 1, 2005 RTCP XR VoIP Metrics Package for the Media Gateway Control Protocol draft-auerbach-mgcp-rtcpxr-03 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 July 28, 2005. Abstract The main intent of this document is to define a Media Gateway Control Protocol (MGCP) package to control the reporting of metrics supported by the VoIP metrics block in RTCP Extended Reports as specified in [RFC 3611]. It also allows the call agent to control whether or not the gateway will request a peer device via SDP to send the VoIP metrics block in RTCP Extended Reports and whether it will respond positively to such requests from the peer device. Besides this primary focus, this package also allows the reporting of metrics defined for RTCP Sender Reports and Receiver Reports [RFC 3550] and the reporting of session description parameters (based on the ones defined in RFC 2327, RFC 2198 etc.). MGCP RTCP-XR Package 11/2/2005 Conventions used in this document 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. Table of Contents 1. Introduction 2. VoIP Metrics Package Definition 2.1 Local Connection Options 2.1.1 Responses to the xrm/mcr local connection option 2.1.1.1 Response to a value of "off" 2.1.1.2 Response to a value of "on" 2.1.1.3 Response to a value of "negotiate" 2.1.2 Impact of the xrm/mcr LCO on VoIP metrics block exchange 2.2 MGCP Protocol Procedures 2.2.1 DeleteConnection Procedures 2.2.2 AuditConnection Procedures 2.2.3 ModifyConnection Procedures 2.3 The LVM and RVM Lines for reporting Local And Remote Metrics 2.3.1 Rules for the inclusion of XRM/LVM and XRM/RVM parameters 2.3.2 XRM/LVM and XRM/RVM parameter values 2.3.3 Procedures for the resetting of metrics 2.3.4 Impact redundancy and FEC on packet loss computations 2.3.5 Parameter Extension Mechanism 2.3.6 Formal Syntax of VoIP Metrics Package 2.3.7 Applicability of VoIP metrics to Voice Band Data 2.3.8 Applicability of VoIP metrics to Fax Relay and Text Relay 3. Call Flow Examples 3.1 Metrics Reporting during Call agent-initiated Delete Connection 3.2 Metrics Reporting during Gateway-initiated Delete Connection 3.3 Metrics Reporting during Audit Connection 3.4 Metrics Reporting during Modify Connection 4. Security Considerations 5. IANA Considerations 5.1 Package Registration 5.2 Extension Registration 6. Changes from earlier drafts 6.1 Changes from the -00 version to the -01 version 6.2 Changes from the -01 version to the -02 version 6.3 Changes from the -02 version to the -03 version 7. Normative References 8. Acknowledgments 9. Copyright Statement 1. Introduction This document defines a Media Gateway Control Protocol (MGCP) [RFC 3435] package that enables the collection and reporting of metrics that measure the quality of traffic on two-way VoIP connections. This Kumar et al Informational Page 2 MGCP RTCP-XR Package 11/2/2005 capability is based on and utilizes the VoIP Metrics Block of the RTCP Extended Report as specified in [RFC 3611]. In accordance with [RFC 3435], the term "gateway" is used to denote the device controlled via MGCP. This is not intended to preclude the use of MGCP or of this package to control devices that are not, in the strictest terms, media gateways. For the purposes of this package, the terms "media gateway", "gateway" and "endpoint" are used interchangeably. Also, the terms "media gateway controller" and "call agent" are used interchangeably. In addition to the parameters in the RTCP XR VoIP metrics block, this package allows the collection of statistics defined for RTCP Sender Reports and Receiver Reports [RFC 3550]. The ConnectionParameters structure [RFC 3435] allows the reporting of the local, but not the remote, version of statistics defined for RTCP Sender Reports and Receiver Reports [RFC 3550]. To report both the local and remote versions of these RTP statistics, this package may be used. Note that this package does not affect the collection or reporting of connection parameters defined in the base MGCP specification (RFC 3435). Nor does it affect the sending of RTCP Sender Reports (SR) and Receiver Reports (RR). This package also includes session description parameters (based on the ones defined in RFC 2327, RFC 2198 etc.). These may be reported via this package to obviate the need for call agents to snoop SDP session descriptors. This package makes a distinction between collecting, responding and reporting. The term "collecting" refers to the process of calculating and accumulating local metric data and accumulating remote metric data received in RTCP Sender, Receiver and Extended Reports from the remote device. The term "responding" in the context of this package is limited to the sending of accumulated local metric data via RTCP Extended Reports to the remote device as specified in [RFC 3611]. Note that this package does not control the communication of session statistics via RTCP Sender Reports (SR) and Receiver Reports (RR). These reports MUST be sent in the manner required of all RTP endpoints [RFC 3550]. The term "reporting" refers to the process of reporting the accumulated local and remote metric data for the connection to the Call Agent in either a DeleteConnection, ModifyConnection or AuditConnection command sequence. An endpoint will "collect" local session metrics for several reasons: - To report metrics in the "northbound" direction via the XRM/LVM and XRM/RVM parameters specified in this package. - To communicate metrics in the "east-west" direction via RTCP extended reports, - To report metrics in the "northbound" direction via other mechanisms such as connection parameters [RFC 3435] and log transfers not addressed in this document, - To communicate metrics in the "east-west" direction via RTCP Sender Reports and Receiver Reports. Kumar et al Informational Page 3 MGCP RTCP-XR Package 11/2/2005 The sets of metrics collected for these purposes are not the same. This package is limited to defining the metrics that may be reported via the XRM/LVM and XRM/RVM lines. This may or may not be a superset of the metrics that may be communicated via the VoIP metrics block in RTCP extended reports. The Call Agent can ask an endpoint to enable or disable the reporting of metrics via this package. Enabling this reporting also enables the "east-west" communication of metrics via the RTCP XR VoIP metrics block from the local endpoint's perspective. Whether this "east-west" communication actually takes place also depends on the peer endpoint's capabilities. When it disables "northbound" reporting via this package, the call agent may either disable the "east-west" communication of metrics via the RTCP XR VoIP metrics block, or it may require the endpoint to communicate the VoIP metrics block in the "east-west" direction if the remote end requests it. Disabling "northbound" reporting via this package has no impact on the use of RTCP Sender Reports or Receiver Reports. Although this document focuses on metrics for voice and voiceband data, it does examine the relevance of these metrics to other modes such as fax relay [ITU T.38] and text relay [ITU V.151]. In general, other specifications (such as [FAX PKG]) will address the reporting via MGCP of the metrics that pertain to the various relay modes. The metric data reported to the Call Agent via this package when a connection is deleted, modified or audited represents the data that was accumulated since: - the start of the session, or, - the last metrics reset, commanded by the call agent. The call agent may explicitly reset the metrics when it modifies the connection (see below). This reset capability is useful when the call configuration changes due to feature invocations, such as call transfer or call pick-up. Note that the endpoint does not reset the metrics autonomously without being told to do so by the call agent when the media changes its mode (e.g. from voice to voiceband data or fax relay). If a metric or session description parameter is not suitable for the new media mode, the endpoint SHALL suspend its update until another media transition when it can be resumed (e.g. switchback from fax relay to voice). This is consistent with [FAX PKG]. The VoIP Metrics package definition is provided in Section 2. This includes a detailed description of relevant MGCP protocol procedures, a list of parameters that can be reported via this package, and an analysis of the applicability of these parameters to voice band data, fax relay and text relay. In Section 3, we provide four call flow examples showing how to use the package. Security considerations are found in Section 4, followed by the IANA considerations and references. Table 1 lists the metrics based on the VoIP metrics block in RTCP Kumar et al Informational Page 4 MGCP RTCP-XR Package 11/2/2005 Extended Reports [RFC 3611]. Table 2 lists the metrics based on RTCP Sender Reports and Receiver Reports [RFC 3550]. Note that Table 2 uses the metrics definitions in [RFC 3550] and [RFC 3435] as is, without attempting to improve them by specifying, for instance, a better method for handling duplicates. Table 3 lists session parameters, most of which are from RFCs which define SDP constructs (e.g. RFC 2327, RFC 2198, RFC 2733). Tables 4, 5 and 6 list the applicability of the metrics and session parameters in Tables 1, 2 and 3 respectively to fax relay. Tables 7, 8 and 9 do the same for text relay. 2. VoIP Session Metrics Package Definition A package is defined for VoIP session metrics. Here, the term "VoIP" is used in a broad manner that includes voice band data. Package Name: XRM Package Version: 0 This package defines the following parameters: - A new local connections option, "mcr" (Metrics Reporting) for enabling and disabling metrics reporting via this package. Note that metrics collection might also be contingent upon other factors not affected by this package (e.g. the connection parameters in the base MGCP specification, RFC 3435). - A new parameter line, "MMO" (Media Metrics Option) that allows the call agent to request local and remote metrics in a modify connection response, and/or to reset the local and remote metrics. - A new parameter line, "LVM" (Local VoIP Metrics), for reporting locally collected metrics. - A new parameter line, "RVM" (Remote VoIP Metrics), for reporting remotely collected metrics communicated to the reporting endpoint via RTCP Extended Reports, Sender Reports and Receiver Reports. 2.1 Local Connection Options The local connection option (LCO) parameter, "xrm/mcr", is an optional parameter with one of the following three values: - "off": Disables the reporting of metrics via this package AND the "east-west" communication of metrics via the RTCP XR VoIP metrics block - "on": Enables the reporting of metrics via this package AND the "east-west" communication of metrics via the RTCP XR VoIP metrics block. Whether this "east-west" communication actually takes place also depends on the peer endpoint's capabilities. - "negotiate": Disables the reporting of metrics via this package. However, the endpoint is required to communicate the VoIP metrics block in the "east-west" direction if the remote end requests it. For example, L: a:PCMU, xrm/mcr: on Kumar et al Informational Page 5 MGCP RTCP-XR Package 11/2/2005 assigns a value of "on" to the "mcr" LCO. In CreateConnection commands, the xrm/mcr LCO value defaults to "negotiate". In ModifyConnection commands, the xrm/mcr LCO value defaults to its current value for the connection. Thus, if LocalConnectionOptions are either omitted or the xrm/mcr LCO is not included in a ModifyConnection command, the previous xrm/mcr LCO value for the connection is retained. An MGCP endpoint supporting this package SHALL always use SDP to request the VoIP metrics block from the remote device if the value of the "xrm/mcr" LCO is set to "on". However, even if the value of value of the "xrm/mcr" LCO is "on" or "negotiate", the endpoint SHALL NOT send the VoIP metrics block in RTCP Extended Reports (XR) unless the remote device has requested this block via SDP signaling. Thus, for MGCP endpoints supporting this package, the permission in [RFC 3611] to send RTCP XR blocks in the absence of the "rtcp-xr" SDP attribute is revoked. Note that the value of the "xrm/mcr" LCO does not affect the collection or reporting of connection parameters in the connection parameters line (P: line) as defined in the base MGCP specification [RFC 3435]. Nor does it affect the sending of RTCP Sender Reports (SR) and Receiver Reports (RR). An endpoint supporting this package MUST continue to include the connection parameters (P:) line in an audit connection response where this data is requested, in a delete connection response and in a gateway-initiated delete connection. There can be overlap if equivalent parameters are also reported via this package in procedures for the deletion and audit of connections. There is no overlap in the case of modify connection responses since these do not include the connection parameters line. 2.1.1 Responses to the xrm/mcr local connection option This section details the endpoint's response to each of the xrm/mcr LCO values. 2.1.1.1 Response to a value of "off" On receiving this value, the endpoint MUST erase any local or remote VoIP metric data previously collected for the connection, and MUST instruct the far-end device to stop sending RTCP XR VoIP Metrics Report Blocks. The endpoint MUST ignore an SDP request for metrics and MUST NOT transmit local metrics to the peer device. The local endpoint MUST NOT report XR metrics upon receiving or initiating a DeleteConnection sequence and MUST NOT report XR metrics when responding to a ModifyConnection command or an AuditConnection command. 2.1.1.2 Response to a value of "on" On receiving this value in a CreateConnection or ModifyConnection command, if not already doing so, the endpoint MUST: Kumar et al Informational Page 6 MGCP RTCP-XR Package 11/2/2005 - Start collecting/calculating the metrics which it will expose to the Call Agent via this package. - Instruct the far-end device to start sending the VoIP Metrics block in RTCP Extended Reports by including an "rtcp-xr" attribute with a value of "voip-metrics" in the SDP. - Report local and remote metrics via the XRM/LVM and XRM/RVM lines defined below in the response to DeleteConnection that targets a single connection, in the response to a ModifyConnection when these metrics are requested, in the response to an AuditConnection when these metrics are audited, and when sending a DeleteConnection command for a single connection. 2.1.1.3 Response to a value of "negotiate" On receiving this value, the endpoint disables the "northbound" reporting of metrics, via this package, to the call agent. Also, it sets an internal flag to indicate that it will respond positively to SDP requests by the remote peer device to send the VoIP metrics block in RTCP Extended Reports. 2.1.2 Impact of the xrm/mcr LCO on VoIP metrics block exchange This section details the concepts introduced in the previous section regarding the use of the xrm/mcr local connection option to govern the endpoint's behavior regarding the negotiation, via SDP, of the VoIP metrics block in RTCP extended reports [RFC 3611]. RFC 3611 adds a new SDP attribute called "rtcp-xr" that can be used by an endpoint to ask the remote device to send RTCP Extended Reports. This attribute is encoded as follows: rtcp-xr: This rtcp-xr attribute can be used as either a session-level or media- level attribute. See [RFC 3611] for more information. Only one of the xr-format values, voip-metrics, is within the scope of this package. For an endpoint supporting this package, the inclusion of the voip- metrics value in an rtcp-xr attribute line in its SDP local session descriptions SHALL be per the following rules: - The voip-metrics value SHALL be included if the xrm/mcr LCO is set to "on". - The voip-metrics value SHALL NOT be included if the xrm/mcr LCO is set to "off" or "negotiate". The inclusion or exclusion of any other xr-format values (denoting other RTCP XR blocks) in the rtcp-xr SDP attribute line is independent of the xrm/mcr LCO. This is not addressed by this package. The response of an endpoint supporting this package to the receipt from a remote peer of an SDP remote session description with an rtcp-xr Kumar et al Informational Page 7 MGCP RTCP-XR Package 11/2/2005 attribute line that has voip-metrics as one of its values (or its only value) shall be as follows: - The endpoint MUST send RTCP Extended Reports with the VoIP metrics block to the remote peer if the xrm/mcr LCO is "on" or "negotiate". - The endpoint SHALL NOT send RTCP Extended Reports with the VoIP metrics block to the remote peer if the xrm/mcr LCO is "off". Regardless of the value of the xrm/mcr LCO, an endpoint supporting this package SHALL NOT send RTCP Extended Reports with the VoIP metrics block to the remote peer if any of the following is true: - The rtcp-xr attribute is not included in the SDP remote session description. - The rtcp-xr attribute is included in the SDP remote session description but "voip-metrics" is not one of its values. This includes the case in which the attribute has an empty parameter list. [RFC 3611] allows endpoints that uses SDP (e.g. MGCP endpoints) to exchange RTCP Extended Reports without prior SDP signaling, which is optional. This allowance is rescinded for endpoints supporting this package which MUST implement the SDP signalling specified in this section. 2.2 MGCP Protocol Procedures 2.2.1 DeleteConnection Procedures These procedures refer to call agent-initiated delete connection commands that are targeted at a specific connection ID and to gateway- initiated delete connection commands. They do not apply to call agent- initiated delete connection commands that are targeted at all connections associated with a call, an endpoint, an endpoint group or a gateway. In the latter case, the XRM/LVM and XRM/RVM lines (described in detail below) SHALL NOT be returned. Endpoints supporting this package MUST report local metrics in the XRM/LVM parameter line in delete connection responses and in gateway- initiated delete connection commands if and only if the local connection option xrm/mcr is set to "on". Endpoints supporting this package MUST report remote metrics, if available, in the XRM/RVM parameter line in delete connection responses and in gateway-initiated delete connection commands if and only if the local connection option xrm/mcr is set to "on". We do not define a mechanism for suppressing metrics reporting in response to a delete connection command that is targeted at a specific connection ID. In situations (such as a switchover)where the call agent needs to delete connections without retaining any records of the connections, it can use the version of the delete connection procedure that targets all connections associated with a call, an endpoint, an Kumar et al Informational Page 8 MGCP RTCP-XR Package 11/2/2005 endpoint group or a gateway [RFC 3435]. No metrics are returned in response to this version of the delete connection command. 2.2.2 AuditConnection Procedures This package defines two new RequestedInfo values to be used with an AuditConnection (AUCX). These allow a call agent to explicitly request that the endpoint return the current values of either the local or remote metrics. The request does not reset the values. When one or both of these RequestedInfo values are included in an AUCX command, the endpoint MUST return the appropriate metric values if available. The two new RequestedInfo values are: XRM/LVM Return the local voice metric values. XRM/RVM Return the remote voice metric values. The call agent may audit the local and remote voice metrics at any time. An example use of this capability is for the call agent to audit the metrics in response to a "quality alert" event [RFC 3660]. A quality alert event notification is sent in response to a metrics threshold crossing by an endpoint supporting the RTP package defined in RFC 3660. The rules in the MGCP base specification [RFC 3435] for handling audits of unsupported parameters and parameters for which an endpoint has no values MUST be followed. As a result: - If an endpoint that does not understand the XRM/LVM or XRM/RVM parameter is audited for that parameter, it MUST NOT generate an error. Instead, the parameter MUST be omitted from the audit response. Since this rule is based on the MGCP base specification, it also applies to endpoints that do not support this package. - If an endpoint that does not have values for the XRM/LVM or XRM/RVM parameter is audited for that parameter, it MUST NOT generate an error. Instead, the parameter MUST be included in the audit response with an empty value. 2.2.3 ModifyConnection Procedures This package defines a new MGCP parameter, the MediaMetricsOption ("MMO") that may be optionally included in a ModifyConnection command on an "XRM/MMO" line. This parameter is forbidden in all other MGCP commands and responses. It can have one of the following four values: - "REP" (report). This option commands the endpoint to report local and remote metrics via this package. Local and remote session parameters MAY also be reported. - "RES" (reset). This option commands the endpoint to reset the local and remote metrics. - "RR" (report and reset). Local and remote metrics are first reported and then reset. Local and remote session parameters MAY also be reported. Kumar et al Informational Page 9 MGCP RTCP-XR Package 11/2/2005 - "NULL". No metrics (local or remote) are reset or reported. This value is equivalent to omitting the "XRM/MMO" line in the ModifyConnection command. Of course, it is more efficient and, therefore, preferable to omit the XRM/MMO line than to use it with an explicit value of "NULL". Note that the XRM/MMO parameter is specific to a ModifyConnection command and its value does not persist following the end of a ModifyConnection procedure. Therefore, this package does not define a RequestedInfo value for auditing the XRM/MMO parameter. Also note that metrics are not reported in response to a "REP" or "RR" value of the XRM/MMO parameter if the value of the XRM/MCR local connection option is "off" or "negotiate". When the value of the XRM/MMO parameter is REP or RR, then the available metrics are reported, as applicable, in the XRM/LVM and XRM/RVM lines defined below. In order to comply with the ABNF rules in [RFC 3435], the connection parameters line (the P: line) SHALL NOT be included in a ModifyConnection response. However, metrics equivalent to the connection parameters (Table 2) can be included in the XRM/LVM and XRM/RVM lines. The metrics that are reset and/or reported in response to the XRM/MMO parameter include metrics associated with RTCP extended reports (Table 1) and metrics associated with RTCP sender reports and receiver reports (Table 2). See the section titled "Procedures for the resetting of metrics" for the values assigned to metrics on reset. The MMO parameter is needed to handle situations in which the call agent invokes a feature that alters the media stream in a manner that renders previous metrics values inapplicable to the new situation. Examples are call transfer and call pick-up. 2.3 The LVM and RVM Lines for reporting Local And Remote Metrics The "XRM/LVM" and "XRM/RVM" lines are for the reporting of local and remote metrics respectively. For example, an endpoint that is recording local metrics and has received remote metrics returns the following lines in a DLCX response: XRM/LVM: PLC=1, JBA=2, JBR=7 ... XRM/RVM: PLC=0, JBA=0, JBR=3 ... The parameters that may be reported in an XRM/LVM or XRM/RVM line fall into the following categories: - Parameters based on the VoIP metrics block [RFC 3611]. These are listed in Table 1. - Parameters based on Sender Reports and Receiver Reports [RFC 3550]. These are listed in Table 2. Kumar et al Informational Page 10 MGCP RTCP-XR Package 11/2/2005 - Parameters that describe the session. These are listed in Table 3. Many of these are based on SDP parameters such as those specified in RFC 2327, RFC 2198, RFC 2733 etc. Although Tables 1-3 include top-level definitions of these parameters, some of their technical details may need to gleaned from the references. For instance, the meaning of "standard" vs. "enhanced" packet loss concealment must be obtained from [RFC 3611]. Note that the rationale for allowing the reporting of parameters based on RTCP Sender Reports and Receiver Reports (Table 2) in the XRM/LVM and XRM/RVM lines is two-fold: - The connection parameters line (the P: line) in the MGCP base protocol [RFC 3435] does not address remote metrics, - The ABNF for packet loss in RFC 3435 is inconsistent with its RFC 3550-based textual definition of packet loss. Note that the latency metric in the connection parameters line (the P: line) is not included in Table 2 since it is already included in the RTCP XR VoIP metrics block as the round trip delay. RTCP XR [RFC 3611] allows any method for its computation, including methods based on [RFC 3550] or on the DLRR report block in [RFC 3611]. 2.3.1 Rules for the inclusion of XRM/LVM and XRM/RVM parameters In general, inclusion of a parameter from Tables 1-3 in the XRM/LVM or XRM/RVM lines is subject to: - The availability of the parameter. - Local policy regarding its inclusion. The following rules apply only to endpoints supporting this package: DLCX/MDCX/AUCX rule for XRM/LVM: This rule applies to: (i) Endpoint responses to call agent-initiated delete connection commands that are targeted at a specific connection ID, (ii) Endpoint-initiated delete connection commands, (iii) Endpoint responses to modify connection commands that request session metrics via the XRM/MMO line, (iv) Endpoint responses to audit connection commands that include "XRM/LVM" in the RequestedInfo list. In each of these contexts, the XRM/LVM line MUST be included by an endpoint supporting this package. Further, this endpoint MUST compute at least one metric from the VoIP metrics block (Table 1) and report it in the XRM/LVM line. All other parameters (Tables 2 and 3) are completely optional. Their inclusion depends on local policy. The endpoint MUST omit all parameters that are not computed locally rather than include them with dummy values (e.g. 127 for the various MOS parameters). DLCX/MDCX rule for XRM/RVM: This rule applies to: (i) Endpoint responses to call agent-initiated delete connection commands that are targeted at a specific connection ID, (ii) Endpoint-initiated delete connection commands, (iii) Endpoint responses to modify connection commands that request session metrics via the XRM/MMO line. In each of Kumar et al Informational Page 11 MGCP RTCP-XR Package 11/2/2005 these contexts, the XRM/RVM line MUST be included if the remote peer sends VoIP metrics blocks [RFC 3611] in RTCP Extended Reports. If the remote device indicates that a particular VoIP metrics block parameter is unavailable by sending a dummy value, then the dummy value MUST be reported or the parameter MUST be omitted from the XRM/RVM: line. For example, the dummy value of 127, if used, indicates that the signal level, noise level, residual echo return loss, the various R-factors and MOS estimates are unavailable. If the VoIP metrics block is not received from the remote device, the endpoint MAY omit the XRM/RVM line even if it has non-VoIP metrics block parameters to report in the XRM/RVM line, such as metrics communicated via RTCP Sender Reports (SR) and Receiver Reports (RR). The endpoint MAY, of course, include the XRM/RVM line with known non-VoIP metrics block parameters (Tables 2 and 3) when the VoIP metrics block is not communicated by the remote end. If the remote device indicates that a particular Sender/Receiver Report parameter is unavailable by assigning it a dummy value (such as an inter-arrival jitter of 0), the endpoint MAY either omit it in the XRM/RVM line or assign it a dummy value. AUCX rule for XRM/RVM: This rule applies to endpoint responses to audit connection commands that include "XRM/RVM" in the RequestedInfo list. In this context, the XRM/RVM line MUST be included even if no VoIP metrics blocks are received in RTCP extended reports from the remote device. This line MAY, however, be empty if no data pertaining to RTCP XR VoIP metrics block (Table 1) is provided by the remote device. Alternately, the local endpoint MAY include other known remote parameters (Tables 2 and 3) in the XRM/RVM line. If the remote device sends the VoIP metrics block in RTCP Extended Reports and indicates that a particular parameter is unavailable by sending a dummy value, then the dummy value MUST be reported or the parameter MUST be omitted from the XRM/RVM: line. If the remote device indicates that a particular Sender/Receiver Report parameter is unavailable by assigning it a dummy value (such as an inter-arrival jitter of 0), the endpoint MAY either omit it in the XRM/RVM line or assign it a dummy value. Rule for disallowed values: An endpoint receiving a disallowed value in the VoIP metrics block MAY omit it in the XRM/RVM line. For example, RFC 3611 does not allow a value of 60 in the 8-bit MOS-LQ field in the VoIP metrics block. 2.3.2 XRM/LVM and XRM/RVM parameter values Note that the metrics formats used by the call agent to store and report metrics might be different from the formats used in this package. For instance, the media gateway controller can convert the binary representation [RFC 3611] of network packet loss into a fixed- point percentage. Thus, an NLR value of 20 (Table 1) might be stored or displayed as 7.81%. The procedures for communicating voice quality metrics in the XRM/LVM and XRM/RVM lines are invoked at the end of a call or at the end of a call phase (such as when a call transfer is invoked). Therefore, the metrics used in these lines are, except when otherwise noted, averages Kumar et al Informational Page 12 MGCP RTCP-XR Package 11/2/2005 from the start of metrics computation. The term "start of metrics computation" in Tables 1-3 SHALL be understood to mean: - The start of the session if no metrics reset occurs. - The last metrics reset, if there are any metrics resets commanded by the call agent. Note that the computation of some of these metrics may be in a suspended state at the time of reporting due to their inapplicability to the current media mode (e.g. MOS-LQ is not germane to T.38 fax relay). In this case, the last computed value is reported. Similarly, session description parameters (Table 3) that are not applicable to the current media state retain their value from the previous media state. For example, the voice codec parameter, VCD, retains its prior value on a media switch from audio to fax relay. It may change later if a switchback to audio occurs and a different codec is selected. Also, it is recommended that the unstable or indeterminate periods at the start and end of a call be factored out of metrics computation. The duration of these guard bands is left to the implementation. Kumar et al Informational Page 13 MGCP RTCP-XR Package 11/2/2005 TABLE 1: PARAMETERS BASED ON THE RTCP XR VOIP METRICS BLOCK --------------------------------------------------------- | Parameter | Code | Value | | | | | --------------------------------------------------------- |Network | NLR |The proportion of packets lost | |packet loss | |since the start of metrics | |rate | |computation expressed as an 8-bit | | | |binary fraction obtained by | | | |dividing the number of packets lost| | | |in the transmission path by the | | | |total number of packets expected by| | | |the receiver, multiplying this | | | |value by 256 and taking the integer| | | |portion of the result. Computed | | | |after taking any loss mitigation | | | |due to FEC and/or redundancy into | | | |account. The numbers of duplicated | | | |packets and discarded packets do | | | |not enter into this calculation. | --------------------------------------------------------- |Jitter |JDR |The proportion of the packets | |buffer | |discarded by the receiving | |discard | |jitter buffer since the start of | |rate | |metrics computation expressed as an| | | |8-bit binary fraction obtained by | | | |dividing the number of packets | | | |discarded by the jitter buffer | | | |by the total number of packets | | | |expected by the receiver, | | | |multiplying this value by 256 | | | |and taking the integer portion | | | |of the result. Computed | | | |after taking any loss mitigation | | | |due to FEC and/or redundancy into | | | |account. The number of duplicate | | | |packet discards does not enter | | | |into this calculation. | --------------------------------------------------------- Kumar et al Informational Page 14 MGCP RTCP-XR Package 11/2/2005 --------------------------------------------------------- | Parameter | Code | Value | | | | | --------------------------------------------------------- |Burst loss | BLD |The average proportion (since the | |density | |start of metrics computation) of | | | |lost and discarded packets | | | |occurring during burst periods | | | |expressed as an 8 bit | | | |binary fraction obtained by | | | |dividing the sum of the number of | | | |packets detected as lost during | | | |burst periods and the number of | | | |packets discarded by the jitter | | | |buffer during burst periods by | | | |the total number of packets | | | |expected by the receiver, | | | |multiplying this value by 256 | | | |and taking the integer portion | | | |of the result. Computed | | | |after taking any loss mitigation | | | |due to FEC and/or redundancy into | | | |account. Duplicate packet discards | | | |are excluded from this computation.| --------------------------------------------------------- |Gap loss | GLD |The average proportion (since the | |density | |start of metrics computation) of | | | |lost and discarded packets | | | |occurring during gap periods | | | |expressed as an 8 bit binary | | | |fraction obtained by | | | |dividing the sum of the number of | | | |packets detected as lost during | | | |gap periods and the number of | | | |packets discarded by the jitter | | | |buffer during gap periods by | | | |the total number of packets | | | |expected by the receiver, | | | |multiplying this value by 256 | | | |and taking the integer portion | | | |of the result. Computed | | | |after taking any loss mitigation | | | |due to FEC and/or redundancy into | | | |account. Duplicate packet discards | | | |are excluded from this computation.| --------------------------------------------------------- |Burst |BD |The average duration of the burst | |duration | |periods, in milliseconds. Computed | | | |from the start of metrics | | | |computation. Bursts are determined | | | |after taking any loss mitigation | | | |due to FEC and/or redundancy into | | | |account. | --------------------------------------------------------- Kumar et al Informational Page 15 MGCP RTCP-XR Package 11/2/2005 --------------------------------------------------------- | Parameter | Code | Value | | | | | --------------------------------------------------------- |Gap |GD |The average duration of the gap | |duration | |periods, in milliseconds. Computed | | | |from the start of metrics | | | |computation. Bursts are determined | | | |after taking any loss mitigation | | | |due to FEC and/or redundancy into | | | |account. | --------------------------------------------------------- |Round trip |RTD |The round trip delay, in | |network | |milliseconds, between the RTP | |delay | |interfaces of the local and | | | |remote call endpoints. Valid | | | |values MUST be greater than or | | | |equal to 0 milliseconds. This | | | |could be computed on the basis of | | | |RFC 3550, or the DLRR report | | | |block in [RFC 3611] or any other | | | |valid method. The average of all | | | |measurements since the start | | | |metrics computation SHOULD be used.| --------------------------------------------------------- |End system |ESD |The end system (endpoint) delay, in| |delay | |milliseconds, comprising the | | | |encode, decode and jitter buffer | | | |delay. Valid values MUST be | | | |greater than or equal to 0 | | | |milliseconds. The average of all | | | |measurements since the start | | | |metrics computation SHOULD be used.| --------------------------------------------------------- Kumar et al Informational Page 16 MGCP RTCP-XR Package 11/2/2005 --------------------------------------------------------- | Parameter | Code | Value | | | | | --------------------------------------------------------- |Signal |SL |The ratio of the average signal | |level | |level to a 0 dBm0 reference, | | | |expressed in dB. This is | | | |expressed as an integer with an | | | |optional negative ("-") sign. | | | |When the sign is omitted, a | | | |positive value is assumed. | | | |Typical values should generally | | | |be between -15 and -20. | | | |This metric shall be averaged | | | |from the start of metrics | | | |computation. A value of 127 | | | |indicates that the parameter is | | | |unavailable. | --------------------------------------------------------- |Noise |NL |The ratio of the silent period | |level | |average background noise level to | | | |a 0 dBm0 reference, in dB. This | | | |is expressed as an integer without | | | |a +ve or -ve sign. No sign is | | | |necessary since this value MUST be | | | |equal to or less than 0 dB. A value| | | |of 127 indicates that the parameter| | | |is unavailable. A +ve or -ve sign, | | | |if used, SHALL be ignored. | | | |The metric shall be averaged from | | | |the start of metrics computation. | --------------------------------------------------------- |Residual |RERL |The echo return loss after the | |echo return | |effects of echo cancellation, in | |loss | |dB. This value is expressed as | | | |a positive integer without a | | | |negative sign. A value of 127 | | | |indicates that the parameter is | | | |unavailable. Thus, RERL=23 | | | |indicates an echo loss of 23 dB | | | |after factoring in any echo | | | |cancellation. This metric shall be | | | |averaged from the start of metrics | | | | computation. | --------------------------------------------------------- Kumar et al Informational Page 17 MGCP RTCP-XR Package 11/2/2005 --------------------------------------------------------- | Parameter | Code | Value | | | | | --------------------------------------------------------- |Minimum gap |GMN | The gap/burst transition | |threshold | | threshold; the recommended value | | | | is 16. Values in the range 1 - - | | | | 255 are permitted. | --------------------------------------------------------- |R-factor |NSR | Conversational quality | |(Conversat- | | R-factor for the "inner segment", | |-ional | | of the call, which is the VoIP | |quality) | | session on which | | | | the endpoint resides. This value | | | | represents the conversational | | | | quality of the RTP session | | | | calculated per ITU G.107. Valid | | | | values are greater than 0 and | | | | less than or equal to 120. A | | | | value of 127 indicates that the | | | | parameter is unavailable. This | | | | parameter is computed from the | | | | start of metrics computation. | | | | When the term 'R-factor' is used | | | | without further qualification, | | | | this parameter is implied. | --------------------------------------------------------- |R-factor |RLQ | A value representing the | |(Listening | | listening quality of | |quality) | | the RTP session; | | | | calculated as per ITU-T | | | | Recommendation G.107. Valid | | | | values are greater than 0 and | | | | less than or equal to 120. A | | | | value of 127 indicates that the | | | | parameter is unavailable. This | | | | parameter is computed from the | | | | start of metrics computation. | --------------------------------------------------------- |External |XSR | Listening quality R-factor for an | |R-factor | | "external segment" which is any | | | | call segment external to the VoIP | | | | session on which the endpoint | | | | resides. This value is | | | | calculated per ITU-T | | | | Recommendation G.107. Valid | | | | values are greater than 0 and | | | | less than or equal to 120. A | | | | value of 127 indicates that the | | | | parameter is unavailable. This | | | | parameter is computed from the | | | | start of metrics computation. | --------------------------------------------------------- Kumar et al Informational Page 18 MGCP RTCP-XR Package 11/2/2005 --------------------------------------------------------- | Parameter | Code | Value | | | | | --------------------------------------------------------- |Estimated |MLQ | An estimated receiving end | |MOS-LQ | | listening quality MOS. The | | | | nominal range of MOS scores is | | | | 1-5. Before being expressed in | | | | MGCP, the MOS score is | | | | multiplied by 10 and any | | | | fractional part is truncated. | | | | This results in an integer with | | | | valid values in the range 10 - 50.| | | | A value of 127 indicates that | | | | the parameter is unavailable. | | | | This parameter is computed from | | | | the start of metrics computation. | --------------------------------------------------------- |Estimated |MCQ | An estimated receiving end | |MOS-CQ | | conversational quality MOS. The | | | | nominal range of MOS scores is | | | | 1-5. Before being expressed in | | | | MGCP, the MOS score is | | | | multiplied by 10 and any | | | | fractional part is truncated. | | | | This results in an integer with | | | | valid values in the range 10 - 50.| | | | A value of 127 indicates that | | | | the parameter is unavailable. | | | | This parameter is averaged from | | | | the start of metrics computation. | --------------------------------------------------------- |Packet loss |PLC | The type of packet loss | |concealment | | concealment algorithm in use; | |type | | should be one of the following | | | | enumeration values: | | | | 0 - Unspecified | | | | 1 - Disabled | | | | 2 - Enhanced | | | | 3 - Standard | --------------------------------------------------------- |Jitter |JBA | The adaptability of the jitter | |Buffer | | buffer. Should be one of the | |Adaptability| | following enumeration values: | | | | 0 - Unknown | | | | 1 - Reserved | | | | 2 - Non-adaptive | | | | 3 - Adaptive | --------------------------------------------------------- |Jitter |JBR | The jitter buffer adjustment | |Buffer | | rate. Value is between 0 and | |Rate | | 15. | --------------------------------------------------------- Kumar et al Informational Page 19 MGCP RTCP-XR Package 11/2/2005 --------------------------------------------------------- | Parameter | Code | Value | | | | | --------------------------------------------------------- |Nominal |JBN | Current nominal delay in | |jitter | | milliseconds that corresponds to | |buffer | | the nominal jitter buffer delay | |delay | | for packets that arrive exactly | | | | on time. The last computed value | | | | is used. | --------------------------------------------------------- |Maximum |JBM | Current maximum delay in | |jitter | | milliseconds that corresponds to | |buffer | | the earliest arriving packet | |delay | | that would not be discarded. In | | | | simple queue implementations, | | | | this may correspond to the | | | | nominal jitter buffer delay. In | | | | adaptive jitter buffer | | | | implementations, this value may | | | | dynamically vary up to the | | | | absolute maximum jitter buffer | | | | delay (see below). The last | | | | computed value is used. | --------------------------------------------------------- |Absolute |JBS | Absolute maximum delay in | |maximum | | milliseconds that an adaptive | |jitter | | jitter buffer can reach under | |buffer | | worst case conditions. This is | |delay | | a configured parameter. For fixed | | | | jitter buffers, this must be set | | | | to the maximum jitter buffer | | | | delay. | --------------------------------------------------------- |MOS-LQ |MLES | Algorithm used to estimate the | |Estimation | | the MOS-LQ metric, MLQ. This | |Algorithm | | is expressed as a human-readable | | | | character string with an | | | | unrestricted set of values. | --------------------------------------------------------- |MOS-CQ |MCES | Algorithm used to estimate the | |Estimation | | the MOS-CQ metric, MCQ. This | |Algorithm | | is expressed as a human-readable | | | | character string with an | | | | unrestricted set of values. | --------------------------------------------------------- Kumar et al Informational Page 20 MGCP RTCP-XR Package 11/2/2005 --------------------------------------------------------- | Parameter | Code | Value | | | | | --------------------------------------------------------- |R-factor |RFES | Algorithm(s) used to estimate | |Estimation | | the one or more R-factors | |Algorithm(s)| | reported. This is expressed as a | | | | human-readable character string | | | | with an unrestricted set of | | | | values. This string may contain | | | | separate descriptions for the | | | | algorithms pertaining to the | | | | R-factors NSR, MLQ and XSR | | | | described above. | --------------------------------------------------------- TABLE 2: PARAMETERS BASED ON RTCP SENDER AND RECEIVER REPORTS --------------------------------------------------------- | Parameter | Code | Value | | | | | --------------------------------------------------------- |Packets sent |PS | The number of packets that were | | | | were sent on the connection since| | | | the start of metrics computation.| | | | Does not include any FEC packets | | | | sent on a different SSRC or port.| --------------------------------------------------------- |Octets sent |OS | The number of payload octets that| | | | were sent out on the connection | | | | since the start of metrics | | | | computation. Header and padding | | | | octets are not included. Nor are | | | | octets in redundant or FEC | | | | payloads/packets. | --------------------------------------------------------- |Packets |PR | The number of packets that were | |received | | were received on the connection | | | | since the start of metrics | | | | computation. Does not include any| | | | FEC packets received on a | | | | different SSRC or port. | --------------------------------------------------------- |Octets |OR | The number of payload octets that| |received | | were received on the | | | | connection since the start of | | | | metrics computation. Header and | | | | padding octets are not included. | | | | Nor are octets in redundant or | | | | FEC payloads/packets. | --------------------------------------------------------- Kumar et al Informational Page 21 MGCP RTCP-XR Package 11/2/2005 --------------------------------------------------------- | Parameter | Code | Value | | | | | --------------------------------------------------------- |Packets |PL | The total number of media packets| |lost | | that have been lost since the | | | | beginning of metrics computation.| | | | This is defined to be the number | | | | of packets expected less the | | | | number of packets actually | | | | received, where the number of | | | | packets received includes any | | | | which are late or duplicates. | | | | Thus packets that arrive late are| | | | not counted as lost, and the loss| | | | may be negative if there are | | | | duplicates. This metric does not | | | | take any loss mitigation due to | | | | redundancy or FEC into account. | --------------------------------------------------------- |Inter- |IAJ | Per [RFC 3550], the inter-arrival| |arrival | | jitter is defined to be | |jitter | | the mean deviation (smoothed | | | | absolute value) of the difference| | | | in packet spacing at the | | | | the receiver compared to the | | | | sender for a pair of packets. | | | | This metric is averaged from the | | | | start of computation and is | | | | expressed in milliseconds. | | | | The corresponding connection | | | | parameter in [RFC 3435] is JI. | --------------------------------------------------------- TABLE 3: SESSION DESCRIPTION PARAMETERS --------------------------------------------------------- | Parameter | Code | Value | | | | | --------------------------------------------------------- |SSRC |SSRC | SSRC of the measured stream. | | | | If it changes due to a collision,| | | | the last value is used. | | | | Represented as the decimal | | | | equivalent of a 32-bit word. | --------------------------------------------------------- |Source IP |IPAS | The source IP address for | |address | | the stream under measurement | --------------------------------------------------------- |Source IP |IPTS | This indicates whether the source| |address type | | IP address is IP version 4 or 6. | --------------------------------------------------------- Kumar et al Informational Page 22 MGCP RTCP-XR Package 11/2/2005 --------------------------------------------------------- | Parameter | Code | Value | | | | | --------------------------------------------------------- |Destination |IPAD | The destination IP address for | |IP address | | the stream under measurement. | --------------------------------------------------------- |Destination |IPTD | This indicates whether the | |IP address | | destination IP address is | |type | | IP version 4 or 6. | --------------------------------------------------------- |Source |RTUS | The source RTP/UDPTL port for | |RTP/UDPTL | | the stream under measurement. | |port | | | --------------------------------------------------------- |Destination |RTUD | The destination RTP/UDPTL port | |RTP/UDPTL | | for the stream under measurement| |port | | | --------------------------------------------------------- |Source |RTCS | The source RTCP port for | |RTCP port | | the stream under measurement. | --------------------------------------------------------- |Destination |RTCD | The destination RTCP port for | |RTCP port | | the stream under measurement. | --------------------------------------------------------- |Codec |VCD | The last voice or voice band data| |(voice or | | codec used. This is expressed | |voice band | | as a character string | |data) | | corresponding to a MIME subtype | | | | from [IANA RTP] (e.g. " G726-40")| | | | or as an experimental codec name | | | | starting with "X-". | --------------------------------------------------------- |Secondary |VCDS | In the case of RFC 2198 | |codec | | redundancy, the secondary codec | |(voice or | | used. Semantics identical to | |voice band | | primary codec. (See VCD parameter| |data) | | above.) | --------------------------------------------------------- Kumar et al Informational Page 23 MGCP RTCP-XR Package 11/2/2005 --------------------------------------------------------- | Parameter | Code | Value | | | | | --------------------------------------------------------- |Media |MMOD | This indicates whether the | |Mode | | the media carried by the session | | | | is audio ("a"), voice band data | | | | ("v"), fax relay ("f"), modem | | | | relay ("m") or text relay ("t"). | | | | The last mode is indicated by | | | | this parameter. Audio and text | | | | relay packets may be interleaved | | | | in the text relay mode. | | | | Voice band data, fax relay, modem| | | | relay and text relay are defined | | | | in [ITU V.152], [ITU T.38], | | | | [ITU V.150.1] and [ITU V.151] | | | | respectively. All of these media,| | | | with the exception of modem | | | | relay, can be transported via | | | | RTP. | --------------------------------------------------------- |Sample rate |SMPL | The rate at which media is | |(voice or | | is sampled (samples per second) | |voice band | | for the last voice or voice band | |data) | | data codec used. | --------------------------------------------------------- |Codec frame |FRSZ | The number of octets in a codec | |size | | frame for the last voice or | |(voice or | | voice band data codec. | |voice band | | | |data) | | | --------------------------------------------------------- |RTP payload |PLSZ | The number of octets in a the RTP| |size | | packet payload for the | |(voice or | | last voice or voice band data | |voice band | | codec used. | |data) | | | --------------------------------------------------------- |Packetization|PKRT | The number of RTP packets per | |rate | | second for the last voice or | |(voice or | | voice band data codec used. | |voice band | | | |data) | | | --------------------------------------------------------- |Silence |SSUP | This indicates whether silence | |Suppression | | suppression, also known as Voice | |State | | Activity Detection (VAD)is | | | | enabled. The last value is used. | | | | It is assumed that silence | | | | suppression is accompanied by | | | | comfort noise generation. | --------------------------------------------------------- Kumar et al Informational Page 24 MGCP RTCP-XR Package 11/2/2005 --------------------------------------------------------- | Parameter | Code | Value | | | | | --------------------------------------------------------- |Echo |ECAN | This indicates whether echo | |Cancellation | | cancellation is enabled. The last| |State | | value is used. | --------------------------------------------------------- |Redundancy |VRED | This indicates whether | |State | | redundancy [RFC 2198] was used | |(voice or | | for the last voice or voice band | |voice band | | data codec. | |data). | | | --------------------------------------------------------- |FEC State |VFEC | This indicates whether | |(voice or | | Forward Error Correction | |voice band | | [RFC 2733] was used for the last | |data). | | voice or voice band data codec. | | | | RFC 2733 FEC may be used in | | | | conjunction with RFC 2198 | | | | redundancy. | --------------------------------------------------------- |SSRC of the |FSRC | SSRC of the received FEC stream, | |received FEC | | if any. If it changes due to a | |stream | | collision, the last value is | | | | used. Represented as the decimal | | | | equivalent of a 32-bit word. | --------------------------------------------------------- |Destination |IPAF | The destination IP address for | |IP address | | the FEC stream received with the | |for FEC | | RTP media stream. Identical to | | | | IPAD (above) if the FEC stream | | | | is sent to the same | | | | IP address as the media | | | | stream under measurement. In | | | | either case, the IP address type | | | | is per the IPTD parameter above. | --------------------------------------------------------- |Destination |RTFD | The destination RTP port for any | |RTP port | | FEC stream received with the RTP | |for FEC | | media stream. Identical to | | | | RTUD (above) if the FEC stream | | | | is sent to the same | | | | RTP port as the media | | | | stream under measurement. | --------------------------------------------------------- 2.3.3 Procedures for the resetting of metrics The only mechanism for resetting metrics is via the XRM/MMO parameter in a ModifyConnection command the call agent. During reset, all metrics in this package (with the exception of the session parameters in Table 3) are set to their initial value which is Kumar et al Informational Page 25 MGCP RTCP-XR Package 11/2/2005 their value at the time of session initiation. In general, this is either zero or an unknown value. For example, the signal level, noise level, RERL, the various R-factors and MOS estimates are all reset to 127, which indicates an unknown value. The session description parameters in Table 3 simply reflect the current state of the session, which may have changed due to the ModifyConnection procedure. Also, as a rule an SSRC change SHOULD NOT reset VQ metrics. This is consistent with the base MGCP protocol [RFC 3435]. SSRC can occur due to rare collision events [RFC 3550]. 2.3.4 Impact redundancy and FEC on packet loss computations The packet loss and discard parameters based on the RTCP XR VoIP metrics block [RFC 3611] are computed after taking redundancy and FEC into account. Thus, the following parameters from Table 1 SHALL be computed after taking the effect of redundancy (e.g. RFC 2198) and/or FEC (e.g. RFC 2733) into account: - Network packet loss rate, NLR - Jitter buffer discard rate, JDR - Burst loss density, BLD, and burst duration, BD - Gap loss density, GLD, and gap duration, GD By contrast, the packet receipt and packet loss parameters based on RTCP Sender Reports (SR) and Receiver Reports (RR) do not take redundancy or FEC into account. They are meant to be indicative of impairments "on the wire" than in end-to-end service. Thus, the packets lost (PL) parameter in Table 2 does not take into account any loss mitigation due to redundancy (e.g. RFC 2198) or FEC (e.g. RFC 2733) into account. 2.3.5 Parameter Extension Mechanism The XRM/LVM and XRM/RVM lines MAY include vendor extension parameters that begin with an "X-". An MGCP entity that receives an extension parameter in these lines MUST ignore it if it cannot understand it. Since these parameters introduce an unmanaged name space, there is a potential for name clashing. Vendors are consequently encouraged to include some vendor specific string, e.g. vendor name or stock ticker symbol, in their vendor extensions. For example, if Acme Widgets, a fictional company, wishes to use metric "ABC", it is preferable to use the name "X-acmewidgets-ABC" rather than "X-ABC". Vendors may register new metrics in an IANA registry of MGCP names of VoIP metrics. The "X-" prefix is not germane to a metric following registration. 2.3.6 Formal Syntax of VoIP Metrics Package The following describes the ABNF encoding [RFC 2234] for the parameters defined in this package. Per MGCP conventions, all parameters defined in this package are case-insensitive. Kumar et al Informational Page 26 MGCP RTCP-XR Package 11/2/2005 The standard tokens SP, WSP, ALPHA, DIGIT, HEXDIG etc. are per RFC 2234. MediaMetricsOption = "XRM/MMO:" *WSP ("REP"/"RES"/"RR") RemoteVoIPMetrics = "XRM/LVM:" *WSP [VoIPMetric *("," *WSP VoIPMetric)] ; zero or more local metrics ; zero metrics are permitted in AUCX responses RemoteVoIPMetrics = "XRM/RVM:" *WSP [VoIPMetric *("," *WSP VoIPMetric)] ; zero or more remote metrics VoIPMetric = NetworkPacketLossRate / JitterBufferDiscardRate / BurstLossDensity / GapLossDensity / BurstDuration / GapDuration / RoundTripNetworkDelay / EndSystemDelay / SignalLevel / NoiseLevel / ResidualEchoReturnLoss / MinimumGapThreshold / RFactor-CQ / RFactor-LQ / ExternalRFactor / EstimatedMOS-LQ / EstimatedMOS-CQ / PacketLossConcealmentType / JitterBufferAdaptability / JitterBufferRate / JitterBufferNominal / JitterBufferMax / JitterBufferAbsMax / MOSLQEstimationAlgorithm / MOSLQEstimationAlgorithm / RfacorEstimationAlgorithms / InterArrivalJitter / PacketsSent / OctetsSent / PacketsReceived / OctetsReceived / PacketsLost / SSRC / SourceIPAddress / SourceIPAddressType / DestinationIPAddress / DestinationIPAddressType / SourceRTPPort / DestinationRTPPort Kumar et al Informational Page 27 MGCP RTCP-XR Package 11/2/2005 / SourceRTCPPort / DestinationRTCPPort / VoiceOrVBDprimaryCodec / VoiceOrVBDsecondaryCodec / MaxCharacterRate / MediaMode / SampleRate / CodecFrameSize / RTPpayloadSize / PacketizationRate / SilenceSuppression / EchoCancellation / RFC2198RedundancyForVoiceOrVBD / RFC2733FECforVoiceOrVBD / FECstreamSSRC / FECDestinationIPAddress / FECDestinationRTPPort / UnregisteredExtension / RegisteredExtension NetworkPacketLossRate = "NLR=" 1*3(DIGIT) ;0-255 JitterBufferDiscardRate = "JDR=" 1*3(DIGIT) ;0-255 BurstLossDensity = "BLD=" 1*3(DIGIT) ; 0-255 GapLossDensity = "GLD=" 1*3(DIGIT) ; 0-255 BurstDuration = "BD=" 1*5(DIGIT) ; 0-65535 GapDuration = "GD=" 1*5(DIGIT) ; 0-65535 MinimumGapThreshold = "GMN=" 1*3(DIGIT) ; 1-255 RoundTripNetworkDelay = "RTD=" 1*4(DIGIT) ; EndSystemDelay = "ESD=" 1*4(DIGIT) ; SignalLevel = "SL=" ["-"] 1*3(DIGIT) ;-128 to 127 NoiseLevel = "NL=" 1*3(DIGIT) ; 0 to 127, indicates dB below 0 dBm0 ResidualEchoReturnLoss = "RERL=" 1*3(DIGIT) ;0-127 RFactor-CQ = "NSR=" 1*3(DIGIT) ;0-120, or 127 RFactor-LQ = "RLQ=" 1*3(DIGIT) ;0-120, or 127 ExternalRFactor = "XRF=" 1*3(DIGIT) ;0-120, or 127 EstimatedMOS-LQ = "MLQ=" 1*3(DIGIT) ; 10-50, or 127 Kumar et al Informational Page 28 MGCP RTCP-XR Package 11/2/2005 EstimatedMOS-CQ = "MCQ=" 1*3(DIGIT) ; 10-50, or 127 PacketLossConcealmentType= "PLC=" ("0" / "1" / "2" / "3") JitterBufferAdaptability = "JBA=" ("0" / "1" / "2" / "3") JitterBufferRate = "JBR=" 1*2(DIGIT) ;0-15 JitterBufferNominal = "JBN=" 1*5(DIGIT) ;0-65535 JitterBufferMax = "JBM=" 1*5(DIGIT) ;0-65535 JitterBufferAbsMax = "JBS=" 1*5(DIGIT) ;0-65535 MOSLQEstimationAlgorithm = "MLES=" ALPHA 1*127 (permittedchar) ;first character must be alphabetic MOSCQEstimationAlgorithm = "MES=" ALPHA 1*127 (permittedchar) ;first character must be alphabetic RfactorAlgorithms = "RFES=" ALPHA 1*127 (permittedchar) ;first character must be alphabetic InterArrivalJitter = "IAJ=" 1*3(DIGIT) ; PacketsSent = "PS=" 1*9(DIGIT); OctetsSent = "OS=" 1*9(DIGIT); PacketsReceived = "PR=" 1*9(DIGIT); OctetsReceived = "OR=" 1*9(DIGIT); PacketsLost = "PL=" ["-"] 1*9(DIGIT); SSRC = "SSRC=" 1*10 (DIGIT); 0-4,294,967,296 SourceIPAddressType = "IPTS=" ("IvP4" / "IPv6") DestinationIPAddressType = "IPTD=" ("IvP4" / "IPv6") SourceIPAddress = "IPAS=" (IPv4address / IPv6address) ; IPv4address and IPv6address defined in RFC 3261 DestinationIPAddress = "IPAD=" (IPv4address / IPv6address) ; IPv4address and IPv6address defined in RFC 3261 SourceRTPPort = "RTUS=" 1*5(DIGIT) ;1024-65535 inclusive DestinationRTPPort = "RTUD=" 1*5(DIGIT) ;1024-65535 inclusive SourceRTCPPort = "RTCS=" 1*5(DIGIT) ;1024-65535 inclusive DestinationRTCPPort = "RTCD=" 1*5(DIGIT) ;1024-65535 inclusive VoiceOrVBDprimaryCodec = "VCD=" ALPHA 1*31 (permittedchar) ;first character must be alphabetic VoiceOrVBDsecondaryCodec = "VCDS=" ALPHA 1*31 (permittedchar) ;first character must be alphabetic MaxCharacterRate = "CPS=" 1*2 (DIGIT) MediaMode = "MMOD=" "a" / "v" / "f" / "m" / "t" / ALPHA ; audio, voice band data, fax relay, modem relay, text relay ; the token ALPHA is to permit additional future definitions SampleRate = "SMPL=" 1*7 (DIGIT) CodecFrameSize = "FRSZ=" 1*3 (DIGIT) RTPpayloadSize = "PLSZ=" 1*3 (DIGIT) PacketizationRate = "PKRT=" 1*5 (DIGIT) SilenceSuppression = "SSUP=" ("on" / "off") EchoCancellation = "ECAN=" ("on" / "off") RFC2198RedundancyForVoiceOrVBD = "VRED=" ("on" / "off") Kumar et al Informational Page 29 MGCP RTCP-XR Package 11/2/2005 RFC2733FECforVoiceOrVBD = "VFEC=" ("on" / "off") FECstreamSSRC = "FSRC=" 1*10 (DIGIT); 0-4,294,967,296 FECDestinationIPAddress = "IPAF=" (IPv4address / IPv6address) ; IPv4address and IPv6address defined in RFC 3261 FECDestinationRTPPort = "RTFD=" 1*5(DIGIT) ;1024-65535 inclusive UnregisteredExtension = "X-" ExtensionName "=" ExtensionVal RegisteredExtension = ExtensionName "=" ExtensionVal ExtensionName = 1*32 (ALPHA) ExtensionVal = 1*32 (alphanum) ;More precise definition in extension specifications alphanum = ALPHA / DIGIT permittedchar = alphanum / permittedspecialchar permittedspecialchar = "-" / "_" / "." / "!" / "~" / "*" / "'" / "(" / ")" / SP 2.3.7 Applicability of VoIP metrics to Voice Band Data For the definition of Voice Band Data, see [ITU V.152]. RTCP is required in conjunction with any RTP session [RFC 3550]. However, the various blocks in RTCP-XR, such as the VoIP metrics block, are not. They must be negotiated at session establishment. The parameters from the RTCP XR VoIP metrics block (Table 1) and the RTCP Sender/Receiver Reports (Table 2) are applicable to Voice Band Data. So are the session description parameters (Table 3). The recommended computational model it to accumulate/average parameters such as network packet loss rate (NLR) that are germane to multiple media states (such as voice and voiceband data) across those states, even if the payloads are different. Note that the utility of the various MOS scores and R-factors might be limited for Voice Band Data since there is no correlation of the various MOS scores and R-factors with the end-users' perspective of the quality of the modem or fax transmission. Therefore, most implementations will suspend MOS score and R-factor computation at the time of the transition from voice to voiceband data and resume the computation only if a switchback to voice occurs. In this case, the MOS scores and R-factors MUST be understood to apply only to any voice epoch(s) during the life of the session. If the session is established in the voiceband data mode, then the MOS scores and R-factors will be omitted or dummied out per the rules in Section 2.3.1. Some implementations MAY elect to use the MLQ metric as an indicator of the transmission quality of voiceband data channel. In this case, the discussion above on suspension and omission does not apply. For some Voice Band Data sessions, echo cancellation is turned off. For others, it is turned on. If echo cancellation is off, then RERL reverts to the Echo Return Loss of the hybrid transformer or acoustic coupling path. However, some implementations might not measure this parameter in the absence of an active echo canceller. In such cases, this parameter Kumar et al Informational Page 30 MGCP RTCP-XR Package 11/2/2005 will be omitted in the XRM/LVM and XRM/RVM lines, or set to a dummy value (127) in the XRM/RVM line. Many voice band data sessions [ITU V.152] use fixed-length jitter buffers. If this is the case, then this will be reflected in the JBA parameter (set to "non-adaptive"), the JBR parameter (set to 0) and the JBS parameter (set to JBM). 2.3.8 Applicability of VoIP metrics to Fax Relay and Text Relay This document is centered on voice and voiceband data and, in general, does not address relay. However, it is instructive to examine how the parameters defined in this document apply to various relay mechanisms. Tables 4, 5 and 6 examine the relevance of the metrics and session parameters listed in Tables 1, 2 and 3 to fax relay [ITU T.38]. Tables 7, 8 and 9 examine the relevance of the metrics and session parameters listed in Tables 1, 2 and 3 to text relay [ITU V.151]. The recommended computational model it to accumulate/average parameters such as network packet loss rate (NLR) that are germane to multiple media states (such as voice and fax relay) across those states, even if the payload and, possibly, packetization are different. Note that only the parameters that are relevant to these relay modes are listed in Tables 4-9. Other specifications such as [FAX PKG] will address in a comprehensive manner the reporting via MGCP of the metrics that pertain to the various relay modes. Also, note that the basic definitions of parameters from Tables 1, 2, and 3 are not repeated in Tables 4 through 9. All that these tables address is the applicability of these parameters to fax relay and text relay. As explained above, when a media state transition occurs (e.g. from voice to voiceband data or fax relay), the update of metrics and session description parameters that are unsuitable for the new mode is suspended. Their update is resumed when the endpoint makes a transition to another media state (such a switchback to voice or voiceband data) where they are relevant again. Relay sessions (fax or text) get established in two ways. In the first case, the session is established as a fax or text relay session during call set-up. In the second case, it is established as an audio session which is transitioned, at media gateways, to fax relay or text relay on the receipt of certain tones or stimuli. A variant of this second case involves a transition from audio to voice band data and subsequently to fax relay or text relay. Parameters from Tables 1, 2 and 3 that are not relevant to fax relay are not listed in Tables 4, 5 and 6. These MUST be understood to apply only to other, non-fax relay epoch(s) during the life of the session. Similarly, parameters from Tables 1, 2 and 3 that are not relevant to text relay are not listed in Tables 7, 8 and 9. These MUST be understood to apply only to other, non-text relay epoch(s) during the life of the session. If the session is established in a fax relay or Kumar et al Informational Page 31 MGCP RTCP-XR Package 11/2/2005 text relay modes, then the irrelevant parameters will be omitted or dummied out per the rules in Section 2.3.1. RTCP is required in conjunction with any RTP session [RFC 3550]. This includes RTP-based fax relay and RTP-based text relay. However, the various blocks in RTCP-XR, such as the VoIP metrics block, are not. They must be negotiated at session establishment. Note that, in contrast to RTP-based relay sessions, RTCP is not applicable to non-RTP relay such as UDTPL-based fax relay [ITU T.38]. Note that burst parameters (burst loss density, gap loss density, burst duration, gap duration and the minimum gap threshold) are not germane to relay mechanisms (such as fax relay or text relay) since such relay streams are not continuous for significant periods of time. Any burst characterization is, therefore, likely to be deceptive. Also note that the various R-factors and MOS scores in Table 1 are not applicable to baseband data transmission such as fax relay or data relay. TABLE 4: PARAMETERS FROM TABLE 1 THAT ARE APPLICABLE TO FAX RELAY +-----------------+-----------------------------------------------+ | PARAMETER | APPLICABILITY TO FAX RELAY | | from Table 1 | | +-----------------+-----------------------------------------------+ |Network packet |Loss refers to fax relay packets which may be | |loss rate(NLR) |UDPTL or RTP [ITU T.38]. Computed after FEC | | |and/or redundancy processing. As described | | |in [ITU T.38], the FEC and redundancy | | |schemes applicable to UDPTL fax relay and RTP | | |fax relay are different. | +-----------------+-----------------------------------------------+ |Jitter buffer |Discards refer to fax relay packets which may | |discard rate |be UDPTL or RTP [ITU T.38]. Computed after FEC | |(JDR) |and/or redundancy processing. As described | | |in [ITU T.38], the FEC and redundancy | | |schemes applicable to UDPTL fax relay and RTP | | |fax relay are different. | +-----------------+-----------------------------------------------+ |Round trip |Not very useful for fax relay sessions. Can be | |network delay |computed using RTCP for RTP-based fax relay. | |(RTD) |There is no standard mechanism for round-trip | | |delay computation in the case of UDPTL-based | | |fax relay. | ------------------------------------------------------------------- |End system delay | Not very useful for fax relay sessions. | |(ESD) | | +-----------------+-----------------------------------------------+ Kumar et al Informational Page 32 MGCP RTCP-XR Package 11/2/2005 TABLE 5: PARAMETERS FROM TABLE 2 THAT ARE APPLICABLE TO FAX RELAY +-----------------+-----------------------------------------------+ | PARAMETER | APPLICABILITY TO FAX RELAY | | from Table 2 | | +-----------------+-----------------------------------------------+ |Packets sent |Refers to fax relay packets, which may be UDPTL| |(PS) |or RTP. Does not include any RTP FEC packets | | |sent on a different SSRC or port. | +-----------------+-----------------------------------------------+ |Octets sent |Refers only to T.4 image octets in | |(OS) |primary UDPTL/RTP payloads/packets. Octets in | | |redundant/FEC payloads/packets are not counted.| +-----------------+-----------------------------------------------+ |Packets |Refers to fax relay packets, which may be UDPTL| |Received |or RTP. Does not include any RTP FEC packets | |(PR) |received on a different SSRC or port. | +-----------------+-----------------------------------------------+ |Octets received |Refers only to T.4 image octets in | |(OR) |primary UDPTL/RTP payloads/packets. Octets in | | |redundant/FEC payloads/packets are not | | |counted. | +-----------------+-----------------------------------------------+ |Packets lost |Refers to lost UDPTL/RTP fax relay packets | |(PL) |without taking into account any loss mitigation| | |due to redundancy or FEC. As described | | |in [ITU T.38], the FEC and redundancy | | |schemes applicable to UDPTL fax relay and RTP | | |fax relay are different. | +-----------------+-----------------------------------------------+ TABLE 6: PARAMETERS FROM TABLE 3 THAT ARE APPLICABLE TO FAX RELAY +-----------------+-----------------------------------------------+ | PARAMETER | APPLICABILITY TO FAX RELAY | | from Table 3 | | +-----------------+-----------------------------------------------+ |SSRC |Not applicable to UDPTL-based fax relay. For | |(SSRC) |RTP-based fax relay, this is the SSRC of the | | |RTP fax relay stream. | +-----------------+-----------------------------------------------+ |Source IP address| Applicable to fax relay sessions. | |(IPAS) | | +-----------------+-----------------------------------------------+ |Source IP address| Applicable to fax relay sessions. | |type (IPTS) | | +-----------------+-----------------------------------------------+ |Destination IP | Applicable to fax relay sessions. | |address (IPAD) | | +-----------------+-----------------------------------------------+ |Destination IP | Applicable to fax relay sessions. | |address type | | |(IPTD) | | +-----------------+-----------------------------------------------+ Kumar et al Informational Page 33 MGCP RTCP-XR Package 11/2/2005 +-----------------+-----------------------------------------------+ | PARAMETER | APPLICABILITY TO FAX RELAY | | from Table 3 | | +-----------------+-----------------------------------------------+ |Source RTP/UDPTL | Applicable to fax relay sessions. | |port (RTUS) | | +-----------------+-----------------------------------------------+ |Destination | Applicable to fax relay sessions. | |RTP/UDPTL port | | |(RTUD) | | +-----------------+-----------------------------------------------+ |Source RTCP | Applicable to RTP-based fax relay sessions. | |port (RTCS) | | +-----------------+-----------------------------------------------+ |Destination RTCP | Applicable to RTP-based fax relay sessions. | |port (RTCD) | | +-----------------+-----------------------------------------------+ |Media Mode (MMOD)| Applicable to fax relay sessions. | +-----------------+-----------------------------------------------+ |SSRC of received |Applicable to RTP-based fax relay if FEC is | |FEC stream |used in conjunction with it. | |(FSRC) | | +-----------------+-----------------------------------------------+ |Destination IP |Applicable to RTP-based fax relay if FEC is | |address for FEC |used in conjunction with it. | |(IPAF) | | +-----------------+-----------------------------------------------+ |Destination RTP |Applicable to RTP-based fax relay if FEC is | |port for FEC |used in conjunction with it. | |(RTFD) | | +-----------------+-----------------------------------------------+ TABLE 7: PARAMETERS FROM TABLE 1 THAT ARE APPLICABLE TO TEXT RELAY +-----------------+-----------------------------------------------+ | PARAMETER | APPLICABILITY TO TEXT RELAY | | from Table 1 | | +-----------------+-----------------------------------------------+ |Network packet |Packet loss is computed for a stream of packets| |loss rate(NLR) |sharing an SSRC and, therefore, the same | | |sequence number space. This is either a | | |stream of RTP-based text relay packets or an | | |interleaved stream of audio and text relay | | |packets. This loss rate is computed after FEC | | |and/or redundancy processing. | +-----------------+-----------------------------------------------+ |Jitter buffer |The discard rate is computed for a stream of | |discard rate |packets sharing an SSRC and, therefore, the | |(JDR) |same sequence number space. This is either a | | |stream of RTP-based text relay packets or an | | |interleaved stream of audio and text relay | | |packets. This loss rate is computed after FEC | | |and/or redundancy processing. | +-----------------+-----------------------------------------------+ Kumar et al Informational Page 34 MGCP RTCP-XR Package 11/2/2005 +-----------------+-----------------------------------------------+ | PARAMETER | APPLICABILITY TO TEXT RELAY | | from Table 1 | | +-----------------+-----------------------------------------------+ |Round trip |Applicable to text relay sessions. | |network delay | | |(RTD) | | +-----------------+-----------------------------------------------+ |End system delay |Applicable to text relay sessions. | |(ESD) | | +-----------------+-----------------------------------------------+ TABLE 8: PARAMETERS FROM TABLE 2 THAT ARE APPLICABLE TO TEXT RELAY +-----------------+-----------------------------------------------+ | PARAMETER | APPLICABILITY TO TEXT RELAY | | from Table 2 | | +-----------------+-----------------------------------------------+ |Packets sent |Refers to text relay packets. If these packets | |(PS) |share an SSRC with an interleaved audio stream,| | |it refers to the composite stream. Does not | | |include any FEC packets sent on a different | | |SSRC or port. | +-----------------+-----------------------------------------------+ |Octets sent |Refers only to payload octets in primary RTP | |(OS) |payloads/packets. Payload octets include text | | |octets and audio octets sent with the same | | |SSRC. Octets in redundant or FEC | | |payloads/packets are not counted. | +-----------------+-----------------------------------------------+ |Packets received |Refers to text relay packets. If these packets | |(PR) |share an SSRC with an interleaved audio stream,| | |it refers to the composite stream. Does not | | |include any FEC packets received on a different| | |SSRC or port. | +-----------------+-----------------------------------------------+ |Octets received |Refers only to payload octets in primary RTP | |(OR) |payloads/packets. Payload octets include text | | |octets and audio octets received with the same | | |SSRC. Octets in redundant or FEC | | |payloads/packets are not counted. | +-----------------+-----------------------------------------------+ |Packets lost |Refers to text relay packets. If these packets | |(PL) |share an SSRC with an interleaved audio stream,| | |it refers to the composite stream. Does not | | |take into account any loss mitigation due to | | |due to redundancy or FEC. | +-----------------+-----------------------------------------------+ Kumar et al Informational Page 35 MGCP RTCP-XR Package 11/2/2005 TABLE 9: PARAMETERS FROM TABLE 3 THAT ARE APPLICABLE TO TEXT RELAY +-----------------+-----------------------------------------------+ | PARAMETER | APPLICABILITY TO TEXT RELAY | | from Table 3 | | +-----------------+-----------------------------------------------+ |SSRC |Applicable to text relay sessions and sessions | |(SSRC) |with interleaved text relay and audio packets. | +-----------------+-----------------------------------------------+ |Source IP |Applicable to text relay sessions and sessions | |address (IPAS) |with interleaved text relay and audio packets. | +-----------------+-----------------------------------------------+ |Source IP address|Applicable to text relay sessions and sessions | |type (IPTS) |with interleaved text relay and audio packets. | +-----------------+-----------------------------------------------+ |Destination IP |Applicable to text relay sessions and sessions | |address (IPAD) |with interleaved text relay and audio packets. | +-----------------+-----------------------------------------------+ |Destination IP |Applicable to text relay sessions and sessions | |address type |with interleaved text relay and audio packets. | |(IPTD) | | +-----------------+-----------------------------------------------+ |Source RTP/UDPTL |Applicable to text relay sessions and sessions | |port(RTUS) |with interleaved text relay and audio packets. | +-----------------+-----------------------------------------------+ |Destination |Applicable to text relay sessions and sessions | |RTP/UDPTL port |with interleaved text relay and audio packets. | |(RTUD) | | +-----------------+-----------------------------------------------+ |Source RTCP |Applicable to text relay sessions and sessions | |port (RTCS) |with interleaved text relay and audio packets. | +-----------------+-----------------------------------------------+ |Destination RTCP |Applicable to text relay sessions and sessions | |port (RTCD) |with interleaved text relay and audio packets. | +-----------------+-----------------------------------------------+ |Media Mode |Applicable to text relay sessions and sessions | |(MMOD) |with interleaved text relay and audio packets. | +-----------------+-----------------------------------------------+ |SSRC of received |Applicable if FEC is used. | |FEC stream | | |(FSRC) | | +-----------------+-----------------------------------------------+ |Destination IP |Applicable if FEC is used. | |address for FEC | | |(IPAF) | | +-----------------+-----------------------------------------------+ |Destination RTP |Applicable if FEC is used. | |port for FEC | | |(RTFD) | | +-----------------+-----------------------------------------------+ Kumar et al Informational Page 36 MGCP RTCP-XR Package 11/2/2005 3. Call Flow Examples The following examples are partial call flows for the case where the XRM/mcr local connection option is set to "on". Only one endpoint's perspective is shown. In this example, the remote endpoint sends voice metrics to this endpoint via RTCP Extended Reports, Sender Reports and Receiver Reports. Note that these are call flow examples and not examples of typical metrics values. These values have not been derived from real-world situations and, therefore, do not necessarily have the right numeric relationship between themselves. 3.1 Metrics Reporting during Call agent-initiated Delete Connection Step 1: The Call Agent issues a CreateConnection command to the endpoint instructing it to use PCMU media encoding and to invoke RTCP XR metric collection, responding and reporting: CRCX 1000 ds/ds1-1/1@gw-o.example.net MGCP 1.0 C: 1 L: a:PCMU, xrm/mcr: on M: recvonly Step 2: The endpoint acknowledges the command and includes the rtxp-xr attribute set to "voip-metrics": 200 1000 OK I:1 v=0 o=- 25678 753849 IN IP4 128.96.41.1 s=- c=IN IP4 128.96.41.1 t=0 0 m=audio 3456 RTP/AVP 0 a=rtcp-xr:voip-metrics Step 3: The endpoint receives a ModifyConnection command containing an LCO with no xrm/mcr parameter, which indicates that the endpoint should continue to use the previously received value of "on". Since the received SDP also contains the rtcp-xr attribute with a value of "voip-metrics", it is safe to assume that both ends will exchange the VoIP metrics block in RTCP Extended Reports (XR). MDCX 1001 ds/ds1-1/1@gw-o.example.net MGCP 1.0 C: 1 Kumar et al Informational Page 37 MGCP RTCP-XR Package 11/2/2005 I: 1 L: a:PCMU;G728 M: sendrecv I:1 v=0 o=- 4723891 7428910 IN IP4 128.96.63.25 s=- c=IN IP4 128.96.63.25 t=0 0 m=audio 4082 RTP/AVP 0 a=rtcp-xr:voip-metrics Step 4: The endpoint acknowledges the command and, since VoIP metrics collection/reporting is still "on", includes the rtxp-xr attribute set to "voip-metrics": 200 1001 OK v=0 o=- 25678 753849 IN IP4 128.96.41.1 s=- c=IN IP4 128.96.41.1 t=0 0 m=audio 3456 RTP/AVP 0 a=rtcp-xr:voip-metrics Step 5: The Call Agent eventually issues a DeleteConnection: DLCX 1100 ds/ds1-1/1@gw-o.example.net MGCP 1.0 C: 1 I: 1 Step 6: The endpoint acknowledges the command and returns the standard MGCP connection parameters along with the XRM/LVM line and the XRM/RVM line. This endpoint elects to include the remote equivalents of the connection parameters on XRM/RVM line. Note that the remote end has indicated that the ITU G.107 specification has been used to compute the R-factors and that a proprietary algorithm, "Acme Widgets 233", has been used to compute MOS-LQ. The remote end has not indicated the algorithm used to compute MOS-CQ, which is on of the metrics that it has communicated via an RTCP extended report. Also note that new lines shown here are for document formatting reasons only. 250 1100 OK P: PS=5000, OS=200000, PR=6000, OR=340000, PL=800, JI=27, LA=180 Kumar et al Informational Page 38 MGCP RTCP-XR Package 11/2/2005 XRM/LVM: NLR=28, JDR=14, BLD=128, GLD=10, BD=55, GD=1000, RTD=180,ESD=30, SL=-15, NL=20, RERL=23, GMN=16, NSR=63, RLQ=61, XSR=65, MLQ=33, MCQ=31, PLC=3, JBA=3, JBR=8, JBN=40, JBM=80, JBS=120, SSRC=27513888, IPAD=128.96.41.1, RTPD=3456, VCD=PCMU, VPT=0, MMOD=a, SMPL=8000, PKRT=200, SSUP=on, ECAN=on, VRED=off, VFEC=off XRM/RVM: NLR=6, JDR=2, BLD=50, GLD=3, BD=20, GD=6000, RTD=180, ESD=23, SL=-16, NL=25, RERL=23, GMN=16, NSR=80, RLQ=82, XSR=77, MLQ=37, MCQ=35, PLC=3, JBA=3, JBR=8, JBN=30, JBM=60, JBS=100, MLES=Acme widgets 233, RFES=ITU G.107,PS=6800, OS=272000, PR=4900, OR=196000, IAJ=15, SSRC=832829, IPAD=128.96.63.25, RTPD=4082, VCD=PCMU, VPT=0, MMOD=a, SMPL=8000, PKRT=200, SSUP=on, ECAN=on, VRED=off, VFEC=off 3.2 Metrics Reporting during Gateway-initiated Delete Connection Step 1: The Call Agent issues a CreateConnection command to the endpoint instructing it to use PCMU media encoding and to invoke RTCP XR metric collection and reporting: CRCX 1000 ds/ds1-1/1@gw-o.example.net MGCP 1.0 C: 1 L: a:PCMU, xrm/mcr: on M: recvonly Step 2: The endpoint acknowledges the command and includes the rtxp-xr attribute set to "voip-metrics": 200 1000 OK I:1 v=0 o=- 25678 753849 IN IP4 128.96.41.1 s=- c=IN IP4 128.96.41.1 t=0 0 m=audio 3456 RTP/AVP 0 a=rtcp-xr:voip-metrics Step 3: The Endpoint issues a DeleteConnection command including the connection parameters along with the XRM/LVM line and the XRM/RVM line: DLCX 1100 ds/ds1-1/1@gw-o.example.net MGCP 1.0 C: 1 I: 1 E: 900 - - Hardware error P: PS=5000, OS=200000, PR=6000, OR=340000, PL=800, Kumar et al Informational Page 39 MGCP RTCP-XR Package 11/2/2005 JI=27, LA=180 XRM/LVM: NLR=28, JDR=14, BLD=128, GLD=10, BD=55, GD=1000, RTD=180,ESD=30, SL=-15, NL=20, RERL=23, GMN=16, NSR=63, XSR=65, MLQ=33, MCQ=31, PLC=3, JBA=3, JBR=8, JBN=40, JBM=80, JBS=120, SSRC=27513888, IPAD=128.96.41.1, RTPD=3456, VCD=PCMU, VPT=0, SMPL=8000, PKRT=200, SSUP=on, ECAN=on, VRED=off, VFEC=off XRM/RVM: NLR=6, JDR=2, BLD=50, GLD=3, BD=20, GD=6000, RTD=180, ESD=23, SL=-16, NL=25, RERL=23, GMN=16, NSR=80, XSR=77, MLQ=37, MCQ=35, PLC=3, JBA=3, JBR=8, JBN=30, JBM=60, JBS=100, PS=6800, OS=272000, PR=4900, OR=196000, IAJ=15, SSRC=832829, IPAD=128.96.63.25, RTPD=4082, VCD=PCMU, VPT=0, SMPL=8000, PKRT=200, SSUP=on, ECAN=on, VRED=off, VFEC=off Note that the RLQ parameter is not included in the XRM/LVM or the XRM/RVM lines. This is just an example of allowed parameter omission. This example could have very well been constructed with the RLQ parameter. Step 4: The Call Agent acknowledges the command: 200 1100 OK 3.3 Metrics Reporting during Audit Connection Step 1: The Call Agent issues a CreateConnection command to the endpoint instructing it to use PCMU media encoding and to invoke RTCP XR metric collection, responding and reporting: CRCX 1000 ds/ds1-1/1@gw-o.example.net MGCP 1.0 C: 1 L: a:PCMU, xrm/mcr: on M: recvonly Step 2: The endpoint acknowledges the command and includes the rtxp-xr attribute set to "voip-metrics": 200 1000 OK I:1 v=0 o=- 25678 753849 IN IP4 128.96.41.1 s=- c=IN IP4 128.96.41.1 t=0 0 m=audio 3456 RTP/AVP 0 a=rtcp-xr:voip-metrics Kumar et al Informational Page 40 MGCP RTCP-XR Package 11/2/2005 Step 3: The endpoint receives a ModifyConnection command containing an LCO with no xrm/mcr parameter, which indicates that the endpoint should continue to use the previously received value of "on". Since the received SDP also contains the rtcp-xr attribute with a value of "voip-metrics", it is safe to assume that both ends will exchange the VoIP metrics block in RTCP Extended Reports (XR). MDCX 1001 ds/ds1-1/1@gw-o.example.net MGCP 1.0 C: 1 I: 1 L: a:PCMU;G728 M: sendrecv v=0 o=- 4723891 7428910 IN IP4 128.96.63.25 s=- c=IN IP4 128.96.63.25 t=0 0 m=audio 4082 RTP/AVP 0 a=rtcp-xr:voip-metrics Step 4: The endpoint acknowledges the command and, since VoIP metrics collection/reporting is still "on", includes the rtxp-xr attribute set to "voip-metrics": 200 1001 OK I:1 v=0 o=- 25678 753849 IN IP4 128.96.41.1 s=- c=IN IP4 128.96.41.1 t=0 0 m=audio 3456 RTP/AVP 0 a=rtcp-xr:voip-metrics Step 5: The Call Agent eventually issues a AuditConnection that requests the XRM/LVM and XRM/RVM lines but not the P (connection parameters) line: AUCX 1100 ds/ds1-1/1@gw-o.example.net MGCP 1.0 C: 1 I: 1 F: XRM/LVM, XRM/RVM Kumar et al Informational Page 41 MGCP RTCP-XR Package 11/2/2005 Step 6: The endpoint acknowledges the command and returns the XRM/LVM line and the XRM/RVM line. This endpoint elects to include the local and remote equivalents of the connection parameters in the XRM/LVM and XRM/RVM line. Also note that new lines shown here are for document formatting reasons only. 200 1100 OK XRM/LVM: NLR=28, JDR=14, BLD=128, GLD=10, BD=55, GD=1000, RTD=180,ESD=30, SL=-15, NL=20, RERL=23, GMN=16, NSR=63, RLQ=61, XSR=65, MLQ=33, MCQ=31, PLC=3, JBA=3, JBR=8, JBN=40, JBM=80, JBS=120, PS=5000, OS=200000, PR=6000, OR=340000, PL=800, IAJ=27, SSRC=27513888, IPAD=128.96.41.1, RTPD=3456, VCD=PCMU, VPT=0, MMOD=a, SMPL=8000, PKRT=200, SSUP=on, ECAN=on, VRED=off, VFEC=off XRM/RVM: NLR=6, JDR=2, BLD=50, GLD=3, BD=20, GD=6000, RTD=180, ESD=23, SL=-16, NL=25, RERL=23, GMN=16, NSR=80, RLQ=82, XSR=77, MLQ=37, MCQ=35, PLC=3, JBA=3, JBR=8, JBN=30, JBM=60, JBS=100, PS=6800, OS=272000, PR=4900, OR=196000, IAJ=15, SSRC=832829, IPAD=128.96.63.25, RTPD=4082, VCD=PCMU, VPT=0, MMOD=a, SMPL=8000, PKRT=200, SSUP=on, ECAN=on, VRED=off, VFEC=off 3.4 Metrics Reporting during Modify Connection Step 1: The Call Agent issues a CreateConnection command to the endpoint instructing it to use PCMU media encoding and to invoke RTCP XR metric collection, responding and reporting: CRCX 1000 ds/ds1-1/1@gw-o.example.net MGCP 1.0 C: 1 L: a:PCMU, xrm/mcr: on M: recvonly Step 2: The endpoint acknowledges the command and includes the rtxp-xr attribute set to "voip-metrics": 200 1000 OK I:1 v=0 o=- 25678 753849 IN IP4 128.96.41.1 s=- c=IN IP4 128.96.41.1 t=0 0 m=audio 3456 RTP/AVP 0 a=rtcp-xr:voip-metrics Kumar et al Informational Page 42 MGCP RTCP-XR Package 11/2/2005 Step 3: The endpoint receives a ModifyConnection command containing an LCO with no xrm/mcr parameter, which indicates that the endpoint should continue to use the previously received value of "on". Since the received SDP also contains the rtcp-xr attribute with a value of "voip-metrics", it is safe to assume that both ends will exchange the VoIP metrics block in RTCP Extended Reports (XR). MDCX 1001 ds/ds1-1/1@gw-o.example.net MGCP 1.0 C: 1 I: 1 L: a:PCMU;G728 M: sendrecv v=0 o=- 4723891 7428910 IN IP4 128.96.63.25 s=- c=IN IP4 128.96.63.25 t=0 0 m=audio 4082 RTP/AVP 0 a=rtcp-xr:voip-metrics Step 4: The endpoint acknowledges the command and, since VoIP metrics collection/reporting is still "on", includes the rtxp-xr attribute set to "voip-metrics": 200 1001 OK I:1 v=0 o=- 25678 753849 IN IP4 128.96.41.1 s=- c=IN IP4 128.96.41.1 t=0 0 m=audio 3456 RTP/AVP 0 a=rtcp-xr:voip-metrics Step 5: The Call Agent eventually issues a ModifyConnection with the XRM/MMO line requesting that local and remote metrics be reset and reported. MDCX 1001 ds/ds1-1/1@gw-o.example.net MGCP 1.0 C: 1 I: 1 L: a:PCMU;G728 M: sendrecv XRM/MMO: RR Kumar et al Informational Page 43 MGCP RTCP-XR Package 11/2/2005 Step 6: The endpoint acknowledges the command and returns the XRM/LVM line and the XRM/RVM line. The endpoint does not include the connection parameters line since this would violate [RFC 3435]. Instead, it includes the local and remote equivalents of the connection parameters in the XRM/LVM and XRM/RVM line. Also note that new lines shown here are for document formatting reasons only. 200 1001 OK XRM/LVM: NLR=28, JDR=14, BLD=128, GLD=10, BD=55, GD=1000, RTD=180,ESD=30, SL=-15, NL=20, RERL=23, GMN=16, NSR=63, RLQ=61, XSR=65, MLQ=33, MCQ=31, PLC=3, JBA=3, JBR=8, JBN=40, JBM=80, JBS=120, PS=5000, OS=200000, PR=6000, OR=340000, PL=800, IAJ=27, SSRC=27513888, IPAD=128.96.41.1, RTPD=3456, VCD=PCMU, VPT=0, MMOD=a, SMPL=8000, PKRT=200, SSUP=on, ECAN=on, VRED=off, VFEC=off XRM/RVM: NLR=6, JDR=2, BLD=50, GLD=3, BD=20, GD=6000, RTD=180, ESD=23, SL=-16, NL=25, RERL=23, GMN=16, NSR=80, RLQ=82, XSR=77, MLQ=37, MCQ=35, PLC=3, JBA=3, JBR=8, JBN=30, JBM=60, JBS=100, PS=6800, OS=272000, PR=4900, OR=196000, IAJ=15, SSRC=832829, IPAD=128.96.63.25, RTPD=4082, VCD=PCMU, VPT=0, MMOD=a, SMPL=8000, PKRT=200, SSUP=on, ECAN=on, VRED=off, VFEC=off 4. Security Considerations This package inherits the security considerations of the base MGCP protocol. A possible new security issue involves a remote device placing extra burden on a local endpoint by requesting metric collection on that local endpoint. This threat can be mitigated by the call agent specifically prohibiting the generation of local metrics using the local connection option: xrm/mcr: off. 5. IANA Considerations 5.1 Package Registration The IANA is hereby requested to register the following MGCP package: Package Title Name Version ------------- ---- ------- RTCP XR metrics XRM 0 5.2. Extension Registration The IANA is requested to create a registry of MGCP names of vendor- specified VoIP metrics. These metrics MAY be used in the XRM/LVM and XRM/RVM lines defined in this package. Such a metric SHALL be described in a specification ("source document") approved by an accredited standards organization such as the IETF or ITU. This document MAY be informative and MAY address more than one metric. It MUST include: Kumar et al Informational Page 44 MGCP RTCP-XR Package 11/2/2005 - Contact name, email address and telephone number. - Metric name, as an alphabetic character string - Description of and ABNF notation for the permitted range of values, - A functional description of the metric i.e. what it measures and how it is to be used, - Optionally, the measurement algorithm and any IPR statements associated with it. 6. Changes from earlier drafts 6.1 Changes from the -00 version to the -01 version All changes from the -00 version to the -01 version of this draft are backwards compatible. All new features in the 01 version are optional. Note that the -00 version was incorporated into the PacketCable 1.5 specifications. Changes from the -00 version to the -01 version are: - Inclusion of statistics from the RTCP sender and receiver reports, with the exception of latency which is already present in the RTCP XR VoIP metrics block. The reporting of these statistics via this package is optional. - Inclusion of session description parameters based on the ones defined in RFC 2327, RFC 2198 etc. This included media description parameters such as codec type. - Inclusion of a modify connection procedure for the reporting and resetting of voice quality metrics. - Clarification of whether an XR or SR/RR metrics is a running average/cumulative value or the last computed value. For the SR/RR metrics, these rules are inherited from connection parameters in [RFC 3435]. - Inclusion of a new G.107-based parameter, RLQ, for indicating the listening quality of a VoIP session. - Inclusion of a new parameter, MLES, for indicating the algorithm used to estimate the MOS-LQ metric. - ABNF correction for requiring at least one metric in the XRM/LVM line. - Inclusion of a mechanism for defining vendor extension metrics that can be used in this package, and a mechanism for optionally registering these metrics with the IANA. Kumar et al Informational Page 45 MGCP RTCP-XR Package 11/2/2005 6.2 Changes from the -01 version to the -02 version All changes from the -01 version of this draft to the -02 version are backwards compatible. These are: - Included the impact of redundancy (e.g. RFC 2198) and FEC (e.g. RFC 2733) on packet loss computation. - Corrections of errors and typos in the ABNF. 6.3 Changes from the -02 version to the -03 version All changes from the -02 version of this draft to the -03 version are backwards compatible. These are: - Added the parameters FSRC, IPAF and RTFD to Table 3 to fully cover the case in which an RFC 2733 FEC is used. - Added section 2.3.8 on the applicability to fax relay and text relay of the VoIP metrics and session parameters reported via this package. 6.4 Potential future updates - Add list of acronyms 7. Normative References [RFC 2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, March 1997. [RFC 3435] F. Andreasen, B. Foster, "Media Gateway Control Protocol (MGCP) Version 1.0", January 2003. [RFC 3611] T. Friedman, R. Caceres, A. Clark, "RTP Control Protocol Extended Reports (RTCP XR)", November 2003. [RFC 3550] H. Schulzrinne, S. Casner, R. Frederick and V. Jacobson, "RTP: A Transport Protocol for Real-Time Applications", July 2003. [RFC 2327] M.Handley and V. Jacobson, "SDP: Session Description Protocol", April 1998. [RFC 3660] B.Foster and F.Andreasen, "Basic Media Gateway Control Protocol (MGCP) Packages", December 2003. [RFC 2234] D.Crocker and P.Overell, "Augmented BNF for Syntax Specifications: ABNF", November 1997. [RFC 3261] J.Rosenberg, H.Schulzrinne, G.Camarillo, A.Johnston, J.Peterson, R.Sparks, M.Handley, E.Schooler, "SIP: Session Initiation Protocol", June 2002. Kumar et al Informational Page 46 MGCP RTCP-XR Package 11/2/2005 [RFC 2198] C.Perkins, I.Kouvelas, O.Hodson, V.Hardman, M.Handley, J.C.Balot, A.Vega-Garcia and S. Fosse-Parisis, "RTP Payload for Redundant Audio Data", September 1997. [RFC 2733] J.Rosenberg, H.Schulzrinne, "An RTP Payload format for Generic Forward Error Correction", December 1999. [IANA RTP] http://www.iana.org/assignments/media-types/audio/. [US-ASCII] Coded Character Set--7-Bit American Standard Code for Information Interchange, ANSI X3.4-1986. [ITU V.152] Procedures for supporting Voice-Band Data over IP Networks, ITU V.152, January 2005. [FAX PKG] draft-andreasen-mgcp-fax-04.txt, Media Gateway Control Protocol Fax Package, F. Andreasen. [RFC 4103] RTP Payload for Text Conversation, Gunnar Hellstrom and Paul Jones. [ITU V.150.1] Modem-over-IP networks: Procedures for the end-to-end connection of V-series DCEs, ITU V.150.1, January 2003. [ITU V.151] Procedures for the end-to-end connection of analogue PSTN text telephones over an IP network utilizing Text Relay, Telecommunications Industries Association (TIA) Technical Draft TR- 30.1/05-03-006, Tampa, FL, Feb 28 - March4, 2005. [ITU T.140] Protocol for multimedia application text conversation, February 1998. Also, addendum 1, February 2000. [RFC 2793] G. Hellstrom, RTP Payload for Text Conversation. Also, its upcoming successor documents: G. Hellstrom and P. Jones, draft-ietf- avt-rfc2793bis-09, and G. Hellstrom and P. Jones, draft-ietf-avt-audio- t140c-00. [ITU T.35] Procedure for the allocation of ITU-T defined codes for non- standard facilities, February 2000. [ITU P.VTQ] Add a reference when ITU P.VTQ becomes a standard for MOS- LQ. 8. Acknowledgments Contributors to this document include Alan Clark, Joe Stone, Flemming Andreasen, Robert Biskner, Michael Ramalho, Paul Jones, Steve White, Kevin Connor, Jim Frauenthal, Tom Hock, David Ensign and the PacketCable NCS Specification Team. 9. Copyright Statement "Copyright (C) The Internet Society (2005). 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." Kumar et al Informational Page 47 MGCP RTCP-XR Package 11/2/2005 "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." Kumar et al Informational Page 48