Skip to main content

Session Description Protocol (SDP) Extension For Setting Up Audio and Video Media Streams Over Circuit-Switched Bearers In The Public Switched Telephone Network (PSTN)
draft-ietf-mmusic-sdp-cs-15

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft that was ultimately published as RFC 7195.
Authors Miguel Angel García , Simo Veikkolainen
Last updated 2012-12-18
Replaces draft-garcia-mmusic-sdp-cs
RFC stream Internet Engineering Task Force (IETF)
Formats
Reviews
Additional resources Mailing list discussion
Stream WG state WG Consensus: Waiting for Write-Up
Other - see Comment Log
Document shepherd Flemming Andreasen
IESG IESG state Became RFC 7195 (Proposed Standard)
Consensus boilerplate Unknown
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-ietf-mmusic-sdp-cs-15
MMUSIC WG                                               M. Garcia-Martin
Internet-Draft                                                  Ericsson
Intended status: Standards Track                         S. Veikkolainen
Expires: June 20, 2013                                             Nokia
                                                       December 17, 2012

 Session Description Protocol (SDP) Extension For Setting Up Audio and
Video Media Streams Over Circuit-Switched Bearers In The Public Switched
                        Telephone Network (PSTN)
                      draft-ietf-mmusic-sdp-cs-15

Abstract

   This memo describes use cases, requirements, and protocol extensions
   for using the Session Description Protocol (SDP) Offer/Answer model
   for establishing audio and video media streams over circuit-switched
   bearers in the Public Switched Telephone Network (PSTN).

Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   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."

   This Internet-Draft will expire on June 20, 2013.

Copyright Notice

   Copyright (c) 2012 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of

Garcia-Martin & Veikkolainen  Expires June 20, 2013             [Page 1]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Garcia-Martin & Veikkolainen  Expires June 20, 2013             [Page 2]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  5
   2.  Conventions Used in This Document  . . . . . . . . . . . . . .  6
   3.  Requirements . . . . . . . . . . . . . . . . . . . . . . . . .  6
   4.  Overview of Operation  . . . . . . . . . . . . . . . . . . . .  7
     4.1.  Example Call Flow  . . . . . . . . . . . . . . . . . . . .  7
   5.  Protocol Description . . . . . . . . . . . . . . . . . . . . .  9
     5.1.  Level of Compliance  . . . . . . . . . . . . . . . . . . .  9
     5.2.  Extensions to SDP  . . . . . . . . . . . . . . . . . . . .  9
       5.2.1.  Connection Data  . . . . . . . . . . . . . . . . . . .  9
       5.2.2.  Media Descriptions . . . . . . . . . . . . . . . . . . 11
       5.2.3.  Correlating the PSTN Circuit-Switched Bearer with
               SDP  . . . . . . . . . . . . . . . . . . . . . . . . . 12
         5.2.3.1.  The "cs-correlation" attribute . . . . . . . . . . 13
         5.2.3.2.  Caller-ID Correlation Mechanism  . . . . . . . . . 13
         5.2.3.3.  User-User Information Element Correlation
                   Mechanism  . . . . . . . . . . . . . . . . . . . . 14
         5.2.3.4.  DTMF Correlation Mechanism . . . . . . . . . . . . 16
         5.2.3.5.  Extensions to correlation mechanisms . . . . . . . 17
     5.3.  Negotiating the correlation mechanisms . . . . . . . . . . 17
       5.3.1.  Determining the Direction of the Circuit-Switched
               Bearer Setup . . . . . . . . . . . . . . . . . . . . . 18
       5.3.2.  Populating the cs-correlation attribute  . . . . . . . 18
       5.3.3.  Considerations on successful correlation . . . . . . . 19
     5.4.  Considerations for Usage of Existing SDP . . . . . . . . . 20
       5.4.1.  Originator of the Session  . . . . . . . . . . . . . . 20
       5.4.2.  Contact information  . . . . . . . . . . . . . . . . . 20
     5.5.  Considerations for Usage of Third Party Call Control
           (3PCC) . . . . . . . . . . . . . . . . . . . . . . . . . . 20
     5.6.  Offer/Answer mode extensions . . . . . . . . . . . . . . . 21
       5.6.1.  Generating the Initial Offer . . . . . . . . . . . . . 21
       5.6.2.  Generating the Answer  . . . . . . . . . . . . . . . . 23
       5.6.3.  Offerer processing the Answer  . . . . . . . . . . . . 26
       5.6.4.  Modifying the session  . . . . . . . . . . . . . . . . 27
     5.7.  Formal Syntax  . . . . . . . . . . . . . . . . . . . . . . 27
   6.  Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
     6.1.  Single PSTN audio stream . . . . . . . . . . . . . . . . . 29
     6.2.  Advanced SDP example: Circuit-Switched Audio and Video
           Streams  . . . . . . . . . . . . . . . . . . . . . . . . . 31
   7.  Security Considerations  . . . . . . . . . . . . . . . . . . . 32
   8.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 33
     8.1.  Registration of new cs-correlation SDP attribute . . . . . 33
     8.2.  Registration of a new "nettype" value  . . . . . . . . . . 34
     8.3.  Registration of new "addrtype" values  . . . . . . . . . . 34
     8.4.  Registration of a new "proto" value  . . . . . . . . . . . 34
   9.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 35
   10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 35

Garcia-Martin & Veikkolainen  Expires June 20, 2013             [Page 3]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

     10.1. Normative References . . . . . . . . . . . . . . . . . . . 35
     10.2. Informative References . . . . . . . . . . . . . . . . . . 36
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 37

Garcia-Martin & Veikkolainen  Expires June 20, 2013             [Page 4]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

1.  Introduction

   The Session Description Protocol (SDP) [RFC4566] is intended for
   describing multimedia sessions for the purposes of session
   announcement, session invitation, and other forms of multimedia
   session initiation.  SDP is most commonly used for describing media
   streams that are transported over the Real-Time Transport Protocol
   (RTP) [RFC3550], using the profiles for audio and video media defined
   in RTP Profile for Audio and Video Conferences with Minimal Control
   [RFC3551].

   However, SDP can be used to describe other transport protocols than
   RTP.  Previous work includes SDP conventions for describing ATM
   bearer connections [RFC3108] and the Message Session Relay Protocol
   [RFC4975].

   SDP is commonly carried in Session Initiation Protocol (SIP)
   [RFC3261] messages in order to agree on a common media description
   among the endpoints.  An Offer/Answer Model with Session Description
   Protocol (SDP) [RFC3264] defines a framework by which two endpoints
   can exchange SDP media descriptions and come to an agreement as to
   which media streams should be used, along with the media related
   parameters.

   In some scenarios it might be desirable to establish the media stream
   over a circuit-switched bearer connection even if the signaling for
   the session is carried over an IP bearer.  An example of such a
   scenario is illustrated with two mobile devices capable of both
   circuit-switched and packet-switched communication over a low-
   bandwidth radio bearer.  The radio bearer may not be suitable for
   carrying real-time audio or video media, and using a circuit-switched
   bearer would offer a better perceived quality of service.  So,
   according to this scenario, SDP and its higher layer session control
   protocol (e.g., the Session Initiation Protocol (SIP) [RFC3261]) are
   used over regular IP connectivity, while the audio or video is
   received through the classical circuit-switched bearer.

   Setting up a signaling relationship in the IP domain instead of just
   setting up a circuit-switched call offers also the possibility of
   negotiating in the same session other IP based media that is not
   sensitive to jitter and delay, for example, text messaging or
   presence information.

   At a later point in time the mobile device might move to an area
   where a high-bandwidth packet-switched bearer, for example a Wireless
   Local Area Network (WLAN) connection, is available.  At this point
   the mobile device may perform a handover and move the audio or video
   media streams over to the high-speed bearer.  This implies a new

Garcia-Martin & Veikkolainen  Expires June 20, 2013             [Page 5]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

   exchange of SDP Offer/Answer that leads to a re-negotiation of the
   media streams.

   Other use cases exist.  For example, an endpoint might have at its
   disposal circuit-switched and packet-switched connectivity, but the
   same audio or video codecs are not feasible for both access networks.
   For example, the circuit-switched audio or video stream supports
   narrow-bandwidth codecs, while the packet-switched access allows any
   other audio or video codec implemented in the endpoint.  In this
   case, it might be beneficial for the endpoint to describe different
   codecs for each access type and get an agreement on the bearer
   together with the remote endpoint.

   There are additional use cases related to third party call control
   where the session setup time is improved when the circuit-switched
   bearer in the PSTN is described together with one or more codecs.

   The rest of the document is structured as follows: Section 2 provides
   the document conventions, Section 3 introduces the requirements,
   Section 4 presents an overview of the proposed solutions, and
   Section 5 contains the protocol description.  Section 6 provides an
   example of descriptions of circuit-switched audio or video streams in
   SDP.  Section 7 and Section 8 contain the Security and IANA
   considerations, respectively.

2.  Conventions Used in This Document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14, RFC 2119 [RFC2119] and indicate requirement levels for compliant
   implementations.

3.  Requirements

   This section presents the general requirements that are specific for
   the audio or video media streams over circuit-switched bearers.

   REQ-1:  A mechanism for endpoints to negotiate and agree on an audio
           or video media stream established over a circuit-switched
           bearer MUST be available.

   REQ-2:  The mechanism MUST allow the endpoints to combine circuit-
           switched audio or video media streams with other
           complementary media streams, for example, text messaging.

Garcia-Martin & Veikkolainen  Expires June 20, 2013             [Page 6]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

   REQ-3:  The mechanism MUST allow the endpoint to negotiate the
           direction of the circuit-switched bearer, i.e., which
           endpoint is active when initiating the circuit-switched
           bearer.

   REQ-4:  The mechanism MUST be independent of the type of the circuit-
           switched access (e.g., Integrated Services Digital Network
           (ISDN), Global System for Mobile Communication (GSM), etc.)

   REQ-5:  There MUST be a mechanism that helps an endpoint to correlate
           an incoming circuit-switched bearer with the one negotiated
           in SDP, as opposed to another incoming call that is not
           related to that.

   REQ-6:  It MUST be possible for endpoints to advertise different
           lists of audio or video codecs in the circuit-switched audio
           or video stream from those used in a packet-switched audio or
           video stream.

   REQ-7:  It MUST be possible for endpoints to not advertise the list
           of available codecs for circuit-switched audio or video
           streams.

4.  Overview of Operation

   The mechanism defined in this memo extends SDP and allows describing
   an audio or video media stream established over a circuit-switched
   bearer.  A new network type ("PSTN") and a new protocol type ("PSTN")
   are defined for the "c=" and "m=" lines to be able to describe a
   media stream over a circuit-switched bearer.  These SDP extensions
   are described in Section 5.2.  Since circuit-switched bearers are
   connection-oriented media streams, the mechanism re-uses the
   connection-oriented extensions defined in RFC 4145 [RFC4145] to
   negotiate the active and passive sides of a connection setup.  This
   is further described in Section 5.3.1.

4.1.  Example Call Flow

   Consider the example presented in Figure 1.  In this example, Alice
   is located in an environment where she has access to both IP and
   circuit-switched bearers for communicating with other endpoints.
   Alice decides that the circuit-switched bearer offers a better
   perceived quality of service for voice, and issues an SDP Offer
   containing the description of an audio media stream over circuit-
   switched bearer.

Garcia-Martin & Veikkolainen  Expires June 20, 2013             [Page 7]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

                  Alice                                 Bob
                    | (1) SDP Offer (PSTN audio)         |
                    |----------------------------------->|
                    |                                    |
                    | (2) SDP Answer (PSTN audio)        |
                    |<-----------------------------------|
                    |                                    |
                    |   PSTN call setup                  |
                    |<-----------------------------------|
                    |                                    |
                    |                                    |
                    |<===== media over PSTN bearer =====>|
                    |                                    |

                          Figure 1: Example Flow

   Bob receives the SDP offer and determines that he is located in an
   environment where the IP based bearer is not suitable for real-time
   audio media.  However he also has PSTN circuit-switched bearer
   available for audio.  Bob generates an SDP answer containing a
   description of the audio media stream over a circuit-switched bearer.

   During the offer-answer exchange Alice and Bob also agree the
   direction in which the circuit-switched bearer should be established.
   In this example, Bob becomes the active party, in other words, he
   establishes the circuit-switched call to the other endpoint.  The
   Offer/Answer exchange contains identifiers or references that can be
   used on the circuit-switched network for addressing the other
   endpoint, as well as information that is used to determine that the
   incoming circuit-switched bearer establishment is related to the
   ongoing session between Alice and Bob.

   Bob establishes a circuit-switched bearer towards Alice using
   whatever mechanisms are defined for the network type in question.
   When receiving the incoming circuit-switched connection attempt,
   Alice is able to determine that the attempt is related to the session
   she is just establishing with Bob.

   Alice accepts the circuit-switched connection; the circuit-switched
   bearer setup is completed.  Bob and Alice can now use the circuit-
   switched connection for two-way audio media.

   If, for some reason, Bob would like to reject the offered stream, he
   would set the port number of the specific stream to zero, as
   specified in RFC3264 [RFC3264].  Also, if Bob does not understand
   some of the SDP attributes specified in this document, he would
   ignore them, as specified in RFC4566 [RFC4566].

Garcia-Martin & Veikkolainen  Expires June 20, 2013             [Page 8]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

5.  Protocol Description

5.1.  Level of Compliance

   Implementations according to this specification MUST implement the
   SDP extensions described in Section 5.2, and MUST implement the
   considerations discussed in Section 5.3, Section 5.4 and Section 5.6.

5.2.  Extensions to SDP

   This section provides the syntax and semantics of the extensions
   required for providing a description of audio or video media streams
   over circuit-switched bearers in SDP.

5.2.1.  Connection Data

   According to SDP [RFC4566], the connection data line in SDP has the
   following syntax:

      c=<nettype> <addrtype> <connection-address>

   where <nettype> indicates the network type, <addrtype> indicates the
   address type, and the <connection-address> is the connection address,
   which is dependent on the address type.

   At the moment, the only network type defined is "IN", which indicates
   Internet network type.  The address types "IP4" and "IP6" indicate
   the type of IP addresses.

   This memo defines a new network type for describing a circuit-
   switched bearer network type in the PSTN.  The mnemonic "PSTN" is
   used for this network type.

   For the address type, we initially consider the possibility of
   describing E.164 telephone numbers.  We define a new "E164" address
   type to be used within the context of a "PSTN" network type.  The
   "E164" address type indicates that the connection address contains an
   E.164 number represented according to the ITU-T E.164 [ITU.E164.1991]
   recommendation.

   It is a common convention that an international E.164 number contains
   a leading '+' sign.  For consistency's sake, we also require the
   E.164 telephone is prepended with a '+', even if that is not
   necessary for routing of the call in the PSTN network.

   There are cases, though, when the endpoint is merely aware of a
   circuit-switched bearer, without having further information about the
   address type or the E.164 number allocated to it.  In these cases a

Garcia-Martin & Veikkolainen  Expires June 20, 2013             [Page 9]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

   dash ("-") is used to indicate an unknown address type or connection
   address.  This makes the connection data line be according to the SDP
   syntax.

   Please note that these "E164" and "-" address types defined in this
   memo are exclusively defined to be used in conjunction with the
   "PSTN" network type in accordance with [RFC4566].  Usage of "E164" or
   "-" address types in conjunction with other network types may be
   defined elsewhere.

   This memo exclusively uses the international representation of E.164
   numbers, i.e., those including a country code and, as described above
   prepended with a '+' sign.  Implementations conforming to this
   specification and using the "E164" address type together with the
   "PSTN" network type MUST use the 'global-number-digits' construction
   specified in RFC 3966 [RFC3966] for representing international E.164
   numbers.  This representation requires the presence of the '+' sign,
   and additionally allows for the presence of one or more 'visual-
   separator' constructions for easier human readability (see
   Section 5.7).

      Note that <addrtype> and/or <connection-address> MUST NOT be
      omitted when unknown since this would violate basic syntax of SDP
      [RFC4566].  In such cases, they MUST be set to a "-".

   The following are examples of the extension to the connection data
   line:

      c=PSTN E164 +441134960123

      c=PSTN - -

   When the <addrtype> is PSTN, the connection address is defined as
   follows:

   o  an international E.164 number

   When the <addrtype> is "-", the connection address is defined as
   follows:

   o  the value "-", signifying that the address is unknown

   o  any syntactically valid value, which is to be ignored

Garcia-Martin & Veikkolainen  Expires June 20, 2013            [Page 10]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

5.2.2.  Media Descriptions

   According to SDP [RFC4566], the media description line in SDP has the
   following syntax:

      m=<media> <port> <proto> <fmt> ...

   The <media> subfield carries the media type.  For establishing an
   audio bearer, the existing "audio" media type is used.  For
   establishing a video bearer, the existing "video" media type is used.

   The <port> subfield is the transport port to which the media stream
   is sent.  Circuit-switched access lacks the concept of a port number,
   and therefore the <port> subfield does not carry any meaningful
   value.  In order to be compliant with SDP syntax, implementations
   SHOULD set the <port> subfield to the discard port value "9" and MUST
   ignore it on reception.

   According to RFC 3264 [RFC3264], a port number of zero in the offer
   of a unicast stream indicates that the stream is offered but must not
   be used.  If a port number of zero is present in the answer of a
   unicast stream, it indicates that the stream is rejected.  These
   rules are still valid when the media line in SDP represents a
   circuit-switched bearer.

   The <proto> subfield is the transport protocol.  The circuit-switched
   bearer uses whatever transport protocol it has available.  This
   subfield SHOULD be set to the mnemonic "PSTN" to be syntactically
   correct with SDP [RFC4566] and to indicate the usage of circuit-
   switched protocols in the PSTN.

   The <fmt> subfield is the media format description.  In the classical
   usage of SDP to describe RTP-based media streams, when the <proto>
   subfield is set to "RTP/AVP" or "RTP/SAVP", the <fmt> subfield
   contains the payload types as defined in the RTP audio profile
   [RFC3551].

   When "RTP/AVP" is used in the <proto> field, the <fmt> subfield
   contains the RTP payload type numbers.  We use the <fmt> subfield to
   indicate the list of available codecs over the circuit-switched
   bearer, by re-using the conventions and payload type numbers defined
   for RTP/AVP.  The RTP audio and video media types, which, when
   applied to PSTN circuit-switched bearers, represent merely an audio
   or video codec.  The endpoint SHOULD only use those payload type
   whose corresponding codecs is available for PSTN media streams.

   In some cases, the endpoint is not able to determine the list of
   available codecs for circuit-switched media streams.  In this case,

Garcia-Martin & Veikkolainen  Expires June 20, 2013            [Page 11]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

   in order to be syntactically compliant with SDP [RFC4566], the
   endpoint MUST include a single dash ("-") in the <fmt> subfield.

   As per RFC 4566 [RFC4566], the media format descriptions are listed
   in priority order.

   Examples of media descriptions for circuit-switched audio streams
   are:

      m=audio 9 PSTN 3 0 8

      m=audio 9 PSTN -

   Similarly, an example of a media description for circuit-switched
   video stream is:

      m=video 9 PSTN 34

      m=video 9 PSTN -

5.2.3.  Correlating the PSTN Circuit-Switched Bearer with SDP

   The endpoints should be able to correlate the circuit-switched bearer
   with the session negotiated with SDP in order to avoid ringing for an
   incoming circuit-switched bearer that is related to the session
   controlled with SDP (and SIP).

   Several alternatives exist for performing this correlation.  This
   memo provides three mutually non-exclusive correlation mechanisms.
   Other correlation mechanisms may exist, and their usage will be
   specified when need arises.  All mechanisms share the same principle:
   some unique information is sent in the SDP and in the circuit-
   switched signaling protocol.  If these pieces of information match,
   then the circuit-switched bearer is part of the session described in
   the SDP exchange.  Otherwise, there is no guarantee that the circuit-
   switched bearer is related to such session.

   The first mechanism is based on the exchange of PSTN caller-ID
   between the endpoints.  The caller-ID is also available as the
   Calling Party ID in the circuit-switched signaling.

   The second mechanism is based on the inclusion in SDP of a value that
   is also sent in the User-to-User Information Element that is part of
   the bearer setup signaling in the PSTN.

   The third mechanism is based on sending in SDP a string that
   represents Dual Tone MultiFrequency (DTMF) digits that will be later
   sent right after the circuit-switched bearer is established.

Garcia-Martin & Veikkolainen  Expires June 20, 2013            [Page 12]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

   Implementations MAY use any of these mechanisms and MAY use two or
   more mechanisms simultaneously.

5.2.3.1.  The "cs-correlation" attribute

   In order to provide support for the correlation mechanisms, we define
   a new media-level SDP attribute called "cs-correlation".  This "cs-
   correlation" attribute can include any of the "callerid", "uuie", or
   "dtmf" subfields, which specify additional information required by
   the Caller-ID, User to User Information, or DTMF correlation
   mechanisms, respectively.  The list of correlation mechanisms may be
   extended by other specifications, see Section 5.2.3.5 for more
   details.  There MUST be at most one "cs-correlation" attribute per
   media description.

   The following sections provide more detailed information of these
   subfields.  The "cs-correlation" attribute has the following format:

   a=cs-correlation: <correlation-mechanisms>
   correlation-mechanisms  = corr-mech *(SP corr-mech)
   corr-mech               = caller-id-mech / uuie-mech /
                             dfmt-mech / ext-mech
   caller-id-mech          = "callerid" [":" caller-id-value]
   uuie-mech               = "uuie" [":" uuie-value]
   dtmf-mech               = "dtmf" [":" dtmf-value]
   ext-mech                = <ext-mech-name>[":"<ext-mech-value>]

   The values "callerid", "uuie" and "dtmf" refer to the correlation
   mechanisms defined in Section 5.2.3.2, Section 5.2.3.3, and
   Section 5.2.3.4, respectively.  The formal Augmented Backus-Naur
   Format (ABNF) syntax of the "cs-correlation" attribute is presented
   in Section 5.7.

5.2.3.2.  Caller-ID Correlation Mechanism

   The Caller-ID correlation mechanisms consists of an exchange of the
   calling party number as an international E.164 number in SDP,
   followed by the availability of the Calling Party Number information
   element in the call setup signaling of the circuit switched
   connection.  If both pieces of information match, the circuit-
   switched bearer is correlated to the session described in SDP.

   Example of inclusion of an international E.164 number in the "cs-
   correlation" attribute is:

Garcia-Martin & Veikkolainen  Expires June 20, 2013            [Page 13]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

      a=cs-correlation:callerid:+441134960123

   The presence of the "callerid" subfield indicates that the endpoint
   supports use of the calling party number as a means of correlating a
   PSTN call with the session being negotiated.  The "callerid" subfield
   MAY be accompanied by the international E.164 number of the party
   inserting the parameter.

      Note that there are no guarantees that this correlation mechanism
      works or is even available, due a number of problems:

   o  The endpoint might not be aware of its own E.164 number, in which
      case it cannot populate the SDP appropriately.

   o  The Calling Party Number information element in the circuit-
      switched signaling might not be available, e.g., due to policy
      restrictions of the network operator or caller restriction due to
      privacy.

   o  The Calling Party Number information element in the circuit-
      switched signaling might be available, but the digit
      representation of the E.164 number might differ from the one
      expressed in the SDP.  To mitigate this problem implementations
      should consider only some of the rightmost digits from the E.164
      number for correlation.  For example, the numbers +44-113-469-0123
      and 0113-469-0123 could be considered as the same number.  This is
      also the behavior of some cellular phones, which correlate the
      incoming calling party with a number stored in the phone book, for
      the purpose of displaying the caller's name.

5.2.3.3.  User-User Information Element Correlation Mechanism

   A second correlation mechanism is based on including in SDP a string
   that represents the User-User Information Element that is part of the
   call setup signaling of the circuit-switched bearer.  The User-User
   Information Element is specified in ITU-T Q.931 [ITU.Q931.1998] and
   3GPP TS 24.008 [TS.24.008], among others.  The User-User Information
   Element has a maximum size of 35 or 131 octets, depending on the
   actual message of the PSTN protocol where it is included and the
   network settings.

   The mechanism works as follows: An endpoint creates a User-User
   Information Element, according to the requirements of the call setup
   signaling protocol.  The same value is included in the SDP offer or
   SDP answer, in the "uuie" subfield of the "cs-correlation" attribute.
   When the SDP Offer/Answer exchange is completed, each endpoint has
   become aware of the value that will be used in the User-User
   Information Element of the call setup message of the PSTN protocol.

Garcia-Martin & Veikkolainen  Expires June 20, 2013            [Page 14]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

   The endpoint that initiates the call setup attempt includes this
   value in the User-User Information Element.  The recipient of the
   call setup attempt can extract the User-User Information Element and
   correlate it with the value previously received in the SDP.  If both
   values match, then the call setup attempt corresponds to that
   indicated in the SDP.

   According to ITU-T Q.931 [ITU.Q931.1998], the User-User Information
   Element (UUIE) identifier is composed of a first octet identifying
   this as a User-User Information Element, a second octet containing
   the Length of the user-user contents, a third octet containing a
   Protocol Discriminator, and a value of up to 32 or 128 octets
   (depending on network settings) containing the actual User
   Information (see Figure 4-36 in ITU-T Q.931).  The first two octets
   of the UUIE MUST NOT be used for correlation, only the octets
   carrying the Protocol Discriminator and the User Information value
   are input to the creation of the value of the "uuie" subfield in the
   "cs-correlation" attribute.  Therefore, the value of the "uuie"
   subfield in the "cs-correlation" attribute MUST start with the
   Protocol Discriminator octet, followed by the User Information
   octets.  The value of the Protocol Discriminator octet is not
   specified in this document; it is expected that organizations using
   this technology will allocate a suitable value for the Protocol
   Discriminator.

   Once the binary value of the "uuie" subfield in the "cs-correlation"
   attribute is created, it MUST be encoded in hexadecimal before it is
   inserted in SDP.  Each octet of binary data to be represented in the
   hexadecimal encoding MUST be mapped to two hexadecimal digits
   (represented by ASCII characters 0-9 and A-F), each representing four
   bits within the octet.  The four bits appearing first in the binary
   data MUST be mapped to the first hexadecimal digit and the four
   subsequent bits in the binary data MUST be mapped to the second
   hexadecimal digit.  When mapping 4 bits to a hexadecimal digit, the
   bit appearing first in the binary data SHALL be most significant.
   Thus, the resulting hexadecimal encoded value needs to have an even
   number of hexadecimal digits, and MUST be considered invalid if it
   has an odd number.

      Note that the encoding of the "uuie" subfield of the "cs-
      correlation" attribute is largely inspired by the encoding of the
      same value in the User-to-User header field in SIP, according to
      the document "A Mechanism for Transporting User to User Call
      Control Information in SIP" [I-D.ietf-cuss-sip-uui].

   As an example, an endpoint willing to send a UUIE containing a
   protocol discriminator with the hexadecimal value of %x56 and an
   hexadecimal User Information value of %xA390F3D2B7310023 would

Garcia-Martin & Veikkolainen  Expires June 20, 2013            [Page 15]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

   include a "cs-correlation" attribute line as follows:

      a=cs-correlation:uuie:56A390F3D2B7310023

   Note that, for correlation purposes, the value of the User-User
   Information Element is considered as an opaque string and only used
   for correlation purposes.  Typically call signaling protocols impose
   requirements on the creation of User-User Information Element for
   end-user protocol exchange.  The details regarding the generation of
   the User-User Information Element are outside the scope of this
   specification.

   Please note that there are no guarantees that this correlation
   mechanism works.  On one side, policy restrictions might not make the
   User-User information available end to end in the PSTN.  On the other
   hand, the generation of the User-User Information Element is
   controlled by the PSTN circuit-switched call protocol, which might
   not offer enough freedom for generating different values from one
   endpoint to another one, or from one call to another in the same
   endpoint.  This might result in the same value of the User-User
   Information Element for all calls.

5.2.3.4.  DTMF Correlation Mechanism

   We introduce a third mechanism for correlating the circuit-switched
   bearer with the session described with SDP.  This is based on
   agreeing on a sequence of digits that are negotiated in the SDP
   Offer/Answer exchange and sent as Dual Tone Multifrequency (DTMF)
   tones over the circuit-switched bearer once this bearer is
   established.  If the DTMF digit sequence received through the
   circuit-switched bearer matches the digit string negotiated in the
   SDP, the circuit-switched bearer is correlated with the session
   described in the SDP.  The mechanism is similar to many voice
   conferencing systems which require the user to enter a PIN code using
   DTMF tones in order to be accepted in a voice conference.

   The mechanism works as follows: An endpoint selects a DTMF digit
   sequence.  The same sequence is included in the SDP offer or SDP
   answer, in a "dtmf" subfield of the "cs-correlation" attribute.  When
   the SDP Offer/Answer exchange is completed, each endpoint has become
   aware of the DTMF sequence that will be sent right after the circuit-
   switched bearer is set up.  The endpoint that initiates the call
   setup attempt sends the DTMF digits according to the procedures
   defined for the circuit-switched bearer technology used.  The
   recipient (passive side of the bearer setup) of the call setup
   attempt collects the digits and compares them with the value
   previously received in the SDP.  If the digits match, then the call
   setup attempt corresponds to that indicated in the SDP.

Garcia-Martin & Veikkolainen  Expires June 20, 2013            [Page 16]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

      Implementations are advised to select a number of DTMF digits that
      provide enough assurance that the call is related, but on the
      other hand do not prolong the bearer setup time unnecessarily.

   As an example, an endpoint willing to send DTMF tone sequence "14D*3"
   would include a "cs-correlation" attribute line as follows:

      a=cs-correlation:dtmf:14D*3

   If the endpoints successfully agree on the usage of the DTMF digit
   correlation mechanism, but the passive side does not receive any DTMF
   digits after successful circuit-switched bearer setup, or receives a
   set of DTMF digits that do not match the value of the "dtmf"
   attribute (including receiving too many digits), the passive side
   SHOULD treat the circuit-switched bearer as not correlated to the
   ongoing session.

      DTMF digits can only be sent once the circuit-switched bearer is
      set up.  In order to suppress alerting for an incoming circuit-
      switched call, implementations may choose various mechanisms.  For
      example, alerting may be suppressed for a certain time period for
      incoming call attempts that originate from the number that was
      observed during the offer/answer negotiation.

5.2.3.5.  Extensions to correlation mechanisms

   New values for the "cs-correlation" attribute may be specified.  The
   registration policy for new values is "Specification Required", see
   Section 8.  Any such specification MUST include a description of how
   SDP Offer/Answer mechanism is used to negotiate the use of the new
   values, taking into account how endpoints determine which side will
   become active or passive (see Section 5.3 for more details).

   If, during the Offer/Answer negotiation, either endpoint encounters
   an unknown value in the "cs-correlation" attribute, it MUST consider
   that mechanism as unsupported, and MUST NOT include that value in
   subsequent Offer/Answer negotiation.

5.3.  Negotiating the correlation mechanisms

   The three correlation mechanisms presented above (based on called
   party number, User-User Information Element and DTMF digit sending)
   are non-exclusive, and can be used independently of each other.  In
   order to know how to populate the "cs-correlation" attribute, the
   endpoints need to agree which endpoint will become the active party,
   i.e., the one that will set up the circuit-switched bearer.

Garcia-Martin & Veikkolainen  Expires June 20, 2013            [Page 17]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

5.3.1.  Determining the Direction of the Circuit-Switched Bearer Setup

   In order to avoid a situation where both endpoints attempt to
   initiate a connection simultaneously, the direction in which the
   circuit-switched bearer is set up MUST be negotiated during the
   Offer/Answer exchange.

   The framework defined in RFC 4145 [RFC4145] allows the endpoints to
   agree which endpoint acts as the active endpoint when initiating a
   TCP connection.  While RFC 4145 [RFC4145] was originally designed for
   establishing TCP connections, it can be easily extrapolated to the
   connection establishment of circuit-switched bearers.  This
   specification uses the concepts specified in RFC 4145 [RFC4145] for
   agreeing on the direction of establishment of a circuit-switched
   bearer.

   RFC 4145 [RFC4145] defines two new attributes in SDP: "setup" and
   "connection".  The "setup" attribute indicates which of the endpoints
   should initiate the connection establishment of the PSTN circuit-
   switched bearer.  Four values are defined in Section 4 of RFC 4145
   [RFC4145]: "active", "passive", "actpass", "holdconn".  Please refer
   to Section 4 of RFC 4145 [RFC4145] for a detailed description of this
   attribute.

   The "connection" attribute indicates whether a new connection is
   needed or an existing connection is reused.  The attribute can take
   the values "new" or "existing".  Please refer to Section 5 of RFC
   4145 [RFC4145] for a detailed description of this attribute.

   Implementations according to this specification MUST support the
   "setup" and "connection" attributes specified in RFC 4145 [RFC4145],
   but applied to circuit-switched bearers in the PSTN.

   We define the active party as the one that initiates the circuit-
   switched bearer after the Offer/Answer exchange.  The passive party
   is the one receiving the circuit-switched bearer.  Either party may
   indicate its desire to become the active or passive party during the
   Offer/Answer exchange using the procedures described in Section 5.6.

5.3.2.  Populating the cs-correlation attribute

   By defining values for the subfields in the "a=cs-correlation"
   attribute, the endpoint indicates that it is willing to become the
   active party, and that it can use those values in the Calling party
   number, User-User Information Element, or as DTMF tones during the
   circuit-switched bearer setup.

   Thus, the following rules apply:

Garcia-Martin & Veikkolainen  Expires June 20, 2013            [Page 18]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

      An endpoint that can only become the active party in the circuit-
      switched bearer setup MUST include all correlation mechanisms it
      supports in the "a=cs-correlation" attribute, and MUST also
      specify values for the subfields.

      An endpoint that can only become the passive party in the circuit-
      switched bearer setup MUST include all correlation mechanisms it
      supports in the "a=cs-correlation" attribute, but MUST NOT specify
      values for the subfields.

      An endpoint that is willing to become either the active or passive
      party (by including the "a=setup:actpass" attribute in the Offer),
      MUST include all correlation mechanisms it supports in the "a=cs-
      correlation" attribute, and MUST also specify values for the
      subfields.

5.3.3.  Considerations on successful correlation

   Note that, as stated above, it cannot be guaranteed that any given
   correlation mechanism will succeed even if the usage of those was
   agreed beforehand.  This is due to the fact that the correlation
   mechanisms require support from the circuit-switched bearer
   technology used.

   Therefore, even a single positive indication using any of these
   mechanisms SHOULD be interpreted by the passive endpoint so that the
   circuit-switched bearer establishment is related to the ongoing
   session, even if the other correlation mechanisms fail.

   If, after negotiating one or more correlation mechanisms in the SDP
   offer/answer exchange, an endpoint receives a circuit-switched bearer
   with no correlation information present, the endpoint has two
   choices: it can either treat the call as unrelated, or treat the call
   as related to the ongoing session in the IP domain.

   An endpoint may for example specify a time window after SDP offer/
   answer exchange during which received calls are treated as correlated
   even if the signaling in the circuit-switched domain does not carry
   any correlation information.  In this case, there is a chance that
   the call is erroneously treated as related to the ongoing session.

   An endpoint may also choose to always treat an incoming call as
   unrelated if the signaling in the circuit-switched domain does not
   carry any correlation information.  In this case, there is a chance
   that the call is erroneously treated as unrelated.

   Since, in these cases, no correlation information can be deduced from
   the signaling, it is up to the implementation to decide how to

Garcia-Martin & Veikkolainen  Expires June 20, 2013            [Page 19]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

   behave.  One option is also to let the user decide whether to accept
   the call as related, or to treat the call as unrelated.

5.4.  Considerations for Usage of Existing SDP

5.4.1.  Originator of the Session

   According to SDP [RFC4566], the origin line in SDP has the following
   syntax:

      o=<username> <sess-id> <sess-version> <nettype> <addrtype>
      <unicast-address>

   Of interest here are the <nettype> and <addrtype> fields, which
   indicate the type of network and type of address, respectively.
   Typically, this field carries the IP address of the originator of the
   session.  Even if the SDP was used to negotiate an audio or video
   media stream transported over a circuit-switched bearer, the
   originator is using SDP over an IP bearer.  Therefore, <nettype> and
   <addrtype> fields in the "o=" line should be populated with the IP
   address identifying the source of the signaling.

5.4.2.  Contact information

   SDP [RFC4566] defines the "p=" line which may include the phone
   number of the person responsible for the conference.  Even though
   this line can carry a phone number, it is not suited for the purpose
   of defining a connection address for the media.  Therefore, we have
   selected to define the PSTN specific connection addresses in the "c="
   line.

5.5.  Considerations for Usage of Third Party Call Control (3PCC)

   Best Current Practices for Third Party Call Control (3pcc) in the
   Session Initiation Protocol (SIP) [RFC3725] outlines several flows
   which are possible in third party call control scenarios and
   recommends some flows for specific situations.

   One of the assumptions in [RFC3725] is that an SDP Offer may include
   a "black hole" connection address, which has the property that
   packets sent to it will never leave the host which sent them.  For
   IPv4, this "black hole" connection address is 0.0.0.0, or a domain
   name within the .invalid DNS top level domain.

   When using an E.164 address scheme in the context of third-party call
   control, when the User Agent needs to indicate an unknown phone
   number, it MUST populate the <addrtype> of the SDP "c=" line with a
   "-" string.

Garcia-Martin & Veikkolainen  Expires June 20, 2013            [Page 20]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

      Note that this may result in the recipient of the initial Offer in
      rejecting the Offer if the recipient of the Offer is not aware of
      its own E.164 number, and thus concluding that it will not be
      possible to establish a circuit-switched bearer since neither
      party is aware of their E.164 number.

5.6.  Offer/Answer mode extensions

   In this section, we define extensions to the Offer/Answer model
   defined in The Offer/Answer Model in SDP [RFC3264] to allow for PSTN
   addresses to be used with the Offer/Answer model.

5.6.1.  Generating the Initial Offer

   The Offerer, wishing to use PSTN audio or video stream, MUST populate
   the "c=" and "m=" lines as follows.

   The endpoint MUST set the <nettype> in the "c=" line to "PSTN", and
   the <addrtype> to "E164".  Furthermore, the endpoint SHOULD set the
   <connection-address> field to its own international E.164 number
   (with a leading "+").  If the endpoint is not aware of its own E.164
   number, it MUST set the <connection-address> to "-".

   In the "m=" line, the endpoint MUST set the <media> subfield to
   "audio" or "video", depending on the media type, and the <proto>
   subfield to "PSTN".  The <port> subfield SHOULD be set to "9" (the
   discard port).

   The <fmt> subfield carries the payload type number(s) the endpoint is
   wishing to use.  Payload type numbers in this case refer to the
   codecs that the endpoint wishes to use on the PSTN media stream.  For
   example, if the endpoint wishes to use the GSM codec, it would add
   payload type number 3 in the list of codecs.  The list of payload
   types SHOULD only contain those codecs the endpoint is able to use on
   the PSTN bearer.  In case the endpoint is not aware of the codecs
   available for the circuit-switched media streams, it MUST include a
   dash ("-") in the <fmt> subfield.

   For dynamic payload types, the endpoint MUST define the set of valid
   encoding names and related parameters using the "a=rtpmap" attribute
   line.  See Section 6 of SDP [RFC4566] for details.

   When generating the Offer, if the Offerer supports any of the
   correlation mechanisms defined in this memo, it MUST include an
   attribute line "a=cs-correlation" in the SDP offer.  The Offerer MUST
   NOT include more than one "cs-correlation" attribute per media
   decription.  The "a=cs-correlation" line contains an enumeration of
   the correlation mechanisms supported by the Offerer, in the format of

Garcia-Martin & Veikkolainen  Expires June 20, 2013            [Page 21]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

   subfields.

   The current list of subfields include "callerid", "uuie" and "dtmf"
   and they refer to the correlation mechanisms defined in
   Section 5.2.3.2, Section 5.2.3.3, and Section 5.2.3.4, respectively.

   If the Offerer supports any of the correlation mechanisms defined in
   this memo, and is willing to become the active party, the Offerer
   MUST add the "callerid", "uuie", and/or "dtmf" subfields and MUST
   specify values for those subfields.

   o  the international E.164 number as the value in the "callerid"
      subfield,

   o  the contents of the User-User information element as the value of
      the "uuie" subfield, and/or

   o  the DTMF tone string as the value of the "dtmf" subfield

   If the Offerer is only able to become the passive party in the
   circuit-switched bearer setup, it MUST add the "callerid", "uuie"
   and/or "dtmf" subfields, but MUST NOT specify values for those
   subfields.

   For example, if the Offerer is willing to use the User-User
   Information element and DTMF digit sending mechanisms, but can only
   become the passive party, it includes the following lines in the SDP:

      a=cs-correlation:uuie dtmf

      a=setup:passive

   If, on the other hand, the Offerer is willing to use the User-User
   Information element and the DTMF correlation mechanisms, and is able
   to become the active or passive side, it includes the following lines
   in the SDP:

      a=cs-correlation:uuie:56A390F3D2B7310023 dtmf:14D*3

      a=setup:actpass

   The negotiation of the value of the 'setup' attribute takes place as
   defined in Section 4.1 of TCP-Based Media Transport in the SDP
   [RFC4145].

   The Offerer states which role or roles it is willing to perform; and
   the Answerer, taking the Offerer's willingness into consideration,
   chooses which roles both endpoints will actually perform during the

Garcia-Martin & Veikkolainen  Expires June 20, 2013            [Page 22]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

   circuit-switched bearer setup.

   By 'active' endpoint, we refer to an endpoint that will establish the
   circuit-switched bearer; and by 'passive' endpoint, we refer to an
   endpoint that will receive a circuit-switched bearer.

   If an Offerer does not know its international E.164 number, it MUST
   set the 'a=setup' attribute to the value 'active'.  If the Offerer
   knows its international E.164 number, it SHOULD set the value to
   either 'actpass' or 'passive'.

   Also 'holdconn' is a permissible value in the 'a=setup' attribute.
   It indicates that the connection is not established for the time
   being.

   The Offerer uses the "a=connection" attribute to decide whether a new
   circuit-switched bearer is to be established or not.  For the initial
   Offer, the Offerer MUST use value 'new'.

5.6.2.  Generating the Answer

   If the Offer contained a circuit-switched audio or video stream, the
   Answerer first determines whether it is able to accept and use such
   streams.  If the Answerer is not willing to use circuit-switched
   media for the session, it MUST construct an Answer where the port
   number for such media stream(s) is set to zero, according to Section
   6 of An Offer/Answer Model with the Session Description Protocol
   (SDP) [RFC3264].  If the Answerer is willing to use circuit-switched
   media for the session, it MUST ignore the received port number
   (unless the port number is set to zero).

   If the Offer included a "-" as the payload type number, it indicates
   that the Offerer is not willing or able to define any specific
   payload type.  Most often, a "-" is expected to be used instead of
   the payload type when the endpoint is not aware of or not willing to
   define the codecs which will eventually be used on the circuit-
   switched bearer.  The circuit-switched signaling protocols have their
   own means of negotiating or indicating the codecs, therefore an
   Answerer SHOULD accept such Offers, and SHOULD set the payload type
   to "-" also in the Answer.

   If the Answerer explicitly wants to specify a codec for the circuit-
   switched media, it MAY set the respective payload numbers in the
   <fmt> subfield in the answer.  This behavior, however, is NOT
   RECOMMENDED.

   When receiving the Offer, the Answerer MUST determine whether it
   becomes the active or passive party.

Garcia-Martin & Veikkolainen  Expires June 20, 2013            [Page 23]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

   If the SDP in the Offer indicates that the Offerer is only able to
   become the active party, the Answerer needs to determine whether it
   is able to become the passive party.  If this is not possible e.g.
   due to the Answerer not knowing its international E.164 number, the
   Answerer MUST reject the circuit-switched media by setting the port
   number to zero on the Answer.  If the Answerer is aware of its
   international E.164 number, it MUST include the "a=setup" attribute
   in the Answer and set it to value "passive" or "holdconn".  The
   Answerer MUST also include its E.164 number on the "c=" line.

   If the SDP in the Offer indicates that the Offerer is only able to
   become the passive party, the Answerer MUST verify that the Offerer's
   E.164 number is included in the "c=" line of the Offer.  If the
   number is included, the Answerer MUST include the "a=setup" attribute
   in the Answer and set it to value "active" or "holdconn".  If the
   number is not included, call establishment is not possible, and the
   Answerer MUST reject the circuit-switched media by setting the port
   number to zero in the Answer.

   If the SDP in the Offer indicates that the Offerer is able to become
   either the active or passive party, the Answerer needs to determine
   which role it would like to take.  If the Offer includes an
   international E.164 number in the "c=" line, the Answerer SHOULD
   become the active party.  If the Offer does not include an E.164
   number, and if the Answerer is aware of its international E.164
   number, it MUST become the passive party.  If the Offer does not
   include an E.164 number in the "c=" line and the Answerer is not
   aware of its E.164 number, it MUST reject the circuit-switched media
   by setting the port number to zero in the Answer.

   For each media description where the Offer includes a "a=cs-
   correlation" attribute, the Answerer MUST select from the Offer those
   correlation mechanisms it supports, and include in the Answer one
   "a=cs-correlation" attribute line containing those mechanisms it is
   willing to use.  The Answerer MUST only add one "a=cs-correlation"
   attribute in those media descriptions where also the Offer included a
   "a=cs-correlation" attribute.  The Answerer MUST NOT add any
   mechanisms which were not included in the offer.  If there are more
   than one "cs-correlation" attributes per media description in the
   Offer, the Answerer MUST discard all but the first for any media
   description.  Also, the Answerer MUST discard all unknown "cs-
   correlation" attribute values.

   If the Answerer becomes the active party, it MUST add any of the
   "callerid", "uuie" or "dtmf" subfield values.

   If the Answerer becomes the passive party, it MUST NOT add values to
   the "callerid", "uuie" and/or "dtmf" subfields.

Garcia-Martin & Veikkolainen  Expires June 20, 2013            [Page 24]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

   After generating and sending the Answer, if the Answerer became the
   active party, it

   o  MUST extract the E.164 number from the "c=" line of the Offer and
      MUST establish a circuit-switched bearer to that address.

   o  if the SDP Answer contained a value for the "callerid" subfield,
      MUST set the Calling Party Number Information Element to that
      number,

   o  if the SDP Answer contained a value for the "uuie" subfield, MUST
      send the User-User Information element according to the rules
      defined for the circuit-switched technology used, and set the
      value of the Information Element to that received in the SDP
      Offer,

   o  if the SDP Answer contained a value for the "dtmf" subfield, MUST
      send those DTMF digits according to the circuit-switched
      technology used.

   If, on the other hand, the Answerer became the passive party, it

   o  MUST be prepared to receive a circuit-switched bearer,

   o  if the Offer contained a value for the "callerid" subfield, MUST
      compare that value to the Calling Party Number Information Element
      of the circuit-switched bearer,

   o  if the Offer contained a value for the "dtmf" subfield, MUST be
      prepared to receive and collect DTMF digits once the circuit-
      switched bearer is set up.  The Answerer MUST compare the received
      DTMF digits to the value of the "dtmf" subfield.  If the received
      DTMF digits match the value of the "dtmf" subfield in the "cs-
      correlation" attribute, the call SHOULD be treated as correlated
      to the ongoing session.

   o  if the Offer contained a value for the "uuie" subfield, MUST be
      prepared to receive a User-User Information element once the
      circuit-switched bearer is set up.  The Answerer MUST compare the
      received UUI to the value of the "uuie" subfield.  If the value of
      the received UUI matches the value of the "uuie" subfield, the
      call SHOULD be treated as correlated to the ongoing session.

   If the Answerer becomes the active party, generates an SDP answer,
   and then it finds out that the circuit-switched call cannot be
   established, then the Answerer MUST create a new SDP offer where
   circuit-switched stream is removed from the session (actually, by
   setting the corresponding port in the m= line to zero) and send it to

Garcia-Martin & Veikkolainen  Expires June 20, 2013            [Page 25]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

   its counterpart.  This is to synchronize both parties (and potential
   intermediaries) on the state of the session.

5.6.3.  Offerer processing the Answer

   When receiving the Answer, if the SDP does not contain "a=cs-
   correlation" attribute line, the Offerer should take that as an
   indication that the other party does not support or is not willing to
   use the procedures defined in the document for this session, and MUST
   revert to normal processing of SDP.

   When receiving the Answer, the Offerer MUST first determine whether
   it becomes the active or passive party, as described in
   Section 5.3.1.

   If the Offerer becomes the active party, it

   o  MUST extract the E.164 number from the "c=" line and MUST
      establish a circuit-switched bearer to that address.

   o  if the SDP Answer contained a value for the "uuie" subfield, MUST
      send the User-User Information element according to the rules
      defined for the circuit-switched technology used, and set the
      value of the Information Element to that received in the SDP
      Answer,

   o  if the SDP Answer contained a value for the "dtmf" subfield, MUST
      send those DTMF digits according to the circuit-switched
      technology used.

   If the Offerer becomes the passive party, it

   o  MUST be prepared to receive a circuit-switched bearer,

   o  Note that if delivery of the Answer is delayed for some reason,
      the circuit-switched call attempt may arrive at the Offerer before
      the Answer has been processed.  In this case, since the
      correlation mechanisms are negotiated as part of the Offer/Answer
      exchange, the Answerer cannot know whether or not the incoming
      circuit-switched call attempt is correlated with the session being
      negotiated, the Offerer SHOULD answer the circuit-switched call
      attempt only after it has received and processed the Answer.

   o  If the Answer contained a value for the "dtmf" subfield, the
      Offerer MUST be prepared to receive and collect DTMF digits once
      the circuit-switched bearer is set up.  The Offerer SHOULD compare
      the received DTMF digits to the value of the "dtmf" subfield.  If
      the received DTMF digits match the value of the "dtmf" subfield in

Garcia-Martin & Veikkolainen  Expires June 20, 2013            [Page 26]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

      the "cs-correlation" attribute, the call SHOULD be treated as
      correlated to the ongoing session.

   o  If the Answer contained a value for the "uuie" subfield, the
      Offerer MUST be prepared to receive a User-User Information
      element once the circuit-switched bearer is set up.  The Offerer
      SHOULD compare the received UUI to the value of the "uuie"
      subfield.  If the value of the received UUI matches the value of
      the "uuie" subfield, the call SHOULD be treated as correlated to
      the ongoing session.

5.6.4.  Modifying the session

   If, at a later time, one of the parties wishes to modify the session,
   e.g., by adding new media stream, or by changing properties used on
   an existing stream, it may do so via the mechanisms defined for An
   Offer/Answer Model with SDP [RFC3264].

   If there is an existing circuit-switched bearer between the
   endpoints, and the Offerer wants to reuse that, the Offerer MUST set
   the value of the "a=connection" attribute to 'existing'.

   If either party removes the circuit-switched media from the session
   (by setting the port number to zero), it MUST terminate the circuit-
   switched bearer using whatever mechanism is appropriate for the
   technology in question.

   If either party wishes to drop and reestablish an existing call, that
   party MUST first remove the circuit-switched media from the session
   by setting the port number to zero, and then use another Offer/Answer
   exchange where it MUST set the "a=connection" attribute to 'new'".
   If the media types are different (for example, a different codec will
   be used for the circuit-switched bearer), the media descriptions for
   terminating the existing bearer and the new bearer can be in the same
   Offer.

5.7.  Formal Syntax

   The following is the formal Augmented Backus-Naur Form (ABNF)
   [RFC5234] syntax that supports the extensions defined in this
   specification.  The syntax is built above the SDP [RFC4566] and the
   tel URI [RFC3966] grammars.  Implementations according to this
   specification MUST be compliant with this syntax.

   Figure 2 shows the formal syntax of the extensions defined in this
   memo.

Garcia-Martin & Veikkolainen  Expires June 20, 2013            [Page 27]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

           ; extension to the connection field originally specified
           ; in RFC 4566

           connection-field   =  [%x63 "=" nettype SP addrtype SP
           connection-address CRLF]
           ;nettype and addrtype are defined in RFC 4566

           connection-address /=  global-number-digits / "-"
           ; global-number-digits specified in RFC 3966

           ;subrules for correlation attribute
           attribute          /= cs-correlation-attr
           ; attribute defined in RFC 4566
           cs-correlation-attr = "cs-correlation:" corr-mechanisms
           corr-mechanisms    = corr-mech *(SP corr-mech)
           corr-mech          = caller-id-mech / uuie-mech /
                                dtmf-mech / ext-mech
           caller-id-mech     = "callerid" [":" caller-id-value]
           caller-id-value    = "+" 1*15DIGIT
           uuie-mech          = "uuie" [":" uuie-value]
           uuie-value         = 1*65(HEXDIG HEXDIG)
                                ;This represents up to 130 HEXDIG
                                ; (65 octets)
                                ;HEXDIG defined in RFC5234
                                ;HEXDIG defined as 0-9, A-F
           dtmf-mech          = "dtmf" [":" dtmf-value]
           dtmf-value         = 1*32(DIGIT / %x41-44 / %x23 / %x2A )
           ;0-9, A-D, '#' and '*'
           ext-mech           = ext-mech-name [":" ext-mech-value]
           ext-mech-name      = token
           ext-mech-value     = token
           ; token is specified in RFC4566

                  Figure 2: Syntax of the SDP extensions

6.  Examples

   In the examples below, where an SDP line is too long to be displayed
   as a single line, a breaking character "\" indicates continuation in
   the following line.  Note that this character is included for display
   purposes only.  Implementations MUST write a single line without
   breaks.

Garcia-Martin & Veikkolainen  Expires June 20, 2013            [Page 28]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

6.1.  Single PSTN audio stream

                       Alice                               Bob
                         |                                  |
                         | (1) SDP Offer (PSTN audio)       |
                         |--------------------------------->|
                         |                                  |
                         | (2) SDP Answer (PSTN audio)      |
                         |<---------------------------------|
                         |                                  |
                         |   PSTN call setup                |
                         |<---------------------------------|
                         |                                  |
                         |<==== media over PSTN bearer ====>|
                         |                                  |

                           Figure 3: Basic flow

   Figure 3 shows a basic example that describes a single audio media
   stream over a circuit-switched bearer.  Alice generates a SDP Offer
   which is shown in Figure 4.  The Offer describes a PSTN circuit-
   switched bearer in the "m=" and "c=" line where it also indicates its
   international E.164 number format.  Additionally, Alice expresses
   that she can initiate the circuit-switched bearer or be the recipient
   of it in the "a=setup" attribute line.  The SDP Offer also includes
   correlation identifiers that this endpoint will insert in the Calling
   Party Number and/or User-User Information Element of the PSTN call
   setup if eventually this endpoint initiates the PSTN call.

           v=0
           o=jdoe 2890844526 2890842807 IN IP4 192.0.2.5
           s=
           t=0 0
           m=audio 9 PSTN -
           c=PSTN E164 +441134960123
           a=setup:actpass
           a=connection:new
           a=cs-correlation:callerid:+441134960123 \
             uuie:56A390F3D2B7310023

                          Figure 4: SDP offer (1)

   Bob generates a SDP Answer (Figure 5), describing a PSTN audio media
   on port 9 without information on the media sub-type on the "m=" line.
   The "c=" line contains Bob's international E.164 number.  In the
   "a=setup" line Bob indicates that he is willing to become the active
   endpoint when establishing the PSTN call, and he also includes the
   "a=cs-correlation" attribute line containing the values he is going

Garcia-Martin & Veikkolainen  Expires June 20, 2013            [Page 29]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

   to include in the Calling Party Number and User-User IE of the PSTN
   call establishment.

         v=0
         o=- 2890973824 2890987289 IN IP4 192.0.2.7
         s=
         t=0 0
         m=audio 9 PSTN -
         c=PSTN E164 +441134690124
         a=setup:active
         a=connection:new
         a=cs-correlation:callerid:+441134690124 \
           uuie:56A390F3D2B7310023

             Figure 5: SDP Answer with circuit-switched media

   When Alice receives the Answer, she examines that Bob is willing to
   become the active endpoint when setting up the PSTN call.  Alice
   temporarily stores Bob's E.164 number and the User-User IE value of
   the "cs-correlation" attribute, and waits for a circuit-switched
   bearer establishment.

   Bob initiates a circuit-switched bearer using whatever circuit-
   switched technology is available for him.  The called party number is
   set to Alice's number, and calling party number is set to Bob's own
   number.  Bob also sets the User-User Information Element value to the
   one contained in the SDP Answer.

   When Alice receives the circuit-switched bearer establishment, she
   examines the UUIE and the calling party number, and by comparing
   those received during O/A exchange determines that the call is
   related to the SDP session.

   It may also be that neither the UUIE nor the calling party number is
   received by the called party, or the format of the calling party
   number is changed by the PSTN.  Implementations may still accept such
   call establishment attempts as being related to the session that was
   established in the IP network.  As it cannot be guaranteed that the
   values used for correlation are always passed intact through the
   network, they should be treated as additional hints that the circuit-
   switched bearer is actually related to the session.

Garcia-Martin & Veikkolainen  Expires June 20, 2013            [Page 30]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

6.2.  Advanced SDP example: Circuit-Switched Audio and Video Streams

                  Alice                                         Bob
                    |                                            |
                    | (1) SDP Offer (PSTN audio and video)       |
                    |------------------------------------------->|
                    |                                            |
                    | (2) SDP Answer (PSTN audio)                |
                    |<-------------------------------------------|
                    |                                            |
                    |   PSTN call setup                          |
                    |<-------------------------------------------|
                    |                                            |
                    |<======== media over PSTN bearer ==========>|
                    |                                            |

            Figure 6: Circuit-Switched Audio and Video streams

   Figure 6 shows an example of negotiating audio and video media
   streams over circuit-switched bearers.

         v=0
         o=jdoe 2890844526 2890842807 IN IP4 192.0.2.5
         s=
         t=0 0
         a=setup:actpass
         a=connection:new
         c=PSTN E164 +441134960123
         m=audio 9 PSTN -
         a=cs-correlation:dtmf:1234536
         m=video 9 PSTN 34
         a=rtpmap:34 H263/90000
         a=cs-correlation:callerid:+441134960123

       Figure 7: SDP offer with circuit-switched audio and video (1)

   Upon receiving the SDP offer described in Figure 7, Bob rejects the
   video stream as his device does not currently support video, but
   accepts the circuit-switched audio stream.  As Alice indicated that
   she is able to become either the active, or passive party, Bob gets
   to select which role he would like to take.  Since the Offer
   contained the international E.164 number of Alice, Bob decides that
   he becomes the active party in setting up the circuit-switched
   bearer.  Bob includes a new value in the "dtmf" subfield of the "cs-
   correlation" attribute, which he is going to send as DTMF tones once
   the bearer setup is complete.  For the video bearer, caller ID based
   correlation is used.  The Answer is described in Figure 8

Garcia-Martin & Veikkolainen  Expires June 20, 2013            [Page 31]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

         v=0
         o=- 2890973824 2890987289 IN IP4 192.0.2.7
         s=
         t=0 0
         a=setup:active
         a=connection:new
         c=PSTN E164 +441134690124
         m=audio 9 PSTN -
         a=cs-correlation:dtmf:654321
         m=video 0 PSTN 34
         a=cs-correlation:dtmf:+441134690124

      Figure 8: SDP answer with circuit-switched audio and video (2)

7.  Security Considerations

   This document provides an extension on top of RFC 4566 [RFC4566], and
   RFC 3264 [RFC3264].  As such, the security considerations of those
   documents apply.

   This memo provides mechanisms to agree on a correlation identifier or
   identifiers that are used to evaluate whether an incoming circuit-
   switched bearer is related to an ongoing session in the IP domain.
   If an attacker replicates the correlation identifier and establishes
   a call within the time window the receiving endpoint is expecting a
   call, the attacker may be able to hijack the circuit-switched bearer.
   These types of attacks are not specific to the mechanisms presented
   in this memo.  For example, caller ID spoofing is a wellknown attack
   in the PSTN.  Users are advised to use the same caution before
   revealing sensitive information as they would on any other phone
   call.  Furthermore, users are advised that mechanisms that may be in
   use in the IP domain for securing the media, like Secure RTP (SRTP)
   [RFC3711], are not available in the CS domain.

   For the purposes of establishing a circuit-switched bearer, the
   active endpoint needs to know the passive endpoint's phone number.
   Phone numbers are sensitive information, and some people may choose
   not to reveal their phone numbers when calling using supplementary
   services like Calling Line Identification Restriction (CLIR) in GSM.
   Implementations should take the caller's preferences regarding
   calling line identification into account if possible, by restricting
   the inclusion of the phone number in SDP "c=" line if the caller has
   chosen to use CLIR.  If this is not possible, implementations may
   present a prompt informing the user that their phone number may be
   transmitted to the other party.

   Similarly as with IP addresses, if there is a desire to protect the

Garcia-Martin & Veikkolainen  Expires June 20, 2013            [Page 32]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

   SDP containing phone numbers carried in SIP, implementers are advised
   to follow the security mechanisms defined in [RFC3261].

   It is possible that an attacker creates a circuit-switched session
   whereby the attacked endpoint should dial a circuit-switched number,
   perhaps even a premium-rate telephone number.  To mitigate the
   consequences of this attack, endpoints MUST authenticate and trust
   remote endpoints users who try to remain passive in the circuit-
   switched connection establishment.  It is RECOMMENDED that endpoints
   have local policies precluding the active establishment of circuit
   switched connections to certain numbers (e.g., international,
   premium, long distance).  Additionally, it is strongly RECOMMENDED
   that the end user is asked for consent prior to the endpoint
   initiating a circuit-switched connection.

8.  IANA Considerations

   This document instructs IANA to register a number of SDP tokens
   according to the following data.

8.1.  Registration of new cs-correlation SDP attribute

      Contact: Miguel Garcia <miguel.a.garcia@ericsson.com>

      Attribute name: cs-correlation

      Long-form attribute name: PSTN Correlation Identifier

      Type of attribute: media level only

      Subject to charset: No

      Description: This attribute provides the Correlation Identifier
      used in PSTN signaling

      Appropriate values:see Section 5.2.3.1

      Specification: RFC XXXX

   The IANA is requested to create a subregistry for 'cs-correlation'
   attribute under the Session Description Protocol (SDP) Parameters
   registry.  The initial values for the subregistry are presented in
   the following, and IANA is requested to add them into its database:

Garcia-Martin & Veikkolainen  Expires June 20, 2013            [Page 33]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

  Value of 'cs-correlation' attribute Reference Description
  ----------------------------------- --------- -----------
  callerid                            RFC XXXX  Caller ID
  uuie                                RFC XXXX  User-User
                                                Information Element
  dtmf                                RFC XXXX  Dual-tone Multifrequency

   Note for the RFC Editor: 'RFC XXXX' above should be replaced by a
   reference to the RFC number of this draft.

   As per the terminology in [RFC5226], the registration policy for new
   values of 'cs-correlation' parameter is 'Specification Required'.

8.2.  Registration of a new "nettype" value

   This memo provides instructions to IANA to register a new "nettype"
   in the Session Description Protocol Parameters registry [1].  The
   registration data, according to RFC 4566 [RFC4566] follows.

   Type            SDP Name                     Reference
   ----            ------------------           ---------
   nettype         PSTN                         [RFCxxxx]

8.3.  Registration of new "addrtype" values

   This memo provides instructions to IANA to register two new
   "addrtype" in the Session Description Protocol Parameters
   registry [1].  The registration data, according to RFC 4566 [RFC4566]
   follows.

   Type            SDP Name                     Reference
   ----            ------------------           ---------
   addrtype        E164                         [RFCxxxx]
                   -                            [RFCxxxx]

   Note: RFC XXXX defines the "E164" and "-" addrtypes in conjunction
   with the "PSTN" nettype only.  Please refer to the relevant RFC for a
   description of that representation.

   Note to IANA: The current "addrtype" sub-registry structure does not
   capture the fact that a given addrtype is defined in the context of a
   particular "nettype".  The sub-registry structure should be to
   correct that as part of this registration.

8.4.  Registration of a new "proto" value

   This memo provides instructions to IANA to register a new "proto" in
   the Session Description Protocol Parameters registry [1].  The

Garcia-Martin & Veikkolainen  Expires June 20, 2013            [Page 34]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

   registration data, according to RFC 4566 [RFC4566] follows.

   Type            SDP Name                     Reference
   --------------  ---------------------------  ---------
   proto           PSTN                         [RFCxxxx]

   The related "fmt" namespace re-uses the conventions and payload type
   number defined for RTP/AVP.  In this document, the RTP audio and
   video media types, when applied to PSTN circuit-switched bearers,
   represent merely an audio or video codec in its native format
   directly on top of a single PSTN bearer.

   In come cases, the endpoint is not able to determine the lsit of
   available codecs for circuit-switched media streams.  In this case,
   in order to be syntactically compliant with SDP [RFC4566], the

9.  Acknowledgments

   The authors want to thank Paul Kyzivat, Flemming Andreasen, Thomas
   Belling, John Elwell, Jari Mutikainen, Miikka Poikselka, Jonathan
   Rosenberg, Ingemar Johansson, Christer Holmberg, Alf Heidermark, Tom
   Taylor, Thomas Belling, Keith Drage, and Andrew Allen for providing
   their insight and comments on this document.

10.  References

10.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC3264]  Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
              with Session Description Protocol (SDP)", RFC 3264,
              June 2002.

   [RFC3966]  Schulzrinne, H., "The tel URI for Telephone Numbers",
              RFC 3966, December 2004.

   [RFC4145]  Yon, D. and G. Camarillo, "TCP-Based Media Transport in
              the Session Description Protocol (SDP)", RFC 4145,
              September 2005.

   [RFC4566]  Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
              Description Protocol", RFC 4566, July 2006.

   [RFC5226]  Narten, T. and H. Alvestrand, "Guidelines for Writing an

Garcia-Martin & Veikkolainen  Expires June 20, 2013            [Page 35]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

              IANA Considerations Section in RFCs", BCP 26, RFC 5226,
              May 2008.

   [RFC5234]  Crocker, D. and P. Overell, "Augmented BNF for Syntax
              Specifications: ABNF", STD 68, RFC 5234, January 2008.

10.2.  Informative References

   [I-D.ietf-cuss-sip-uui]
              Johnston, A. and J. Rafferty, "A Mechanism for
              Transporting User to User Call Control Information in
              SIP", draft-ietf-cuss-sip-uui-08 (work in progress),
              December 2012.

   [ITU.E164.1991]
              International Telecommunications Union, "The International
              Public Telecommunication Numbering Plan", ITU-
              T Recommendation E.164, 1991.

   [ITU.Q931.1998]
              "Digital Subscriber Signalling System No. 1 (DSS 1) - ISDN
              User - Network Interface Layer 3 Specification for Basic
              Call Control", ISO Standard 9594-1, May 1998.

   [RFC3108]  Kumar, R. and M. Mostafa, "Conventions for the use of the
              Session Description Protocol (SDP) for ATM Bearer
              Connections", RFC 3108, May 2001.

   [RFC3261]  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.

   [RFC3550]  Schulzrinne, H., Casner, S., Frederick, R., and V.
              Jacobson, "RTP: A Transport Protocol for Real-Time
              Applications", STD 64, RFC 3550, July 2003.

   [RFC3551]  Schulzrinne, H. and S. Casner, "RTP Profile for Audio and
              Video Conferences with Minimal Control", STD 65, RFC 3551,
              July 2003.

   [RFC3711]  Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K.
              Norrman, "The Secure Real-time Transport Protocol (SRTP)",
              RFC 3711, March 2004.

   [RFC3725]  Rosenberg, J., Peterson, J., Schulzrinne, H., and G.
              Camarillo, "Best Current Practices for Third Party Call
              Control (3pcc) in the Session Initiation Protocol (SIP)",

Garcia-Martin & Veikkolainen  Expires June 20, 2013            [Page 36]
Internet-Draft    PSTN Circuit-Switched Bearers in SDP     December 2012

              BCP 85, RFC 3725, April 2004.

   [RFC4975]  Campbell, B., Mahy, R., and C. Jennings, "The Message
              Session Relay Protocol (MSRP)", RFC 4975, September 2007.

   [TS.24.008]
              3GPP, "Mobile radio interface Layer 3 specification; Core
              network protocols; Stage 3", 3GPP TS 24.008 3.20.0,
              December 2005.

URIs

   [1]  <http://www.iana.org/assignments/sdp-parameters>

Authors' Addresses

   Miguel A. Garcia-Martin
   Ericsson
   Calle Via de los Poblados 13
   Madrid, ES  28033
   Spain

   Email: miguel.a.garcia@ericsson.com

   Simo Veikkolainen
   Nokia
   P.O. Box 226
   NOKIA GROUP, FI  00045
   Finland

   Phone: +358 50 486 4463
   Email: simo.veikkolainen@nokia.com

Garcia-Martin & Veikkolainen  Expires June 20, 2013            [Page 37]