idnits 2.17.1 draft-ietf-mmusic-sdp-cs-23.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 date (February 11, 2014) is 3720 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) -- Looks like a reference, but probably isn't: '1' on line 1764 == Missing Reference: 'RFCxxxx' is mentioned on line 1653, but not defined -- Looks like a reference, but probably isn't: '2' on line 1766 -- Looks like a reference, but probably isn't: '3' on line 1768 -- Possible downref: Non-RFC (?) normative reference: ref. 'ITU.Q931.1998' ** Obsolete normative reference: RFC 4566 (Obsoleted by RFC 8866) ** Obsolete normative reference: RFC 5226 (Obsoleted by RFC 8126) == Outdated reference: A later version (-17) exists of draft-ietf-cuss-sip-uui-12 Summary: 2 errors (**), 0 flaws (~~), 3 warnings (==), 6 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: August 15, 2014 Nokia 6 February 11, 2014 8 Session Description Protocol (SDP) Extension For Setting Audio and Video 9 Media Streams Over Circuit-Switched Bearers In The Public Switched 10 Telephone Network (PSTN) 11 draft-ietf-mmusic-sdp-cs-23 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 August 15, 2014. 37 Copyright Notice 39 Copyright (c) 2014 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 Table of Contents 54 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 55 2. Conventions Used in This Document . . . . . . . . . . . . . . 4 56 3. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 5 57 4. Overview of Operation . . . . . . . . . . . . . . . . . . . . 5 58 4.1. Example Call Flow . . . . . . . . . . . . . . . . . . . . 6 59 5. Protocol Description . . . . . . . . . . . . . . . . . . . . 7 60 5.1. Level of Compliance . . . . . . . . . . . . . . . . . . . 7 61 5.2. Extensions to SDP . . . . . . . . . . . . . . . . . . . . 7 62 5.2.1. Connection Data . . . . . . . . . . . . . . . . . . . 7 63 5.2.2. Media Descriptions . . . . . . . . . . . . . . . . . 9 64 5.2.3. Correlating the PSTN Circuit-Switched Bearer with SDP 10 65 5.2.3.1. The "cs-correlation" attribute . . . . . . . . . 11 66 5.2.3.2. Caller-ID Correlation Mechanism . . . . . . . . . 12 67 5.2.3.3. User-User Information Element Correlation 68 Mechanism . . . . . . . . . . . . . . . . . . . . 13 69 5.2.3.4. DTMF Correlation Mechanism . . . . . . . . . . . 14 70 5.2.3.5. The external correlation mechanism . . . . . . . 15 71 5.2.3.6. Extensions to correlation mechanisms . . . . . . 16 72 5.3. Negotiating the correlation mechanisms . . . . . . . . . 16 73 5.3.1. Determining the Direction of the Circuit-Switched 74 Bearer Setup . . . . . . . . . . . . . . . . . . . . 17 75 5.3.2. Populating the cs-correlation attribute . . . . . . . 17 76 5.3.3. Considerations on correlations . . . . . . . . . . . 18 77 5.4. Considerations for Usage of Existing SDP . . . . . . . . 19 78 5.4.1. Originator of the Session . . . . . . . . . . . . . . 19 79 5.4.2. Contact information . . . . . . . . . . . . . . . . . 19 80 5.5. Considerations for Usage of Third Party Call Control 81 (3PCC) . . . . . . . . . . . . . . . . . . . . . . . . . 20 82 5.6. Offer/Answer mode extensions . . . . . . . . . . . . . . 20 83 5.6.1. Generating the Initial Offer . . . . . . . . . . . . 20 84 5.6.2. Generating the Answer . . . . . . . . . . . . . . . . 23 85 5.6.3. Offerer processing the Answer . . . . . . . . . . . . 25 86 5.6.4. Modifying the session . . . . . . . . . . . . . . . . 27 87 5.7. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . 28 88 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 29 89 6.1. Single PSTN audio stream . . . . . . . . . . . . . . . . 30 90 6.2. Advanced SDP example: Circuit-Switched Audio and 91 Video Streams . . . . . . . . . . . . . . . . . . . . . . 32 92 7. Security Considerations . . . . . . . . . . . . . . . . . . . 33 93 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 34 94 8.1. Registration of new cs-correlation SDP attribute . . . . 34 95 8.2. Registration of a new "nettype" value . . . . . . . . . . 35 96 8.3. Registration of new "addrtype" value . . . . . . . . . . 35 97 8.4. Registration of a new "proto" value . . . . . . . . . . . 35 98 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 36 99 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 36 100 10.1. Normative References . . . . . . . . . . . . . . . . . . 36 101 10.2. Informative References . . . . . . . . . . . . . . . . . 37 102 10.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 38 103 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 38 105 1. Introduction 107 The Session Description Protocol (SDP) [RFC4566] is intended for 108 describing multimedia sessions for the purposes of session 109 announcement, session invitation, and other forms of multimedia 110 session initiation. SDP is most commonly used for describing media 111 streams that are transported over the Real-Time Transport Protocol 112 (RTP) [RFC3550], using the profiles for audio and video media defined 113 in RTP Profile for Audio and Video Conferences with Minimal Control 114 [RFC3551]. 116 However, SDP can be used to describe other media transport protocols 117 than RTP. Previous work includes SDP conventions for describing ATM 118 bearer connections [RFC3108] and the Message Session Relay Protocol 119 [RFC4975]. 121 SDP is commonly carried in Session Initiation Protocol (SIP) 122 [RFC3261] messages in order to agree on a common media description 123 among the endpoints. An Offer/Answer Model with Session Description 124 Protocol (SDP) [RFC3264] defines a framework by which two endpoints 125 can exchange SDP media descriptions and come to an agreement as to 126 which media streams should be used, along with the media related 127 parameters. 129 In some scenarios it might be desirable to establish the media stream 130 over a circuit-switched bearer connection even if the signaling for 131 the session is carried over an IP bearer. An example of such a 132 scenario is illustrated with two mobile devices capable of both 133 circuit-switched and packet-switched communication over a low- 134 bandwidth radio bearer. The radio bearer may not be suitable for 135 carrying real-time audio or video media, and using a circuit-switched 136 bearer would offer a better perceived quality of service. So, 137 according to this scenario, SDP and its higher layer session control 138 protocol (e.g., the Session Initiation Protocol (SIP) [RFC3261]) are 139 used over regular IP connectivity, while the audio or video is 140 received through the classical circuit-switched bearer. 142 This document addresses only the use of circuit-switched bearers in 143 the PSTN, not a generic circuit-switched network. The mechanisms 144 presented below require a call signaling protocol of the PSTN to be 145 used (such as ITU-T Q.931 [ITU.Q931.1998] or 3GPP TS 24.008 146 [TS.24.008]). 148 Setting up a signaling relationship in the IP domain instead of just 149 setting up a circuit-switched call offers also the possibility of 150 negotiating in the same session other IP based media that is not 151 sensitive to jitter and delay, for example, text messaging or 152 presence information. 154 At a later point in time the mobile device might move to an area 155 where a high-bandwidth packet-switched bearer, for example a Wireless 156 Local Area Network (WLAN) connection, is available. At this point 157 the mobile device may perform a handover and move the audio or video 158 media streams over to the high-speed bearer. This implies a new 159 exchange of SDP Offer/Answer that leads to a re-negotiation of the 160 media streams. 162 Other use cases exist. For example, an endpoint might have at its 163 disposal circuit-switched and packet-switched connectivity, but the 164 same audio or video codecs are not feasible for both access networks. 165 For example, the circuit-switched audio or video stream supports 166 narrow-bandwidth codecs, while the packet-switched access allows any 167 other audio or video codec implemented in the endpoint. In this 168 case, it might be beneficial for the endpoint to describe different 169 codecs for each access type and get an agreement on the bearer 170 together with the remote endpoint. 172 There are additional use cases related to third party call control 173 where the session setup time is improved when the circuit-switched 174 bearer in the PSTN is described together with one or more codecs. 176 The rest of the document is structured as follows: Section 2 provides 177 the document conventions, Section 3 introduces the requirements, 178 Section 4 presents an overview of the proposed solutions, and 179 Section 5 contains the protocol description. Section 6 provides an 180 example of descriptions of circuit-switched audio or video streams in 181 SDP. Section 7 and Section 8 contain the Security and IANA 182 considerations, respectively. 184 2. Conventions Used in This Document 186 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 187 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 188 "OPTIONAL" in this document are to be interpreted as described in BCP 189 14, RFC 2119 [RFC2119] and indicate requirement levels for compliant 190 implementations. 192 3. Requirements 194 This section presents the general requirements that are specific for 195 the audio or video media streams over circuit-switched bearers. 197 REQ-1: A mechanism for endpoints to negotiate and agree on an audio 198 or video media stream established over a circuit-switched 199 bearer MUST be available. 201 REQ-2: The mechanism MUST allow the endpoints to combine circuit- 202 switched audio or video media streams with other 203 complementary media streams, for example, text messaging. 205 REQ-3: The mechanism MUST allow the endpoint to negotiate the 206 direction of the circuit-switched bearer, i.e., which 207 endpoint is active when initiating the circuit-switched 208 bearer. 210 REQ-4: The mechanism MUST be independent of the type of the circuit- 211 switched access (e.g., Integrated Services Digital Network 212 (ISDN), Global System for Mobile Communication (GSM), etc.) 214 REQ-5: There MUST be a mechanism that helps an endpoint to correlate 215 an incoming circuit-switched bearer with the one negotiated 216 in SDP, as opposed to another incoming call that is not 217 related to that. In case correlation by programmatic means 218 is not possible, correlation may also be performed by the 219 human user. 221 REQ-6: It MUST be possible for endpoints to advertise different 222 lists of audio or video codecs in the circuit-switched audio 223 or video stream from those used in a packet-switched audio or 224 video stream. 226 REQ-7: It MUST be possible for endpoints to not advertise the list 227 of available codecs for circuit-switched audio or video 228 streams. 230 4. Overview of Operation 232 The mechanism defined in this memo extends SDP and allows describing 233 an audio or video media stream established over a circuit-switched 234 bearer. A new network type ("PSTN") and a new protocol type ("PSTN") 235 are defined for the "c=" and "m=" lines to be able to describe a 236 media stream over a circuit-switched bearer. These SDP extensions 237 are described in Section 5.2. Since circuit-switched bearers are 238 connection-oriented media streams, the mechanism re-uses the 239 connection-oriented extensions defined in RFC 4145 [RFC4145] to 240 negotiate the active and passive sides of a connection setup. This 241 is further described in Section 5.3.1. 243 4.1. Example Call Flow 245 Consider the example presented in Figure 1. In this example, 246 Endpoint A is located in an environment where it has access to both 247 IP and circuit-switched bearers for communicating with other 248 endpoints. Endpoint A decides that the circuit-switched bearer 249 offers a better perceived quality of service for voice, and issues an 250 SDP Offer containing the description of an audio media stream over 251 circuit-switched bearer. 253 Endpoint A Endpoint B 254 | (1) SDP Offer (PSTN audio) | 255 |----------------------------------->| 256 | | 257 | (2) SDP Answer (PSTN audio) | 258 |<-----------------------------------| 259 | | 260 | PSTN call setup | 261 |<-----------------------------------| 262 | | 263 | | 264 |<===== media over PSTN bearer =====>| 265 | | 267 Figure 1: Example Flow 269 Endpoint B receives the SDP offer and determines that it is located 270 in an environment where the IP based bearer is not suitable for real- 271 time audio media. However, Endpoint B also has PSTN circuit-switched 272 bearer available for audio. Endpoint B generates an SDP answer 273 containing a description of the audio media stream over a circuit- 274 switched bearer. 276 During the offer-answer exchange Endpoints A and B also agree the 277 direction in which the circuit-switched bearer should be established. 278 In this example, Endpoint B becomes the active party, in other words, 279 it 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 the two endpoints. 286 Endpoint B establishes a circuit-switched bearer towards Endpoint A 287 using whatever mechanisms are defined for the network type in 288 question. When receiving the incoming circuit-switched connection 289 attempt, Endpoint A is able to determine that the attempt is related 290 to the session it is just establishing with B. 292 Endpoint A accepts the circuit-switched connection; the circuit- 293 switched bearer setup is completed. The two endpoints can now use 294 the circuit-switched connection for two-way audio media. 296 If, for some reason, Endpoint B would like to reject the offered 297 stream, it would set the port number of the specific stream to zero, 298 as specified in RFC3264 [RFC3264]. Also, if B does not understand 299 some of the SDP attributes specified in this document, it 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 to be used within the context of a "PSTN" network type. The 338 "E164" address type indicates that the connection address contains an 339 E.164 number represented according to the ITU-T E.164 [ITU.E164.1991] 340 recommendation. 342 It is a common convention that an international E.164 number contains 343 a leading '+' sign. For consistency's sake, we also require the 344 E.164 telephone is prepended with a '+', even if that is not 345 necessary for routing of the call in the PSTN network. 347 There are cases, though, when the endpoint is merely aware of a 348 circuit-switched bearer, without having further information about the 349 E.164 number allocated to it. In these cases a dash ("-") is used to 350 indicate an unknown connection address. This makes the connection 351 data line be according to the SDP syntax. 353 Please note that the "E164" address type defined in this memo is 354 exclusively defined to be used in conjunction with the "PSTN" network 355 type in accordance with regular Offer/Answer procedures [RFC4566]. 357 Note: RFC 3108 [RFC3108] also defines address type "E.164". This 358 definition is distinct from the one defined by this memo and shall 359 not be used with "PSTN". 361 This memo exclusively uses the international representation of E.164 362 numbers, i.e., those including a country code and, as described above 363 prepended with a '+' sign. Implementations conforming to this 364 specification and using the "E164" address type together with the 365 "PSTN" network type MUST use the 'global-number-digits' construction 366 specified in RFC 3966 [RFC3966] for representing international E.164 367 numbers. This representation requires the presence of the '+' sign, 368 and additionally allows for the presence of one or more 'visual- 369 separator' constructions for easier human readability (see 370 Section 5.7). 372 Note that MUST NOT be omitted when unknown since 373 this would violate basic syntax of SDP [RFC4566]. In such cases, it 374 MUST be set to a "-". 376 The following are examples of the extension to the connection data 377 line: 379 c=PSTN E164 +441134960123 381 c=PSTN E164 - 383 When the is E164, the connection address is defined as 384 follows: 386 o an international E.164 number (prepended with a '+' sign) 388 o the value "-", signifying that the address is unknown 390 o any other value resulting from the production rule of connection- 391 address in RFC4566 [RFC4566], but in all cases any value 392 encountered will be ignored. 394 5.2.2. Media Descriptions 396 According to SDP [RFC4566], the media description line in SDP has the 397 following syntax: 399 m= ... 401 The subfield carries the media type. For establishing an 402 audio bearer, the existing "audio" media type is used. For 403 establishing a video bearer, the existing "video" media type is used. 405 The subfield is the transport port to which the media stream 406 is sent. Circuit-switched access lacks the concept of a port number, 407 and therefore the subfield does not carry any meaningful 408 value. In order to be compliant with SDP syntax, implementations 409 SHOULD set the subfield to the discard port value "9" and MUST 410 ignore it on reception. 412 According to RFC 3264 [RFC3264], a port number of zero in the offer 413 of a unicast stream indicates that the stream is offered but must not 414 be used. If a port number of zero is present in the answer of a 415 unicast stream, it indicates that the stream is rejected. These 416 rules are still valid when the media line in SDP represents a 417 circuit-switched bearer. 419 The subfield is the transport protocol. The circuit-switched 420 bearer uses whatever transport protocol it has available. This 421 subfield SHOULD be set to the mnemonic "PSTN" to be syntactically 422 correct with SDP [RFC4566] and to indicate the usage of circuit- 423 switched protocols in the PSTN. 425 The subfield is the media format description. In the classical 426 usage of SDP to describe RTP-based media streams, when the 427 subfield is set to "RTP/AVP" or "RTP/SAVP", the subfield 428 contains the payload types as defined in the RTP audio profile 429 [RFC3551]. 431 When "RTP/AVP" is used in the field, the subfield 432 contains the RTP payload type numbers. We use the subfield to 433 indicate the list of available codecs over the circuit-switched 434 bearer, by re-using the conventions and payload type numbers defined 435 for RTP/AVP. The RTP audio and video media types, when applied to 436 PSTN circuit-switched bearers, represent merely an audio or video 437 codec. If the endpoint is able to determine the list of available 438 codecs for circuit-switched media streams, it MUST use the 439 corresponding payload type numbers in the subfield. 441 In some cases, the endpoint is not able to determine the list of 442 available codecs for circuit-switched media streams. In this case, 443 in order to be syntactically compliant with SDP [RFC4566], the 444 endpoint MUST include a single dash ("-") in the subfield. 446 As per RFC 4566 [RFC4566], the media format descriptions are listed 447 in priority order. 449 Examples of media descriptions for circuit-switched audio streams 450 are: 452 m=audio 9 PSTN 3 0 8 454 m=audio 9 PSTN - 456 Similarly, an example of a media description for circuit-switched 457 video stream is: 459 m=video 9 PSTN 34 461 m=video 9 PSTN - 463 5.2.3. Correlating the PSTN Circuit-Switched Bearer with SDP 465 The endpoints should be able to correlate the circuit-switched bearer 466 with the session negotiated with SDP in order to avoid ringing for an 467 incoming circuit-switched bearer that is related to the session 468 controlled with SDP (and SIP). 470 Several alternatives exist for performing this correlation. This 471 memo provides three mutually non-exclusive correlation mechanisms. 472 Additionally, we define a fourth mechanism where correlation may be 473 performed by external means, typically by the human user, in case 474 using other correlation mechanisms is not possible or does not 475 succeed. Other correlation mechanisms may exist, and their usage 476 will be specified when need arises. 478 All mechanisms share the same principle: some unique information is 479 sent in the SDP and in the circuit-switched signaling protocol. If 480 these pieces of information match, then the circuit-switched bearer 481 is part of the session described in the SDP exchange. Otherwise, 482 there is no guarantee that the circuit-switched bearer is related to 483 such session. 485 The first mechanism is based on the exchange of PSTN caller-ID 486 between the endpoints. The caller-ID is also available as the 487 Calling Party ID in the circuit-switched signaling. 489 The second mechanism is based on the inclusion in SDP of a value that 490 is also sent in the User-to-User Information Element that is part of 491 the bearer setup signaling in the PSTN. 493 The third mechanism is based on sending in SDP a string that 494 represents Dual-Tone Multi-Frequency (DTMF) digits that will be later 495 sent right after the circuit-switched bearer is established. 497 The fourth correlation mechanism declares support for cases where 498 correlation is done by external means. Typically this means that the 499 decision is left for the human user. This is the way how some 500 current conferencing systems operate: after logging on to the 501 conference, the system calls back to the user's phone number to 502 establish audio communications, and it is up to the human user to 503 accept or reject the incoming call. By declaring explicit support 504 for this mechanism endpoints can use it only when such possibility 505 exist. 507 Endpoints may opt to implement any combination of the correlation 508 mechanisms specified in Section 5.2.3.2, Section 5.2.3.3, 509 Section 5.2.3.4, and Section 5.2.3.5, including an option of 510 implementing none at all. 512 5.2.3.1. The "cs-correlation" attribute 514 In order to provide support for the correlation mechanisms, we define 515 a new media-level SDP attribute called "cs-correlation". There MUST 516 be at most one "cs-correlation" attribute per media description. 518 This "cs-correlation" attribute MAY contain zero or more subfields, 519 either "callerid", "uuie", "dtmf", or "external" to specify 520 additional information required by the Caller-ID, User to User 521 Information, DTMF, or external correlation mechanisms, respectively. 522 The list of correlation mechanisms may be extended by other 523 specifications, see Section 5.2.3.6 for more details. 525 The following sections provide more detailed information of these 526 subfields. 528 The values "callerid", "uuie", "dtmf" and "external" refer to the 529 correlation mechanisms defined in Section 5.2.3.2, Section 5.2.3.3, 530 Section 5.2.3.4 and, Section 5.2.3.5 respectively. The formal 531 Augmented Backus-Naur Format (ABNF) syntax of the "cs-correlation" 532 attribute is presented in Section 5.7. 534 5.2.3.2. Caller-ID Correlation Mechanism 536 The Caller-ID correlation mechanisms consists of an exchange of the 537 calling party number as an international E.164 number in SDP, 538 followed by the availability of the Calling Party Number information 539 element in the call setup signaling of the circuit switched 540 connection. If both pieces of information match, the circuit- 541 switched bearer is correlated to the session described in SDP. 543 Example of inclusion of an international E.164 number in the "cs- 544 correlation" attribute is: 546 a=cs-correlation:callerid:+441134960123 548 The presence of the "callerid" subfield indicates that the endpoint 549 supports use of the calling party number as a means of correlating a 550 PSTN call with the session being negotiated. The "callerid" subfield 551 MAY be accompanied by the international E.164 number of the party 552 inserting the parameter. 554 Note that there are no guarantees that this correlation mechanism 555 works or is even available, due a number of problems: 557 o The endpoint might not be aware of its own E.164 number, in which 558 case it cannot populate the SDP appropriately. 560 o The Calling Party Number information element in the circuit- 561 switched signaling might not be available, e.g., due to policy 562 restrictions of the network operator or caller restriction due to 563 privacy. 565 o The Calling Party Number information element in the circuit- 566 switched signaling might be available, but the digit 567 representation of the E.164 number might differ from the one 568 expressed in the SDP, due to, e.g., lack of country code. To 569 mitigate this problem implementations should consider only some of 570 the rightmost digits from the E.164 number for correlation. For 571 example, the numbers +44-113-496-0123 and 0113-496-0123 could be 572 considered as the same number. This is also the behavior of some 573 cellular phones, which correlate the incoming calling party with a 574 number stored in the phone book, for the purpose of displaying the 575 caller's name. Please refer to ITU-T E.164 recommendation 576 [ITU.E164.1991] for consideration of the relevant number of digits 577 to consider. 579 5.2.3.3. User-User Information Element Correlation Mechanism 581 A second correlation mechanism is based on including in SDP a string 582 that represents the User-User Information Element that is part of the 583 call setup signaling of the circuit-switched bearer. The User-User 584 Information Element is specified in ITU-T Q.931 [ITU.Q931.1998] and 585 3GPP TS 24.008 [TS.24.008], among others. The User-User Information 586 Element has a maximum size of 35 or 131 octets, depending on the 587 actual message of the PSTN protocol where it is included and the 588 network settings. 590 The mechanism works as follows: An endpoint creates a User-User 591 Information Element, according to the requirements of the call setup 592 signaling protocol. The same value is included in the SDP offer or 593 SDP answer, in the "uuie" subfield of the "cs-correlation" attribute. 594 When the SDP Offer/Answer exchange is completed, each endpoint has 595 become aware of the value that will be used in the User-User 596 Information Element of the call setup message of the PSTN protocol. 597 The endpoint that initiates the call setup attempt includes this 598 value in the User-User Information Element. The recipient of the 599 call setup attempt can extract the User-User Information Element and 600 correlate it with the value previously received in the SDP. If both 601 values match, then the call setup attempt corresponds to that 602 indicated in the SDP. 604 According to ITU-T Q.931 [ITU.Q931.1998], the User-User Information 605 Element (UUIE) identifier is composed of a first octet identifying 606 this as a User-User Information Element, a second octet containing 607 the Length of the user-user contents, a third octet containing a 608 Protocol Discriminator, and a value of up to 32 or 128 octets 609 (depending on network settings) containing the actual User 610 Information (see Figure 4-36 in ITU-T Q.931). The first two octets 611 of the UUIE MUST NOT be used for correlation, only the octets 612 carrying the Protocol Discriminator and the User Information value 613 are input to the creation of the value of the "uuie" subfield in the 614 "cs-correlation" attribute. Therefore, the value of the "uuie" 615 subfield in the "cs-correlation" attribute MUST start with the 616 Protocol Discriminator octet, followed by the User Information 617 octets. The value of the Protocol Discriminator octet is not 618 specified in this document; it is expected that organizations using 619 this technology will allocate a suitable value for the Protocol 620 Discriminator. 622 Once the binary value of the "uuie" subfield in the "cs-correlation" 623 attribute is created, it MUST be base 16 (also known as "hex") 624 encoded before it is inserted in SDP. Please refer to RFC 4648 625 [RFC4648] for a detailed description of base 16 encoding. The 626 resulting encoded value needs to have an even number of hexadecimal 627 digits, and MUST be considered invalid if it has an odd number. 629 Note that the encoding of the "uuie" subfield of the "cs- 630 correlation" attribute is largely inspired by the encoding of the 631 same value in the User-to-User header field in SIP, according to 632 the document "A Mechanism for Transporting User to User Call 633 Control Information in SIP" [I-D.ietf-cuss-sip-uui]. 635 As an example, an endpoint willing to send a UUIE containing a 636 protocol discriminator with the hexadecimal value of %x56 and an 637 hexadecimal User Information value of %xA390F3D2B7310023 would 638 include a "cs-correlation" attribute line as follows: 640 a=cs-correlation:uuie:56A390F3D2B7310023 642 Note that the value of the User-User Information Element is 643 considered as an opaque string and only used for correlation 644 purposes. Typically call signaling protocols impose requirements on 645 the creation of User-User Information Element for end-user protocol 646 exchange. The details regarding the generation of the User-User 647 Information Element are outside the scope of this specification. 649 Please note that there are no guarantees that this correlation 650 mechanism works. On one side, policy restrictions might not make the 651 User-User information available end to end in the PSTN. On the other 652 hand, the generation of the User-User Information Element is 653 controlled by the PSTN circuit-switched call protocol, which might 654 not offer enough freedom for generating different values from one 655 endpoint to another one, or from one call to another in the same 656 endpoint. This might result in the same value of the User-User 657 Information Element for all calls. 659 5.2.3.4. DTMF Correlation Mechanism 661 We introduce a third mechanism for correlating the circuit-switched 662 bearer with the session described with SDP. This is based on 663 agreeing on a sequence of digits that are negotiated in the SDP Offer 664 /Answer exchange and sent as Dual-Tone Multi-Frequency (DTMF) ITU-T 665 Recommendation Q.23 [ITU.Q23.1988] tones over the circuit-switched 666 bearer once this bearer is established. If the DTMF digit sequence 667 received through the circuit-switched bearer matches the digit string 668 negotiated in the SDP, the circuit-switched bearer is correlated with 669 the session described in the SDP. The mechanism is similar to many 670 voice conferencing systems which require the user to enter a PIN code 671 using DTMF tones in order to be accepted in a voice conference. 673 The mechanism works as follows: An endpoint selects a DTMF digit 674 sequence. The same sequence is included in the SDP offer or SDP 675 answer, in a "dtmf" subfield of the "cs-correlation" attribute. When 676 the SDP Offer/Answer exchange is completed, each endpoint has become 677 aware of the DTMF sequence that will be sent right after the circuit- 678 switched bearer is set up. The endpoint that initiates the call 679 setup attempt sends the DTMF digits according to the procedures 680 defined for the circuit-switched bearer technology used. The 681 recipient (passive side of the bearer setup) of the call setup 682 attempt collects the digits and compares them with the value 683 previously received in the SDP. If the digits match, then the call 684 setup attempt corresponds to that indicated in the SDP. 686 Implementations are advised to select a number of DTMF digits that 687 provide enough assurance that the call is related, but on the 688 other hand do not prolong the bearer setup time unnecessarily. A 689 number of 5 to 10 digits is a good compromise. 691 As an example, an endpoint willing to send DTMF tone sequence "14D*3" 692 would include a "cs-correlation" attribute line as follows: 694 a=cs-correlation:dtmf:14D*3 696 If the endpoints successfully agree on the usage of the DTMF digit 697 correlation mechanism, but the passive side does not receive any DTMF 698 digits after successful circuit-switched bearer setup, or receives a 699 set of DTMF digits that do not match the value of the "dtmf" 700 attribute (including receiving too many digits), the passive side 701 SHOULD consider that this DTMF mechanism has failed to correlate the 702 incoming call. 704 5.2.3.5. The external correlation mechanism 706 The fourth correlation mechanism relies on external means for 707 correlating the incoming call to the session. Since endpoints can 708 select which correlation mechanisms they support, it may happen that 709 no other common correlation mechanism is found, or that the selected 710 correlation mechanism does not succeed due to the required feature 711 not being supported by the underlying PSTN network. In these cases, 712 the human user can do the decision of accepting or rejecting the 713 incoming call, thus "correlating" the call with the session. Since 714 not all endpoints are operated by a human user, or if there is no 715 other external means implemented by the endpoint for the correlation 716 function, we explicitly define support for such external correlation 717 mechanism. 719 Endpoints wishing to use this external correlation mechanism would 720 use a subfield "external" in the "a=cs-correlation" attribute. 721 Unlike the three other correlation mechanism, the "external" subfield 722 does not accept a value. An example of a "a=cs-correlation" 723 attribute line would look like this: 725 a=cs-correlation:external 727 Endpoints which are willing to only use the three explicit 728 correlation mechanisms defined in this document ("callerid", "uuie", 729 and/or "dtmf") would not include the "external" mechanism in the 730 Offer/Answer exchange. 732 The external correlation mechanism typically relies on the human user 733 to do the decision on whether the call is related to the ongoing 734 session or not. After the user accepts the call, that bearer is 735 considered as related to the session. There is a small chance that 736 the user receives at the same time another circuit-switched call 737 which is not related to the ongoing session. The user may reject 738 this call if he is able to determine (e.g. based on the calling line 739 identification) that the call is not related to the session, and 740 continue waiting for another call attempt. If the user accepts the 741 incoming circuit-switched call, but it turns out to be not related to 742 the session, the endpoints need to rely on the human user to take 743 appropriate action (typically, they would hang up). 745 5.2.3.6. Extensions to correlation mechanisms 747 New values for the "cs-correlation" attribute may be specified. The 748 registration policy for new values is "Specification Required", see 749 Section 8. Any such specification MUST include a description of how 750 SDP Offer/Answer mechanism is used to negotiate the use of the new 751 values, taking into account how endpoints determine which side will 752 become active or passive (see Section 5.3 for more details). 754 If, during the Offer/Answer negotiation, either endpoint encounters 755 an unknown value in the "cs-correlation" attribute, it MUST consider 756 that mechanism as unsupported, and MUST NOT include that value in 757 subsequent Offer/Answer negotiation. 759 5.3. Negotiating the correlation mechanisms 761 The four correlation mechanisms presented above (based on called 762 party number, User-User Information Element, DTMF digit sending, and 763 external) are non-exclusive, and can be used independently of each 764 other. In order to know how to populate the "cs-correlation" 765 attribute, the endpoints need to agree which endpoint will become the 766 active party, i.e., the one that will set up the circuit-switched 767 bearer. 769 5.3.1. Determining the Direction of the Circuit-Switched Bearer Setup 771 In order to avoid a situation where both endpoints attempt to 772 initiate a connection simultaneously, the direction in which the 773 circuit-switched bearer is set up MUST be negotiated during the Offer 774 /Answer exchange. 776 The framework defined in RFC 4145 [RFC4145] allows the endpoints to 777 agree which endpoint acts as the active endpoint when initiating a 778 TCP connection. While RFC 4145 [RFC4145] was originally designed for 779 establishing TCP connections, it can be easily extrapolated to the 780 connection establishment of circuit-switched bearers. This 781 specification uses the concepts specified in RFC 4145 [RFC4145] for 782 agreeing on the direction of establishment of a circuit-switched 783 bearer. 785 RFC 4145 [RFC4145] defines two new attributes in SDP: "setup" and 786 "connection". The "setup" attribute indicates which of the endpoints 787 should initiate the connection establishment of the PSTN circuit- 788 switched bearer. Four values are defined in Section 4 of RFC 4145 789 [RFC4145]: "active", "passive", "actpass", "holdconn". Please refer 790 to Section 4 of RFC 4145 [RFC4145] for a detailed description of this 791 attribute. 793 The "connection" attribute indicates whether a new connection is 794 needed or an existing connection is reused. The attribute can take 795 the values "new" or "existing". Please refer to Section 5 of RFC 796 4145 [RFC4145] for a detailed description of this attribute. 798 Implementations according to this specification MUST support the 799 "setup" and "connection" attributes specified in RFC 4145 [RFC4145], 800 but applied to circuit-switched bearers in the PSTN. 802 We define the active party as the one that initiates the circuit- 803 switched bearer after the Offer/Answer exchange. The passive party 804 is the one receiving the circuit-switched bearer. Either party may 805 indicate its desire to become the active or passive party during the 806 Offer/Answer exchange using the procedures described in Section 5.6. 808 5.3.2. Populating the cs-correlation attribute 810 By defining values for the subfields in the "a=cs-correlation" 811 attribute, the endpoint indicates that it is willing to become the 812 active party, and that it can use those values in the Calling party 813 number, User-User Information Element, or as DTMF tones during the 814 circuit-switched bearer setup. 816 Thus, the following rules apply: 818 An endpoint that can only become the active party in the circuit- 819 switched bearer setup MUST include all correlation mechanisms it 820 supports in the "a=cs-correlation" attribute, and MUST also 821 specify values for the "callerid", "uuie" and "dtmf" subfields. 822 Notice that the "external" subfield does not accept a value. 824 An endpoint that can only become the passive party in the circuit- 825 switched bearer setup MUST include all correlation mechanisms it 826 supports in the "a=cs-correlation" attribute, but MUST NOT specify 827 values for the subfields. 829 An endpoint that is willing to become either the active or passive 830 party (by including the "a=setup:actpass" attribute in the Offer), 831 MUST include all correlation mechanisms it supports in the "a=cs- 832 correlation" attribute, and MUST also specify values for the 833 "callerid", "uuie" and "dtmf" subfields. Notice that the 834 "external" subfield does not accept a value. 836 5.3.3. Considerations on correlations 838 Passive endpoints should expect an incoming CS call for setting up 839 the audio bearer. Passive endpoints MAY suppress the incoming CS 840 alert during a certain time periods. Additional restrictions can be 841 applied, such as the passive endpoint not alerting incoming calls 842 originated from the number that was observed during the offer/answer 843 negotiation. 845 There may be cases when an endpoint is not willing to include one or 846 more correlation mechanisms in the "a=cs-correlation" attribute line 847 even if it supports it. For example, some correlation mechanisms can 848 be omitted if the endpoint is certain that the PSTN network does not 849 support carrying the correlation identifier. Also, since using the 850 DTMF based correlation mechanism requires the call to be accepted 851 before DTMF tones cane be sent, some endpoints may enforce a policy 852 restricting this due to for example cost associated with received 853 calls, making the DTMF based mechanism unusable. 855 Note that it cannot be guaranteed that the correlation mechanisms 856 relying on caller identification, User-User Information Element and 857 DTMF sending will succeed even if the usage of those was agreed 858 beforehand. This is due to the fact that the correlation mechanisms 859 require support from the circuit-switched bearer technology used. 861 Therefore, even a single positive indication using any of these 862 mechanisms SHOULD be interpreted by the passive endpoint so that the 863 circuit-switched bearer establishment is related to the ongoing 864 session, even if the other correlation mechanisms fail. 866 If, after successfully negotiating any of the "callerid", "uuie" or 867 "dtmf" correlation mechanisms in the SDP offer/answer exchange, an 868 endpoint receives an incoming establishment of a circuit-switched 869 bearer with no correlation information present, the endpoint first 870 checks whether the offer/answer exchange was used to successfully 871 negotiate also the "external" correlation mechanism. If it was, the 872 endpoint should leave the decision to be made by this external means, 873 typically the human user. If the "external" correlation mechanism 874 was not successfully negotiated, the endpoint should treat the call 875 as unrelated to the ongoing session in the IP domain. 877 5.4. Considerations for Usage of Existing SDP 879 5.4.1. Originator of the Session 881 According to SDP [RFC4566], the origin line in SDP has the following 882 syntax: 884 o= 885 887 Of interest here are the and fields, which 888 indicate the type of network and type of address, respectively. 889 Typically, this field carries the IP address of the originator of the 890 session. Even if the SDP was used to negotiate an audio or video 891 media stream transported over a circuit-switched bearer, the 892 originator is using SDP over an IP bearer. Therefore, and 893 fields in the "o=" line should be populated with the IP 894 address identifying the source of the signaling. 896 5.4.2. Contact information 898 SDP [RFC4566] defines the "p=" line which may include the phone 899 number of the person responsible for the conference. Even though 900 this line can carry a phone number, it is not suited for the purpose 901 of defining a connection address for the media. Therefore, we have 902 selected to define the PSTN specific connection addresses in the "c=" 903 line. 905 5.5. Considerations for Usage of Third Party Call Control (3PCC) 907 Best Current Practices for Third Party Call Control (3pcc) in the 908 Session Initiation Protocol (SIP) [RFC3725] outlines several flows 909 which are possible in third party call control scenarios and 910 recommends some flows for specific situations. 912 One of the assumptions in [RFC3725] is that an SDP Offer may include 913 a "black hole" connection address, which has the property that 914 packets sent to it will never leave the host which sent them. For 915 IPv4, this "black hole" connection address is 0.0.0.0, or a domain 916 name within the .invalid DNS top level domain. 918 When using an E.164 address scheme in the context of third-party call 919 control, when the User Agent needs to indicate an unknown phone 920 number, it MUST populate the of the SDP "c=" line with a 921 "-" string. 923 Note that this may result in the recipient of the initial offer 924 rejecting such offer if the recipient of the offer was not aware 925 of its own E.164 number. Consequently it will not be possible to 926 establish a circuit-switched bearer, since neither party is aware 927 of their E.164 number. 929 5.6. Offer/Answer mode extensions 931 In this section, we define extensions to the Offer/Answer model 932 defined in The Offer/Answer Model in SDP [RFC3264] to allow for PSTN 933 addresses to be used with the Offer/Answer model. 935 5.6.1. Generating the Initial Offer 937 The Offerer, wishing to use PSTN audio or video stream, MUST populate 938 the "c=" and "m=" lines as follows. 940 The endpoint MUST set the in the "c=" line to "PSTN", and 941 the to "E164". Furthermore, the endpoint SHOULD set the 942 field to its own international E.164 number 943 (with a leading "+"). If the endpoint is not aware of its own E.164 944 number, it MUST set the to "-". 946 In the "m=" line, the endpoint MUST set the subfield to 947 "audio" or "video", depending on the media type, and the 948 subfield to "PSTN". The subfield SHOULD be set to "9" (the 949 discard port). The values "audio" or "video" in the subfield 950 MUST NOT be set by the endpoint unless it has knowledge that these 951 bearer types are available on the circuit-switched network. 953 The subfield carries the payload type number(s) the endpoint is 954 wishing to use. Payload type numbers in this case refer to the 955 codecs that the endpoint wishes to use on the PSTN media stream. For 956 example, if the endpoint wishes to use the GSM codec, it would add 957 payload type number 3 in the list of codecs. The list of payload 958 types MUST only contain those codecs the endpoint is able to use on 959 the PSTN bearer. In case the endpoint is not aware of the codecs 960 available for the circuit-switched media streams, it MUST include a 961 dash ("-") in the subfield. 963 The mapping table of static payload types numbers to payload types is 964 initially specified in [RFC3551] and maintained by IANA. For dynamic 965 payload types, the endpoint MUST define the set of valid encoding 966 names and related parameters using the "a=rtpmap" attribute line. 967 See Section 6 of RFC 4566 [RFC4566] for details. 969 When generating the Offer, the Offerer MUST include an attribute line 970 "a=cs-correlation" in the SDP offer. The Offerer MUST NOT include 971 more than one "cs-correlation" attribute per media description. The 972 "a=cs-correlation" line SHOULD contain an enumeration of all the 973 correlation mechanisms supported by the Offerer, in the format of 974 subfields. See Section 5.3.3 for more information on usage of the 975 correlation mechanisms. 977 The current list of subfields include "callerid", "uuie", "dtmf", and 978 "extenal", and they refer to the correlation mechanisms defined in 979 Section 5.2.3.2, Section 5.2.3.3, Section 5.2.3.4, and 980 Section 5.2.3.5 respectively. 982 If the Offerer supports any of the correlation mechanisms defined in 983 this memo, and is willing to become the active party, the Offerer 984 MUST add the "callerid", "uuie", "dtmf" and/or "extern" subfields and 985 MUST specify values for them as follows: 987 o the international E.164 number as the value in the "callerid" 988 subfield, 990 o the contents of the User-User information element as the value of 991 the "uuie" subfield, and/or 993 o the DTMF tone string as the value of the "dtmf" subfield 995 o for the "external" subfield, the endpoint MUST NOT specify any 996 value. 998 If the Offerer is only able to become the passive party in the 999 circuit-switched bearer setup, it MUST add at least one of the 1000 possible correlation mechanisms, but MUST NOT specify values for 1001 those subfields. 1003 For example, if the Offerer is willing to use the User-User 1004 Information element and DTMF digit sending mechanisms but can only 1005 become the passive party, and is also able to let the human user 1006 decide whether the correlation should be done or not, it includes the 1007 following lines in the SDP: 1009 a=cs-correlation:uuie dtmf external 1011 a=setup:passive 1013 If, on the other hand, the Offerer is willing to use the User-User 1014 Information element and the DTMF correlation mechanisms and is able 1015 to become the active or passive side, and is also able to let the 1016 human user decide whether the correlation should be done or no, it 1017 includes the following lines in the SDP: 1019 a=cs-correlation:uuie:56A390F3D2B7310023 dtmf:14D*3 external 1021 a=setup:actpass 1023 The negotiation of the value of the 'setup' attribute takes place as 1024 defined in Section 4.1 of RFC4145 [RFC4145]. 1026 The Offerer states which role or roles it is willing to perform; and 1027 the Answerer, taking the Offerer's willingness into consideration, 1028 chooses which roles both endpoints will actually perform during the 1029 circuit-switched bearer setup. 1031 By 'active' endpoint, we refer to an endpoint that will establish the 1032 circuit-switched bearer; and by 'passive' endpoint, we refer to an 1033 endpoint that will receive a circuit-switched bearer. 1035 If an Offerer does not know its international E.164 number, it MUST 1036 set the 'a=setup' attribute to the value 'active'. If the Offerer 1037 knows its international E.164 number, it SHOULD set the value to 1038 either 'actpass' or 'passive'. 1040 Also 'holdconn' is a permissible value in the 'a=setup' attribute. 1041 It indicates that the connection should not be established for the 1042 time being. 1044 The Offerer uses the "a=connection" attribute to decide whether a new 1045 circuit-switched bearer is to be established or not. For the initial 1046 Offer, the Offerer MUST use value 'new'. 1048 5.6.2. Generating the Answer 1050 If the Offer contained a circuit-switched audio or video stream, the 1051 Answerer first determines whether it is able to accept and use such 1052 streams on the circuit-switched network. If the Answerer does not 1053 support or is not willing to use circuit-switched media for the 1054 session, it MUST construct an Answer where the port number for such 1055 media stream(s) is set to zero, according to Section 6 of [RFC3264]. 1056 If the Answerer is willing to use circuit-switched media for the 1057 session, it MUST ignore the received port number (unless the port 1058 number is set to zero). 1060 If the Offer included a "-" as the payload type number, it indicates 1061 that the Offerer is not willing or able to define any specific 1062 payload type. Most often, a "-" is expected to be used instead of 1063 the payload type when the endpoint is not aware of or not willing to 1064 define the codecs which will eventually be used on the circuit- 1065 switched bearer. The circuit-switched signaling protocols have their 1066 own means of negotiating or indicating the codecs, therefore an 1067 Answerer SHOULD accept such Offers, and SHOULD set the payload type 1068 to "-" also in the Answer. 1070 If the Answerer explicitly wants to specify a codec for the circuit- 1071 switched media, it MAY set the respective payload numbers in the 1072 subfield in the answer. This behavior, however, is NOT 1073 RECOMMENDED. 1075 When receiving the Offer, the Answerer MUST determine whether it 1076 becomes the active or passive party. 1078 If the SDP in the Offer indicates that the Offerer is only able to 1079 become the active party, the Answerer needs to determine whether it 1080 is able to become the passive party. If this is not possible e.g. 1081 due to the Answerer not knowing its international E.164 number, the 1082 Answerer MUST reject the circuit-switched media by setting the port 1083 number to zero on the Answer. If the Answerer is aware of its 1084 international E.164 number, it MUST include the "a=setup" attribute 1085 in the Answer and set it to value "passive" or "holdconn". The 1086 Answerer MUST also include its E.164 number in the "c=" line. 1088 If the SDP in the Offer indicates that the Offerer is only able to 1089 become the passive party, the Answerer MUST verify that the Offerer's 1090 E.164 number is included in the "c=" line of the Offer. If the 1091 number is included, the Answerer MUST include the "a=setup" attribute 1092 in the Answer and set it to value "active" or "holdconn". If the 1093 number is not included, or the recipient of the Offer is not willing 1094 to establish a connection the E.164 based on a priori knowledge of 1095 cost, or other reasons, call establishment is not possible, and the 1096 Answerer MUST reject the circuit-switched media by setting the port 1097 number to zero in the Answer. 1099 If the SDP in the Offer indicates that the Offerer is able to become 1100 either the active or passive party, the Answerer determines which 1101 role it will take. If the Offer includes an international E.164 1102 number in the "c=" line, the Answerer SHOULD become the active party. 1103 If the Answerer does not become the active party, and if the Answerer 1104 is aware of its E.164 number, it MUST become the passive party. If 1105 the Answerer does not become the active or the passive party, it MUST 1106 reject the circuit-switched media by setting the port number to zero 1107 in the Answer. 1109 For each media description where the Offer includes a "a=cs- 1110 correlation" attribute, the Answerer MUST select from the Offer those 1111 correlation mechanisms it supports, and include in the Answer one "a 1112 =cs-correlation" attribute line containing those mechanisms it is 1113 willing to use. The Answerer MUST only add one "a=cs-correlation" 1114 attribute in those media descriptions where also the Offer included a 1115 "a=cs-correlation" attribute. The Answerer MUST NOT add any 1116 mechanisms which were not included in the offer. If there are more 1117 than one "cs-correlation" attributes per media description in the 1118 Offer, the Answerer MUST discard all but the first for any media 1119 description. Also, the Answerer MUST discard all unknown "cs- 1120 correlation" attribute values. 1122 If the Answerer becomes the active party, it MUST add a value to any 1123 of the possible subfields. 1125 If the Answerer becomes the passive party, it MUST NOT add any values 1126 to the subfields in the "cs-correlation" attribute. 1128 After generating and sending the Answer, if the Answerer became the 1129 active party, it 1131 o MUST extract the E.164 number from the "c=" line of the Offer and 1132 MUST establish a circuit-switched bearer to that address. 1134 o if the SDP Answer contained a value for the "callerid" subfield, 1135 MUST set the Calling Party Number Information Element to that 1136 number, 1138 o if the SDP Answer contained a value for the "uuie" subfield, MUST 1139 send the User-User Information element according to the rules 1140 defined for the circuit-switched technology used, and set the 1141 value of the Information Element to that received in the SDP 1142 Offer, 1144 o if the SDP Answer contained a value for the "dtmf" subfield, MUST 1145 send those DTMF digits according to the circuit-switched 1146 technology used. 1148 If, on the other hand, the Answerer became the passive party, it 1150 o MUST be prepared to receive a circuit-switched bearer, 1152 o if the Offer contained a value for the "callerid" subfield, MUST 1153 compare that value to the Calling Party Number Information Element 1154 of the circuit-switched bearer. If the received Calling Party 1155 Number Information Element matches the value of the "callerid" 1156 subfield, the call SHOULD be treated as correlated to the ongoing 1157 session. 1159 o if the Offer contained a value for the "dtmf" subfield, MUST be 1160 prepared to receive and collect DTMF digits once the circuit- 1161 switched bearer is set up. The Answerer MUST compare the received 1162 DTMF digits to the value of the "dtmf" subfield. If the received 1163 DTMF digits match the value of the "dtmf" subfield in the "cs- 1164 correlation" attribute, the call SHOULD be treated as correlated 1165 to the ongoing session. 1167 o if the Offer contained a value for the "uuie" subfield, MUST be 1168 prepared to receive a User-User Information element once the 1169 circuit-switched bearer is set up. The Answerer MUST compare the 1170 received UUI to the value of the "uuie" subfield. If the value of 1171 the received UUI matches the value of the "uuie" subfield, the 1172 call SHOULD be treated as correlated to the ongoing session. 1174 o if the Offer contained a "external" subfield, MUST be prepared to 1175 receive a circuit-switched call and use the external means 1176 (typically the human user) for accepting or rejecting the call. 1178 If the Answerer becomes the active party, generates an SDP answer, 1179 and then it finds out that the circuit-switched call cannot be 1180 established, then the Answerer MUST create a new SDP offer where 1181 circuit-switched stream is removed from the session (actually, by 1182 setting the corresponding port in the m= line to zero) and send it to 1183 its counterpart. This is to synchronize both parties (and potential 1184 intermediaries) on the state of the session. 1186 5.6.3. Offerer processing the Answer 1188 When receiving the Answer, if the SDP does not contain "a=cs- 1189 correlation" attribute line, the Offerer should take that as an 1190 indication that the other party does not support or is not willing to 1191 use the procedures defined in the document for this session, and MUST 1192 revert to normal processing of SDP. 1194 When receiving the Answer, the Offerer MUST first determine whether 1195 it becomes the active or passive party, as described in 1196 Section 5.3.1. 1198 If the Offerer becomes the active party, it 1200 o MUST extract the E.164 number from the "c=" line and MUST 1201 establish a circuit-switched bearer to that address. 1203 o if the SDP Answer contained a value for the "uuie" subfield, MUST 1204 send the User-User Information element according to the rules 1205 defined for the circuit-switched technology used, and set the 1206 value of the Information Element to that received in the SDP 1207 Answer, 1209 o if the SDP Answer contained a value for the "dtmf" subfield, MUST 1210 send those DTMF digits according to the circuit-switched 1211 technology used. 1213 If the Offerer becomes the passive party, it 1215 o MUST be prepared to receive a circuit-switched bearer, 1217 o Note that if delivery of the Answer is delayed for some reason, 1218 the circuit-switched call attempt may arrive at the Offerer before 1219 the Answer has been processed. In this case, since the 1220 correlation mechanisms are negotiated as part of the Offer/Answer 1221 exchange, the Answerer cannot know whether or not the incoming 1222 circuit-switched call attempt is correlated with the session being 1223 negotiated, the Offerer SHOULD answer the circuit-switched call 1224 attempt only after it has received and processed the Answer. 1226 o If the Answer contained a value for the "dtmf" subfield, the 1227 Offerer MUST be prepared to receive and collect DTMF digits once 1228 the circuit-switched bearer is set up. The Offerer SHOULD compare 1229 the received DTMF digits to the value of the "dtmf" subfield. If 1230 the received DTMF digits match the value of the "dtmf" subfield in 1231 the "cs-correlation" attribute, the call SHOULD be treated as 1232 correlated to the ongoing session. 1234 o If the Answer contained a value for the "uuie" subfield, the 1235 Offerer MUST be prepared to receive a User-User Information 1236 element once the circuit-switched bearer is set up. The Offerer 1237 SHOULD compare the received UUI to the value of the "uuie" 1238 subfield. If the value of the received UUI matches the value of 1239 the "uuie" subfield, the call SHOULD be treated as correlated to 1240 the ongoing session. 1242 o If the Answer contained a "external" subfield, the Offerer MUST be 1243 prepared to receive a circuit-switched call and use the external 1244 means (typically the human user) for accepting or rejecting the 1245 call. 1247 According the Offer/Answer Model with SDP [RFC3264], the Offerer 1248 needs to be ready to receive media as soon as the Offer has been 1249 sent. It may happen that the Answerer, if it became the active 1250 party, will initiate a circuit-switched bearer setup which will 1251 arrive at the Offerer before the Answer has arrived. However, the 1252 Offerer needs to receive the Answer and examine the information about 1253 the correlation mechanisms in order to successfully perform 1254 correlation of the circuit-switched call to the session. Therefore, 1255 if the Offerer receives an incoming circuit-switched call, it MUST 1256 NOT accept the call before the Answer has been received. If no 1257 Answer is received during an implementation specific time, the 1258 Offerer MUST either modify the session according to [RFC3264] or 1259 terminate it according to the session signaling procedures in 1260 question (for terminating a SIP session, see Section 15 of 1261 [RFC3261]). 1263 5.6.4. Modifying the session 1265 If, at a later time, one of the parties wishes to modify the session, 1266 e.g., by adding new media stream, or by changing properties used on 1267 an existing stream, it may do so via the mechanisms defined for An 1268 Offer/Answer Model with SDP [RFC3264]. 1270 If there is an existing circuit-switched bearer between the 1271 endpoints, and the Offerer wants to reuse that, the Offerer MUST set 1272 the value of the "a=connection" attribute to 'existing'. 1274 If either party removes the circuit-switched media from the session 1275 (by setting the port number to zero), it MUST terminate the circuit- 1276 switched bearer using whatever mechanism is appropriate for the 1277 technology in question. 1279 If either party wishes to drop and reestablish an existing call, that 1280 party MUST first remove the circuit-switched media from the session 1281 by setting the port number to zero, and then use another Offer/Answer 1282 exchange where it MUST set the "a=connection" attribute to 'new'". 1283 If the media types are different (for example, a different codec will 1284 be used for the circuit-switched bearer), the media descriptions for 1285 terminating the existing bearer and the new bearer can be in the same 1286 Offer. 1288 If either party would like to remove existing RTP based media from 1289 the session and replace that with a circuit-switched bearer, it would 1290 create a new Offer to add the circuit-switched media as described in 1291 Section 5.6.1 above, replacing the RTP based media description by the 1292 circuit-switched media description, as specified in RFC 3264 1293 [RFC3264]. 1295 Once the Offer/Answer exchange is done, but the circuit-switched 1296 bearer is not yet established, there may be a period of time when no 1297 media is available. Also, it may happen that correlating the 1298 circuit-switched call fails for reasons discussed in Section 5.3.3. 1299 In this case, even if the Offer/Answer exchange was successful, 1300 endpoints are not able to receive or send media. It is up to the 1301 implementation to decide the behavior in this case; if nothing else 1302 is done, the user most likely hangs up after a while if there was no 1303 other media in the session. Note that this may also happen when 1304 switching from RTP media to another RTP media (for example when 1305 firewall blocks the new media stream). 1307 If either party would like to remove existing circuit-switched media 1308 from the session and replace that with RTP based media, it would 1309 modify the media description as per the procedures defined in RFC 1310 3264 [RFC3264]. The endpoint MUST then terminate the circuit- 1311 switched bearer using whatever mechanism is appropriate for the 1312 technology in question. 1314 5.7. Formal Syntax 1316 The following is the formal Augmented Backus-Naur Form (ABNF) 1317 [RFC5234] syntax that supports the extensions defined in this 1318 specification. The syntax is built above the SDP [RFC4566] and the 1319 tel URI [RFC3966] grammars. Implementations according to this 1320 specification MUST be compliant with this syntax. 1322 Figure 2 shows the formal syntax of the extensions defined in this 1323 memo. 1325 ; extension to the connection field originally specified 1326 ; in RFC4566 1328 connection-field = [%x63 "=" nettype SP addrtype SP 1329 connection-address CRLF] 1330 ; CRLF defined in RFC5234 1332 ;nettype and addrtype are defined in RFC 4566 1334 connection-address /= global-number-digits / "-" 1335 ; global-number-digits specified in RFC3966 1337 ;subrules for correlation attribute 1338 attribute /= cs-correlation-attr 1339 ; attribute defined in RFC4566 1340 cs-correlation-attr = "cs-correlation:" corr-mechanisms 1341 corr-mechanisms = corr-mech *(SP corr-mech) 1342 corr-mech = caller-id-mech / uuie-mech / 1343 dtmf-mech / external-mech / 1344 ext-mech 1345 caller-id-mech = "callerid" [":" caller-id-value] 1346 caller-id-value = "+" 1*15DIGIT 1347 ; DIGIT defined in RFC5234 1348 uuie-mech = "uuie" [":" uuie-value] 1349 uuie-value = 1*65(HEXDIG HEXDIG) 1350 ;This represents up to 130 HEXDIG 1351 ; (65 octets) 1352 ;HEXDIG defined in RFC5234 1353 ;HEXDIG defined as 0-9, A-F 1354 dtmf-mech = "dtmf" [":" dtmf-value] 1355 dtmf-value = 1*32(DIGIT / %x41-44 / %x23 / %x2A ) 1356 ;0-9, A-D, '#' and '*' 1357 external-mech = "external" 1358 ext-mech = ext-mech-name [":" ext-mech-value] 1359 ext-mech-name = token 1360 ext-mech-value = token 1361 ; token is specified in RFC4566 1363 Figure 2: Syntax of the SDP extensions 1365 6. Examples 1367 In the examples below, where an SDP line is too long to be displayed 1368 as a single line, a breaking character "\" indicates continuation in 1369 the following line. Note that this character is included for display 1370 purposes only. Implementations MUST write a single line without 1371 breaks. 1373 6.1. Single PSTN audio stream 1375 Endpoint A Endpoint B 1376 | | 1377 | (1) SDP Offer (PSTN audio) | 1378 |--------------------------------->| 1379 | | 1380 | (2) SDP Answer (PSTN audio) | 1381 |<---------------------------------| 1382 | | 1383 | PSTN call setup | 1384 |<---------------------------------| 1385 | | 1386 |<==== media over PSTN bearer ====>| 1387 | | 1389 Figure 3: Basic flow 1391 Figure 3 shows a basic example that describes a single audio media 1392 stream over a circuit-switched bearer. Endpoint A generates a SDP 1393 Offer which is shown in Figure 4. The Offer describes a PSTN 1394 circuit-switched bearer in the "m=" and "c=" line where it also 1395 indicates its international E.164 number format. Additionally, 1396 Endpoint A expresses that it can initiate the circuit-switched bearer 1397 or be the recipient of it in the "a=setup" attribute line. The SDP 1398 Offer also includes correlation identifiers that this endpoint will 1399 insert in the Calling Party Number and/or User-User Information 1400 Element of the PSTN call setup if eventually this endpoint initiates 1401 the PSTN call. Endpoint A also includes the "external" as one 1402 correlation mechanism indicating that it can use the human user to 1403 perform correlation in case other mechanisms fail. 1405 v=0 1406 o=alice 2890844526 2890842807 IN IP4 192.0.2.5 1407 s= 1408 t=0 0 1409 m=audio 9 PSTN - 1410 c=PSTN E164 +441134960123 1411 a=setup:actpass 1412 a=connection:new 1413 a=cs-correlation:callerid:+441134960123 \ 1414 uuie:56A390F3D2B7310023 external 1416 Figure 4: SDP offer (1) 1418 Endpoint B generates a SDP Answer (Figure 5), describing a PSTN audio 1419 media on port 9 without information on the media sub-type on the "m=" 1420 line. The "c=" line contains B's international E.164 number. In the 1421 "a=setup" line Endpoint B indicates that it is willing to become the 1422 active endpoint when establishing the PSTN call, and it also includes 1423 the "a=cs-correlation" attribute line containing the values it is 1424 going to include in the Calling Party Number and User-User IE of the 1425 PSTN call establishment. Endpoint B is also able to perform 1426 correlation by external means, in case other correlation mechanisms 1427 fail. 1429 v=0 1430 o=- 2890973824 2890987289 IN IP4 192.0.2.7 1431 s= 1432 t=0 0 1433 m=audio 9 PSTN - 1434 c=PSTN E164 +441134960124 1435 a=setup:active 1436 a=connection:new 1437 a=cs-correlation:callerid:+441134960124 \ 1438 uuie:74B9027A869D7966A2 external 1440 Figure 5: SDP Answer with circuit-switched media 1442 When Endpoint A receives the Answer, it examines that B is willing to 1443 become the active endpoint when setting up the PSTN call. Endpoint A 1444 temporarily stores B's E.164 number and the User-User IE value of the 1445 "cs-correlation" attribute, and waits for a circuit-switched bearer 1446 establishment. 1448 Endpoint B initiates a circuit-switched bearer using whatever 1449 circuit-switched technology is available for it. The called party 1450 number is set to A's number, and calling party number is set to B's 1451 own number. Endpoint B also sets the User-User Information Element 1452 value to the one contained in the SDP Answer. 1454 When Endpoint A receives the circuit-switched bearer establishment, 1455 it examines the UUIE and the calling party number, and by comparing 1456 those received during O/A exchange determines that the call is 1457 related to the SDP session. 1459 It may also be that neither the UUIE nor the calling party number is 1460 received by the called party, or the format of the calling party 1461 number is changed by the PSTN. Implementations may still accept such 1462 call establishment attempts as being related to the session that was 1463 established in the IP network. As it cannot be guaranteed that the 1464 values used for correlation are always passed intact through the 1465 network, they should be treated as additional hints that the circuit- 1466 switched bearer is actually related to the session. 1468 6.2. Advanced SDP example: Circuit-Switched Audio and Video Streams 1470 Endpoint A Endpoint B 1471 | | 1472 | (1) SDP Offer (PSTN audio and video) | 1473 |------------------------------------------->| 1474 | | 1475 | (2) SDP Answer (PSTN audio) | 1476 |<-------------------------------------------| 1477 | | 1478 | PSTN call setup | 1479 |<-------------------------------------------| 1480 | | 1481 |<======== media over PSTN bearer ==========>| 1482 | | 1484 Figure 6: Circuit-Switched Audio and Video streams 1486 Figure 6 shows an example of negotiating audio and video media 1487 streams over circuit-switched bearers. 1489 v=0 1490 o=alice 2890844526 2890842807 IN IP4 192.0.2.5 1491 s= 1492 t=0 0 1493 a=setup:actpass 1494 a=connection:new 1495 c=PSTN E164 +441134960123 1496 m=audio 9 PSTN - 1497 a=cs-correlation:dtmf:1234536 1498 m=video 9 PSTN 34 1499 a=rtpmap:34 H263/90000 1500 a=cs-correlation:callerid:+441134960123 1502 Figure 7: SDP offer with circuit-switched audio and video (1) 1504 Upon receiving the SDP offer described in Figure 7, Endpoint B 1505 rejects the video stream as the device does not currently support 1506 video, but accepts the circuit-switched audio stream. As Endpoint A 1507 indicated that it is able to become either the active or passive 1508 party, Endpoint B gets to select which role it would like to take. 1509 Since the Offer contained the international E.164 number of Endpoint 1510 A, Endpoint B decides that it becomes the active party in setting up 1511 the circuit-switched bearer. B includes a new value in the "dtmf" 1512 subfield of the "cs-correlation" attribute, which it is going to send 1513 as DTMF tones once the bearer setup is complete. The Answer is 1514 described in Figure 8 1515 v=0 1516 o=- 2890973824 2890987289 IN IP4 192.0.2.7 1517 s= 1518 t=0 0 1519 a=setup:active 1520 a=connection:new 1521 c=PSTN E164 +441134960124 1522 m=audio 9 PSTN - 1523 a=cs-correlation:dtmf:654321 1524 m=video 0 PSTN 34 1525 a=cs-correlation:callerid:+441134960124 1527 Figure 8: SDP answer with circuit-switched audio and video (2) 1529 7. Security Considerations 1531 This document provides an extension on top of RFC 4566 [RFC4566], and 1532 RFC 3264 [RFC3264]. As such, the security considerations of those 1533 documents apply. 1535 This memo provides mechanisms to agree on a correlation identifier or 1536 identifiers that are used to evaluate whether an incoming circuit- 1537 switched bearer is related to an ongoing session in the IP domain. 1538 If an attacker replicates the correlation identifier and establishes 1539 a call within the time window the receiving endpoint is expecting a 1540 call, the attacker may be able to hijack the circuit-switched bearer. 1541 These types of attacks are not specific to the mechanisms presented 1542 in this memo. For example, caller ID spoofing is a well-known attack 1543 in the PSTN. Users are advised to use the same caution before 1544 revealing sensitive information as they would on any other phone 1545 call. Furthermore, users are advised that mechanisms that may be in 1546 use in the IP domain for securing the media, like Secure RTP (SRTP) 1547 [RFC3711], are not available in the CS domain. 1549 For the purposes of establishing a circuit-switched bearer, the 1550 active endpoint needs to know the passive endpoint's phone number. 1551 Phone numbers are sensitive information, and some people may choose 1552 not to reveal their phone numbers when calling using supplementary 1553 services like Calling Line Identification Restriction (CLIR) in GSM. 1554 Implementations should take the caller's preferences regarding 1555 calling line identification into account if possible, by restricting 1556 the inclusion of the phone number in SDP "c=" line if the caller has 1557 chosen to use CLIR. If this is not possible, implementations may 1558 present a prompt informing the user that their phone number may be 1559 transmitted to the other party. 1561 Similarly as with IP addresses, if there is a desire to protect the 1562 SDP containing phone numbers carried in SIP, implementers are advised 1563 to follow the security mechanisms defined in [RFC3261]. 1565 It is possible that an attacker creates a circuit-switched session 1566 whereby the attacked endpoint should dial a circuit-switched number, 1567 perhaps even a premium-rate telephone number. To mitigate the 1568 consequences of this attack, endpoints MUST authenticate and trust 1569 remote endpoints users who try to remain passive in the circuit- 1570 switched connection establishment. It is RECOMMENDED that endpoints 1571 have local policies precluding the active establishment of circuit 1572 switched connections to certain numbers (e.g., international, 1573 premium, long distance). Additionally, it is strongly RECOMMENDED 1574 that the end user is asked for consent prior to the endpoint 1575 initiating a circuit-switched connection. 1577 8. IANA Considerations 1579 This document instructs IANA to register a number of SDP tokens 1580 according to the following data. 1582 8.1. Registration of new cs-correlation SDP attribute 1584 Contact: Miguel Garcia 1586 Attribute name: cs-correlation 1588 Long-form attribute name: PSTN Correlation Identifier 1590 Type of attribute: media level only 1592 Subject to charset: No 1594 Description: This attribute provides the Correlation Identifier 1595 used in PSTN signaling 1597 Appropriate values:see Section 5.2.3.1 1599 Specification: RFC XXXX 1601 The IANA is requested to create a subregistry for 'cs-correlation' 1602 attribute under the Session Description Protocol (SDP) Parameters 1603 registry. The initial values for the subregistry are presented in 1604 the following, and IANA is requested to add them into its database: 1606 Value of 'cs-correlation' attribute Reference Description 1607 ----------------------------------- --------- ----------- 1608 callerid RFC XXXX Caller ID 1609 uuie RFC XXXX User-User 1610 Information Element 1611 dtmf RFC XXXX Dual-tone 1612 Multi-Frequency 1613 external RFC XXXX External 1615 Note for the RFC Editor: 'RFC XXXX' above should be replaced by a 1616 reference to the RFC number of this draft. 1618 As per the terminology in [RFC5226], the registration policy for new 1619 values of 'cs-correlation' parameter is 'Specification Required'. 1621 8.2. Registration of a new "nettype" value 1623 This memo provides instructions to IANA to register a new "nettype" 1624 in the Session Description Protocol Parameters registry [1]. The 1625 registration data, according to RFC 4566 [RFC4566] follows. 1627 Type SDP Name Reference 1628 ---- ------------------ --------- 1629 nettype PSTN [RFCxxxx] 1631 8.3. Registration of new "addrtype" value 1633 This memo provides instructions to IANA to register a new "addrtype" 1634 in the Session Description Protocol Parameters registry [2]. The 1635 registration data, according to RFC 4566 [RFC4566] follows. 1637 Type SDP Name Reference 1638 ---- ------------------ --------- 1639 addrtype E164 [RFCxxxx] 1641 Note: RFC XXXX defines the "E164" addrtype in the context of the 1642 "PSTN" nettype only. Please refer to the relevant RFC for a 1643 description of that representation. 1645 8.4. Registration of a new "proto" value 1647 This memo provides instructions to IANA to register a new "proto" in 1648 the Session Description Protocol Parameters registry [3]. The 1649 registration data, according to RFC 4566 [RFC4566] follows. 1651 Type SDP Name Reference 1652 -------------- --------------------------- --------- 1653 proto PSTN [RFCxxxx] 1655 The related "fmt" namespace re-uses the conventions and payload type 1656 number defined for RTP/AVP. In RFC XXXX, the RTP audio and video 1657 media types, when applied to PSTN circuit-switched bearers, represent 1658 merely an audio or video codec in its native format directly on top 1659 of a single PSTN bearer. 1661 In come cases, the endpoint is not able to determine the list of 1662 available codecs for circuit-switched media streams. In this case, 1663 in order to be syntactically compliant with SDP [RFC4566], the 1664 endpoint MUST include a single dash ("-") in the subfield. 1666 9. Acknowledgments 1668 The authors want to thank Paul Kyzivat, Flemming Andreasen, Thomas 1669 Belling, John Elwell, Jari Mutikainen, Miikka Poikselka, Jonathan 1670 Rosenberg, Ingemar Johansson, Christer Holmberg, Alf Heidermark, Tom 1671 Taylor, Thomas Belling, Keith Drage, and Andrew Allen for providing 1672 their insight and comments on this document. 1674 10. References 1676 10.1. Normative References 1678 [ITU.Q931.1998] 1679 "Digital Subscriber Signalling System No. 1 (DSS 1) - ISDN 1680 User - Network Interface Layer 3 Specification for Basic 1681 Call Control", ISO Standard 9594-1, May 1998. 1683 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1684 Requirement Levels", BCP 14, RFC 2119, March 1997. 1686 [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model 1687 with Session Description Protocol (SDP)", RFC 3264, June 1688 2002. 1690 [RFC3966] Schulzrinne, H., "The tel URI for Telephone Numbers", RFC 1691 3966, December 2004. 1693 [RFC4145] Yon, D. and G. Camarillo, "TCP-Based Media Transport in 1694 the Session Description Protocol (SDP)", RFC 4145, 1695 September 2005. 1697 [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session 1698 Description Protocol", RFC 4566, July 2006. 1700 [RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data 1701 Encodings", RFC 4648, October 2006. 1703 [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an 1704 IANA Considerations Section in RFCs", BCP 26, RFC 5226, 1705 May 2008. 1707 [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax 1708 Specifications: ABNF", STD 68, RFC 5234, January 2008. 1710 10.2. Informative References 1712 [I-D.ietf-cuss-sip-uui] 1713 Johnston, A. and J. Rafferty, "A Mechanism for 1714 Transporting User to User Call Control Information in 1715 SIP", draft-ietf-cuss-sip-uui-12 (work in progress), 1716 January 2014. 1718 [ITU.E164.1991] 1719 International Telecommunications Union, "The International 1720 Public Telecommunication Numbering Plan", ITU-T 1721 Recommendation E.164, 1991. 1723 [ITU.Q23.1988] 1724 International Telecommunications Union, "Technical 1725 features of push-button telephone sets", ITU-T Technical 1726 Recommendation Q.23, 1988. 1728 [RFC3108] Kumar, R. and M. Mostafa, "Conventions for the use of the 1729 Session Description Protocol (SDP) for ATM Bearer 1730 Connections", RFC 3108, May 2001. 1732 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 1733 A., Peterson, J., Sparks, R., Handley, M., and E. 1734 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 1735 June 2002. 1737 [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. 1738 Jacobson, "RTP: A Transport Protocol for Real-Time 1739 Applications", STD 64, RFC 3550, July 2003. 1741 [RFC3551] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and 1742 Video Conferences with Minimal Control", STD 65, RFC 3551, 1743 July 2003. 1745 [RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. 1746 Norrman, "The Secure Real-time Transport Protocol (SRTP)", 1747 RFC 3711, March 2004. 1749 [RFC3725] Rosenberg, J., Peterson, J., Schulzrinne, H., and G. 1750 Camarillo, "Best Current Practices for Third Party Call 1751 Control (3pcc) in the Session Initiation Protocol (SIP)", 1752 BCP 85, RFC 3725, April 2004. 1754 [RFC4975] Campbell, B., Mahy, R., and C. Jennings, "The Message 1755 Session Relay Protocol (MSRP)", RFC 4975, September 2007. 1757 [TS.24.008] 1758 3GPP, "Mobile radio interface Layer 3 specification; Core 1759 network protocols; Stage 3", 3GPP TS 24.008 3.20.0, 1760 December 2005. 1762 10.3. URIs 1764 [1] http://www.iana.org/assignments/sdp-parameters 1766 [2] http://www.iana.org/assignments/sdp-parameters 1768 [3] http://www.iana.org/assignments/sdp-parameters 1770 Authors' Addresses 1772 Miguel A. Garcia-Martin 1773 Ericsson 1774 Calle Via de los Poblados 13 1775 Madrid, ES 28033 1776 Spain 1778 Email: miguel.a.garcia@ericsson.com 1780 Simo Veikkolainen 1781 Nokia 1782 P.O. Box 226 1783 NOKIA GROUP, FI 00045 1784 Finland 1786 Phone: +358 50 486 4463 1787 Email: simo.veikkolainen@nokia.com