SIPPING Working Group A. Johnston Internet-Draft H. Sinnreich Expires: April 14, 2005 MCI A. Clark Telchemy Incorporated A. Pendleton Nortel Networks October 14, 2004 A Performance Report Event Package For SIP draft-johnston-sipping-rtcp-summary-04 Status of this Memo This document is an Internet-Draft and is subject to all provisions of section 3 of RFC 3667. 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 become aware will be disclosed, in accordance with RFC 3668. 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 April 14, 2005. Copyright Notice Copyright (C) The Internet Society (2004). Abstract This document discusses the motivation and requirements for the delivery of performance reports and other summary reports from VoIP applications in endpoints to non-participants in the session. A Johnston, et al. Expires April 14, 2005 [Page 1] Internet-Draft SIP Performance Report Event October 2004 publication mechanism using a new SIP events package is proposed as a solution. An event package "perfrpt" and an application/perfrtp MIME type is defined in this document along with some example call flows. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Requirements . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Motivations for the Approach . . . . . . . . . . . . . . . . . 3 4. Why SNMP is Not Appropriate . . . . . . . . . . . . . . . . . 4 5. SIP Events Approach . . . . . . . . . . . . . . . . . . . . . 4 6. Use of PUBLISH Method . . . . . . . . . . . . . . . . . . . . 4 7. Event Package Formal Definition . . . . . . . . . . . . . . . 5 7.1 Event Package Name . . . . . . . . . . . . . . . . . . . . 5 7.2 Event Package Parameters . . . . . . . . . . . . . . . . . 5 7.3 SUBSCRIBE Bodies . . . . . . . . . . . . . . . . . . . . . 5 7.4 Subscription Duration . . . . . . . . . . . . . . . . . . 5 7.5 NOTIFY Bodies . . . . . . . . . . . . . . . . . . . . . . 5 7.6 Voice Quality Event Syntax . . . . . . . . . . . . . . . . 6 7.7 Voice Quality Metric Definitions . . . . . . . . . . . . . 8 7.8 Call Flows and Syntax Examples . . . . . . . . . . . . . . 12 7.8.1 End of Session Notification using PUBLISH . . . . . . 12 7.8.2 End of Session Notification using NOTIFY . . . . . . . 14 7.8.3 Mid Session Threshold Violation using PUBLISH . . . . 16 7.8.4 Mid Session Threshold Violation using NOTIFY . . . . . 18 7.9 IANA Considerations . . . . . . . . . . . . . . . . . . . 20 7.9.1 SIP Event Package Registration . . . . . . . . . . . . 20 7.9.2 application/rtcp-xr MIME Registration . . . . . . . . 21 7.10 Security Considerations . . . . . . . . . . . . . . . . . 21 7.11 Updates since -02 . . . . . . . . . . . . . . . . . . . . 22 7.12 Contributors . . . . . . . . . . . . . . . . . . . . . . . 22 8. Informative References . . . . . . . . . . . . . . . . . . . . 22 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 23 Intellectual Property and Copyright Statements . . . . . . . . 24 Johnston, et al. Expires April 14, 2005 [Page 2] Internet-Draft SIP Performance Report Event October 2004 1. Introduction This document defines a new performance report SIP event package and a new MIME type for VoIP performance metrics. In addition, the document includes the requirements, motivation, and a discussion why SNMP alone is not sufficient for this problem space. Using this mechanism, a SIP user agent (UA) can publish performance reports, or a performance quality collector can subscribe to receive performance reports from a particular SIP UA. The application/voiprpt MIME type defined in this document is based on the information contained in a RTCP-XR VOIP block and is highly optimized and useful for voice session quality. As VoIP is currently has the most immediate need for the real time quality reports available with this package, it has been defined first. However, the event package is designed to be extensible - existing MIME types which carry performance reports could be used, or other application/media specific MIME types could be defined and used within this framework. 2. Requirements REQ-1: An authorized third party should be able to receive selected performance reports on a near real time basis. REQ-2: The VoIP application should not have to store large amounts of information. REQ-3: The VoIP application must be able to authenticate the third party. REQ-4: The performance report information must be able to be transferred securely. REQ-6: The reports will include or be associated with dialog identifiers for correlation purposes. 3. Motivations for the Approach Monitor the application: While QoS monitoring in network elements using for example SNMP is quite common, only the VoIP applications in endpoints are close enough to the experience of individual users, on a call by call basis in endpoints as diverse as desktop SIP phones, PDAs, PCs or mobile phones. For this reason, the approach taken here is to monitor the voice quality at the application level and not in network elements. Focus on voice specific impairments: Johnston, et al. Expires April 14, 2005 [Page 3] Internet-Draft SIP Performance Report Event October 2004 RTCP extensions support the monitoring of various impairments such as packet loss, delay and jitter, but more important, specific metrics are included to measure burst errors that produce voice clipping. Voice clipping is the most annoying impairment in VoIP due to network congestion in the media path between VoIP applications. 4. Why SNMP is Not Appropriate Since this type of QoS monitoring seems related to management, SNMP could possibly be used to collect this type of data as well. SNMP is however primarily used for management of network devices as they relate to the infrastructure but is not typically used for management of applications on that infrastructure. The focus of SIP is applications and the performance management for those applications cannot rely on SNMP. SNMP may be used to manage some aspects of the physical device aspects of the SIP user agent Specifically, SNMP may be used to manage the SIP user agent - the phone, soft phone or gateway. However, the information available in RTCP summary reports is of less interest to the management of the UA and more of interest to the VoIP service provider. In many cases, separate entities will be involved. For example, an enterprise may manage their own SIP phones using SNMP, but a service provider provides SIP and gateway services. It is unlikely a service provider will have SNMP privileges and may not be able to manage NAT/firewall traversal, etc. For these reasons, SNMP is not a good fit for this "service level" management function. 5. SIP Events Approach In this approach, a new SIP events package [6] is defined. The intended methods to use for this event are PUBLISH [8] and SUBSCRIBE/NOTIFY. A VoIP application will send performance data using either of these methods to an entity which will make the information available to other applications. 6. Use of PUBLISH Method A VoIP application which supports this specification may send performance report information using the PUBLISH method. An application wishing to access this performance data maintains a State Agent for the perfrpt event package. The Request-URI of the PUBLISH method is set to the address of the resource for the VoIP application. The PUBLISH method is sent to the normal default outbound proxy server of the VoIP application. The use of PUBLISH by this event is unique in that it does not require a soft or hard state to be maintained by either the Event Johnston, et al. Expires April 14, 2005 [Page 4] Internet-Draft SIP Performance Report Event October 2004 Publication Agent (EPA) or the Event State Compositor (ESC). Futhermore the information that is presented by the perfrpt event in a PUBLISH request is not expected to have an expiration, rather, the information is associated with the timestamps in the event itself. The primary intention of using PUBLISH for this event is reduction of transaction processing. The State Agent can use normal mechanisms for publication throttling or rejection of the information as described in the PUBLISH [8] specification. 7. Event Package Formal Definition 7.1 Event Package Name This document defines a SIP Event Package as defined in RFC 3265 [2]. The event-package token name for this package is: "perfrpt" 7.2 Event Package Parameters No event package parameters are defined. 7.3 SUBSCRIBE Bodies No SUBSCRIBE bodies are described by this specification. 7.4 Subscription Duration Subscriptions to this event package MAY range from minutes to weeks. Subscriptions in hours or days are more typical and are RECOMMENDED. The default subscription duration for this event package is one hour. 7.5 NOTIFY Bodies There are two notify bodies: a general report and a threshold report. The general report is used for periodic, mid-call reporting and end of call reporting. The metrics provided by this event are intended to be generically defined to allow both cumulative based and short interval based reporting. The threshold report is used when call quality degrades. The general report is also included in the alert report to provide all of the necessary diagnostic information. This specification defines a new MIME type application/rtcp-xr which is a text encoding of the RTCP-XR statistics, with the addition of a Johnston, et al. Expires April 14, 2005 [Page 5] Internet-Draft SIP Performance Report Event October 2004 few additional identifiers. 7.6 Voice Quality Event Syntax This section describes the syntax extensions required for event publication in SIP. The formal syntax definitions described in this section are expressed in the Augmented BNF format [7] used in SIP [2], and contains references to elements defined therein. General Report Event: VQEvent = VoiceQualityAlert / (LocalMetrics [CLRF RemoteMetrics]) [DialogID] LocalMetrics = ("LocalMetrics") HCOLON VoiceQualityMetrics RemoteMetrics = ("RemoteMetrics") HCOLON VoiceQualityMetrics VoiceQualityMetrics = ("VQMetrics") CLRF TimeStampInfo CLRF StreamInfo CLRF CallID CLRF CodecInfo CRLF JitterBuffer CRLF PacketLoss CRLF BurstLoss CLRF GapLoss CLRF Delay CLRF Signal CLRF Quality TimeStampInfo = "Timestamps" EQUAL start-time SP stop-time start-time = "start" COLON alphanum [*alphanum] stop-time = "stop" COLON alphanum [*alphanum] StreamInfo = ("StreamInfo") EQUAL source-info SP dest-info source-info = ("src") COLON ipAddress SP port [SP ssrc] dest-info = ("dest") COLON ipAddress SP port [SP ssrc] ssrc = 1*alphanum ipAddress = ("ipaddr") COLON (IPv6address / IPv4address) port = 1*DIGIT CallID = ("CallID" / "i") COLON callid Johnston, et al. Expires April 14, 2005 [Page 6] Internet-Draft SIP Performance Report Event October 2004 callid = word [ "@" word ] CodecInfo = ("CodecInfo") EQUAL c-type SP sample-rate SP frame-size SP pl-conceal c-type = ("type") COLON alphanum [*alphanum] / notAvail sample-rate = ("srate") COLON 1*5DIGIT / notAvail frame-size = ("fsize") COLON 1*3DIGIT / notAvail pl-conceal = ("plc") COLON ("std" / "enh" / "unk") JitterBuffer = ("JitterBuffer") EQUAL jb-type SP jb-rate SP jb-nom SP jb-max SP jb-abs-max jb-type = ("type") COLON ("adapt" / "non-adapt" / "unknown" / "not available" ) jb-rate = ("rate") COLON 1*3DIGIT / notAvail jb-max = ("max") COLON 1*3DIGIT / notAvail jb-nom = ("nom") COLON 1*3DIGIT / notAvail jb-absmax = ("abmax") COLON 1*3DIGIT / notAvail PacketLoss = ("PktLoss") EQUAL loss-rate SP disc-rate loss-rate = ("loss") 1*2DIGIT / notAvail disc-rate = ("discard") COLON 1*2DIGIT / notAvail BurstLoss = ("BurstLoss") EQUAL density SP length GapLoss = ("GapLoss") EQUAL density SP length density = ("density") COLON 1*4DIGIT / notAvail length = ("length") COLON 1*4DIGIT / notAvail Delay = ("Delay") EQUAL roundtrip SP endsys SP jitter roundtrip = ("roundtrip") COLON 1*4DIGIT / notAvail endsys = ("endsystem") COLON 1*4DIGIT / notAvail jitter = ("jitter") COLON 1*3DIGIT / notAvail Signal = ("Signal") EQ signal SP echo SP noise signal = ("signalLevel") COLON 1*2DIGIT / notAvail echo = ("echoReturnLoss") COLON 1*3DIGIT / notAvail noise = ("noiseLevel") COLON 1*2DIGIT / notAvail Quality = ("QualityScores") EQ r-lq SP r-cg SP m-lq SP m-cq r-lq = ("r-lq") COLON 1*3DIGIT / notAvail r-cq = ("r-cg") COLON 1*3DIGIT / notAvail m-lq = ("mos-lq") COLON DIGIT ["." 1*2DIGIT] / notAvail m-cq = ("mos-cq") COLON DIGIT ["." 1*2DIGIT] / notAvail DialogID = ("DialogID") COLON callid *(SEMI did-parm) did-parm = to-tag / from-tag / generic-param callid = token to-tag = "to-tag" EQUAL token from-tag = "from-tag" EQUAL token Johnston, et al. Expires April 14, 2005 [Page 7] Internet-Draft SIP Performance Report Event October 2004 VoiceQualityAlert = ("VQAlert") COLON SP ViolationMetric SP Severity SP ViolationDirection CRLF VoiceQualityMetrics ViolationMetric = ("Type") COLON ("r-lq" / "r-cq" / "mos-lq" / "mos-cq" / "burst" / "erl" / "delay" / "loss" / "siglvl" / "noiselvl" / "jitter" / "discard" / token ) ViolationDirection = ("Dir") COLON ("local" / "remote") Severity = ("Severity") COLON ("Warning" / "Critical" / "Clear") notAvail = "not available" / "na" 7.7 Voice Quality Metric Definitions Timestamp Information This line will provide the start and stop time for the metric measurement interval. In some cases, this could be the entire call and in other cases could be only a very short duration when threshold-based or interval-based reporting are supporting. Stream Identification Information The purpose of this line and its parameters is to provide a mechanism for differentiating between multiple streams in which a given endpoint may be involved at a point in time. Source The source IP address, RTP port, and SSRC for the stream with which the performance report is associated. Destination The destination IP address, RTP port, and SSRC for the stream with which the performance report is associated. Codec Information Line The parameters in this line provide information about the vocoder used for the session. Johnston, et al. Expires April 14, 2005 [Page 8] Internet-Draft SIP Performance Report Event October 2004 Type It is recommend, where possible, to use IANA defined audio codec values. For dynamic codecs, the defintion has been left as an arbitrary string of alphanumeric values with the intention of allowing an explanation of the codec type. Sample Rate The rate, in kiloHertz (kHz), at which the source audio is sampled. Frame Size The size in bytes of the frames within an RTP packet. Packet Loss Concealment Indicator of whether packet loss concealment is used. When PLC = "std", or standard, then a simple replay or interpolation algorithm is being used to fill-in the missing packet; this approach is typically able to conceal isolated lost packets at low packet loss rates. When PLC = "enh", or enhanced, then an enhanced interpolation algorithm is being used; algorithms of this type are able to conceal high packet loss rates effectively. When PLC = "unk", then no information is available concerning the use of PLC; however, for some codecs this may be inferred. Jitter Buffer Information Line The parameters in this line provide information about the jitter buffer within the media endpoint. Jitter Buffer Type Indicator of the jitter buffer is adaptive or static. When the jitter buffer is adaptive, then its size is being dynamically adjusted to deal with varying levels of jitter. When non-adaptive, the jitter buffer size is maintained at a fixed level. Jitter Buffer Adaptation Rate This represents the implementation specific adjustment rate of a jitter buffer in adaptive mode. Jitter Buffer Nomimal Delay This is the current nominal jitter buffer delay in milliseconds, which corresponds to the nominal jitter buffer delay for packets that arrive exactly on time. This parameter MUST be provided for both fixed and Johnston, et al. Expires April 14, 2005 [Page 9] Internet-Draft SIP Performance Report Event October 2004 adaptive jitter buffer implementations. Jitter Buffer Maximum Delay This is the current maximum jitter buffer delay in milliseconds which corresponds to the earliest arriving packet that would not be discarded. In simple queue implementations this may correspond to the nominal size. In adaptive jitter buffer implementations, this value may dynamically vary up to JB abs max (see below). Jitter Buffer Absolute Maximum Delay This is the absolute maximum delay in milliseconds that the adaptive jitter buffer can reach under worst case conditions. If this value exceeds 65535 milliseconds, then this field SHALL convey the value 65535. This parameter MUST be provided for adaptive jitter buffer implementations and its value MUST be set to JB maximum for fixed jitter buffer implementations. Packet Loss Information Line The parameters in this line are general packet loss metrics. Packet Loss Ratio The percentage of packets lost within the network during the time period captured by the report. Packet Discard Rate The percentage of packets discarded due to jitter within the network during the time period captured by the report. Burst Loss Information Line The parameters in this provide burst loss metrics. Burst Density The percentage of packets lost and discarded within a burst (high loss rate) period. Burst Length (mS) The mean length of a burst. Gap Loss Information Line The parameters in this provide random loss metrics. Gap Density Johnston, et al. Expires April 14, 2005 [Page 10] Internet-Draft SIP Performance Report Event October 2004 The percentage of packets lost and discarded within a gap (low loss rate) period. Gap Length (mS) The mean length of a gap Delay Information Line The parameters in this provide delay metrics. Round Trip Delay (mS) The round trip delay between RTP interfaces End System Round Trip Delay (mS) The "round trip" delay between the RTP interface and the analog or trunk interface. Jitter Using definition from the RTCP, interarrival jitter is defined to be the mean deviation of the difference in packet spacing at the receiver compared to the sender for a pair of packets. This metric is provided in milliseconds. Signal Information Line The parameters in this provide analog impairment metrics. Signal Level The signal level in decibals during talkspurts. Noise Level (dBm) The signal level in decibals during silence periods. Residual Echo Return Loss (dB) The residual (uncancelled) echo level from the analog or trunk interface. Quality Scores Information Line This line provides various quality scores for the session. R - Listening Quality Estimated listening call quality expressed in a score from 0 - 100, per ITU-T standard G.107. R - Conversational Quality Estimated conversational call quality expressed in a Johnston, et al. Expires April 14, 2005 [Page 11] Internet-Draft SIP Performance Report Event October 2004 score from 0 - 100, per ITU-T standard G.107. MOS-LQ Estimated listening call quality expressed as a floating point number between 0.0 and 5.0. MOS-CQ Estimated conversational call quality expressed as a floating point number between 0.0 and 5.0. 7.8 Call Flows and Syntax Examples This section shows a number of call flow examples showing how the event package works. 7.8.1 End of Session Notification using PUBLISH Alice Proxy/Registrar Collector Bob | | | | | | | | | REGISTER Allow-Event:perfrpt F1 | | |------------------->| | | | 200 OK F2 | | | |<-------------------| | | | INVITE F3 | | | |------------------->| | | | | INVITE F4 | | | |---------------------------------------->| | | 200 OK F5 | | | |<----------------------------------------| | 200 OK F6 | | | |<-------------------| | | | ACK F7 | | | |------------------->| | | | | ACK F8 | | | |---------------------------------------->| | RTP | | | |<============================================================>| | RTCP | | | |<============================================================>| | | | | | BYE F9 | | | |------------------->| BYE F10 | | | |---------------------------------------->| | | 200 OK F11 | | Johnston, et al. Expires April 14, 2005 [Page 12] Internet-Draft SIP Performance Report Event October 2004 | |<----------------------------------------| | 200 OK F12 | | | |<-------------------| | | | PUBLISH Event:perfrpt F13 | | |------------------->| | | | | PUBLISH Event:perfrpt F14 | | |------------------->| | | | 200 OK F15 | | | |<-------------------| | | 200 OK F16 | | | |<-------------------| | | Figure 1. Summary report sent after session termination. In the call flow depicted in Figure 1, the following message format is sent in F13: PUBLISH sip:collector@example.com SIP/2.0 Via: SIP/2.0/UDP pc22.example.com;branch=z9hG4bK3343d7 Max-Forwards: 70 To: From: Alice ;tag=a3343df32 Call-ID: 1890463548@alice.chicago.com CSeq: 4331 PUBLISH Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Event: perfrpt Accept: application/sdp, message/sipfrag Content-Type: application/rtcp-xr Content-Length: ... LocalMetrics:VQMetrics: TimeStampInfo=start:10012004.18.23.43 stop:10012004.18.26.02 StreamInfo=srcAddr:10.10.1.123 5001 destAddr:11.1.1.150 5001 ssrc:r3k3k99weid CallID=1890463548@alice.uac.chicago.com CodecInfo=type:0 srate:8 fsize:20 plc:std JitterBuffer=type:adapt rate:2 nom:40 max:80 abmax:120 PktLoss=loss:5 discard:2 BurstLoss=density:0 length:0 GapLoss=density:2 length:0 Delay=roundtrip:200 endsystem:140 Signal=signalLevel:2 echoReturnLoss:14 noiseLevel:10 QualityScores=r-lq:90 r-cq:80 mos-lq:3.4 mos-cq:3.3 RemoteMetrics:VQMetrics: StreamInfo=srcAddr:11.1.1.150 5001 destAddr:10.10.1.123 5001 src ssrc:fjuekdn393k Call-ID=1890463548@alice.uac.chicago.com Johnston, et al. Expires April 14, 2005 [Page 13] Internet-Draft SIP Performance Report Event October 2004 CodecInfo=type:0 prate:20 plc:std JitterBuffer=type:adapt rate:2 nom:40 max:80 abmax:120 PktLoss=loss:2 discard:1 BurstLoss=density:0 length:0 GapLoss=density:2 length:0 Delay=roundtrip:100 endsystem:140 jitter:2 Signal=signalLevel:2 echoReturnLoss:0 noiseLevel:9 QualityScores=r-lq:88 r-cq:80 mos-lq:3.3 mos-cq:3.3 DialogID:38419823470834;to-tag=8472761;from-tag=9123dh311 7.8.2 End of Session Notification using NOTIFY Alice Proxy/Registrar Collector Bob | | | | | | | | | REGISTER Allow-Event:perfrpt F1 | | |------------------->| | | | 200 OK F2 | | | |<-------------------| | | | | SUBSCRIBE Event:perfrpt F3 | | |<-------------------| | | SUBSCRIBE Event:perfrpt F4 | | |<-------------------| | | | 200 OK F5 | | | |------------------->| | | | | 200 OK F6 | | | |------------------->| | | INVITE F7 | | | |------------------->| | | | | INVITE F8 | | | |---------------------------------------->| | | 200 OK F9 | | | |<----------------------------------------| | 200 OK F10 | | | |<-------------------| | | | ACK F11 | | | |------------------->| | | | | ACK F12 | | | |---------------------------------------->| | RTP | | | |<============================================================>| | RTCP | | | |<============================================================>| | | | | | BYE F13 | | | |------------------->| BYE F14 | | Johnston, et al. Expires April 14, 2005 [Page 14] Internet-Draft SIP Performance Report Event October 2004 | |---------------------------------------->| | | 200 OK F15 | | | |<----------------------------------------| | 200 OK F16 | | | |<-------------------| | | | NOTIFY Event:perfrpt F17 | | |------------------->| | | | | NOTIFY Event:perfrpt F18 | | |------------------->| | | | 200 OK F19 | | | |<-------------------| | | 200 OK F20 | | | |<-------------------| | | Figure 2. Summary report sent after session termination. In the call flow depicted in Figure 2, the following message format is sent in F17: NOTIFY sip:collector@example.com SIP/2.0 Via: SIP/2.0/UDP pc22.example.com;branch=z9hG4bK3343d7 Max-Forwards: 70 To: ;tag=43524545 From: Alice ;tag=a3343df32 Call-ID: 1890463548@alice.chicago.com CSeq: 4321 NOTIFY Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Event: perfrpt Accept: application/sdp, message/sipfrag Subscription-State: active;expires=3600 Content-Type: text/plain Content-Length: ... LocalMetrics:VQMetrics: TimeStampInfo=start:10012004.18.23.43 stop:10012004.18.26.02 StreamInfo=src:10.10.1.123 5001 r3k3k99weid dest:11.1.1.150 5001 fjuekdn393k CallID=1890463548@alice.chicago.com CodecInfo=type:0 prate:20 plc:std JitterBuffer=type:adapt rate:2 nom:40 max:80 abmax:120 PktLoss=loss:5 discard:2 BurstLoss=density:0 length:0 GapLoss=density:2 length:0 Delay=roundtrip:200 endsystem:140 Signal=signalLevel:2 echoReturnLoss:14 noiseLevel:10 QualityScores=r-lq:90 r-cq:80 mos-lq:3.4 mos-cq:3.3 Johnston, et al. Expires April 14, 2005 [Page 15] Internet-Draft SIP Performance Report Event October 2004 RemoteMetrics:VQMetrics: StreamInfo=src:11.1.1.150 5001 fjuekdn393k dest:10.10.1.123 5001 r3k3k99weid Call-ID=1890463548@alice.chicago.com CodecInfo=type:0 prate:20 plc:std JitterBuffer=type:adapt rate:2 nom:40 max:80 abmax:120 PktLoss=loss:2 discard:1 BurstLoss=density:0 length:0 GapLoss=density:2 length:0 Delay=roundtrip:100 endsystem:140 jitter:2 Signal=signalLevel:2 echoReturnLoss:0 noiseLevel:9 QualityScores=r-lq:88 r-cq:80 mos-lq:3.3 mos-cq:3.3 DialogID:38419823470834;to-tag=8472761;from-tag=9123dh311 7.8.3 Mid Session Threshold Violation using PUBLISH Alice Proxy/Registrar Collector Bob | | | | | INVITE F1 | | | |------------------->| | | | | INVITE F2 | | | |---------------------------------------->| | | 200 OK F3 | | | |<----------------------------------------| | 200 OK F4 | | | |<-------------------| | | | ACK F5 | | | |------------------->| | | | | ACK F6 | | | |---------------------------------------->| | RTP | | | |<============================================================>| | RTCP | | | |<============================================================>| | PUBLISH Event:perfrpt F7 | | |------------------->| | | | | PUBLISH Event:perfrpt F8 | | |------------------->| | | | 200 OK F9 | | | |<-------------------| | | 200 OK F10 | | | |<-------------------| | | | | | | | BYE F12 | | | |------------------->| BYE F13 | | | |---------------------------------------->| Johnston, et al. Expires April 14, 2005 [Page 16] Internet-Draft SIP Performance Report Event October 2004 | | 200 OK F14 | | | |<----------------------------------------| | 200 OK F15 | | | |<-------------------| | | | PUBLISH Event:perfrpt F16 | | |------------------->| | | | | PUBLISH Event:perfrpt F17 | | |------------------->| | | | 200 OK F18 | | | |<-------------------| | | 200 OK F19 | | | |<-------------------| | | Figure 3. Summary report sent during session with threshold report. In the call flow depicted in Figure 3, the following message format is sent in F16: PUBLISH sip:collector@chicago.example.com SIP/2.0 Via: SIP/2.0/UDP pc22.example.com;branch=z9hG4bK3343d7 Max-Forwards: 70 To: From: Alice ;tag=a3343df32 Call-ID: 1890463548@alice.chicago.com CSeq: 4321 PUBLISH Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Event: perfrpt Accept: application/sdp, message/sipfrag Content-Type: application/rtcp-xr Content-Length: ... VQAlert: Type:r-lq Severity:Warning Dir:local LocalMetrics:VQMetrics: TimeStampInfo=start:10012004.19.01.04 stop:10012004.19.01.52 Stream=src:10.10.1.123 5001 r3k3k99weid dest:11.1.1.150 5001 fjuekdn393k CallID=1890463548@alice.chicago.com Codec=type:0 srate:8 fsize:20 plc:enh JitterBuffer=type:adapt rate:2 nom:40 max:80 abmax:120 PktLoss=loss:5 discard:2 BurstLoss=density:0 length:0 GapLoss=density:2 length:0 Delay=roundtrip:200 endsystem:140 Signal=signalLevel:2 echoReturnLoss:14 noiseLevel:1 QualityScores=r-lq:82 r-cq:80 mos-lq:3.4 mos-cq:3.3 RemoteMetrics:VQMetrics: Stream=src:11.1.1.150 5001 fjuekdn393k dest:10.10.1.123 5001 r3k3k99weid CallID=1890463548@alice.chicago.com Johnston, et al. Expires April 14, 2005 [Page 17] Internet-Draft SIP Performance Report Event October 2004 Codec=type:0 srate:8 fsize:20 plc:enh JitterBuffer=type:adapt rate:2 nom:40 max:80 abmax:120 PktLoss=loss:2 discard:1 BurstLoss=density:0 length:0 GapLoss=density:2 length:0 Delay=roundtrip:100 endsystem:140 jitter:40 Signal=signalLevel:2 echoReturnLoss:14 noiseLevel:1 QualityScosres=r-lq:81 r-cq:81 mos-lq:3.1 mos-cq:3.2 DialogID:38419823470834;to-tag=8472761;from-tag=9123dh311 This alert indicates that the quality of the call in progress, as calculated using the Listening Quality transmission rating R , has degraded to an unacceptable level. For futher troubleshooting of the problem, all metrics are populated, including the remote values which were obtained via RTCP XR in the endpoints. 7.8.4 Mid Session Threshold Violation using NOTIFY Alice Proxy/Registrar Collector Bob | | | | | | | | | REGISTER Allow-Event:perfrpt F1 | | |------------------->| | | | 200 OK F2 | | | |<-------------------| | | | | SUBSCRIBE Event:perfrpt F3 | | |<-------------------| | | SUBSCRIBE Event:perfrpt F4 | | |<-------------------| | | | 200 OK F5 | | | |------------------->| | | | | 200 OK F6 | | | |------------------->| | | INVITE F7 | | | |------------------->| | | | | INVITE F8 | | | |---------------------------------------->| | | 200 OK F9 | | | |<----------------------------------------| | 200 OK F10 | | | |<-------------------| | | | ACK F11 | | | |------------------->| | | | | ACK F12 | | | |---------------------------------------->| Johnston, et al. Expires April 14, 2005 [Page 18] Internet-Draft SIP Performance Report Event October 2004 | RTP | | | |<============================================================>| | RTCP | | | |<============================================================>| | NOTIFY Event:perfrpt F17 | | |------------------->| | | | | NOTIFY Event:perfrpt F18 | | |------------------->| | | | 200 OK F19 | | | |<-------------------| | | 200 OK F20 | | | |<-------------------| | | | | | | | BYE F13 | | | |------------------->| BYE F14 | | | |---------------------------------------->| | | 200 OK F15 | | | |<----------------------------------------| | 200 OK F16 | | | |<-------------------| | | | NOTIFY Event:perfrpt F17 | | |------------------->| | | | | NOTIFY Event:perfrpt F18 | | |------------------->| | | | 200 OK F19 | | | |<-------------------| | | 200 OK F20 | | | |<-------------------| | | Figure 4. Summary report sent during session with threshold report. In the call flow depicted in Figure 2, the following message format is sent in F17: NOTIFY sip:collector@chicago.example.com SIP/2.0 Via: SIP/2.0/UDP pc22.example.com;branch=z9hG4bK3343d7 Max-Forwards: 70 To: From: Alice ;tag=a3343df32 Call-ID: 1890463548@alice.chicago.com CSeq: 4321 PUBLISH Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Event: perfrpt Accept: application/sdp, message/sipfrag Content-Type: application/rtcp-xr Content-Length: ... Johnston, et al. Expires April 14, 2005 [Page 19] Internet-Draft SIP Performance Report Event October 2004 VQAlert: Type:r-lq Severity:Warning Dir:local LocalMetrics:VQMetrics: TimeStampInfo=start:10012004.19.01.04 stop:10012004.19.01.52 StreamInfo=src:10.10.1.123 5001 r3k3k99weid dest:11.1.1.150 5001 fjuekdn393k CallID=1890463548@alice.chicago.com CodecInfo=type:0 srate:8 fsize:20 plc:enh JitterBuffer=type:adapt rate:2 nom:40 max:80 abmax:120 PktLoss=loss:5 discard:2 BurstLoss=density:0 length:0 GapLoss=density:2 length:0 Delay=roundtrip:200 endsystem:140 Signal=signalLevel:2 echoReturnLoss:14 noiseLevel:1 QualityScores=r-lq:82 r-cq:80 mos-lq:3.4 mos-cq:3.3 Remote:VQMetrics: StreamInfo=src:11.1.1.150 5001 fjuekdn393k dest:10.10.1.123 5001 r3k3k99weid CallID=1890463548@alice.chicago.com CodecInfo=type:0 srate:8 fsize:20 plc:enh JitterBuffer=type:adapt rate:2 nom:40 max:80 abmax:120 PktLoss=loss:2 discard:1 BurstLoss=density:0 length:0 GapLoss=density:2 length:0 Delay=roundtrip:100 endsystem:140 Signal=signalLevel:2 echoReturnLoss:14 noiseLevel:1 QualityScosres=r-lq:81 r-cq:90 mos-lq:3.1 mos-cq:3.2 DialogID:38419823470834;to-tag=8472761;from-tag=9123dh311 This alert indicates that the quality of the call in progress, as calculated using the Listening Quality transmission rating R , has degraded to an unacceptable level. For futher troubleshooting of the problem, all metrics are populated, including the remote values which were obtained via RTCP XR [4] in the endpoints.. 7.9 IANA Considerations This document registers a new SIP Event Package and a new MIME type. 7.9.1 SIP Event Package Registration Package name: perfrpt Type: package Contact: Alan Johnston Published Specification: This document Johnston, et al. Expires April 14, 2005 [Page 20] Internet-Draft SIP Performance Report Event October 2004 7.9.2 application/rtcp-xr MIME Registration MIME media type name: application MIME subtype name: rtcp-xr Mandatory parameters: none Optional parameters: none Encoding considerations: text Security considerations: See next section. Interoperability considerations: none. Published specification: This document. Applications which use this media type: This document type is being used in notifications of VoIP quality reports. Additional Information: Magic Number: None File Extension: None Macintosh file type code: "TEXT" Personal and email address for further information: Alan Johnston Intended usage: COMMON Author/Change controller: The IETF. 7.10 Security Considerations RTCP reports can contain sensitive information since they can provide information about the nature and duration of a session established between two endpoints. As a result, any third party wishing to obtain this information should be properly authenticated and the information transferred securely. Johnston, et al. Expires April 14, 2005 [Page 21] Internet-Draft SIP Performance Report Event October 2004 7.11 Updates since -02 - Removed discussion of alternative mechanisms - Changed from NOTIFY transport to PUBLISH transport. - Changed package name from "rtcp-xr" to "perfrpt" - Corrected call flows. - Minor updates to message body format. - Added IANA registration for perfrpt SIP Event Package and application/rtcp-xr MIME registration. - Added more discussion for motivation and reasons why SNMP is not suitable 7.12 Contributors The authors would like to thank Rajesh Kumar, Dave Oran and Tom Redman for their discussions. 8 Informative References [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [2] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M. and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002. [3] Schulzrinne, H., Casner, S., Frederick, R. and V. Jacobson, "RTP: A Transport Protocol for Real-Time Applications", STD 64, RFC 3550, July 2003. [4] Friedman, T., Caceres, R. and A. Clark, "RTP Control Protocol Extended Reports (RTCP XR)", RFC 3611, November 2003. [5] Huitema, C., "Real Time Control Protocol (RTCP) attribute in Session Description Protocol (SDP)", RFC 3605, October 2003. [6] Roach, A., "Session Initiation Protocol (SIP)-Specific Event Notification", RFC 3265, June 2002. [7] Crocker, D. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", RFC 2234, November 1997. Johnston, et al. Expires April 14, 2005 [Page 22] Internet-Draft SIP Performance Report Event October 2004 [8] Niemi, A., "An Event State Publication Extension to the Session Initiation Protocol (SIP)", draft-ietf-sip-publish-04 (work in progress), May 2004. Authors' Addresses Alan Johnston MCI 100 South 4th Street St. Louis, MO 63104 EMail: alan.johnston@mci.com Henry Sinnreich MCI 400 International Parkway Richardson, TX 75081 EMail: henry.sinnreich@mci.com Alan Clark Telchemy Incorporated 3360 Martins Farm Road, Suite 200 Suwanee, GA 30024 EMail: alan@telchemy.com Amy Pendleton Nortel Networks 2380 Performance Drive Richardson, TX 75081 EMail: aspen@nortelnetworks.com Johnston, et al. Expires April 14, 2005 [Page 23] Internet-Draft SIP Performance Report Event October 2004 Intellectual Property Statement The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. Disclaimer of Validity 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. Copyright Statement Copyright (C) The Internet Society (2004). 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. Acknowledgment Funding for the RFC Editor function is currently provided by the Internet Society. Johnston, et al. Expires April 14, 2005 [Page 24]