idnits 2.17.1 draft-ietf-mmusic-sdp-cs-11.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- -- The document has examples using IPv4 documentation addresses according to RFC6890, but does not use any IPv6 documentation addresses. Maybe there should be IPv6 examples, too? Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document seems to contain a disclaimer for pre-RFC5378 work, but was first submitted on or after 10 November 2008. The disclaimer is usually necessary only for documents that revise or obsolete older RFCs, and that take significant amounts of text from those RFCs. If you can contact all authors of the source material and they are willing to grant the BCP78 rights to the IETF Trust, you can and should remove the disclaimer. Otherwise, the disclaimer is needed and you can ignore this comment. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (May 14, 2012) is 4365 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'RFCxxxx' is mentioned on line 1435, but not defined ** Obsolete normative reference: RFC 2434 (Obsoleted by RFC 5226) ** Obsolete normative reference: RFC 4566 (Obsoleted by RFC 8866) == Outdated reference: A later version (-17) exists of draft-ietf-cuss-sip-uui-06 Summary: 2 errors (**), 0 flaws (~~), 4 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 MMUSIC WG M. Garcia-Martin 3 Internet-Draft Ericsson 4 Intended status: Standards Track S. Veikkolainen 5 Expires: November 15, 2012 Nokia 6 May 14, 2012 8 Session Description Protocol (SDP) Extension For Setting Up Audio and 9 Video Media Streams Over Circuit-Switched Bearers In The Public Switched 10 Telephone Network (PSTN) 11 draft-ietf-mmusic-sdp-cs-11 13 Abstract 15 This memo describes use cases, requirements, and protocol extensions 16 for using the Session Description Protocol (SDP) Offer/Answer model 17 for establishing audio and video media streams over circuit-switched 18 bearers in the Public Switched Telephone Network (PSTN). 20 Status of this Memo 22 This Internet-Draft is submitted in full conformance with the 23 provisions of BCP 78 and BCP 79. 25 Internet-Drafts are working documents of the Internet Engineering 26 Task Force (IETF). Note that other groups may also distribute 27 working documents as Internet-Drafts. The list of current Internet- 28 Drafts is at http://datatracker.ietf.org/drafts/current/. 30 Internet-Drafts are draft documents valid for a maximum of six months 31 and may be updated, replaced, or obsoleted by other documents at any 32 time. It is inappropriate to use Internet-Drafts as reference 33 material or to cite them other than as "work in progress." 35 This Internet-Draft will expire on November 15, 2012. 37 Copyright Notice 39 Copyright (c) 2012 IETF Trust and the persons identified as the 40 document authors. All rights reserved. 42 This document is subject to BCP 78 and the IETF Trust's Legal 43 Provisions Relating to IETF Documents 44 (http://trustee.ietf.org/license-info) in effect on the date of 45 publication of this document. Please review these documents 46 carefully, as they describe your rights and restrictions with respect 47 to this document. Code Components extracted from this document must 48 include Simplified BSD License text as described in Section 4.e of 49 the Trust Legal Provisions and are provided without warranty as 50 described in the Simplified BSD License. 52 This document may contain material from IETF Documents or IETF 53 Contributions published or made publicly available before November 54 10, 2008. The person(s) controlling the copyright in some of this 55 material may not have granted the IETF Trust the right to allow 56 modifications of such material outside the IETF Standards Process. 57 Without obtaining an adequate license from the person(s) controlling 58 the copyright in such materials, this document may not be modified 59 outside the IETF Standards Process, and derivative works of it may 60 not be created outside the IETF Standards Process, except to format 61 it for publication as an RFC or to translate it into languages other 62 than English. 64 Table of Contents 66 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5 67 2. Conventions Used in This Document . . . . . . . . . . . . . . 6 68 3. Requirements . . . . . . . . . . . . . . . . . . . . . . . . . 6 69 4. Overview of Operation . . . . . . . . . . . . . . . . . . . . 7 70 4.1. Example Call Flow . . . . . . . . . . . . . . . . . . . . 7 71 5. Protocol Description . . . . . . . . . . . . . . . . . . . . . 9 72 5.1. Level of Compliance . . . . . . . . . . . . . . . . . . . 9 73 5.2. Extensions to SDP . . . . . . . . . . . . . . . . . . . . 9 74 5.2.1. Connection Data . . . . . . . . . . . . . . . . . . . 9 75 5.2.2. Media Descriptions . . . . . . . . . . . . . . . . . . 10 76 5.2.3. Correlating the PSTN Circuit-Switched Bearer with 77 SDP . . . . . . . . . . . . . . . . . . . . . . . . . 12 78 5.2.3.1. The "cs-correlation" attribute . . . . . . . . . . 12 79 5.2.3.2. Caller-ID Correlation Mechanism . . . . . . . . . 13 80 5.2.3.3. User-User Information Element Correlation 81 Mechanism . . . . . . . . . . . . . . . . . . . . 14 82 5.2.3.4. DTMF Correlation Mechanism . . . . . . . . . . . . 16 83 5.3. Negotiating the correlation mechanisms . . . . . . . . . . 17 84 5.3.1. Determining the Direction of the Circuit-Switched 85 Bearer Setup . . . . . . . . . . . . . . . . . . . . . 17 86 5.3.2. Populating the cs-correlation attribute . . . . . . . 18 87 5.3.3. Considerations on successful correlation . . . . . . . 18 88 5.4. Considerations for Usage of Existing SDP . . . . . . . . . 19 89 5.4.1. Originator of the Session . . . . . . . . . . . . . . 19 90 5.4.2. Contact information . . . . . . . . . . . . . . . . . 19 91 5.5. Considerations for Usage of Third Party Call Control 92 (3PCC) . . . . . . . . . . . . . . . . . . . . . . . . . . 19 93 5.6. Offer/Answer mode extensions . . . . . . . . . . . . . . . 20 94 5.6.1. Generating the Initial Offer . . . . . . . . . . . . . 20 95 5.6.2. Generating the Answer . . . . . . . . . . . . . . . . 22 96 5.6.3. Offerer processing the Answer . . . . . . . . . . . . 25 97 5.6.4. Modifying the session . . . . . . . . . . . . . . . . 26 98 5.7. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . 26 99 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 100 6.1. Single PSTN audio stream . . . . . . . . . . . . . . . . . 28 101 6.2. Advanced SDP example: Circuit-Switched Audio and Video 102 Streams . . . . . . . . . . . . . . . . . . . . . . . . . 30 103 7. Security Considerations . . . . . . . . . . . . . . . . . . . 31 104 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 32 105 8.1. Registration of new cs-correlation SDP attribute . . . . . 32 106 8.2. Registration of a new "nettype" value . . . . . . . . . . 32 107 8.3. Registration of new "addrtype" values . . . . . . . . . . 33 108 8.4. Registration of a new "proto" value . . . . . . . . . . . 33 109 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 33 110 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 33 111 10.1. Normative References . . . . . . . . . . . . . . . . . . . 33 112 10.2. Informative References . . . . . . . . . . . . . . . . . . 34 113 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 35 115 1. Introduction 117 The Session Description Protocol (SDP) [RFC4566] is intended for 118 describing multimedia sessions for the purposes of session 119 announcement, session invitation, and other forms of multimedia 120 session initiation. SDP is most commonly used for describing media 121 streams that are transported over the Real-Time Transport Protocol 122 (RTP) [RFC3550], using the profiles for audio and video media defined 123 in RTP Profile for Audio and Video Conferences with Minimal Control 124 [RFC3551]. 126 However, SDP can be used to describe other transport protocols than 127 RTP. Previous work includes SDP conventions for describing ATM 128 bearer connections [RFC3108] and the Message Session Relay Protocol 129 [RFC4975]. 131 SDP is commonly carried in Session Initiation Protocol (SIP) 132 [RFC3261] messages in order to agree on a common media description 133 among the endpoints. An Offer/Answer Model with Session Description 134 Protocol (SDP) [RFC3264] defines a framework by which two endpoints 135 can exchange SDP media descriptions and come to an agreement as to 136 which media streams should be used, along with the media related 137 parameters. 139 In some scenarios it might be desirable to establish the media stream 140 over a circuit-switched bearer connection even if the signaling for 141 the session is carried over an IP bearer. An example of such a 142 scenario is illustrated with two mobile devices capable of both 143 circuit-switched and packet-switched communication over a low- 144 bandwidth radio bearer. The radio bearer may not be suitable for 145 carrying real-time audio or video media, and using a circuit-switched 146 bearer would offer a better perceived quality of service. So, 147 according to this scenario, SDP and its higher layer session control 148 protocol (e.g., the Session Initiation Protocol (SIP) [RFC3261]) are 149 used over regular IP connectivity, while the audio or video is 150 received through the classical circuit-switched bearer. 152 Setting up a signaling relationship in the IP domain instead of just 153 setting up a circuit-switched call offers also the possibility of 154 negotiating in the same session other IP based media that is not 155 sensitive to jitter and delay, for example, text messaging or 156 presence information. 158 At a later point in time the mobile device might move to an area 159 where a high-bandwidth packet-switched bearer, for example a Wireless 160 Local Area Network (WLAN) connection, is available. At this point 161 the mobile device may perform a handover and move the audio or video 162 media streams over to the high-speed bearer. This implies a new 163 exchange of SDP Offer/Answer that lead to a re-negotiation of the 164 media streams. 166 Other use cases exist. For example, and endpoint might have at its 167 disposal circuit-switched and packet-switched connectivity, but the 168 same audio or video codecs are not feasible for both access networks. 169 For example, the circuit-switched audio or video stream supports 170 narrow-bandwidth codecs, while the packet-switched access allows any 171 other audio or video codec implemented in the endpoint. In this 172 case, it might be beneficial for the endpoint to describe different 173 codecs for each access type and get an agreement on the bearer 174 together with the remote endpoint. 176 There are additional use cases related to third party call control 177 where the session setup time is improved when the circuit-switched 178 bearer in the PSTN is described together with one or more codecs. 180 The rest of the document is structured as follows: Section 2 provides 181 the document conventions, Section 3 introduces the requirements, 182 Section 4 presents an overview of the proposed solutions, and 183 Section 5 contains the protocol description. Section 6 provides an 184 example of descriptions of circuit-switched audio or video streams in 185 SDP. Section 8 and Section 7 contain the IANA and Security 186 considerations, respectively. 188 2. Conventions Used in This Document 190 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 191 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 192 "OPTIONAL" in this document are to be interpreted as described in BCP 193 14, RFC 2119 [RFC2119] and indicate requirement levels for compliant 194 implementations. 196 3. Requirements 198 This section presents the general requirements that are specific for 199 the audio or video media streams over circuit-switched bearers. 201 REQ-1: A mechanism for endpoints to negotiate and agree on an audio 202 or video media stream established over a circuit-switched 203 bearer MUST be available. 205 REQ-2: The mechanism MUST allow the endpoints to combine circuit- 206 switched audio or video media streams with other 207 complementary media streams, for example, text messaging. 209 REQ-3: The mechanism MUST allow the endpoint to negotiate the 210 direction of the circuit-switched bearer, i.e., which 211 endpoint is active when initiating the circuit-switched 212 bearer. 214 REQ-4: The mechanism MUST be independent of the type of the circuit- 215 switched access (e.g., Integrated Services Digital Network 216 (ISDN), Global System for Mobile Communication (GSM), etc.) 218 REQ-5: There MUST be a mechanism that helps an endpoint to correlate 219 an incoming circuit-switched bearer with the one negotiated 220 in SDP, as opposed to another incoming call that is not 221 related to that. 223 REQ-6: It MUST be possible for endpoints to advertise different list 224 of audio or video codecs in the circuit-switched audio or 225 video stream from those used in a packet-switched audio or 226 video stream. 228 REQ-7: It MUST be possible for endpoints to not advertise the list 229 of available codecs for circuit-switched audio or video 230 streams. 232 4. Overview of Operation 234 The mechanism defined in this memo extends SDP and allows describing 235 an audio or video media stream established over a circuit-switched 236 bearer. New tokens are registered in the "c=" and "m=" lines to be 237 able to describe a media stream over a circuit-switched bearer. 238 These SDP extensions are described in Section 5.2. Since circuit- 239 switched bearers are connection-oriented media streams, the mechanism 240 re-uses the connection-oriented extensions defined in RFC 4145 241 [RFC4145] to negotiate the active and passive sides of a connection 242 setup. This is further described in Section 5.3.1. 244 4.1. Example Call Flow 246 Consider the example presented in Figure 1. In this example, Alice 247 is located in an environment where she has access to both IP and 248 circuit-switched bearers for communicating with other endpoints. 249 Alice decides that the circuit-switched bearer offers a better 250 perceived quality of service for voice, and issues an SDP Offer 251 containing the description of an audio media stream over circuit- 252 switched bearer. 254 Alice Bob 255 | (1) SDP Offer (PSTN audio) | 256 |----------------------------------->| 257 | | 258 | (2) SDP Answer (PSTN audio) | 259 |<-----------------------------------| 260 | | 261 | PSTN call setup | 262 |<-----------------------------------| 263 | | 264 | | 265 |<===== media over PSTN bearer =====>| 266 | | 268 Figure 1: Example Flow 270 Bob receives the SDP offer and determines that he is located in an 271 environment where the IP based bearer is not suitable for real-time 272 audio media. However he also has PSTN circuit-switched bearer 273 available for audio. Bob generates an SDP answer containing a 274 description of the audio media stream over a circuit-switched bearer. 276 During the offer-answer exchange Alice and Bob also agree the 277 direction in which the circuit-switched bearer should be established. 278 In this example, Bob becomes the active party, in other words, he 279 establishes the circuit-switched call to the other endpoint. The 280 Offer/Answer exchange contains identifiers or references that can be 281 used on the circuit-switched network for addressing the other 282 endpoint, as well as information that is used to determine that the 283 incoming circuit-switched bearer establishment is related to the 284 ongoing session between Alice and Bob. 286 Bob establishes a circuit-switched bearer towards Alice using 287 whatever mechanisms are defined for the network type in question. 288 When receiving the incoming circuit-switched connection attempt, 289 Alice is able to determine that the attempt is related to the session 290 she is just establishing with Bob. 292 Alice accepts the circuit-switched connection; the circuit-switched 293 bearer setup is completed. Bob and Alice can now use the circuit- 294 switched connection for two-way audio media. 296 If, for some reason, Bob would like to reject the offered stream, he 297 would set the port number of the specific stream to zero, as 298 specified in RFC3264 [RFC3264]. Also, if Bob does not understand 299 some of the SDP attributes specified in this document, he would 300 ignore them, as specified in RFC4566 [RFC4566]. 302 5. Protocol Description 304 5.1. Level of Compliance 306 Implementations according to this specification MUST implement the 307 SDP extensions described in Section 5.2, and MUST implement the 308 considerations discussed in Section 5.3, Section 5.4 and Section 5.6. 310 5.2. Extensions to SDP 312 This section provides the syntax and semantics of the extensions 313 required for providing a description of audio or video media streams 314 over circuit-switched bearers in SDP. 316 5.2.1. Connection Data 318 According to SDP [RFC4566], the connection data line in SDP has the 319 following syntax: 321 c= 323 where indicates the network type, indicates the 324 address type, and the is the connection address, 325 which is dependent on the address type. 327 At the moment, the only network type defined is "IN", which indicates 328 Internet network type. The address types "IP4" and "IP6" indicate 329 the type of IP addresses. 331 This memo defines a new network type for describing a circuit- 332 switched bearer network type in the PSTN. The mnemonic "PSTN" is 333 used for this network type. 335 For the address type, we initially consider the possibility of 336 describing E.164 telephone numbers. We define a new "E164" address 337 type. When used, the "E164" address type indicates that the 338 connection address contains an international E.164 number represented 339 according to the ITU-T E.164 [ITU.E164.1991] recommendation. 341 It is a common convention that an international E.164 number contains 342 a leading '+' sign. For consistency's sake, we also require the 343 E.164 telephone is prepended with a '+', even if that is not 344 necessary for routing of the call in the PSTN network. 346 There are cases, though, when the endpoint is merely aware of a 347 circuit-switched bearer, without having further information about the 348 address type or the E.164 number allocated to it. In these cases a 349 dash "-" is used to indicate an unknown address type or connection 350 address. This makes the connection data line be according to the SDP 351 syntax. 353 Note that and/or should not be 354 omitted without being set to a "-" since this would violate basic 355 syntax of SDP [RFC4566]. 357 The following are examples of the extension to the connection data 358 line: 360 c=PSTN E164 +35891234567 362 c=PSTN - - 364 When the is PSTN, the connection address is defined as 365 follows: 367 o an international E.164 number 369 When the is "-", the connection address is defined as 370 follows: 372 o the value "-", signifying that the address is unknown 374 o any syntactically valid value, which is to be ignored 376 5.2.2. Media Descriptions 378 According to SDP [RFC4566], the media descriptions line in SDP has 379 the following syntax: 381 m= ... 383 The subfield carries the media type. For establishing an 384 audio bearer, the existing "audio" media type is used. For 385 establishing a video bearer, the existing "video" media type is used. 387 The subfield is the transport port to which the media stream 388 is sent. Circuit-switched access lacks the concept of a port number, 389 and therefore the subfield does not carry any meaningful 390 value. In order to be compliant with SDP syntax, implementations 391 SHOULD set the subfield to the discard port value "9" and MUST 392 ignore it on reception. 394 According to RFC 3264 [RFC3264], a port number of zero in the offer 395 of a unicast stream indicates that the stream is offered but must not 396 be used. If a port number of zero is present in the answer of a 397 unicast stream, it indicates that the stream is rejected. These 398 rules are still valid when the media line in SDP represents a 399 circuit-switched bearer. 401 The subfield is the transport protocol. The circuit-switched 402 bearer uses whatever transport protocol it has available. This 403 subfield SHOULD be set to the mnemonic "PSTN" to be syntactically 404 correct with SDP [RFC4566] and to indicate the usage of circuit- 405 switched protocols in the PSTN. 407 The subfield is the media format description. In the classical 408 usage of SDP to describe RTP-based media streams, when the 409 subfield is set to "RTP/AVP" or "RTP/SAVP", the subfield 410 contains the payload types as defined in the RTP audio profile 411 [RFC3551]. 413 When "RTP/AVP" is used in the field, the subfield 414 contains the RTP payload type numbers. We use the subfield to 415 indicate the list of available codecs over the circuit-switched 416 bearer, by re-using the conventions and payload type numbers defined 417 for RTP/AVP. The RTP audio and video media types, which, when 418 applied to PSTN circuit-switched bearers, represent merely an audio 419 or video codec. 421 In some cases, the endpoint is not able to determine the list of 422 available codecs for circuit-switched media streams. In this case, 423 in order to be syntactically compliant with SDP [RFC4566], the 424 endpoint MUST include a single dash "-" in the subfield. 426 As per RFC 4566 [RFC4566], the media format descriptions are listed 427 in priority order. 429 Examples of media descriptions for circuit-switched audio streams 430 are: 432 m=audio 9 PSTN 3 0 8 434 m=audio 9 PSTN - 436 Similarly, an example of a media description for circuit-switched 437 video stream is: 439 m=video 9 PSTN 34 441 m=video 9 PSTN - 443 5.2.3. Correlating the PSTN Circuit-Switched Bearer with SDP 445 The endpoints should be able to correlate the circuit-switched bearer 446 with the session negotiated with SDP in order to avoid ringing for an 447 incoming circuit-switched bearer that is related to the session 448 controlled with SDP (and SIP). 450 Several alternatives exist for performing this correlation. This 451 memo provides three mutually non-exclusive correlation mechanisms. 452 Other correlation mechanisms may exist, and their usage will be 453 specified when need arises. All mechanisms share the same principle: 454 some unique information is sent in the SDP and in the circuit- 455 switched signaling protocol. If these pieces of information match, 456 then the circuit-switched bearer is part of the session described in 457 the SDP exchange. Otherwise, there is no guarantee that the circuit- 458 switched bearer is related to such session. 460 The first mechanism is based on the exchange of PSTN caller-ID 461 between the endpoints. The caller-ID is also available as the 462 Calling Party ID in the circuit-switched signaling. 464 The second mechanism is based on the inclusion in SDP of a value that 465 is also sent in the User-to-User Information Element that is part of 466 the bearer setup signaling in the PSTN. 468 The third mechanism is based on sending in SDP a string that 469 represents Dual Tone MultiFrequency (DTMF) digits that will be later 470 sent right after the circuit-switched bearer is established. 471 Implementations MAY use any of these mechanisms and MAY use two or 472 more mechanisms simultaneously. 474 5.2.3.1. The "cs-correlation" attribute 476 In order to provide support for the correlation mechanisms, we define 477 a new SDP attribute called "cs-correlation". This "cs-correlation" 478 attribute can include any of the "callerid", "uuie", or "dtmf" 479 subfields, which specify additional information required by the 480 Caller-ID, User to User Information, or DTMF correlation mechanisms, 481 respectively. The list of correlation mechanisms may be extended by 482 other specifications. 484 The following sections provide more detailed information of these 485 subfields. The "cs-correlation" attribute has the following format: 487 a=cs-correlation: 488 correlation-mechanisms = corr-mech *(SP corr-mech) 489 corr-mech = caller-id-mech / uuie-mech / 490 dfmt-mech / ext-mech 491 caller-id-mech = "callerid" [":" caller-id-value] 492 uuie-mech = "uuie" [":" uuie-value] 493 dtmf-mech = "dtmf" [":" dtmf-value] 494 ext-mech = [":"] 496 The values "callerid", "uuie" and "dtmf" refer to the correlation 497 mechanisms defined in Section 5.2.3.2, Section 5.2.3.3, and 498 Section 5.2.3.4, respectively. The formal Augmented Backus-Naur 499 Format (ABNF) syntax of the "cs-correlation" attribute is presented 500 in Section 5.7. 502 5.2.3.2. Caller-ID Correlation Mechanism 504 The Caller-ID correlation mechanisms consists of an exchange of the 505 calling party number as an international E.164 number in SDP, 506 followed by the availability of the Calling Party Number information 507 element in the call setup signaling of the circuit switched 508 connection. If both pieces of information match, the circuit- 509 switched bearer is correlated to the session described in SDP. 511 Example of inclusion of an international E.164 number in the "cs- 512 correlation" attribute is: 514 a=cs-correlation:callerid:+35891234567 516 The presence of the "callerid" subfield indicates that the endpoint 517 supports use of the calling party number as a means of correlating a 518 PSTN call with the session being negotiated. The "callerid" subfield 519 MAY be accompanied by the international E.164 number of the party 520 inserting the parameter. 522 Note that there are no warranties that this correlation mechanism 523 works or is even available, due a number of problems: 525 o The endpoint might not be aware of its own E.164 number, in which 526 case it cannot populate the SDP appropriately. 528 o The Calling Party Number information element in the circuit- 529 switched signaling might not be available, e.g., due to policy 530 restrictions of the network operator or caller restriction due to 531 privacy. 533 o The Calling Party Number information element in the circuit- 534 switched signaling might be available, but the digit 535 representation of the E.164 number might differ from the one 536 expressed in the SDP. To mitigate this problem implementations 537 should consider only some of the rightmost digits from the E.164 538 number for correlation. For example, the numbers +358-9-123-4567 539 and 09-123-4567 could be considered as the same number. This is 540 also the behavior of some cellular phones, which correlate the 541 incoming calling party with a number stored in the phone book, for 542 the purpose of displaying the caller's name. 544 5.2.3.3. User-User Information Element Correlation Mechanism 546 A second correlation mechanism is based on including in SDP a string 547 that represents the User-User Information Element that is part of the 548 call setup signaling of the circuit-switched bearer. The User-User 549 Information Element is specified in ITU-T Q.931 [ITU.Q931.1998] and 550 3GPP TS 24.008 [TS.24.008], among others. The User-User Information 551 Element has a maximum size of 35 or 131 octets, depending on the 552 actual message of the PSTN protocol where it is included and the 553 network settings. 555 The mechanism works as follows: An endpoint creates a User-User 556 Information Element, according to the requirements of the call setup 557 signaling protocol. The same value is included in the SDP offer or 558 SDP answer, in the "uuie" subfield of the "cs-correlation" attribute. 559 When the SDP Offer/Answer exchange is completed, each endpoint has 560 become aware of the value that will be used in the User-User 561 Information Element of the call setup message of the PSTN protocol. 562 The endpoint that initiates the call setup attempt includes this 563 value in the User-User Information Element. The recipient of the 564 call setup attempt can extract the User-User Information Element and 565 correlate it with the value previously received in the SDP. If both 566 values match, then the call setup attempt corresponds to that 567 indicated in the SDP. 569 According to ITU-T Q.931 [ITU.Q931.1998], the User-User Information 570 Element (UUIE) identifier is composed of a first octet identifying 571 this as a User-User Information Element, a second octet containing 572 the Length of the user-user contents, a third octet containing a 573 Protocol Discriminator, and a value of up to 32 or 128 octets 574 (depending on network settings) containing the actual User 575 Information (see Figure 4-36 in ITU-T Q.931). The first two octets 576 of the UUIE MUST NOT be used for correlation, only the octets 577 carrying the Protocol Discriminator and the User Information value 578 are input to the creation of the value of the "uuie" subfield in the 579 "cs-correlation" attribute. Therefore, the value of the "uuie" 580 subfield in the "cs-correlation" attribute MUST start with the the 581 value starting at the Protocol Discriminator octet, followed by the 582 User Information octets. The value of the Protocol Discriminator 583 octet is not specified in this document; it is expected that 584 organizations using this technology will allocate a suitable value 585 for the Protocol Discriminator. 587 Once the binary value of the "uuie" subfield in the "cs-correlation" 588 attribute is created, it MUST be encoded in hexadecimal before it is 589 inserted in SDP. Each octet of binary data to be represented in the 590 hexadecimal encoding MUST be mapped to two hexadecimal digits 591 (represented by ASCII characters 0-9, A-F and a-f), each representing 592 four bits within the octet. The four bits appearing first in the 593 binary data MUST be mapped to the first hexadecimal digit and the 594 four subsequent bits in the binary data MUST be mapped to the second 595 hexadecimal digit. When mapping 4 bits to a hexadecimal digit, the 596 bit appearing first in the binary data shall be most significant. 597 Thus, the resulting hexadecimal encoded value needs to have an even 598 number of hexadecimal digits, and MUST be considered invalid if it 599 has an odd number. 601 Note that the encoding of the "uuie" subfield of the "cs- 602 correlation" attribute is largely inspired by the encoding of the 603 same value in the User-to-User header field in SIP, according to 604 the document A Mechanism for Transporting User to User Call 605 Control Information in SIP [I-D.ietf-cuss-sip-uui]. 607 As an example, an endpoint willing to send a UUIE containing a 608 protocol discriminator with the hexadecimal value of %x56 and an 609 hexadecimal User Information value of %xa390f3d2b7310023 would 610 include a "cs-correlation" attribute line as follows: 612 a=cs-correlation:uuie:56a390f3d2b7310023 614 Note that, for correlation purposes, the value of the User-User 615 Information Element is considered as a opaque string and only used 616 for correlation purposes. Typically call signaling protocols impose 617 requirements on the creation of User-User Information Element for 618 end-user protocol exchange. The details regarding the generation of 619 the User-User Information Element are outside the scope of this 620 specification. 622 Please note that there are no warranties that this correlation 623 mechanism works. On one side, policy restrictions might not make the 624 User-User information available end to end in the PSTN. On the other 625 hand, the generation of the User-User Information Element is 626 controlled by the PSTN circuit-switched call protocol, which might 627 not offer enough freedom for generating different values from one 628 endpoint to another one, or from one call to another in the same 629 endpoint. This might result in the same value of the User-User 630 Information Element for all calls. 632 5.2.3.4. DTMF Correlation Mechanism 634 We introduce a third mechanism for correlating the circuit-switched 635 bearer with the session described with SDP. This is based on 636 agreeing on a sequence of digits that are negotiated in the SDP 637 Offer/Answer exchange and sent as Dual Tone Multifrequency (DTMF) 638 tones over the circuit-switched bearer once this bearer is 639 established. If the DTMF digit sequence received through the 640 circuit-switched bearer matches the digit string negotiated in the 641 SDP, the circuit-switched bearer is correlated with the session 642 described in the SDP. The mechanism is similar to many voice 643 conferencing systems which require the user to enter a PIN code using 644 DTMF tones in order to be accepted in a voice conference. 646 The mechanism works as follows: An endpoint selects a DTMF digit 647 sequence. The same sequence is included in the SDP offer or SDP 648 answer, in a "dtmf" subfield of the "cs-correlation" attribute. When 649 the SDP Offer/Answer exchange is completed, each endpoint has become 650 aware of the DTMF sequence that will be sent right after the circuit- 651 switched bearer is set up. The endpoint that initiates the call 652 setup attempt sends the DTMF digits according to the procedures 653 defined for the circuit-switched bearer technology used. The 654 recipient (passive side of the bearer setup) of the call setup 655 attempt collects the digits and compares them with the value 656 previously received in the SDP. If the digits match, then the call 657 setup attempt corresponds to that indicated in the SDP. 659 Implementations are advised to select a number of DTMF digits that 660 provide enough assurance that the call is related, but on the 661 other hand do not prolong the bearer setup time unnecessarily. 663 As an example, an endpoint willing to send DTMF tone sequence "14D*3" 664 would include a "cs-correlation" attribute line as follows: 666 a=cs-correlation:dtmf:14D*3 668 If the endpoints successfully agree on the usage of the DTMF digit 669 correlation mechanism, but the passive side does not receive any DTMF 670 digits after successful circuit-switched bearer setup, or receives a 671 set of DTMF digits that do not match the value of the "dtmf" 672 attribute (including receiving too many digits), the passive side 673 SHOULD treat the circuit-switched bearer as not correlated to the 674 ongoing session. 676 DTMF digits can only be sent once the circuit-switched bearer is 677 set up. In order to suppress alerting for an incoming circuit- 678 switched call, implementations may choose various mechanisms. For 679 example, alerting may be suppressed for a certain time period for 680 incoming call attempts that originate from the number that was 681 observed during the offer/answer negotiation. 683 5.3. Negotiating the correlation mechanisms 685 The three correlation mechanisms presented above (based on called 686 party number, User-User Information Element and DTMF digit sending) 687 are non-exclusive, and can be used independently of each other. In 688 order to know how to populate the "a=cs-correlation" attribute, the 689 endpoints need to agree which endpoint will become the active party, 690 i.e. the one that will set up the circuit-switched bearer. 692 5.3.1. Determining the Direction of the Circuit-Switched Bearer Setup 694 In order to avoid a situation where both endpoints attempt to 695 initiate a connection simultaneously, the direction in which the 696 circuit-switched bearer is set up should be negotiated during the 697 Offer/Answer exchange. 699 The framework defined in RFC 4145 [RFC4145] allows the endpoints to 700 agree which endpoint acts as the active endpoint when initiating a 701 TCP connection. While RFC 4145 [RFC4145] was originally designed for 702 establishing TCP connections, it can be easily extrapolated to the 703 connection establishment of circuit-switched bearers. This 704 specification uses the concepts specified in RFC 4145 [RFC4145] for 705 agreeing on the direction of establishment of a circuit-switched 706 bearer. 708 RFC 4145 [RFC4145] defines two new attributes in SDP: "setup" and 709 "connection". The "setup" attribute indicates which of the endpoints 710 should initiate the connection establishment of the PSTN circuit- 711 switched bearer. Four values are defined in Section 4 of RFC 4145 712 [RFC4145]: "active", "passive", "actpass", "holdconn". Please refer 713 to Section 4 of RFC 4145 [RFC4145] for a detailed description of this 714 attribute. 716 The "connection" attribute indicates whether a new connection is 717 needed or an existing connection is reused. The attribute can take 718 the values "new" or "existing". Please refer to Section 5 of RFC 719 4145 [RFC4145] for a detailed description of this attribute. 721 Implementations according to this specification MUST support the 722 "setup" and "connection" attributes specified in RFC 4145 [RFC4145], 723 but applied to circuit-switched bearers in the PSTN. 725 We define the active party as the one that initiates the circuit- 726 switched bearer after the Offer/Answer process. The passive party is 727 the one receiving the circuit-switched bearer. Either party may 728 indicate its desire to become the active or passive party during the 729 Offer/Answer exchange using the procedures described in Section 5.6. 731 5.3.2. Populating the cs-correlation attribute 733 By defining values for the subfields in the "a=cs-correlation" 734 attribute, the endpoint indicates that it is willing to become the 735 active party, and that it can use those values in the Calling party 736 number, User-User Information Element, or as DTMF tones during the 737 circuit-switched bearer setup. 739 Thus, the following rules apply: 741 An endpoint that can only become the active party in the circuit- 742 switched bearer setup MUST include all correlation mechanisms it 743 supports in the "a=cs-correlation" attribute, and MUST also 744 specify values for the subfields. 746 An endpoint that can only become the passive party in the circuit- 747 switched bearer setup MUST include all correlation mechanisms it 748 supports in the "a=cs-correlation" attribute, but MUST NOT specify 749 values for the subfields. 751 An endpoint that is willing to become either the active or passive 752 party (by including the "a=setup:actpass" attribute in the Offer), 753 MUST include all correlation mechanisms it supports in the "a=cs- 754 correlation" attribute, and MUST also specify values for the 755 subfields. 757 5.3.3. Considerations on successful correlation 759 Note that, as stated above, it cannot be guaranteed that any given 760 correlation mechanism will succeed even if the usage of those was 761 agreed beforehand. This is due to the fact that the correlation 762 mechanisms require support from the circuit-switched bearer 763 technology used. 765 Therefore, even a single positive indication using any of these 766 mechanisms SHOULD be interpreted by the passive endpoint so that the 767 circuit-switched bearer establishment is related to the ongoing 768 session, even if the other correlation mechanisms fail. 770 If, after negotiating one or more correlation mechanisms in the SDP 771 offer/answer exchange, an endpoint receives a circuit-switched bearer 772 with no correlation information present, the endpoint has two 773 choices: it can either treat the call as unrelated, or treat the call 774 as related to the ongoing session in the IP domain. 776 An endpoint may for example specify a time window after SDP offer/ 777 answer exchange during which received calls are treated as correlated 778 even if the signaling in the circuit-switched domain does not carry 779 any correlation information. In this case, there is a chance that 780 the call is erroneously treated as related to the ongoing session. 782 An endpoint may also choose to always treat an incoming call as 783 unrelated if the signaling in the circuit-switched domain does not 784 carry any correlation information. In this case, there is a chance 785 that the call is erroneously treated as unrelated. 787 Since, in these cases, no correlation information can be deduced from 788 the signaling, it is up to the implementation to decide how to 789 behave. One option is also to let the user decide whether to accept 790 the call as related, or to treat the call as unrelated. 792 5.4. Considerations for Usage of Existing SDP 794 5.4.1. Originator of the Session 796 According to SDP [RFC4566], the origin line in SDP has the following 797 syntax: 799 o= 800 802 Of interest here are the and fields, which 803 indicate the type of network and type of address, respectively. 804 Typically, this field carries the IP address of the originator of the 805 session. Even if the SDP was used to negotiate an audio or video 806 media stream transported over a circuit-switched bearer, the 807 originator is using SDP over an IP bearer. Therefore, and 808 fields in the "o=" line should be populated with the IP 809 address identifying the source of the signaling. 811 5.4.2. Contact information 813 SDP [RFC4566] defines the "p=" line which may include the phone 814 number of the person responsible for the conference. Even though 815 this line can carry a phone number, it is not suited for the purpose 816 of defining a connection address for the media. Therefore, we have 817 selected to define the PSTN specific connection addresses in the "c=" 818 line. 820 5.5. Considerations for Usage of Third Party Call Control (3PCC) 822 Best Current Practices for Third Party Call Control (3pcc) in the 823 Session Initiation Protocol (SIP) [RFC3725] outlines several flows 824 which are possible in third party call control scenarios and 825 recommends some flows for specific situations. 827 One of the assumptions in [RFC3725] is that an SDP Offer may include 828 a "black hole" connection address, which has the property that 829 packets sent to it will never leave the host which sent them. For 830 IPv4, this "black hole" connection address is 0.0.0.0, or a domain 831 name within the .invalid DNS top level domain. 833 When using an E.164 address scheme in the context of third-party call 834 control, when the User Agent needs to indicate an unknown phone 835 number, it MUST populate the of the SDP "c=" line with a 836 "-" string. 838 Note that this may result in the recipient of the initial Offer in 839 rejecting the Offer if the recipient of the Offer is not aware of 840 its own E.164 number, and thus concluding that it will not be 841 possible to establish a circuit-switched bearer since neither 842 party is aware of their E.164 number. 844 5.6. Offer/Answer mode extensions 846 In this section, we define extensions to the Offer/Answer model 847 defined in The Offer/Answer Model in SDP [RFC3264] and extended in 848 the SDP Capability Negotiation [RFC5939] to allow for PSTN addresses 849 to be used with the Offer/Answer model. 851 5.6.1. Generating the Initial Offer 853 The Offerer, wishing to use PSTN audio or video stream, MUST populate 854 the "c=" and "m=" lines as follows. 856 The endpoint MUST set the in the "c=" line to "PSTN", and 857 the to "E164". Furthermore, the endpoint SHOULD set the 858 field to its own international E.164 number 859 (with a leading "+"). If the endpoint is not aware of its own E.164 860 number, it MUST set the to "-". 862 In the "m=" line, the endpoint MUST set the subfield to 863 "audio" or "video", depending on the media type, and the 864 subfield to "PSTN". The subfield SHOULD be set to "9" (the 865 discard port). 867 The subfield carries the payload type number(s) the endpoint is 868 wishing to use. Payload type numbers in this case refer to the 869 codecs that the endpoint wishes to use. For example, if the endpoint 870 wishes to use the GSM codec, it would add payload type number 3 in 871 the list of codecs. 873 For dynamic payload types, the endpoint MUST define the set of valid 874 encoding names and related parameters using the "a=rtpmap" attribute 875 line. See Section 6 of SDP [RFC4566] for details. 877 When generating the Offer, if the Offerer supports any of the 878 correlation mechanisms defined in this memo, it MUST include an 879 attribute line "a=cs-correlation" in the SDP offer. The "a=cs- 880 correlation" line contains an enumeration of the correlation 881 mechanisms supported by the Offerer, in the format of subfields. 883 The current list of subfields include "callerid", "uuie" and "dtmf" 884 and they refer to the correlation mechanisms defined in 885 Section 5.2.3.2, Section 5.2.3.3, and Section 5.2.3.4, respectively. 887 If the Offerer supports any of the correlation mechanisms defined in 888 this memo, and is willing to become the active party, the Offerer 889 MUST add the "callerid", "uuie", and/or "dtmf" subfields and MUST 890 specify values for those subfields. 892 o the international E.164 number as the value in the "callerid" 893 subfield, 895 o the contents of the User-User information element as the value of 896 the "uuie" subfield, and/or 898 o the DTMF tone string as the value of the "dtmf" subfield 900 If the Offerer is only able to become the passive party in the 901 circuit-switched bearer setup, it MUST add the "callerid", "uuie" 902 and/or "dtmf" subfields, but MUST NOT specify values for those 903 subfields. 905 For example, if the Offerer is willing to use the User-User 906 Information element and DTMF digit sending mechanisms, but can only 907 become the passive party, it includes the following lines to the SDP: 909 a=cs-correlation:uuie dtmf 911 a=setup:passive 913 If, on the other hand, the Offerer is willing to use the User-User 914 Information element and the DTMF correlation mechanisms, and is able 915 to become the active or passive side, it includes to following lines 916 to the SDP: 918 a=cs-correlation:uuie:56a390f3d2b7310023 dtmf:14D*3 919 a=setup:actpass 921 The negotiation of the value of the 'setup' attribute takes place as 922 defined in Section 4.1 of TCP-Based Media Transport in the SDP 923 [RFC4145]. 925 The Offerer states which role or roles it is willing to perform; and 926 the Answerer, taking the Offerer's willingness into consideration, 927 chooses which roles both endpoints will actually perform during the 928 circuit-switched bearer setup. 930 By 'active' endpoint, we refer to an endpoint that will establish the 931 circuit-switched bearer; and by 'passive' endpoint, we refer to an 932 endpoint that will receive a circuit-switched bearer. 934 If an Offerer does not know its international E.164 number, it MUST 935 set the 'a=setup' attribute to the value 'active'. If the Offerer 936 knows its international E.164 number, it MUST set the value to either 937 'actpass' or 'passive'. 939 Also 'holdconn' is a permissible value in the 'a=setup' attribute. 940 It indicates that the connection is not established for the time 941 being. 943 The Offerer uses the "a=connection" attribute to decide whether a new 944 circuit-switched bearer is to be established or not. For the initial 945 Offer, the Offerer MUST use value 'new'. 947 5.6.2. Generating the Answer 949 If the Offer contained a circuit-switched audio or video stream, the 950 Answerer first determines whether it is able to accept and use such 951 streams. If the Answerer is not willing to use circuit-switched 952 media for the session, it MUST construct an Answer where the port 953 number for such media stream(s) is set to zero, according to Section 954 6 of An Offer/Answer Model with the Session Description Protocol 955 (SDP) [RFC3264]. If the Answerer is willing to use circuit-switched 956 media for the session, it MUST ignore the received port number 957 (unless the port number is set to zero). 959 If the Offer included a "-" as the payload type number, it indicates 960 that the Offerer is not willing or able to define any specific 961 payload type. Most often, a "-" is expected to be used instead of 962 the payload type when the endpoint is not aware of or not willing to 963 define the codecs which will eventually be used on the circuit- 964 switched bearer. The circuit-switched signaling protocols have their 965 own means of negotiating or indicating the codecs, therefore an 966 Answerer SHOULD accept such Offers, and SHOULD set the payload type 967 to "-" also in the Answer. 969 If the Answerer explicitly wants to specify a codec for the circuit- 970 switched media, it MAY set the respective payload numbers in the 971 subfield in the answer. This behavior, however, is NOT 972 RECOMMENDED. 974 When receiving the Offer, the Answerer MUST determine whether it 975 becomes the active or passive party. 977 If the SDP in the Offer indicates that the Offerer is only able to 978 become the active party, the Answerer needs to determine whether it 979 is able to become the passive party. If this is not possible e.g. 980 due to the Answerer not knowing its international E.164 number, the 981 Answerer MUST reject the circuit-switched media by setting the port 982 number to zero on the Answer. If the Answerer is aware of its 983 international E.164 number, it MUST include the "a=setup" attribute 984 in the Answer and set it to value "passive" or "holdconn". 986 If the SDP in the Offer indicates that the Offerer is only able to 987 become the passive party, the Answerer MUST verify that the Offerer's 988 E.164 number is included in the "c=" line of the Offer. If the 989 number is included, the Answerer MUST include the "a=setup" attribute 990 in the Answer and set it to value "active" or "holdconn". If the 991 number is not included, call establishment is not possible, and the 992 Answerer MUST reject the circuit-switched media by setting the port 993 number to zero in the Answer. 995 If the SDP in the Offer indicates that the Offerer is able to become 996 either the active or passive party, the Answerer needs to determine 997 which role it would like to take. If the Offer includes an 998 international E.164 number in the "c=" line, the Answerer SHOULD 999 become the active party. If the Offer does not include an E.164 1000 number, and if the Answerer is aware of its international E.164 1001 number, it MUST become the passive party. If the Offer does not 1002 include an E.164 number in the "c=" line and the Answerer is not 1003 aware of its E.164 number, it MUST reject the circuit-switched media 1004 by setting the port number to zero in the Answer. 1006 The Answerer MUST select those correlation mechanisms from the Offer 1007 it supports, and include an "a=cs-correlation" attribute line in the 1008 Answer containing those mechanisms it supports. The Answerer MUST 1009 NOT add any mechanisms which were not included in the offer. 1011 If the Answerer becomes the active party, it MUST add any of the 1012 "callerid", "uuie" or "dtmf" subfield values. 1014 If the Answerer becomes the passive party, it MUST NOT add values to 1015 the "callerid", "uuie" and/or "dtmf" subfields. 1017 After generating and sending the Answer, if the Answerer became the 1018 active party, it 1020 o MUST extract the E.164 number from the "c=" line of the Offer and 1021 MUST establish a circuit-switched bearer to that address. 1023 o if the SDP Answer contained a value for the "callerid" subfield, 1024 must set the Calling Party Number Information Element to that 1025 number, 1027 o if the SDP Answer contained a value for the "uuie" subfield, MUST 1028 send the User-User Information element according to the rules 1029 defined for the circuit-switched technology used, and set the 1030 value of the Information Element to that received in the SDP 1031 Offer, 1033 o if the SDP Answer contained a value for the "dtmf" subfield, MUST 1034 send those DTMF digits according to the circuit-switched 1035 technology used. 1037 If, on the other hand, the Answerer became the passive party, it 1039 o MUST be prepared to receive a circuit-switched bearer, 1041 o if the Offer contained a value for the "callerid" subfield, MUST 1042 compare that value to the Calling Party Number Information Element 1043 of the circuit-switched bearer, 1045 o if the Offer contained a value for the "dtmf" subfield, MUST be 1046 prepared to receive and collect DTMF digits once the circuit- 1047 switched bearer is set up. The Answerer MUST compare the received 1048 DTMF digits to the value of the "dtmf" subfield. If the received 1049 DTMF digits match the value of the "dtmf" subfield in the "cs- 1050 correlation" attribute, the call SHOULD be treated as correlated 1051 to the ongoing session. 1053 o if the Offer contained a value for the "uuie" subfield, MUST be 1054 prepared to receive a User-User Information element once the 1055 circuit-switched bearer is set up. The Answerer MUST compare the 1056 received UUI to the value of the "uuie" subfield. If the value of 1057 the received UUI matches the value of the "uuie" subfield, the 1058 call SHOULD be treated as correlated to the ongoing session. 1060 5.6.3. Offerer processing the Answer 1062 When receiving the Answer, if the SDP does not contain "a=cs- 1063 correlation" attribute line, the Offerer should take that as an 1064 indication that the other party does not support or is not willing to 1065 use the procedures defined in the document for this session, and MUST 1066 revert to normal processing of SDP. 1068 When receiving the Answer, the Offerer MUST first determine whether 1069 it becomes the active or passive party, as described in Section 1070 Section 5.3.1. 1072 If the Offerer becomes the active party, it 1074 o MUST extract the E.164 number from the "c=" line and MUST 1075 establish a circuit-switched bearer to that address. 1077 o if the SDP Answer contained a value for the "uuie" subfield, MUST 1078 send the User-User Information element according to the rules 1079 defined for the circuit-switched technology used, and set the 1080 value of the Information Element to that received in the SDP 1081 Answer, 1083 o if the SDP Answer contained a value for the "dtmf" subfield, MUST 1084 send those DTMF digits according to the circuit-switched 1085 technology used. 1087 If the Offerer becomes the passive party, it 1089 o MUST be prepared to receive a circuit-switched bearer, 1091 o if the Answer contained a value for the "dtmf" subfield, MUST be 1092 prepared to receive and collect DTMF digits once the circuit- 1093 switched bearer is set up. The Offerer SHOULD compare the 1094 received DTMF digits to the value of the "dtmf" subfield. If the 1095 received DTMF digits match the value of the "dtmf" subfield in the 1096 "cs-correlation" attribute, the call SHOULD be treated as 1097 correlated to the ongoing session. 1099 o if the Answer contained a value for the "uuie" subfield, MUST be 1100 prepared to receive a User-User Information element once the 1101 circuit-switched bearer is set up. The Offerer SHOULD compare the 1102 received UUI to the value of the "uuie" subfield. If the value of 1103 the received UUI matches the value of the "uuie" subfield, the 1104 call SHOULD be treated as correlated to the ongoing session. 1106 5.6.4. Modifying the session 1108 If, at a later time, one of the parties wishes to modify the session, 1109 e.g., by adding new media stream, or by changing properties used on 1110 an existing stream, it may do so via the mechanisms defined for An 1111 Offer/Answer Model with SDP [RFC3264]. 1113 If there is an existing circuit-switched bearer between the 1114 endpoints, and the Offerer wants to reuse that the Offerer MUST set 1115 the value of the "a=connection" attribute to 'existing'. 1117 If either party removes the circuit-switched media from the session 1118 (by setting the port number to zero), it MUST terminate the circuit- 1119 switched bearer using whatever mechanism is appropriate for the 1120 technology in question. 1122 If either party wishes to drop and reestablish an existing call, that 1123 party MUST first remove the circuit-switched media from the session 1124 by setting the port number to zero, and then use another Offer/Answer 1125 exchange where it MUST set the "a=connection" attribute to 'new'". 1126 If the media types are different (for example, a different codec will 1127 be used for the circuit-switched bearer), the media descriptions for 1128 terminating the existing bearer and the new bearer can be in the same 1129 Offer. 1131 5.7. Formal Syntax 1133 The following is the formal Augmented Backus-Naur Form (ABNF) 1134 [RFC5234] syntax that supports the extensions defined in this 1135 specification. The syntax is built above the SDP [RFC4566] grammar. 1136 Implementations according to this specification MUST be compliant 1137 with this syntax. 1139 Figure 2 shows the formal syntax of the extensions defined in this 1140 memo. 1142 ; extension to the connection field originally specified 1143 ; in RFC 4566 1145 connection-field = [%x63 "=" nettype SP addrtype SP 1146 connection-address CRLF] 1147 ;nettype and addrtype are defined in RFC 4566 1149 connection-address /= e164-address / "-" 1150 e164-address = "+" 1*15DIGIT 1151 ; DIGIT is specified in RFC 5234 1153 ;subrules for correlation attribute 1154 attribute /= cs-correlation-attr 1155 ; attribute defined in RFC 4566 1156 cs-correlation-attr= "cs-correlation:" corr-mechanisms 1157 corr-mechanisms = corr-mech *(SP corr-mech) 1158 corr-mech = caller-id-mech / uuie-mech / 1159 dtmf-mech / ext-mech 1160 caller-id-mech = "callerid" [":" caller-id-value] 1161 caller-id-value = "+" 1*15DIGIT 1162 uuie-mech = "uuie" [":" uuie-value] 1163 uuie-value = 1*130(HEXDIG / %x61-66) 1164 ;0-9, A-F, and a-f 1165 ;HEXDIG defined in RFC5234 1166 dtmf-mech = "dtmf" [":" dtmf-value] 1167 dtmf-value = 1*32(DIGIT / %x41-44 / %x23 / %x2A ) 1168 ;0-9, A-D, '#' and '*' 1169 ext-mech = ext-mech-name[":" ext-mech-value] 1170 ext-mech-name = token 1171 ext-mech-value = token 1172 ; token is specified in RFC4566 1174 Figure 2: Syntax of the SDP extensions 1176 6. Examples 1178 In the examples below, where an SDP line is too long to be displayed 1179 as a single line, a braking character "\" indicates continuation in 1180 the following line. Note that this is character is included for 1181 displaying purposes. Implementation MUST write a single line without 1182 brakes. 1184 6.1. Single PSTN audio stream 1186 Alice Bob 1187 | | 1188 | (1) SDP Offer (PSTN audio) | 1189 |--------------------------------->| 1190 | | 1191 | (2) SDP Answer (PSTN audio) | 1192 |<---------------------------------| 1193 | | 1194 | PSTN call setup | 1195 |<---------------------------------| 1196 | | 1197 |<==== media over PSTN bearer ====>| 1198 | | 1200 Figure 3: Basic flow 1202 Figure 3 shows a basic example that describes a single audio media 1203 stream over a circuit-switched bearer. Alice generates a SDP Offer 1204 which is show in Figure 4. The Offer describes a PSTN circuit- 1205 switched bearer in the "m=" and "c=" line where it also indicates its 1206 international E.164 number format. Additionally, Alice expresses 1207 that she can initiate the circuit-switched bearer or be the recipient 1208 of it in the "a=setup" attribute line. The SDP Offer also includes a 1209 correlation identifiers that this endpoint will be inserting the 1210 Calling Party Number and/or User-User Information Element of the PSTN 1211 call setup if eventually this endpoint initiates the PSTN call. 1213 v=0 1214 o=jdoe 2890844526 2890842807 IN IP4 192.0.2.5 1215 s= 1216 t=0 0 1217 m=audio 9 PSTN - 1218 c=PSTN E164 +35891234567 1219 a=setup:actpass 1220 a=connection:new 1221 a=cs-correlation:callerid:+15551234 \ 1222 uuie:56a390f3d2b7310023 1224 Figure 4: SDP offer (1) 1226 Bob generates a SDP Answer (Figure 5), describing a PSTN audio media 1227 on port 9 without information on the media sub-type on the "m=" line. 1228 The "c=" line contains Bob's international E.164 number. In the 1229 "a=setup" line Bob indicates that he is willing to become the active 1230 endpoint when establishing the PSTN call, and he also includes the 1231 "a=cs-correlation" attribute line containing the values he is going 1232 to include in the Calling Party Number and User-User IE of the PSTN 1233 call establishment. 1235 v=0 1236 o=- 2890973824 2890987289 IN IP4 192.0.2.7 1237 s= 1238 t=0 0 1239 m=audio 9 PSTN - 1240 c=PSTN E164 +35897654321 1241 a=setup:active 1242 a=connection:new 1243 a=cs-correlation:callerid:+15554321 \ 1244 uuie:56a390f3d2b7310023 1246 Figure 5: SDP Answer with circuit-switched media 1248 When Alice receives the Answer, she examines that Bob is willing to 1249 become the active endpoint when setting up the PSTN call. Alice 1250 temporarily stores Bob's E.164 number and the User-User IE value of 1251 the "cs-correlation" attribute, and waits for a circuit-switched 1252 bearer establishment. 1254 Bob initiates a circuit-switched bearer using whatever circuit- 1255 switched technology is available for him. The called party number is 1256 set to Alice's number, and calling party number is set to Bob's own 1257 number. Bob also sets the User-User Information Element value to the 1258 on contained in the SDP Answer. 1260 When Alice receives the circuit-switched bearer establishment, she 1261 examines the UUIE and the calling party number, and by comparing 1262 those received during O/A exchange determines that the call is 1263 related to the SDP session. 1265 It may also be that neither the UUIE nor the calling party number is 1266 received by the called party, or the format of the calling party 1267 number is changed by the PSTN. Implementations may still accept such 1268 call establishment attempts as being related to the session that was 1269 established in the IP network. As it cannot be guaranteed that the 1270 values used for correlation are always passed intact through the 1271 network, they should be treated as additional hints that the circuit- 1272 switched bearer is actually related to the session. 1274 6.2. Advanced SDP example: Circuit-Switched Audio and Video Streams 1276 Alice Bob 1277 | | 1278 | (1) SDP Offer (PSTN audio and video) | 1279 |------------------------------------------->| 1280 | | 1281 | (2) SDP Answer (PSTN audio) | 1282 |<-------------------------------------------| 1283 | | 1284 | PSTN call setup | 1285 |<-------------------------------------------| 1286 | | 1287 |<======== media over PSTN bearer ==========>| 1288 | | 1290 Figure 6: Circuit-Switched Audio and Video streams 1292 Figure 6 shows an example of negotiating audio and video media 1293 streams over circuit-switched bearers. 1295 v=0 1296 o=jdoe 2890844526 2890842807 IN IP4 192.0.2.5 1297 s= 1298 t=0 0 1299 a=setup:actpass 1300 a=connection:new 1301 a=cs-correlation:dtmf:112233 1302 c=PSTN E164 +35891234567 1303 m=audio 9 PSTN - 1304 m=video 9 PSTN 34 1305 a=rtpmap:34 H263/90000 1307 Figure 7: SDP offer with circuit-switched audio and video (1) 1309 Upon receiving the SDP offer descibed in Figure 7, Bob rejects the 1310 video stream as his device does not currently support video, but 1311 accepts the circuit-switched audio stream. As Alice indicated that 1312 she is able to become either the active, or passive party, Bob gets 1313 to select which role he would like to take. Since the Offer 1314 contained the international E.164 number of Alice, Bob decides that 1315 he becomes the active party in setting up the circuit-switched 1316 bearer. Bob includes a new value in the "dtmf" subfield of the "cs- 1317 correlation" attribute, which he is going send as DTMF tones once the 1318 bearer setup is complete. The Answer is described in Figure 8 1319 v=0 1320 o=- 2890973824 2890987289 IN IP4 192.0.2.7 1321 s= 1322 t=0 0 1323 a=setup:active 1324 a=connection:new 1325 a=cs-correlation:dtmf:332211 1326 c=PSTN E164 +35897654321 1327 m=audio 9 PSTN - 1328 m=video 0 PSTN 34 1330 Figure 8: SDP answer with circuit-switched audio and video (2) 1332 7. Security Considerations 1334 This document provides an extension on top of RFC 4566 [RFC4566], and 1335 RFC 3264 [RFC3264]. As such, the security considerations of those 1336 documents apply. 1338 This memo provides mechanisms to agree on a correlation identifier or 1339 identifiers that are used to evaluate whether an incoming circuit- 1340 switched bearer is related to an ongoing session in the IP domain. 1341 If an attacker replicates the correlation identifer and establishes a 1342 call within the time window the receiving endpoint is expecting a 1343 call, the attacker may be able to hijack the circuit-switched bearer. 1344 These types of attacks are not specific to the mechanisms presented 1345 in this memo. For example, caller ID spoofing is a well known attack 1346 in the PSTN. Users are advised to use the same caution before 1347 revealing sensitive information as they would on any other phone 1348 call. Furthermore, users are advised that mechanisms that may be in 1349 use in the IP domain for securing the media, like Secure RTP (SRTP) 1350 [RFC3711], are not available in the CS domain. 1352 For the purposes of establishing a circuit-switched bearer, the 1353 active endpoint needs to know the passive endpoint's phone number. 1354 Phone numbers are sensitive information, and some people may choose 1355 not to reveal their phone numbers when calling using supplementary 1356 services like Calling Line Identification Restriction (CLIR) in GSM. 1357 Implementations should take the caller's preferences regarding 1358 calling line identification into account if possible, by restricting 1359 the inclusion of the phone number in SDP "c=" line if the caller has 1360 chosen to use CLIR. If this is not possible, implementations may 1361 present a prompt informing the user that their phone number may be 1362 transmitted to the other party. 1364 Similarly as with IP addresses, if there is a desire the protect the 1365 SDP containing phone numbers carried in SIP, implementers are adviced 1366 to follow the security mechanisms defined in [RFC3261]. 1368 8. IANA Considerations 1370 This document instructs IANA to register a number of SDP tokens 1371 according to the following data. 1373 8.1. Registration of new cs-correlation SDP attribute 1375 Contact: Miguel Garcia 1377 Attribute name: cs-correlation 1379 Long-form attribute name: PSTN Correlation Identifier 1381 Type of attribute: media level only 1383 This attribute is subject to the charset attribute 1385 Description: This attribute provides the Correlation Identifier 1386 used in PSTN signaling 1388 Specification: RFC XXXX 1390 The IANA is requested the create a subregistry for 'cs-correlation' 1391 attribute under the Session Description Protocol (SDP) Parameters 1392 registry. The initial values for the subregistry are presented in 1393 the following, and IANA is requested to add them into its database: 1395 Value of 'cs-correlation' attribute Reference Description 1396 ----------------------------------- --------- ----------- callerid 1397 RFC XXXX Caller ID uuie RFC XXXX User-User Information Element dtmf 1398 RFC XXXX Dual-tone Multifrequency 1400 Note for the RFC Editor: 'RFC XXXX' above should be replaced by a 1401 reference to the RFC number of this draft. 1403 As per the terminology in [RFC2434], the registration policy for new 1404 values of 'cs-correlation' parameter is 'Specification Required'. 1406 8.2. Registration of a new "nettype" value 1408 This memo provides instructions to IANA to register a new "nettype" 1409 in the Session Description Protocol Parameters registry [1]. The 1410 registration data, according to RFC 4566 [RFC4566] follows. 1412 Type SDP Name Reference 1413 ---- ------------------ --------- 1414 nettype PSTN [RFCxxxx] 1416 8.3. Registration of new "addrtype" values 1418 This memo provides instructions to IANA to register a new "addrtype" 1419 in the Session Description Protocol Parameters registry [1]. The 1420 registration data, according to RFC 4566 [RFC4566] follows. 1422 Type SDP Name Reference 1423 ---- ------------------ --------- 1424 addrtype E164 [RFCxxxx] 1425 - [RFCxxxx] 1427 8.4. Registration of a new "proto" value 1429 This memo provides instructions to IANA to register a new "proto" in 1430 the Session Description Protocol Parameters registry [1]. The 1431 registration data, according to RFC 4566 [RFC4566] follows. 1433 Type SDP Name Reference 1434 -------------- --------------------------- --------- 1435 proto PSTN [RFCxxxx] 1437 9. Acknowledgments 1439 The authors want to thank Paul Kyzivat, Flemming Andreasen, Thomas 1440 Belling, John Elwell, Jari Mutikainen, Miikka Poikselka, Jonathan 1441 Rosenberg, Ingemar Johansson, Christer Holmberg, and Alf Heidermark 1442 for providing their insight and comments on this document. 1444 10. References 1446 10.1. Normative References 1448 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1449 Requirement Levels", BCP 14, RFC 2119, March 1997. 1451 [RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing an 1452 IANA Considerations Section in RFCs", BCP 26, RFC 2434, 1453 October 1998. 1455 [RFC3108] Kumar, R. and M. Mostafa, "Conventions for the use of the 1456 Session Description Protocol (SDP) for ATM Bearer 1457 Connections", RFC 3108, May 2001. 1459 [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model 1460 with Session Description Protocol (SDP)", RFC 3264, 1461 June 2002. 1463 [RFC4145] Yon, D. and G. Camarillo, "TCP-Based Media Transport in 1464 the Session Description Protocol (SDP)", RFC 4145, 1465 September 2005. 1467 [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session 1468 Description Protocol", RFC 4566, July 2006. 1470 [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax 1471 Specifications: ABNF", STD 68, RFC 5234, January 2008. 1473 [RFC5939] Andreasen, F., "Session Description Protocol (SDP) 1474 Capability Negotiation", RFC 5939, September 2010. 1476 10.2. Informative References 1478 [I-D.ietf-cuss-sip-uui] 1479 Johnston, A. and J. Rafferty, "A Mechanism for 1480 Transporting User to User Call Control Information in 1481 SIP", draft-ietf-cuss-sip-uui-06 (work in progress), 1482 May 2012. 1484 [ITU.E164.1991] 1485 International Telecommunications Union, "The International 1486 Public Telecommunication Numbering Plan", ITU- 1487 T Recommendation E.164, 1991. 1489 [ITU.Q931.1998] 1490 "Digital Subscriber Signalling System No. 1 (DSS 1) - ISDN 1491 User - Network Interface Layer 3 Specification for Basic 1492 Call Control", ISO Standard 9594-1, May 1998. 1494 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 1495 A., Peterson, J., Sparks, R., Handley, M., and E. 1496 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 1497 June 2002. 1499 [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. 1500 Jacobson, "RTP: A Transport Protocol for Real-Time 1501 Applications", STD 64, RFC 3550, July 2003. 1503 [RFC3551] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and 1504 Video Conferences with Minimal Control", STD 65, RFC 3551, 1505 July 2003. 1507 [RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. 1508 Norrman, "The Secure Real-time Transport Protocol (SRTP)", 1509 RFC 3711, March 2004. 1511 [RFC3725] Rosenberg, J., Peterson, J., Schulzrinne, H., and G. 1512 Camarillo, "Best Current Practices for Third Party Call 1513 Control (3pcc) in the Session Initiation Protocol (SIP)", 1514 BCP 85, RFC 3725, April 2004. 1516 [RFC4975] Campbell, B., Mahy, R., and C. Jennings, "The Message 1517 Session Relay Protocol (MSRP)", RFC 4975, September 2007. 1519 [TS.24.008] 1520 3GPP, "Mobile radio interface Layer 3 specification; Core 1521 network protocols; Stage 3", 3GPP TS 24.008 3.20.0, 1522 December 2005. 1524 URIs 1526 [1] 1528 Authors' Addresses 1530 Miguel A. Garcia-Martin 1531 Ericsson 1532 Calle Via de los Poblados 13 1533 Madrid, ES 28033 1534 Spain 1536 Email: miguel.a.garcia@ericsson.com 1538 Simo Veikkolainen 1539 Nokia 1540 P.O. Box 226 1541 NOKIA GROUP, FI 00045 1542 Finland 1544 Phone: +358 50 486 4463 1545 Email: simo.veikkolainen@nokia.com