SIPPING Working Group                                        A. Johnston
Internet-Draft                                              H. Sinnreich
Expires: July 13, 2005                                               MCI
                                                                A. Clark
                                                   Telchemy Incorporated
                                                            A. Pendleton
                                                         Nortel Networks
                                                        January 12, 2005
                  SIP Service Quality Reporting Event
                 draft-johnston-sipping-rtcp-summary-06
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 July 13, 2005.
Copyright Notice
   Copyright (C) The Internet Society (2005).
Abstract
   This document discusses the motivation and requirements for the
   delivery of service quality reports from SIP endpoints to
   non-participants in the session.  A publication mechanism using a new
Johnston, et al.         Expires July 13, 2005                  [Page 1]
Internet-Draft    SIP Service Quality Reporting Event       January 2005
   SIP events package is proposed as a solution.  An event package
   "svcqual" and an application/svcqual 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 . . . . . . . . . . . . . . 11
       7.8.1   End of Session Notification using PUBLISH  . . . . . . 11
       7.8.2   End of Session Notification using NOTIFY . . . . . . . 13
       7.8.3   Mid Session Threshold Violation using PUBLISH  . . . . 15
       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 -04  . . . . . . . . . . . . . . . . . . . . 22
     7.12  Updates since -03  . . . . . . . . . . . . . . . . . . . . 22
     7.13  Contributors . . . . . . . . . . . . . . . . . . . . . . . 22
   8.  Informative References . . . . . . . . . . . . . . . . . . . . 22
       Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 23
       Intellectual Property and Copyright Statements . . . . . . . . 24
Johnston, et al.         Expires July 13, 2005                  [Page 2]
Internet-Draft    SIP Service Quality Reporting Event       January 2005
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/svcqual 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 July 13, 2005                  [Page 3]
Internet-Draft    SIP Service Quality Reporting Event       January 2005
   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 svcqual 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 July 13, 2005                  [Page 4]
Internet-Draft    SIP Service Quality Reporting Event       January 2005
   Publication Agent (EPA) or the Event State Compositor (ESC).
   Futhermore the information that is presented by the svcqual 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:
   "svcqual"
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/svcqual which
   is a text encoding of the RTCP-XR statistics, with the addition of a
Johnston, et al.         Expires July 13, 2005                  [Page 5]
Internet-Draft    SIP Service Quality Reporting Event       January 2005
   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
                                 SessionDesc CLRF
                                 CallID CLRF
                                 Ssrc 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]
           SessionDesc  = ("SessionDesc") EQUAL cline mline aline
           cline = "cline" COLON alphanum [*alphanum]
           mline = "mline" COLON alphanum [*alphanum]
           aline = "aline" COLON alphanum [*alphanum] [*aline]
           CallID  =  ("CallID" / "i") COLON callid
           callid  =  word [ "@" word ]
Johnston, et al.         Expires July 13, 2005                  [Page 6]
Internet-Draft    SIP Service Quality Reporting Event       January 2005
           Ssrc    = ("Ssrc") COLON alphanum [*alphanum]
           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 r-cq-ext SP m-lq SP m-cq
           r-lq     = ("r-lq") COLON 1*3DIGIT / notAvail
           r-cq     = ("r-cq") COLON 1*3DIGIT / notAvail
           r-cq-ext =  ("r-cq-ext") 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
           VoiceQualityAlert = ("VQAlert") COLON SP ViolationMetric SP
                                     Severity SP ViolationDirection
                                     CRLF VoiceQualityMetrics
           ViolationMetric = ("Type")  COLON ("r-lq" / "r-cq" / "r-cq-ext" /
Johnston, et al.         Expires July 13, 2005                  [Page 7]
Internet-Draft    SIP Service Quality Reporting Event       January 2005
                                              "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.
             Session Description
             This line should provide media session information using the
             Session Description Protocol (SDP)
             for the local endpoint.  The format defined only requires the
             endpoint to send its "c=" line, "m=" line, and all related "a="
             lines.
             SSRC
             This line provides the SSRC parameter that is transmited in the
             RTP packets which should provide unique identification of the
             media stream.
             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
Johnston, et al.         Expires July 13, 2005                  [Page 8]
Internet-Draft    SIP Service Quality Reporting Event       January 2005
             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
             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.
Johnston, et al.         Expires July 13, 2005                  [Page 9]
Internet-Draft    SIP Service Quality Reporting Event       January 2005
             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
             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
Johnston, et al.         Expires July 13, 2005                 [Page 10]
Internet-Draft    SIP Service Quality Reporting Event       January 2005
             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.   The calculation of
             this value should only involve impairments measured from
             the listening direction.
             R - Conversational Quality
             Estimated conversational call quality expressed in a
             score from 0 - 100, per ITU-T standard G.107.
             R - Conversational Quality - External
             Estimated external conversational transmission quality expressed
             as a score from 0 - 100, per ITU-T standard G.107.
             This value provides the score for the segment of the session
             that is carried over a network segment external to the RTP
             segment; for example a cellular network.
             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:svcqual F1         |                    |
          |------------------->|                    |                    |
          |      200 OK F2     |                    |                    |
          |<-------------------|                    |                    |
          |      INVITE F3     |                    |                    |
Johnston, et al.         Expires July 13, 2005                 [Page 11]
Internet-Draft    SIP Service Quality Reporting Event       January 2005
          |------------------->|                    |                    |
          |                    |      INVITE F4     |                    |
          |                    |---------------------------------------->|
          |                    |      200 OK F5     |                    |
          |                    |<----------------------------------------|
          |     200 OK F6      |                    |                    |
          |<-------------------|                    |                    |
          |        ACK F7      |                    |                    |
          |------------------->|                    |                    |
          |                    |      ACK F8        |                    |
          |                    |---------------------------------------->|
          |        RTP         |                    |                    |
          |<============================================================>|
          |        RTCP        |                    |                    |
          |<============================================================>|
          |                    |                    |                    |
          |    BYE F9          |                    |                    |
          |------------------->|      BYE F10       |                    |
          |                    |---------------------------------------->|
          |                    |     200 OK F11     |                    |
          |                    |<----------------------------------------|
          |     200 OK F12     |                    |                    |
          |<-------------------|                    |                    |
          |  PUBLISH Event:svcqual F13              |                    |
          |------------------->|                    |                    |
          |                    | PUBLISH Event:svcqual 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
Johnston, et al.         Expires July 13, 2005                 [Page 12]
Internet-Draft    SIP Service Quality Reporting Event       January 2005
                  Event: svcqual
                  Accept: application/sdp, message/sipfrag
                  Content-Type: application/svcqual
                  Content-Length: ...
                  LocalMetrics:VQMetrics:
                  TimeStampInfo=start:10012004.18.23.43 stop:10012004.18.26.02
                  SessionDesc=cline:IN IP4 10.10.1.123 mline:audio 5002 RTP/AVP 0
                    aline:rtpmap:0 PCMU/8000 aline:ptime=20
                  CallID=1890463548@alice.uac.chicago.com
                  Ssrc=fjuekdn393k
                  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 jitter:2
                  Signal=signalLevel:2 echoReturnLoss:14 noiseLevel:10
                  QualityScores=r-lq:90 r-cq:80 r-cq-ext:92
                         mos-lq:3.4 mos-cq:3.3
                  RemoteMetrics:VQMetrics:
                  TimeStampInfo=start:10012004.18.23.43 stop:10012004.18.26.02
                  SessionDesc=cline:IN IP4 11.1.1.150 mline:audio 5002 RTP/AVP 0
                    aline:rtpmap:0 PCMU/8000 aline:ptime=20
                  CallID=1890463548@alice.uac.chicago.com
                  Ssrc=r3k3k99weid
                  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 r-cq-ext:92
                         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:svcqual F1         |                    |
          |------------------->|                    |                    |
          |      200 OK F2     |                    |                    |
          |<-------------------|                    |                    |
          |                    |  SUBSCRIBE Event:svcqual F3             |
          |                    |<-------------------|                    |
Johnston, et al.         Expires July 13, 2005                 [Page 13]
Internet-Draft    SIP Service Quality Reporting Event       January 2005
          | SUBSCRIBE Event:svcqual 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       |                    |
          |                    |---------------------------------------->|
          |                    |     200 OK F15     |                    |
          |                    |<----------------------------------------|
          |     200 OK F16     |                    |                    |
          |<-------------------|                    |                    |
          |  NOTIFY Event:svcqual F17               |                    |
          |------------------->|                    |                    |
          |                    | NOTIFY Event:svcqual 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
Johnston, et al.         Expires July 13, 2005                 [Page 14]
Internet-Draft    SIP Service Quality Reporting Event       January 2005
           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: svcqual
           Accept: application/sdp, message/sipfrag
           Subscription-State: active;expires=3600
           Content-Type: application/svcqual
           Content-Length: ...
           LocalMetrics:VQMetrics:
           TimeStampInfo=start:10012004.18.23.43 stop:10012004.18.26.02
           SessionDesc=cline:IN IP4 11.1.1.150 mline:audio 5002 RTP/AVP 0
                 aline:rtpmap:0 PCMU/8000 aline:ptime=20
           CallID=1890463548@alice.chicago.com
           Ssrc=fjuekdn393k
           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 jitter:2
           Signal=signalLevel:2 echoReturnLoss:14 noiseLevel:10
           QualityScores=r-lq:90 r-cq:80 r-cq-ext:92
                mos-lq:3.4 mos-cq:3.3
           RemoteMetrics:VQMetrics:
           SessionDesc=cline:IN IP4 11.1.1.150 mline:audio 5002 RTP/AVP 0
                aline:rtpmap:0 PCMU/8000 aline:ptime=20
           CallID=1890463548@alice.uac.chicago.com
           Ssrc=r3k3k99weidtd
           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 r-cq-ext:92
                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
Johnston, et al.         Expires July 13, 2005                 [Page 15]
Internet-Draft    SIP Service Quality Reporting Event       January 2005
       |                    |                    |                    |
       |      INVITE F1     |                    |                    |
       |------------------->|                    |                    |
       |                    |      INVITE F2     |                    |
       |                    |---------------------------------------->|
       |                    |      200 OK F3     |                    |
       |                    |<----------------------------------------|
       |     200 OK F4      |                    |                    |
       |<-------------------|                    |                    |
       |        ACK F5      |                    |                    |
       |------------------->|                    |                    |
       |                    |      ACK F6        |                    |
       |                    |---------------------------------------->|
       |        RTP         |                    |                    |
       |<============================================================>|
       |        RTCP        |                    |                    |
       |<============================================================>|
       |  PUBLISH Event:svcqual F7               |                    |
       |------------------->|                    |                    |
       |                    | PUBLISH Event:svcqual F8                |
       |                    |------------------->|                    |
       |                    |     200 OK F9      |                    |
       |                    |<-------------------|                    |
       |     200 OK F10     |                    |                    |
       |<-------------------|                    |                    |
       |                    |                    |                    |
       |      BYE F12       |                    |                    |
       |------------------->|      BYE F13       |                    |
       |                    |---------------------------------------->|
       |                    |     200 OK F14     |                    |
       |                    |<----------------------------------------|
       |     200 OK F15     |                    |                    |
       |<-------------------|                    |                    |
       |  PUBLISH Event:svcqual F16              |                    |
       |------------------->|                    |                    |
       |                    | PUBLISH Event:svcqual 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
Johnston, et al.         Expires July 13, 2005                 [Page 16]
Internet-Draft    SIP Service Quality Reporting Event       January 2005
          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: svcqual
          Accept: application/sdp, message/sipfrag
          Content-Type: application/svcqual
          Content-Length: ...
          VQAlert: Type:r-lq Severity:Warning Dir:local
          LocalMetrics:VQMetrics:
          TimeStampInfo=start:10012004.19.01.04 stop:10012004.19.01.52
          SessionDesc=cline:IN IP4 11.1.1.150 mline:audio 5002 RTP/AVP 0
               aline:rtpmap:0 PCMU/8000 aline:ptime=20
          CallID=1890463548@alice.chicago.com
          Ssrc=fjuekdn3
          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 jitter:2
          Signal=signalLevel:2 echoReturnLoss:14 noiseLevel:1
          QualityScores=r-lq:82 r-cq:80 mos-lq:3.4 mos-cq:3.3
          RemoteMetrics:VQMetrics:
          SessionDesc=cline:IN IP4 11.1.1.150 mline:audio 5002 RTP/AVP 0
               aline:rtpmap:0 PCMU/8000 aline:ptime=20
          CallID=1890463548@alice.uac.chicago.com
          Ssrc=r3k3k99weidtd
          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: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.
Johnston, et al.         Expires July 13, 2005                 [Page 17]
Internet-Draft    SIP Service Quality Reporting Event       January 2005
7.8.4  Mid Session Threshold Violation using NOTIFY
        Alice            Proxy/Registrar        Collector               Bob
          |                    |                    |                    |
          |                    |                    |                    |
          | REGISTER Allow-Event:svcqual F1         |                    |
          |------------------->|                    |                    |
          |      200 OK F2     |                    |                    |
          |<-------------------|                    |                    |
          |                    |  SUBSCRIBE Event:svcqual F3             |
          |                    |<-------------------|                    |
          | SUBSCRIBE Event:svcqual F4              |                    |
          |<-------------------|                    |                    |
          |     200 OK F5      |                    |                    |
          |------------------->|                    |                    |
          |                    |   200 OK F6        |                    |
          |                    |------------------->|                    |
          |      INVITE F7     |                    |                    |
          |------------------->|                    |                    |
          |                    |      INVITE F8     |                    |
          |                    |---------------------------------------->|
          |                    |      200 OK F9     |                    |
          |                    |<----------------------------------------|
          |     200 OK F10     |                    |                    |
          |<-------------------|                    |                    |
          |        ACK F11     |                    |                    |
          |------------------->|                    |                    |
          |                    |      ACK F12       |                    |
          |                    |---------------------------------------->|
          |        RTP         |                    |                    |
          |<============================================================>|
          |        RTCP        |                    |                    |
          |<============================================================>|
          |  NOTIFY Event:svcqual F17               |                    |
          |------------------->|                    |                    |
          |                    | NOTIFY Event:svcqual F18                |
          |                    |------------------->|                    |
          |                    |     200 OK F19     |                    |
          |                    |<-------------------|                    |
          |     200 OK F20     |                    |                    |
          |<-------------------|                    |                    |
          |                    |                    |                    |
          |    BYE F13         |                    |                    |
          |------------------->|      BYE F14       |                    |
          |                    |---------------------------------------->|
          |                    |     200 OK F15     |                    |
          |                    |<----------------------------------------|
Johnston, et al.         Expires July 13, 2005                 [Page 18]
Internet-Draft    SIP Service Quality Reporting Event       January 2005
          |     200 OK F16     |                    |                    |
          |<-------------------|                    |                    |
          |  NOTIFY Event:svcqual F17               |                    |
          |------------------->|                    |                    |
          |                    | NOTIFY Event:svcqual 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: svcqual
          Accept: application/sdp, message/sipfrag
          Content-Type: application/svcqual
          Content-Length: ...
          VQAlert: Type:r-lq Severity:Warning Dir:local
          LocalMetrics:VQMetrics:
          TimeStampInfo=start:10012004.19.01.04 stop:10012004.19.01.52
          SessionDesc=cline:IN IP4 11.1.1.150 mline:audio 5002 RTP/AVP 0
               aline:rtpmap:0 PCMU/8000 aline:ptime=20
          CallID=1890463548@alice.chicago.com
          Ssrc=fjuekdn3
          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:
          SessionDesc=cline:IN IP4 11.1.1.150 mline:audio 5002 RTP/AVP 0
               aline:rtpmap:0 PCMU/8000 aline:ptime=20
          CallID=1890463548@alice.uac.chicago.com
Johnston, et al.         Expires July 13, 2005                 [Page 19]
Internet-Draft    SIP Service Quality Reporting Event       January 2005
          Ssrc=r3k3k99weidtd
          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: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: svcqual
      Type: package
      Contact: Alan Johnston 
      Published Specification: This document
Johnston, et al.         Expires July 13, 2005                 [Page 20]
Internet-Draft    SIP Service Quality Reporting Event       January 2005
7.9.2  application/rtcp-xr MIME Registration
      MIME media type name: application
      MIME subtype name: svcqual
      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 July 13, 2005                 [Page 21]
Internet-Draft    SIP Service Quality Reporting Event       January 2005
7.11  Updates since -04
   - Changed package name from "perfrpt" to "svcqual"
7.12  Updates since -03
   - 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.13  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.
Johnston, et al.         Expires July 13, 2005                 [Page 22]
Internet-Draft    SIP Service Quality Reporting Event       January 2005
   [7]  Crocker, D. and P. Overell, "Augmented BNF for Syntax
        Specifications: ABNF", RFC 2234, November 1997.
   [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 July 13, 2005                 [Page 23]
Internet-Draft    SIP Service Quality Reporting Event       January 2005
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 (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.
Acknowledgment
   Funding for the RFC Editor function is currently provided by the
   Internet Society.
Johnston, et al.         Expires July 13, 2005                 [Page 24]