Tech-invite3GPPspaceIETFspace
96959493929190898887868584838281807978777675747372717069686766656463626160595857565554535251504948474645444342414039383736353433323130292827262524232221201918171615141312111009080706050403020100
in Index   Prev   Next

RFC 7195

Session Description Protocol (SDP) Extension for Setting Audio and Video Media Streams over Circuit-Switched Bearers in the Public Switched Telephone Network (PSTN)

Pages: 39
Proposed Standard
Part 1 of 2 – Pages 1 to 16
None   None   Next

Top   ToC   RFC7195 - Page 1
Internet Engineering Task Force (IETF)                  M. Garcia-Martin
Request for Comments: 7195                                      Ericsson
Category: Standards Track                                S. Veikkolainen
ISSN: 2070-1721                                                    Nokia
                                                                May 2014


            Session Description Protocol (SDP) Extension for
 Setting Audio and Video Media Streams over Circuit-Switched Bearers in
              the Public Switched Telephone Network (PSTN)

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 is an Internet Standards Track document. This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 5741. Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc7195. Copyright Notice Copyright (c) 2014 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 the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
Top   ToC   RFC7195 - Page 2

Table of Contents

1. Introduction ....................................................3 2. Conventions Used in This Document ...............................4 3. Requirements ....................................................5 4. Overview of Operation ...........................................5 4.1. Example Call Flow ..........................................6 5. Protocol Description ............................................7 5.1. Level of Compliance ........................................7 5.2. Extensions to SDP ..........................................7 5.2.1. Connection Data .....................................7 5.2.2. Media Descriptions ..................................9 5.2.3. Correlating the PSTN Circuit-Switched Bearer with SDP ....................................10 5.2.3.1. The "cs-correlation" Attribute ............11 5.2.3.2. Caller ID Correlation Mechanism ...........12 5.2.3.3. User-User Information Element Correlation Mechanism .....................13 5.2.3.4. DTMF Correlation Mechanism ................14 5.2.3.5. External Correlation Mechanism ............15 5.2.3.6. Extensions to Correlation Mechanisms ......16 5.3. Negotiating the Correlation Mechanisms ....................17 5.3.1. Determining the Direction of the Circuit-Switched Bearer Setup ......................17 5.3.2. Populating the "cs-correlation" Attribute ..........18 5.3.3. Considerations for Correlations ....................18 5.4. Considerations for Usage of Existing SDP ..................19 5.4.1. Originator of the Session ..........................19 5.4.2. Contact Information ................................20 5.5. Considerations for Usage of Third Party Call Control (3PCC) ............................................20 5.6. Offer/Answer Mode Extensions ..............................20 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 .............................................28 6. Examples .......................................................30 6.1. Single PSTN Audio Stream ..................................30 6.2. Advanced SDP Example: Circuit-Switched Audio and Video Streams .............................................32 7. Security Considerations ........................................33 8. IANA Considerations ............................................35 8.1. Registration of the New "cs-correlation" SDP Attribute ....35 8.2. Registration of a New "nettype" Value .....................36 8.3. Registration of a New "addrtype" Value ....................36 8.4. Registration of a New "proto" Value .......................36 9. Acknowledgments ................................................37
Top   ToC   RFC7195 - Page 3
   10. References ....................................................37
      10.1. Normative References .....................................37
      10.2. Informative References ...................................38

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 media transport protocols other 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 the 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. This document addresses only the use of circuit-switched bearers in the PSTN, not a generic circuit-switched network. The mechanisms presented below require a call signaling protocol of the PSTN to be used (such as ITU-T Q.931 [ITU.Q931.1998] or 3GPP TS 24.008 [TS.24.008]).
Top   ToC   RFC7195 - Page 4
   Setting up a signaling relationship in the IP domain instead of just
   setting up a circuit-switched call also offers 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 exchange of SDP offer/answer that leads to a renegotiation 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
   examples of circuit-switched audio or video streams in SDP.  Sections
   7 and 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.
Top   ToC   RFC7195 - Page 5

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. 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. In case correlation by programmatic means is not possible, correlation may also be performed by the human user. 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 [RFC4566] 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 reuses
Top   ToC   RFC7195 - Page 6
   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, Endpoint A is located in an environment where it has access to both IP and circuit-switched bearers for communicating with other endpoints. Endpoint A 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 a circuit-switched bearer. Endpoint A Endpoint B | (1) SDP offer (PSTN audio) | |----------------------------------->| | | | (2) SDP answer (PSTN audio) | |<-----------------------------------| | | | PSTN call setup | |<-----------------------------------| | | | | |<===== media over PSTN bearer =====>| | | Figure 1: Example Flow Endpoint B receives the SDP offer and determines that it is located in an environment where the IP-based bearer is not suitable for real- time audio media. However, Endpoint B also has a PSTN circuit- switched bearer available for audio. Endpoint B generates an SDP answer containing a description of the audio media stream over a circuit-switched bearer. During the offer/answer exchange, Endpoints A and B also agree upon the direction in which the circuit-switched bearer should be established. In this example, Endpoint B becomes the active party; in other words, it 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 the two endpoints.
Top   ToC   RFC7195 - Page 7
   Endpoint B establishes a circuit-switched bearer towards Endpoint A
   using whatever mechanisms are defined for the network type in
   question.  When receiving the incoming circuit-switched connection
   attempt, Endpoint A is able to determine that the attempt is related
   to the session it is just establishing with B.

   Endpoint A accepts the circuit-switched connection; the circuit-
   switched bearer setup is completed.  The two endpoints can now use
   the circuit-switched connection for two-way audio media.

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

5. Protocol Description

5.1. Level of Compliance

Implementations that are compliant with this specification MUST implement the SDP extensions described in Section 5.2 and MUST implement the considerations discussed in Sections 5.3, 5.4, and 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 <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.
Top   ToC   RFC7195 - Page 8
   For the address type, we initially considered 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.2010]
   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
   E.164 number allocated to it.  In these cases, a dash ("-") is used
   to indicate an unknown connection address.  This makes the connection
   data line consistent with SDP syntax.

   Please note that the "E164" address type defined in this memo is
   exclusively defined to be used in conjunction with the "PSTN" network
   type in accordance with regular offer/answer procedures [RFC4566].

      Note: RFC 3108 [RFC3108] also defines address type "E.164".  This
      definition is distinct from the one defined by this memo and shall
      not be used with <nettype> "PSTN".

   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 <connection-address> MUST NOT be omitted when unknown since
   this would violate basic syntax of SDP [RFC4566].  In such cases, it
   MUST be set to a "-".

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

      c=PSTN E164 +441134960123

      c=PSTN E164 -
Top   ToC   RFC7195 - Page 9
   When the <addrtype> is E164, the connection address is defined as
   follows:

   o  an international E.164 number (prepended with a '+' sign)

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

   o  any other value resulting from the production rule of connection-
      address in RFC 4566 [RFC4566], but in all cases any value
      encountered will be ignored.

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; 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].
Top   ToC   RFC7195 - Page 10
   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 reusing the conventions and payload type numbers defined
   for RTP / AVP.  The RTP audio and video media types, when applied to
   PSTN circuit-switched bearers, represent merely an audio or video
   codec.  If the endpoint is able to determine the list of available
   codecs for circuit-switched media streams, it MUST use the
   corresponding payload type numbers in the <fmt> subfield.

   In some cases, the endpoint is not able to determine the list of
   available codecs for circuit-switched media streams.  In this case,
   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. Additionally, we define a fourth mechanism where correlation may be performed by external means, typically by the human user, in case using other correlation mechanisms is not possible or does not succeed. Other correlation mechanisms may exist, and their usage will be specified when need arises.
Top   ToC   RFC7195 - Page 11
   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 Number 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-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 Multi-Frequency (DTMF) digits that will be later
   sent right after the circuit-switched bearer is established.

   The fourth correlation mechanism declares support for cases where
   correlation is done by external means.  Typically, this means that
   the decision is left to the human user.  This is how some current
   conferencing systems operate: after logging on to the conference, the
   system calls back to the user's phone number to establish audio
   communications, and it is up to the human user to accept or reject
   the incoming call.  By declaring explicit support for this mechanism,
   endpoints can use it only when such a possibility exists.

   Endpoints may opt to implement any combination of the correlation
   mechanisms specified in Sections 5.2.3.2, 5.2.3.3, 5.2.3.4, and
   5.2.3.5, including the option to implement none at all.

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". There MUST be at most one "cs-correlation" attribute per media description. This "cs-correlation" attribute MAY contain zero or more subfields -- "callerid", "uuie", "dtmf", or "external" to specify additional information required by the Caller ID, User-User Information Element, DTMF, or external correlation mechanisms, respectively. The list of correlation mechanisms may be extended by other specifications; see Section 5.2.3.6 for more details. The following sections provide more detailed information about these subfields.
Top   ToC   RFC7195 - Page 12
   The values "callerid", "uuie", "dtmf", and "external" refer to the
   correlation mechanisms defined in Sections 5.2.3.2, 5.2.3.3, 5.2.3.4,
   and 5.2.3.5, 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 mechanism 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. An example of inclusion of an international E.164 number in the "cs-correlation" attribute is: 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: * The endpoint might not be aware of its own E.164 number, in which case it cannot populate the SDP appropriately. * 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. * 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, due to, e.g., lack of country code. 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-496-0123 and 0113-496-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,
Top   ToC   RFC7195 - Page 13
         for the purpose of displaying the caller's name.  Please refer
         to ITU-T E.164 recommendation [ITU.E164.2010] for consideration
         of the relevant number of digits to consider.

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. 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.Q931.1998]). 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.
Top   ToC   RFC7195 - Page 14
   Once the binary value of the "uuie" subfield in the "cs-correlation"
   attribute is created, it MUST be base 16 (also known as "hex")
   encoded before it is inserted in SDP.  Please refer to RFC 4648
   [RFC4648] for a detailed description of base 16 encoding.  The
   resulting encoded value needs to have an even number of hexadecimal
   digits and MUST be considered invalid if it has an odd number.

      Note: 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 "A Mechanism
      for Transporting User to User Call Control Information in SIP"
      [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
   include an "a=cs-correlation" attribute line as follows:

      a=cs-correlation:uuie:56A390F3D2B7310023

   Note that 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 a 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 DTMF tones as described in ITU-T Recommendation Q.23 [ITU.Q23.1988] 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
Top   ToC   RFC7195 - Page 15
   the session described in the SDP.  The mechanism is similar to many
   voice conferencing systems that 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.

      Note: Implementations are advised to select a number of DTMF
      digits that provide enough assurance that the call is related but
      do not prolong the bearer setup time unnecessarily.  A number of 5
      to 10 digits is a good compromise.

   As an example, an endpoint willing to send DTMF tone sequence "14D*3"
   would include an "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 consider that this DTMF mechanism has failed to correlate the
   incoming call.

5.2.3.5. External Correlation Mechanism
The fourth correlation mechanism relies on external means for correlating the incoming call to the session. Since endpoints can select which correlation mechanisms they support, it may happen that no other common correlation mechanism is found or that the selected correlation mechanism does not succeed due to the required feature not being supported by the underlying PSTN network. In these cases, the human user can make the decision to accept or reject the incoming call, thus "correlating" the call with the session. Since not all endpoints are operated by a human user and since there may be no
Top   ToC   RFC7195 - Page 16
   other external means implemented by the endpoint for the correlation
   function, we explicitly define support for such an external
   correlation mechanism.

   Endpoints wishing to use this external correlation mechanism would
   use the "external" subfield in the "cs-correlation" attribute.
   Unlike the other three correlation mechanisms, the "external"
   subfield does not accept a value.  The following is an example of an
   "a=cs-correlation" attribute line:

      a=cs-correlation:external

   Endpoints that are willing to only use the three explicit correlation
   mechanisms defined in this document ("callerid", "uuie", and/or
   "dtmf") would not include the "external" mechanism in the
   offer/answer exchange.

   The external correlation mechanism typically relies on the human user
   to make the decision on whether or not the call is related to the
   ongoing session.  After the user accepts the call, that bearer is
   considered as related to the session.  There is a small chance that
   the user receives at the same time another circuit-switched call that
   is not related to the ongoing session.  The user may reject this call
   if he is able to determine (e.g., based on the calling line
   identification) that the call is not related to the session and
   continue waiting for another call attempt.  If the user accepts the
   incoming circuit-switched call, but it turns out to be not related to
   the session, the endpoints need to rely on the human user to take
   appropriate action (typically, the user would hang up).

5.2.3.6. 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 the 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.


(next page on part 2)

Next Section