< draft-ietf-mmusic-sdp-cs-17.txt | draft-ietf-mmusic-sdp-cs-18.txt > | |||
---|---|---|---|---|
MMUSIC WG M. Garcia-Martin | MMUSIC WG M. Garcia-Martin | |||
Internet-Draft Ericsson | Internet-Draft Ericsson | |||
Intended status: Standards Track S. Veikkolainen | Intended status: Standards Track S. Veikkolainen | |||
Expires: July 18, 2013 Nokia | Expires: October 27, 2013 Nokia | |||
January 14, 2013 | April 25, 2013 | |||
Session Description Protocol (SDP) Extension For Setting Up Audio and | Session Description Protocol (SDP) Extension For Setting Up Audio and | |||
Video Media Streams Over Circuit-Switched Bearers In The Public Switched | Video Media Streams Over Circuit-Switched Bearers In The Public Switched | |||
Telephone Network (PSTN) | Telephone Network (PSTN) | |||
draft-ietf-mmusic-sdp-cs-17 | draft-ietf-mmusic-sdp-cs-18 | |||
Abstract | Abstract | |||
This memo describes use cases, requirements, and protocol extensions | This memo describes use cases, requirements, and protocol extensions | |||
for using the Session Description Protocol (SDP) Offer/Answer model | for using the Session Description Protocol (SDP) Offer/Answer model | |||
for establishing audio and video media streams over circuit-switched | for establishing audio and video media streams over circuit-switched | |||
bearers in the Public Switched Telephone Network (PSTN). | bearers in the Public Switched Telephone Network (PSTN). | |||
Status of this Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on July 18, 2013. | This Internet-Draft will expire on October 27, 2013. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2013 IETF Trust and the persons identified as the | Copyright (c) 2013 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Conventions Used in This Document . . . . . . . . . . . . . . 6 | 2. Conventions Used in This Document . . . . . . . . . . . . . . 4 | |||
3. Requirements . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 3. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
4. Overview of Operation . . . . . . . . . . . . . . . . . . . . 7 | 4. Overview of Operation . . . . . . . . . . . . . . . . . . . . 5 | |||
4.1. Example Call Flow . . . . . . . . . . . . . . . . . . . . 7 | 4.1. Example Call Flow . . . . . . . . . . . . . . . . . . . . 5 | |||
5. Protocol Description . . . . . . . . . . . . . . . . . . . . . 9 | 5. Protocol Description . . . . . . . . . . . . . . . . . . . . 7 | |||
5.1. Level of Compliance . . . . . . . . . . . . . . . . . . . 9 | 5.1. Level of Compliance . . . . . . . . . . . . . . . . . . . 7 | |||
5.2. Extensions to SDP . . . . . . . . . . . . . . . . . . . . 9 | 5.2. Extensions to SDP . . . . . . . . . . . . . . . . . . . . 7 | |||
5.2.1. Connection Data . . . . . . . . . . . . . . . . . . . 9 | 5.2.1. Connection Data . . . . . . . . . . . . . . . . . . . 7 | |||
5.2.2. Media Descriptions . . . . . . . . . . . . . . . . . . 11 | 5.2.2. Media Descriptions . . . . . . . . . . . . . . . . . 8 | |||
5.2.3. Correlating the PSTN Circuit-Switched Bearer with | 5.2.3. Correlating the PSTN Circuit-Switched Bearer with SDP 10 | |||
SDP . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 5.2.3.1. The "cs-correlation" attribute . . . . . . . . . 11 | |||
5.2.3.1. The "cs-correlation" attribute . . . . . . . . . . 13 | 5.2.3.2. Caller-ID Correlation Mechanism . . . . . . . . . 11 | |||
5.2.3.2. Caller-ID Correlation Mechanism . . . . . . . . . 13 | ||||
5.2.3.3. User-User Information Element Correlation | 5.2.3.3. User-User Information Element Correlation | |||
Mechanism . . . . . . . . . . . . . . . . . . . . 14 | Mechanism . . . . . . . . . . . . . . . . . . . . 12 | |||
5.2.3.4. DTMF Correlation Mechanism . . . . . . . . . . . . 16 | 5.2.3.4. DTMF Correlation Mechanism . . . . . . . . . . . 14 | |||
5.2.3.5. Extensions to correlation mechanisms . . . . . . . 17 | 5.2.3.5. Extensions to correlation mechanisms . . . . . . 15 | |||
5.3. Negotiating the correlation mechanisms . . . . . . . . . . 17 | 5.3. Negotiating the correlation mechanisms . . . . . . . . . 15 | |||
5.3.1. Determining the Direction of the Circuit-Switched | 5.3.1. Determining the Direction of the Circuit-Switched | |||
Bearer Setup . . . . . . . . . . . . . . . . . . . . . 17 | Bearer Setup . . . . . . . . . . . . . . . . . . . . 15 | |||
5.3.2. Populating the cs-correlation attribute . . . . . . . 18 | 5.3.2. Populating the cs-correlation attribute . . . . . . . 16 | |||
5.3.3. Considerations on correlations . . . . . . . . . . . . 19 | 5.3.3. Considerations on correlations . . . . . . . . . . . 17 | |||
5.4. Considerations for Usage of Existing SDP . . . . . . . . . 19 | 5.4. Considerations for Usage of Existing SDP . . . . . . . . 18 | |||
5.4.1. Originator of the Session . . . . . . . . . . . . . . 19 | 5.4.1. Originator of the Session . . . . . . . . . . . . . . 18 | |||
5.4.2. Contact information . . . . . . . . . . . . . . . . . 20 | 5.4.2. Contact information . . . . . . . . . . . . . . . . . 18 | |||
5.5. Considerations for Usage of Third Party Call Control | 5.5. Considerations for Usage of Third Party Call Control | |||
(3PCC) . . . . . . . . . . . . . . . . . . . . . . . . . . 20 | (3PCC) . . . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
5.6. Offer/Answer mode extensions . . . . . . . . . . . . . . . 21 | 5.6. Offer/Answer mode extensions . . . . . . . . . . . . . . 19 | |||
5.6.1. Generating the Initial Offer . . . . . . . . . . . . . 21 | 5.6.1. Generating the Initial Offer . . . . . . . . . . . . 19 | |||
5.6.2. Generating the Answer . . . . . . . . . . . . . . . . 23 | 5.6.2. Generating the Answer . . . . . . . . . . . . . . . . 21 | |||
5.6.3. Offerer processing the Answer . . . . . . . . . . . . 26 | 5.6.3. Offerer processing the Answer . . . . . . . . . . . . 24 | |||
5.6.4. Modifying the session . . . . . . . . . . . . . . . . 27 | 5.6.4. Modifying the session . . . . . . . . . . . . . . . . 25 | |||
5.7. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . 27 | 5.7. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . 26 | |||
6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 | 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 27 | |||
6.1. Single PSTN audio stream . . . . . . . . . . . . . . . . . 29 | 6.1. Single PSTN audio stream . . . . . . . . . . . . . . . . 27 | |||
6.2. Advanced SDP example: Circuit-Switched Audio and Video | 6.2. Advanced SDP example: Circuit-Switched Audio and | |||
Streams . . . . . . . . . . . . . . . . . . . . . . . . . 31 | Video Streams . . . . . . . . . . . . . . . . . . . . . . 29 | |||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 32 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 30 | |||
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 33 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 31 | |||
8.1. Registration of new cs-correlation SDP attribute . . . . . 33 | 8.1. Registration of new cs-correlation SDP attribute . . . . 31 | |||
8.2. Registration of a new "nettype" value . . . . . . . . . . 34 | 8.2. Registration of a new "nettype" value . . . . . . . . . . 32 | |||
8.3. Registration of new "addrtype" values . . . . . . . . . . 34 | 8.3. Registration of new "addrtype" values . . . . . . . . . . 32 | |||
8.4. Registration of a new "proto" value . . . . . . . . . . . 34 | 8.4. Registration of a new "proto" value . . . . . . . . . . . 33 | |||
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 35 | ||||
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 35 | 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 33 | |||
10.1. Normative References . . . . . . . . . . . . . . . . . . . 35 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 33 | |||
10.2. Informative References . . . . . . . . . . . . . . . . . . 36 | 10.1. Normative References . . . . . . . . . . . . . . . . . . 33 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 37 | 10.2. Informative References . . . . . . . . . . . . . . . . . 34 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35 | ||||
1. Introduction | 1. Introduction | |||
The Session Description Protocol (SDP) [RFC4566] is intended for | The Session Description Protocol (SDP) [RFC4566] is intended for | |||
describing multimedia sessions for the purposes of session | describing multimedia sessions for the purposes of session | |||
announcement, session invitation, and other forms of multimedia | announcement, session invitation, and other forms of multimedia | |||
session initiation. SDP is most commonly used for describing media | session initiation. SDP is most commonly used for describing media | |||
streams that are transported over the Real-Time Transport Protocol | streams that are transported over the Real-Time Transport Protocol | |||
(RTP) [RFC3550], using the profiles for audio and video media defined | (RTP) [RFC3550], using the profiles for audio and video media defined | |||
in RTP Profile for Audio and Video Conferences with Minimal Control | in RTP Profile for Audio and Video Conferences with Minimal Control | |||
skipping to change at page 6, line 43 | skipping to change at page 4, line 49 | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
14, RFC 2119 [RFC2119] and indicate requirement levels for compliant | 14, RFC 2119 [RFC2119] and indicate requirement levels for compliant | |||
implementations. | implementations. | |||
3. Requirements | 3. Requirements | |||
This section presents the general requirements that are specific for | This section presents the general requirements that are specific for | |||
the audio or video media streams over circuit-switched bearers. | the audio or video media streams over circuit-switched bearers. | |||
REQ-1: A mechanism for endpoints to negotiate and agree on an audio | REQ-1: A mechanism for endpoints to negotiate and agree on an audio | |||
or video media stream established over a circuit-switched | or video media stream established over a circuit-switched bearer | |||
bearer MUST be available. | MUST be available. | |||
REQ-2: The mechanism MUST allow the endpoints to combine circuit- | REQ-2: The mechanism MUST allow the endpoints to combine circuit- | |||
switched audio or video media streams with other | switched audio or video media streams with other complementary | |||
complementary media streams, for example, text messaging. | media streams, for example, text messaging. | |||
REQ-3: The mechanism MUST allow the endpoint to negotiate the | REQ-3: The mechanism MUST allow the endpoint to negotiate the | |||
direction of the circuit-switched bearer, i.e., which | direction of the circuit-switched bearer, i.e., which endpoint is | |||
endpoint is active when initiating the circuit-switched | active when initiating the circuit-switched bearer. | |||
bearer. | ||||
REQ-4: The mechanism MUST be independent of the type of the circuit- | REQ-4: The mechanism MUST be independent of the type of the circuit- | |||
switched access (e.g., Integrated Services Digital Network | switched access (e.g., Integrated Services Digital Network (ISDN), | |||
(ISDN), Global System for Mobile Communication (GSM), etc.) | Global System for Mobile Communication (GSM), etc.) | |||
REQ-5: There MUST be a mechanism that helps an endpoint to correlate | REQ-5: There MUST be a mechanism that helps an endpoint to correlate | |||
an incoming circuit-switched bearer with the one negotiated | an incoming circuit-switched bearer with the one negotiated in | |||
in SDP, as opposed to another incoming call that is not | SDP, as opposed to another incoming call that is not related to | |||
related to that. | that. | |||
REQ-6: It MUST be possible for endpoints to advertise different | REQ-6: It MUST be possible for endpoints to advertise different | |||
lists of audio or video codecs in the circuit-switched audio | lists of audio or video codecs in the circuit-switched audio or | |||
or video stream from those used in a packet-switched audio or | video stream from those used in a packet-switched audio or video | |||
video stream. | stream. | |||
REQ-7: It MUST be possible for endpoints to not advertise the list | REQ-7: It MUST be possible for endpoints to not advertise the list | |||
of available codecs for circuit-switched audio or video | of available codecs for circuit-switched audio or video streams. | |||
streams. | ||||
4. Overview of Operation | 4. Overview of Operation | |||
The mechanism defined in this memo extends SDP and allows describing | The mechanism defined in this memo extends SDP and allows describing | |||
an audio or video media stream established over a circuit-switched | an audio or video media stream established over a circuit-switched | |||
bearer. A new network type ("PSTN") and a new protocol type ("PSTN") | 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 | are defined for the "c=" and "m=" lines to be able to describe a | |||
media stream over a circuit-switched bearer. These SDP extensions | media stream over a circuit-switched bearer. These SDP extensions | |||
are described in Section 5.2. Since circuit-switched bearers are | are described in Section 5.2. Since circuit-switched bearers are | |||
connection-oriented media streams, the mechanism re-uses the | connection-oriented media streams, the mechanism re-uses the | |||
skipping to change at page 8, line 5 | skipping to change at page 6, line 5 | |||
4.1. Example Call Flow | 4.1. Example Call Flow | |||
Consider the example presented in Figure 1. In this example, Alice | Consider the example presented in Figure 1. In this example, Alice | |||
is located in an environment where she has access to both IP and | is located in an environment where she has access to both IP and | |||
circuit-switched bearers for communicating with other endpoints. | circuit-switched bearers for communicating with other endpoints. | |||
Alice decides that the circuit-switched bearer offers a better | Alice decides that the circuit-switched bearer offers a better | |||
perceived quality of service for voice, and issues an SDP Offer | perceived quality of service for voice, and issues an SDP Offer | |||
containing the description of an audio media stream over circuit- | containing the description of an audio media stream over circuit- | |||
switched bearer. | switched bearer. | |||
Alice Bob | Alice Bob | |||
| (1) SDP Offer (PSTN audio) | | | (1) SDP Offer (PSTN audio) | | |||
|----------------------------------->| | |----------------------------------->| | |||
| | | | | | |||
| (2) SDP Answer (PSTN audio) | | | (2) SDP Answer (PSTN audio) | | |||
|<-----------------------------------| | |<-----------------------------------| | |||
| | | | | | |||
| PSTN call setup | | | PSTN call setup | | |||
|<-----------------------------------| | |<-----------------------------------| | |||
| | | | | | |||
| | | | | | |||
|<===== media over PSTN bearer =====>| | |<===== media over PSTN bearer =====>| | |||
| | | | | | |||
Figure 1: Example Flow | Figure 1: Example Flow | |||
Bob receives the SDP offer and determines that he is located in an | 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 | environment where the IP based bearer is not suitable for real-time | |||
audio media. However he also has PSTN circuit-switched bearer | audio media. However he also has PSTN circuit-switched bearer | |||
available for audio. Bob generates an SDP answer containing a | available for audio. Bob generates an SDP answer containing a | |||
description of the audio media stream over a circuit-switched bearer. | description of the audio media stream over a circuit-switched bearer. | |||
During the offer-answer exchange Alice and Bob also agree the | During the offer-answer exchange Alice and Bob also agree the | |||
skipping to change at page 10, line 36 | skipping to change at page 8, line 36 | |||
when unknown since this would violate basic syntax of SDP [RFC4566]. | when unknown since this would violate basic syntax of SDP [RFC4566]. | |||
In such cases, they MUST be set to a "-". | In such cases, they MUST be set to a "-". | |||
The following are examples of the extension to the connection data | The following are examples of the extension to the connection data | |||
line: | line: | |||
c=PSTN E164 +441134960123 | c=PSTN E164 +441134960123 | |||
c=PSTN - - | c=PSTN - - | |||
When the <addrtype> is PSTN, the connection address is defined as | When the <addrtype> is E164, the connection address is defined as | |||
follows: | follows: | |||
o an international E.164 number | o an international E.164 number | |||
When the <addrtype> is "-", the connection address is defined as | When the <addrtype> is "-", the connection address is defined as | |||
follows: | follows: | |||
o the value "-", signifying that the address is unknown | o the value "-", signifying that the address is unknown | |||
o any syntactically valid value, which is to be ignored | o any value resulting from the production rule of connection-address | |||
in RFC4566 [RFC4566], but in all cases any value encountered will | ||||
be ignored. | ||||
5.2.2. Media Descriptions | 5.2.2. Media Descriptions | |||
According to SDP [RFC4566], the media description line in SDP has the | According to SDP [RFC4566], the media description line in SDP has the | |||
following syntax: | following syntax: | |||
m=<media> <port> <proto> <fmt> ... | m=<media> <port> <proto> <fmt> ... | |||
The <media> subfield carries the media type. For establishing an | The <media> subfield carries the media type. For establishing an | |||
audio bearer, the existing "audio" media type is used. For | audio bearer, the existing "audio" media type is used. For | |||
establishing a video bearer, the existing "video" media type is used. | establishing a video bearer, the existing "video" media type is used. | |||
The <port> subfield is the transport port to which the media stream | The <port> subfield is the transport port to which the media stream | |||
skipping to change at page 11, line 48 | skipping to change at page 9, line 45 | |||
subfield is set to "RTP/AVP" or "RTP/SAVP", the <fmt> subfield | subfield is set to "RTP/AVP" or "RTP/SAVP", the <fmt> subfield | |||
contains the payload types as defined in the RTP audio profile | contains the payload types as defined in the RTP audio profile | |||
[RFC3551]. | [RFC3551]. | |||
When "RTP/AVP" is used in the <proto> field, the <fmt> subfield | When "RTP/AVP" is used in the <proto> field, the <fmt> subfield | |||
contains the RTP payload type numbers. We use the <fmt> subfield to | contains the RTP payload type numbers. We use the <fmt> subfield to | |||
indicate the list of available codecs over the circuit-switched | indicate the list of available codecs over the circuit-switched | |||
bearer, by re-using the conventions and payload type numbers defined | bearer, by re-using the conventions and payload type numbers defined | |||
for RTP/AVP. The RTP audio and video media types, which, when | for RTP/AVP. The RTP audio and video media types, which, when | |||
applied to PSTN circuit-switched bearers, represent merely an audio | applied to PSTN circuit-switched bearers, represent merely an audio | |||
or video codec. The endpoint SHOULD only use those payload type | or video codec. If the endpoint is able to determine the list of | |||
whose corresponding codecs is available for PSTN media streams. | 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 | In some cases, the endpoint is not able to determine the list of | |||
available codecs for circuit-switched media streams. In this case, | available codecs for circuit-switched media streams. In this case, | |||
in order to be syntactically compliant with SDP [RFC4566], the | in order to be syntactically compliant with SDP [RFC4566], the | |||
endpoint MUST include a single dash ("-") in the <fmt> subfield. | endpoint MUST include a single dash ("-") in the <fmt> subfield. | |||
As per RFC 4566 [RFC4566], the media format descriptions are listed | As per RFC 4566 [RFC4566], the media format descriptions are listed | |||
in priority order. | in priority order. | |||
Examples of media descriptions for circuit-switched audio streams | Examples of media descriptions for circuit-switched audio streams | |||
skipping to change at page 13, line 21 | skipping to change at page 11, line 24 | |||
a new media-level SDP attribute called "cs-correlation". This "cs- | a new media-level SDP attribute called "cs-correlation". This "cs- | |||
correlation" attribute can include any of the "callerid", "uuie", or | correlation" attribute can include any of the "callerid", "uuie", or | |||
"dtmf" subfields, which specify additional information required by | "dtmf" subfields, which specify additional information required by | |||
the Caller-ID, User to User Information, or DTMF correlation | the Caller-ID, User to User Information, or DTMF correlation | |||
mechanisms, respectively. The list of correlation mechanisms may be | mechanisms, respectively. The list of correlation mechanisms may be | |||
extended by other specifications, see Section 5.2.3.5 for more | extended by other specifications, see Section 5.2.3.5 for more | |||
details. There MUST be at most one "cs-correlation" attribute per | details. There MUST be at most one "cs-correlation" attribute per | |||
media description. | media description. | |||
The following sections provide more detailed information of these | The following sections provide more detailed information of these | |||
subfields. Section 5.7> defined the formal syntax. | subfields. | |||
The values "callerid", "uuie" and "dtmf" refer to the correlation | The values "callerid", "uuie" and "dtmf" refer to the correlation | |||
mechanisms defined in Section 5.2.3.2, Section 5.2.3.3, and | 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 | Section 5.2.3.4, respectively. The formal Augmented Backus-Naur | |||
Format (ABNF) syntax of the "cs-correlation" attribute is presented | Format (ABNF) syntax of the "cs-correlation" attribute is presented | |||
in Section 5.7. | in Section 5.7. | |||
5.2.3.2. Caller-ID Correlation Mechanism | 5.2.3.2. Caller-ID Correlation Mechanism | |||
The Caller-ID correlation mechanisms consists of an exchange of the | The Caller-ID correlation mechanisms consists of an exchange of the | |||
skipping to change at page 16, line 15 | skipping to change at page 14, line 34 | |||
controlled by the PSTN circuit-switched call protocol, which might | controlled by the PSTN circuit-switched call protocol, which might | |||
not offer enough freedom for generating different values from one | not offer enough freedom for generating different values from one | |||
endpoint to another one, or from one call to another in the same | 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 | endpoint. This might result in the same value of the User-User | |||
Information Element for all calls. | Information Element for all calls. | |||
5.2.3.4. DTMF Correlation Mechanism | 5.2.3.4. DTMF Correlation Mechanism | |||
We introduce a third mechanism for correlating the circuit-switched | We introduce a third mechanism for correlating the circuit-switched | |||
bearer with the session described with SDP. This is based on | bearer with the session described with SDP. This is based on | |||
agreeing on a sequence of digits that are negotiated in the SDP | agreeing on a sequence of digits that are negotiated in the SDP Offer | |||
Offer/Answer exchange and sent as Dual Tone Multifrequency (DTMF) | /Answer exchange and sent as Dual Tone Multifrequency (DTMF) tones | |||
tones over the circuit-switched bearer once this bearer is | over the circuit-switched bearer once this bearer is established. If | |||
established. If the DTMF digit sequence received through the | the DTMF digit sequence received through the circuit-switched bearer | |||
circuit-switched bearer matches the digit string negotiated in the | matches the digit string negotiated in the SDP, the circuit-switched | |||
SDP, the circuit-switched bearer is correlated with the session | bearer is correlated with the session described in the SDP. The | |||
described in the SDP. The mechanism is similar to many voice | mechanism is similar to many voice conferencing systems which require | |||
conferencing systems which require the user to enter a PIN code using | the user to enter a PIN code using DTMF tones in order to be accepted | |||
DTMF tones in order to be accepted in a voice conference. | in a voice conference. | |||
The mechanism works as follows: An endpoint selects a DTMF digit | The mechanism works as follows: An endpoint selects a DTMF digit | |||
sequence. The same sequence is included in the SDP offer or SDP | sequence. The same sequence is included in the SDP offer or SDP | |||
answer, in a "dtmf" subfield of the "cs-correlation" attribute. When | answer, in a "dtmf" subfield of the "cs-correlation" attribute. When | |||
the SDP Offer/Answer exchange is completed, each endpoint has become | the SDP Offer/Answer exchange is completed, each endpoint has become | |||
aware of the DTMF sequence that will be sent right after the circuit- | aware of the DTMF sequence that will be sent right after the circuit- | |||
switched bearer is set up. The endpoint that initiates the call | switched bearer is set up. The endpoint that initiates the call | |||
setup attempt sends the DTMF digits according to the procedures | setup attempt sends the DTMF digits according to the procedures | |||
defined for the circuit-switched bearer technology used. The | defined for the circuit-switched bearer technology used. The | |||
recipient (passive side of the bearer setup) of the call setup | recipient (passive side of the bearer setup) of the call setup | |||
skipping to change at page 17, line 32 | skipping to change at page 16, line 4 | |||
5.3. Negotiating the correlation mechanisms | 5.3. Negotiating the correlation mechanisms | |||
The three correlation mechanisms presented above (based on called | The three correlation mechanisms presented above (based on called | |||
party number, User-User Information Element and DTMF digit sending) | party number, User-User Information Element and DTMF digit sending) | |||
are non-exclusive, and can be used independently of each other. In | are non-exclusive, and can be used independently of each other. In | |||
order to know how to populate the "cs-correlation" attribute, the | order to know how to populate the "cs-correlation" attribute, the | |||
endpoints need to agree which endpoint will become the active party, | endpoints need to agree which endpoint will become the active party, | |||
i.e., the one that will set up the circuit-switched bearer. | i.e., the one that will set up the circuit-switched bearer. | |||
5.3.1. Determining the Direction of the Circuit-Switched Bearer Setup | 5.3.1. Determining the Direction of the Circuit-Switched Bearer Setup | |||
In order to avoid a situation where both endpoints attempt to | In order to avoid a situation where both endpoints attempt to | |||
initiate a connection simultaneously, the direction in which the | initiate a connection simultaneously, the direction in which the | |||
circuit-switched bearer is set up MUST be negotiated during the | circuit-switched bearer is set up MUST be negotiated during the Offer | |||
Offer/Answer exchange. | /Answer exchange. | |||
The framework defined in RFC 4145 [RFC4145] allows the endpoints to | The framework defined in RFC 4145 [RFC4145] allows the endpoints to | |||
agree which endpoint acts as the active endpoint when initiating a | agree which endpoint acts as the active endpoint when initiating a | |||
TCP connection. While RFC 4145 [RFC4145] was originally designed for | TCP connection. While RFC 4145 [RFC4145] was originally designed for | |||
establishing TCP connections, it can be easily extrapolated to the | establishing TCP connections, it can be easily extrapolated to the | |||
connection establishment of circuit-switched bearers. This | connection establishment of circuit-switched bearers. This | |||
specification uses the concepts specified in RFC 4145 [RFC4145] for | specification uses the concepts specified in RFC 4145 [RFC4145] for | |||
agreeing on the direction of establishment of a circuit-switched | agreeing on the direction of establishment of a circuit-switched | |||
bearer. | bearer. | |||
skipping to change at page 19, line 11 | skipping to change at page 17, line 27 | |||
MUST include all correlation mechanisms it supports in the "a=cs- | MUST include all correlation mechanisms it supports in the "a=cs- | |||
correlation" attribute, and MUST also specify values for the | correlation" attribute, and MUST also specify values for the | |||
subfields. | subfields. | |||
5.3.3. Considerations on correlations | 5.3.3. Considerations on correlations | |||
Passive endpoints should expect an incoming CS call for setting up | Passive endpoints should expect an incoming CS call for setting up | |||
the audio bearer. Passive endpoints MAY suppress the incoming CS | the audio bearer. Passive endpoints MAY suppress the incoming CS | |||
alert during a certain time periods. Additional restrictions can be | alert during a certain time periods. Additional restrictions can be | |||
applied, such as the passive endpoint not alerting incoming calls | applied, such as the passive endpoint not alerting incoming calls | |||
originated from the number that was observed uduring the offer/answer | originated from the number that was observed during the offer/answer | |||
negotiation. | negotiation. | |||
Note that it cannot be guaranteed that any given correlation | Note that it cannot be guaranteed that any given correlation | |||
mechanism will succeed even if the usage of those was agreed | mechanism will succeed even if the usage of those was agreed | |||
beforehand. This is due to the fact that the correlation mechanisms | beforehand. This is due to the fact that the correlation mechanisms | |||
require support from the circuit-switched bearer technology used. | require support from the circuit-switched bearer technology used. | |||
Therefore, even a single positive indication using any of these | Therefore, even a single positive indication using any of these | |||
mechanisms SHOULD be interpreted by the passive endpoint so that the | mechanisms SHOULD be interpreted by the passive endpoint so that the | |||
circuit-switched bearer establishment is related to the ongoing | circuit-switched bearer establishment is related to the ongoing | |||
skipping to change at page 20, line 29 | skipping to change at page 18, line 46 | |||
SDP [RFC4566] defines the "p=" line which may include the phone | SDP [RFC4566] defines the "p=" line which may include the phone | |||
number of the person responsible for the conference. Even though | number of the person responsible for the conference. Even though | |||
this line can carry a phone number, it is not suited for the purpose | 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 | of defining a connection address for the media. Therefore, we have | |||
selected to define the PSTN specific connection addresses in the "c=" | selected to define the PSTN specific connection addresses in the "c=" | |||
line. | line. | |||
5.5. Considerations for Usage of Third Party Call Control (3PCC) | 5.5. Considerations for Usage of Third Party Call Control (3PCC) | |||
Best Current Practices for Third Party Call Control (3pcc) in the | Best Current Practices for Third Party Call Control (3pcc) in the | |||
Session Initiation Protocol (SIP) [RFC3725] outlines several flows | Session Initiation Protocol (SIP) [RFC3725] outlines several flows | |||
which are possible in third party call control scenarios and | which are possible in third party call control scenarios and | |||
recommends some flows for specific situations. | recommends some flows for specific situations. | |||
One of the assumptions in [RFC3725] is that an SDP Offer may include | One of the assumptions in [RFC3725] is that an SDP Offer may include | |||
a "black hole" connection address, which has the property that | a "black hole" connection address, which has the property that | |||
packets sent to it will never leave the host which sent them. For | 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 | IPv4, this "black hole" connection address is 0.0.0.0, or a domain | |||
name within the .invalid DNS top level domain. | name within the .invalid DNS top level domain. | |||
When using an E.164 address scheme in the context of third-party call | When using an E.164 address scheme in the context of third-party call | |||
skipping to change at page 21, line 32 | skipping to change at page 19, line 45 | |||
In the "m=" line, the endpoint MUST set the <media> subfield to | In the "m=" line, the endpoint MUST set the <media> subfield to | |||
"audio" or "video", depending on the media type, and the <proto> | "audio" or "video", depending on the media type, and the <proto> | |||
subfield to "PSTN". The <port> subfield SHOULD be set to "9" (the | subfield to "PSTN". The <port> subfield SHOULD be set to "9" (the | |||
discard port). | discard port). | |||
The <fmt> subfield carries the payload type number(s) the endpoint is | The <fmt> subfield carries the payload type number(s) the endpoint is | |||
wishing to use. Payload type numbers in this case refer to the | 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 | 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 | 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 | 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 | types MUST only contain those codecs the endpoint is able to use on | |||
the PSTN bearer. In case the endpoint is not aware of the codecs | the PSTN bearer. In case the endpoint is not aware of the codecs | |||
available for the circuit-switched media streams, it MUST include a | available for the circuit-switched media streams, it MUST include a | |||
dash ("-") in the <fmt> subfield. | dash ("-") in the <fmt> subfield. | |||
For dynamic payload types, the endpoint MUST define the set of valid | For dynamic payload types, the endpoint MUST define the set of valid | |||
encoding names and related parameters using the "a=rtpmap" attribute | encoding names and related parameters using the "a=rtpmap" attribute | |||
line. See Section 6 of SDP [RFC4566] for details. | line. See Section 6 of SDP [RFC4566] for details. | |||
When generating the Offer, if the Offerer supports any of the | When generating the Offer, if the Offerer supports any of the | |||
correlation mechanisms defined in this memo, it MUST include an | correlation mechanisms defined in this memo, it MUST include an | |||
skipping to change at page 22, line 19 | skipping to change at page 20, line 35 | |||
o the international E.164 number as the value in the "callerid" | o the international E.164 number as the value in the "callerid" | |||
subfield, | subfield, | |||
o the contents of the User-User information element as the value of | o the contents of the User-User information element as the value of | |||
the "uuie" subfield, and/or | the "uuie" subfield, and/or | |||
o the DTMF tone string as the value of the "dtmf" subfield | 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 | If the Offerer is only able to become the passive party in the | |||
circuit-switched bearer setup, it MUST add the "callerid", "uuie" | circuit-switched bearer setup, it MUST add at least one of the | |||
and/or "dtmf" subfields, but MUST NOT specify values for those | possible correlation mechanisms, but MUST NOT specify values for | |||
subfields. | those subfields. | |||
For example, if the Offerer is willing to use the User-User | For example, if the Offerer is willing to use the User-User | |||
Information element and DTMF digit sending mechanisms, but can only | Information element and DTMF digit sending mechanisms, but can only | |||
become the passive party, it includes the following lines in the SDP: | become the passive party, it includes the following lines in the SDP: | |||
a=cs-correlation:uuie dtmf | a=cs-correlation:uuie dtmf | |||
a=setup:passive | a=setup:passive | |||
If, on the other hand, the Offerer is willing to use the User-User | If, on the other hand, the Offerer is willing to use the User-User | |||
skipping to change at page 23, line 24 | skipping to change at page 21, line 38 | |||
The Offerer uses the "a=connection" attribute to decide whether a new | The Offerer uses the "a=connection" attribute to decide whether a new | |||
circuit-switched bearer is to be established or not. For the initial | circuit-switched bearer is to be established or not. For the initial | |||
Offer, the Offerer MUST use value 'new'. | Offer, the Offerer MUST use value 'new'. | |||
5.6.2. Generating the Answer | 5.6.2. Generating the Answer | |||
If the Offer contained a circuit-switched audio or video stream, the | If the Offer contained a circuit-switched audio or video stream, the | |||
Answerer first determines whether it is able to accept and use such | Answerer first determines whether it is able to accept and use such | |||
streams. If the Answerer is not willing to use circuit-switched | streams. If the Answerer is not willing to use circuit-switched | |||
media for the session, it MUST construct an Answer where the port | 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 | number for such media stream(s) is set to zero, according to | |||
6 of An Offer/Answer Model with the Session Description Protocol | Section 6 of An Offer/Answer Model with the Session Description | |||
(SDP) [RFC3264]. If the Answerer is willing to use circuit-switched | Protocol (SDP) [RFC3264]. If the Answerer is willing to use circuit- | |||
media for the session, it MUST ignore the received port number | switched media for the session, it MUST ignore the received port | |||
(unless the port number is set to zero). | number (unless the port number is set to zero). | |||
If the Offer included a "-" as the payload type number, it indicates | If the Offer included a "-" as the payload type number, it indicates | |||
that the Offerer is not willing or able to define any specific | that the Offerer is not willing or able to define any specific | |||
payload type. Most often, a "-" is expected to be used instead of | 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 | 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- | define the codecs which will eventually be used on the circuit- | |||
switched bearer. The circuit-switched signaling protocols have their | switched bearer. The circuit-switched signaling protocols have their | |||
own means of negotiating or indicating the codecs, therefore an | own means of negotiating or indicating the codecs, therefore an | |||
Answerer SHOULD accept such Offers, and SHOULD set the payload type | Answerer SHOULD accept such Offers, and SHOULD set the payload type | |||
to "-" also in the Answer. | to "-" also in the Answer. | |||
skipping to change at page 24, line 31 | skipping to change at page 23, line 7 | |||
international E.164 number in the "c=" line, the Answerer SHOULD | international E.164 number in the "c=" line, the Answerer SHOULD | |||
become the active party. If the Offer does not include an E.164 | 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, and if the Answerer is aware of its international E.164 | |||
number, it MUST become the passive party. If the Offer does not | 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 | 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 | aware of its E.164 number, it MUST reject the circuit-switched media | |||
by setting the port number to zero in the Answer. | by setting the port number to zero in the Answer. | |||
For each media description where the Offer includes a "a=cs- | For each media description where the Offer includes a "a=cs- | |||
correlation" attribute, the Answerer MUST select from the Offer those | correlation" attribute, the Answerer MUST select from the Offer those | |||
correlation mechanisms it supports, and include in the Answer one | correlation mechanisms it supports, and include in the Answer one "a | |||
"a=cs-correlation" attribute line containing those mechanisms it is | =cs-correlation" attribute line containing those mechanisms it is | |||
willing to use. The Answerer MUST only add one "a=cs-correlation" | willing to use. The Answerer MUST only add one "a=cs-correlation" | |||
attribute in those media descriptions where also the Offer included a | attribute in those media descriptions where also the Offer included a | |||
"a=cs-correlation" attribute. The Answerer MUST NOT add any | "a=cs-correlation" attribute. The Answerer MUST NOT add any | |||
mechanisms which were not included in the offer. If there are more | mechanisms which were not included in the offer. If there are more | |||
than one "cs-correlation" attributes per media description in the | than one "cs-correlation" attributes per media description in the | |||
Offer, the Answerer MUST discard all but the first for any media | Offer, the Answerer MUST discard all but the first for any media | |||
description. Also, the Answerer MUST discard all unknown "cs- | description. Also, the Answerer MUST discard all unknown "cs- | |||
correlation" attribute values. | correlation" attribute values. | |||
If the Answerer becomes the active party, it MUST add any of the | If the Answerer becomes the active party, it MUST add a value to any | |||
"callerid", "uuie" or "dtmf" subfield values. | of the possible subfields. | |||
If the Answerer becomes the passive party, it MUST NOT add values to | If the Answerer becomes the passive party, it MUST NOT add any values | |||
the "callerid", "uuie" and/or "dtmf" subfields. | to the subfields in the "cs-correlation" attribute. | |||
After generating and sending the Answer, if the Answerer became the | After generating and sending the Answer, if the Answerer became the | |||
active party, it | active party, it | |||
o MUST extract the E.164 number from the "c=" line of the Offer and | o MUST extract the E.164 number from the "c=" line of the Offer and | |||
MUST establish a circuit-switched bearer to that address. | MUST establish a circuit-switched bearer to that address. | |||
o if the SDP Answer contained a value for the "callerid" subfield, | o if the SDP Answer contained a value for the "callerid" subfield, | |||
MUST set the Calling Party Number Information Element to that | MUST set the Calling Party Number Information Element to that | |||
number, | number, | |||
o if the SDP Answer contained a value for the "uuie" subfield, MUST | o if the SDP Answer contained a value for the "uuie" subfield, MUST | |||
send the User-User Information element according to the rules | send the User-User Information element according to the rules | |||
defined for the circuit-switched technology used, and set the | defined for the circuit-switched technology used, and set the | |||
skipping to change at page 28, line 6 | skipping to change at page 26, line 26 | |||
The following is the formal Augmented Backus-Naur Form (ABNF) | The following is the formal Augmented Backus-Naur Form (ABNF) | |||
[RFC5234] syntax that supports the extensions defined in this | [RFC5234] syntax that supports the extensions defined in this | |||
specification. The syntax is built above the SDP [RFC4566] and the | specification. The syntax is built above the SDP [RFC4566] and the | |||
tel URI [RFC3966] grammars. Implementations according to this | tel URI [RFC3966] grammars. Implementations according to this | |||
specification MUST be compliant with this syntax. | specification MUST be compliant with this syntax. | |||
Figure 2 shows the formal syntax of the extensions defined in this | Figure 2 shows the formal syntax of the extensions defined in this | |||
memo. | memo. | |||
; extension to the connection field originally specified | ; extension to the connection field originally specified | |||
; in RFC 4566 | ; in RFC4566 | |||
connection-field = [%x63 "=" nettype SP addrtype SP | connection-field = [%x63 "=" nettype SP addrtype SP | |||
connection-address CRLF] | connection-address CRLF] | |||
; CRLF defined in RFC5234 | ||||
;nettype and addrtype are defined in RFC 4566 | ;nettype and addrtype are defined in RFC 4566 | |||
connection-address /= global-number-digits / "-" | connection-address /= global-number-digits / "-" | |||
; global-number-digits specified in RFC 3966 | ; global-number-digits specified in RFC3966 | |||
;subrules for correlation attribute | ;subrules for correlation attribute | |||
attribute /= cs-correlation-attr | attribute /= cs-correlation-attr | |||
; attribute defined in RFC 4566 | ; attribute defined in RFC4566 | |||
cs-correlation-attr = "cs-correlation:" corr-mechanisms | cs-correlation-attr = "cs-correlation:" corr-mechanisms | |||
corr-mechanisms = corr-mech *(SP corr-mech) | corr-mechanisms = corr-mech *(SP corr-mech) | |||
corr-mech = caller-id-mech / uuie-mech / | corr-mech = caller-id-mech / uuie-mech / | |||
dtmf-mech / ext-mech | dtmf-mech / ext-mech | |||
caller-id-mech = "callerid" [":" caller-id-value] | caller-id-mech = "callerid" [":" caller-id-value] | |||
caller-id-value = "+" 1*15DIGIT | caller-id-value = "+" 1*15DIGIT | |||
; DIGIT defined in RFC5234 | ||||
uuie-mech = "uuie" [":" uuie-value] | uuie-mech = "uuie" [":" uuie-value] | |||
uuie-value = 1*65(HEXDIG HEXDIG) | uuie-value = 1*65(HEXDIG HEXDIG) | |||
;This represents up to 130 HEXDIG | ;This represents up to 130 HEXDIG | |||
; (65 octets) | ; (65 octets) | |||
;HEXDIG defined in RFC5234 | ;HEXDIG defined in RFC5234 | |||
;HEXDIG defined as 0-9, A-F | ;HEXDIG defined as 0-9, A-F | |||
dtmf-mech = "dtmf" [":" dtmf-value] | dtmf-mech = "dtmf" [":" dtmf-value] | |||
dtmf-value = 1*32(DIGIT / %x41-44 / %x23 / %x2A ) | dtmf-value = 1*32(DIGIT / %x41-44 / %x23 / %x2A ) | |||
;0-9, A-D, '#' and '*' | ;0-9, A-D, '#' and '*' | |||
ext-mech = ext-mech-name [":" ext-mech-value] | ext-mech = ext-mech-name [":" ext-mech-value] | |||
ext-mech-name = token | ext-mech-name = token | |||
ext-mech-value = token | ext-mech-value = token | |||
; token is specified in RFC4566 | ; token is specified in RFC4566 | |||
Figure 2: Syntax of the SDP extensions | Figure 2: Syntax of the SDP extensions | |||
skipping to change at page 29, line 7 | skipping to change at page 27, line 25 | |||
6. Examples | 6. Examples | |||
In the examples below, where an SDP line is too long to be displayed | In the examples below, where an SDP line is too long to be displayed | |||
as a single line, a breaking character "\" indicates continuation in | as a single line, a breaking character "\" indicates continuation in | |||
the following line. Note that this character is included for display | the following line. Note that this character is included for display | |||
purposes only. Implementations MUST write a single line without | purposes only. Implementations MUST write a single line without | |||
breaks. | breaks. | |||
6.1. Single PSTN audio stream | 6.1. Single PSTN audio stream | |||
Alice Bob | Alice Bob | |||
| | | | | | |||
| (1) SDP Offer (PSTN audio) | | | (1) SDP Offer (PSTN audio) | | |||
|--------------------------------->| | |--------------------------------->| | |||
| | | | | | |||
| (2) SDP Answer (PSTN audio) | | | (2) SDP Answer (PSTN audio) | | |||
|<---------------------------------| | |<---------------------------------| | |||
| | | | | | |||
| PSTN call setup | | | PSTN call setup | | |||
|<---------------------------------| | |<---------------------------------| | |||
| | | | | | |||
|<==== media over PSTN bearer ====>| | |<==== media over PSTN bearer ====>| | |||
| | | | | | |||
Figure 3: Basic flow | Figure 3: Basic flow | |||
Figure 3 shows a basic example that describes a single audio media | Figure 3 shows a basic example that describes a single audio media | |||
stream over a circuit-switched bearer. Alice generates a SDP Offer | stream over a circuit-switched bearer. Alice generates a SDP Offer | |||
which is shown in Figure 4. The Offer describes a PSTN circuit- | 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 | switched bearer in the "m=" and "c=" line where it also indicates its | |||
international E.164 number format. Additionally, Alice expresses | international E.164 number format. Additionally, Alice expresses | |||
that she can initiate the circuit-switched bearer or be the recipient | 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 | of it in the "a=setup" attribute line. The SDP Offer also includes | |||
correlation identifiers that this endpoint will insert in the Calling | correlation identifiers that this endpoint will insert in the Calling | |||
Party Number and/or User-User Information Element of the PSTN call | Party Number and/or User-User Information Element of the PSTN call | |||
setup if eventually this endpoint initiates the PSTN call. | setup if eventually this endpoint initiates the PSTN call. | |||
v=0 | v=0 | |||
o=jdoe 2890844526 2890842807 IN IP4 192.0.2.5 | o=alice 2890844526 2890842807 IN IP4 192.0.2.5 | |||
s= | s= | |||
t=0 0 | t=0 0 | |||
m=audio 9 PSTN - | m=audio 9 PSTN - | |||
c=PSTN E164 +441134960123 | c=PSTN E164 +441134960123 | |||
a=setup:actpass | a=setup:actpass | |||
a=connection:new | a=connection:new | |||
a=cs-correlation:callerid:+441134960123 \ | a=cs-correlation:callerid:+441134960123 \ | |||
uuie:56A390F3D2B7310023 | uuie:56A390F3D2B7310023 | |||
Figure 4: SDP offer (1) | Figure 4: SDP offer (1) | |||
Bob generates a SDP Answer (Figure 5), describing a PSTN audio media | 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. | 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 | 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 | "a=setup" line Bob indicates that he is willing to become the active | |||
endpoint when establishing the PSTN call, and he also includes the | endpoint when establishing the PSTN call, and he also includes the "a | |||
"a=cs-correlation" attribute line containing the values he is going | =cs-correlation" attribute line containing the values he is going to | |||
to include in the Calling Party Number and User-User IE of the PSTN | include in the Calling Party Number and User-User IE of the PSTN call | |||
call establishment. | establishment. | |||
v=0 | v=0 | |||
o=- 2890973824 2890987289 IN IP4 192.0.2.7 | o=- 2890973824 2890987289 IN IP4 192.0.2.7 | |||
s= | s= | |||
t=0 0 | t=0 0 | |||
m=audio 9 PSTN - | m=audio 9 PSTN - | |||
c=PSTN E164 +441134960124 | c=PSTN E164 +441134960124 | |||
a=setup:active | a=setup:active | |||
a=connection:new | a=connection:new | |||
a=cs-correlation:callerid:+441134960124 \ | a=cs-correlation:callerid:+441134960124 \ | |||
uuie:56A390F3D2B7310023 | uuie:56A390F3D2B7310023 | |||
Figure 5: SDP Answer with circuit-switched media | Figure 5: SDP Answer with circuit-switched media | |||
When Alice receives the Answer, she examines that Bob is willing to | When Alice receives the Answer, she examines that Bob is willing to | |||
become the active endpoint when setting up the PSTN call. Alice | 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 | temporarily stores Bob's E.164 number and the User-User IE value of | |||
the "cs-correlation" attribute, and waits for a circuit-switched | the "cs-correlation" attribute, and waits for a circuit-switched | |||
bearer establishment. | bearer establishment. | |||
Bob initiates a circuit-switched bearer using whatever circuit- | Bob initiates a circuit-switched bearer using whatever circuit- | |||
skipping to change at page 31, line 7 | skipping to change at page 29, line 21 | |||
received by the called party, or the format of the calling party | received by the called party, or the format of the calling party | |||
number is changed by the PSTN. Implementations may still accept such | number is changed by the PSTN. Implementations may still accept such | |||
call establishment attempts as being related to the session that was | call establishment attempts as being related to the session that was | |||
established in the IP network. As it cannot be guaranteed that the | established in the IP network. As it cannot be guaranteed that the | |||
values used for correlation are always passed intact through the | values used for correlation are always passed intact through the | |||
network, they should be treated as additional hints that the circuit- | network, they should be treated as additional hints that the circuit- | |||
switched bearer is actually related to the session. | switched bearer is actually related to the session. | |||
6.2. Advanced SDP example: Circuit-Switched Audio and Video Streams | 6.2. Advanced SDP example: Circuit-Switched Audio and Video Streams | |||
Alice Bob | Alice Bob | |||
| | | | | | |||
| (1) SDP Offer (PSTN audio and video) | | | (1) SDP Offer (PSTN audio and video) | | |||
|------------------------------------------->| | |------------------------------------------->| | |||
| | | | | | |||
| (2) SDP Answer (PSTN audio) | | | (2) SDP Answer (PSTN audio) | | |||
|<-------------------------------------------| | |<-------------------------------------------| | |||
| | | | | | |||
| PSTN call setup | | | PSTN call setup | | |||
|<-------------------------------------------| | |<-------------------------------------------| | |||
| | | | | | |||
|<======== media over PSTN bearer ==========>| | |<======== media over PSTN bearer ==========>| | |||
| | | | | | |||
Figure 6: Circuit-Switched Audio and Video streams | Figure 6: Circuit-Switched Audio and Video streams | |||
Figure 6 shows an example of negotiating audio and video media | Figure 6 shows an example of negotiating audio and video media | |||
streams over circuit-switched bearers. | streams over circuit-switched bearers. | |||
v=0 | v=0 | |||
o=jdoe 2890844526 2890842807 IN IP4 192.0.2.5 | o=alice 2890844526 2890842807 IN IP4 192.0.2.5 | |||
s= | s= | |||
t=0 0 | t=0 0 | |||
a=setup:actpass | a=setup:actpass | |||
a=connection:new | a=connection:new | |||
c=PSTN E164 +441134960123 | c=PSTN E164 +441134960123 | |||
m=audio 9 PSTN - | m=audio 9 PSTN - | |||
a=cs-correlation:dtmf:1234536 | a=cs-correlation:dtmf:1234536 | |||
m=video 9 PSTN 34 | m=video 9 PSTN 34 | |||
a=rtpmap:34 H263/90000 | a=rtpmap:34 H263/90000 | |||
a=cs-correlation:callerid:+441134960123 | a=cs-correlation:callerid:+441134960123 | |||
Figure 7: SDP offer with circuit-switched audio and video (1) | Figure 7: SDP offer with circuit-switched audio and video (1) | |||
Upon receiving the SDP offer described in Figure 7, Bob rejects the | Upon receiving the SDP offer described in Figure 7, Bob rejects the | |||
video stream as his device does not currently support video, but | video stream as his device does not currently support video, but | |||
accepts the circuit-switched audio stream. As Alice indicated that | accepts the circuit-switched audio stream. As Alice indicated that | |||
she is able to become either the active, or passive party, Bob gets | 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 | to select which role he would like to take. Since the Offer | |||
contained the international E.164 number of Alice, Bob decides that | contained the international E.164 number of Alice, Bob decides that | |||
he becomes the active party in setting up the circuit-switched | he becomes the active party in setting up the circuit-switched | |||
bearer. Bob includes a new value in the "dtmf" subfield of the "cs- | 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 | correlation" attribute, which he is going to send as DTMF tones once | |||
the bearer setup is complete. The Answer is described in Figure 8 | the bearer setup is complete. The Answer is described in Figure 8 | |||
v=0 | ||||
o=- 2890973824 2890987289 IN IP4 192.0.2.7 | v=0 | |||
s= | o=- 2890973824 2890987289 IN IP4 192.0.2.7 | |||
t=0 0 | s= | |||
a=setup:active | t=0 0 | |||
a=connection:new | a=setup:active | |||
c=PSTN E164 +441134960124 | a=connection:new | |||
m=audio 9 PSTN - | c=PSTN E164 +441134960124 | |||
a=cs-correlation:dtmf:654321 | m=audio 9 PSTN - | |||
m=video 0 PSTN 34 | a=cs-correlation:dtmf:654321 | |||
a=cs-correlation:callerid:+441134960124 | m=video 0 PSTN 34 | |||
a=cs-correlation:callerid:+441134960124 | ||||
Figure 8: SDP answer with circuit-switched audio and video (2) | Figure 8: SDP answer with circuit-switched audio and video (2) | |||
7. Security Considerations | 7. Security Considerations | |||
This document provides an extension on top of RFC 4566 [RFC4566], and | This document provides an extension on top of RFC 4566 [RFC4566], and | |||
RFC 3264 [RFC3264]. As such, the security considerations of those | RFC 3264 [RFC3264]. As such, the security considerations of those | |||
documents apply. | documents apply. | |||
This memo provides mechanisms to agree on a correlation identifier or | This memo provides mechanisms to agree on a correlation identifier or | |||
identifiers that are used to evaluate whether an incoming circuit- | identifiers that are used to evaluate whether an incoming circuit- | |||
switched bearer is related to an ongoing session in the IP domain. | switched bearer is related to an ongoing session in the IP domain. | |||
If an attacker replicates the correlation identifier and establishes | If an attacker replicates the correlation identifier and establishes | |||
a call within the time window the receiving endpoint is expecting a | a call within the time window the receiving endpoint is expecting a | |||
call, the attacker may be able to hijack the circuit-switched bearer. | call, the attacker may be able to hijack the circuit-switched bearer. | |||
These types of attacks are not specific to the mechanisms presented | These types of attacks are not specific to the mechanisms presented | |||
in this memo. For example, caller ID spoofing is a wellknown attack | in this memo. For example, caller ID spoofing is a well known attack | |||
in the PSTN. Users are advised to use the same caution before | in the PSTN. Users are advised to use the same caution before | |||
revealing sensitive information as they would on any other phone | revealing sensitive information as they would on any other phone | |||
call. Furthermore, users are advised that mechanisms that may be in | call. Furthermore, users are advised that mechanisms that may be in | |||
use in the IP domain for securing the media, like Secure RTP (SRTP) | use in the IP domain for securing the media, like Secure RTP (SRTP) | |||
[RFC3711], are not available in the CS domain. | [RFC3711], are not available in the CS domain. | |||
For the purposes of establishing a circuit-switched bearer, the | For the purposes of establishing a circuit-switched bearer, the | |||
active endpoint needs to know the passive endpoint's phone number. | active endpoint needs to know the passive endpoint's phone number. | |||
Phone numbers are sensitive information, and some people may choose | Phone numbers are sensitive information, and some people may choose | |||
not to reveal their phone numbers when calling using supplementary | not to reveal their phone numbers when calling using supplementary | |||
skipping to change at page 33, line 38 | skipping to change at page 32, line 4 | |||
Attribute name: cs-correlation | Attribute name: cs-correlation | |||
Long-form attribute name: PSTN Correlation Identifier | Long-form attribute name: PSTN Correlation Identifier | |||
Type of attribute: media level only | Type of attribute: media level only | |||
Subject to charset: No | Subject to charset: No | |||
Description: This attribute provides the Correlation Identifier | Description: This attribute provides the Correlation Identifier | |||
used in PSTN signaling | used in PSTN signaling | |||
Appropriate values:see Section 5.2.3.1 | Appropriate values:see Section 5.2.3.1 | |||
Specification: RFC XXXX | Specification: RFC XXXX | |||
The IANA is requested to create a subregistry for 'cs-correlation' | The IANA is requested to create a subregistry for 'cs-correlation' | |||
attribute under the Session Description Protocol (SDP) Parameters | attribute under the Session Description Protocol (SDP) Parameters | |||
registry. The initial values for the subregistry are presented in | registry. The initial values for the subregistry are presented in | |||
the following, and IANA is requested to add them into its database: | the following, and IANA is requested to add them into its database: | |||
Value of 'cs-correlation' attribute Reference Description | Value of 'cs-correlation' attribute Reference Description | |||
----------------------------------- --------- ----------- | ----------------------------------- --------- ----------- | |||
callerid RFC XXXX Caller ID | callerid RFC XXXX Caller ID | |||
uuie RFC XXXX User-User | uuie RFC XXXX User-User | |||
Information Element | Information Element | |||
dtmf RFC XXXX Dual-tone Multifrequency | dtmf RFC XXXX Dual-tone Multifrequency | |||
Note for the RFC Editor: 'RFC XXXX' above should be replaced by a | Note for the RFC Editor: 'RFC XXXX' above should be replaced by a | |||
reference to the RFC number of this draft. | reference to the RFC number of this draft. | |||
As per the terminology in [RFC5226], the registration policy for new | As per the terminology in [RFC5226], the registration policy for new | |||
values of 'cs-correlation' parameter is 'Specification Required'. | values of 'cs-correlation' parameter is 'Specification Required'. | |||
8.2. Registration of a new "nettype" value | 8.2. Registration of a new "nettype" value | |||
This memo provides instructions to IANA to register a new "nettype" | This memo provides instructions to IANA to register a new "nettype" | |||
in the Session Description Protocol Parameters registry [1]. The | in the Session Description Protocol Parameters registry [1]. The | |||
registration data, according to RFC 4566 [RFC4566] follows. | registration data, according to RFC 4566 [RFC4566] follows. | |||
Type SDP Name Reference | Type SDP Name Reference | |||
---- ------------------ --------- | ---- ------------------ --------- | |||
nettype PSTN [RFCxxxx] | nettype PSTN [RFCxxxx] | |||
8.3. Registration of new "addrtype" values | 8.3. Registration of new "addrtype" values | |||
This memo provides instructions to IANA to register two new | This memo provides instructions to IANA to register two new | |||
"addrtype" in the Session Description Protocol Parameters | "addrtype" in the Session Description Protocol Parameters registry | |||
registry [1]. The registration data, according to RFC 4566 [RFC4566] | [2]. The registration data, according to RFC 4566 [RFC4566] follows. | |||
follows. | ||||
Type SDP Name Reference | Type SDP Name Reference | |||
---- ------------------ --------- | ---- ------------------ --------- | |||
addrtype E164 [RFCxxxx] | addrtype E164 [RFCxxxx] | |||
- [RFCxxxx] | addrtype - [RFCxxxx] | |||
Note: RFC XXXX defines the "E164" and "-" addrtypes in the context of | ||||
Note: RFC XXXX defines the "E164" and "-" addrtypes in conjunction | the "PSTN" nettype only. Please refer to the relevant RFC for a | |||
with the "PSTN" nettype only. Please refer to the relevant RFC for a | ||||
description of that representation. | 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 | 8.4. Registration of a new "proto" value | |||
This memo provides instructions to IANA to register a new "proto" in | This memo provides instructions to IANA to register a new "proto" in | |||
the Session Description Protocol Parameters registry [1]. The | the Session Description Protocol Parameters registry [3]. The | |||
registration data, according to RFC 4566 [RFC4566] follows. | registration data, according to RFC 4566 [RFC4566] follows. | |||
Type SDP Name Reference | Type SDP Name Reference | |||
-------------- --------------------------- --------- | -------------- --------------------------- --------- | |||
proto PSTN [RFCxxxx] | proto PSTN [RFCxxxx] | |||
The related "fmt" namespace re-uses the conventions and payload type | The related "fmt" namespace re-uses the conventions and payload type | |||
number defined for RTP/AVP. In this document, the RTP audio and | number defined for RTP/AVP. In RFC XXXX, the RTP audio and video | |||
video media types, when applied to PSTN circuit-switched bearers, | media types, when applied to PSTN circuit-switched bearers, represent | |||
represent merely an audio or video codec in its native format | merely an audio or video codec in its native format directly on top | |||
directly on top of a single PSTN bearer. | of a single PSTN bearer. | |||
In come cases, the endpoint is not able to determine the list of | In come cases, the endpoint is not able to determine the list of | |||
available codecs for circuit-switched media streams. In this case, | available codecs for circuit-switched media streams. In this case, | |||
in order to be syntactically compliant with SDP [RFC4566], the | in order to be syntactically compliant with SDP [RFC4566], the | |||
endpoint MUST include a single dash ("-") in the <fmt> subfield. | endpoint MUST include a single dash ("-") in the <fmt> subfield. | |||
9. Acknowledgments | 9. Acknowledgments | |||
The authors want to thank Paul Kyzivat, Flemming Andreasen, Thomas | The authors want to thank Paul Kyzivat, Flemming Andreasen, Thomas | |||
Belling, John Elwell, Jari Mutikainen, Miikka Poikselka, Jonathan | Belling, John Elwell, Jari Mutikainen, Miikka Poikselka, Jonathan | |||
skipping to change at page 35, line 37 | skipping to change at page 33, line 45 | |||
their insight and comments on this document. | their insight and comments on this document. | |||
10. References | 10. References | |||
10.1. Normative References | 10.1. Normative References | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
[RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model | [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model | |||
with Session Description Protocol (SDP)", RFC 3264, | with Session Description Protocol (SDP)", RFC 3264, June | |||
June 2002. | 2002. | |||
[RFC3966] Schulzrinne, H., "The tel URI for Telephone Numbers", | [RFC3966] Schulzrinne, H., "The tel URI for Telephone Numbers", RFC | |||
RFC 3966, December 2004. | 3966, December 2004. | |||
[RFC4145] Yon, D. and G. Camarillo, "TCP-Based Media Transport in | [RFC4145] Yon, D. and G. Camarillo, "TCP-Based Media Transport in | |||
the Session Description Protocol (SDP)", RFC 4145, | the Session Description Protocol (SDP)", RFC 4145, | |||
September 2005. | September 2005. | |||
[RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session | [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session | |||
Description Protocol", RFC 4566, July 2006. | Description Protocol", RFC 4566, July 2006. | |||
[RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data | [RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data | |||
Encodings", RFC 4648, October 2006. | Encodings", RFC 4648, October 2006. | |||
skipping to change at page 36, line 20 | skipping to change at page 34, line 27 | |||
May 2008. | May 2008. | |||
[RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax | [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax | |||
Specifications: ABNF", STD 68, RFC 5234, January 2008. | Specifications: ABNF", STD 68, RFC 5234, January 2008. | |||
10.2. Informative References | 10.2. Informative References | |||
[I-D.ietf-cuss-sip-uui] | [I-D.ietf-cuss-sip-uui] | |||
Johnston, A. and J. Rafferty, "A Mechanism for | Johnston, A. and J. Rafferty, "A Mechanism for | |||
Transporting User to User Call Control Information in | Transporting User to User Call Control Information in | |||
SIP", draft-ietf-cuss-sip-uui-08 (work in progress), | SIP", draft-ietf-cuss-sip-uui-10 (work in progress), April | |||
December 2012. | 2013. | |||
[ITU.E164.1991] | [ITU.E164.1991] | |||
International Telecommunications Union, "The International | International Telecommunications Union, "The International | |||
Public Telecommunication Numbering Plan", ITU- | Public Telecommunication Numbering Plan", ITU-T | |||
T Recommendation E.164, 1991. | Recommendation E.164, 1991. | |||
[ITU.Q931.1998] | [ITU.Q931.1998] | |||
"Digital Subscriber Signalling System No. 1 (DSS 1) - ISDN | , "Digital Subscriber Signalling System No. 1 (DSS 1) - | |||
User - Network Interface Layer 3 Specification for Basic | ISDN User - Network Interface Layer 3 Specification for | |||
Call Control", ISO Standard 9594-1, May 1998. | Basic Call Control", ISO Standard 9594-1, May 1998. | |||
[RFC3108] Kumar, R. and M. Mostafa, "Conventions for the use of the | [RFC3108] Kumar, R. and M. Mostafa, "Conventions for the use of the | |||
Session Description Protocol (SDP) for ATM Bearer | Session Description Protocol (SDP) for ATM Bearer | |||
Connections", RFC 3108, May 2001. | Connections", RFC 3108, May 2001. | |||
[RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, | [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, | |||
A., Peterson, J., Sparks, R., Handley, M., and E. | A., Peterson, J., Sparks, R., Handley, M., and E. | |||
Schooler, "SIP: Session Initiation Protocol", RFC 3261, | Schooler, "SIP: Session Initiation Protocol", RFC 3261, | |||
June 2002. | June 2002. | |||
skipping to change at page 37, line 14 | skipping to change at page 35, line 22 | |||
[RFC3725] Rosenberg, J., Peterson, J., Schulzrinne, H., and G. | [RFC3725] Rosenberg, J., Peterson, J., Schulzrinne, H., and G. | |||
Camarillo, "Best Current Practices for Third Party Call | Camarillo, "Best Current Practices for Third Party Call | |||
Control (3pcc) in the Session Initiation Protocol (SIP)", | Control (3pcc) in the Session Initiation Protocol (SIP)", | |||
BCP 85, RFC 3725, April 2004. | BCP 85, RFC 3725, April 2004. | |||
[RFC4975] Campbell, B., Mahy, R., and C. Jennings, "The Message | [RFC4975] Campbell, B., Mahy, R., and C. Jennings, "The Message | |||
Session Relay Protocol (MSRP)", RFC 4975, September 2007. | Session Relay Protocol (MSRP)", RFC 4975, September 2007. | |||
[TS.24.008] | [TS.24.008] | |||
3GPP, "Mobile radio interface Layer 3 specification; Core | 3GPP , "Mobile radio interface Layer 3 specification; Core | |||
network protocols; Stage 3", 3GPP TS 24.008 3.20.0, | network protocols; Stage 3 ", 3GPP TS 24.008 3.20.0, | |||
December 2005. | December 2005. | |||
URIs | ||||
[1] <http://www.iana.org/assignments/sdp-parameters> | ||||
Authors' Addresses | Authors' Addresses | |||
Miguel A. Garcia-Martin | Miguel A. Garcia-Martin | |||
Ericsson | Ericsson | |||
Calle Via de los Poblados 13 | Calle Via de los Poblados 13 | |||
Madrid, ES 28033 | Madrid, ES 28033 | |||
Spain | Spain | |||
Email: miguel.a.garcia@ericsson.com | Email: miguel.a.garcia@ericsson.com | |||
End of changes. 60 change blocks. | ||||
236 lines changed or deleted | 228 lines changed or added | |||
This html diff was produced by rfcdiff 1.39p1. The latest version is available from http://www.tools.ietf.org/tools/rfcdiff/ |