idnits 2.17.1 draft-ietf-sip-service-examples-03.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Looks like you're using RFC 2026 boilerplate. This must be updated to follow RFC 3978/3979, as updated by RFC 4748. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** The document seems to lack a 1id_guidelines paragraph about 6 months document validity -- however, there's a paragraph with a matching beginning. Boilerplate error? ** The document seems to lack a 1id_guidelines paragraph about the list of current Internet-Drafts. ** The document seems to lack a 1id_guidelines paragraph about the list of Shadow Directories. == The page length should not exceed 58 lines per page, but there was 6 longer pages, the longest (page 72) being 59 lines Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack a Security Considerations section. ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. == There are 178 instances of lines with non-RFC2606-compliant FQDNs in the document. == There are 85 instances of lines with non-RFC6890-compliant IPv4 addresses in the document. If these are example addresses, they should be changed. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 Copyright Line does not match the current year == Line 1691 has weird spacing: '...success back ...' == Line 3277 has weird spacing: '...s. The locat...' -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- Couldn't find a document date in the document -- date freshness check skipped. -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Informational ---------------------------------------------------------------------------- ** Obsolete normative reference: RFC 2543 (ref. '2') (Obsoleted by RFC 3261, RFC 3262, RFC 3263, RFC 3264, RFC 3265) Summary: 8 errors (**), 0 flaws (~~), 6 warnings (==), 3 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 Internet Engineering Task Force Alan Johnston 2 Internet Draft WorldCom 3 Document: draft-ietf-sip-service-examples-03.txt Robert Sparks 4 Category: Informational Chris Cunningham 5 November 2001 Steve Donovan 6 Expires: June 2002 dynamicsoft 7 Kevin Summers 8 Sonus 10 SIP Service Examples 12 Status of this Memo 14 This document is an Internet-Draft and is in full conformance with 15 all provisions of Section 10 of RFC2026[1]. 17 Internet-Drafts are working documents of the Internet Engineering 18 Task Force (IETF), its areas, and its working groups. Note that other 19 groups may also distribute working documents as Internet-Drafts. 20 Internet-Drafts are draft documents valid for a maximum of six months 21 and may be updated, replaced, or obsoleted by other documents at any 22 time. It is inappropriate to use Internet- Drafts as reference 23 material or to cite them other than as "work in progress." 24 The list of current Internet-Drafts can be accessed at 25 http://www.ietf.org/ietf/1id-abstracts.txt 26 The list of Internet-Draft Shadow Directories can be accessed at 27 http://www.ietf.org/shadow.html. 29 Abstract 31 This informational document gives examples of SIP (Session Initiation 32 Protocol) services. This covers most features offered in so-called 33 Centrex offerings from local exchange carriers and PBX (Private 34 Branch Exchange) features. Most of the services shown in this 35 document are implemented in the SIP User Agents, although some 36 require the assistance of a SIP Proxy. Some require some extensions 37 to SIP including the REFER method and Replaces header. These features 38 are not intended to be an exhaustive set, but rather show 39 implementations of common features likely to be implemented on SIP IP 40 Telephones in a business environment. 42 Table of Contents 44 1 Overview...................................................3 45 1.1 Legend for Message Flows...................................4 46 1.2 Document History...........................................4 47 2 IP Telephony Services Features Call Flows..................6 48 2.1 Call Hold..................................................6 49 2.2 Consultation Hold.........................................16 50 2.3 Music On Hold.............................................30 51 2.4 Unattended Transfer.......................................37 52 2.5 Attended Transfer.........................................43 53 2.6 Call Forwarding Unconditional.............................54 54 2.7 Call Forwarding - Busy....................................59 55 2.8 Call Forwarding - No Answer...............................65 56 2.9 3-way Conference..........................................72 57 2.10 Single Line Extension.....................................72 58 2.11 Find-Me...................................................73 59 2.12 Call Management (Incoming Call Screening).................82 60 2.13 Call Management (Outgoing Call Screening).................86 61 2.14 Call Park.................................................89 62 2.15 Call Pickup...............................................97 63 3 References...............................................106 64 4 Author's Addresses.......................................107 66 1 Overview 68 This informational document provides call flows detailing a SIP 69 implementation of the following traditional telephony services: 71 Call Hold Music on Hold 72 Unattended Transfer Consultation Hold 73 Unconditional Call Forwarding Attended Transfer 74 No Answer Call Forwarding Busy Call Forwarding 75 Single-Line Extension 3-way Call 76 Incoming Call Screening Find-Me 77 Call Pickup Call Park 78 Outgoing Call Screening 80 It is the hope of the authors that this document will be useful for 81 SIP implementors, users, designers, and protocol researchers alike 82 and will help further the goal of a standard SIP implementation for 83 IP Telephony. It is envisioned that as changes to the standard and 84 additional RFCs are added that this document will reflect those 85 changes and represent the current state of a standard SIP IP 86 Telephony implementation. 88 These flows use SIP as defined by RFC 2543 [2] with some noted 89 updates for RFC 2543bis. Note that this document is informational, 90 and nothing stated here should be taken as normative. RFC 2543 and 91 the other referenced documents are definitive as far as protocol 92 issues are concerned. Also, these flows do not represent the only 93 way to implement these services - other approaches such as 3pcc 94 (Third Party Call Control) or Back-to-Back User Agents (B2BUA) may be 95 more appropriate in some circumstances. 97 These flows assume the functionality described in the SIP Call Flow 98 Examples document [3], which explores basic behavior and PSTN 99 internetworking. Some of the scenarios described herein make use of 100 the SIP method extension REFER [4] and the SIP header extension 101 Replaces [5], the SIP header extension Accept-Contact [6], and some 102 of the concepts in the 3pcc (third party call control) document [7]. 104 These flows were prepared assuming a network of proxies, registrars, 105 PSTN gateways, and other SIP servers that have a pre-established 106 trust relationship with each other, secured through other means than 107 SIP. User agents wishing to use the services in this network are 108 required to authenticate themselves with an edge proxy using SIP 109 Digest. To improve the clarity of this document, authentication of 110 User Agents is not explicitly shown in all flows, except where 111 authentication directly relates to the service example. 113 Each call flow is presented with a textual description of the 114 scenario, a message flow diagram showing the messages exchanged 115 between separate network elements, and the detailed contents of each 116 message shown in the diagram. 118 1.1 Legend for Message Flows 120 Dashed lines (---) represent control messages that are mandatory to 121 the call scenario. These control messages can be SIP or PSTN 122 signaling. 124 Double dashed lines (===) represent media paths between network 125 elements. 127 Messages with parenthesis around name represent optional control 128 messages. 130 Messages are identified in the Figures as F1, F2, etc. This 131 references the message details in the table that follows the Figure. 132 Comments in the message details are shown in the following form: 134 /* Comments. */ 136 1.2 Document History 138 The first version of this document was the Internet-Draft 139 "draft-sparks-sip-service-examples.txt" October 1999. 141 The next version was combined with the SIP Telephony Call Flows 142 document into the "draft-ietf-sip-call-flows-00.txt" April 2000. 144 This version is based on Section 7 of that document with many of the 145 examples extensively rewritten using the REFER method. 147 1.3 Changes to 00 149 - Moddified all REFER flows to include 202 Accepted and NOTIFY 150 result message. 152 - Removed "Telephony" from title of document. 154 - Added note on 2.9 on use of REFER to exit 3-way conference. 156 - Modified Music on Hold/Call Park flow (2.2). 158 - Modified order of messages in transfers (2.4 and 2.5) to more 159 closely resemble PSTN experience. 161 - Added Call Pickup flow (2.13). 163 - Added editorial notes on usefulness of Replaces header. 165 1.4 Changes to 01 166 - Added Replaces header to flows. 168 - Changed handling of call hold. 170 - Added Contact and Referred-By headers and ref parameters to REFER 171 messages. 173 - Changed some Contacts, Routes, and Request-URIs to IP addresses. 175 - Incremented o= line when SDP is updated with hold. 177 - Added From tags throughout. 179 - Renamed Music On Hold/Call Park to Call Park and added new Music On 180 Hold call flow using 3pcc. 182 1.5 Changes to 02 184 - Changed call hold flows to show sendonly attribute based on [8]. 186 - Removed ref parameter from the Referred-By headers since it is now 187 just a generic paramter in the latest draft [4]. (Note that if the 188 ref parameter stays, additional characters such as "<", "@", and ">" 189 must be escaped.) 191 - Removed tags in CANCEL requests and responses. 193 2 IP Telephony Services Features Call Flows 195 These call flows show how a number of standard telephony features can 196 be implemented using SIP. They are not meant to represent a complete 197 set. Some calls make use of SIP extensions. 199 2.1 Call Hold 201 User A Proxy User B 202 | | | 203 | INVITE F1 | | 204 |--------------->| | 205 | | INVITE F2 | 206 |(100 Trying) F3 |------------->| 207 |<---------------| | 208 | |180 Ringing F4| 209 | 180 Ringing F5 |<-------------| 210 |<---------------| | 211 | | 200 OK F6 | 212 | 200 OK F7 |<-------------| 213 |<---------------| | 214 | ACK F8 | | 215 |--------------->| ACK F9 | 216 | |------------->| 217 | Both way RTP Established | 218 |<=============================>| 219 | |INVITE(hold) F10 220 |INVITE(hold) F11|<-------------| 221 |<---------------| | 222 | 200 OK F12 | | 223 |--------------->| 200 OK F13 | 224 | |------------->| 225 | | ACK F14 | 226 | ACK F15 |<-------------| 227 |<---------------| | 228 | No RTP Sent! | 229 | | INVITE F16 | 230 | INVITE F17 |<-------------| 231 |<---------------| | 232 | 200 OK F18 | | 233 |--------------->| 200 OK F19 | 234 | |------------->| 235 | | ACK F20 | 236 | ACK F21 |<-------------| 237 |<---------------| | 238 | Both way RTP Established | 239 |<=============================>| 240 | BYE F22 | | 241 |--------------->| BYE F23 | 242 | |------------->| 243 | | 200 OK F24 | 244 | 200 OK F25 |<-------------| 245 |<---------------| | 246 | | | 248 User A calls User B, User B places call on hold. User B then takes 249 call off hold. User A hangs up call. Hold is unidirectional in 250 nature. However, a UA that places the other party on hold will 251 generally also stop sending media, resulting in no media exchange 252 between the UAs. 254 Message Details 256 F1 INVITE A -> Proxy 1 258 INVITE sip:UserB@there.com SIP/2.0 259 Via: SIP/2.0/UDP here.com:5060 260 From: BigGuy ;tag=1234567 261 To: LittleGuy 262 Call-ID: 12345601@here.com 263 CSeq: 1 INVITE 264 Contact: 265 Content-Type: application/sdp 266 Content-Length: ... 268 v=0 269 o=UserA 2890844526 2890844526 IN IP4 client.here.com 270 s=Session SDP 271 c=IN IP4 100.101.102.103 272 t=3034423619 0 273 m=audio 49170 RTP/AVP 0 274 a=rtpmap:0 PCMU/8000 276 F2 INVITE Proxy 1 -> B 278 INVITE sip:UserB@110.111.112.113 SIP/2.0 279 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 280 Via: SIP/2.0/UDP here.com:5060 281 Record-Route: 282 From: BigGuy ;tag=1234567 283 To: LittleGuy 284 Call-ID: 12345601@here.com 285 CSeq: 1 INVITE 286 Contact: 287 Content-Type: application/sdp 288 Content-Length: ... 290 v=0 291 o=UserA 2890844526 2890844526 IN IP4 client.here.com 292 s=Session SDP 293 c=IN IP4 100.101.102.103 294 t=3034423619 0 295 m=audio 49170 RTP/AVP 0 296 a=rtpmap:0 PCMU/8000 298 F3 (100 Trying) Proxy 1 -> A 300 SIP/2.0 100 Trying 301 Via: SIP/2.0/UDP here.com:5060 302 From: BigGuy ;tag=1234567 303 To: LittleGuy 304 Call-ID: 12345601@here.com 305 CSeq: 1 INVITE 306 Content-Length: 0 308 F4 180 Ringing B -> Proxy 1 310 SIP/2.0 180 Ringing 311 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 312 Via: SIP/2.0/UDP here.com:5060 313 From: BigGuy ;tag=1234567 314 To: LittleGuy ;tag=314159 315 Call-ID: 12345601@here.com 316 CSeq: 1 INVITE 317 Content Length:0 319 F5 180 Ringing Proxy 1 -> A 321 SIP/2.0 180 Ringing 322 Via: SIP/2.0/UDP here.com:5060 323 From: BigGuy ;tag=1234567 324 To: LittleGuy ;tag=314159 325 Call-ID: 12345601@here.com 326 CSeq: 1 INVITE 327 Content Length: 0 329 F6 200 OK B -> Proxy 1 331 SIP/2.0 200 OK 332 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 333 Via: SIP/2.0/UDP here.com:5060 334 Record-Route: 335 From: BigGuy ;tag=1234567 336 To: LittleGuy ;tag=314159 337 Call-ID: 12345601@here.com 338 CSeq: 1 INVITE 339 Contact: 340 Content-Type: application/sdp 341 Content-Length: ... 343 v=0 344 o=UserB 2890844527 2890844527 IN IP4 client.there.com 345 s=Session SDP 346 c=IN IP4 110.111.112.113 347 t=3034423619 0 348 m=audio 3456 RTP/AVP 0 349 a=rtpmap:0 PCMU/8000 351 F7 200 OK Proxy 1 -> A 353 SIP/2.0 200 OK 354 Via: SIP/2.0/UDP here.com:5060 355 Record-Route: 356 From: BigGuy ;tag=1234567 357 To: LittleGuy ;tag=314159 358 Call-ID: 12345601@here.com 359 CSeq: 1 INVITE 360 Contact: 361 Content-Type: application/sdp 362 Content-Length: ... 364 v=0 365 o=UserB 2890844527 2890844527 IN IP4 client.there.com 366 s=Session SDP 367 c=IN IP4 110.111.112.113 368 t=3034423619 0 369 m=audio 3456 RTP/AVP 0 370 a=rtpmap:0 PCMU/8000 372 F8 ACK A -> Proxy 1 374 ACK sip:UserB@there.com SIP/2.0 375 Via: SIP/2.0/UDP here.com:5060 376 Route: 377 From: BigGuy ;tag=1234567 378 To: LittleGuy ;tag=314159 379 Call-ID: 12345601@here.com 380 CSeq: 1 ACK 381 Content-Length: 0 383 F9 ACK Proxy 1 -> B 385 ACK sip:UserB@110.111.112.113 SIP/2.0 386 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 387 Via: SIP/2.0/UDP here.com:5060 388 From: BigGuy ;tag=1234567 389 To: LittleGuy ;tag=314159 390 Call-ID: 12345601@here.com 391 CSeq: 1 ACK 392 Content-Length: 0 394 /* User B places User A on hold. Note that the version is 395 incremented in the o= field of the SDP */ 397 F10 INVITE B -> Proxy 1 399 INVITE sip:UserA@here.com SIP/2.0 400 Via: SIP/2.0/UDP there.com:5060 401 Route: 402 From: LittleGuy ;tag=314159 403 To: BigGuy ;tag=1234567 404 Call-ID: 12345601@here.com 405 CSeq: 1 INVITE 406 Contact: 407 Content-Type: application/sdp 408 Content-Length: ... 410 v=0 411 o=UserB 2890844528 2890844528 IN IP4 client.there.com 412 s=Session SDP 413 c=IN IP4 110.111.112.113 414 t=3034423619 0 415 m=audio 3456 RTP/AVP 0 416 a=rtpmap:0 PCMU/8000 417 a=sendonly 419 F11 INVITE Proxy 1 -> A 421 INVITE sip:UserA@100.101.102.103 SIP/2.0 422 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 423 Via: SIP/2.0/UDP there.com:5060 424 Record-Route: 425 From: LittleGuy ;tag=314159 426 To: BigGuy ;tag=1234567 427 Call-ID: 12345601@here.com 428 CSeq: 1 INVITE 429 Contact: 430 Content-Type: application/sdp 431 Content-Length: ... 433 v=0 434 o=UserB 2890844528 2890844528 IN IP4 client.there.com 435 s=Session SDP 436 c=IN IP4 110.111.112.113 437 t=3034423619 0 438 m=audio 3456 RTP/AVP 0 439 a=rtpmap:0 PCMU/8000 440 a=sendonly 442 /* A replies with normal SDP */ 444 F12 200 OK A -> Proxy 1 446 SIP/2.0 200 OK 447 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 448 Via: SIP/2.0/UDP there.com:5060 449 Record-Route: 450 From: LittleGuy ;tag=314159 451 To: BigGuy ;tag=1234567 452 Call-ID: 12345601@here.com 453 CSeq: 1 INVITE 454 Contact: 455 Content-Type: application/sdp 456 Content-Length: ... 458 v=0 459 o=UserA 2890844526 2890844526 IN IP4 client.here.com 460 s=Session SDP 461 c=IN IP4 100.101.102.103 462 t=3034423619 0 463 m=audio 49170 RTP/AVP 0 464 a=rtpmap:0 PCMU/8000 466 F13 200 OK Proxy 1 -> B 468 SIP/2.0 200 OK 469 Via: SIP/2.0/UDP there.com:5060 470 Record-Route: 471 From: LittleGuy ;tag=314159 472 To: BigGuy ;tag=1234567 473 Call-ID: 12345601@here.com 474 CSeq: 1 INVITE 475 Contact: 476 Content-Type: application/sdp 477 Content-Length: ... 479 v=0 480 o=UserA 2890844526 2890844526 IN IP4 client.here.com 481 s=Session SDP 482 c=IN IP4 100.101.102.103 483 t=3034423619 0 484 m=audio 49170 RTP/AVP 0 485 a=rtpmap:0 PCMU/8000 487 F14 ACK B -> Proxy 1 489 ACK sip:UserA@here.com SIP/2.0 490 Via: SIP/2.0/UDP there.com:5060 491 Route: 492 From: LittleGuy ;tag=314159 493 To: BigGuy ;tag=1234567 494 Call-ID: 12345601@here.com 495 CSeq: 1 ACK 496 Content-Length: 0 498 F15 ACK Proxy 1 -> A 500 ACK sip:UserA@100.101.102.103 SIP/2.0 501 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 502 Via: SIP/2.0/UDP there.com:5060 503 From: LittleGuy ;tag=314159 504 To: BigGuy ;tag=1234567 505 Call-ID: 12345601@here.com 506 CSeq: 1 ACK 507 Content-Length: 0 509 /* User B takes the call off hold */ 511 F16 INVITE B -> Proxy 1 513 INVITE sip:UserA@here.com SIP/2.0 514 Via: SIP/2.0/UDP there.com:5060 515 Route: 516 From: LittleGuy ;tag=314159 517 To: BigGuy ;tag=1234567 518 Call-ID: 12345601@here.com 519 CSeq: 2 INVITE 520 Contact: 521 Content-Type: application/sdp 522 Content-Length: ... 524 v=0 525 o=UserB 2890844529 2890844529 IN IP4 client.there.com 526 s=Session SDP 527 c=IN IP4 110.111.112.113 528 t=3034423619 0 529 m=audio 3456 RTP/AVP 0 530 a=rtpmap:0 PCMU/8000 531 F17 INVITE Proxy 1 -> A 533 INVITE sip:UserA@100.101.102.103 SIP/2.0 534 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 535 Via: SIP/2.0/UDP there.com:5060 536 Record-Route: 537 From: LittleGuy ;tag=314159 538 To: BigGuy ;tag=1234567 539 Call-ID: 12345601@here.com 540 CSeq: 2 INVITE 541 Contact: 542 Content-Type: application/sdp 543 Content-Length: ... 545 v=0 546 o=UserB 2890844529 2890844529 IN IP4 client.there.com 547 s=Session SDP 548 c=IN IP4 110.111.112.113 549 t=3034423619 0 550 m=audio 3456 RTP/AVP 0 551 a=rtpmap:0 PCMU/8000 553 F18 200 OK A -> Proxy 1 555 SIP/2.0 200 OK 556 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 557 Via: SIP/2.0/UDP there.com:5060 558 Record-Route: 559 From: LittleGuy ;tag=314159 560 To: BigGuy ;tag=1234567 561 Call-ID: 12345601@here.com 562 CSeq: 2 INVITE 563 Contact: 564 Content-Type: application/sdp 565 Content-Length: ... 567 v=0 568 o=UserA 2890844526 2890844526 IN IP4 client.here.com 569 s=Session SDP 570 c=IN IP4 100.101.102.103 571 t=3034423619 0 572 m=audio 49170 RTP/AVP 0 573 a=rtpmap:0 PCMU/8000 575 F19 200 OK Proxy 1 -> B 577 SIP/2.0 200 OK 578 Via: SIP/2.0/UDP there.com:5060 579 Record-Route: 580 From: LittleGuy ;tag=314159 581 To: BigGuy ;tag=1234567 582 Call-ID: 12345601@here.com 583 CSeq: 2 INVITE 584 Contact: 585 Content-Type: application/sdp 586 Content-Length: ... 588 v=0 589 o=UserA 2890844526 2890844526 IN IP4 client.here.com 590 s=Session SDP 591 c=IN IP4 100.101.102.103 592 t=3034423619 0 593 m=audio 49170 RTP/AVP 0 594 a=rtpmap:0 PCMU/8000 596 F20 ACK B -> Proxy 1 598 ACK sip:UserA@here.com SIP/2.0 599 Via: SIP/2.0/UDP there.com:5060 600 Route: 601 From: LittleGuy ;tag=314159 602 To: BigGuy ;tag=1234567 603 Call-ID: 12345601@here.com 604 CSeq: 2 ACK 605 Content-Length: 0 607 F21 ACK Proxy 1 -> A 609 ACK sip:UserA@100.101.102.103 SIP/2.0 610 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 611 Via: SIP/2.0/UDP there.com:5060 612 From: LittleGuy ;tag=314159 613 To: BigGuy ;tag=1234567 614 Call-ID: 12345601@here.com 615 CSeq: 2 ACK 616 Content-Length: 0 618 /* RTP Media stream re-established. User A disconnects. */ 620 F22 BYE A -> Proxy 1 622 BYE sip:UserB@there.com SIP/2.0 623 Via: SIP/2.0/UDP here.com:5060 624 Route: 625 From: BigGuy ;tag=1234567 626 To: LittleGuy ;tag=314159 627 Call-ID: 12345601@here.com 628 CSeq: 2 BYE 629 Content-Length: 0 631 F23 BYE Proxy 1 -> B 633 BYE sip:UserB@110.111.112.113 SIP/2.0 634 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 635 Via: SIP/2.0/UDP here.com:5060 636 From: BigGuy ;tag=1234567 637 To: LittleGuy ;tag=314159 638 Call-ID: 12345601@here.com 639 CSeq: 2 BYE 640 Content-Length: 0 642 F24 200 OK B -> Proxy 1 644 SIP/2.0 200 OK 645 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 646 Via: SIP/2.0/UDP here.com:5060 647 From: BigGuy ;tag=1234567 648 To: LittleGuy ;tag=314159 649 Call-ID: 12345601@here.com 650 CSeq: 2 BYE 651 Content-Length: 0 653 F25 200 OK Proxy 1 -> A 655 SIP/2.0 200 OK 656 Via: SIP/2.0/UDP here.com:5060 657 From: BigGuy ;tag=1234567 658 To: LittleGuy ;tag=314159 659 Call-ID: 12345601@here.com 660 CSeq: 2 BYE 661 Content-Length: 0 663 2.2 Consultation Hold 665 User A Proxy User B User C 666 | | | | 667 | INVITE F1 | | | 668 |--------------->| INVITE F2 | | 669 | |------------->| | 670 |(100 Trying) F3 | | | 671 |<---------------|180 Ringing F4| | 672 | |<-------------| | 673 | 180 Ringing F5 | | | 674 |<---------------| 200 OK F6 | | 675 | |<-------------| | 676 | 200 OK F7 | | | 677 |<---------------| | | 678 | ACK F8 | | | 679 |--------------->| ACK F9 | | 680 | |------------->| | 681 | Both way RTP Established | | 682 |<=============================>| | 683 | |INVITE(hold) F10 | 684 |INVITE(hold) F11|<-------------| | 685 |<---------------| | | 686 | 200 OK F12 | | | 687 |--------------->| 200 OK F13 | | 688 | |------------->| | 689 | | ACK F14 | | 690 | |<-------------| | 691 | ACK F15 | | | 692 |<---------------| | | 693 | No RTP Sent! | | 694 | | INVITE F16 | | 695 | |<-------------| | 696 | | | INVITE F17 | 697 | |--------------------------------->| 698 | |(100 Trying) F18 | 699 | |------------->| | 700 | | | 180 Ringing F19 | 701 | |<---------------------------------| 702 | | 180 Ringing F20 | 703 | |------------->| | 704 | | | 200 OK F21 | 705 | |<---------------------------------| 706 | | 200 OK F22 | | 707 | |------------->| | 708 | | ACK F23 | | 709 | |<-------------| | 710 | | | ACK F24 | 711 | |--------------------------------->| 712 | | Both way RTP Established | 713 | | |<=================>| 714 | | BYE F25 | | 715 | |<-------------| | 716 | | | BYE F26 | 717 | |--------------------------------->| 718 | | | 200 OK F27 | 719 | |<---------------------------------| 720 | | 200 OK F28 | | 721 | |------------->| | 722 | | INVITE F29 | | 723 | INVITE F30 |<-------------| | 724 |<---------------| | | 725 | 200 OK F31 | | | 726 |--------------->| 200 OK F32 | | 727 | |------------->| | 728 | | ACK F33 | | 729 | |<-------------| | 730 | ACK F34 | | | 731 |<---------------| | | 732 | Both way RTP Established | | 733 |<=============================>| | 734 | BYE F35 | | | 735 |--------------->| BYE F36 | | 736 | |------------->| | 737 | | 200 OK F37 | | 738 | |<-------------| | 739 | 200 OK F38 | | | 740 |<---------------| | | 741 | | | | 743 User A calls user B. User B places call on hold. User B calls User 744 C. User B then disconnects with C, then takes the call with User A 745 off hold. The call ends with B hangs up. 747 Message Details 749 F1 INVITE A -> Proxy 1 751 INVITE sip:UserB@there.com SIP/2.0 752 Via: SIP/2.0/UDP here.com:5060 753 From: BigGuy ;tag=1234567 754 To: LittleGuy 755 Call-ID: 12345600@here.com 756 CSeq: 1 INVITE 757 Contact: 758 Content-Type: application/sdp 759 Content-Length: ... 761 v=0 762 o=UserA 2890844526 2890844526 IN IP4 client.here.com 763 s=Session SDP 764 c=IN IP4 100.101.102.103 765 t=3034423619 0 766 m=audio 49170 RTP/AVP 0 767 a=rtpmap:0 PCMU/8000 769 F2 INVITE Proxy 1 -> B 771 INVITE sip:UserB@110.111.112.113 SIP/2.0 772 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 773 Via: SIP/2.0/UDP here.com:5060 774 Record-Route: 775 From: BigGuy ;tag=1234567 776 To: LittleGuy 777 Call-ID: 12345600@here.com 778 CSeq: 1 INVITE 779 Contact: 780 Content-Type: application/sdp 781 Content-Length: ... 783 v=0 784 o=UserA 2890844526 2890844526 IN IP4 client.here.com 785 s=Session SDP 786 c=IN IP4 100.101.102.103 787 t=3034423619 0 788 m=audio 49170 RTP/AVP 0 789 a=rtpmap:0 PCMU/8000 791 F3(100 Trying) Proxy 1 -> A 793 SIP/2.0 100 Trying 794 Via: SIP/2.0/UDP here.com:5060 795 From: BigGuy ;tag=1234567 796 To: LittleGuy 797 Call-ID: 12345600@here.com 798 CSeq: 1 INVITE 799 Content-Length: 0 801 F4 180 Ringing B -> Proxy 1 803 SIP/2.0 180 Ringing 804 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 805 Via: SIP/2.0/UDP here.com:5060 806 From: BigGuy ;tag=1234567 807 To: LittleGuy ;tag=314159 808 Call-ID: 12345600@here.com 809 CSeq: 1 INVITE 810 Content Length:0 812 F5 180 Ringing Proxy 1 -> A 814 SIP/2.0 180 Ringing 815 Via: SIP/2.0/UDP here.com:5060 816 From: BigGuy ;tag=1234567 817 To: LittleGuy ;tag=314159 818 Call-ID: 12345600@here.com 819 CSeq: 1 INVITE 820 Content Length: 0 822 F6 200 OK B -> Proxy 1 824 SIP/2.0 200 OK 825 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 826 Via: SIP/2.0/UDP here.com:5060 827 Record-Route: 828 From: BigGuy ;tag=1234567 829 To: LittleGuy ;tag=314159 830 Call-ID: 12345600@here.com 831 CSeq: 1 INVITE 832 Contact: 833 Content-Type: application/sdp 834 Content-Length: ... 836 v=0 837 o=UserB 2890844527 2890844527 IN IP4 client.there.com 838 s=Session SDP 839 c=IN IP4 110.111.112.113 840 t=3034423619 0 841 m=audio 3456 RTP/AVP 0 842 a=rtpmap:0 PCMU/8000 844 F7 200 OK Proxy 1 -> A 846 SIP/2.0 200 OK 847 Via: SIP/2.0/UDP here.com:5060 848 Record-Route: 849 From: BigGuy ;tag=1234567 850 To: LittleGuy ;tag=314159 851 Call-ID: 12345600@here.com 852 CSeq: 1 INVITE 853 Contact: 854 Content-Type: application/sdp 855 Content-Length: ... 857 v=0 858 o=UserB 2890844527 2890844527 IN IP4 client.there.com 859 s=Session SDP 860 c=IN IP4 110.111.112.113 861 t=3034423619 0 862 m=audio 3456 RTP/AVP 0 863 a=rtpmap:0 PCMU/8000 865 F8 ACK A -> Proxy 1 867 ACK sip:UserB@there.com SIP/2.0 868 Via: SIP/2.0/UDP here.com:5060 869 Route: 870 From: BigGuy ;tag=1234567 871 To: LittleGuy ;tag=314159 872 Call-ID: 12345600@here.com 873 CSeq: 1 ACK 874 Content-Length: 0 876 F9 ACK Proxy 1 -> B 878 ACK sip:UserB@110.111.112.113 SIP/2.0 879 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 880 Via: SIP/2.0/UDP here.com:5060 881 From: BigGuy ;tag=1234567 882 To: LittleGuy ;tag=314159 883 Call-ID: 12345600@here.com 884 CSeq: 1 ACK 885 Content-Length: 0 887 /* User B places User A on hold. */ 889 F10 INVITE B -> Proxy 1 891 INVITE sip:UserA@here.com SIP/2.0 892 Via: SIP/2.0/UDP there.com:5060 893 Route: 894 From: LittleGuy ;tag=314159 895 To: BigGuy ;tag=1234567 896 Call-ID: 12345600@here.com 897 CSeq: 1 INVITE 898 Contact: 899 Content-Type: application/sdp 900 Content-Length: ... 902 v=0 903 o=UserB 2890844528 2890844528 IN IP4 client.there.com 904 s=Session SDP 905 c=IN IP4 110.111.112.113 906 t=3034423619 0 907 m=audio 3456 RTP/AVP 0 908 a=rtpmap:0 PCMU/8000 909 a=sendonly 911 F11 INVITE Proxy 1 -> A 913 INVITE sip:UserA@100.101.102.103 SIP/2.0 914 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 915 Via: SIP/2.0/UDP there.com:5060 916 Record-Route: 917 From: LittleGuy ;tag=314159 918 To: BigGuy ;tag=1234567 919 Call-ID: 12345600@here.com 920 CSeq: 1 INVITE 921 Contact: 922 Content-Type: application/sdp 923 Content-Length: ... 925 v=0 926 o=UserB 2890844528 2890844528 IN IP4 client.there.com 927 s=Session SDP 928 c=IN IP4 110.111.112.113 929 t=3034423619 0 930 m=audio 3456 RTP/AVP 0 931 a=rtpmap:0 PCMU/8000 932 a=sendonly 934 F12 200 OK A -> Proxy 1 936 SIP/2.0 200 OK 937 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 938 Via: SIP/2.0/UDP there.com:5060 939 Record-Route: 940 From: LittleGuy ;tag=314159 941 To: BigGuy ;tag=1234567 942 Call-ID: 12345600@here.com 943 CSeq: 1 INVITE 944 Contact: 945 Content-Type: application/sdp 946 Content-Length: ... 948 v=0 949 o=UserA 2890844526 2890844526 IN IP4 client.here.com 950 s=Session SDP 951 c=IN IP4 100.101.102.103 952 t=3034423619 0 953 m=audio 49170 RTP/AVP 0 954 a=rtpmap:0 PCMU/8000 955 F13 200 OK Proxy 1 -> B 957 SIP/2.0 200 OK 958 Via: SIP/2.0/UDP there.com:5060 959 Record-Route: 960 From: LittleGuy ;tag=314159 961 To: BigGuy ;tag=1234567 962 Call-ID: 12345600@here.com 963 CSeq: 1 INVITE 964 Contact: 965 Content-Type: application/sdp 966 Content-Length: ... 968 v=0 969 o=UserA 2890844526 2890844526 IN IP4 client.here.com 970 s=Session SDP 971 c=IN IP4 100.101.102.103 972 t=3034423619 0 973 m=audio 49170 RTP/AVP 0 974 a=rtpmap:0 PCMU/8000 976 F14 ACK B -> Proxy 1 978 ACK sip:UserA@here.com SIP/2.0 979 Via: SIP/2.0/UDP there.com:5060 980 Route: 981 From: LittleGuy ;tag=314159 982 To: BigGuy ;tag=1234567 983 Call-ID: 12345600@here.com 984 CSeq: 1 ACK 985 Content-Length: 0 987 F15 ACK Proxy 1 -> A 989 ACK sip:UserA@100.101.102.103 SIP/2.0 990 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 991 Via: SIP/2.0/UDP there.com:5060 992 From: LittleGuy ;tag=314159 993 To: BigGuy ;tag=1234567 994 Call-ID: 12345600@here.com 995 CSeq: 1 ACK 996 Content-Length: 0 998 F16 INVITE B -> Proxy 1 1000 INVITE sip:UserC@anywhere.com SIP/2.0 1001 Via: SIP/2.0/UDP there.com:5060 1002 From: LittleGuy ;tag=8675309 1003 To: OtherGuy 1004 Call-ID: 9876543210@there.com 1005 CSeq: 1 INVITE 1006 Contact: 1007 Content-Type: application/sdp 1008 Content-Length: ... 1010 v=0 1011 o=UserB 2890844526 2890844526 IN IP4 client.there.com 1012 s=Session SDP 1013 c=IN IP4 110.111.112.113 1014 t=3034423619 0 1015 m=audio 50170 RTP/AVP 0 1016 a=rtpmap:0 PCMU/8000 1018 F17 INVITE Proxy 1 -> C 1020 INVITE sip:UserC@120.121.122.123 SIP/2.0 1021 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 1022 Via: SIP/2.0/UDP there.com:5060 1023 Record-Route: 1024 From: LittleGuy ;tag=8675309 1025 To: OtherGuy 1026 Call-ID: 9876543210@there.com 1027 CSeq: 1 INVITE 1028 Contact: 1029 Content-Type: application/sdp 1030 Content-Length: ... 1032 v=0 1033 o=UserB 2890844526 2890844526 IN IP4 client.there.com 1034 s=Session SDP 1035 c=IN IP4 110.111.112.113 1036 t=3034423619 0 1037 m=audio 50170 RTP/AVP 0 1038 a=rtpmap:0 PCMU/8000 1040 F18 (100 Trying) Proxy 1 -> B 1042 SIP/2.0 100 Trying 1043 Via: SIP/2.0/UDP there.com:5060 1044 From: LittleGuy ;tag=8675309 1045 To: OtherGuy 1046 Call-ID: 9876543210@there.com 1047 CSeq: 1 INVITE 1048 Content-Length: 0 1049 F19 180 Ringing C -> Proxy 1 1051 SIP/2.0 180 Ringing 1052 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 1053 Via: SIP/2.0/UDP there.com:5060 1054 From: LittleGuy ;tag=8675309 1055 To: OtherGuy ;tag=456654 1056 Call-ID: 9876543210@here.com 1057 CSeq: 1 INVITE 1058 Content Length:0 1060 F20 180 Ringing Proxy 1 -> B 1062 SIP/2.0 180 Ringing 1063 Via: SIP/2.0/UDP there.com:5060 1064 From: LittleGuy ;tag=8675309 1065 To: OtherGuy ;tag=456654 1066 Call-ID: 9876543210@there.com 1067 CSeq: 1 INVITE 1068 Content Length: 0 1070 F21 200 OK C -> Proxy 1 1072 SIP/2.0 200 OK 1073 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 1074 Via: SIP/2.0/UDP there.com:5060 1075 Record-Route: 1076 From: LittleGuy ;tag=8675309 1077 To: OtherGuy ;tag=456654 1078 Call-ID: 9876543210@there.com 1079 CSeq: 1 INVITE 1080 Contact: 1081 Content-Type: application/sdp 1082 Content-Length: ... 1084 v=0 1085 o=UserC 2890844527 2890844527 IN IP4 client.anywhere.com 1086 s=Session SDP 1087 c=IN IP4 120.121.122.123 1088 t=3034423619 0 1089 m=audio 3456 RTP/AVP 0 1090 a=rtpmap:0 PCMU/8000 1092 F22 200 OK Proxy 1 -> B 1094 SIP/2.0 200 OK 1095 Via: SIP/2.0/UDP there.com:5060 1096 Record-Route: 1097 From: LittleGuy ;tag=8675309 1098 To: OtherGuy ;tag=456654 1099 Call-ID: 9876543210@there.com 1100 CSeq: 1 INVITE 1101 Contact: 1102 Content-Type: application/sdp 1103 Content-Length: ... 1105 v=0 1106 o=UserC 2890844527 2890844527 IN IP4 client.anywhere.com 1107 s=Session SDP 1108 c=IN IP4 120.121.122.123 1109 t=3034423619 0 1110 m=audio 3456 RTP/AVP 0 1111 a=rtpmap:0 PCMU/8000 1113 F23 ACK B -> Proxy 1 1115 ACK sip:UserC@anywhere.com SIP/2.0 1116 Via: SIP/2.0/UDP there.com:5060 1117 Route: 1118 From: LittleGuy ;tag=8675309 1119 To: OtherGuy ;tag=456654 1120 Call-ID: 9876543210@there.com 1121 CSeq: 1 ACK 1122 Content-Length: 0 1124 F24 ACK Proxy 1 -> C 1126 ACK sip:UserC@120.121.122.123 SIP/2.0 1127 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 1128 Via: SIP/2.0/UDP there.com:5060 1129 From: LittleGuy ;tag=8675309 1130 To: OtherGuy ;tag=456654 1131 Call-ID: 9876543210@there.com 1132 CSeq: 1 ACK 1133 Content-Length: 0 1135 F25 BYE B -> Proxy 1 1137 BYE sip:UserC@anywhere.com SIP/2.0 1138 Via: SIP/2.0/UDP there.com:5060 1139 Route: 1140 From: LittleGuy ;tag=8675309 1141 To: OtherGuy ;tag=456654 1142 Call-ID: 9876543210@there.com 1143 CSeq: 2 BYE 1144 Content-Length: 0 1146 F26 BYE Proxy 1 -> C 1148 BYE sip:UserC@120.121.122.123 SIP/2.0 1149 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 1150 Via: SIP/2.0/UDP there.com:5060 1151 From: LittleGuy ;tag=8675309 1152 To: OtherGuy ;tag=456654 1153 Call-ID: 9876543210@there.com 1154 CSeq: 2 BYE 1155 Content-Length: 0 1157 F27 200 OK C -> Proxy 1 1159 SIP/2.0 200 OK 1160 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 1161 Via: SIP/2.0/UDP there.com:5060 1162 From: LittleGuy ;tag=8675309 1163 To: OtherGuy ;tag=456654 1164 Call-ID: 9876543210@there.com 1165 CSeq: 2 BYE 1166 Content-Length: 0 1168 F28 200 OK Proxy 1 -> B 1170 SIP/2.0 200 OK 1171 Via: SIP/2.0/UDP there.com:5060 1172 From: LittleGuy ;tag=8675309 1173 To: OtherGuy ;tag=456654 1174 Call-ID: 9876543210@there.com 1175 CSeq: 2 BYE 1176 Content-Length: 0 1178 /* User B takes the call off hold */ 1180 F29 INVITE B -> Proxy 1 1182 INVITE sip:UserA@here.com SIP/2.0 1183 Via: SIP/2.0/UDP there.com:5060 1184 Route: 1185 From: LittleGuy ;tag=314159 1186 To: BigGuy ;tag=1234567 1187 Call-ID: 12345600@here.com 1188 CSeq: 2 INVITE 1189 Contact: 1190 Content-Type: application/sdp 1191 Content-Length: ... 1193 v=0 1194 o=UserB 2890844529 2890844529 IN IP4 client.there.com 1195 s=Session SDP 1196 c=IN IP4 110.111.112.113 1197 t=3034423619 0 1198 m=audio 3456 RTP/AVP 0 1199 a=rtpmap:0 PCMU/8000 1201 F30 INVITE Proxy 1 -> A 1203 INVITE sip:UserA@100.101.102.103 SIP/2.0 1204 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 1205 Via: SIP/2.0/UDP there.com:5060 1206 Record-Route: 1207 From: LittleGuy ;tag=314159 1208 To: BigGuy ;tag=1234567 1209 Call-ID: 12345600@here.com 1210 CSeq: 2 INVITE 1211 Contact: 1212 Content-Type: application/sdp 1213 Content-Length: ... 1215 v=0 1216 o=UserB 2890844529 2890844529 IN IP4 client.there.com 1217 s=Session SDP 1218 c=IN IP4 110.111.112.113 1219 t=3034423619 0 1220 m=audio 3456 RTP/AVP 0 1221 a=rtpmap:0 PCMU/8000 1223 F31 200 OK A -> Proxy 1 1225 SIP/2.0 200 OK 1226 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 1227 Via: SIP/2.0/UDP there.com:5060 1228 Record-Route: 1229 From: LittleGuy ;tag=314159 1230 To: BigGuy ;tag=1234567 1231 Call-ID: 12345600@here.com 1232 CSeq: 2 INVITE 1233 Contact: 1234 Content-Type: application/sdp 1235 Content-Length: ... 1237 v=0 1238 o=UserA 2890844526 2890844526 IN IP4 client.here.com 1239 s=Session SDP 1240 c=IN IP4 100.101.102.103 1241 t=3034423619 0 1242 m=audio 49170 RTP/AVP 0 1243 a=rtpmap:0 PCMU/8000 1245 F32 200 OK Proxy 1 -> B 1247 SIP/2.0 200 OK 1248 Via: SIP/2.0/UDP there.com:5060 1249 Record-Route: 1250 From: LittleGuy ;tag=314159 1251 To: BigGuy ;tag=1234567 1252 Call-ID: 12345600@here.com 1253 CSeq: 2 INVITE 1254 Contact: 1255 Content-Type: application/sdp 1256 Content-Length: ... 1258 v=0 1259 o=UserA 2890844526 2890844526 IN IP4 client.here.com 1260 s=Session SDP 1261 c=IN IP4 100.101.102.103 1262 t=3034423619 0 1263 m=audio 49170 RTP/AVP 0 1264 a=rtpmap:0 PCMU/8000 1266 F33 ACK B -> Proxy 1 1268 ACK sip:UserA@here.com SIP/2.0 1269 Via: SIP/2.0/UDP there.com:5060 1270 Route: 1271 From: LittleGuy ;tag=314159 1272 To: BigGuy ;tag=1234567 1273 Call-ID: 12345600@here.com 1274 CSeq: 2 ACK 1275 Content-Length: 0 1277 F34 ACK Proxy 1 -> A 1279 ACK sip:UserA@100.101.102.103 SIP/2.0 1280 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 1281 Via: SIP/2.0/UDP there.com:5060 1282 From: LittleGuy ;tag=314159 1283 To: BigGuy ;tag=1234567 1284 Call-ID: 12345600@here.com 1285 CSeq: 2 ACK 1286 Content-Length: 0 1287 F35 BYE A -> Proxy 1 1289 BYE sip:UserB@there.com SIP/2.0 1290 Via: SIP/2.0/UDP here.com:5060 1291 Route: 1292 From: BigGuy ;tag=1234567 1293 To: LittleGuy ;tag=314159 1294 Call-ID: 12345600@here.com 1295 CSeq: 2 BYE 1296 Content-Length: 0 1298 F36 BYE Proxy 1 -> B 1300 BYE sip:UserB@110.111.112.113 SIP/2.0 1301 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 1302 Via: SIP/2.0/UDP here.com:5060 1303 From: BigGuy ;tag=1234567 1304 To: LittleGuy ;tag=314159 1305 Call-ID: 12345600@here.com 1306 CSeq: 2 BYE 1307 Content-Length: 0 1309 F37 200 OK B -> Proxy 1 1311 SIP/2.0 200 OK 1312 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 1313 Via: SIP/2.0/UDP here.com:5060 1314 From: BigGuy ;tag=1234567 1315 To: LittleGuy ;tag=314159 1316 Call-ID: 12345600@here.com 1317 CSeq: 2 BYE 1318 Content-Length: 0 1320 F38 200 OK Proxy 1 -> A 1322 SIP/2.0 200 OK 1323 Via: SIP/2.0/UDP here.com:5060 1324 From: BigGuy ;tag=1234567 1325 To: LittleGuy ;tag=314159 1326 Call-ID: 12345600@here.com 1327 CSeq: 2 BYE 1328 Content-Length: 0 1330 2.3 Music On Hold 1332 User A User B Music Server 1333 | | | 1334 | INVITE F1 | | 1335 |--------------->| | 1336 |(100 Trying) F2 | | 1337 |<---------------| | 1338 | 180 Ringing F3 | | 1339 |<---------------| | 1340 | 200 OK F4 | | 1341 |<---------------| | 1342 | ACK F5 | | 1343 |--------------->| | 1344 | RTP | | 1345 |<==============>| | 1346 | | | 1347 | B places A on hold with music | 1348 | | | 1349 | | INVITE no sdp F6 1350 | |------------->| 1351 | |200 OK sdpM F7| 1352 | |<-------------| 1353 | INVITE c=0 F7 | | 1354 |<---------------| | 1355 | 200 OK sdpA F9 | | 1356 |--------------->| | 1357 | ACK F10 | | 1358 |<---------------| | 1359 | | ACK sdpA F11 | 1360 | |------------->| 1361 | RTP | 1362 |<==============================| 1363 | | | 1364 | B Picks up the Call | 1365 | | BYE F12 | 1366 | |------------->| 1367 | | 200 OK F13 | 1368 | |<-------------| 1369 | INVITE F14 | | 1370 |<---------------| | 1371 | 200 OK F15 | | 1372 |--------------->| | 1373 | ACK F16 | | 1374 |<---------------| | 1375 | RTP | | 1376 |<==============>| | 1378 In this flow,B places A on hold with music. This is performed by B 1379 acting as a B2BUA (Back-to-Back User Agent) using 3pcc (third party 1380 call control) [7] to INVITE a Music Server into the session, which 1381 sends RTP music to A. B picks the call up from hold by sending a BYE 1382 to the music server and taking A off of hold. 1384 Note that if A responds to the INVITE with hold SDP with hold SDP in 1385 the 200 OK, this call flow will not work properly. 1387 Note also that A will receive RTP packets from two different IP 1388 addresses during this call flow. 1390 Message Details 1392 F1 INVITE A -> B 1394 INVITE sip:UserB@there.com SIP/2.0 1395 Via: SIP/2.0/UDP here.com:5060 1396 From: BigGuy ;tag=1234567 1397 To: LittleGuy 1398 Call-ID: 12345600@here.com 1399 CSeq: 1 INVITE 1400 Contact: 1401 Content-Type: application/sdp 1402 Content-Length: ... 1404 v=0 1405 o=UserA 2890844526 2890844526 IN IP4 client.here.com 1406 s=Session SDP 1407 c=IN IP4 100.101.102.103 1408 t=3034423619 0 1409 m=audio 49170 RTP/AVP 0 1410 a=rtpmap:0 PCMU/8000 1412 F2 (100 Trying B -> A) 1414 SIP/2.0 100 Trying 1415 Via: SIP/2.0/UDP here.com:5060 1416 From: BigGuy ;tag=1234567 1417 To: LittleGuy 1418 Call-ID: 12345600@here.com 1419 CSeq: 1 INVITE 1420 Content-Length: 0 1422 F3 180 Ringing B -> A 1424 SIP/2.0 180 Ringing 1425 Via: SIP/2.0/UDP here.com:5060 1426 From: BigGuy ;tag=1234567 1427 To: LittleGuy ;tag=23431 1428 Call-ID: 12345600@here.com 1429 CSeq: 1 INVITE 1430 Content-Length: 0 1432 F4 200 OK B -> A 1434 SIP/2.0 200 OK 1435 Via: SIP/2.0/UDP here.com:5060 1436 From: BigGuy ;tag=1234567 1437 To: LittleGuy ;tag=23431 1438 Call-ID: 12345600@here.com 1439 CSeq: 1 INVITE 1440 Contact: 1441 Content-Type: application/sdp 1442 Content-Length: ... 1444 v=0 1445 o=UserB 2890844527 2890844527 IN IP4 client.there.com 1446 s=Session SDP 1447 c=IN IP4 110.111.112.113 1448 t=3034423619 0 1449 m=audio 3456 RTP/AVP 0 1450 a=rtpmap:0 PCMU/8000 1452 F5 ACK A -> B 1454 ACK sip:UserB@there.com SIP/2.0 1455 Via: SIP/2.0/UDP here.com:5060 1456 From: BigGuy ;tag=1234567 1457 To: LittleGuy ;tag=23431 1458 Call-ID: 12345600@here.com 1459 CSeq: 1 ACK 1460 Content-Length: 0 1462 /* User B places A on hold with music by acting as a B2BUA and 1463 sending an INVITE to the Music Server */ 1465 F6 INVITE B -> Music Server 1467 INVITE sip:music@server.com SIP/2.0 1468 Via: SIP/2.0/UDP there.com:5060 1469 From: LittleGuy ;tag=8675309 1470 To: Music 1471 Call-ID: sdjfdjfskdf@there.com 1472 CSeq: 1 INVITE 1473 Contact: 1474 Content-Length: 0 1476 F7 200 OK C -> B 1478 SIP/2.0 200 OK 1479 Via: SIP/2.0/UDP there.com:5060 1480 From: LittleGuy ;tag=8675309 1481 To: Music ;tag=90210 1482 Call-ID: sdjfdjfskdf@there.com 1483 CSeq: 1 INVITE 1484 Contact: 1485 Content-Type: application/sdp 1486 Content-Length: ... 1488 v=0 1489 o=MusicServer 2890844576 2890844576 IN IP4 music.server.com 1490 s=Session SDP 1491 c=IN IP4 50.60.70.80 1492 t=3034423619 0 1493 m=audio 49170 RTP/AVP 0 1494 a=rtpmap:0 PCMU/8000 1496 /* B re-INVITEs A on hold */ 1498 F8 INVITE B -> A 1500 INVITE sip:UserA@here.com SIP/2.0 1501 Via: SIP/2.0/UDP here.com:5060 1502 To: BigGuy ;tag=1234567 1503 From: LittleGuy ;tag=23431 1504 Call-ID: 12345600@here.com 1505 CSeq: 1 INVITE 1506 Contact: 1507 Content-Type: application/sdp 1508 Content-Length: ... 1510 v=0 1511 o=UserB 2890844528 2890844528 IN IP4 client.there.com 1512 s=Session SDP 1513 c=IN IP4 110.111.112.113 1514 t=3034423619 0 1515 m=audio 3456 RTP/AVP 0 1516 a=rtpmap:0 PCMU/8000 1517 a=sendonly 1519 /* A responds with normal SDP */ 1520 F9 200 OK A -> B 1522 SIP/2.0 200 OK 1523 Via: SIP/2.0/UDP here.com:5060 1524 To: BigGuy ;tag=1234567 1525 From: LittleGuy ;tag=23431 1526 Call-ID: 12345600@here.com 1527 CSeq: 1 INVITE 1528 Contact: 1529 Content-Type: application/sdp 1530 Content-Length: ... 1532 v=0 1533 o=UserA 2890844526 2890844526 IN IP4 client.here.com 1534 s=Session SDP 1535 c=IN IP4 100.101.102.103 1536 t=3034423619 0 1537 m=audio 49170 RTP/AVP 0 1538 a=rtpmap:0 PCMU/8000 1540 F10 ACK B -> A 1542 ACK sip:UserA@here.com SIP/2.0 1543 Via: SIP/2.0/UDP here.com:5060 1544 To: BigGuy ;tag=1234567 1545 From: LittleGuy ;tag=23431 1546 Call-ID: 12345600@here.com 1547 CSeq: 1 ACK 1548 Content-Length: 0 1550 /* B passes SDP of A to the Music Server to allow music to be sent 1551 from B to A */ 1553 F11 ACK B -> Music Server 1555 ACK sip:music@server.com SIP/2.0 1556 Via: SIP/2.0/UDP there.com:5060 1557 From: LittleGuy ;tag=8675309 1558 To: Music ;tag=90210 1559 Call-ID: sdjfdjfskdf@there.com 1560 CSeq: 1 ACK 1561 Content-Type: application/sdp 1562 Content-Length: ... 1564 v=0 1565 o=UserA 2890844526 2890844526 IN IP4 client.here.com 1566 s=Session SDP 1567 c=IN IP4 100.101.102.103 1568 t=3034423619 0 1569 m=audio 49170 RTP/AVP 0 1570 a=rtpmap:0 PCMU/8000 1572 /* RTP music is now sent from the Music Server to A */ 1574 /* B picks up the call from the Music Server */ 1576 F12 BYE B -> Music Server 1578 BYE sip:music@server.com SIP/2.0 1579 Via: SIP/2.0/UDP there.com:5060 1580 From: LittleGuy ;tag=8675309 1581 To: Music ;tag=90210 1582 Call-ID: sdjfdjfskdf@there.com 1583 CSeq: 2 BYE 1584 Content-Length: 0 1586 F13 200 OK Music Server -> B 1588 SIP/2.0 200 OK 1589 Via: SIP/2.0/UDP there.com:5060 1590 From: LittleGuy ;tag=8675309 1591 To: Music ;tag=90210 1592 Call-ID: sdjfdjfskdf@there.com 1593 CSeq: 2 BYE 1594 Content-Length:0 1596 /* B re-INVITEs taking A off hold */ 1598 F14 INVITE B -> A 1600 INVITE sip:UserB@there.com SIP/2.0 1601 Via: SIP/2.0/UDP here.com:5060 1602 To: BigGuy ;tag=1234567 1603 From: LittleGuy ;tag=23431 1604 Call-ID: 12345600@here.com 1605 CSeq: 2 INVITE 1606 Contact: 1607 Content-Type: application/sdp 1608 Content-Length: ... 1610 v=0 1611 o=UserB 2890844527 2890844527 IN IP4 client.there.com 1612 s=Session SDP 1613 c=IN IP4 110.111.112.113 1614 t=3034423619 0 1615 m=audio 3456 RTP/AVP 0 1616 a=rtpmap:0 PCMU/8000 1617 F15 200 OK A -> B 1619 SIP/2.0 200 OK 1620 Via: SIP/2.0/UDP here.com:5060 1621 To: BigGuy ;tag=1234567 1622 From: LittleGuy ;tag=23431 1623 Call-ID: 12345600@here.com 1624 CSeq: 2 INVITE 1625 Contact: 1626 Content-Type: application/sdp 1627 Content-Length: ... 1629 v=0 1630 o=UserA 2890844526 2890844526 IN IP4 client.here.com 1631 s=Session SDP 1632 c=IN IP4 100.101.102.103 1633 t=3034423619 0 1634 m=audio 49170 RTP/AVP 0 1635 a=rtpmap:0 PCMU/8000 1637 F16 ACK B -> A 1639 ACK sip:UserB@there.com SIP/2.0 1640 Via: SIP/2.0/UDP here.com:5060 1641 To: BigGuy ;tag=1234567 1642 From: LittleGuy ;tag=23431 1643 Call-ID: 12345600@here.com 1644 CSeq: 2 ACK 1645 Content-Length: 0 1647 /* Normal media session between A and B is resumed */ 1649 2.4 Unattended Transfer 1651 User A User B User C 1652 | INVITE F1 | | 1653 |<-------------------| | 1654 | 180 Ringing F2 | | 1655 |------------------->| | 1656 | 200 OK F3 | | 1657 |------------------->| | 1658 | ACK F4 | | 1659 |<-------------------| | 1660 | RTP | | 1661 |<==================>| | 1662 | | | 1663 | A performs unattended transfer | 1664 | | | 1665 | REFER Refer-To:C F5| | 1666 |------------------->| | 1667 | 202 Accepted F6 | | 1668 |<-------------------| | 1669 | BYE F7 | | 1670 |------------------->| | 1671 | 200 OK F8 | | 1672 |<-------------------| | 1673 | No RTP Session | INVITE Referred-By: A F9 1674 | |------------------->| 1675 | | 180 Ringing F10 | 1676 | |<-------------------| 1677 | | 200 OK F11 | 1678 | |<-------------------| 1679 | | ACK F12 | 1680 | |------------------->| 1681 | | RTP | 1682 | |<==================>| 1683 | NOTIFY F13 | | 1684 |<-------------------| | 1685 | 200 OK F14 | | 1686 |------------------->| | 1687 | | | 1689 User B call User A. User A then transfers User B to User C, then 1690 User A disconnects with User B. User B establishes the session to C 1691 then reports the success back to A in the NOTIFY. If the transfer 1692 fails, User B can send a new INVITE back to A to re-establish the 1693 session. 1695 Note that the BYE could be sent by A after the NOTIFY. Also, if A 1696 has flushed all state information, the NOTIFY may receive a 481 Call 1697 Leg Does Not Exist. 1699 Message Details 1701 F1 INVITE B -> A 1703 INVITE sip:UserA@here.com SIP/2.0 1704 Via: SIP/2.0/UDP there.com:5060 1705 From: LittleGuy ;tag=314159 1706 To: BigGuy 1707 Call-ID: 12345601@here.com 1708 CSeq: 1 INVITE 1709 Contact: 1710 Content-Type: application/sdp 1711 Content-Length: ... 1713 v=0 1714 o=UserB 2890844527 2890844527 IN IP4 client.there.com 1715 s=Session SDP 1716 c=IN IP4 110.111.112.113 1717 t=3034423619 0 1718 m=audio 3456 RTP/AVP 0 1719 a=rtpmap:0 PCMU/8000 1721 F2 180 Ringing A -> B 1723 SIP/2.0 180 Ringing 1724 Via: SIP/2.0/UDP there.com:5060 1725 From: LittleGuy ;tag=314159 1726 To: BigGuy ;tag=1234567 1727 Call-ID: 12345601@here.com 1728 CSeq: 1 INVITE 1729 Content-Length: 0 1731 F3 200 OK A -> B 1733 SIP/2.0 200 OK 1734 Via: SIP/2.0/UDP there.com:5060 1735 From: LittleGuy ;tag=314159 1736 To: BigGuy ;tag=1234567 1737 Call-ID: 12345601@here.com 1738 CSeq: 1 INVITE 1739 Contact: 1740 Content-Type: application/sdp 1741 Content-Length: ... 1743 v=0 1744 o=UserA 2890844526 2890844526 IN IP4 client.here.com 1745 s=Session SDP 1746 c=IN IP4 100.101.102.103 1747 t=3034423619 0 1748 m=audio 49170 RTP/AVP 0 1749 a=rtpmap:0 PCMU/8000 1751 F4 ACK B -> A 1753 ACK sip:UserA@here.com SIP/2.0 1754 Via: SIP/2.0/UDP there.com:5060 1755 From: LittleGuy ;tag=314159 1756 To: BigGuy ;tag=1234567 1757 Call-ID: 12345601@here.com 1758 CSeq: 1 ACK 1759 Content-Length: 0 1761 /* Session is established between A and B. */ 1763 /* A peforms unattended transfer of B to C */ 1765 F5 REFER A -> B 1767 REFER sip:UserB@there.com SIP/2.0 1768 Via: SIP/2.0/UDP there.com:5060 1769 From: BigGuy ;tag=1234567 1770 To: LittleGuy ;tag=314159 1771 Call-ID: 12345601@here.com 1772 CSeq: 2 REFER 1773 Refer-To: 1774 Referred-By: 1775 Contact: 1776 Content-Length: 0 1778 F6 202 Accepted B -> A 1780 SIP/2.0 202 Accepted 1781 Via: SIP/2.0/UDP there.com:5060 1782 From: BigGuy ;tag=1234567 1783 To: LittleGuy ;tag=314159 1784 Call-ID: 12345601@here.com 1785 CSeq: 2 REFER 1786 Content-Length: 0 1788 /* A now disconnects with B */ 1789 F7 BYE A -> B 1791 BYE sip:UserA@here.com SIP/2.0 1792 Via: SIP/2.0/UDP there.com:5060 1793 From: BigGuy ;tag=1234567 1794 To: LittleGuy ;tag=314159 1795 Call-ID: 12345601@here.com 1796 CSeq: 3 BYE 1797 Content-Length: 0 1799 F8 200 OK B -> A 1801 SIP/2.0 200 OK 1802 Via: SIP/2.0/UDP there.com:5060 1803 From: BigGuy ;tag=1234567 1804 To: LittleGuy ;tag=314159 1805 Call-ID: 12345601@here.com 1806 CSeq: 3 BYE 1807 Content-Length: 0 1809 /* B attempts the transfer to C */ 1811 F9 INVITE B -> C 1813 INVITE sip:UserC@anywhere.com SIP/2.0 1814 Via: SIP/2.0/UDP there.com:5060 1815 From: LittleGuy ;tag=8675309 1816 To: OtherGuy 1817 Call-ID: 7436222@here.com 1818 CSeq: 1 INVITE 1819 Contact: 1820 Referred-By: 1821 Content-Type: application/sdp 1822 Content-Length: ... 1824 v=0 1825 o=UserB 2890844539 2890844539 IN IP4 client.there.com 1826 s=Session SDP 1827 c=IN IP4 110.111.112.113 1828 t=3034423821 0 1829 m=audio 3458 RTP/AVP 0 1830 a=rtpmap:0 PCMU/8000 1832 F10 180 Ringing C -> B 1834 SIP/2.0 180 Ringing 1835 Via: SIP/2.0/UDP there.com:5060 1836 From: LittleGuy ;tag=8675309 1837 To: OtherGuy ;tag=928287 1838 Call-ID: 7436222@here.com 1839 CSeq: 1 INVITE 1841 F11 200 OK C -> B 1843 SIP/2.0 200 OK 1844 Via: SIP/2.0/UDP there.com:5060 1845 From: LittleGuy ;tag=8675309 1846 To: OtherGuy ;tag=928287 1847 Call-ID: 7436222@here.com 1848 CSeq: 1 INVITE 1849 Contact: 1850 Content-Type: application/sdp 1851 Content-Length: ... 1853 v=0 1854 o=UserC 2890844527 2890844527 IN IP4 client.anywhere.com 1855 s=Session SDP 1856 c=IN IP4 120.121.122.123 1857 t=3034423619 0 1858 m=audio 3456 RTP/AVP 0 1859 a=rtpmap:0 PCMU/8000 1861 F12 ACK B -> C 1863 ACK sip:UserC@anywhere.com SIP/2.0 1864 Via: SIP/2.0/UDP there.com:5060 1865 From: LittleGuy ;tag=8675309 1866 To: OtherGuy ;tag=928287 1867 Call-ID: 7436222@here.com 1868 CSeq: 1 ACK 1869 Content-Length: 0 1871 /* B and C now have established a session. B reports success to A 1872 which A probably ignores. */ 1874 F13 NOTIFY B -> A 1876 NOTIFY sip:UserA@here.com SIP/2.0 1877 Via: SIP/2.0/UDP there.com:5060 1878 From: LittleGuy ;tag=314159 1879 To: BigGuy ;tag=1234567 1880 Call-ID: 12345601@here.com 1881 CSeq: 2 NOTIFY 1882 Event: refer 1883 Content-Type: application/sip 1884 Content-Length: ... 1886 SIP/2.0 200 OK 1887 Via: SIP/2.0/UDP there.com:5060 1888 From: LittleGuy ;tag=8675309 1889 To: OtherGuy ;tag=928287 1890 Call-ID: 7436222@here.com 1891 CSeq: 1 INVITE 1892 Contact: 1893 Content-Type: application/sdp 1894 Content-Length: ... 1896 F14 200 OK A -> B 1898 SIP/2.0 200 OK 1899 Via: SIP/2.0/UDP there.com:5060 1900 From: LittleGuy ;tag=314159 1901 To: BigGuy ;tag=1234567 1902 Call-ID: 12345601@here.com 1903 CSeq: 2 NOTIFY 1904 Content-Length: 0 1906 2.5 Attended Transfer 1908 User A User B User C 1909 | | | 1910 | INVITE F1 | | 1911 |--------------->| | 1912 |(100 Trying) F2 | | 1913 |<---------------| | 1914 | 180 Ringing F3 | | 1915 |<---------------| | 1916 | 200 OK F4 | | 1917 |<---------------| | 1918 | ACK F5 | | 1919 |--------------->| | 1920 | RTP | | 1921 |<==============>| | 1922 | INVITE c=0 F6 | | 1923 |<---------------| | 1924 | 200 OK F7 | | 1925 |--------------->| | 1926 | ACK F8 | | 1927 |<---------------| | 1928 | No RTP | | 1929 | | INVITE F9 | 1930 | |------------->| 1931 | |(100 Trying) F10 1932 | |<-------------| 1933 | | 180 Ringing F11 1934 | |<-------------| 1935 | | 200 OK F12 | 1936 | |<-------------| 1937 | | ACK F13 | 1938 | |------------->| 1939 | | RTP | 1940 | |<============>| 1941 | |INVITE c=0 F14| 1942 | |------------->| 1943 | | 200 OK F15 | 1944 | |<-------------| 1945 | | ACK F16 | 1946 | |------------->| 1947 | | No RTP | 1948 | REFER Refer-To: C F17 | 1949 |<---------------| | 1950 |202 Accepted F18| | 1951 |--------------->| | 1952 | INVITE Replaces: B F19 | 1953 |------------------------------>| 1954 | 200 OK F20 | 1955 |<------------------------------| 1956 | ACK F21 | 1957 |------------------------------>| 1958 | RTP | 1959 |<=============================>| 1960 | | BYE F22 | 1961 | |<-------------| 1962 | | 200 OK F23 | 1963 | |------------->| 1964 | NOTIFY F24 | | 1965 |--------------->| | 1966 | 200 OK F25 | | 1967 |<---------------| | 1968 | BYE F26 | | 1969 |<---------------| | 1970 | 200 OK F27 | | 1971 |--------------->| | 1973 User A calls User B. User B puts User A on hold then calls User C to 1974 announce transfer, then places C on hold. User B transfers User A to 1975 User C which replaces the session between B and C. C then 1976 disconnects session with B. A reports success of transfer to B, who 1977 then disconnects with A. In this example, the Replaces header [5] is 1978 inserted into the Refer-To URL by B. The Accept-Contact header [6] 1979 is also used to ensure that the triggered INVITE reaches the same 1980 instance of the User C. 1982 Message Details 1984 F1 INVITE A -> B 1986 INVITE sip:UserB@there.com SIP/2.0 1987 Via: SIP/2.0/UDP here.com:5060 1988 From: BigGuy ;tag=1234567 1989 To: LittleGuy 1990 Call-ID: 12345600@here.com 1991 CSeq: 1 INVITE 1992 Contact: 1993 Content-Type: application/sdp 1994 Content-Length: ... 1996 v=0 1997 o=UserA 2890844526 2890844526 IN IP4 client.here.com 1998 s=Session SDP 1999 c=IN IP4 100.101.102.103 2000 t=3034423619 0 2001 m=audio 49170 RTP/AVP 0 2002 a=rtpmap:0 PCMU/8000 2003 F2 (100 Trying B -> A) 2005 SIP/2.0 100 Trying 2006 Via: SIP/2.0/UDP here.com:5060 2007 From: BigGuy ;tag=1234567 2008 To: LittleGuy 2009 Call-ID: 12345600@here.com 2010 CSeq: 1 INVITE 2011 Content-Length: 0 2013 F3 180 Ringing B -> A 2015 SIP/2.0 180 Ringing 2016 Via: SIP/2.0/UDP here.com:5060 2017 From: BigGuy ;tag=1234567 2018 To: LittleGuy ;tag=23431 2019 Call-ID: 12345600@here.com 2020 CSeq: 1 INVITE 2021 Content-Length: 0 2023 F4 200 OK B -> A 2025 SIP/2.0 200 OK 2026 Via: SIP/2.0/UDP here.com:5060 2027 From: BigGuy ;tag=1234567 2028 To: LittleGuy ;tag=23431 2029 Call-ID: 12345600@here.com 2030 CSeq: 1 INVITE 2031 Contact: 2032 Content-Type: application/sdp 2033 Content-Length: ... 2035 v=0 2036 o=UserB 2890844527 2890844527 IN IP4 client.there.com 2037 s=Session SDP 2038 c=IN IP4 110.111.112.113 2039 t=3034423619 0 2040 m=audio 3456 RTP/AVP 0 2041 a=rtpmap:0 PCMU/8000 2043 F5 ACK A -> B 2045 ACK sip:UserB@there.com SIP/2.0 2046 Via: SIP/2.0/UDP here.com:5060 2047 From: BigGuy ;tag=1234567 2048 To: LittleGuy ;tag=23431 2049 Call-ID: 12345600@here.com 2050 CSeq: 1 ACK 2051 Content-Length: 0 2053 /* User A and User B have established a session. User B puts User A 2054 on Hold */ 2056 F6 INVITE B -> A 2058 INVITE sip:UserA@here.com SIP/2.0 2059 Via: SIP/2.0/UDP there.com:5060 2060 From: LittleGuy ;tag=23431 2061 To: BigGuy ;tag=1234567 2062 Call-ID: 12345600@here.com 2063 CSeq: 1024 INVITE 2064 Contact: 2065 Content-Type: application/sdp 2066 Content-Length: ... 2068 v=0 2069 o=UserB 2890844528 2890844528 IN IP4 client.there.com 2070 s=Session SDP 2071 c=IN IP4 110.111.112.113 2072 t=3034423619 0 2073 m=audio 3456 RTP/AVP 0 2074 a=rtpmap:0 PCMU/8000 2075 a=sendonly 2077 F7 200 OK A -> B 2079 SIP/2.0 200 OK 2080 Via: SIP/2.0/UDP there.com:5060 2081 From: LittleGuy ;tag=23431 2082 To: BigGuy ;tag=1234567 2083 Call-ID: 12345600@here.com 2084 CSeq: 1024 INVITE 2085 Contact: 2086 Content-Type: application/sdp 2087 Content-Length: ... 2089 v=0 2090 o=UserA 2890844526 2890844526 IN IP4 client.here.com 2091 s=Session SDP 2092 c=IN IP4 100.101.102.103 2093 t=3034423619 0 2094 m=audio 49170 RTP/AVP 0 2095 a=rtpmap:0 PCMU/8000 2097 F8 ACK B -> A 2098 ACK sip:UserA@here.com SIP/2.0 2099 Via: SIP/2.0/UDP there.com:5060 2100 From: LittleGuy ;tag=23431 2101 To: BigGuy ;tag=1234567 2102 Call-ID: 12345600@here.com 2103 CSeq: 1024 ACK 2104 Content-Length: 0 2106 /* User B calls User C */ 2108 F9 INVITE B -> C 2110 INVITE sip:UserC@anywhere.com SIP/2.0 2111 Via: SIP/2.0/UDP there.com:5060 2112 From: LittleGuy ;tag=8675309 2113 To: OtherGuy 2114 Call-ID: sdjfdjfskdf@there.com 2115 CSeq: 42 INVITE 2116 Contact: 2117 Content-Type: application/sdp 2118 Content-Length: ... 2120 v=0 2121 o=UserB 2890844528 2890844528 IN IP4 client.there.com 2122 s=Session SDP 2123 c=IN IP4 110.111.112.113 2124 t=3034423645 0 2125 m=audio 3458 RTP/AVP 0 2126 a=rtpmap:0 PCMU/8000 2128 F10 (100 Trying C -> B) 2130 SIP/2.0 100 Trying 2131 Via: SIP/2.0/UDP there.com:5060 2132 From: LittleGuy ;tag=8675309 2133 To: OtherGuy 2134 Call-ID: sdjfdjfskdf@there.com 2135 CSeq: 42 INVITE 2136 Content-Length: 0 2138 F11 180 Ringing C -> B 2140 SIP/2.0 180 Ringing 2141 Via: SIP/2.0/UDP there.com:5060 2142 From: LittleGuy ;tag=8675309 2143 To: OtherGuy ;tag=5f35a3 2144 Call-ID: sdjfdjfskdf@there.com 2145 CSeq: 42 INVITE 2146 Content-Length: 0 2148 F12 200 OK C -> B 2150 SIP/2.0 200 OK 2151 Via: SIP/2.0/UDP there.com:5060 2152 From: LittleGuy ;tag=8675309 2153 To: OtherGuy ;tag=5f35a3 2154 Call-ID: sdjfdjfskdf@there.com 2155 CSeq: 42 INVITE 2156 Contact: 2157 Content-Type: application/sdp 2158 Content-Length: ... 2160 v=0 2161 o=UserC 2890844527 2890844527 IN IP4 client.anywhere.com 2162 s=Session SDP 2163 c=IN IP4 120.121.122.123 2164 t=3034423619 0 2165 m=audio 3456 RTP/AVP 0 2166 a=rtpmap:0 PCMU/8000 2168 F13 ACK B -> C 2170 ACK sip:UserC@anywhere.com SIP/2.0 2171 Via: SIP/2.0/UDP there.com:5060 2172 From: LittleGuy ;tag=8675309 2173 To: OtherGuy ;tag=5f35a3 2174 Call-ID: sdjfdjfskdf@there.com 2175 CSeq: 42 ACK 2176 Content-Length: 0 2178 /* User B puts User C on hold */ 2180 F14 INVITE B -> C 2182 INVITE sip:UserC@anywhere.com SIP/2.0 2183 Via: SIP/2.0/UDP there.com:5060 2184 From: LittleGuy ;tag=8675309 2185 To: OtherGuy ;tag=5f35a3 2186 Call-ID: sdjfdjfskdf@there.com 2187 CSeq: 43 INVITE 2188 Contact: 2189 Content-Type: application/sdp 2190 Content-Length: ... 2192 v=0 2193 o=UserB 2890844529 2890844529 IN IP4 client.there.com 2194 s=Session SDP 2195 c=IN IP4 110.111.112.113 2196 t=3034423645 0 2197 m=audio 3458 RTP/AVP 0 2198 a=rtpmap:0 PCMU/8000 2199 a=sendonly 2201 F15 200 OK C -> B 2203 SIP/2.0 200 OK 2204 Via: SIP/2.0/UDP there.com:5060 2205 From: LittleGuy ;tag=8675309 2206 To: OtherGuy ;tag=5f35a3 2207 Call-ID: sdjfdjfskdf@there.com 2208 CSeq: 43 INVITE 2209 Contact: 2210 Content-Type: application/sdp 2211 Content-Length: ... 2213 v=0 2214 o=UserC 2890844527 2890844527 IN IP4 client.anywhere.com 2215 s=Session SDP 2216 c=IN IP4 120.121.122.123 2217 t=3034423619 0 2218 m=audio 3456 RTP/AVP 0 2219 a=rtpmap:0 PCMU/8000 2221 F16 ACK B -> C 2223 ACK sip:UserC@anywhere.com SIP/2.0 2224 Via: SIP/2.0/UDP there.com:5060 2225 From: LittleGuy ;tag=8675309 2226 To: OtherGuy ;tag=5f35a3 2227 Call-ID: sdjfdjfskdf@there.com 2228 CSeq: 43 ACK 2229 Content-Length: 0 2231 /* User B Transfers User A to User C. */ 2233 F17 REFER B -> A 2235 REFER sip:UserA@here.com SIP/2.0 2236 Via: SIP/2.0/UDP there.com:5060 2237 From: LittleGuy ;tag=23431 2238 To: BigGuy ;tag=1234567 2239 Call-ID: 12345678900@here.com 2240 CSeq: 1025 REFER 2241 Refer-To: 2244 Referred-By: 2245 Contact: 2246 Content-Length: 0 2248 F18 202 Accepted A -> B 2250 SIP/2.0 202 Accepted 2251 Via: SIP/2.0/UDP there.com:5060 2252 From: LittleGuy ;tag=1234567 2253 To: BigGuy ;tag=23431 2254 Call-ID: 12345678900@here.com 2255 CSeq: 1025 REFER 2256 Content-Length: 0 2258 /* User A establishes session with User C which replaces the session 2259 between User B and User C */ 2261 F19 INVITE A -> C 2263 INVITE sip:UserA@here.com SIP/2.0 2264 Via: SIP/2.0/UDP anywhere.com:5060 2265 To: OtherGuy 2266 From: BigGuy ;tag=3461 2267 Call-ID: 9435674543@here.com 2268 CSeq: 1 INVITE 2269 Referred-By: 2270 Accept-Contact: ;only=true 2271 Replaces: 12345600@here.com;to-tag=23431;from-tag=8675309 2272 Contact: 2273 Content-Type: application/sdp 2274 Content-Length: ... 2276 v=0 2277 o=UserC 2890844529 2890844529 IN IP4 client.anywhere.com 2278 s=Session SDP 2279 c=IN IP4 120.121.122.123 2280 t=3034423643 0 2281 m=audio 3458 RTP/AVP 0 2282 a=rtpmap:0 PCMU/8000 2284 F20 200 OK C -> A 2286 SIP/2.0 200 OK 2287 Via: SIP/2.0/UDP anywhere.com:5060 2288 To: OtherGuy ;tag=ff3a 2289 From: BigGuy ;tag=3461 2290 Call-ID: 9435674543@here.com 2291 CSeq: 1 INVITE 2292 Contact: 2293 Content-Type: application/sdp 2294 Content-Length: ... 2296 v=0 2297 o=UserA 2890844538 2890844538 IN IP4 client.here.com 2298 s=Session SDP 2299 c=IN IP4 100.101.102.103 2300 t=3034423452 0 2301 m=audio 49172 RTP/AVP 0 2302 a=rtpmap:0 PCMU/8000 2304 F21 ACK A -> C 2306 ACK sip:UserC@anywhere.com SIP/2.0 2307 Via: SIP/2.0/UDP anywhere.com:5060 2308 To: OtherGuy ;tag=ff3a 2309 From: BigGuy ;tag=3461 2310 Call-ID: 9435674543@here.com 2311 CSeq: 1 INVITE 2312 Content-Length: 0 2314 /* User C then disconnects from User B */ 2316 F22 BYE C -> B 2318 BYE sip:UserB@there.com SIP/2.0 2319 Via: SIP/2.0/UDP here.com:5060 2320 To: LittleGuy ;tag=8675309 2321 From: OtherGuy ;tag=5f35a3 2322 Call-ID: sdjfdjfskdf@there.com 2323 CSeq: 1 BYE 2324 Content-Length: 0 2326 F23 200 OK B -> C 2328 SIP/2.0 200 OK 2329 Via: SIP/2.0/UDP here.com:5060 2330 To: LittleGuy ;tag=8675309 2331 From: OtherGuy ;tag=5f35a3 2332 Call-ID: sdjfdjfskdf@there.com 2333 CSeq: 1 BYE 2334 Content-Length: 0 2336 /* User A tells User B that the call has been successfully 2337 transferred */ 2338 F24 NOTIFY A -> B 2340 NOTIFY sip:UserB@there.com SIP/2.0 2341 Via: SIP/2.0/UDP here.com:5060 2342 From: BigGuy ;tag=1234567 2343 To: LittleGuy ;tag=23431 2344 Call-ID: 12345678900@here.com 2345 CSeq: 2 NOTIFY 2346 Content-Type: application/sdp 2347 Content-Length: ... 2349 SIP/2.0 200 OK 2350 Via: SIP/2.0/UDP anywhere.com:5060 2351 From: OtherGuy ;tag=ff3a 2352 To: BigGuy ;tag=3461 2353 Call-ID: 9435674543@anywhere.com 2354 CSeq: 1 INVITE 2355 Contact: 2357 F25 200 OK B -> C 2359 SIP/2.0 200 OK 2360 Via: SIP/2.0/UDP here.com:5060 2361 To: LittleGuy ;tag=1234567 2362 From: OtherGuy ;tag=5f35a3 2363 Call-ID: 12345678900@here.com 2364 CSeq: 2 NOTIFY 2365 Content-Length: 0 2367 /* User B disconnects with User A */ 2369 F26 BYE B -> A 2371 BYE sip:UserA@here.com SIP/2.0 2372 Via: SIP/2.0/UDP there.com:5060 2373 From: LittleGuy ;tag=23431 2374 To: BigGuy ;tag=1234567 2375 Call-ID: 12345678900@here.com 2376 CSeq: 1026 BYE 2377 Content-Length: 0 2379 F27 200 OK A -> B 2381 SIP/2.0 200 OK 2382 Via: SIP/2.0/UDP there.com:5060 2383 From: LittleGuy ;tag=23431 2384 To: BigGuy ;tag=1234567 2385 Call-ID: 12345678900@here.com 2386 CSeq: 1026 BYE 2387 Content-Length: 0 2389 2.6 Call Forwarding Unconditional 2391 User A Proxy Gateway 2392 | | | 2393 | INVITE F1 | | 2394 |--------------->| INVITE F2 | 2395 |(100 Trying) F3 |------------->| 2396 |<---------------|180 Ringing F4| 2397 | 180 Ringing F5 |<-------------| 2398 |<---------------| 200 OK F6 | 2399 | 200 OK F7 |<-------------| 2400 |<---------------| | 2401 | ACK F8 | | 2402 |--------------->| ACK F9 | 2403 | |------------->| 2404 | Both way RTP Established | 2405 |<=============================>| 2406 | BYE F10 | | 2407 |--------------->| BYE F11 | 2408 | |------------->| 2409 | | 200 OK F12 | 2410 | 200 OK F13 |<-------------| 2411 |<---------------| | 2412 | | | 2414 User B wants all calls forwarded to the PSTN. User A calls User B. 2415 The Proxy server rewrites the request URI, and forwards the INVITE to 2416 a Gateway. Details of messaging behind the Gateway are not shown. 2418 Message Details 2420 F1 INVITE A -> Proxy 2422 INVITE sip:UserB@there.com SIP/2.0 2423 Via: SIP/2.0/UDP here.com:5060 2424 From: BigGuy ;tag=1234567 2425 To: LittleGuy 2426 Call-ID: 12345600@here.com 2427 CSeq: 1 INVITE 2428 Contact: 2429 Content-Type: application/sdp 2430 Content-Length: ... 2432 v=0 2433 o=UserA 2890844526 2890844526 IN IP4 client.here.com 2434 s=Session SDP 2435 c=IN IP4 100.101.102.103 2436 t=3034423619 0 2437 m=audio 49170 RTP/AVP 0 2438 a=rtpmap:0 PCMU/8000 2440 /* Proxy forwards call by rewriting Request-URI */ 2442 F2 INVITE Proxy -> Gateway 2444 INVITE sip:+19727293660@gw1.wcom.com;user=phone SIP/2.0 2445 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 2446 Via: SIP/2.0/UDP here.com:5060 2447 Record-Route: 2448 From: BigGuy ;tag=1234567 2449 To: LittleGuy 2450 Call-ID: 12345600@here.com 2451 CSeq: 1 INVITE 2452 Contact: 2453 Content-Type: application/sdp 2454 Content-Length: ... 2456 v=0 2457 o=UserA 2890844526 2890844526 IN IP4 client.here.com 2458 s=Session SDP 2459 c=IN IP4 100.101.102.103 2460 t=3034423619 0 2461 m=audio 49170 RTP/AVP 0 2462 a=rtpmap:0 PCMU/8000 2464 F3 (100 Trying) Proxy -> A 2466 SIP/2.0 100 Trying 2467 Via: SIP/2.0/UDP here.com:5060 2468 From: BigGuy ;tag=1234567 2469 To: LittleGuy 2470 Call-ID: 12345600@here.com 2471 CSeq: 1 INVITE 2472 Content-Length: 0 2474 F4 180 Ringing Gateway -> Proxy 2476 SIP/2.0 180 Ringing 2477 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 2478 Via: SIP/2.0/UDP here.com:5060 2479 From: BigGuy ;tag=1234567 2480 To: LittleGuy ;tag=314159 2481 Call-ID: 12345600@here.com 2482 CSeq: 1 INVITE 2483 Content Length:0 2484 F5 180 Ringing Proxy -> A 2486 SIP/2.0 180 Ringing 2487 Via: SIP/2.0/UDP here.com:5060 2488 From: BigGuy ;tag=1234567 2489 To: LittleGuy ;tag=314159 2490 Call-ID: 12345600@here.com 2491 CSeq: 1 INVITE 2492 Content Length: 0 2494 F6 200 OK Gateway -> Proxy 2496 SIP/2.0 200 OK 2497 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 2498 Via: SIP/2.0/UDP here.com:5060 2499 Record-Route: 2500 From: BigGuy ;tag=1234567 2501 To: LittleGuy ;tag=314159 2502 Call-ID: 12345600@here.com 2503 CSeq: 1 INVITE 2504 Contact: 2505 Content-Type: application/sdp 2506 Content-Length: ... 2508 v=0 2509 o=GATEWAY1 2890844527 2890844527 IN IP4 gatewayone.wcom.com 2510 s=Session SDP 2511 c=IN IP4 gatewayone.wcom.com 2512 t=0 0 2513 m=audio 3456 RTP/AVP 0 2514 a=rtpmap:0 PCMU/8000 2516 F7 200 OK Proxy -> A 2518 SIP/2.0 200 OK 2519 Via: SIP/2.0/UDP here.com:5060 2520 Record-Route: 2521 From: BigGuy ;tag=1234567 2522 To: LittleGuy ;tag=314159 2523 Call-ID: 12345600@here.com 2524 CSeq: 1 INVITE 2525 Contact: 2526 Content-Type: application/sdp 2527 Content-Length: ... 2529 v=0 2530 o=GATEWAY1 2890844527 2890844527 IN IP4 gatewayone.wcom.com 2531 s=Session SDP 2532 c=IN IP4 gatewayone.wcom.com 2533 t=0 0 2534 m=audio 3456 RTP/AVP 0 2535 a=rtpmap:0 PCMU/8000 2537 F8 ACK A -> Proxy 2539 ACK sip:+19727293660@gw1.wcom.com;user=phone SIP/2.0 2540 Via: SIP/2.0/UDP here.com:5060 2541 Route: 2542 From: BigGuy ;tag=1234567 2543 To: LittleGuy ;tag=314159 2544 Call-ID: 12345600@here.com 2545 CSeq: 1 ACK 2546 Content-Length: 0 2548 F9 ACK Proxy -> Gateway 2550 ACK sip:+19727293660@gw1.wcom.com;user=phone SIP/2.0 2551 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 2552 Via: SIP/2.0/UDP here.com:5060 2553 From: BigGuy ;tag=1234567 2554 To: LittleGuy ;tag=314159 2555 Call-ID: 12345600@here.com 2556 CSeq: 1 ACK 2557 Content-Length: 0 2559 F10 BYE A -> Proxy 1 2561 BYE sip:+19727293660@gw1.wcom.com;user=phone SIP/2.0 2562 Via: SIP/2.0/UDP here.com:5060 2563 Route: 2564 From: BigGuy ;tag=1234567 2565 To: LittleGuy ;tag=314159 2566 Call-ID: 12345600@here.com 2567 CSeq: 2 BYE 2568 Content-Length: 0 2570 F11 BYE Proxy 1 -> Gateway 2572 BYE sip:+19727293660@gw1.wcom.com;user=phone SIP/2.0 2573 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 2574 Via: SIP/2.0/UDP here.com:5060 2575 From: BigGuy ;tag=1234567 2576 To: LittleGuy ;tag=314159 2577 Call-ID: 12345600@here.com 2578 CSeq: 2 BYE 2579 Content-Length: 0 2581 F12 200 OK Gateway -> Proxy 1 2583 SIP/2.0 200 OK 2584 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 2585 Via: SIP/2.0/UDP here.com:5060 2586 From: BigGuy ;tag=1234567 2587 To: LittleGuy ;tag=314159 2588 Call-ID: 12345600@here.com 2589 CSeq: 2 BYE 2590 Content-Length: 0 2592 F13 200 OK Proxy 1 -> A 2594 SIP/2.0 200 OK 2595 Via: SIP/2.0/UDP here.com:5060 2596 From: BigGuy ;tag=1234567 2597 To: LittleGuy ;tag=314159 2598 Call-ID: 12345600@here.com 2599 CSeq: 2 BYE 2600 Content-Length: 0 2602 2.7 Call Forwarding - Busy 2604 User A Proxy User B1 User B2 2605 | | | | 2606 | INVITE F1 | | | 2607 |--------------->| INVITE F2 | | 2608 | |------------->| | 2609 |(100 Trying) F3 | | | 2610 |<---------------| 486 Busy F4 | | 2611 | |<-------------| | 2612 | | ACK F5 | | 2613 | |------------->| | 2614 | | | INVITE F6 | 2615 | |--------------------------------->| 2616 | | | 180 Ringing F7 | 2617 | |<---------------------------------| 2618 | 180 Ringing F8 | | | 2619 |<---------------| | 200 OK F9 | 2620 | |<---------------------------------| 2621 | 200 OK F10 | | | 2622 |<---------------| | | 2623 | ACK F11 | | | 2624 |--------------->| | ACK F12 | 2625 | |--------------------------------->| 2626 | Both way RTP Established | 2627 |<=================================================>| 2628 | BYE F13 | | | 2629 |--------------->| | BYE F14 | 2630 | |--------------------------------->| 2631 | | | 200 OK F15 | 2632 | 200 OK F16 |<---------------------------------| 2633 |<---------------| | | 2634 | | | | 2636 User B wants calls to B1 forwarded to B2 if B1 is busy (this 2637 information is known to the proxy). User A calls B1, B1 is busy, the 2638 proxy server places call to B2. 2640 Message Details 2642 F1 INVITE A -> Proxy 2644 INVITE sip:UserB@there.com SIP/2.0 2645 Via: SIP/2.0/UDP here.com:5060 2646 From: BigGuy ;tag=1234567 2647 To: LittleGuy 2648 Call-ID: 12345600@here.com 2649 CSeq: 1 INVITE 2650 Contact: 2651 Content-Type: application/sdp 2652 Content-Length: ... 2654 v=0 2655 o=UserA 2890844526 2890844526 IN IP4 client.here.com 2656 s=Session SDP 2657 c=IN IP4 100.101.102.103 2658 t=0 0 2659 m=audio 49170 RTP/AVP 0 2660 a=rtpmap:0 PCMU/8000 2662 F2 INVITE Proxy -> B1 2664 INVITE sip:UserB@110.111.112.113 SIP/2.0 2665 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 2666 Via: SIP/2.0/UDP here.com:5060 2667 Record-Route: 2668 From: BigGuy ;tag=1234567 2669 To: LittleGuy 2670 Call-ID: 12345600@here.com 2671 CSeq: 1 INVITE 2672 Contact: 2673 Content-Type: application/sdp 2674 Content-Length: ... 2676 v=0 2677 o=UserA 2890844526 2890844526 IN IP4 client.here.com 2678 s=Session SDP 2679 c=IN IP4 100.101.102.103 2680 t=0 0 2681 m=audio 49170 RTP/AVP 0 2682 a=rtpmap:0 PCMU/8000 2684 F3 (100 Trying) Proxy -> A 2686 SIP/2.0 100 Trying 2687 Via: SIP/2.0/UDP here.com:5060 2688 From: BigGuy ;tag=1234567 2689 To: LittleGuy 2690 Call-ID: 12345600@here.com 2691 CSeq: 1 INVITE 2692 Content-Length: 0 2694 F4 486 Busy Here B1 -> Proxy 2696 SIP/2.0 486 Busy Here 2697 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 2698 Via: SIP/2.0/UDP here.com:5060 2699 From: BigGuy ;tag=1234567 2700 To: LittleGuy ;tag=765432 2701 Call-ID: 12345600@here.com 2702 CSeq: 1 INVITE 2703 Content-Length: 0 2705 F5 ACK Proxy -> B1 2707 ACK sip:UserB@110.111.112.113 SIP/2.0 2708 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 2709 From: BigGuy ;tag=1234567 2710 To: LittleGuy ;tag=765432 2711 Call-ID: 12345600@here.com 2712 CSeq: 1 ACK 2713 Content-Length: 0 2715 /* The proxy now forwards the call to B2 */ 2717 F6 INVITE Proxy -> B2 2719 INVITE sip:UserB2@there.com SIP/2.0 2720 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2 2721 Via: SIP/2.0/UDP here.com:5060 2722 Record-Route: 2723 From: BigGuy ;tag=1234567 2724 To: LittleGuy 2725 Call-ID: 12345600@here.com 2726 CSeq: 1 INVITE 2727 Contact: 2728 Content-Type: application/sdp 2729 Content-Length: ... 2731 v=0 2732 o=UserA 2890844526 2890844526 IN IP4 client.here.com 2733 s=Session SDP 2734 c=IN IP4 100.101.102.103 2735 t=0 0 2736 m=audio 49170 RTP/AVP 0 2737 a=rtpmap:0 PCMU/8000 2739 F7 180 Ringing B2 -> Proxy 2741 SIP/2.0 180 Ringing 2742 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2 2743 Via: SIP/2.0/UDP here.com:5060 2744 From: BigGuy ;tag=1234567 2745 To: LittleGuy ;tag=7654321 2746 Call-ID: 12345600@here.com 2747 CSeq: 1 INVITE 2748 Content-Length: 0 2750 F8 180 Ringing Proxy -> A 2752 SIP/2.0 180 Ringing 2753 Via: SIP/2.0/UDP here.com:5060 2754 From: BigGuy ;tag=1234567 2755 To: LittleGuy ;tag=7654321 2756 Call-ID: 12345600@here.com 2757 CSeq: 1 INVITE 2758 Content-Length: 0 2760 F9 200 OK B2 -> Proxy 2762 SIP/2.0 200 OK 2763 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2 2764 Via: SIP/2.0/UDP here.com:5060 2765 Record-Route: 2766 From: BigGuy ;tag=1234567 2767 To: LittleGuy ;tag=7654321 2768 Call-ID: 12345600@here.com 2769 CSeq: 1 INVITE 2770 Contact: 2771 Content-Type: application/sdp 2772 Content-Length: ... 2774 v=0 2775 o=UserB 2890844527 2890844527 IN IP4 client2.there.com 2776 s=Session SDP 2777 c=IN IP4 110.111.112.114 2778 t=0 0 2779 m=audio 3456 RTP/AVP 0 2780 a=rtpmap:0 PCMU/8000 2782 F10 200 OK Proxy -> A 2784 SIP/2.0 200 OK 2785 Via: SIP/2.0/UDP here.com:5060 2786 Record-Route: 2787 From: BigGuy ;tag=1234567 2788 To: LittleGuy ;tag=7654321 2789 Call-ID: 12345600@here.com 2790 CSeq: 1 INVITE 2791 Contact: 2792 Content-Type: application/sdp 2793 Content-Length: ... 2795 v=0 2796 o=UserB 2890844527 2890844527 IN IP4 client2.there.com 2797 s=Session SDP 2798 c=IN IP4 110.111.112.114 2799 t=0 0 2800 m=audio 3456 RTP/AVP 0 2801 a=rtpmap:0 PCMU/8000 2803 F11 ACK A -> Proxy 2805 ACK sip:UserB2@there.com SIP/2.0 2806 Via: SIP/2.0/UDP here.com:5060 2807 Route: 2808 From: BigGuy ;tag=1234567 2809 To: LittleGuy ;tag=7654321 2810 Call-ID: 12345600@here.com 2811 CSeq: 1 ACK 2812 Content-Length: 0 2814 F12 ACK Proxy -> B2 2816 ACK sip:UserB2@110.111.112.114 SIP/2.0 2817 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 2818 Via: SIP/2.0/UDP here.com:5060 2819 From: BigGuy ;tag=1234567 2820 To: LittleGuy ;tag=7654321 2821 Call-ID: 12345600@here.com 2822 CSeq: 1 ACK 2823 Content-Length: 0 2825 /* RTP streams are established between A and B2 */ 2827 /* User A eventually hangs up with User B2. */ 2829 F13 BYE A -> Proxy 2831 BYE sip:UserB2@there.com SIP/2.0 2832 Via: SIP/2.0/UDP here.com:5060 2833 Route: 2834 From: BigGuy ;tag=1234567 2835 To: LittleGuy ;tag=7654321 2836 Call-ID: 12345600@here.com 2837 CSeq: 2 BYE 2838 Content-Length: 0 2840 F14 BYE Proxy -> B2 2841 BYE sip:UserB2@110.111.112.114 SIP/2.0 2842 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 2843 Via: SIP/2.0/UDP here.com:5060 2844 From: BigGuy ;tag=1234567 2845 To: LittleGuy ;tag=7654321 2846 Call-ID: 12345600@here.com 2847 CSeq: 2 BYE 2848 Content-Length: 0 2850 F15 200 OK B2 -> Proxy 2852 SIP/2.0 200 OK 2853 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 2854 Via: SIP/2.0/UDP here.com:5060 2855 From: BigGuy ;tag=1234567 2856 To: LittleGuy ;tag=7654321 2857 Call-ID: 12345600@here.com 2858 CSeq: 2 BYE 2859 Content-Length: 0 2861 F16 200 OK Proxy -> A 2863 SIP/2.0 200 OK 2864 Via: SIP/2.0/UDP here.com:5060 2865 From: BigGuy ;tag=1234567 2866 To: LittleGuy ;tag=7654321 2867 Call-ID: 12345600@here.com 2868 CSeq: 2 BYE 2869 Content-Length: 0 2871 2.8 Call Forwarding - No Answer 2873 User A Proxy User B1 User B2 2874 | | | | 2875 | INVITE F1 | | | 2876 |--------------->| INVITE F2 | | 2877 |(100 Trying) F3 |------------->| | 2878 |<---------------|180 Ringing F4| | 2879 | 180 Ringing F5 |<-------------| | 2880 |<---------------| | | 2881 | Request Timeout | 2882 | | | | 2883 | | CANCEL F6 | | 2884 | |------------->| | 2885 | | 200 OK F7 | | 2886 | |<-------------| | 2887 | | 487 F8 | | 2888 | |<-------------| | 2889 | | ACK F9 | | 2890 | |------------->| | 2891 | | | INVITE F10 | 2892 | |--------------------------------->| 2893 | | | 180 Ringing F11 | 2894 | 180 Ringing F12|<---------------------------------| 2895 |<---------------| | 200 OK F13 | 2896 | |<---------------------------------| 2897 | 200 OK F14 | | | 2898 |<---------------| | | 2899 | ACK F15 | | | 2900 |--------------->| | ACK F16 | 2901 | |--------------------------------->| 2902 | Both way RTP Established | 2903 |<=================================================>| 2904 | BYE F17 | | | 2905 |--------------->| | BYE F18 | 2906 | |--------------------------------->| 2907 | | | 200 OK F19 | 2908 | 200 OK F20 |<---------------------------------| 2909 |<---------------| | | 2910 | | | | 2912 User B wants calls to B1 forwarded to B2 if B1 is not answered 2913 (information is known to the proxy server). User A calls B1 and no 2914 one answers. The proxy server then places the call to B2. 2916 Message Details 2918 F1 INVITE A -> Proxy 2919 INVITE sip:UserB@there.com SIP/2.0 2920 Via: SIP/2.0/UDP here.com:5060 2921 From: BigGuy ;tag=1234567 2922 To: LittleGuy 2923 Call-ID: 12345600@here.com 2924 CSeq: 1 INVITE 2925 Contact: 2926 Content-Type: application/sdp 2927 Content-Length: ... 2929 v=0 2930 o=UserA 2890844526 2890844526 IN IP4 client.here.com 2931 s=Session SDP 2932 c=IN IP4 100.101.102.103 2933 t=0 0 2934 m=audio 49170 RTP/AVP 0 2935 a=rtpmap:0 PCMU/8000 2937 F2 INVITE Proxy -> B1 2939 INVITE sip:UserB1@110.111.112.113 SIP/2.0 2940 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 2941 Via: SIP/2.0/UDP here.com:5060 2942 Record-Route: 2943 From: BigGuy ;tag=1234567 2944 To: LittleGuy 2945 Call-ID: 12345600@here.com 2946 CSeq: 1 INVITE 2947 Contact: 2948 Content-Type: application/sdp 2949 Content-Length: ... 2951 v=0 2952 o=UserA 2890844526 2890844526 IN IP4 client.here.com 2953 s=Session SDP 2954 c=IN IP4 100.101.102.103 2955 t=0 0 2956 m=audio 49170 RTP/AVP 0 2957 a=rtpmap:0 PCMU/8000 2959 F3 (100 Trying) Proxy -> A 2961 SIP/2.0 100 Trying 2962 Via: SIP/2.0/UDP here.com:5060 2963 From: BigGuy ;tag=1234567 2964 To: LittleGuy 2965 Call-ID: 12345600@here.com 2966 CSeq: 1 INVITE 2967 Content-Length: 0 2968 F4 180 Ringing B1 -> Proxy 2970 SIP/2.0 180 Ringing 2971 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 2972 Via: SIP/2.0/UDP here.com:5060 2973 From: BigGuy ;tag=1234567 2974 To: LittleGuy ;tag=3145678 2975 Call-ID: 12345600@here.com 2976 CSeq: 1 INVITE 2977 Content-Length: 0 2979 F5 180 Ringing Proxy -> A 2981 SIP/2.0 180 Ringing 2982 Via: SIP/2.0/UDP here.com:5060 2983 From: BigGuy ;tag=1234567 2984 To: LittleGuy ;tag=3145678 2985 Call-ID: 12345600@here.com 2986 CSeq: 1 INVITE 2987 Content-Length: 0 2989 /* B1 rings until a configurable timer expires in the Proxy. The 2990 Proxy sends Cancel and proceeds down the list of routes. */ 2992 F6 CANCEL Proxy -> B1 2994 CANCEL sip:UserB1@110.111.112.113 SIP/2.0 2995 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 2996 From: BigGuy 2997 To: LittleGuy 2998 Call-ID: 12345600@here.com 2999 CSeq: 1 CANCEL 3000 Content-Length: 0 3002 F7 200 OK B1 -> Proxy 3004 SIP/2.0 200 OK 3005 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 3006 From: BigGuy 3007 To: LittleGuy 3008 Call-ID: 12345600@here.com 3009 CSeq: 1 CANCEL 3010 Content-Length: 0 3012 F8 487 Request Terminated B1 -> Proxy 3013 SIP/2.0 487 Request Terminated 3014 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 3015 Via: SIP/2.0/UDP here.com:5060 3016 From: BigGuy ;tag=1234567 3017 To: LittleGuy ;tag=3145678 3018 Call-ID: 12345600@here.com 3019 CSeq: 1 INVITE 3020 Content-Length: 0 3022 F9 ACK Proxy -> B1 3024 ACK sip:UserB@110.111.112.113 SIP/2.0 3025 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 3026 From: BigGuy ;tag=1234567 3027 To: LittleGuy ;tag=3145678 3028 Call-ID: 12345600@here.com 3029 CSeq: 1 ACK 3030 Content-Length: 0 3032 F10 INVITE Proxy -> B2 3034 INVITE sip:UserB4@110.111.112.114 SIP/2.0 3035 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2 3036 Via: SIP/2.0/UDP here.com:5060 3037 Record-Route: 3038 From: BigGuy ;tag=1234567 3039 To: LittleGuy 3040 Call-ID: 12345600@here.com 3041 CSeq: 1 INVITE 3042 Contact: 3043 Content-Type: application/sdp 3044 Content-Length: ... 3046 v=0 3047 o=UserA 2890844526 2890844526 IN IP4 client.here.com 3048 s=Session SDP 3049 c=IN IP4 100.101.102.103 3050 t=0 0 3051 m=audio 49170 RTP/AVP 0 3052 a=rtpmap:0 PCMU/8000 3054 F11 180 Ringing B2 -> Proxy 3056 SIP/2.0 180 Ringing 3057 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2 3058 Via: SIP/2.0/UDP here.com:5060 3059 From: BigGuy ;tag=1234567 3060 To: LittleGuy ;tag=765432 3061 Call-ID: 12345600@here.com 3062 CSeq: 1 INVITE 3063 Content-Length: 0 3065 F12 180 Proxy -> A 3067 SIP/2.0 180 Ringing 3068 Via: SIP/2.0/UDP here.com:5060 3069 From: BigGuy ;tag=1234567 3070 To: LittleGuy ;tag=765432 3071 Call-ID: 12345600@here.com 3072 CSeq: 1 INVITE 3073 Content-Length: 0 3075 F13 200 OK B2 -> Proxy 3077 SIP/2.0 200 OK 3078 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2 3079 Via: SIP/2.0/UDP here.com:5060 3080 Record-Route: 3081 From: BigGuy ;tag=1234567 3082 To: LittleGuy ;tag=765432 3083 Call-ID: 12345600@here.com 3084 CSeq: 1 INVITE 3085 Contact: 3086 Content-Type: application/sdp 3087 Content-Length: ... 3089 v=0 3090 o=UserB 2890844527 2890844527 IN IP4 client2.there.com 3091 s=Session SDP 3092 c=IN IP4 110.111.112.114 3093 t=0 0 3094 m=audio 3456 RTP/AVP 0 3095 a=rtpmap:0 PCMU/8000 3097 F14 200 OK Proxy -> A 3099 SIP/2.0 200 OK 3100 Via: SIP/2.0/UDP here.com:5060 3101 Record-Route: 3102 From: BigGuy ;tag=1234567 3103 To: LittleGuy ;tag=765432 3104 Call-ID: 12345600@here.com 3105 CSeq: 1 INVITE 3106 Contact: 3107 Content-Type: application/sdp 3108 Content-Length: ... 3110 v=0 3111 o=UserB 2890844527 2890844527 IN IP4 client2.there.com 3112 s=Session SDP 3113 c=IN IP4 110.111.112.114 3114 t=0 0 3115 m=audio 3456 RTP/AVP 0 3116 a=rtpmap:0 PCMU/8000 3118 F15 ACK A -> Proxy 3120 ACK sip:UserB2@there.com SIP/2.0 3121 Via: SIP/2.0/UDP here.com:5060 3122 Route: 3123 From: BigGuy ;tag=1234567 3124 To: LittleGuy ;tag=765432 3125 Call-ID: 12345600@here.com 3126 CSeq: 1 ACK 3127 Content-Length: 0 3129 F16 ACK Proxy -> B2 3131 ACK sip:UserB2@110.111.112.114 SIP/2.0 3132 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 3133 Via: SIP/2.0/UDP here.com:5060 3134 From: BigGuy ;tag=1234567 3135 To: LittleGuy ;tag=765432 3136 Call-ID: 12345600@here.com 3137 CSeq: 1 ACK 3138 Content-Length: 0 3140 /* RTP streams are established between A and B2. User A Hangs Up 3141 with User B2. */ 3143 F17 BYE A -> Proxy 3145 BYE sip:UserB2@there.com SIP/2.0 3146 Via: SIP/2.0/UDP here.com:5060 3147 Route: 3148 From: BigGuy ;tag=1234567 3149 To: LittleGuy ;tag=765432 3150 Call-ID: 12345600@here.com 3151 CSeq: 2 BYE 3152 Content-Length: 0 3154 F18 BYE Proxy -> B2 3155 BYE sip:UserB2@there.com SIP/2.0 3156 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 3157 Via: SIP/2.0/UDP here.com:5060 3158 From: BigGuy ;tag=1234567 3159 To: LittleGuy ;tag=765432 3160 Call-ID: 12345600@here.com 3161 CSeq: 2 BYE 3162 Content-Length: 0 3164 F19 200 OK B2 -> Proxy 3166 SIP/2.0 200 OK 3167 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 3168 Via: SIP/2.0/UDP here.com:5060 3169 From: BigGuy ;tag=1234567 3170 To: LittleGuy ;tag=765432 3171 Call-ID: 12345600@here.com 3172 CSeq: 2 BYE 3173 Content-Length: 0 3175 F20 200 OK Proxy -> A 3177 SIP/2.0 200 OK 3178 Via: SIP/2.0/UDP here.com:5060 3179 From: BigGuy ;tag=1234567 3180 To: LittleGuy ;tag=765432 3181 Call-ID: 12345600@here.com 3182 CSeq: 2 BYE 3183 Content-Length: 0 3185 2.9 3-way Conference 3187 User A calls User B, User B then invites user C to a 3-way call. User 3188 B will mix the audio streams (act as the conference bridge). If user 3189 B drops out of the call then the entire call is dropped. This is not 3190 a fully meshed conference, and does not make use of the concepts in 3191 the call control draft. 3193 The signaling for this scenario is as follows: User A calls User B, 3194 this establishes the call between A and B. User B calls User C, this 3195 establishes the call between B and C. User B will mix the audio 3196 streams, sending media originating at A to C, and media originating 3197 at C to A. There is no SIP signaling relationship between User A and 3198 User C. 3200 The REFER method with the Replaces header could be used by User B to 3201 drop out of the call without disconnecting A and C. 3203 2.10 3204 Single Line Extension 3206 Single Line Extension (Sequential, First Wins implementation), a call 3207 will ring several extensions in sequence. The extension to answer 3208 the call becomes the active set, no other sets may join the call. 3210 The signaling is described in Section 2.11 of this document. It is 3211 anticipated that Single Line Extension will be associated with help 3212 desk/call center applications rather then individual users. The 3213 signaling for this implementation of Single Line Extension and Find- 3214 Me is the same, the difference may be in the provisioning of the 3215 service. 3217 Note that the call flows for a Home Extension have not yet been 3218 designed. 3220 2.11 3221 Find-Me 3223 User A Proxy User User User User 3224 B1 B2 B3 B4 3225 | | | | | | 3226 | INVITE F1 | | | | | 3227 |--------------->| INVITE F2 | | | | 3228 | |------------->| | | | 3229 |(100 Trying) F3 | | | | | 3230 |<---------------|180 Ringing F4| | | | 3231 | |<-------------| | | | 3232 | 180 Ringing F5 | | | | | 3233 |<---------------| | | | | 3234 | | Timeout | | | | 3235 | | | | | | 3236 | | CANCEL F6 | | | | 3237 | |------------->| | | | 3238 | | 200 OK F7 | | | | 3239 | |<-------------| | | | 3240 | | 487 F8 | | | | 3241 | |<-------------| | | | 3242 | | ACK F9 | | | | 3243 | |------------->| | | | 3244 | | INVITE F10 | | | 3245 | |-------------------->| | | 3246 | |480 Not Logged In F11| | | 3247 | |<--------------------| | | 3248 | | ACK F12| | | 3249 | |-------------------->| | | 3250 | | INVITE F13 | | 3251 | |--------------------------->| | 3252 | | 486 Busy Here F14 | | 3253 | |<---------------------------| | 3254 | | ACK F15 | | 3255 | |--------------------------->| | 3256 | | INVITE F16 | 3257 | |---------------------------------->| 3258 | | 180 Ringing F17 | 3259 | 180 F18 |<----------------------------------| 3260 |<---------------| 200 OK F19 | 3261 | 200 OK F20 |<----------------------------------| 3262 |<---------------| | 3263 | ACK F21 | | 3264 |--------------->| ACK F22 | 3265 | |---------------------------------->| 3266 | Both way RTP Established | 3267 |<==================================================>| 3268 | | BYE F23 | 3269 | BYE F24 |<----------------------------------| 3270 |<---------------| | 3271 | 200 OK F25 | | 3272 |--------------->| 200 OK F26 | 3273 | |---------------------------------->| 3274 | | | 3276 A call to a user will attempt to locate that user by calling 3277 locations from a list of contacts. The location to answer the call 3278 becomes the active set, no other sets may join the call. 3280 It is anticipated that the Find-me feature will be associated with 3281 individual users. The signaling for the implementation of Single 3282 Line Extension and Find-Me is the same, the difference may be in the 3283 provisioning of the service. 3285 Message Details 3287 F1 INVITE A -> Proxy 3289 INVITE sip:UserB@there.com SIP/2.0 3290 Via: SIP/2.0/UDP here.com:5060 3291 From: BigGuy ;tag=1234567 3292 To: LittleGuy 3293 Call-ID: 12345600@here.com 3294 CSeq: 1 INVITE 3295 Contact: 3296 Content-Type: application/sdp 3297 Content-Length: ... 3299 v=0 3300 o=UserA 2890844526 2890844526 IN IP4 client.here.com 3301 s=Session SDP 3302 c=IN IP4 100.101.102.103 3303 t= 0 0 3304 m=audio 49170 RTP/AVP 0 3305 a=rtpmap:0 PCMU/8000 3307 F2 INVITE Proxy -> B1 3309 INVITE sip:UserB@110.111.112.113 SIP/2.0 3310 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 3311 Via: SIP/2.0/UDP here.com:5060 3312 Record-Route: 3313 From: BigGuy ;tag=1234567 3314 To: LittleGuy 3315 Call-ID: 12345600@here.com 3316 CSeq: 1 INVITE 3317 Contact: 3318 Content-Type: application/sdp 3319 Content-Length: ... 3321 v=0 3322 o=UserA 2890844526 2890844526 IN IP4 client.here.com 3323 s=Session SDP 3324 c=IN IP4 100.101.102.103 3325 t= 0 0 3326 m=audio 49170 RTP/AVP 0 3327 a=rtpmap:0 PCMU/8000 3329 F3 (100 Trying) Proxy -> A 3331 SIP/2.0 100 Trying 3332 Via: SIP/2.0/UDP here.com:5060 3333 From: BigGuy ;tag=1234567 3334 To: LittleGuy 3335 Call-ID: 12345600@here.com 3336 CSeq: 1 INVITE 3337 Content-Length: 0 3339 F4 180 Ringing B1 -> Proxy 3341 SIP/2.0 180 Ringing 3342 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 3343 Via: SIP/2.0/UDP here.com:5060 3344 From: BigGuy ;tag=1234567 3345 To: LittleGuy ;tag=765432 3346 Call-ID: 12345600@here.com 3347 CSeq: 1 INVITE 3348 Content-Length: 0 3350 F5 180 Ringing Proxy -> A 3352 SIP/2.0 180 Ringing 3353 Via: SIP/2.0/UDP here.com:5060 3354 From: BigGuy ;tag=1234567 3355 To: LittleGuy ;tag=765432 3356 Call-ID: 12345600@here.com 3357 CSeq: 1 INVITE 3358 Content-Length: 0 3360 /* B1 rings for until a configurable timer in the Proxy expires. The 3361 Proxy then sends Cancel and proceeds down the list of routes. */ 3363 F6 CANCEL Proxy -> B1 3365 CANCEL sip:UserB@110.111.112.113 SIP/2.0 3366 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 3367 From: BigGuy 3368 To: LittleGuy 3369 Call-ID: 12345600@here.com 3370 CSeq: 1 CANCEL 3371 Content-Length: 0 3373 F7 200 OK B1 -> Proxy 3375 SIP/2.0 200 OK 3376 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 3377 From: BigGuy 3378 To: LittleGuy 3379 Call-ID: 12345600@here.com 3380 CSeq: 1 CANCEL 3381 Content-Length: 0 3383 F8 487 Request Terminated B1 -> Proxy 3385 SIP/2.0 487 Request Terminated 3386 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 3387 Via: SIP/2.0/UDP here.com:5060 3388 From: BigGuy ;tag=1234567 3389 To: LittleGuy ;tag=765432 3390 Call-ID: 12345600@here.com 3391 CSeq: 1 INVITE 3392 Content-Length: 0 3394 F9 ACK Proxy -> B1 3396 ACK sip:UserB@110.111.112.113 SIP/2.0 3397 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 3398 From: BigGuy ;tag=1234567 3399 To: LittleGuy ;tag=765432 3400 Call-ID: 12345600@here.com 3401 CSeq: 1 ACK 3402 Content-Length: 0 3404 F10 INVITE Proxy -> B2 3406 INVITE sip:UserB2@110.111.112.114 SIP/2.0 3407 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2 3408 Via: SIP/2.0/UDP here.com:5060 3409 Record-Route: 3410 From: BigGuy ;tag=1234567 3411 To: LittleGuy 3412 Call-ID: 12345600@here.com 3413 CSeq: 1 INVITE 3414 Contact: 3415 Content-Type: application/sdp 3416 Content-Length: ... 3418 v=0 3419 o=UserA 2890844526 2890844526 IN IP4 client.here.com 3420 s=Session SDP 3421 c=IN IP4 100.101.102.103 3422 t=0 0 3423 m=audio 49170 RTP/AVP 0 3424 a=rtpmap:0 PCMU/8000 3426 F11 480 Not Logged In B2 -> Proxy 3428 SIP/2.0 480 Not Logged In 3429 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2 3430 Via: SIP/2.0/UDP here.com:5060 3431 From: BigGuy ;tag=1234567 3432 To: LittleGuy ;tag=314756 3433 Call-ID: 12345600@here.com 3434 CSeq: 1 INVITE 3435 Content-Length: 0 3437 F12 ACK Proxy -> B2 3439 ACK sip:UserB2@110.111.112.114 SIP/2.0 3440 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2 3441 From: BigGuy ;tag=1234567 3442 To: LittleGuy ;tag=314756 3443 Call-ID: 12345600@here.com 3444 CSeq: 1 ACK 3445 Content-Length: 0 3447 F13 INVITE Proxy -> B3 3449 INVITE sip:UserB3@110.111.112.115 SIP/2.0 3450 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.3 3451 Via: SIP/2.0/UDP here.com:5060 3452 Record-Route: 3453 From: BigGuy ;tag=1234567 3454 To: LittleGuy 3455 Call-ID: 12345600@here.com 3456 CSeq: 1 INVITE 3457 Contact: 3458 Content-Type: application/sdp 3459 Content-Length: ... 3461 v=0 3462 o=UserA 2890844526 2890844526 IN IP4 client.here.com 3463 s=Session SDP 3464 c=IN IP4 100.101.102.103 3465 t=0 0 3466 m=audio 49170 RTP/AVP 0 3467 a=rtpmap:0 PCMU/8000 3469 F14 486 Busy Here B3 -> Proxy 3471 SIP/2.0 486 Busy Here 3472 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.3 3473 From: BigGuy ;tag=1234567 3474 To: LittleGuy ;tag=7654321 3475 Call-ID: 12345600@here.com 3476 CSeq: 1 INVITE 3477 Content-Length: 0 3479 F15 ACK Proxy -> B3 3481 ACK sip:UserB3@110.111.112.115 SIP/2.0 3482 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.3 3483 From: BigGuy ;tag=1234567 3484 To: LittleGuy ;tag=7654321 3485 Call-ID: 12345600@here.com 3486 CSeq: 1 ACK 3487 Content-Length: 0 3489 F16 INVITE Proxy -> B4 3491 INVITE sip:UserB4@110.111.112.116 SIP/2.0 3492 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.4 3493 Via: SIP/2.0/UDP here.com:5060 3494 Record-Route: 3495 From: BigGuy ;tag=1234567 3496 To: LittleGuy 3497 Call-ID: 12345600@here.com 3498 CSeq: 1 INVITE 3499 Contact: 3500 Content-Type: application/sdp 3501 Content-Length: ... 3503 v=0 3504 o=UserA 2890844526 2890844526 IN IP4 client.here.com 3505 s=Session SDP 3506 c=IN IP4 100.101.102.103 3507 t=0 0 3508 m=audio 49170 RTP/AVP 0 3509 a=rtpmap:0 PCMU/8000 3511 F17 180 Ringing B4 -> Proxy 3513 SIP/2.0 180 Ringing 3514 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.4 3515 Via: SIP/2.0/UDP here.com:5060 3516 From: BigGuy ;tag=1234567 3517 To: LittleGuy ;tag=7137136 3518 Call-ID: 12345600@here.com 3519 CSeq: 1 INVITE 3520 Content-Length: 0 3522 F18 180 Ringing B4 -> Proxy 3524 SIP/2.0 180 Ringing 3525 Via: SIP/2.0/UDP here.com:5060 3526 From: BigGuy ;tag=1234567 3527 To: LittleGuy ;tag=7137136 3528 Call-ID: 12345600@here.com 3529 CSeq: 1 INVITE 3530 Content-Length: 0 3532 F19 200 OK B4 -> Proxy 3534 SIP/2.0 200 OK 3535 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.4 3536 Via: SIP/2.0/UDP here.com:5060 3537 Record-Route: 3538 From: BigGuy ;tag=1234567 3539 To: LittleGuy ;tag=7137136 3540 Call-ID: 12345600@here.com 3541 CSeq: 1 INVITE 3542 Contact: 3543 Content-Type: application/sdp 3544 Content-Length: ... 3546 v=0 3547 o=UserB 2890844527 2890844527 IN IP4 client4.there.com 3548 s=Session SDP 3549 c=IN IP4 110.111.112.116 3550 t=0 0 3551 m=audio 3456 RTP/AVP 0 3552 a=rtpmap:0 PCMU/8000 3554 F20 200 OK Proxy -> A 3555 SIP/2.0 200 OK 3556 Via: SIP/2.0/UDP here.com:5060 3557 Record-Route: 3558 From: BigGuy ;tag=1234567 3559 To: LittleGuy ;tag=7137136 3560 Call-ID: 12345600@here.com 3561 CSeq: 1 INVITE 3562 Contact: 3563 Content-Type: application/sdp 3564 Content-Length: ... 3566 v=0 3567 o=UserB 2890844527 2890844527 IN IP4 client4.there.com 3568 s=Session SDP 3569 c=IN IP4 110.111.112.116 3570 t=0 0 3571 m=audio 3456 RTP/AVP 0 3572 a=rtpmap:0 PCMU/8000 3574 F21 ACK A -> Proxy 3576 ACK sip:UserB@there.com SIP/2.0 3577 Via: SIP/2.0/UDP here.com:5060 3578 Route: 3579 From: BigGuy ;tag=1234567 3580 To: LittleGuy ;tag=7137136 3581 Call-ID: 12345600@here.com 3582 CSeq: 1 ACK 3583 Content-Length: 0 3585 F22 ACK Proxy -> B4 3587 ACK sip:UserB4@110.111.112.116 SIP/2.0 3588 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 3589 Via: SIP/2.0/UDP here.com:5060 3590 From: BigGuy ;tag=1234567 3591 To: LittleGuy ;tag=7137136 3592 Call-ID: 12345600@here.com 3593 CSeq: 1 ACK 3594 Content-Length: 0 3596 /* RTP streams are established between A and B4*/ 3598 /* User B4 Hangs Up with User A. */ 3600 F23 BYE B4 -> Proxy 3602 BYE sip:UserA@here.com SIP/2.0 3603 Via: SIP/2.0/UDP there.com:5060 3604 Route: 3605 From: LittleGuy ;tag=7137136 3606 To: BigGuy ;tag=1234567 3607 Call-ID: 12345600@here.com 3608 CSeq: 1 BYE 3609 Content-Length: 0 3611 F24 BYE Proxy -> A 3613 BYE sip:UserA@100.101.102.103 SIP/2.0 3614 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 3615 Via: SIP/2.0/UDP there.com:5060 3616 From: LittleGuy ;tag=7137136 3617 To: BigGuy ;tag=1234567 3618 Call-ID: 12345600@here.com 3619 CSeq: 1 BYE 3620 Content-Length: 0 3622 F25 200 OK A -> Proxy 3624 SIP/2.0 200 OK 3625 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 3626 Via: SIP/2.0/UDP there.com:5060 3627 From: LittleGuy ;tag=7137136 3628 To: BigGuy ;tag=1234567 3629 Call-ID: 12345600@here.com 3630 CSeq: 1 BYE 3631 Content-Length: 0 3633 F26 200 OK Proxy -> B4 3635 SIP/2.0 200 OK 3636 Via: SIP/2.0/UDP there.com:5060 3637 From: LittleGuy ;tag=7137136 3638 To: BigGuy ;tag=1234567 3639 Call-ID: 12345600@here.com 3640 CSeq: 1 BYE 3641 Content-Length: 0 3643 2.12 3644 Call Management (Incoming Call Screening) 3646 User A Proxy User B 3647 | | | 3648 | INVITE F1 | | 3649 |------------------------------>| 3650 | 305 Use Proxy F2 | 3651 |<------------------------------| 3652 | ACK F3 | | 3653 |------------------------------>| 3654 | INVITE F4 | | 3655 |--------------->| | 3656 | 407 Proxy Authorization F5 | 3657 |<---------------| | 3658 | ACK F6 | | 3659 |--------------->| | 3660 | INVITE F7 | | 3661 |--------------->| | 3662 | 403 Screening Failure (Terminating) F8 3663 |<---------------| | 3664 | ACK F9 | | 3665 |--------------->| | 3666 | | | 3668 User B has an incoming call screening list, User A is included on the 3669 list of addresses User B will not accept calls from. User A attempts 3670 to call user B. Messages F1, F2, and F3 are included to show that 3671 User B does not accept INVITEs that have not been screened by the 3672 proxy. 3674 Message Details 3676 F1 INVITE A -> B 3678 INVITE sip:UserB@there.com SIP/2.0 3679 Via: SIP/2.0/UDP here.com:5060 3680 From: BigGuy ;tag=1234567 3681 To: LittleGuy 3682 Call-ID: 12345600@here.com 3683 CSeq: 1 INVITE 3684 Contact: 3685 Content-Type: application/sdp 3686 Content-Length: ... 3688 v=0 3689 o=UserA 2890844526 2890844526 IN IP4 client.here.com 3690 s=Session SDP 3691 c=IN IP4 100.101.102.103 3692 t=3034423619 0 3693 m=audio 49170 RTP/AVP 0 3694 a=rtpmap:0 PCMU/8000 3696 /* User B only accepts INVITEs that have been screened by the proxy 3697 */ 3699 F2 305 Use Proxy B -> A 3701 SIP/2.0 305 Use Proxy 3702 Via: SIP/2.0/UDP here.com:5060 3703 From: BigGuy ;tag=1234567 3704 To: LittleGuy ;tag=342123 3705 Call-ID: 12345600@here.com 3706 CSeq: 1 INVITE 3707 Contact: 3708 Content-Length: 0 3710 F3 ACK A -> B 3712 ACK sip:UserB@there.com SIP/2.0 3713 Via: SIP/2.0/UDP here.com:5060 3714 From: BigGuy ;tag=1234567 3715 To: LittleGuy ;tag=342123 3716 Call-ID: 12345600@here.com 3717 CSeq: 1 ACK 3718 Content-Length: 0 3720 /* A retries the call through the proxy */ 3722 F4 INVITE A -> Proxy 1 3724 INVITE sip:UserB@there.com SIP/2.0 3725 Via: SIP/2.0/UDP here.com:5060 3726 From: BigGuy ;tag=1234567 3727 To: LittleGuy 3728 Call-ID: 12345600@here.com 3729 CSeq: 2 INVITE 3730 Contact: 3731 Content-Type: application/sdp 3732 Content-Length: ... 3734 v=0 3735 o=UserA 2890844526 2890844526 IN IP4 client.here.com 3736 s=Session SDP 3737 c=IN IP4 100.101.102.103 3738 t=3034423619 0 3739 m=audio 49170 RTP/AVP 0 3740 a=rtpmap:0 PCMU/8000 3741 /* Proxy 1 challenges User A for authentication */ 3743 F5 407 Proxy Authorization Required Proxy 1 -> A 3745 SIP/2.0 407 Proxy Authorization Required 3746 Via: SIP/2.0/UDP here.com:5060 3747 From: BigGuy ;tag=1234567 3748 To: LittleGuy ;tag=7886765 3749 Call-ID: 12345600@here.com 3750 CSeq: 2 INVITE 3751 Proxy-Authenticate: Digest realm="MCI WorldCom SIP", 3752 domain="sip:ss1.wcom.com", nonce="ea9c8e88df84f1cec4341ae6cbe5a359", 3753 opaque="", stale=FALSE, algorithm=MD5 3754 Content-Length: 0 3756 F6 ACK A -> Proxy 1 3758 ACK sip:UserB@there.com SIP/2.0 3759 Via: SIP/2.0/UDP here.com:5060 3760 From: BigGuy ;tag=1234567 3761 To: LittleGuy ;tag=7886765 3762 Call-ID: 12345600@here.com 3763 CSeq: 2 ACK 3764 Content-Length: 0 3766 /* User A responds by sending an INVITE with authentication 3767 credentials in it. */ 3769 F7 INVITE A -> Proxy 1 3771 INVITE sip:UserB@there.com SIP/2.0 3772 Via: SIP/2.0/UDP here.com:5060 3773 From: BigGuy ;tag=1234567 3774 To: LittleGuy 3775 Call-ID: 12345600@here.com 3776 CSeq: 3 INVITE 3777 Contact: 3778 Proxy-Authorization: DIGEST username="UserA", 3779 realm="MCI WorldCom SIP", nonce="ae9137be1c87d175c2dd63302a0d6e0a", 3780 opaque="", uri="sip:ss1.wcom.com", 3781 response="bbaec39f943bdcb3620d90afc548a45c" 3782 Content-Type: application/sdp 3783 Content-Length: ... 3785 v=0 3786 o=UserA 2890844526 2890844526 IN IP4 client.here.com 3787 s=Session SDP 3788 c=IN IP4 100.101.102.103 3789 t=3034423619 0 3790 m=audio 49170 RTP/AVP 0 3791 a=rtpmap:0 PCMU/8000 3793 F8 403 Screening Failure (Terminating) Proxy 1 -> A 3795 SIP/2.0 403 Screening Failure (Terminating) 3796 Via: SIP/2.0/UDP here.com:5060 3797 From: BigGuy ;tag=1234567 3798 To: LittleGuy ;tag=ffe254 3799 Call-ID: 12345600@here.com 3800 CSeq: 3 INVITE 3801 Content-Length: 0 3803 F9 ACK A -> Proxy 1 3805 ACK sip:UserB@there.com SIP/2.0 3806 Via: SIP/2.0/UDP here.com:5060 3807 From: BigGuy ;tag=1234567 3808 To: LittleGuy ;tag=ffe254 3809 Call-ID: 12345600@here.com 3810 CSeq: 3 ACK 3811 Content-Length: 0 3813 2.13 3814 Call Management (Outgoing Call Screening) 3816 User A Proxy User B 3817 | | | 3818 | INVITE F1 | | 3819 |--------------->| | 3820 | 407 Proxy Authorization F2 | 3821 |<---------------| | 3822 | ACK F3 | | 3823 |--------------->| | 3824 | INVITE F4 | | 3825 |--------------->| | 3826 | 403 Screening Failure (Originating) F5 3827 |<---------------| | 3828 | ACK F6 | | 3829 |--------------->| | 3830 | | | 3832 User A has an outgoing call screening list, User B is included on the 3833 list of addresses User A will not be able to place a call to. User A 3834 attempts to call user B. 3836 Message Details 3838 F1 INVITE A -> Proxy 1 3840 INVITE sip:UserB@there.com SIP/2.0 3841 Via: SIP/2.0/UDP here.com:5060 3842 From: BigGuy ;tag=1234567 3843 To: LittleGuy 3844 Call-ID: 12345600@here.com 3845 CSeq: 1 INVITE 3846 Contact: 3847 Content-Type: application/sdp 3848 Content-Length: ... 3850 v=0 3851 o=UserA 2890844526 2890844526 IN IP4 client.here.com 3852 s=Session SDP 3853 c=IN IP4 100.101.102.103 3854 t=3034423619 0 3855 m=audio 49170 RTP/AVP 0 3856 a=rtpmap:0 PCMU/8000 3858 /* Proxy 1 challenges User A for authentication */ 3860 F2 407 Proxy Authorization Required Proxy 1 -> A 3861 SIP/2.0 407 Proxy Authorization Required 3862 Via: SIP/2.0/UDP here.com:5060 3863 From: BigGuy ;tag=1234567 3864 To: LittleGuy ;tag=90210 3865 Call-ID: 12345600@here.com 3866 CSeq: 1 INVITE 3867 Proxy-Authenticate: Digest realm="MCI WorldCom SIP", 3868 domain="sip:ss1.wcom.com", nonce="ea9c8e88df84f1cec4341ae6cbe5a359", 3869 opaque="", stale=FALSE, algorithm=MD5 3870 Content-Length: 0 3872 F3 ACK A -> Proxy 1 3874 ACK sip:UserB@there.com SIP/2.0 3875 Via: SIP/2.0/UDP here.com:5060 3876 From: BigGuy ;tag=1234567 3877 To: LittleGuy ;tag=90210 3878 Call-ID: 12345600@here.com 3879 CSeq: 1 ACK 3880 Content-Length: 0 3882 /* User A responds be sending an INVITE with authentication 3883 credentials in it. */ 3885 F4 INVITE A -> Proxy 1 3887 INVITE sip:UserB@there.com SIP/2.0 3888 Via: SIP/2.0/UDP here.com:5060 3889 From: BigGuy ;tag=1234567 3890 To: LittleGuy 3891 Call-ID: 12345600@here.com 3892 CSeq: 2 INVITE 3893 Contact: 3894 Proxy-Authorization: DIGEST username="UserA", realm="MCI WorldCom 3895 SIP", nonce="cb360afc54bbaec39f943bd820d9a45c", opaque="", 3896 uri="sip:ss1.wcom.com", response="b9d2e5bcdec9f69ab2a9b44f270285a6" 3897 Content-Type: application/sdp 3898 Content-Length: ... 3900 v=0 3901 o=UserA 2890844526 2890844526 IN IP4 client.here.com 3902 s=Session SDP 3903 c=IN IP4 100.101.102.103 3904 t=3034423619 0 3905 m=audio 49170 RTP/AVP 0 3906 a=rtpmap:0 PCMU/8000 3908 F5 403 Screening Failure (Originating) Proxy 1 -> A 3909 SIP/2.0 403 Screening Failure (Originating) 3910 Via: SIP/2.0/UDP here.com:5060 3911 From: BigGuy ;tag=1234567 3912 To: LittleGuy ;tag=18017 3913 Call-ID: 12345600@here.com 3914 CSeq: 2 INVITE 3915 Content-Length: 0 3917 F6 ACK A -> Proxy 1 3919 ACK sip:UserB@there.com SIP/2.0 3920 Via: SIP/2.0/UDP here.com:5060 3921 From: BigGuy ;tag=1234567 3922 To: LittleGuy ;tag=18017 3923 Call-ID: 12345600@here.com 3924 CSeq: 2 ACK 3925 Content-Length: 0 3927 2.14 3928 Call Park 3930 User A User B Park Server 3931 | | | 3932 | INVITE F1 | | 3933 |------------->| | 3934 |180 Ringing F2| | 3935 |<-------------| | 3936 | 200 OK F3 | | 3937 |<-------------| | 3938 | ACK F4 | | 3939 |------------->| | 3940 | RTP Media | | 3941 |<============>| | 3942 | User B Parks Call | 3943 | | REFER Refer-To: A F5 3944 | |------------->| 3945 | | 202 F6 | 3946 | |<-------------| 3947 | INVITE F7 Replaces: B | 3948 |<----------------------------| 3949 | 200 OK F8 | 3950 |---------------------------->| 3951 | ACK F9 | 3952 |<----------------------------| 3953 | RTP Music | 3954 |<===========================>| 3955 | BYE F10 | | 3956 |------------->| NOTIFY F12 | 3957 | 200 OK F11 |<-------------| 3958 |<-------------| 200 OK F13 | 3959 | |------------->| 3960 | User B picks up the call | 3961 | | | 3962 | INVITE F14 | | 3963 |<-------------| | 3964 | 200 F15 | | 3965 |------------->| | 3966 | ACK F16 | | 3967 |<-------------| | 3968 | RTP Media | | 3969 |<============>| | 3970 | BYE F17 | 3971 |---------------------------->| 3972 | 200 OK F18 | 3973 |<----------------------------| 3974 | No more RTP Music | 3976 In this example, User A calls User B. User B then parks the call at 3977 the Park Server by sending a REFER to the Park Server. The server 3978 sends an INVITE to A which replaces the session between A and B. The 3979 call is accepted by A and causes A to send a BYE to B. User B 3980 receives notification of the successful park, and also receives the 3981 Call-ID in the application/sip body of the NOTIFY response. When 3982 User B wishes to retrieve the call, a new INVITE is sent to A which 3983 replaces the session with the Park Server. User A accepts the call 3984 and sends a BYE to the Park Server. If someone besides User B 3985 retrieves the call, then this becomes Call Park and Pickup. 3987 Note that this call is a special case of call transfer. 3989 Note also that this flow could also be used for Music on Hold. 3991 Message Details. 3993 F1 INVITE A -> B 3995 INVITE sip:UserB@there.com SIP/2.0 3996 Via: SIP/2.0/UDP there.com:5060 3997 From: BigGuy ;tag=1234567 3998 To: LittleGuy 3999 Call-ID: 12345601@here.com 4000 CSeq: 1 INVITE 4001 Contact: 4002 Content-Type: application/sdp 4003 Content-Length: ... 4005 v=0 4006 o=UserA 2890844526 2890844526 IN IP4 client.here.com 4007 s=Session SDP 4008 c=IN IP4 100.101.102.103 4009 t=3034423619 0 4010 m=audio 49170 RTP/AVP 0 4011 a=rtpmap:0 PCMU/8000 4013 F2 180 Ringing B -> A 4015 SIP/2.0 180 Ringing 4016 Via: SIP/2.0/UDP there.com:5060 4017 From: BigGuy ;tag=1234567 4018 To: LittleGuy ;tag=314159 4019 Call-ID: 12345601@here.com 4020 CSeq: 1 INVITE 4021 Content-Length: 0 4023 F3 200 OK B -> A 4024 SIP/2.0 200 OK 4025 Via: SIP/2.0/UDP there.com:5060 4026 From: BigGuy ;tag=1234567 4027 To: LittleGuy ;tag=314159 4028 Call-ID: 12345601@here.com 4029 CSeq: 1 INVITE 4030 Contact: 4031 Content-Type: application/sdp 4032 Content-Length: ... 4034 v=0 4035 o=UserB 2890844527 2890844527 IN IP4 client.there.com 4036 s=Session SDP 4037 c=IN IP4 110.111.112.113 4038 t=3034423619 0 4039 m=audio 3456 RTP/AVP 0 4040 a=rtpmap:0 PCMU/8000 4042 F4 ACK A -> B 4044 ACK sip:UserB@there.com SIP/2.0 4045 Via: SIP/2.0/UDP there.com:5060 4046 From: BigGuy ;tag=1234567 4047 To: LittleGuy ;tag=314159 4048 Call-ID: 12345601@here.com 4049 CSeq: 1 ACK 4050 Content-Length: 0 4052 /* User B REFERs Park Server to establish session with A which 4053 replaces the established session between A and B. Note that there is 4054 no session established between B and the Park Server. */ 4056 F5 REFER B -> Park Server 4058 REFER sip:park@server.com SIP/2.0 4059 Via: SIP/2.0/UDP there.com:5060 4060 From: LittleGuy ;tag=02134 4061 To: Park Server 4062 Call-ID: 4802029847@there.com 4063 CSeq: 1 REFER 4064 Refer-To: 4067 Referred-By: 4068 Contact: 4069 Content-Length: 0 4071 F6 202 Accepted Park Server -> B 4072 SIP/2.0 202 Accepted 4073 Via: SIP/2.0/UDP there.com:5060 4074 From: LittleGuy ;tag=02134 4075 To: Park Server ;tag=56323 4076 Call-ID: 4802029847@there.com 4077 CSeq: 1 REFER 4078 Content-Length: 0 4080 /* Park Server places call to User A to replace session between A and 4081 B */ 4083 F7 INVITE Park Server -> A 4085 INVITE sip:UserA@100.101.102.103 SIP/2.0 4086 Via: SIP/2.0/UDP server.com:5060 4087 From: ;tag=0111 4088 To: 4089 Call-ID: a5-75-34-12-76@server.com 4090 CSeq: 1 INVITE 4091 Referred-By: 4092 Contact: 4093 Replaces: 12345601@here.com;from-tag=314159;to-tag=1234567 4094 Accept-Contact: ;only=true 4095 Content-Type: application/sdp 4096 Content-Length: ... 4098 v=0 4099 o=ParkServer 2890844576 2890844576 IN IP4 Park.server.com 4100 s=Session SDP 4101 c=IN IP4 50.60.70.80 4102 t=3034423619 0 4103 m=audio 49170 RTP/AVP 0 4104 a=rtpmap:0 PCMU/8000 4106 F8 200 OK A-> Park Server 4108 SIP/2.0 200 OK 4109 Via: SIP/2.0/UDP server.com:5060 4110 From: ;tag=0111 4111 To: BigGuy ;tag=098594 4112 Call-ID: a5-75-34-12-76@server.com 4113 CSeq: 1 INVITE 4114 Contact: 4115 Content-Type: application/sdp 4116 Content-Length: ... 4118 v=0 4119 o=UserA 2890844526 2890844526 IN IP4 client.here.com 4120 s=Session SDP 4121 c=IN IP4 100.101.102.103 4122 t=3034423619 0 4123 m=audio 49170 RTP/AVP 0 4124 a=rtpmap:0 PCMU/8000 4125 a=recvonly 4127 F9 ACK Park Server -> A 4129 ACK sip:UserA@100.101.102.103 SIP/2.0 4130 Via: SIP/2.0/UDP server.com:5060 4131 From: ;tag=0111 4132 To: BigGuy ;tag=098594 4133 Call-ID: a5-75-34-12-76@server.com 4134 CSeq: 1 ACK 4135 Content-Length: 0 4137 F10 BYE A -> B 4139 ACK sip:UserB@there.com SIP/2.0 4140 Via: SIP/2.0/UDP there.com:5060 4141 From: BigGuy ;tag=1234567 4142 To: LittleGuy ;tag=314159 4143 Call-ID: 12345601@here.com 4144 CSeq: 2 BYE 4145 Content-Length: 0 4147 F11 200 OK B -> A 4149 SIP/2.0 200 OK 4150 Via: SIP/2.0/UDP there.com:5060 4151 From: BigGuy ;tag=1234567 4152 To: LittleGuy ;tag=314159 4153 Call-ID: 12345601@here.com 4154 CSeq: 2 BYE 4155 Content-Length: 0 4157 /* Park Server reports success back to B by returning all the SIP 4158 headers in 200 OK response */ 4160 F12 NOTIFY Park Server -> B 4162 NOTIFY sip:UserB@there.com SIP/2.0 4163 Via: SIP/2.0/UDP here.com:5060 4164 To: LittleGuy ;tag=02134 4165 From: Park Server ;tag=56323 4166 Call-ID: 4802029847@there.com 4167 CSeq: 1 NOTIFY 4168 Event: refer 4169 Content-Type: application/sip 4170 Content-Length: ... 4172 SIP/2.0 200 OK 4173 Via: SIP/2.0/UDP server.com:5060 4174 From: ;tag=0111 4175 To: BigGuy ;tag=098594 4176 Call-ID: a5-75-34-12-76@server.com 4177 CSeq: 1 INVITE 4178 Contact: 4180 F13 200 OK B -> Park Server 4182 SIP/2.0 200 OK 4183 Via: SIP/2.0/UDP here.com:5060 4184 To: LittleGuy ;tag=02134 4185 From: Park Server ;tag=56323 4186 Call-ID: 4802029847@there.com 4187 CSeq: 1 NOTIFY 4188 Content-Length: 0 4190 /* User A is now parked at the Park Server */ 4192 /* User B picks up the call by sending an INVITE to A which replaces 4193 the existing session with the Park/Park Server. Note that B knows 4194 the Call-ID of the existing session from the NOTIFY response. */ 4196 /* Another UA besides B can pickup the call as long as it can 4197 construct the appropriate Replaces header. */ 4199 F14 INVITE B -> A 4201 INVITE sip:UserA@there.com SIP/2.0 4202 Via: SIP/2.0/UDP here.com:5060 4203 From: LittleGuy ;tag=5893461 4204 To: BigGuy 4205 Call-ID: 6485356@here.com 4206 CSeq: 1 INVITE 4207 Contact: 4208 Replaces: a5-75-34-12-76@server.com;from-tag=098594;to-tag=0111 4209 Content-Type: application/sdp 4210 Content-Length: ... 4212 v=0 4213 o=UserB 2890844528 2890844528 IN IP4 client.there.com 4214 s=Session SDP 4215 c=IN IP4 110.111.112.113 4216 t=3034423619 0 4217 m=audio 3456 RTP/AVP 0 4218 a=rtpmap:0 PCMU/8000 4220 F15 200 OK A -> B 4222 SIP/2.0 200 OK 4223 Via: SIP/2.0/UDP here.com:5060 4224 From: LittleGuy ;tag=5893461 4225 To: BigGuy ;tag=222 4226 Call-ID: 6485356@here.com 4227 CSeq: 1 INVITE 4228 Contact: 4229 Content-Type: application/sdp 4230 Content-Length: ... 4232 v=0 4233 o=UserA 2890844527 2890844527 IN IP4 client.here.com 4234 s=Session SDP 4235 c=IN IP4 100.101.102.103 4236 t=3034423619 0 4237 m=audio 49170 RTP/AVP 0 4238 a=rtpmap:0 PCMU/8000 4240 F16 ACK B -> A 4242 ACK sip:UserA@there.com SIP/2.0 4243 Via: SIP/2.0/UDP here.com:5060 4244 From: LittleGuy ;tag=5893461 4245 To: BigGuy ;tag=222 4246 Call-ID: 6485356@here.com 4247 CSeq: 1 ACK 4248 Content-Length: 0 4250 /* A replaces the session to the Park Server with the new session and 4251 generates a BYE to disconnect the Park Server */ 4253 F17 BYE A -> Park Server 4255 BYE sip:park@server.com SIP/2.0 4256 Via: SIP/2.0/UDP here.com:5060 4257 From: BigGuy ;tag=098594 4258 To: ;tag=0111 4259 Call-ID: a5-75-34-12-76@server.com 4260 CSeq: 1 BYE 4261 Content-Length: 0 4262 F18 200 OK Park Server -> A 4264 SIP/2.0 200 OK 4265 Via: SIP/2.0/UDP here.com:5060 4266 From: BigGuy ;tag=098594 4267 To: ;tag=0111 4268 Call-ID: a5-75-34-12-76@server.com 4269 CSeq: 1 BYE 4270 Content-Length: 0 4272 2.15 4273 Call Pickup 4275 User A Proxy User B1 User B2 4276 | | | | 4277 | INVITE F1 | | | 4278 |--------------->| INVITE F2 | | 4279 |(100 Trying) F3 |------------->| | 4280 |<---------------|180 Ringing F4| | 4281 | 180 Ringing F5 |<-------------| | 4282 |<---------------| | | 4283 | | | REGISTER F6 | 4284 | |<---------------------------------| 4285 | | | 200 OK F7 | 4286 | |--------------------------------->| 4287 | | | INVITE F8 | 4288 | |--------------------------------->| 4289 | | | 180 Ringing F9 | 4290 | 180 Ringing F10|<---------------------------------| 4291 |<---------------| | 200 OK F11 | 4292 | |<---------------------------------| 4293 | 200 OK F12 | CANCEL F13 | | 4294 |<---------------|------------->| | 4295 | ACK F15 | 200 OK F14 | | 4296 |--------------->|<-------------| | 4297 | | | ACK F16 | 4298 | |--------------------------------->| 4299 | | 487 F17 | | 4300 | |<-------------| | 4301 | | ACK F18 | | 4302 | |------------->| | 4303 | Both way RTP Established | 4304 |<=================================================>| 4305 | BYE F19 | | | 4306 |--------------->| | BYE F20 | 4307 | |--------------------------------->| 4308 | | | 200 OK F21 | 4309 | 200 OK F22 |<---------------------------------| 4310 |<---------------| | | 4311 | | | | 4313 User B1 and B2 are part of a work group that can pick up each others 4314 calls. User A calls B1 who does not answer. User B2 wishes to pick 4315 up the call and sends a REGISTER with Expires:0 to the proxy which 4316 recognizes this as a call pickup not a register based on the Request- 4317 URI. The proxy server then forks the INVITE by sending it to B2 who 4318 answers. The proxy then cancels the B1 fork of the INVITE. 4320 Message Details 4321 F1 INVITE A -> Proxy 4323 INVITE sip:UserB@there.com SIP/2.0 4324 Via: SIP/2.0/UDP here.com:5060 4325 From: BigGuy ;tag=1234567 4326 To: LittleGuy 4327 Call-ID: 12345600@here.com 4328 CSeq: 1 INVITE 4329 Contact: 4330 Content-Type: application/sdp 4331 Content-Length: ... 4333 v=0 4334 o=UserA 2890844526 2890844526 IN IP4 client.here.com 4335 s=Session SDP 4336 c=IN IP4 100.101.102.103 4337 t=0 0 4338 m=audio 49170 RTP/AVP 0 4339 a=rtpmap:0 PCMU/8000 4341 F2 INVITE Proxy -> B1 4343 INVITE sip:UserB1@110.111.112.113 SIP/2.0 4344 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 4345 Via: SIP/2.0/UDP here.com:5060 4346 Record-Route: 4347 From: BigGuy ;tag=1234567 4348 To: LittleGuy 4349 Call-ID: 12345600@here.com 4350 CSeq: 1 INVITE 4351 Contact: 4352 Content-Type: application/sdp 4353 Content-Length: ... 4355 v=0 4356 o=UserA 2890844526 2890844526 IN IP4 client.here.com 4357 s=Session SDP 4358 c=IN IP4 100.101.102.103 4359 t=0 0 4360 m=audio 49170 RTP/AVP 0 4361 a=rtpmap:0 PCMU/8000 4363 F3 (100 Trying) Proxy -> A 4365 SIP/2.0 100 Trying 4366 Via: SIP/2.0/UDP here.com:5060 4367 From: BigGuy ;tag=1234567 4368 To: LittleGuy 4369 Call-ID: 12345600@here.com 4370 CSeq: 1 INVITE 4371 Content-Length: 0 4373 F4 180 Ringing B1 -> Proxy 4375 SIP/2.0 180 Ringing 4376 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 4377 Via: SIP/2.0/UDP here.com:5060 4378 From: BigGuy ;tag=1234567 4379 To: LittleGuy ;tag=3145678 4380 Call-ID: 12345600@here.com 4381 CSeq: 1 INVITE 4382 Content-Length: 0 4384 F5 180 Ringing Proxy -> A 4386 SIP/2.0 180 Ringing 4387 Via: SIP/2.0/UDP here.com:5060 4388 From: BigGuy ;tag=1234567 4389 To: LittleGuy ;tag=3145678 4390 Call-ID: 12345600@here.com 4391 CSeq: 1 INVITE 4392 Content-Length: 0 4394 /* User B2 decides to pick up the call */ 4396 F6 REGISTER B2 -> Proxy 4398 REGISTER sip:pickupgroup37.ss1.wcom.com SIP/2.0 4399 Via: SIP/2.0/UDP b2.there.com:5060 4400 From: LittleGuy ;tag=8675309 4401 To: LittleGuy 4402 Call-ID: 563456212@b2.there.com 4403 CSeq: 1 REGISTER 4404 Contact: 4405 Expires: 0 4406 Content-Length: 0 4408 F7 200 OK Proxy -> B2 4410 SIP/2.0 200 OK 4411 Via: SIP/2.0/UDP b2.there.com:5060 4412 From: LittleGuy ;tag=8675309 4413 To: LittleGuy ;tag=2913 4414 Call-ID: 563456212@b2.there.com 4415 CSeq: 1 REGISTER 4416 Contact: 4417 Expires: 0 4418 Content-Length: 0 4420 /* Proxy recognizes the REGISTER directed at pickgroup37.ss1.wcom.com 4421 as being a call pickup attempt for the pending INVITE to B1. The 4422 proxy then forks the INVITE and sends it to B2. */ 4424 F8 INVITE Proxy -> B2 4426 INVITE sip:UserB2@there.com SIP/2.0 4427 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2 4428 Via: SIP/2.0/UDP here.com:5060 4429 Record-Route: 4430 From: BigGuy ;tag=1234567 4431 To: LittleGuy 4432 Call-ID: 12345600@here.com 4433 CSeq: 1 INVITE 4434 Contact: 4435 Content-Type: application/sdp 4436 Content-Length: ... 4438 v=0 4439 o=UserA 2890844526 2890844526 IN IP4 client.here.com 4440 s=Session SDP 4441 c=IN IP4 100.101.102.103 4442 t=0 0 4443 m=audio 49170 RTP/AVP 0 4444 a=rtpmap:0 PCMU/8000 4446 F9 180 Ringing B2 -> Proxy 4448 SIP/2.0 180 Ringing 4449 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2 4450 Via: SIP/2.0/UDP here.com:5060 4451 From: BigGuy ;tag=1234567 4452 To: LittleGuy ;tag=765432 4453 Call-ID: 12345600@here.com 4454 CSeq: 1 INVITE 4455 Content-Length: 0 4457 F10 180 Proxy -> A 4459 SIP/2.0 180 Ringing 4460 Via: SIP/2.0/UDP here.com:5060 4461 From: BigGuy ;tag=1234567 4462 To: LittleGuy ;tag=765432 4463 Call-ID: 12345600@here.com 4464 CSeq: 1 INVITE 4465 Content-Length: 0 4467 F11 200 OK B2 -> Proxy 4469 SIP/2.0 200 OK 4470 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2 4471 Via: SIP/2.0/UDP here.com:5060 4472 Record-Route: 4473 From: BigGuy ;tag=1234567 4474 To: LittleGuy ;tag=765432 4475 Call-ID: 12345600@here.com 4476 CSeq: 1 INVITE 4477 Contact: 4478 Content-Type: application/sdp 4479 Content-Length: ... 4481 v=0 4482 o=UserB 2890844527 2890844527 IN IP4 client2.there.com 4483 s=Session SDP 4484 c=IN IP4 110.111.112.114 4485 t=0 0 4486 m=audio 3456 RTP/AVP 0 4487 a=rtpmap:0 PCMU/8000 4489 F12 200 OK Proxy -> A 4491 SIP/2.0 200 OK 4492 Via: SIP/2.0/UDP here.com:5060 4493 Record-Route: 4494 From: BigGuy ;tag=1234567 4495 To: LittleGuy ;tag=765432 4496 Call-ID: 12345600@here.com 4497 CSeq: 1 INVITE 4498 Contact: 4499 Content-Type: application/sdp 4500 Content-Length: ... 4502 v=0 4503 o=UserB 2890844527 2890844527 IN IP4 client2.there.com 4504 s=Session SDP 4505 c=IN IP4 110.111.112.114 4506 t=0 0 4507 m=audio 3456 RTP/AVP 0 4508 a=rtpmap:0 PCMU/8000 4510 /* The Proxy detects the answer by B2 and cancels the B1 branch */ 4512 F13 CANCEL Proxy -> B1 4513 CANCEL sip:UserB1@110.111.112.113 SIP/2.0 4514 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 4515 From: BigGuy 4516 To: LittleGuy 4517 Call-ID: 12345600@here.com 4518 CSeq: 1 CANCEL 4519 Content-Length: 0 4521 F14 200 OK B1 -> Proxy 4523 SIP/2.0 200 OK 4524 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 4525 From: BigGuy 4526 To: LittleGuy 4527 Call-ID: 12345600@here.com 4528 CSeq: 1 CANCEL 4529 Content-Length: 0 4531 F15 ACK A -> Proxy 4533 ACK sip:UserB2@there.com SIP/2.0 4534 Via: SIP/2.0/UDP here.com:5060 4535 Route: 4536 From: BigGuy ;tag=1234567 4537 To: LittleGuy ;tag=765432 4538 Call-ID: 12345600@here.com 4539 CSeq: 1 ACK 4540 Content-Length: 0 4542 F16 ACK Proxy -> B2 4544 ACK sip:UserB2@110.111.112.114 SIP/2.0 4545 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 4546 Via: SIP/2.0/UDP here.com:5060 4547 From: BigGuy 4548 To: LittleGuy ;tag=765432 4549 Call-ID: 12345600@here.com 4550 CSeq: 1 ACK 4551 Content-Length: 0 4553 F17 487 Request Terminated B1 -> Proxy 4555 SIP/2.0 487 Request Terminated 4556 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 4557 Via: SIP/2.0/UDP here.com:5060 4558 From: BigGuy ;tag=1234567 4559 To: LittleGuy ;tag=3145678 4560 Call-ID: 12345600@here.com 4561 CSeq: 1 INVITE 4562 Content-Length: 0 4564 F18 ACK Proxy -> B1 4566 ACK sip:UserB1@110.111.112.113 SIP/2.0 4567 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 4568 From: BigGuy ;tag=1234567 4569 To: LittleGuy ;tag=3145678 4570 Call-ID: 12345600@here.com 4571 CSeq: 1 ACK 4572 Content-Length: 0 4574 /* RTP streams are established between A and B2. User A Hangs Up 4575 with User B2. */ 4577 F19 BYE A -> Proxy 4579 BYE sip:UserB2@there.com SIP/2.0 4580 Via: SIP/2.0/UDP here.com:5060 4581 Route: 4582 From: BigGuy ;tag=1234567 4583 To: LittleGuy ;tag=765432 4584 Call-ID: 12345600@here.com 4585 CSeq: 2 BYE 4586 Content-Length: 0 4588 F20 BYE Proxy -> B2 4590 BYE sip:UserB2@there.com SIP/2.0 4591 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 4592 Via: SIP/2.0/UDP here.com:5060 4593 From: BigGuy ;tag=1234567 4594 To: LittleGuy ;tag=765432 4595 Call-ID: 12345600@here.com 4596 CSeq: 2 BYE 4597 Content-Length: 0 4599 F21 200 OK B2 -> Proxy 4601 SIP/2.0 200 OK 4602 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 4603 Via: SIP/2.0/UDP here.com:5060 4604 From: BigGuy ;tag=1234567 4605 To: LittleGuy ;tag=765432 4606 Call-ID: 12345600@here.com 4607 CSeq: 2 BYE 4608 Content-Length: 0 4610 F22 200 OK Proxy -> A 4612 SIP/2.0 200 OK 4613 Via: SIP/2.0/UDP here.com:5060 4614 From: BigGuy ;tag=1234567 4615 To: LittleGuy ;tag=765432 4616 Call-ID: 12345600@here.com 4617 CSeq: 2 BYE 4618 Content-Length: 0 4619 Acknowledgements 4621 The authors wish to thank the following individuals for their 4622 assistance and review of this call flows document: Rohan Mahey, 4623 Jonathan Rosenberg, Hemant Agrawal, Henry Sinnreich, Dean Willis, 4624 David Devanatham, Joe Pizzimenti, Matt Cannon, John Hearty, the 4625 whole MCI WorldCom IPOP Design team, Scott Orton, Greg Osterhout, Pat 4626 Sollee, Doug Weisenberg, Danny Mistry, Steve McKinnon, and Denise 4627 Ingram, Denise Caballero, Tom Redman, Ilya Slain, Pat Sollee, John 4628 Truetken, and others from MCI WorldCom, 3Com, Cisco, Lucent and 4629 Nortel. 4631 3 References 4633 [1] S. Bradner, "The Internet Standards Process -- Revision 3", BCP 4634 9, RFC 2026, October 1996. 4636 [2] M. Handley, H. Schulzrinne, E. Schooler, and J. Rosenberg, "SIP: 4637 Session Initiation Protocol", RFC 2543, March 1999. 4639 [3] A. Johnston, S. Donovan, R. Sparks, C. Cunningham, D. Willis, J. 4640 Rosenberg, and H. Schulzrinne, "SIP Call Flow Examples", Internet 4641 Draft, Internet Engineering Task Force, June 2001, Work in 4642 Progress. 4644 [4] R. Sparks, "The Refer Method", Internet Draft, 4645 Internet Engineering Task Force, October 2001, 4646 Work in Progress. 4648 [5] B. Biggs and R. Dean, "The SIP Replaces header," Internet Draft, 4649 Internet Engineering Task Force, July 2001, 4650 Work in Progress. 4652 [6] H. Schulzrinne and J. Rosenberg, "SIP Caller Preferences and 4653 Callee Capabilities," Internet Engineering Task Force, June 2001, 4654 Work in Progress. 4656 [7] J. Rosenberg, J. Peterson, H. Schulzrinne, and G. Camarillo, 4657 "Third Party Call Control in SIP," Internet Engineering Task 4658 Force, March 2001, Work in Progress. 4660 [8] J. Rosenberg and H. Schulzrinne, "An Offer/Answer Model with 4661 SDP," Internet Engineering Task Force, October 2001, Work in 4662 progress. 4664 4 Author's Addresses 4666 Alan Johnston Email: alan.johnston@wcom.com 4667 sip:alan.johnston@siptest.wcom.com 4669 Robert Sparks Email: rsparks@dynamicsoft.com 4671 Chris Cunningham Email: ccunningham@dynamicsoft.com 4673 Steve Donovan Email: sdonovan@dynamicsoft.com 4675 Kevin Summers Email: kevin.summers@sonusnet.com 4677 Copyright Notice 4679 "Copyright (C) The Internet Society 2001. All Rights Reserved. 4681 This document and translations of it may be copied and furnished to 4682 others, and derivative works that comment on or otherwise explain it 4683 or assist in its implementation may be prepared, copied, published 4684 and distributed, in whole or in part, without restriction of any 4685 kind, provided that the above copyright notice and this paragraph are 4686 included on all such copies and derivative works. However, this 4687 document itself may not be modified in any way, such as by removing 4688 the copyright notice or references to the Internet Society or other 4689 Internet organizations, except as needed for the purpose of 4690 developing Internet standards in which case the procedures for 4691 copyrights defined in the Internet Standards process must be 4692 followed, or as required to translate it into languages other than 4693 English. 4695 The limited permissions granted above are perpetual and will not be 4696 revoked by the Internet Society or its successors or assigns. 4698 This document and the information contained herein is provided on an 4699 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING 4700 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 4701 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 4702 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 4703 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.