idnits 2.17.1 draft-khatri-sipcore-call-transfer-fail-response-01.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 : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (July 27, 2021) is 1003 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 359, but not defined == Unused Reference: 'RFC5407' is defined on line 378, but no explicit reference was found in the text Summary: 0 errors (**), 0 flaws (~~), 3 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 Network Working Group Shrawan Kumar Khatri 2 Internet-Draft Vikram Singh 3 Marcelo Pazos 4 Cherng-Shung Hsu 5 Yong Xie 6 Intended status: Standard Track Qualcomm Incorporated 7 Expires: January 2022 July 27, 2021 9 A SIP Response Code (497) for Call Transfer Failure 10 draft-khatri-sipcore-call-transfer-fail-response-01.txt 12 Status of this Memo 14 This Internet-Draft is submitted in full conformance with the 15 provisions of BCP 78 and BCP 79. 17 Internet-Drafts are working documents of the Internet Engineering 18 Task Force (IETF), its areas, and its working groups. Note that 19 other groups may also distribute working documents as Internet- 20 Drafts. 22 Internet-Drafts are draft documents valid for a maximum of six 23 months and may be updated, replaced, or obsoleted by other 24 documents at any time. It is inappropriate to use Internet- 25 Drafts as reference material or to cite them other than as "work 26 in progress." 28 The list of current Internet-Drafts can be accessed at 29 http://www.ietf.org/ietf/1id-abstracts.txt 31 The list of Internet-Draft Shadow Directories can be accessed at 32 http://www.ietf.org/shadow.html 34 This Internet-Draft will expire on January 27, 2022. 36 Copyright Notice 38 Copyright (c) 2021 IETF Trust and the persons identified as the 39 document authors. All rights reserved. 41 This document is subject to BCP 78 and the IETF Trust's Legal 42 Provisions Relating to IETF Documents 43 (http://trustee.ietf.org/license-info) in effect on the date of 44 publication of this document. Please review these documents 45 carefully, as they describe your rights and restrictions with 46 respect to this document. 48 Abstract 49 This document defines the 497 (Call Transfer Failure) SIP 50 response code, allowing Call Pull and Call Push parties to 51 indicate that the operation was rejected. Optional warning codes 52 are defined to carry granular information. SIP entities may use 53 this information to adjust how subsequent calls can be handled 54 intelligently. 56 Table of Contents 58 1. Introduction................................................. 2 59 2. Normative Language........................................... 4 60 3. Motivation................................................... 4 61 4. Theory of Operation.......................................... 5 62 5. IANA Considerations.......................................... 8 63 5.1. SIP Response Code....................................... 8 64 5.2. Warning codes........................................... 8 65 6. Security Considerations...................................... 9 66 7. References................................................... 9 67 7.1. Normative References.................................... 9 68 8. Acknowledgments............................................. 10 70 1. Introduction 72 Packet switch calls for voice, video and text applications using 73 IP Multimedia Subsystems (IMS) are anchored in the IMS core 74 network. The signaling plane and media plane of IMS calls 75 established on one device can be pushed ("Call Push") to another 76 device. Similarly, IMS calls established on one device can be 77 pulled ("Call Pull") by another device using SIP signaling. 79 The call status during the SIP transaction can be conveyed through 80 SIP response codes. RFC 3261 has defined many SIP response codes. 81 The IMS core network MAY define a policy to allow or reject the 82 Call Pull or Call Push operation. There are numerous reasons why 83 the Call Pull or Call Push operation can fail. In case of call 84 transfer failure due to policy defined by the IMS core network, 85 the IMS core network MAY want to convey the failure to the user 86 agent (UA) through a response code. Based on the response code, 87 the UA MAY determine whether and how to establish a subsequent 88 call. 90 The existing response codes in RFC 3261 are not sufficient to 91 convey the information about the call transfer failure to the UA. 92 Overloading an existing response code could lead to unnecessary 93 subsequent signaling which could burden the IMS core network. To 94 avoid possible signaling overload in the IMS core network and to 95 accurately convey the call transfer failure to the UA, a new 96 response code along with associated optional warning codes to be 97 included in a Warning header field are proposed in this RFC. 99 The following call flows illustrate the successful Call Pull. 101 UA Core Network 102 | | 103 | | 104 | 1. INVITE: | 105 | Contact-Header: +g.3gpp.iut-focus | 106 |-------------------------------------------------------->| 107 | | 108 | 2. 200 OK | 109 |<--------------------------------------------------------| 110 | | 111 Figure 1: Call Pull Success 113 1. The UA sends an INVITE to Pull the call from another device. 114 Feature Tag: +g.3gpp.iut-focus [RFC6809] is added in the 115 Contact Header field. 116 2. The call transfer request satisfied. The Core Network sends 117 200 OK. 119 The following call flows illustrate the successful Call Push. 121 UA Core Network 122 | | 123 | 1. REFER: | 124 | Contact-Header: +g.3gpp.iut-focus | 125 |-------------------------------------------------------->| 126 | | 127 | 2. 202 Accepted | 128 |<--------------------------------------------------------| 129 | | 130 Figure 2: Call Push Success 132 1. The UA sends a REFER to Push the call to another device. 133 Feature Tag: +g.3gpp.iut-focus is added in the Contact Header 134 field. 135 2. The call transfer request satisfied. The Core Network sends 136 202 Accepted. 138 2. Normative Language 140 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL 141 NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", 142 "MAY", and "OPTIONAL" in this document are to be interpreted as 143 described in BCP 14 [RFC2119] [RFC8174] when, and only when, they 144 appear in all capitals, as shown here. 146 3. Motivation 148 Seamless transfer of the media plane of an on-going voice call 149 between devices is a legacy behavior. The signaling plane in the 150 legacy behavior resides on the originating device. 152 If the two devices can run IMS over SIP signaling, the signaling 153 plane and media plane can be transferred between these devices 154 with minimal media flow interruption. The control plane and media 155 plane transfer procedures are beyond the scope of this RFC. 157 There are various reasons why an on-going call cannot be 158 transferred between the devices. Some of these reasons are policy 159 driven, for instance: the call to be transferred is in the circuit 160 switched (CS) domain and the operator's policy does not allow 161 transfer of a CS call, the call is an emergency call and the 162 operator's policy does not allow transfer of an emergency call, 163 the call is a mobile-terminated call and the operator's policy 164 does not allow transfer of a mobile-terminated call, or the call 165 is a video call and the operator's policy does not allow transfer 166 of a video call. 168 The UA initiating the call transfer procedure will be notified of 169 any failure through a SIP response code. However the existing SIP 170 response codes are not suitable to adequately convey the 171 information regarding why the call transfer request is not 172 accepted by the network: handling of these existing response codes 173 has already been implemented by various devices, with an 174 associated device behavior defined for a specific purpose not 175 related to call transfer. For instance, upon receiving some of 176 these response code, such as 403 (Forbidden), the device MAY 177 initiate IMS re-registration procedure, which is not needed in 178 case of Call Pull/Call Push failure and will result in unnecessary 179 SIP signaling. 181 Consequently, to accurately convey the information about the call 182 transfer failure to the UA, a new response code is required along 183 with an optional warning code in a Warning header field to convey 184 the exact reason why the call could not be transferred, so that 185 the UA can determine the subsequent steps (e.g. call termination) 186 and optionally provide an indication of the reason for the failure 187 to the user. 189 Backward compatibility is maintained in both the UE and Network 190 side. The Network component that has not implemented this RFC 191 shall use the existing response code. The UE that has not 192 implemented this RFC shall handle this new response code as an 193 unknown response code. 195 4. Theory of Operation 197 Response code: 199 A new SIP response code 497 is defined. 201 Description: Call Transfer Failure 203 The server understood the call transfer request but is refusing 204 the service. The SIP response with SIP response code 497 MAY 205 include a Warning header field [RFC3261] with a warning code set 206 to one of the values listed below and the associated warning text 207 conveying granular information about the reason for the call 208 transfer failure, so as to enable the UA to develop extra logic 209 for subsequent call transfer procedure. 211 Warning header: 213 An optional Warning header will carry more granular failure 214 information as follows: 216 380. Inactive state 217 381. Local Receive-only state 218 382. Local Transmit-only state 219 383. Remote Receive-only state 220 384. Remote Transmit-only state 221 385. Hold state 222 386. Mortal state 223 387. Conference call 224 388. Emergency call 225 389. Video call 226 390. Real Time Text call 227 391. Circuit Switch call 228 392. Non existing call 229 393. Single Radio Voice Call Continuity in progress 231 Feature-tag: 233 media feature-tag:+g.3gpp.iut-focus [3GPP TS 24.337] 235 In Call Pull, INVITE method is used and media feature tag 236 "+g.3gpp.iut-focus" is included in the Contact Header field. 238 In Call Push, REFER method is used and media feature tag 239 "+g.3gpp.iut-focus" is included in the Contact Header field. 241 Call Transfer failure 243 If call transfer using INVITE or REFER method fails and 244 response code 497 is supported by the network, the SIP response 245 SHALL include SIP response code 497. 247 If a call transfer fails and response code 497 is not supported 248 by the network, the SIP response code should be chosen from 249 existing 250 SIP response codes defined in RFC 3261 252 Example: 254 Warning: 388 proxy.example.com "Call is an emergency call" 255 The following call flow illustrates the usage of SIP response 256 code 497 and the associated warning codes: 258 UA Core Network 259 | | 260 | | 261 | 1. INVITE: | 262 | Contact-Header: +g.3gpp.iut-focus | 263 |-------------------------------------------------------->| 264 | | 265 | 2. 497 Call Transfer Failure | 266 | Warning: 388 "Call is an emergency call" | 267 |<--------------------------------------------------------| 268 | | 269 Figure 3: Usage of SIP response code 497 Call Pull 271 1. The UA sends an INVITE to Pull the call from another device. 272 Feature Tag: +g.3gpp.iut-focus is added in the Contact Header 273 field. 274 2. The call transfer request cannot be satisfied due to the call 275 requested to be transferred being an emergency call. Since 276 the core network supports SIP response code 497, the core 277 network sends a 497 Call Transfer Failure with a Warning 278 header field set to: 388 "Call is an emergency call" 280 UA Core Network 281 | | 282 | 1. REFER: | 283 | Contact-Header: +g.3gpp.iut-focus | 284 |-------------------------------------------------------->| 285 | | 286 | 2. 497 Call Transfer Failure | 287 | Warning: 388 "Call is an emergency call" | 288 |<--------------------------------------------------------| 289 | | 290 Figure 4: Usage of SIP response code 497 Call Push 292 1. The UA sends a REFER to Push the call to another device. 293 Feature Tag: +g.3gpp.iut-focus is added in the Contact Header 294 field. 295 2. The call transfer request cannot be satisfied due to the call 296 requested to be transferred being an emergency call. Since 297 the core network supports SIP response code 497, the core 298 network sends a 497 Call Transfer Failure with a Warning 299 header field set to: 388 "Call is an emergency call" 301 5. IANA Considerations 303 5.1. SIP Response Code 305 This document registers a new SIP response code. This response 306 code is defined by the following information, which has been added 307 to the "Response Codes" sub-registry under the "Session Initiation 308 Protocol (SIP) Parameters" registry 309 . 311 Response Code: 497 313 Description: CALL TRANSFER FAILURE 315 The server understood the request to transfer the call but is 316 refusing the service. This response MAY include a Warning header 317 field [RFC3261] with a warning code set to one of the values 318 listed in section 5.2 and the associated warning text conveying 319 granular information about the reason for the call transfer 320 failure. 322 Reference: [RFCxxxx] 324 5.2. Warning codes 326 This document registers new warning codes. These warning codes are 327 defined by the following information, which has been added to the 328 "Warning Codes (warn-codes)" sub-registry under the "Session 329 Initiation Protocol (SIP) Parameters" registry 330 . 332 380. Inactive state 333 381. Local Receive-only state 335 382. Local Transmit-only state 337 383. Remote Receive-only state 339 384. Remote Transmit-only state 341 385. Hold state 343 386. Mortal state 345 387. Conference call 347 388. Emergency call 349 389. Video call 351 390. Real Time Text call 353 391. Circuit Switch call 355 392. Non existing call 357 393. Single Radio Voice Call Continuity in progress 359 Reference: [RFCxxxx] 361 6. Security Considerations 363 The general discussion in [RFC3261] applies. 365 7. References 367 7.1. Normative References 369 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 370 Requirement Levels", BCP 14, RFC 2119, March 1997. 372 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., 373 Johnston, A., Peterson, J., Sparks, R., Handley, M., 374 and E. Schooler, "SIP: Session Initiation Protocol", 375 RFC 3261, DOI 10.17487/RFC3261, June 2002, 376 . 378 [RFC5407] Hasebe, M., Koshiko, J., Suzuki, Y., Yoshikawa, T., 379 Kyzivat, P., "Example Call Flows of Race Conditions in 380 the Session Initiation Protocol (SIP)", BCP 147, RFC 381 5407, DOI 10.17487/RFC5407, December 2008, 382 . 384 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 385 2119 Key Words", BCP 14, FC 8174, DOI 10.17487/RFC8174, 386 May 2017, . 388 [RFC6809] Holmberg, C., Sedlacek, I., and H. Kaplan, "Mechanism 389 to Indicate Support of Features and Capabilities in the 390 Session Initiation Protocol (SIP)", RFC 6809, DOI 391 10.17487/RFC6809, November 2012, . 394 [3GPP TS 24.337] "Universal Mobile Telecommunications System 395 (UMTS); LTE; IP Multimedia (IM) Core Network 396 (CN)subsystem IP Multimedia Subsystem (IMS) inter-UE 397 transfer 399 8. Acknowledgments 401 Lena Chaponniere, Qualcomm Inc. and Waqar Zia, Qualcomm Inc. for 402 the technical guidance. 404 Authors' Addresses 406 Shrawan Khatri 407 5775 Morehouse Drive 408 San Diego, CA 92121 409 United States of America 410 Email: skhatri@qualcomm.com 412 Vikram Singh 413 5775 Morehouse Drive 414 San Diego, CA 92121 415 United States of America 416 viksingh@qualcomm.com 418 Marcelo Pazos 419 5775 Morehouse Drive 420 San Diego, CA 92121 421 United States of America 422 mpazos@qualcomm.com 424 Cherng-Shung Hsu 425 5775 Morehouse Drive 426 San Diego, CA 92121 427 United States of America 428 simonh@qualcomm.com 430 Yong Xie 431 5775 Morehouse Drive 432 San Diego, CA 92121 433 United States of America 434 yongxie@qualcomm.com