idnits 2.17.1 draft-ietf-sipcore-rfc4244bis-callflows-07.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 == Line 139 has weird spacing: '... Alice exam...' == Line 410 has weird spacing: '... Alice atlan...' == Line 623 has weird spacing: '... Alice atla...' -- The document date (Oct 20, 2013) is 3834 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Outdated reference: A later version (-12) exists of draft-ietf-sipcore-rfc4244bis-11 Summary: 0 errors (**), 0 flaws (~~), 5 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 SIPCORE M. Barnes 3 Internet-Draft Polycom 4 Intended status: Informational F. Audet 5 Expires: April 23, 2014 Skype 6 S. Schubert 7 NTT 8 H. van Elburg 9 Detecon International Gmbh 10 C. Holmberg 11 Ericsson 12 Oct 20, 2013 14 Session Initiation Protocol (SIP) History-Info Header Call Flow Examples 15 draft-ietf-sipcore-rfc4244bis-callflows-07.txt 17 Abstract 19 This document describes use cases and documents call flows which 20 require the History-Info header field to capture the Request-URIs as 21 a Session Initiation Protocol (SIP) Request is retargeted. The use 22 cases are described along with the corresponding call flow diagrams 23 and messaging details. 25 Status of this Memo 27 This Internet-Draft is submitted in full conformance with the 28 provisions of BCP 78 and BCP 79. 30 Internet-Drafts are working documents of the Internet Engineering 31 Task Force (IETF). Note that other groups may also distribute 32 working documents as Internet-Drafts. The list of current Internet- 33 Drafts is at http://datatracker.ietf.org/drafts/current/. 35 Internet-Drafts are draft documents valid for a maximum of six months 36 and may be updated, replaced, or obsoleted by other documents at any 37 time. It is inappropriate to use Internet-Drafts as reference 38 material or to cite them other than as "work in progress." 40 This Internet-Draft will expire on April 23, 2014. 42 Copyright Notice 44 Copyright (c) 2013 IETF Trust and the persons identified as the 45 document authors. All rights reserved. 47 This document is subject to BCP 78 and the IETF Trust's Legal 48 Provisions Relating to IETF Documents 49 (http://trustee.ietf.org/license-info) in effect on the date of 50 publication of this document. Please review these documents 51 carefully, as they describe your rights and restrictions with respect 52 to this document. Code Components extracted from this document must 53 include Simplified BSD License text as described in Section 4.e of 54 the Trust Legal Provisions and are provided without warranty as 55 described in the Simplified BSD License. 57 Table of Contents 59 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 60 2. Conventions and Terminology . . . . . . . . . . . . . . . . . 3 61 3. Detailed call flows . . . . . . . . . . . . . . . . . . . . . 3 62 3.1. Sequentially Forking (History-Info in Response) . . . . . 3 63 3.2. History-Info with Privacy Header Field . . . . . . . . . . 11 64 3.3. Privacy for a Specific History-Info Entry . . . . . . . . 16 65 3.4. Automatic Call Distribution . . . . . . . . . . . . . . . 20 66 3.5. Determining the Alias used. . . . . . . . . . . . . . . . 25 67 3.6. PBX Voicemail Example . . . . . . . . . . . . . . . . . . 28 68 3.7. Consumer Voicemail Example . . . . . . . . . . . . . . . . 33 69 3.8. GRUU . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 70 3.9. Limited Use Address . . . . . . . . . . . . . . . . . . . 40 71 3.10. Service Invocation . . . . . . . . . . . . . . . . . . . . 43 72 3.11. Toll Free Number . . . . . . . . . . . . . . . . . . . . . 43 73 4. Security Considerations . . . . . . . . . . . . . . . . . . . 45 74 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 45 75 5.1. Acknowledgements . . . . . . . . . . . . . . . . . . . . . 46 76 6. Informative References . . . . . . . . . . . . . . . . . . . . 46 77 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 47 79 1. Overview 81 Many services that use SIP require the ability to determine why and 82 how the call arrived at a specific application. The use cases 83 provided in this document illustrate the use of the History-Info 84 header [I-D.ietf-sipcore-rfc4244bis] for example applications and 85 common scenarios. The optional "rc" and "mp" header field parameters 86 defined in [I-D.ietf-sipcore-rfc4244bis] are required for several of 87 the use cases. Descriptions of the example use cases, call flow 88 diagrams and messaging details are provided. 90 2. Conventions and Terminology 92 The term "retarget" is used as defined in 93 [I-D.ietf-sipcore-rfc4244bis]. The terms "location service", 94 "redirect" and "address-of-record (AOR)" are used consistent with the 95 terminology in [RFC3261]. 97 3. Detailed call flows 99 The scenarios in this section provide sample use cases for the 100 History-Info header for informational purposes only. They are not 101 intended to be normative. In many cases, only the relevant messaging 102 details are included in the body of the call flow. 104 3.1. Sequentially Forking (History-Info in Response) 106 This scenario highlights an example where the History-Info in the 107 response is useful to an application or user that originated the 108 request. 110 Alice sends a call to Bob via sip:example.com. The proxy sip: 111 example.com sequentially tries Bob on a SIP UA that has bound a 112 contact with the sip:bob@example.com AOR, and then several alternate 113 addresses (Office and Home) unsuccessfully before sending a response 114 to Alice. The hi-entry containing the initial contact is the hi- 115 entry just prior to the first hi-entry tagged with an "rc" header 116 field parameter. In this example, the Office and Home are not the 117 same AOR as sip:bob@example.com, but rather different AORs that have 118 been configured as alternate addresses for Bob in the proxy. In 119 other words, Office and Home are not bound through SIP Registration 120 with Bob's AOR. This type of arrangement is common for example when 121 a "routing" rule to a PSTN number is manually configured in a proxy. 122 These hi-entries are identified by the index contained in the hi- 123 target-param "mp" header field parameter in the hi-entries. 125 This scenario illustrates that by providing the History-Info to 126 Alice, the end-user or an application at Alice could make a decision 127 on how best to attempt finding Bob without sending multiple requests 128 to the same destination. Upon receipt of the response containing the 129 History-Info entries, the Request URIs for the History-Info entries 130 tagged with "mp" header field parameter are extracted. Those 131 Request-URIs can be compared to other URIs (if any) that might be 132 attempted in order to establish the session with Bob. This results in 133 avoiding the sending of another INVITE to Bob's home phone. Without 134 this mechanism, Alice might well attempt to reach Bob at his office 135 phone, which would then retarget the request to Bob's home phone. 136 When that attempt failed, then Alice might attempt to reach Bob 137 directly at his home phone, unknowingly for a third time. 139 Alice example.com Bob Office Home 141 | | | | | 142 | INVITE F1 | | | | 143 |----------->| INVITE F2 | | | 144 | |----------------->| | | 145 | 100 Trying F3 | | | 146 |<-----------| 302 Move Temporarily F4 | | 147 | |<-----------------| | | 148 | | ACK F5 | | | 149 | |----------------->| | | 150 | | INVITE F6 | | 151 | |-------------------------->| | 152 | | 180 Ringing F7 | | 153 | |<--------------------------| | 154 | 180 Ringing F8 | | 155 |<-----------| retransmit INVITE | | 156 | |-------------------------->| | 157 | | ( timeout ) | | 158 | | INVITE F9 | 159 | |----------------------------------->| 160 | | 100 Trying F10 | 161 | |<-----------------------------------| 162 | | 486 Busy Here F11 | 163 | |<-----------------------------------| 164 | 486 Busy Here F12 | 165 |<-----------| ACK F13 | 166 | |----------------------------------->| 167 | ACK F14 | | 168 |----------->| | 170 Figure 1: Example with Sequential Forking 172 Message Details 174 F1 INVITE alice -> example.com 176 INVITE sip:bob@example.com SIP/2.0 177 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 178 Max-Forward: 70 179 From: Alice ;tag=sr3dds 180 To: Bob 181 Supported: histinfo 182 Call-Id: 12345600@example.com 183 CSeq: 1 INVITE 184 History-Info: ;index=1 185 Contact: Alice 186 Content-Type: application/sdp 187 Content-Length: 188 190 F2 INVITE example.com -> Bob 192 INVITE sip:bob@192.0.2.4 SIP/2.0 193 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx3st 194 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 195 Max-Forward: 69 196 From: Alice ;tag=sr3dds 197 To: Bob 198 Supported: histinfo 199 Call-Id: 12345600@example.com 200 CSeq: 1 INVITE 201 Record-Route: 202 History-Info: ;index=1 203 History-Info: ;index=1.1;rc=1 204 Contact: Alice 205 Content-Type: application/sdp 206 Content-Length: 207 208 F3 100 Trying example.com -> alice 210 SIP/2.0 100 Trying 211 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 212 From: Alice ;tag=sr3dds 213 To: Bob 214 Supported: histinfo 215 Call-Id: 12345600@example.com 216 CSeq: 1 INVITE 217 Content-Length: 0 219 F4 302 Moved Temporarily Bob -> example.com 221 SIP/2.0 302 Moved Temporarily 222 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx3st 223 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 224 From: Alice ;tag=sr3dds 225 To: Bob ;tag=es43sd 226 Supported: histinfo 227 Call-Id: 12345600@example.com 228 CSeq: 1 INVITE 229 History-Info: ;index=1 230 History-Info: ;index=1.1;rc=1 231 Contact: ;mp=1 232 Content-Length: 0 234 F5 ACK example.com -> Bob 236 ACK sip:bob@example.com SIP/2.0 237 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx3st 238 Max-Forward: 70 239 From: Alice ;tag=sr3dds 240 To: Bob ;tag=es43sd 241 Call-Id: 12345600@example.com 242 CSeq: 1 ACK 243 Content-Length: 0 244 F6 INVITE example.com -> office 246 INVITE sip:office@192.0.2.5 SIP/2.0 247 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx4st 248 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 249 Max-Forward: 69 250 From: Alice ;tag=sr3dds 251 To: Bob 252 Supported: histinfo 253 Call-Id: 12345600@example.com 254 Record-Route: 255 History-Info: ;index=1 256 History-Info: ;\ 257 index=1.1;rc=1 258 History-Info: ;index=1.2;mp=1 259 History-Info: ;index=1.2.1;rc=1.2 260 CSeq: 1 INVITE 261 Contact: Alice 262 Content-Type: application/sdp 263 Content-Length: 264 266 F7 180 Ringing office -> example.com 268 SIP/2.0 180 Ringing 269 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx4st 270 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 271 From: Alice ;tag=sr3dds 272 To: Bob ;tag=53rdds 273 Supported: histinfo 274 Call-ID: 12345600@example.com 275 Record-Route: 276 History-Info: ;index=1 277 History-Info: ;\ 278 index=1.1;rc=1 279 History-Info: ;index=1.2;mp=1 280 History-Info: ;index=1.2.1;rc=1.2 281 CSeq: 1 INVITE 282 Contact: Office 283 Content-Length: 0 284 F8 180 Ringing example.com -> alice 286 SIP/2.0 180 Ringing 287 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 288 From: Alice ;tag=sr3dds 289 To: Bob ;tag=53rdds 290 Supported: histinfo 291 Call-Id: 12345600@example.com 292 Record-Route: 293 History-Info: ;index=1 294 History-Info: ;\ 295 index=1.1;rc=1 296 History-Info: ;index=1.2;mp=1 297 History-Info: ;index=1.2.1;rc=1.2 298 CSeq: 1 INVITE 299 Contact: Office 300 Content-Length: 0 302 F9 INVITE example.com -> home 304 INVITE sip:home@192.0.2.6 SIP/2.0 305 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx5st 306 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 307 Max-Forward: 69 308 From: Alice ;tag=sr3dds 309 To: Bob 310 Supported: histinfo 311 Call-Id: 12345600@example.com 312 Record-Route: 313 History-Info: ;index=1 314 History-Info: ;\ 315 index=1.1;rc=1 316 History-Info: ;\ 317 index=1.2;mp=1 318 History-Info: ;\ 319 index=1.2.1;rc=1.2 320 History-Info: ;index=1.3;mp=1 321 History-Info: ;index=1.3.1;rc=1.3 322 CSeq: 1 INVITE 323 Contact: Alice 324 Content-Type: application/sdp 325 Content-Length: 326 327 F10 100 Trying home -> example.com 329 SIP/2.0 100 Trying 330 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx5st 331 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 332 From: Alice ;tag=sr3dds 333 To: Bob 334 Call-Id: 12345600@example.com 335 CSeq: 1 INVITE 336 Content-Length: 0 338 F11 486 Busy Here home -> example.com 340 SIP/2.0 486 Busy Here 341 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx5st 342 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 343 From: Alice ;tag=sr3dds 344 To: Bob ;tag=55rdds 345 Call-Id: 12345600@example.com 346 History-Info: ;index=1 347 History-Info: ;\ 348 index=1.1;rc=1 349 History-Info: ;\ 350 index=1.2;mp=1 351 History-Info: ;\ 352 index=1.2.1;rc=1.2 353 History-Info: ;index=1.3;mp=1 354 History-Info: ;index=1.3.1;rc=1.3 355 CSeq: 1 INVITE 356 Content-Length: 0 357 F12 486 Busy Here example.com -> alice 359 SIP/2.0 486 Busy Here 360 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 361 From: Alice ;tag=sr3dds 362 To: Bob ;tag=55rdds 363 Call-Id: 12345600@example.com 364 History-Info: ;index=1 365 History-Info: ;\ 366 index=1.1;rc=1 367 History-Info: ;\ 368 index=1.2;mp=1 369 History-Info: ;\ 370 index=1.2.1;rc=1.2 371 History-Info: ;index=1.3;mp=1 372 History-Info: ;index=1.3.1;rc=1.3 373 CSeq: 1 INVITE 374 Content-Length: 0 376 F13 ACK example.com -> home 378 ACK sip:home@192.0.2.6 SIP/2.0 379 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx5st 380 Max-Forward: 70 381 From: Alice ;tag=sr3dds 382 To: Bob ;tag=55rdds 383 Call-Id: 12345600@example.com 384 CSeq: 1 ACK 385 Content-Length: 0 387 F14 ACK alice -> example.com 389 ACK sip:bob@example.com SIP/2.0 390 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 391 Max-Forward: 70 392 From: Alice ;tag=sr3dds 393 To: Bob ;tag=55rdds 394 Call-Id: 12345600@example.com 395 Route: 396 CSeq: 1 ACK 397 Content-Length: 0 399 3.2. History-Info with Privacy Header Field 401 This is an example of the use of the Privacy header field with a 402 value of "history" added by an intermediary. The intermediary 403 responsible for the biloxi.example.com domain adds a Privacy header 404 field with a value of "history" indicating that all the History-Info 405 header field information is anonymized outside the biloxi.example.com 406 domain. Thus, none of the URIs to which the request is retargeted in 407 the biloxi.example.com domain are sent in the final response nor are 408 they sent in the request as it is forwared to Bob's Home domain. 410 Alice atlanta.example.com biloxi.example.com Bob Work Bob Home 412 | | | | | 413 | INVITE F1 | | | | 414 |------------>| | | | 415 | | | | | 416 | | INVITE F2 | | | 417 | |--------------->| | | 418 | | | | | 419 | | | INVITE F3 | | 420 | | |---------------->| | 421 | | |302 Move Temporarily F4 | 422 | | |<----------------| | 423 | | | | | 424 | | | INVITE F5 | | 425 | | |--------------------------->| 426 | | | 200 F6 | | 427 | | |<---------------------------| 428 | | | | | 429 | | 200 F7 | | | 430 | |<---------------| | | 431 | | | | | 432 | 200 F8 | | | | 433 |<------------| | | | 434 | | | | | 435 | | ACK | | | 436 |---------------------------------------------------------->| 437 | | | | | 439 Figure 2: Example with Privacy Header Fields 441 Message Details 443 F1 INVITE alice -> atlanta.example.com 445 INVITE sip:bob@biloxi.example.com;p=x SIP/2.0 446 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 447 Max-Forward: 70 448 From: Alice ;tag=22 449 To: Bob 450 Supported: histinfo 451 Privacy: history 452 Call-Id: 12345600@atlanta.example.com 453 CSeq: 1 INVITE 454 History-Info: ;index=1 455 Contact: Alice 456 Content-Type: application/sdp 457 Content-Length: 458 460 F2 INVITE atlanta.example.com -> biloxi.example.com 462 INVITE sip:bob@biloxi.example.com;p=x SIP/2.0 463 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2 464 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 465 Max-Forward: 69 466 From: Alice ;tag=22 467 To: Bob 468 Supported: histinfo 469 Call-Id: 12345600@atlanta.example.com 470 CSeq: 1 INVITE 471 History-Info: ;index=1 472 History-Info: ;index=1.1 473 Contact: Alice 474 Content-Type: application/sdp 475 Content-Length: 476 477 F3 INVITE biloxi.example.com -> Bob Work 479 INVITE sip:bob@192.0.1.11 SIP/2.0 480 Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKgs33 481 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\ 482 received=192.0.2.3 483 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 484 Max-Forward: 68 485 From: Alice ;tag=22 486 To: Bob 487 Privacy: history 488 Supported: histinfo 489 Call-Id: 12345600@atlanta.example.com 490 CSeq: 1 INVITE 491 History-Info: ;index=1 492 History-Info: ;index=1.1 493 History-Info: ;index=1.1.1;rc=1.1 494 Contact: Alice 495 Content-Type: application/sdp 496 Content-Length: 497 499 F4 302 Moved Temporarily Bob Work -> biloxi.example.com 501 SIP/2.0 302 Moved Temporarily 502 Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKgs33;\ 503 received=192.0.2.102 504 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\ 505 received=192.0.2.3 506 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 507 Max-Forward: 68 508 From: Alice ;tag=22 509 To: Bob 510 Privacy: history 511 Supported: histinfo 512 Call-Id: 12345600@atlanta.example.com 513 CSeq: 1 INVITE 514 History-Info: ;index=1 515 History-Info: ;index=1.1 516 History-Info: ;index=1.1.1;rc=1.1 517 Contact: ;mp=1.1 518 Content-Type: application/sdp 519 Content-Length: 521 522 F5 INVITE biloxi.example.com -> Bob Home 523 526 INVITE sip:bob@192.0.1.15 SIP/2.0 527 Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKgs32 528 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\ 529 received=192.0.2.3 530 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 531 Max-Forward: 68 532 From: Alice ;tag=22 533 To: Bob 534 Supported: histinfo 535 Call-Id: 12345600@atlanta.example.com 536 CSeq: 1 INVITE 537 History-Info: ;index=1 538 History-Info: ;index=1.1 539 History-Info: ;index=1.1.1;rc=1.1 541 History-Info: ;index=1.2;mp=1.1 542 Contact: Alice 543 Content-Type: application/sdp 544 Content-Length: 545 546 F4 200 OK Bob -> biloxi.example.com 547 550 SIP/2.0 200 OK 551 Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKgs32;\ 552 received=192.0.2.101 553 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\ 554 received=192.0.2.3 555 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 556 From: Alice ;tag=22 557 To: Bob ;tag=33 558 Supported: histinfo 559 Call-Id: 12345600@atlanta.example.com 560 CSeq: 1 INVITE 561 History-Info: ;index=1 562 History-Info: ;index=1.1 563 History-Info: ;index=1.1.1;rc=1.1 565 History-Info: ;index=1.2;mp=1.1 566 History-Info: ;index=1.2.1;rc=1.2 567 Content-Type: application/sdp 568 Content-Length: 569 571 F5 200 OK biloxi.example.com -> atlanta.example.com 573 SIP/2.0 200 OK 574 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\ 575 received=192.0.2.101 576 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 577 From: Alice ;tag=22 578 To: Bob ;tag=33 579 Privacy: history 580 Supported: histinfo 581 Call-Id: 12345600@atlanta.example.com 582 CSeq: 1 INVITE 583 History-Info: ;index=1 584 History-Info: ;index=1.1 585 History-Info: ;index=1.1.1;rc=1.1 587 History-Info: ;index=1.2;mp=1.1 588 History-Info: ;index=1.2.1;rc=1.2 589 Contact: Bob 590 Content-Type: application/sdp 591 Content-Length: 592 594 F6 200 OK atlanta.example.com -> Alice 596 SIP/2.0 200 OK 597 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 598 From: Alice ;tag=22 599 To: Bob ;tag=33 600 Supported: histinfo 601 Call-Id: 12345600@atlanta.example.com 602 CSeq: 1 INVITE 603 History-Info: ;index=1 604 History-Info: ;index=1.1 605 History-Info: ;index=1.1.1;rc=1.1 607 History-Info: ;index=1.2;mp=1.1 608 History-Info: ;index=1.2.1;rc=1.2 609 Contact: Bob 610 Content-Type: application/sdp 611 Content-Length: 612 614 3.3. Privacy for a Specific History-Info Entry 616 This example provides a basic call scenario similar to Section 3.2, 617 however, due to local policy at sip:biloxi.example.com, only the 618 final hi-entry in the History-Info, which is Bob's local URI, 619 contains a privacy header field with a priv-value of "history", thus 620 providing Alice with some information about the history of the 621 request, but anonymizing Bob's local URI. 623 Alice atlanta.example.com biloxi.example.com Bob 624 | | | | 625 | INVITE F1 | | | 626 |--------------->| | | 627 | | | | 628 | | INVITE F2 | | 629 | |--------------->| | 630 | | | | 631 | | | INVITE F3 | 632 | | |--------------->| 633 | | | | 634 | | | 200 F4 | 635 | | |<---------------| 636 | | | | 637 | | 200 F5 | | 638 | |<---------------| | 639 | | | | 640 | 200 F6 | | | 641 |<---------------| | | 642 | | | | 643 | | ACK | | 644 |------------------------------------------------->| 645 | | | | 647 Figure 3: Example with Privacy Header Field for Specific URI 649 Message Details 651 F1 INVITE alice -> atlanta.example.com 653 INVITE sip:bob@biloxi.example.com;p=x SIP/2.0 654 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 655 Max-Forward: 70 656 From: Alice ;tag=22 657 To: Bob 658 Supported: histinfo 659 Call-Id: 12345600@atlanta.example.com 660 CSeq: 1 INVITE 661 History-Info: ;index=1 662 Contact: Alice 663 Content-Type: application/sdp 664 Content-Length: 665 666 F2 INVITE atlanta.example.com -> biloxi.example.com 668 INVITE sip:bob@biloxi.example.com;p=x SIP/2.0 669 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2 670 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 671 Max-Forward: 69 672 From: Alice ;tag=22 673 To: Bob 674 Supported: histinfo 675 Call-Id: 12345600@atlanta.example.com 676 CSeq: 1 INVITE 677 History-Info: ;index=1 678 History-Info: ;index=1.1;np=1 679 Contact: Alice 680 Content-Type: application/sdp 681 Content-Length: 682 684 F3 INVITE biloxi.example.com -> Bob 686 INVITE sip:bob@192.0.1.11 SIP/2.0 687 Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKeset 688 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\ 689 received=192.0.2.101 690 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 691 Max-Forward: 68 692 From: Alice ;tag=22 693 To: Bob 694 Supported: histinfo 695 Call-Id: 12345600@atlanta.example.com 696 CSeq: 1 INVITE 697 History-Info: ;index=1 698 History-Info: ;index=1.1;np=1 699 History-Info: ;index=1.1.1;rc=1.1 700 Contact: Alice 701 Content-Type: application/sdp 702 Content-Length: 703 704 F4 200 OK Bob -> biloxi.example.com 706 SIP/2.0 200 OK 707 Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKeset;\ 708 received=192.0.2.5 709 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\ 710 received=192.0.2.101 711 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 712 From: Alice ;tag=22 713 To: Bob ;tag=33 714 Supported: histinfo 715 Call-Id: 12345600@atlanta.example.com 716 CSeq: 1 INVITE 717 History-Info: ;index=1 718 History-Info: ;index=1.1;np=1 719 History-Info: ;index=1.1.1;rc=1.1 720 Contact: Bob 721 Content-Type: application/sdp 722 Content-Length: 723 725 F5 200 OK biloxi.example.com -> atlanta.example.com 727 SIP/2.0 200 OK 728 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\ 729 received=192.0.2.101 730 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 731 From: Alice ;tag=22 732 To: Bob ;tag=33 733 Supported: histinfo 734 Call-Id: 12345600@atlanta.example.com 735 CSeq: 1 INVITE 736 History-Info: ;index=1 737 History-Info: ;index=1.1;np=1 738 History-Info: ;index=1.1.1;rc=1.1 739 Contact: Bob 740 Content-Type: application/sdp 741 Content-Length: 742 743 F6 200 OK atlanta.example.com -> Alice 745 SIP/2.0 200 OK 746 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 747 From: Alice ;tag=22 748 To: Bob ;tag=33 749 Supported: histinfo 750 Call-Id: 12345600@atlanta.example.com 751 CSeq: 1 INVITE 752 History-Info: ;index=1 753 History-Info: ;index=1.1;np=1 754 History-Info: ;index=1.1.1;rc=1.1 755 Contact: Bob 756 Content-Type: application/sdp 757 Content-Length: 758 760 3.4. Automatic Call Distribution 762 This scenario highlights an example of an Automatic Call Distribution 763 service, where the agents are divided into groups based upon the type 764 of customers they handle. In this example, the Gold customers are 765 given higher priority than Silver customers, so a Gold call would get 766 serviced even if all the agents servicing the Gold group were busy, 767 by retargeting the request to the Silver Group for delivery to an 768 agent. Upon receipt of the call at the agent assigned to handle the 769 incoming call, based upon the History-Info header in the message, the 770 application at the agent can provide an indication that this is a 771 Gold call by extracting the hi-entry associated with the incoming 772 request which is determined by locating the hi-entry whose index is 773 reflected in the first hi-entry with an hi-target of "mp". In the 774 example this would be the hi-entry referenced by the value of the 775 first "mp" header field parameter -i.e., the hi-entry containing an 776 index of "1". An application can also determine how many groups from 777 which the call may have overflowed before reaching the agent, etc. 778 and present the information to the agent so that the call can be 779 handled appropriately by the agent - i.e., "I'm so sorry for the 780 delay, blah, blah, blah..." 782 For scenarios whereby calls might overflow from the Silver to the 783 Gold, clearly the alternate group identification, internal routing, 784 or actual agent that handles the call should not be sent to UA1. 785 Thus, for this scenario, one would expect that the Proxy would not 786 support the sending of the History-Info in the response, even if 787 requested by Alice or the proxy could anonymize the Silver related 788 hi-entries by adding privacy in the Silver hi-entries. 790 As with the other examples, this is not a complete prescription of 791 how one would do this type of service but an example of a subset of 792 processing that might be associated with such a service. In 793 addition, this example is not addressing any aspects of Agent 794 availability resulting in the call being sent to an agent in another 795 group, which might also be done via a SIP interface. 797 Alice example.com Gold Silver Agent 799 | | | | | 800 | INVITE F1 | | | | 801 |------------->| | | | 802 | | | | | 803 | | INVITE F2 | | | 804 | |------------->| | | 805 | | | | | 806 | | 302 Moved Temporarily F3 | | 807 | |<-------------| | | 808 | | | | | 809 | | ACK | | | 810 | |------------->| | | 811 | | | | | 812 | | INVITE F4 | | | 813 | |--------------------------->| | 814 | | | | | 815 | | | | INVITE F5 | 816 | | | |----------->| 817 | | | | | 818 | | | | 200 OK F6 | 819 | | | |<-----------| 820 | | | | | 821 | | 200 OK F7 | | 822 | |<---------------------------| | 823 | | | | | 824 | 200 OK F8 | | | | 825 |<-------------| | | | 826 | | | | | 827 | ACK F9 | 828 |------------------------------------------------------->| 830 F1 INVITE Alice -> Example.com 832 INVITE sip:Gold@example.com SIP/2.0 833 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 834 Max-Forward: 70 835 From: Alice ;tag=1235 836 To: Gold Member Assistance 837 Supported: histinfo 838 Call-Id: 12345600@example.com 839 CSeq: 1 INVITE 840 History-Info: ;index=1 841 Contact: Alice 842 Content-Type: application/sdp 843 Content-Length: 845 [SDP Not Shown] 847 F2 INVITE Example.com -> Gold.Example.com 849 INVITE sip:Gold@gold.example.com SIP/2.0 850 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4 851 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 852 Max-Forward: 69 853 From: Alice ;tag=1235 854 To: Gold Member Assistance 855 Supported: histinfo 856 Call-Id: 12345600@example.com 857 CSeq: 1 INVITE 858 History-Info: ;index=1 859 History-Info: ;rc=1;index=1.1 860 Contact: Alice 861 Content-Type: application/sdp 862 Content-Length: 864 [SDP Not Shown] 866 F3 302 Moved Temporarily Gold.Example.com -> Example.com 868 SIP/2.0 302 Moved Temporarily 869 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4;\ 870 received=192.0.2.101 871 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 872 From: Alice ;tag=1235 873 To: Gold Member Assistance ;tag=kkaz- 874 Supported: histinfo 875 Call-Id: 12345600@example.com 876 CSeq: 1 INVITE 877 History-Info: ;index=1 878 History-Info: ;rc=1;index=1.1 879 Contact: ;mp=1 880 Content-Type: application/sdp 881 Content-Length: 883 [SDP Not Shown] 885 F4 INVITE Example.com -> Silver.Example.com 886 INVITE sip:Silver@example.com SIP/2.0 887 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK45q2 888 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 889 Max-Forward: 69 890 From: Alice ;tag=1235 891 To: Gold Member Assistance 892 Supported: histinfo 893 Call-Id: 12345600@example.com 894 CSeq: 1 INVITE 895 History-Info: ;index=1 896 History-Info: ;\ 897 rc=1;index=1.1 898 History-Info: ;index=1.2;mp=1 899 History-Info: ;index=1.2.1;rc=1.2 900 Contact: Alice 901 Content-Type: application/sdp 902 Content-Length: 904 [SDP Not Shown] 906 F5 INVITE Silver.Example.com -> Agent 908 INVITE sip:Silver@192.0.2.7 SIP/2.0 909 Via: SIP/2.0/TCP silver.example.com:5060;branch=z9hG4bKerxs 910 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK45q2;\ 911 received=192.0.2.101 912 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 913 Max-Forward: 68 914 From: Alice ;tag=1235 915 To: Gold Member Assistance 916 Supported: histinfo 917 Call-Id: 12345600@example.com 918 CSeq: 1 INVITE 919 History-Info: ;index=1 920 History-Info: ;\ 921 rc=1;index=1.1 922 History-Info: ;index=1.2;mp=1 923 History-Info: ;index=1.2.1;rc=1.2 924 History-Info: ;index=1.2.1.1;rc=1.2.1 925 Contact: Alice 926 Content-Type: application/sdp 927 Content-Length: 929 [SDP Not Shown] 931 F6 200 OK Agent -> Silver.Example.com 933 SIP/2.0 200 OK 934 Via: SIP/2.0/TCP silver.example.com:5060;branch=z9hG4bKerxs;\ 935 received=192.0.2.5 936 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK45q2;\ 937 received=192.0.2.101 938 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 939 From: Alice ;tag=1235 940 To: Gold Member Assistance ;tag=2325 941 Supported: histinfo 942 Call-Id: 12345600@example.com 943 CSeq: 1 INVITE 944 History-Info: ;index=1 945 History-Info: ;\ 946 rc=1;index=1.1 947 History-Info: ;index=1.2;mp=1 948 History-Info: ;index=1.2.1;rc=1.2 949 History-Info: ;index=1.2.1.1;rc=1.2.1 950 Contact: Agent 951 Content-Type: application/sdp 952 Content-Length: 954 [SDP Not Shown] 956 F7 200 OK Silver.Example.com -> Example.com 958 SIP/2.0 200 OK 959 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK45q2;\ 960 received=192.0.2.101 961 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 962 From: Alice ;tag=1235 963 To: Gold Member Assistance ;tag=2325 964 Supported: histinfo 965 Call-Id: 12345600@example.com 966 CSeq: 1 INVITE 967 History-Info: ;index=1 968 History-Info: ;\ 969 rc=1;index=1.1 970 History-Info: ;index=1.2;mp=1 971 History-Info: ;index=1.2.1;rc=1.2 972 History-Info: ;index=1.2.1.1;rc=1.2.1 973 Contact: Agent 974 Content-Type: application/sdp 975 Content-Length: 977 [SDP Not Shown] 979 F8 200 OK Example.com -> Alice 980 SIP/2.0 200 OK 981 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 982 From: Alice ;tag=1235 983 To: Gold Member Assistance ;tag=2325 984 Supported: histinfo 985 Call-Id: 12345600@example.com 986 CSeq: 1 INVITE 987 History-Info: ;index=1 988 History-Info: ;\ 989 rc=1;index=1.1 990 History-Info: ;index=1.2;mp=1 991 History-Info: ;index=1.2.1;rc=1.2 992 History-Info: ;index=1.2.1.1;rc=1.2.1 993 Contact: Agent 994 Content-Type: application/sdp 995 Content-Length: 997 [SDP Not Shown] 999 F9 ACK Alice -> Agent 1001 ACK sip:Silver@192.0.2.7 SIP/2.0 1002 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t3 1003 Max-Forward: 70 1004 From: Alice ;tag=1235 1005 To: Gold Member Assistance ;tag=2325 1006 Supported: histinfo 1007 Call-Id: 12345600@example.com 1008 CSeq: 1 ACK 1009 Contact: Alice 1010 Content-Type: application/sdp 1011 Content-Length: 1013 [SDP Not Shown] 1015 Figure 4: Example for Automatic Call Distribution 1017 The first hi-entry with the "mp" header field parameter contains a 1018 "mp" header field parameter value of 1 which points to the original- 1019 target which allows the operator to identify that the call was from 1020 the "Gold" customer. 1022 3.5. Determining the Alias used. 1024 SIP user agents are associated with an address-of-record (AOR). It 1025 is possible for a single UA to actually have multiple AORs associated 1026 with it. One common usage for this is aliases. For example, a user 1027 might have an AOR of sip:john@example.com but also have the AORs 1028 sip:john.smith@example.com and sip:jsmith@example.com. Rather than 1029 registering against each of these AORs individually, the user would 1030 register against just one of them, and the home proxy would 1031 automatically accept incoming calls for any of the aliases, treating 1032 them identically and ultimately forwarding them towards the UA. This 1033 is common practice in the Internet Multimedia Subsystem (IMS), where 1034 it is called implicit registration and each alias is called a public 1035 user identity (PUID). 1037 It is a common requirement for a UAS, on receipt of a call, to know 1038 which of its aliases was used to reach it. This knowledge can be 1039 used to choose ringtones to play, determine call treatment, and so 1040 on. For example, a user might give out one alias to friends and 1041 family only, resulting in a special ring that alerts the user to the 1042 importance of the call. 1044 The following call-flow and example messages show how History-Info 1045 can be used to find out the alias used to reach the callee. The 1046 alias for the call is determined by hi-entry with the index that 1047 matches the value of the last hi-entry with a "rc" header field 1048 parameter in the Request received. 1050 Alice Example.com John 1051 | | REGISTER F1 | 1052 | |<--------------------| 1053 | | 200 OK F2 | 1054 | |-------------------->| 1055 | INVITE F3 | | 1056 |-------------------->| | 1057 | | INVITE F4 | 1058 | |-------------------->| 1059 * Rest of flow not shown * 1061 F1 REGISTER John -> Example.com 1063 REGISTER sip:example.com SIP/2.0 1064 Via: SIP/2.0/TCP 192.0.2.1;branch=z9hG4bKnashds7 1065 Max-Forwards: 70 1066 From: John ;tag=a73kszlfl 1067 To: John 1068 Supported: histinfo 1069 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 1070 CSeq: 1 REGISTER 1071 Contact: 1072 Content-Length: 0 1073 F2 200 OK Example.com -> John 1075 SIP/2.0 200 OK 1076 Via: SIP/2.0/TCP 192.0.2.1;branch=z9hG4bKnashds7 1077 From: John ;tag=a73kszlfl 1078 To: John ;tag=d2dstee2 1079 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 1080 CSeq: 1 REGISTER 1081 Contact: ;expires=3600 1082 Content-Length: 0 1084 F3 INVITE Alice -> Example.com 1086 INVITE sip:john.smith@example.com SIP/2.0 1087 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1088 Max-Forwards: 70 1089 From: Alice ;tag=a73kszlfl 1090 To: John 1091 Supported: histinfo 1092 Call-Id: 12345600@example.com 1093 CSeq: 1 INVITE 1094 History-Info: ;index=1 1095 Contact: Alice 1096 Content-Type: application/sdp 1097 Content-Length: 1099 [SDP Not Shown] 1101 F4 INVITE Example.com -> John 1103 INVITE sip:john@192.0.2.1 SIP/2.0 1104 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4 1105 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1106 Max-Forwards: 69 1107 From: Alice ;tag=a73kszlfl 1108 To: John 1109 Supported: histinfo 1110 Call-Id: 12345600@example.com 1111 CSeq: 1 INVITE 1112 Record-Route: 1113 History-Info: ;index=1 1114 History-Info: ;index=1.1;rc=1 1115 Contact: Alice 1116 Content-Type: application/sdp 1117 Content-Length: 1119 [SDP Not Shown] 1120 Figure 5: Alias Example 1122 The last hi-entry with the "rc" header field parameter references the 1123 source of retargeting pointing at the alias AoR, which in the example 1124 is "john.smith@example.com". 1126 3.6. PBX Voicemail Example 1128 A typical use case for voicemail is one whereby the original called 1129 party is not reachable and the call arrives at a voicemail system. 1130 In some cases multiple alternate destinations may be tried without 1131 success. The voicemail system typically requires the original called 1132 party information to determine the appropriate mailbox so an 1133 appropriate greeting can be provided and the appropriate party 1134 notified of the message. 1136 In this example, Alice calls Bob, whose SIP client is forwarded to 1137 Carol. Carol does not answer the call, thus it is forwarded to a VM 1138 (voicemail) server (VMS). In order to determine the appropriate 1139 mailbox to use for this call, the VMS needs the original target for 1140 the request. The original target is determined by finding the first 1141 hi-entry tagged with "rc" or "mp" and using the hi-entry referenced 1142 by the index of "rc" or "mp" header field parameter as the target for 1143 determining the appropriate mailbox. This hi-entry is used to 1144 populate the "target" URI parameter as defined in [RFC4458]. The 1145 reason associated with the first hi-entry tagged with "rc" or "mp" 1146 (i.e., 302) could be used to provide a customized voicemail greeting 1147 and is used to populate the "cause" URI parameter as defined in 1148 [RFC4458]. Note that some VMSs may also (or instead) use the 1149 information available in the History-Info headers for custom handling 1150 of the VM based on how and why the call arrived at the VMS. 1152 Furthermore it is the proxy forwarding the call to VMS that 1153 determines the target of the voicemail, it is the proxy that sets the 1154 target of voicemail which is also the entity that utilizes 1155 [I-D.ietf-sipcore-rfc4244bis] to find the target which is usually 1156 based on local policy installed by the user or an administrator. 1158 Alice example.com Bob Carol VM 1160 | INVITE F1 | | | | 1161 |------------->| | | | 1162 | | INVITE F2 | | | 1163 | |------------->| | | 1164 | | | | | 1165 | 100 Trying | | | | 1166 |<-------------| 302 Moved Temporarily F3 | | 1167 | |<-------------| | | 1168 | | | | | 1169 | | ACK | | | 1170 | |------------->| | | 1171 | | | | | 1172 | | INVITE F4 | | | 1173 | |--------------------------->| | 1174 | | | | | 1175 | | 180 Ringing F5 | | 1176 | |<---------------------------| | 1177 | | | | | 1178 | 180 Ringing | | | | 1179 |<-------------| | | | 1180 | | | | | 1181 | | (timeout) | | 1182 | | | | | 1183 | | INVITE F6 | | | 1184 | |-------------------------------------->| 1185 | | | | | 1186 | | 200 OK F7 | 1187 | |<--------------------------------------| 1188 | 200 OK | | | | 1189 |<-------------| | | | 1190 | | | | | 1191 | ACK | 1192 |----------------------------------------------------->| 1194 F1 INVITE Alice -> Example.com 1196 INVITE sip:bob@example.com SIP/2.0 1197 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1198 Max-Forward: 70 1199 From: Alice ;tag=kkaz- 1200 To: Bob 1201 Supported: histinfo 1202 Call-Id: 12345600@example.com 1203 CSeq: 1 INVITE 1204 History-Info: ;index=1 1205 Contact: Alice 1206 Content-Length: 1208 [SDP Not Shown] 1210 F2 INVITE Example.com -> Bob 1212 INVITE sip:bob@192.0.2.5 SIP/2.0 1213 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4 1214 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1215 Max-Forward: 69 1216 From: Alice ;tag=kkaz- 1217 To: Bob 1218 Supported: histinfo 1219 Call-Id: 12345600@example.com 1220 CSeq: 1 INVITE 1221 History-Info: ;index=1 1222 History-Info: ;index=1.1;rc=1 1223 Contact: Alice 1224 Content-Type: application/sdp 1225 Content-Length: 1227 [SDP Not Shown] 1229 F3 302 Moved Temporarily Bob -> Example.com 1231 SIP/2.0 302 Moved Temporarily 1232 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4;\ 1233 received=192.0.2.101 1234 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1235 From: Alice ;tag=kkaz- 1236 To: Bob ;tag=2g22d-lnf 1237 Supported: histinfo 1238 Call-Id: 12345600@example.com 1239 CSeq: 1 INVITE 1240 History-Info: ;index=1 1241 History-Info: ;index=1.1;rc=1 1242 Contact: ;mp=1 1243 Content-Type: application/sdp 1244 Content-Length: 1246 [SDP Not Shown] 1248 F4 INVITE Example.com -> Carol 1250 INVITE sip:carol@192.0.2.4 SIP/2.0 1251 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK4522 1252 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1253 Max-Forward: 69 1254 From: Alice ;tag=kkaz- 1255 To: Bob 1256 Supported: histinfo 1257 Call-Id: 12345600@example.com 1258 CSeq: 1 INVITE 1259 History-Info: ;index=1 1260 History-Info: ;\ 1261 index=1.1;rc=1 1262 History-Info: ;index=1.2;mp=1 1263 History-Info: ;index=1.2.1;rc=1.2 1264 Contact: Alice 1265 Content-Type: application/sdp 1266 Content-Length: 1268 [SDP Not Shown] 1270 F5 180 Ringing Carol -> Example.com 1272 SIP/2.0 180 Ringing 1273 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK4522;\ 1274 received=192.0.2.101 1275 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1276 From: Alice ;tag=kkaz- 1277 To: Bob ;tag=setss3x 1278 Supported: histinfo 1279 Call-Id: 12345600@example.com 1280 CSeq: 1 INVITE 1281 History-Info: ;index=1 1282 History-Info: ;\ 1283 index=1.1;rc=1 1284 History-Info: ;index=1.2;mp=1 1285 History-Info: ;index=1.2.1;rc=1.2 1286 Contact: 1287 Content-Type: application/sdp 1288 Content-Length: 1290 [SDP Not Shown] 1292 F6 INVITE Example.com -> VM 1294 INVITE sip:vm@192.0.2.6;target=sip:bob%40example.com;cause=480\ 1295 SIP/2.0 1296 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK4523 1297 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1298 Max-Forward: 69 1299 From: Alice ;tag=kkaz- 1300 To: Bob 1301 Supported: histinfo 1302 Call-Id: 12345600@example.com 1303 CSeq: 1 INVITE 1304 History-Info: ;index=1 1305 History-Info: ;\ 1306 index=1.1;rc=1 1307 History-Info: ;index=1.2;mp=1 1310 History-Info: ;index=1.2.1;rc=1.2 1312 History-Info: ;\ 1314 index=1.3;mp=1 1315 History-Info: ;\ 1317 index=1.3.1;rc=1.3 1318 Contact: Alice 1319 Content-Type: application/sdp 1320 Content-Length: 1322 [SDP Not Shown] 1324 F7 200 OK VM -> Example.com 1326 SIP/2.0 200 OK 1327 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK4523;\ 1328 received=192.0.2.101 1329 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1330 From: Alice ;tag=kkaz- 1331 To: Bob ;tag=3dweggs 1332 Supported: histinfo 1333 Call-Id: 12345600@example.com 1334 CSeq: 1 INVITE 1335 History-Info: ;index=1 1336 History-Info: ;\ 1337 index=1.1;rc=1 1338 History-Info: ;index=1.2;mp=1 1340 History-Info: ;index=1.2.1;rc=1.2 1342 History-Info: ;\ 1344 index=1.3;mp=1 1345 History-Info: ;\ 1347 index=1.3.1;rc=1.3 1348 Contact: 1349 Content-Type: application/sdp 1350 Content-Length: 1352 [SDP Not Shown] 1354 Figure 6: Enterprise Voivemail Example 1356 The VMS can look at the last hi-entry and find the target of the 1357 mailbox by looking at the URI entry in the "target" URI parameter in 1358 the hi-entry. 1360 3.7. Consumer Voicemail Example 1362 In the case of a consumer, when the call is retargeted, it is usually 1363 to another administrative domain. The voicemail system in these 1364 environment typically requires the last called party information to 1365 determine the appropriate mailbox so an appropriate greeting can be 1366 provided and the appropriate party notified of the message. 1368 In this example, Alice calls the Bob but Bob has temporarily 1369 forwarded his phone to Carol because she is his wife. Carol does not 1370 answer the call, thus it is forwarded to a VM (voicemail) server 1371 (VMS). In order to determine the appropriate mailbox to use for this 1372 call, the VMS needs the appropriate target for the request. The last 1373 target is determined by finding the hi-entry referenced by the index 1374 of last hi-entry tagged with "mp" for determining the appropriate 1375 mailbox. This hi-entry is used to populate the "target" URI 1376 parameter as defined in [RFC4458]. Note that some VMSs may also (or 1377 instead) use the information available in the History-Info headers 1378 for custom handling of the VM in terms of how and why the called 1379 arrived at the VMS. 1381 Alice example.com Bob Carol VM 1383 | INVITE F1 | | | | 1384 |------------->| | | | 1385 | | INVITE F2 | | | 1386 | |------------->| | | 1387 | | | | | 1388 | 100 Trying | | | | 1389 |<-------------| 302 Moved Temporarily F3 | | 1390 | |<-------------| | | 1391 | | | | | 1392 | | ACK | | | 1393 | |------------->| | | 1394 | | | | | 1395 | | INVITE F4 | | | 1396 | |--------------------------->| | 1397 | | | | | 1398 | | 180 Ringing F5 | | 1399 | |<---------------------------| | 1400 | | | | | 1401 | 180 Ringing | | | | 1402 |<-------------| | | | 1403 | | | | | 1404 | | (timeout) | | 1405 | | | | | 1406 | | INVITE F6 | | | 1407 | |-------------------------------------->| 1408 | | | | | 1409 | | 200 OK F7 | 1410 | |<--------------------------------------| 1411 | 200 OK | | | | 1412 |<-------------| | | | 1413 | | | | | 1414 | ACK | 1415 |----------------------------------------------------->| 1417 F1 INVITE Alice -> Example.com 1419 INVITE sip:bob@example.com SIP/2.0 1420 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1421 Max-Forward: 70 1422 From: Alice ;tag=kkaz- 1423 To: Bob 1424 Supported: histinfo 1425 Call-Id: 12345600@example.com 1426 CSeq: 1 INVITE 1427 History-Info: ;index=1 1428 Contact: Alice 1429 Content-Length: 1431 [SDP Not Shown] 1433 F2 INVITE Example.com -> Bob 1435 INVITE sip:bob@192.0.2.5 SIP/2.0 1436 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4 1437 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1438 Max-Forward: 69 1439 From: Alice ;tag=kkaz- 1440 To: Bob 1441 Supported: histinfo 1442 Call-Id: 12345600@example.com 1443 CSeq: 1 INVITE 1444 History-Info: ;index=1 1445 History-Info: ;index=1.1;rc=1 1446 Contact: Alice 1447 Content-Type: application/sdp 1448 Content-Length: 1450 [SDP Not Shown] 1452 F3 302 Moved Temporarily Bob -> Example.com 1454 SIP/2.0 302 Moved Temporarily 1455 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4;\ 1456 received=192.0.2.101 1457 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1458 From: Alice ;tag=kkaz- 1459 To: Bob ;tag=224ls3s-t 1460 Supported: histinfo 1461 Call-Id: 12345600@example.com 1462 CSeq: 1 INVITE 1463 History-Info: ;index=1 1464 History-Info: ;index=1.1;rc=1 1465 Contact: ;mp=1 1466 Content-Type: application/sdp 1467 Content-Length: 1469 [SDP Not Shown] 1471 F4 INVITE Example.com -> Carol 1473 INVITE sip:carol@192.0.2.4 SIP/2.0 1474 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK24s5 1475 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1476 Max-Forward: 69 1477 From: Alice ;tag=kkaz- 1478 To: Bob 1479 Supported: histinfo 1480 Call-Id: 12345600@example.com 1481 CSeq: 1 INVITE 1482 History-Info: ;index=1 1483 History-Info: \ 1485 ;index=1.1;rc=1 1486 History-Info: ;index=1.2;mp=1 1487 History-Info: ;index=1.2.1;rc=1.2 1488 Contact: Alice 1489 Content-Type: application/sdp 1490 Content-Length: 1492 [SDP Not Shown] 1494 F5 180 Ringing Carol -> Example.com 1496 SIP/2.0 180 Ringing 1497 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK24s5;\ 1498 received=192.0.2.101 1499 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1500 From: Alice ;tag=kkaz- 1501 To: Bob ;tag=setss3x 1502 Supported: histinfo 1503 Call-Id: 12345600@example.com 1504 CSeq: 1 INVITE 1505 History-Info: ;index=1 1506 History-Info: ;\ 1508 index=1.1;rc=1 1509 History-Info: ;index=1.2;mp=1 1510 History-Info: ;index=1.2.1;rc=1.2 1511 Contact: 1512 Content-Type: application/sdp 1513 Content-Length: 1515 [SDP Not Shown] 1517 F6 INVITE Example.com -> VM 1519 INVITE sip:vm@192.0.2.6;target=sip:carol%40example.com SIP/2.0 1520 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKbbg4 1521 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1522 Max-Forward: 69 1523 From: Alice ;tag=kkaz- 1524 To: Bob 1525 Supported: histinfo 1526 Call-Id: 12345600@example.com 1527 CSeq: 1 INVITE 1528 History-Info: ;index=1 1529 History-Info: ;\ 1531 index=1.1;rc=1 1532 History-Info: ;\ 1533 index=1.2;mp=1 1534 History-Info: ;\ 1535 index=1.2.1;rc=1.2 1536 History-Info: ;index=1.2.2;mp=1.2 1538 History-Info: ;index=1.2.2.1;rc=1.2.2 1540 Contact: Alice 1541 Content-Type: application/sdp 1542 Content-Length: 1544 [SDP Not Shown] 1545 F7 200 OK VM -> Example.com 1547 SIP/2.0 200 OK 1548 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKbbg4 1549 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1550 From: Alice ;tag=kkaz- 1551 To: Bob ;tag=3dweggs 1552 Supported: histinfo 1553 Call-Id: 12345600@example.com 1554 CSeq: 1 INVITE 1555 History-Info: ;index=1 1556 History-Info: ;\ 1558 index=1.1;rc=1 1559 History-Info: ;\ 1560 index=1.2;mp=1 1561 History-Info: ;\ 1562 index=1.2.1;rc=1.2 1563 History-Info: ;index=1.2.2;mp=1.2 1565 History-Info: ;index=1.2.2.1;rc=1.2.2 1567 Contact: 1568 Content-Type: application/sdp 1569 Content-Length: 1571 [SDP Not Shown] 1573 Figure 7: Consumer Voivemail Example 1575 The VMS can look at the last hi-entry and find the target of the 1576 mailbox by looking for the "target" URI parameter in the hi-entry and 1577 the reason by the "cause" URI parameter in the same hi-entry. 1579 3.8. GRUU 1581 A variation on the problem in Section 3.5 occurs with Globally 1582 Routable User Agent URI (GRUU) [RFC5627]. A GRUU is a URI assigned 1583 to a UA instance which has many of the same properties as the AOR, 1584 but causes requests to be routed only to that specific instance. It 1585 is desirable for a UA to know whether it was reached because a 1586 correspondent sent a request to its GRUU or to its AOR. This can be 1587 used to drive differing authorization policies on whether the request 1588 should be accepted or rejected, for example. However, like the AOR 1589 itself, the GRUU is lost in translation at the home proxy. Thus, the 1590 UAS cannot know whether it was contacted via the GRUU or its AOR. 1592 Following call-flow and example messages show how History-Info can be 1593 used to find out the GRUU used to reach the callee. 1595 While a GRUU is comprised of an AoR with a URI parameter as defined 1596 in [RFC5627] , the GRUU construct itself is not an AoR. Thus, the 1597 retargeting of a request based on a GRUU does not result in the 1598 addition of an "rc" header field parameter to the hi-entry containing 1599 the GRUU. The lack of an "rc" header field parameter in the hi- 1600 entries can be a hint that the source of retargeting is a GRUU. 1601 However, to ensure this is the case, the UAS needs to search for a 1602 "gr" parameter in the hi-entry prior to the last hi-entry. If there 1603 is a GRUU, the URI will always be prior to the last hi-entry as GRUU 1604 does not allow multiple instance to be mapped to a contact address. 1606 Alice Example.com John 1607 | | REGISTER F1 | 1608 | |<--------------------| 1609 | | 200 OK F2 | 1610 | |-------------------->| 1611 | INVITE F3 | | 1612 |-------------------->| | 1613 | | INVITE F4 | 1614 | |-------------------->| 1615 * Rest of flow not shown * 1617 F1 REGISTER John -> Example.com 1619 REGISTER sip:example.com SIP/2.0 1620 Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7 1621 Max-Forwards: 70 1622 From: John ;tag=a73kszlfl 1623 Supported: gruu 1624 To: John 1625 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 1626 CSeq: 1 REGISTER 1627 Contact: ;+sip.instance=\ 1628 1629 Content-Length: 0 1631 [SDP Not Shown] 1633 F2 200 OK Example.com -> John 1635 SIP/2.0 200 OK 1636 Via: SIP/2.0/TCP 192.0.2.1;branch=z9hG4bKnashds7 1637 From: John ;tag=a73kszlfl 1638 To: John ;tag=b88sn 1639 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 1640 CSeq: 1 REGISTER 1641 Contact: ;\ 1642 pub-gruu="sip:john@example.com;\ 1643 gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6";\ 1644 temp-gruu=\ 1645 "sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;\ 1646 gr";+sip.instance=\ 1647 "";\ 1648 expires=3600 1649 Content-Length: 0 1651 [SDP Not Shown] 1653 Assuming Alice has a knowledge of a gruu either through 1654 prior communication or through other means such as presence 1655 places a call to John's gruu. 1657 F3 INVITE Alice -> Example.com 1659 INVITE sip:john@example.com;\ 1660 gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6 SIP/2.0 1661 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1662 Max-Forward: 70 1663 From: Alice ;tag=kkaz- 1664 To: 1666 Supported: gruu, histinfo 1667 Call-Id: 12345600@example.com 1668 CSeq: 1 INVITE 1669 History-Info: ;index=1 1671 Contact: Alice 1672 Content-Length: 1674 [SDP Not Shown] 1676 F4 INVITE Example.com -> John 1678 INVITE sip:john@192.0.2.1 SIP/2.0 1679 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4 1680 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1681 Max-Forward: 69 1682 From: Alice ;tag=kkaz- 1683 To: 1686 Supported: gruu, histinfo 1687 Call-Id: 12345600@example.com 1688 CSeq: 1 INVITE 1689 Record-Route: 1690 History-Info: ;index=1 1692 History-Info: ;index=1.1;rc=1 1693 Contact: Alice 1694 Content-Type: application/sdp 1695 Content-Length: 1697 [SDP Not Shown] 1699 Figure 8: GRUU Example 1701 By analyzing the entry referenced by the entry with the last "rc", 1702 one can realize that the URI used to reach the device was GRUU by 1703 finding the "gr" parameter. 1705 3.9. Limited Use Address 1707 A limited use address is a SIP URI that is minted on-demand, and 1708 passed out to a small number (usually one) remote correspondent. 1709 Incoming calls targeted to that limited use address are accepted as 1710 long as the UA still desires communications from the remote target. 1711 Should they no longer wish to be bothered by that remote 1712 correspondent, the URI is invalidated so that future requests 1713 targeted to it are rejected. 1715 Limited use addresses are used in battling voice spam [RFC5039]. The 1716 easiest way to provide them would be for a UA to be able to take its 1717 AOR, and "mint" a limited use address by appending additional 1718 parameters to the URI. It could then give out the URI to a 1719 particular correspondent, and remember that URI locally. When an 1720 incoming call arrives, the UAS would examine the parameter in the URI 1721 and determine whether or not the call should be accepted. 1722 Alternatively, the UA could push authorization rules into the 1723 network, so that it need not even see incoming requests that are to 1724 be rejected. 1726 This approach, especially when executed on the UA, requires that 1727 parameters attached to the AOR, but not used by the home proxy in 1728 processing the request, will survive the translation at the home 1729 proxy and be presented to the UA. This will not be the case with the 1730 logic in RFC 3261, since the Request-URI is replaced by the 1731 registered contact, and any such parameters are lost. 1733 Using the history-info John's UA can easily see if the call was 1734 addressed to its AoR, GRUU or a temp-gruu and treat the call 1735 accordingly by looking for a "gr" tag in the hi-entry prior to the 1736 last hi-entry. 1738 Alice Example.com John 1739 | | REGISTER F1 | 1740 | |<--------------------| 1741 | | 200 OK F2 | 1742 | |-------------------->| 1743 | INVITE F3 | | 1744 |-------------------->| | 1745 | | INVITE F4 | 1746 | |-------------------->| 1747 * Rest of flow not shown * 1749 F1 REGISTER John -> Example.com 1751 REGISTER sip:example.com SIP/2.0 1752 Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7 1753 Max-Forwards: 70 1754 From: John ;tag=a73kszlfl 1755 Supported: gruu 1756 To: John 1757 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 1758 CSeq: 1 REGISTER 1759 Contact: ;\ 1760 +sip.instance="" 1761 Content-Length: 0 1763 F2 200 OK Example.com -> John 1765 SIP/2.0 200 OK 1766 Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7 1767 From: John ;tag=a73kszlfl 1768 To: John ;tag=b88sn 1769 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 1770 CSeq: 1 REGISTER 1771 Contact: ;\ 1772 pub-gruu="sip:john@example.com;\ 1773 gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6";\ 1774 temp-gruu=\ 1775 "sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;gr";\ 1776 +sip.instance="";\ 1777 expires=3600 1778 Content-Length: 0 1779 Assuming Alice has a knowledge of a temp-gruu, she places a 1780 call to the temp-gruu. 1782 F3 INVITE Alice -> Example.com 1784 INVITE sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;\ 1785 gr SIP/2.0 1786 Via: SIP/2.0/UDP 192.0.2.3:5060;branch=z9hG4bK42t2 1787 Max-Forward: 70 1788 From: Alice ;tag=kkaz- 1789 To: 1791 Supported: gruu, histinfo 1792 Call-Id: 12345600@example.com 1793 CSeq: 1 INVITE 1794 History-Info: \ 1795 \ 1796 ;index=1 1797 Contact: Alice 1798 Content-Length: 1800 F4 INVITE Example.com -> John 1802 INVITE sip:john@192.0.2.1 SIP/2.0 1803 Via: SIP/2.0/UDP proxy.example.com:5060;branch=z9hG4bK12s4 1804 Via: SIP/2.0/UDP 192.0.2.3:5060;branch=z9hG4bK42t2 1805 Max-Forward: 69 1806 From: Alice ;tag=kkaz- 1807 To: 1809 Supported: gruu, histinfo 1810 Call-Id: 12345600@example.com 1811 CSeq: 1 INVITE 1812 Record-Route: 1813 History-Info: \ 1814 \ 1815 ;index=1 1816 History-Info: ;index=1.1;rc=1 1817 Contact: Alice 1818 Content-Type: application/sdp 1819 Content-Length: 1821 Figure 9: Limited Use Address Example 1823 By analyzing the entry referenced by the entry with the last "rc", 1824 one can realize that the URI used to reach the device was GRUU by 1825 finding the "gr" parameter. 1827 3.10. Service Invocation 1829 Several SIP specifications have been developed which make use of 1830 complex URIs to address services within the network rather than 1831 subscribers. The URIs are complex because they contain numerous 1832 parameters that control the behavior of the service. Examples of 1833 this include the specification which first introduced the concept, 1834 [RFC3087], control of network announcements and IVR with SIP URI 1835 [RFC4240], and control of voicemail access with SIP URI [RFC4458]. 1837 A common problem with all of these mechanisms is that once a proxy 1838 has decided to rewrite the Request-URI to point to the service, it 1839 cannot be sure that the Request-URI will not be destroyed by a 1840 downstream proxy which decides to forward the request in some way, 1841 and does so by rewriting the Request-URI. 1843 Section on voicemail (Section 3.6) shows how History-Info can be used 1844 to invoke a service. 1846 3.11. Toll Free Number 1848 Toll free numbers, also known as 800 or 8xx numbers in the United 1849 States, are telephone numbers that are free for users to call. 1851 In the telephone network, toll free numbers are just aliases to 1852 actual numbers which are used for routing of the call. In order to 1853 process the call in the PSTN, a switch will perform a query (using a 1854 protocol called TCAP), which will return either a phone number or the 1855 identity of a carrier which can handle the call. 1857 There has been recent work on allowing such PSTN translation services 1858 to be accessed by SIP proxy servers through IP querying mechanisms. 1859 ENUM, for example [RFC6117] has already been proposed as a mechanism 1860 for performing Local Number Portability (LNP) queries [RFC4769]. 1861 Using it for 8xx number translations is a logical next-step. 1863 The new target from translating the 8xx number may be in PSTN or in 1864 SIP network. If the new target is an entity in the PSTN network, the 1865 proper treatment in the PSTN (and in particular, correct 1866 reconciliation of billing records) requires that the call be marked 1867 with both the originating number (8xx number) and the new target 1868 number, History-info could be used here to ensure original 8xx number 1869 is not lost. 1871 Although not required to have both the originating number (8xx 1872 number) and the new target in the SIP network, an enterprise or a 1873 user that utilizes the 8xx service can benefit by knowing whether the 1874 call came in via an 8xx number in order to treat the call differently 1875 (e.g., to play a special announcement). However, if the original 1876 R-URI is lost through translation, there is no way to tell if the 1877 call came in via 8xx number. History-info again could be used here. 1879 Similar problems arise with other "special" numbers and services used 1880 in the PSTN, such as operator services, pay/premium numbers (9xx 1881 numbers in the U.S), and short service codes such as 311. 1883 To find the service number, the UAS can extract the hi-entry whose 1884 index matches the value of the first hi-entry with an "mp" tag. 1885 Technically the call can be forwarded to these "special" numbers from 1886 non "special" numbers, however that is uncommon based on the way 1887 these services authorize translations. 1889 This example call-flow shows an UAC that does not support history- 1890 info. 1892 Alice Toll Free Service Atlanta.com John 1893 | | | | 1894 | INVITE F1 | | | 1895 |--------------->| INVITE F2 | | 1896 | |------------->| | 1897 | | | INVITE F3 | 1898 | | |------------------>| 1900 * Rest of flow not shown * 1902 F1: INVITE 192.0.2.1 -> Toll Free Service 1904 INVITE sip:+18005551002@example.com;user=phone SIP/2.0 1905 Via: SIP/2.0/TCP 192.0.2.1:5060;branch=z9hG4bK74bf 1906 From: Alice ;tag=9fxced76sl 1907 To: 1908 Call-ID: c3x842276298220188511 1909 CSeq: 1 INVITE 1910 Max-Forwards: 70 1911 Contact: 1912 Content-Type: application/sdp 1913 Content-Length: 1915 [SDP Not Shown] 1917 F2: INVITE Toll Free Service -> Atlanta.com 1919 INVITE sip:+15555551002@atlanta.com SIP/2.0 1920 Via: SIP/2.0/TCP 192.0.2.4:5060;branch=z9hG4bK-ik8 1921 Via: SIP/2.0/TCP 192.0.2.1:5060;branch=z9hG4bK74bf 1922 From: Alice ;tag=9fxced76sl 1923 To: 1924 Call-ID: c3x842276298220188511 1925 CSeq: 1 INVITE 1926 Max-Forwards: 69 1927 Supported: histinfo 1928 History-Info: ;index=1 1929 History-Info: ;index=1.1;mp=1 1930 Contact: 1931 Content-Type: application/sdp 1932 Content-Length: 1934 [SDP Not Shown] 1936 F3: INVITE Atlanta.com -> John 1938 INVITE sip:john@198.51.100.2 SIP/2.0 1939 Via: SIP/2.0/TCP 198.51.100.1:5060;branch=z9hG4bKpxk7g 1940 Via: SIP/2.0/TCP 192.0.2.4:5060;branch=z9hG4bK-ik8 1941 Via: SIP/2.0/TCP 192.0.2.1:5060;branch=z9hG4bK74bf 1942 From: Alice ;tag=9fxced76sl 1943 To: 1944 Call-ID: c3x842276298220188511 1945 CSeq: 1 INVITE 1946 Max-Forwards: 68 1947 Supported: histinfo 1948 History-Info: ;index=1 1949 History-Info: ;index=1.1;mp=1 1950 History-Info: ;index=1.1.1;rc=1.1 1951 History-Info: ;index=1.1.1.1;rc=1.1.1 1952 Contact: 1953 Content-Type: application/sdp 1954 Content-Length: 1956 [SDP Not Shown] 1958 Figure 10: Service Number Example 1960 4. Security Considerations 1962 The security considerations for the History-Info header field are 1963 specified in [I-D.ietf-sipcore-rfc4244bis]. 1965 5. IANA Considerations 1967 This document has no IANA considerations. 1969 5.1. Acknowledgements 1971 Jonathan Rosenberg et al produced the document that provided 1972 additional use cases precipitating the requirement for the new 1973 "target" parameter in the History-Info header field and the new SIP/ 1974 SIPS URI parameter. Hadriel Kaplan provided some comments. 1976 Brett Tate, Roland Jesske, Laura Liess, Scott Godin, Dale Worley and 1977 Marianne Mohali provided extensive review and comments on call-flow, 1978 message examples and text. 1980 6. Informative References 1982 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 1983 A., Peterson, J., Sparks, R., Handley, M., and E. 1984 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 1985 June 2002. 1987 [RFC5627] Rosenberg, J., "Obtaining and Using Globally Routable User 1988 Agent URIs (GRUUs) in the Session Initiation Protocol 1989 (SIP)", RFC 5627, October 2009. 1991 [RFC3087] Campbell, B. and R. Sparks, "Control of Service Context 1992 using SIP Request-URI", RFC 3087, April 2001. 1994 [RFC4240] Burger, E., Van Dyke, J., and A. Spitzer, "Basic Network 1995 Media Services with SIP", RFC 4240, December 2005. 1997 [RFC5039] Rosenberg, J. and C. Jennings, "The Session Initiation 1998 Protocol (SIP) and Spam", RFC 5039, January 2008. 2000 [RFC4458] Jennings, C., Audet, F., and J. Elwell, "Session 2001 Initiation Protocol (SIP) URIs for Applications such as 2002 Voicemail and Interactive Voice Response (IVR)", RFC 4458, 2003 April 2006. 2005 [RFC6117] Hoeneisen, B., Mayrhofer, A., and J. Livingood, "IANA 2006 Registration of Enumservices: Guide, Template, and IANA 2007 Considerations", RFC 6117, March 2011. 2009 [RFC4769] Livingood, J. and R. Shockey, "IANA Registration for an 2010 Enumservice Containing Public Switched Telephone Network 2011 (PSTN) Signaling Information", RFC 4769, November 2006. 2013 [I-D.ietf-sipcore-rfc4244bis] 2014 Barnes, M., Audet, F., Schubert, S., Elburg, H., and C. 2015 Holmberg, "An Extension to the Session Initiation Protocol 2016 (SIP) for Request History Information", 2017 draft-ietf-sipcore-rfc4244bis-11 (work in progress), 2018 January 2013. 2020 Authors' Addresses 2022 Mary Barnes 2023 Polycom 2024 TX 2025 US 2027 Email: mary.ietf.barnes@gmail.com 2029 Francois Audet 2030 Skype 2032 Email: francois.audet@skype.net 2034 Shida Schubert 2035 NTT 2036 Tokyo 2037 Japan 2039 Email: shida@ntt-at.com 2041 Hans Erik van Elburg 2042 Detecon International Gmbh 2043 Oberkasseler str. 2 2044 Bonn, 2045 Germany 2047 Email: ietf.hanserik@gmail.com 2049 Christer Holmberg 2050 Ericsson 2051 Hirsalantie 11, Jorvas 2052 Finland 2054 Email: christer.holmberg@ericsson.com