idnits 2.17.1 draft-ietf-sipping-basic-call-flows-02.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: ---------------------------------------------------------------------------- == There is 1 instance of lines with non-ascii characters in the document. == No 'Intended status' indicated for this document; assuming Proposed Standard Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** 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 has examples using IPv4 documentation addresses according to RFC6890, but does not use any IPv6 documentation addresses. Maybe there should be IPv6 examples, too? Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 Copyright Line does not match the current year == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- 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.) -- The document date (April 2003) is 7681 days in the past. Is this intentional? -- 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: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) -- Missing reference section? '1' on line 3940 looks like a reference -- Missing reference section? '4' on line 97 looks like a reference Summary: 2 errors (**), 0 flaws (~~), 4 warnings (==), 6 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 SIPPING Working Group A. Johnston 3 Internet Draft WorldCom 4 Document: S. Donovan 5 draft-ietf-sipping-basic-call-flows-02.txt R. Sparks 6 Expires: October 2003 C. Cunningham 7 dynamicsoft 8 K. Summers 9 Sonus 10 April 2003 12 Session Initiation Protocol Basic Call Flow Examples 14 Status of this Memo 16 This document is an Internet-Draft and is in full conformance with 17 all provisions of Section 10 of RFC2026. 19 Internet-Drafts are working documents of the Internet Engineering 20 Task Force (IETF), its areas, and its working groups. Note that 21 other groups may also distribute working documents as Internet- 22 Drafts. 24 Internet-Drafts are draft documents valid for a maximum of six months 25 and may be updated, replaced, or obsoleted by other documents at any 26 time. It is inappropriate to use Internet-Drafts as reference 27 material or to cite them other than as "work in progress." 29 The list of current Internet-Drafts can be accessed at 30 http://www.ietf.org/ietf/1id-abstracts.txt 31 The list of Internet-Draft Shadow Directories can be accessed at 32 http://www.ietf.org/shadow.html. 34 Abstract 36 This informational document gives examples of Session Initiation 37 Protocol (SIP) call flows. Elements in these call flows include SIP 38 User Agents and Clients, SIP Proxy and Redirect Servers. Scenarios 39 include SIP Registration and SIP session establishment. Call flow 40 diagrams and message details are shown. 42 Conventions used in this document 44 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 45 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 46 document are to be interpreted as described in RFC-2119. 48 Table of Contents 50 1. Overview.......................................................2 51 1.1 General Assumptions........................................3 52 1.2 Legend for Message Flows...................................3 53 1.3 SIP Protocol Assumptions...................................3 54 2. SIP Registration...............................................5 55 2.1 Successful New Registration................................5 56 2.2 Update of Contact List.....................................7 57 2.3 Request for Current Contact List...........................9 58 2.4 Cancellation of Registration..............................11 59 2.5 Unsuccessful Registration.................................13 60 3. SIP Session Establishment.....................................15 61 3.1 Successful Session Establishment..........................15 62 3.2 Session Establishment Through Two Proxies.................18 63 3.3 Session with Multiple Proxy Authentication................29 64 3.4 Successful Session with Proxy Failure.....................40 65 3.5 Session Through a SIP ALG.................................49 66 3.6 Session via Redirect and Proxy Servers with SDP in ACK....57 67 3.7 Session with re-INVITE (IP Address Change)................64 68 3.8 Unsuccessful No Answer....................................70 69 3.9 Unsuccessful Busy.........................................78 70 3.10 Unsuccessful No Response from User Agent.................83 71 3.11 Unsuccessful Temporarily Unavailable.....................88 72 Security Considerations..........................................93 73 Normative References.............................................94 74 Informative References...........................................94 75 Acknowledgments..................................................94 76 Author's Addresses...............................................95 78 1. Overview 80 The call flows shown in this document were developed in the design of 81 a SIP IP communications network. They represent an example 82 minimum set of functionality. 84 It is the hope of the authors that this document will be useful for 85 SIP implementers, designers, and protocol researchers alike and will 86 help further the goal of a standard implementation of RFC 3261[1]. 87 These flows represent carefully checked and working group reviewed 88 scenarios of the most basic examples as a companion to the 89 specifications. 91 These call flows are based on the current version 2.0 of SIP in 92 RFC 3261[i] with SDP usage described in RFC 3264[ii]. Other RFCs also 93 comprise the SIP standard but are not used in this set of basic call 94 flows. 96 Call flow examples of SIP interworking with the PSTN through gateways 97 are contained in a companion document, RFC xxxx[4]. 99 1.1 General Assumptions 101 A number of architecture, network, and protocol assumptions underlie 102 the call flows in this document. Note that these assumptions are not 103 requirements. They are outlined in this section so that they may be 104 taken into consideration and to aid in the understanding of the call 105 flow examples. 107 The authentication of SIP User Agents in these example call flows is 108 performed using HTTP Digest as defined in [1] and [iii]. 110 Some Proxy Servers in these call flows insert Record-Route headers 111 into requests to ensure that they are in the signaling path for 112 future message exchanges. 114 These flows show TCP, TLS, and UDP for transport. See the discussion 115 in RFC 3261 for details on the transport issues for SIP. 117 1.2 Legend for Message Flows 119 Dashed lines (---) represent signaling messages that are mandatory to 120 the call scenario. These messages can be SIP or PSTN 121 signaling. The arrow indicates the direction of message flow. 123 Double dashed lines (===) represent media paths between network 124 elements. 126 Messages with parentheses around their name represent optional 127 messages. 129 Messages are identified in the Figures as F1, F2, etc. This 130 references the message details in the list that follows the Figure. 131 Comments in the message details are shown in the following form: 133 /* Comments. */ 135 1.3 SIP Protocol Assumptions 137 This document does not prescribe the flows precisely as they are 138 shown, but rather the flows illustrate the principles for best 139 practice. They are best practices usages (orderings, syntax, 140 selection of features for the purpose, handling of error) of SIP 141 methods, headers and parameters. IMPORTANT: The exact flows here 142 must not be copied as is by an implementer due to specific incorrect 143 characteristics that were introduced into the document for 144 convenience and are listed below. To sum up, the basic flows 145 represent well-reviewed examples of SIP usage, which are best common 146 practice according to IETF consensus. 148 For simplicity in reading and editing the document, there are a 149 number of differences between some of the examples and actual SIP 150 messages. For example, the HTTP Digest responses are not actual MD5 151 encodings. Call-IDs are often repeated, and CSeq counts often begin 152 at 1. Header fields are usually shown in the same order. Usually 153 only the minimum required header field set is shown, others that 154 would normally be present such as Accept, Supported, Allow, etc are 155 not shown. 157 Actors: 159 Element Display Name URI IP Address 160 ------- ------------ --- ---------- 162 User Agent Alice alice@atlanta.example.com 192.0.2.10 163 User Agent Bob bob@biloxi.example.com 192.0.2.201 164 User Agent bob@chicago.example.com 192.0.2.100 165 Proxy Server ss1.atlanta.example.com 192.0.2.111 166 Proxy/Registrar ss2.biloxi.example.com 192.0.2.222 167 Proxy Server ss3.chicago.example.com 192.0.2.233 168 ALG alg1.atlanta.example.com 192.0.2.128 170 2. SIP Registration 172 Registration binds a particular device Contact URI with a SIP user 173 Address of Record (AOR). 175 2.1 Successful New Registration 177 Bob SIP Server 178 | | 179 | REGISTER F1 | 180 |------------------------------>| 181 | 401 Unauthorized F2 | 182 |<------------------------------| 183 | REGISTER F3 | 184 |------------------------------>| 185 | 200 OK F4 | 186 |<------------------------------| 187 | | 189 Bob sends a SIP REGISTER request to the SIP server. The request 190 includes the user's contact list. This flow shows the use of HTTP 191 Digest for authentication using TLS transport. TLS transport is used 192 due to the lack of integrity protection in HTTP Digest and the danger 193 of registration hijacking without it, as described in RFC 3261 [1]. 194 The SIP server provides a challenge to Bob. Bob enters her/his valid 195 user ID and password. Bob's SIP client encrypts the user information 196 according to the challenge issued by the SIP server and sends the 197 response to the SIP server. The SIP server validates the user's 198 credentials. It registers the user in its contact database and 199 returns a response (200 OK) to Bob's SIP client. The response 200 includes the user's current contact list in Contact headers. The 201 format of the authentication shown is HTTP digest. It is assumed 202 that Bob has not previously registered with this Server. 204 Message Details 206 F1 REGISTER Bob -> SIP Server 208 REGISTER sips:ss2.biloxi.example.com SIP/2.0 209 Via: SIP/2.0/TLS client.biloxi.example.com:5061;branch=z9hG4bKnashds7 210 Max-Forwards: 70 211 From: Bob ;tag=a73kszlfl 212 To: Bob 213 Call-ID: 1j9FpLxk3uxtm8tn@biloxi.example.com 214 CSeq: 1 REGISTER 215 Contact: 216 Content-Length: 0 218 F2 401 Unauthorized SIP Server -> Bob 220 SIP/2.0 401 Unauthorized 221 Via: SIP/2.0/TLS client.biloxi.example.com:5061;branch=z9hG4bKnashds7 222 ;received=192.0.2.201 223 From: Bob ;tag=a73kszlfl 224 To: Bob ;tag=1410948204 225 Call-ID: 1j9FpLxk3uxtm8tn@biloxi.example.com 226 CSeq: 1 REGISTER 227 WWW-Authenticate: Digest realm="atlanta.example.com", qop="auth", 228 nonce="ea9c8e88df84f1cec4341ae6cbe5a359", 229 opaque="", stale=FALSE, algorithm=MD5 230 Content-Length: 0 232 F3 REGISTER Bob -> SIP Server 234 REGISTER sips:ss2.biloxi.example.com SIP/2.0 235 Via: SIP/2.0/TLS client.biloxi.example.com:5061;branch=z9hG4bKnashds7 236 Max-Forwards: 70 237 From: Bob ;tag=ja743ks76zlflH 238 To: Bob 239 Call-ID: 1j9FpLxk3uxtm8tn@biloxi.example.com 240 CSeq: 2 REGISTER 241 Contact: 242 Authorization: Digest username="bob", realm="atlanta.example.com" 243 nonce="ea9c8e88df84f1cec4341ae6cbe5a359", opaque="", 244 uri="sips:ss2.biloxi.example.com", 245 response="dfe56131d1958046689d83306477ecc" 246 Content-Length: 0 248 F4 200 OK SIP Server -> Bob 250 SIP/2.0 200 OK 251 Via: SIP/2.0/TLS client.biloxi.example.com:5061;branch=z9hG4bKnashds7 252 ;received=192.0.2.201 253 From: Bob ;tag=ja743ks76zlflH 254 To: Bob ;tag=37GkEhwl6 255 Call-ID: 1j9FpLxk3uxtm8tn@biloxi.example.com 256 CSeq: 2 REGISTER 257 Contact: ;expires=3600 258 Content-Length: 0 260 2.2 Update of Contact List 262 Bob SIP Server 263 | | 264 | REGISTER F1 | 265 |------------------------------>| 266 | 200 OK F2 | 267 |<------------------------------| 268 | | 270 Bob wishes to update the list of addresses where the SIP server 271 will redirect or forward INVITE requests. 273 Bob sends a SIP REGISTER request to the SIP server. Bob's 274 request includes an updated contact list. Since the user already has 275 authenticated with the server, the user supplies authentication 276 credentials with the request and is not challenged by the server. 277 The SIP server validates the user's credentials. It registers the 278 user in its contact database, updates the user's contact list, and 279 returns a response (200 OK) to Bob's SIP client. The response 280 includes the user's current contact list in Contact headers. 282 Message Details 284 F1 REGISTER Bob -> SIP Server 286 REGISTER sips:ss2.biloxi.example.com SIP/2.0 287 Via: SIP/2.0/TLS client.biloxi.example.com:5061;branch=z9hG4bKnashds7 288 Max-Forwards: 70 289 From: Bob ;tag=a73kszlfl 290 To: Bob 291 Call-ID: 1j9FpLxk3uxtm8tn@biloxi.example.com 292 CSeq: 1 REGISTER 293 Contact: mailto:bob@biloxi.example.com 294 Authorization: Digest username="bob", realm="atlanta.example.com", 295 qop="auth", nonce="1cec4341ae6cbe5a359ea9c8e88df84f", opaque="", 296 uri="sips:ss2.biloxi.example.com", 297 response="71ba27c64bd01de719686aa4590d5824" 298 Content-Length: 0 300 F2 200 OK SIP Server -> Bob 302 SIP/2.0 200 OK 303 Via: SIP/2.0/TLS client.biloxi.example.com:5061;branch=z9hG4bKnashds7 304 ;received=192.0.2.201 305 From: Bob ;tag=a73kszlfl 306 To: Bob ;tag=34095828jh 307 Call-ID: 1j9FpLxk3uxtm8tn@biloxi.example.com 308 CSeq: 1 REGISTER 309 Contact: ;expires=3600 310 Contact: ;expires=4294967295 311 Content-Length: 0 313 2.3 Request for Current Contact List 315 Bob SIP Server 316 | | 317 | REGISTER F1 | 318 |------------------------------>| 319 | 200 OK F2 | 320 |<------------------------------| 321 | | 323 Bob sends a register request to the Proxy Server containing no 324 Contact headers, indicating the user wishes to query the server for 325 the user's current contact list. Since the user already has 326 authenticated with the server, the user supplies authentication 327 credentials with the request and is not challenged by the server. The 328 SIP server validates the user's credentials. The server returns a 329 response (200 OK) which includes the user's current registration list 330 in Contact headers. 332 Message Details 334 F1 REGISTER Bob -> SIP Server 336 REGISTER sips:ss2.biloxi.example.com SIP/2.0 337 Via: SIP/2.0/TLS client.biloxi.example.com:5061;branch=z9hG4bKnashds7 338 Max-Forwards: 70 339 From: Bob ;tag=a73kszlfl 340 To: Bob 341 Call-ID: 1j9FpLxk3uxtm8tn@biloxi.example.com 342 CSeq: 1 REGISTER 343 Authorization: Digest username="bob", realm="atlanta.example.com", 344 nonce="df84f1cec4341ae6cbe5ap359a9c8e88", opaque="", 345 uri="sips:ss2.biloxi.example.com", 346 response="aa7ab4678258377c6f7d4be6087e2f60" 347 Content-Length: 0 349 F2 200 OK SIP Server -> Bob 351 SIP/2.0 200 OK 352 Via: SIP/2.0/TLS client.biloxi.example.com:5061;branch=z9hG4bKnashds7 353 ;received=192.0.2.201 354 From: Bob ;tag=a73kszlfl 355 To: Bob ;tag=jqoiweu75 356 Call-ID: 1j9FpLxk3uxtm8tn@biloxi.example.com 357 CSeq: 1 REGISTER 358 Contact: ;expires=3600 359 Contact: ;expires=4294967295 360 Content-Length: 0 362 2.4 Cancellation of Registration 364 Bob SIP Server 365 | | 366 | REGISTER F1 | 367 |------------------------------>| 368 | 200 OK F2 | 369 |<------------------------------| 370 | | 372 Bob wishes to cancel their registration with the SIP 373 server. Bob sends a SIP REGISTER request to the 374 SIP server. The request has an expiration period of 0 and applies to 375 all existing contact locations. Since the user already has 376 authenticated with the server, the user supplies authentication 377 credentials with the request and is not challenged by the server. 378 The SIP server validates the user's credentials. It clears the 379 user's contact list, and returns a response (200 OK) to Bob's SIP 380 client. 382 Message Details 384 F1 REGISTER Bob -> SIP Server 386 REGISTER sips:ss2.biloxi.example.com SIP/2.0 387 Via: SIP/2.0/TLS client.biloxi.example.com:5061;branch=z9hG4bKnashds7 388 Max-Forwards: 70 389 From: Bob ;tag=a73kszlfl 390 To: Bob 391 Call-ID: 1j9FpLxk3uxtm8tn@biloxi.example.com 392 CSeq: 1 REGISTER 393 Expires: 0 394 Contact: * 395 Authorization: Digest username="bob", realm="atlanta.example.com", 396 nonce="88df84f1cac4341aea9c8ee6cbe5a359", opaque="", 397 uri="sips:ss2.biloxi.example.com", 398 response="ff0437c51696f9a76244f0cf1dbabbea" 399 Content-Length: 0 401 F2 200 OK SIP Server -> Bob 403 SIP/2.0 200 OK 404 Via: SIP/2.0/TLS client.biloxi.example.com:5061;branch=z9hG4bKnashds7 405 ;received=192.0.2.201 406 From: Bob ;tag=a73kszlfl 407 To: Bob ;tag=1418nmdsrf 408 Call-ID: 1j9FpLxk3uxtm8tn@biloxi.example.com 409 CSeq: 1 REGISTER 410 Content-Length: 0 412 2.5 Unsuccessful Registration 414 Bob SIP Server 415 | | 416 | REGISTER F1 | 417 |------------------------------>| 418 | 401 Unauthorized F2 | 419 |<------------------------------| 420 | REGISTER F3 | 421 |------------------------------>| 422 | 401 Unauthorized F4 | 423 |<------------------------------| 424 | | 426 Bob sends a SIP REGISTER request to the SIP Server. The SIP 427 server provides a challenge to Bob. Bob enters her/his user ID 428 and password. Bob's SIP client encrypts the user information 429 according to the challenge issued by the SIP server and sends the 430 response to the SIP server. The SIP server attempts to validate the 431 user's credentials, but they are not valid (the user's password does 432 not match the password established for the user's account). The 433 server returns a response (401 Unauthorized) to Bob's SIP client. 435 Message Details 437 F1 REGISTER Bob -> SIP Server 439 REGISTER sips:ss2.biloxi.example.com SIP/2.0 440 Via: SIP/2.0/TLS client.biloxi.example.com:5061;branch=z9hG4bKnashds7 441 Max-Forwards: 70 442 From: Bob ;tag=a73kszlfl 443 To: Bob 444 Call-ID: 1j9FpLxk3uxtm8tn@biloxi.example.com 445 CSeq: 1 REGISTER 446 Contact: 447 Content-Length: 0 449 F2 Unauthorized SIP Server -> Bob 451 SIP/2.0 401 Unauthorized 452 Via: SIP/2.0/TLS client.biloxi.example.com:5061;branch=z9hG4bKnashds7 453 ;received=192.0.2.201 455 From: Bob ;tag=a73kszlfl 456 To: Bob ;tag=1410948204 457 Call-ID: 1j9FpLxk3uxtm8tn@biloxi.example.com 458 CSeq: 1 REGISTER 459 WWW-Authenticate: Digest realm="atlanta.example.com", qop="auth", 460 nonce="f1cec4341ae6ca9c8e88df84be55a359", 461 opaque="", stale=FALSE, algorithm=MD5 462 Content-Length: 0 464 F3 REGISTER Bob -> SIP Server 466 REGISTER sips:ss2.biloxi.example.com SIP/2.0 467 Via: SIP/2.0/TLS client.biloxi.example.com:5061;branch=z9hG4bKnashds7 468 Max-Forwards: 70 469 From: Bob ;tag=JueHGuidj28dfga 470 To: Bob 471 Call-ID: 1j9FpLxk3uxtm8tn@biloxi.example.com 472 CSeq: 2 REGISTER 473 Contact: 474 Authorization: Digest username="bob", realm="atlanta.example.com", 475 nonce="f1cec4341ae6ca9c8e88df84be55a359", opaque="", 476 uri="sips:ss2.biloxi.example.com", 477 response="61f8470ceb87d7ebf508220214ed438b" 478 Content-Length: 0 480 /* The response above encodes the incorrect password */ 482 F4 401 Unauthorized SIP Server -> Bob 484 SIP/2.0 401 Unauthorized 485 Via: SIP/2.0/TLS client.biloxi.example.com:5061;branch=z9hG4bKnashds7 486 ;received=192.0.2.201 487 From: Bob ;tag=JueHGuidj28dfga 488 To: Bob ;tag=1410948204 489 Call-ID: 1j9FpLxk3uxtm8tn@biloxi.example.com 490 CSeq: 2 REGISTER 491 WWW-Authenticate: Digest realm="atlanta.example.com", qop="auth", 492 nonce="84f1c1ae6cbe5ua9c8e88dfa3ecm3459", 493 opaque="", stale=FALSE, algorithm=MD5 494 Content-Length: 0 496 3. SIP Session Establishment 498 This section details session establishment between two SIP User 499 Agents (UAs): Alice and Bob. Alice (sip:alice@atlanta.example.com) 500 and Bob (sip:bob@biloxi.example.com) are assumed to be SIP phones or 501 SIP-enabled devices. The successful calls show the initial 502 signaling, the exchange of media information in the form of SDP 503 payloads, the establishment of the media session, then finally the 504 termination of the call. 506 HTTP Digest authentication is used by Proxy Servers to authenticate 507 the caller Alice. It is assumed that Bob has registered with Proxy 508 Server Proxy 2 as per Section 2 to be able to receive the calls via 509 the Proxy. 511 3.1 Successful Session Establishment 513 Alice Bob 514 | | 515 | INVITE F1 | 516 |----------------------->| 517 | 180 Ringing F2 | 518 |<-----------------------| 519 | | 520 | 200 OK F3 | 521 |<-----------------------| 522 | ACK F4 | 523 |----------------------->| 524 | Both Way RTP Media | 525 |<======================>| 526 | | 527 | BYE F5 | 528 |<-----------------------| 529 | 200 OK F6 | 530 |----------------------->| 531 | | 533 In this scenario, Alice completes a call to Bob directly. 535 Message Details 537 F1 INVITE Alice -> Bob 539 INVITE sip:bob@biloxi.example.com SIP/2.0 540 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 541 Max-Forwards: 70 542 From: Alice ;tag=9fxced76sl 543 To: Bob 544 Call-ID: 3848276298220188511@atlanta.example.com 545 CSeq: 1 INVITE 546 Contact: 547 Content-Type: application/sdp 548 Content-Length: 151 550 v=0 551 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 552 s=- 553 c=IN IP4 192.0.2.101 554 t=0 0 555 m=audio 49172 RTP/AVP 0 556 a=rtpmap:0 PCMU/8000 558 F2 180 Ringing Bob -> Alice 560 SIP/2.0 180 Ringing 561 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 562 ;received=192.0.2.101 563 From: Alice ;tag=9fxced76sl 564 To: Bob ;tag=8321234356 565 Call-ID: 3848276298220188511@atlanta.example.com 566 CSeq: 1 INVITE 567 Contact: 568 Content-Length: 0 570 F3 200 OK Bob -> Alice 572 SIP/2.0 200 OK 573 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 574 ;received=192.0.2.101 575 From: Alice ;tag=9fxced76sl 576 To: Bob ;tag=8321234356 577 Call-ID: 3848276298220188511@atlanta.example.com 578 CSeq: 1 INVITE 579 Contact: 580 Content-Type: application/sdp 581 Content-Length: 147 583 v=0 584 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com 585 s=- 586 c=IN IP4 192.0.2.201 587 t=0 0 588 m=audio 3456 RTP/AVP 0 589 a=rtpmap:0 PCMU/8000 591 F4 ACK Alice -> Bob 593 ACK sip:bob@biloxi.example.com SIP/2.0 594 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bd5 595 Max-Forwards: 70 596 From: Alice ;tag=9fxced76sl 597 To: Bob ;tag=8321234356 598 Call-ID: 3848276298220188511@atlanta.example.com 599 CSeq: 1 ACK 600 Content-Length: 0 602 /* RTP streams are established between Alice and Bob */ 604 /* Bob Hangs Up with Alice. Note that the CSeq is NOT 2, since 605 Alice and Bob maintain their own independent CSeq counts. 606 (The INVITE was request 1 generated by Alice, and the BYE is 607 request 1 generated by Bob) */ 609 F5 BYE Bob -> Alice 611 BYE sip:alice@client.atlanta.example.com SIP/2.0 612 Via: SIP/2.0/TCP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 613 Max-Forwards: 70 614 From: Bob ;tag=8321234356 615 To: Alice ;tag=9fxced76sl 616 Call-ID: 3848276298220188511@atlanta.example.com 617 CSeq: 1 BYE 618 Content-Length: 0 620 F6 200 OK Alice -> Bob 622 SIP/2.0 200 OK 623 Via: SIP/2.0/TCP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 624 ;received=192.0.2.201 625 From: Bob ;tag=8321234356 626 To: Alice ;tag=9fxced76sl 627 Call-ID: 3848276298220188511@atlanta.example.com 628 CSeq: 1 BYE 629 Content-Length: 0 631 3.2 Session Establishment Through Two Proxies 633 Alice Proxy 1 Proxy 2 Bob 634 | | | | 635 | INVITE F1 | | | 636 |--------------->| | | 637 | 407 F2 | | | 638 |<---------------| | | 639 | ACK F3 | | | 640 |--------------->| | | 641 | INVITE F4 | | | 642 |--------------->| INVITE F5 | | 643 | 100 F6 |--------------->| INVITE F7 | 644 |<---------------| 100 F8 |--------------->| 645 | |<---------------| | 646 | | | 180 F9 | 647 | | 180 F10 |<---------------| 648 | 180 F11 |<---------------| | 649 |<---------------| | 200 F12 | 650 | | 200 F13 |<---------------| 651 | 200 F14 |<---------------| | 652 |<---------------| | | 653 | ACK F15 | | | 654 |--------------->| ACK F16 | | 655 | |--------------->| ACK F17 | 656 | | |--------------->| 657 | Both Way RTP Media | 658 |<================================================>| 659 | | | BYE F18 | 660 | | BYE F19 |<---------------| 661 | BYE F20 |<---------------| | 662 |<---------------| | | 663 | 200 F21 | | | 664 |--------------->| 200 F22 | | 665 | |--------------->| 200 F23 | 666 | | |--------------->| 667 | | | | 669 In this scenario, Alice completes a call to Bob using two proxies 670 Proxy 1 and Proxy 2. The initial INVITE (F1) contains a pre-loaded 671 Route header with the address of Proxy 1 (Proxy 1 is configured as a 672 default outbound proxy for Alice). The request does not contain the 673 Authorization credentials Proxy 1 requires, so a 407 Proxy 674 Authorization response is sent containing the challenge information. 675 A new INVITE (F4) is then sent containing the correct credentials and 676 the call proceeds. The call terminates when Bob disconnects by 677 initiating a BYE message. 679 Proxy 1 inserts a Record-Route header into the INVITE message to 680 ensure that it is present in all subsequent message exchanges. Proxy 681 2 also inserts itself into the Record-Route header. The ACK (F15) 682 and BYE (F18) both have a Route header. 684 Message Details 686 F1 INVITE Alice -> Proxy 1 688 INVITE sip:bob@biloxi.example.com SIP/2.0 689 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74b43 690 Max-Forwards: 70 691 Route: 692 From: Alice ;tag=9fxced76sl 693 To: Bob 694 Call-ID: 3848276298220188511@atlanta.example.com 695 CSeq: 1 INVITE 696 Contact: 697 Content-Type: application/sdp 698 Content-Length: 151 700 v=0 701 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 702 s=- 703 c=IN IP4 192.0.2.101 704 t=0 0 705 m=audio 49172 RTP/AVP 0 706 a=rtpmap:0 PCMU/8000 708 /* Proxy 1 challenges Alice for authentication */ 710 F2 407 Proxy Authorization Required Proxy 1 -> Alice 712 SIP/2.0 407 Proxy Authorization Required 713 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74b43 714 ;received=192.0.2.101 715 From: Alice ;tag=9fxced76sl 716 To: Bob ;tag=3flal12sf 717 Call-ID: 3848276298220188511@atlanta.example.com 718 CSeq: 1 INVITE 719 Proxy-Authenticate: Digest realm="atlanta.example.com", qop="auth", 720 nonce="f84f1cec41e6cbe5aea9c8e88d359", 721 opaque="", stale=FALSE, algorithm=MD5 722 Content-Length: 0 723 F3 ACK Alice -> Proxy 1 725 ACK sip:bob@biloxi.example.com SIP/2.0 726 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74b43 727 Max-Forwards: 70 728 From: Alice ;tag=9fxced76sl 729 To: Bob ;tag=3flal12sf 730 Call-ID: 3848276298220188511@atlanta.example.com 731 CSeq: 1 ACK 732 Content-Length: 0 734 /* Alice responds be re-sending the INVITE with authentication 735 credentials in it. */ 737 F4 INVITE Alice -> Proxy 1 739 INVITE sip:bob@biloxi.example.com SIP/2.0 740 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 741 Max-Forwards: 70 742 Route: 743 From: Alice ;tag=9fxced76sl 744 To: Bob 745 Call-ID: 3848276298220188511@atlanta.example.com 746 CSeq: 2 INVITE 747 Contact: 748 Proxy-Authorization: Digest username="alice", 749 realm="atlanta.example.com", 750 nonce="wf84f1ceczx41ae6cbe5aea9c8e88d359", opaque="", 751 uri="sip:bob@biloxi.example.com", 752 response="42ce3cef44b22f50c6a6071bc8" 753 Content-Type: application/sdp 754 Content-Length: 151 756 v=0 757 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 758 s=- 759 c=IN IP4 192.0.2.101 760 t=0 0 761 m=audio 49172 RTP/AVP 0 762 a=rtpmap:0 PCMU/8000 764 /* Proxy 1 accepts the credentials and forwards the INVITE to Proxy 765 2. Client for Alice prepares to receive data on port 49172 from the 766 network. */ 768 F5 INVITE Proxy 1 -> Proxy 2 769 INVITE sip:bob@biloxi.example.com SIP/2.0 770 Via: SIP/2.0/TCP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 771 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 772 ;received=192.0.2.101 773 Max-Forwards: 69 774 Record-Route: 775 From: Alice ;tag=9fxced76sl 776 To: Bob 777 Call-ID: 3848276298220188511@atlanta.example.com 778 CSeq: 2 INVITE 779 Contact: 780 Content-Type: application/sdp 781 Content-Length: 151 783 v=0 784 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 785 s=- 786 c=IN IP4 192.0.2.101 787 t=0 0 788 m=audio 49172 RTP/AVP 0 789 a=rtpmap:0 PCMU/8000 791 F6 100 Trying Proxy 1 -> Alice 793 SIP/2.0 100 Trying 794 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 795 ;received=192.0.2.101 796 From: Alice ;tag=9fxced76sl 797 To: Bob 798 Call-ID: 3848276298220188511@atlanta.example.com 799 CSeq: 2 INVITE 800 Content-Length: 0 802 F7 INVITE Proxy 2 -> Bob 804 INVITE sip:bob@client.biloxi.example.com SIP/2.0 805 Via: SIP/2.0/TCP 806 ss2.biloxi.example.com:5060;branch=z9hG4bK721e418c4.1 807 Via: SIP/2.0/TCP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 808 ;received=192.0.2.111 809 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 810 ;received=192.0.2.101 811 Max-Forwards: 68 812 Record-Route: , 813 814 From: Alice ;tag=9fxced76sl 815 To: Bob 816 Call-ID: 3848276298220188511@atlanta.example.com 817 CSeq: 2 INVITE 818 Contact: 819 Content-Type: application/sdp 820 Content-Length: 151 822 v=0 823 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 824 s=- 825 c=IN IP4 192.0.2.101 826 t=0 0 827 m=audio 49172 RTP/AVP 0 828 a=rtpmap:0 PCMU/8000 830 F8 100 Trying Proxy 2 -> Proxy 1 832 SIP/2.0 100 Trying 833 Via: SIP/2.0/TCP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 834 ;received=192.0.2.111 835 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 836 ;received=192.0.2.101 837 From: Alice ;tag=9fxced76sl 838 To: Bob 839 Call-ID: 3848276298220188511@atlanta.example.com 840 CSeq: 2 INVITE 841 Content-Length: 0 843 F9 180 Ringing Bob -> Proxy 2 845 SIP/2.0 180 Ringing 846 Via: SIP/2.0/TCP 847 ss2.biloxi.example.com:5060;branch=z9hG4bK721e418c4.1 848 ;received=192.0.2.222 849 Via: SIP/2.0/TCP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 850 ;received=192.0.2.111 851 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 852 ;received=192.0.2.101 853 Record-Route: , 854 855 From: Alice ;tag=9fxced76sl 856 To: Bob ;tag=314159 857 Call-ID: 3848276298220188511@atlanta.example.com 858 Contact: 859 CSeq: 2 INVITE 860 Content-Length: 0 861 F10 180 Ringing Proxy 2 -> Proxy 1 863 SIP/2.0 180 Ringing 864 Via: SIP/2.0/TCP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 865 ;received=192.0.2.111 866 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 867 ;received=192.0.2.101 868 Record-Route: , 869 870 From: Alice ;tag=9fxced76sl 871 To: Bob ;tag=314159 872 Call-ID: 3848276298220188511@atlanta.example.com 873 Contact: 874 CSeq: 2 INVITE 875 Content-Length: 0 877 F11 180 Ringing Proxy 1 -> Alice 879 SIP/2.0 180 Ringing 880 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 881 ;received=192.0.2.101 882 Record-Route: , 883 884 From: Alice ;tag=9fxced76sl 885 To: Bob ;tag=314159 886 Call-ID: 3848276298220188511@atlanta.example.com 887 Contact: 888 CSeq: 2 INVITE 889 Content-Length: 0 891 F12 200 OK Bob -> Proxy 2 893 SIP/2.0 200 OK 894 Via: SIP/2.0/TCP 895 ss2.biloxi.example.com:5060;branch=z9hG4bK721e418c4.1 896 ;received=192.0.2.222 897 Via: SIP/2.0/TCP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 898 ;received=192.0.2.111 899 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 900 ;received=192.0.2.101 901 Record-Route: , 902 903 From: Alice ;tag=9fxced76sl 904 To: Bob ;tag=314159 905 Call-ID: 3848276298220188511@atlanta.example.com 906 CSeq: 2 INVITE 907 Contact: 908 Content-Type: application/sdp 909 Content-Length: 147 911 v=0 912 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com 913 s=- 914 c=IN IP4 192.0.2.201 915 t=0 0 916 m=audio 3456 RTP/AVP 0 917 a=rtpmap:0 PCMU/8000 919 F13 200 OK Proxy 2 -> Proxy 1 921 SIP/2.0 200 OK 922 Via: SIP/2.0/TCP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 923 ;received=192.0.2.111 924 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 925 ;received=192.0.2.101 926 Record-Route: , 927 928 From: Alice ;tag=9fxced76sl 929 To: Bob ;tag=314159 930 Call-ID: 3848276298220188511@atlanta.example.com 931 CSeq: 2 INVITE 932 Contact: 933 Content-Type: application/sdp 934 Content-Length: 147 936 v=0 937 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com 938 s=- 939 c=IN IP4 192.0.2.201 940 t=0 0 941 m=audio 3456 RTP/AVP 0 942 a=rtpmap:0 PCMU/8000 944 F14 200 OK Proxy 1 -> Alice 946 SIP/2.0 200 OK 947 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 948 ;received=192.0.2.101 949 Record-Route: , 950 951 From: Alice ;tag=9fxced76sl 952 To: Bob ;tag=314159 953 Call-ID: 3848276298220188511@atlanta.example.com 954 CSeq: 2 INVITE 955 Contact: 956 Content-Type: application/sdp 957 Content-Length: 147 959 v=0 960 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com 961 s=- 962 c=IN IP4 192.0.2.201 963 t=0 0 964 m=audio 3456 RTP/AVP 0 965 a=rtpmap:0 PCMU/8000 967 F15 ACK Alice -> Proxy 1 969 ACK sip:bob@client.biloxi.example.com SIP/2.0 970 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74b76 971 Max-Forwards: 70 972 Route: , 973 974 From: Alice ;tag=9fxced76sl 975 To: Bob ;tag=314159 976 Call-ID: 3848276298220188511@atlanta.example.com 977 CSeq: 2 ACK 978 Content-Length: 0 980 F16 ACK Proxy 1 -> Proxy 2 982 ACK sip:bob@client.biloxi.example.com SIP/2.0 983 Via: SIP/2.0/TCP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 984 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74b76 985 ;received=192.0.2.101 986 Max-Forwards: 69 987 Route: 988 From: Alice ;tag=9fxced76sl 989 To: Bob ;tag=314159 990 Call-ID: 3848276298220188511@atlanta.example.com 991 CSeq: 2 ACK 992 Content-Length: 0 994 F17 ACK Proxy 2 -> Bob 996 ACK sip:bob@client.biloxi.example.com SIP/2.0 997 Via: SIP/2.0/TCP 998 ss2.biloxi.example.com:5060;branch=z9hG4bK721e418c4.1 999 Via: SIP/2.0/TCP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 1000 ;received=192.0.2.111 1002 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74b76 1003 ;received=192.0.2.101 1004 Max-Forwards: 68 1005 From: Alice ;tag=9fxced76sl 1006 To: Bob ;tag=314159 1007 Call-ID: 3848276298220188511@atlanta.example.com 1008 CSeq: 2 ACK 1009 Content-Length: 0 1011 /* RTP streams are established between Alice and Bob */ 1013 /* Bob Hangs Up with Alice. */ 1015 /* Again, note that the CSeq is NOT 3. Alice and Bob maintain 1016 their own separate CSeq counts */ 1018 F18 BYE Bob -> Proxy 2 1020 BYE sip:alice@client.atlanta.example.com SIP/2.0 1021 Via: SIP/2.0/TCP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 1022 Max-Forwards: 70 1023 Route: , 1024 1025 From: Bob ;tag=314159 1026 To: Alice ;tag=9fxced76sl 1027 Call-ID: 3848276298220188511@atlanta.example.com 1028 CSeq: 1 BYE 1029 Content-Length: 0 1031 F19 BYE Proxy 2 -> Proxy 1 1033 BYE sip:alice@client.atlanta.example.com SIP/2.0 1034 Via: SIP/2.0/TCP 1035 ss2.biloxi.example.com:5060;branch=z9hG4bK721e418c4.1 1036 Via: SIP/2.0/TCP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 1037 ;received=192.0.2.201 1038 Max-Forwards: 69 1039 Route: 1040 From: Bob ;tag=314159 1041 To: Alice ;tag=9fxced76sl 1042 Call-ID: 3848276298220188511@atlanta.example.com 1043 CSeq: 1 BYE 1044 Content-Length: 0 1046 F20 BYE Proxy 1 -> Alice 1047 BYE sip:alice@client.atlanta.example.com SIP/2.0 1048 Via: SIP/2.0/TCP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 1049 Via: SIP/2.0/TCP 1050 ss2.biloxi.example.com:5060;branch=z9hG4bK721e418c4.1 1051 ;received=192.0.2.222 1052 Via: SIP/2.0/TCP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 1053 ;received=192.0.2.201 1054 Max-Forwards: 68 1055 From: Bob ;tag=314159 1056 To: Alice ;tag=9fxced76sl 1057 Call-ID: 3848276298220188511@atlanta.example.com 1058 CSeq: 1 BYE 1059 Content-Length: 0 1061 F21 200 OK Alice -> Proxy 1 1063 SIP/2.0 200 OK 1064 Via: SIP/2.0/TCP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 1065 ;received=192.0.2.111 1066 Via: SIP/2.0/TCP 1067 ss2.biloxi.example.com:5060;branch=z9hG4bK721e418c4.1 1068 ;received=192.0.2.222 1069 Via: SIP/2.0/TCP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 1070 ;received=192.0.2.201 1071 From: Bob ;tag=314159 1072 To: Alice ;tag=9fxced76sl 1073 Call-ID: 3848276298220188511@atlanta.example.com 1074 CSeq: 1 BYE 1075 Content-Length: 0 1077 F22 200 OK Proxy 1 -> Proxy 2 1079 SIP/2.0 200 OK 1080 Via: SIP/2.0/TCP 1081 ss2.biloxi.example.com:5060;branch=z9hG4bK721e418c4.1 1082 ;received=192.0.2.222 1083 Via: SIP/2.0/TCP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 1084 ;received=192.0.2.101 1085 From: Bob ;tag=314159 1086 To: Alice ;tag=9fxced76sl 1087 Call-ID: 3848276298220188511@atlanta.example.com 1088 CSeq: 1 BYE 1089 Content-Length: 0 1091 F23 200 OK Proxy 2 -> Bob 1092 SIP/2.0 200 OK 1093 Via: SIP/2.0/TCP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 1094 ;received=192.0.2.201 1095 From: Bob ;tag=314159 1096 To: Alice ;tag=9fxced76sl 1097 Call-ID: 3848276298220188511@atlanta.example.com 1098 CSeq: 1 BYE 1099 Content-Length: 0 1101 3.3 Session with Multiple Proxy Authentication 1103 Alice Proxy 1 Proxy 2 Bob 1104 | | | | 1105 | INVITE F1 | | | 1106 |----------->| | | 1107 | 407 Proxy Authorization Required F2 | 1108 |<-----------| | | 1109 | ACK F3 | | | 1110 |----------->| | | 1111 | INVITE F4 | | | 1112 |----------->| | | 1113 | 100 F5 | | | 1114 |<-----------| INVITE F6 | | 1115 | |---------->| | 1116 | | 407 Proxy Authorization Required F7 1117 | |<----------| | 1118 | | ACK F8 | | 1119 | |---------->| | 1120 | 407 Proxy Authorization Required F9 | 1121 |<-----------| | | 1122 | ACK F10 | | | 1123 |----------->| | | 1124 | INVITE F11| | | 1125 |----------->| | | 1126 | 100 F12 | | | 1127 |<-----------| INVITE F13| | 1128 | |---------->| | 1129 | | 100 F14 | | 1130 | |<----------| INVITE F15 | 1131 | | |------------>| 1132 | | | 200 OK F16 | 1133 | | 200 OK F17|<------------| 1134 | 200 OK F18 |<----------| | 1135 |<-----------| | | 1136 | ACK F19 | | | 1137 |----------->| ACK F20 | | 1138 | |---------->| ACK F21 | 1139 | | |------------>| 1140 | RTP Media Path | 1141 |<====================================>| 1143 In this scenario, Alice completes a call to Bob using two proxies 1144 Proxy 1 and Proxy 2. Alice has valid credentials in both domains. 1145 Since the initial INVITE (F1) does not contain the 1146 Authorization credentials Proxy 1 requires, so a 407 Proxy 1147 Authorization response is sent containing the challenge information. 1148 A new INVITE (F4) is then sent containing the correct credentials and 1149 the call proceeds after Proxy 2 challenges and receives valid 1150 credentials. The call terminates when Bob disconnects by 1151 initiating a BYE message. 1153 Proxy 1 inserts a Record-Route header into the INVITE message to 1154 ensure that it is present in all subsequent message exchanges. Proxy 1155 2 also inserts itself into the Record-Route header. 1157 Message Details 1159 F1 INVITE Alice -> Proxy 1 1161 INVITE sip:bob@biloxi.example.com SIP/2.0 1162 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74b03 1163 Max-Forwards: 70 1164 Route: 1165 From: Alice ;tag=9fxced76sl 1166 To: Bob 1167 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 1168 CSeq: 1 INVITE 1169 Contact: 1170 Content-Type: application/sdp 1171 Content-Length: 151 1173 v=0 1174 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 1175 s=- 1176 c=IN IP4 192.0.2.101 1177 t=0 0 1178 m=audio 49172 RTP/AVP 0 1179 a=rtpmap:0 PCMU/8000 1181 /* Proxy 1 challenges Alice for authentication */ 1183 F2 407 Proxy Authorization Required Proxy 1 -> Alice 1185 SIP/2.0 407 Proxy Authorization Required 1186 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74b03 1187 ;received=192.0.2.101 1188 From: Alice ;tag=9fxced76sl 1189 To: Bob ;tag=876321 1190 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 1191 CSeq: 1 INVITE 1192 Proxy-Authenticate: Digest realm="atlanta.example.com", qop="auth", 1193 nonce="wf84f1cczx41ae6cbeaea9ce88d359", 1194 opaque="", stale=FALSE, algorithm=MD5 1195 Content-Length: 0 1197 F3 ACK Alice -> Proxy 1 1199 ACK sip:bob@biloxi.example.com SIP/2.0 1200 Max-Forwards: 70 1201 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74b03 1202 From: Alice ;tag=9fxced76sl 1203 To: Bob ;tag=876321 1204 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 1205 CSeq: 1 ACK 1206 Content-Length: 0 1208 /* Alice responds be re-sending the INVITE with authentication 1209 credentials in it. The same Call-ID is used, so the CSeq is 1210 increased. */ 1212 F4 INVITE Alice -> Proxy 1 1214 INVITE sip:bob@biloxi.example.com SIP/2.0 1215 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74b21 1216 Max-Forwards: 70 1217 Route: 1218 From: Alice ;tag=9fxced76sl 1219 To: Bob 1220 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 1221 CSeq: 2 INVITE 1222 Contact: 1223 Proxy-Authorization: Digest username="alice", 1224 realm="atlanta.example.com", 1225 nonce="wf84f1ceczx41ae6cbe5aea9c8e88d359", opaque="", 1226 uri="sip:bob@biloxi.example.com", 1227 response="42ce3cef44b22f50c6a6071bc8" 1228 Content-Type: application/sdp 1229 Content-Length: 151 1231 v=0 1232 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 1233 s=- 1234 c=IN IP4 192.0.2.101 1235 t=0 0 1236 m=audio 49172 RTP/AVP 0 1237 a=rtpmap:0 PCMU/8000 1239 /* Proxy 1 accepts the credentials and forwards the INVITE to Proxy 1240 2. Client for Alice prepares to receive data on port 49172 from the 1241 network. */ 1243 F5 100 Trying Proxy 1 -> Alice 1245 SIP/2.0 100 Trying 1246 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74b21 1247 ;received=192.0.2.101 1248 From: Alice ;tag=9fxced76sl 1249 To: Bob 1250 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 1251 CSeq: 2 INVITE 1252 Content-Length: 0 1254 F6 INVITE Proxy 1 -> Proxy 2 1256 INVITE sip:bob@biloxi.example.com SIP/2.0 1257 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK230f2.1 1258 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74b21 1259 ;received=192.0.2.101 1260 Max-Forwards: 69 1261 Record-Route: 1262 From: Alice ;tag=9fxced76sl 1263 To: Bob 1264 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 1265 CSeq: 2 INVITE 1266 Contact: 1267 Content-Type: application/sdp 1268 Content-Length: 151 1270 v=0 1271 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 1272 s=- 1273 c=IN IP4 192.0.2.101 1274 t=0 0 1275 m=audio 49172 RTP/AVP 0 1276 a=rtpmap:0 PCMU/8000 1278 /* Proxy 2 challenges Alice for authentication */ 1280 F7 407 Proxy Authorization Required Proxy 2 -> Proxy 1 1282 SIP/2.0 407 Proxy Authorization Required 1283 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK230f2.1 1284 ;received=192.0.2.111 1285 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74b21 1286 ;received=192.0.2.101 1288 From: Alice ;tag=9fxced76sl 1289 To: Bob ;tag=838209 1290 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 1291 CSeq: 2 INVITE 1292 Proxy-Authenticate: Digest realm="biloxi.example.com", qop="auth", 1293 nonce="c1e22c41ae6cbe5ae983a9c8e88d359", 1294 opaque="", stale=FALSE, algorithm=MD5 1295 Content-Length: 0 1297 F8 ACK Proxy 1 -> Proxy 2 1299 ACK sip:bob@biloxi.example.com SIP/2.0 1300 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74b21 1301 Max-Forwards: 70 1302 From: Alice ;tag=9fxced76sl 1303 To: Bob ;tag=838209 1304 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 1305 CSeq: 2 ACK 1306 Content-Length: 0 1308 /* Proxy 1 forwards the challenge to Alice for authentication from 1309 Proxy 2 */ 1311 F9 407 Proxy Authorization Required Proxy 1 -> Alice 1313 SIP/2.0 407 Proxy Authorization Required 1314 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74b21 1315 ;received=192.0.2.101 1316 From: Alice ;tag=9fxced76sl 1317 To: Bob ;tag=838209 1318 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 1319 CSeq: 2 INVITE 1320 Proxy-Authenticate: Digest realm="biloxi.example.com", qop="auth", 1321 nonce="c1e22c41ae6cbe5ae983a9c8e88d359", 1322 opaque="", stale=FALSE, algorithm=MD5 1323 Content-Length: 0 1325 F10 ACK Alice -> Proxy 1 1327 ACK sip:bob@biloxi.example.com SIP/2.0 1328 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74b21 1329 Max-Forwards: 70 1330 From: Alice ;tag=9fxced76sl 1331 To: Bob ;tag=838209 1332 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 1333 CSeq: 2 ACK 1334 Proxy-Authorization: Digest username="alice", 1335 realm="atlanta.example.com", 1336 nonce="wf84f1ceczx41ae6cbe5aea9c8e88d359", opaque="", 1337 uri="sip:bob@biloxi.example.com", 1338 response="42ce3cef44b22f50c6a6071bc8" 1339 Content-Length: 0 1341 /* Alice responds be re-sending the INVITE with authentication 1342 credentials for Proxy 1 AND Proxy 2. */ 1344 F11 INVITE Alice -> Proxy 1 1346 INVITE sip:bob@biloxi.example.com SIP/2.0 1347 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 1348 Max-Forwards: 70 1349 From: Alice ;tag=9fxced76sl 1350 To: Bob 1351 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 1352 CSeq: 3 INVITE 1353 Contact: 1354 Proxy-Authorization: Digest username="alice", 1355 realm="atlanta.example.com", 1356 nonce="wf84f1ceczx41ae6cbe5aea9c8e88d359", opaque="", 1357 uri="sip:bob@biloxi.example.com", 1358 response="42ce3cef44b22f50c6a6071bc8" 1359 Proxy-Authorization: Digest username="alice", 1360 realm="biloxi.example.com", 1361 nonce="c1e22c41ae6cbe5ae983a9c8e88d359", opaque="", 1362 uri="sip:bob@biloxi.example.com", response="f44ab22f150c6a56071bce8" 1363 Content-Type: application/sdp 1364 Content-Length: 151 1366 v=0 1367 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 1368 s=- 1369 c=IN IP4 192.0.2.101 1370 t=0 0 1371 m=audio 49172 RTP/AVP 0 1372 a=rtpmap:0 PCMU/8000 1374 /* Proxy 1 finds its credentials and authorizes Alice, forwarding the 1375 INVITE to Proxy. */ 1377 F12 100 Trying Proxy 1 -> Alice 1379 SIP/2.0 100 Trying 1380 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 1381 ;received=192.0.2.101 1382 From: Alice ;tag=9fxced76sl 1383 To: Bob 1384 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 1385 CSeq: 3 INVITE 1386 Content-Length: 0 1388 F13 INVITE Proxy 1 -> Proxy 2 1390 INVITE sip:bob@biloxi.example.com SIP/2.0 1391 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK230f2.1 1392 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 1393 ;received=192.0.2.101 1394 Max-Forwards: 69 1395 Record-Route: 1396 From: Alice ;tag=9fxced76sl 1397 To: Bob 1398 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 1399 CSeq: 3 INVITE 1400 Contact: 1401 Proxy-Authorization: Digest username="alice", 1402 realm="biloxi.example.com", 1403 nonce="c1e22c41ae6cbe5ae983a9c8e88d359", opaque="", 1404 uri="sip:bob@biloxi.example.com", response="f44ab22f150c6a56071bce8" 1405 Content-Type: application/sdp 1406 Content-Length: 151 1408 v=0 1409 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 1410 s=- 1411 c=IN IP4 192.0.2.101 1412 t=0 0 1413 m=audio 49172 RTP/AVP 0 1414 a=rtpmap:0 PCMU/8000 1416 /* Proxy 2 finds its credentials and authorizes Alice, forwarding the 1417 INVITE to Bob. */ 1419 F14 100 Trying Proxy 2 -> Proxy 1 1421 SIP/2.0 100 Trying 1422 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK230f2.1 1423 ;received=192.0.2.111 1424 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 1425 ;received=192.0.2.101 1426 From: Alice ;tag=9fxced76sl 1427 To: Bob 1428 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 1429 CSeq: 3 INVITE 1430 Content-Length: 0 1432 F15 INVITE Proxy 2 -> Bob 1434 INVITE sip:bob@client.biloxi.example.com SIP/2.0 1435 Via: SIP/2.0/UDP ss2.biloxi.example.com:5060;branch=z9hG4bK31972.1 1436 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK230f2.1 1437 ;received=192.0.2.111 1438 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 1439 ;received=192.0.2.101 1440 Max-Forwards: 68 1441 Record-Route: , 1442 1443 From: Alice ;tag=9fxced76sl 1444 To: Bob 1445 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 1446 CSeq: 3 INVITE 1447 Contact: 1448 Content-Type: application/sdp 1449 Content-Length: 151 1451 v=0 1452 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 1453 s=- 1454 c=IN IP4 192.0.2.101 1455 t=0 0 1456 m=audio 49172 RTP/AVP 0 1457 a=rtpmap:0 PCMU/8000 1459 /* Bob answers the call immediately */ 1461 F16 200 OK Bob -> Proxy 2 1463 SIP/2.0 200 OK 1464 Via: SIP/2.0/UDP ss2.biloxi.example.com:5060;branch=z9hG4bK31972.1 1465 ;received=192.0.2.222 1466 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK230f2.1 1467 ;received=192.0.2.111 1468 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 1469 ;received=192.0.2.101 1470 Record-Route: , 1471 1472 From: Alice ;tag=9fxced76sl 1473 To: Bob ;tag=9103874 1474 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 1475 CSeq: 3 INVITE 1476 Contact: 1477 Content-Type: application/sdp 1478 Content-Length: 147 1480 v=0 1481 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com 1482 s=- 1483 c=IN IP4 192.0.2.201 1484 t=0 0 1485 m=audio 3456 RTP/AVP 0 1486 a=rtpmap:0 PCMU/8000 1488 F17 200 OK Proxy 2 -> Proxy 1 1490 SIP/2.0 200 OK 1491 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK230f2.1 1492 ;received=192.0.2.111 1493 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 1494 ;received=192.0.2.101 1495 Record-Route: , 1496 1497 From: Alice ;tag=9fxced76sl 1498 To: Bob ;tag=9103874 1499 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 1500 CSeq: 3 INVITE 1501 Contact: 1502 Content-Type: application/sdp 1503 Content-Length: 147 1505 v=0 1506 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com 1507 s=- 1508 c=IN IP4 192.0.2.201 1509 t=0 0 1510 m=audio 3456 RTP/AVP 0 1511 a=rtpmap:0 PCMU/8000 1513 F18 200 OK Proxy 1 -> Alice 1515 SIP/2.0 200 OK 1516 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 1517 ;received=192.0.2.101 1518 Record-Route: , 1519 1520 From: Alice ;tag=9fxced76sl 1521 To: Bob ;tag=9103874 1522 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 1523 CSeq: 3 INVITE 1524 Contact: 1525 Content-Type: application/sdp 1526 Content-Length: 147 1528 v=0 1529 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com 1530 s=- 1531 c=IN IP4 192.0.2.201 1532 t=0 0 1533 m=audio 3456 RTP/AVP 0 1534 a=rtpmap:0 PCMU/8000 1536 F19 ACK Alice -> Proxy 1 1538 ACK sip:bob@client.biloxi.example.com SIP/2.0 1539 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74b44 1540 Max-Forwards: 70 1541 Route: , 1542 1543 From: Alice ;tag=9fxced76sl 1544 To: Bob ;tag=9103874 1545 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 1546 CSeq: 3 ACK 1547 Proxy-Authorization: Digest username="alice", 1548 realm="atlanta.example.com", 1549 nonce="wf84f1ceczx41ae6cbe5aea9c8e88d359", opaque="", 1550 uri="sip:bob@biloxi.example.com", 1551 response="42ce3cef44b22f50c6a6071bc8" 1552 Proxy-Authorization: Digest username="alice", 1553 realm="biloxi.example.com", 1554 nonce="c1e22c41ae6cbe5ae983a9c8e88d359", opaque="", 1555 uri="sip:bob@biloxi.example.com", response="f44ab22f150c6a56071bce8" 1556 Content-Length: 0 1558 F20 ACK Proxy 1 -> Proxy 2 1560 ACK sip:bob@client.biloxi.example.com SIP/2.0 1561 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK230f2.1 1562 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74b44 1563 ;received=192.0.2.101 1564 Max-Forwards: 69 1565 Route: 1566 From: Alice ;tag=9fxced76sl 1567 To: Bob ;tag=9103874 1568 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 1569 CSeq: 3 ACK 1570 Contact: 1571 Proxy-Authorization: Digest username="alice", 1572 realm="biloxi.example.com", 1573 nonce="c1e22c41ae6cbe5ae983a9c8e88d359", opaque="", 1574 uri="sip:bob@biloxi.example.com", response="f44ab22f150c6a56071bce8" 1575 Content-Length: 0 1577 F21 ACK Proxy 2 -> Bob 1579 ACK sip:bob@client.biloxi.example.com SIP/2.0 1580 Via: SIP/2.0/UDP ss2.biloxi.example.com:5060;branch=z9hG4bK31972.1 1581 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK230f2.1 1582 ;received=192.0.2.111 1583 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74b44 1584 ;received=192.0.2.101 1585 Max-Forwards: 68 1586 From: Alice ;tag=9fxced76sl 1587 To: Bob ;tag=9103874 1588 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 1589 CSeq: 3 ACK 1590 Contact: 1591 Content-Length: 0 1593 3.4 Successful Session with Proxy Failure 1595 Alice Proxy 1 Proxy 2 Bob 1596 | | | | 1597 | INVITE F1 | | | 1598 |--------------->| | | 1599 | INVITE F2 | | | 1600 |--------------->| | | 1601 | INVITE F3 | | | 1602 |--------------->| | | 1603 | INVITE F4 | | | 1604 |--------------->| | | 1605 | INVITE F5 | | | 1606 |--------------->| | | 1607 | INVITE F6 | | | 1608 |--------------->| | | 1609 | INVITE F7 | | | 1610 |--------------->| | | 1611 | INVITE F8 | | 1612 |-------------------------------->| | 1613 | 407 F9 | | 1614 |<--------------------------------| | 1615 | ACK F10 | | 1616 |-------------------------------->| | 1617 | INVITE F11 | | 1618 |-------------------------------->| INVITE F12 | 1619 | 100 F13 |--------------->| 1620 |<--------------------------------| | 1621 | | 180 F14 | 1622 | 180 F15 |<---------------| 1623 |<--------------------------------| | 1624 | | 200 F16 | 1625 | 200 F17 |<---------------| 1626 |<--------------------------------| | 1627 | ACK F18 | | 1628 |-------------------------------->| ACK F19 | 1629 | |--------------->| 1630 | Both Way RTP Media | 1631 |<================================================>| 1632 | | BYE F20 | 1633 | BYE F21 |<---------------| 1634 |<--------------------------------| | 1635 | 200 F22 | | 1636 |-------------------------------->| 200 F23 | 1637 | |--------------->| 1638 | | | 1640 In this scenario, Alice completes a call to Bob via a Proxy Server. 1641 Alice is configured for a primary SIP Proxy Server Proxy 1 and a 1642 secondary SIP Proxy Server Proxy 2 (Or is able to use DNS SRV records 1643 to locate Proxy 1 and Proxy 2). Alice has valid credentials for both 1644 domains. Proxy 1 is out of service and does not respond to INVITEs 1645 (it is reachable, but unresponsive). Alice then completes the call 1646 to Bob using Proxy 2. 1648 Message Details 1650 F1 INVITE Alice -> Proxy 1 1652 INVITE sip:bob@biloxi.example.com SIP/2.0 1653 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK465b6d 1654 Max-Forwards: 70 1655 Route: 1656 From: Alice ;tag=9fxced76sl 1657 To: Bob 1658 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 1659 CSeq: 1 INVITE 1660 Contact: 1661 Content-Type: application/sdp 1662 Content-Length: 151 1664 v=0 1665 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 1666 s=- 1667 c=IN IP4 192.0.2.101 1668 t=0 0 1669 m=audio 49172 RTP/AVP 0 1670 a=rtpmap:0 PCMU/8000 1672 F2 INVITE Alice -> Proxy 1 1674 Same as Message F1 1676 F3 INVITE Alice -> Proxy 1 1678 Same as Message F1 1680 F4 INVITE Alice -> Proxy 1 1682 Same as Message F1 1683 F5 INVITE Alice -> Proxy 1 1685 Same as Message F1 1687 F6 INVITE Alice -> Proxy 1 1689 Same as Message F1 1691 F7 INVITE Alice -> Proxy 1 1693 Same as Message F1 1695 /* Alice gives up on the unresponsive proxy */ 1697 F8 INVITE Alice -> Proxy 2 1699 INVITE sip:bob@biloxi.example.com SIP/2.0 1700 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74b8a 1701 Max-Forwards: 70 1702 From: Alice ;tag=9fxced76sl 1703 To: Bob 1704 Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com 1705 CSeq: 1 INVITE 1706 Contact: 1707 Content-Type: application/sdp 1708 Content-Length: 151 1710 v=0 1711 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 1712 s=- 1713 c=IN IP4 192.0.2.101 1714 t=0 0 1715 m=audio 49172 RTP/AVP 0 1716 a=rtpmap:0 PCMU/8000 1718 /* Proxy 2 challenges Alice for authentication */ 1720 F9 407 Proxy Authorization Required Proxy 2 -> Alice 1722 SIP/2.0 407 Proxy Authorization Required 1723 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74b8a 1724 ;received=192.0.2.101 1725 From: Alice ;tag=9fxced76sl 1726 To: Bob ;tag=2421452 1727 Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com 1728 CSeq: 1 INVITE 1729 Proxy-Authenticate: Digest realm="biloxi.example.com", qop="auth", 1730 nonce="1ae6cbe5ea9c8e8df84fqnlec434a359", 1731 opaque="", stale=FALSE, algorithm=MD5 1732 Content-Length: 0 1734 F10 ACK Alice -> Proxy 2 1736 ACK sip:bob@biloxi.example.com SIP/2.0 1737 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74b8a 1738 Max-Forwards: 70 1739 From: Alice ;tag=9fxced76sl 1740 To: Bob ;tag=2421452 1741 Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com 1742 CSeq: 1 ACK 1743 Content-Length: 0 1745 /* Alice responds be re-sending the INVITE with authentication 1746 credentials in it. */ 1748 F11 INVITE Alice -> Proxy 2 1750 INVITE sip:bob@biloxi.example.com SIP/2.0 1751 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 1752 Max-Forwards: 70 1753 From: Alice ;tag=9fxced76sl 1754 To: Bob 1755 Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com 1756 CSeq: 2 INVITE 1757 Contact: 1758 Proxy-Authorization: Digest username="alice", 1759 realm="biloxi.example.com", 1760 nonce="1ae6cbe5ea9c8e8df84fqnlec434a359", opaque="", 1761 uri="sip:bob@biloxi.example.com", 1762 response="8a880c919d1a52f20a1593e228adf599" 1763 Content-Type: application/sdp 1764 Content-Length: 151 1766 v=0 1767 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 1768 s=- 1769 c=IN IP4 192.0.2.101 1770 t=0 0 1771 m=audio 49172 RTP/AVP 0 1772 a=rtpmap:0 PCMU/8000 1773 /* Proxy 2 accepts the credentials and forwards the INVITE to Bob. 1774 Client for Alice prepares to receive data on port 49172 from the 1775 network. 1776 */ 1778 F12 INVITE Proxy 2 -> Bob 1780 INVITE sip:bob@client.biloxi.example.com SIP/2.0 1781 Via: SIP/2.0/UDP 1782 ss2.biloxi.example.com:5060;branch=z9hG4bK721e418c4.1 1783 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 1784 ;received=192.0.2.101 1785 Max-Forwards: 69 1786 Record-Route: 1787 From: Alice ;tag=9fxced76sl 1788 To: Bob 1789 Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com 1790 CSeq: 2 INVITE 1791 Contact: 1792 Content-Type: application/sdp 1793 Content-Length: 151 1795 v=0 1796 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 1797 s=- 1798 c=IN IP4 192.0.2.101 1799 t=0 0 1800 m=audio 49172 RTP/AVP 0 1801 a=rtpmap:0 PCMU/8000 1803 F13 100 Trying Proxy 2 -> Alice 1805 SIP/2.0 100 Trying 1806 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 1807 ;received=192.0.2.101 1808 From: Alice ;tag=9fxced76sl 1809 To: Bob 1810 Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com 1811 CSeq: 2 INVITE 1812 Content-Length: 0 1814 F14 180 Ringing Bob -> Proxy 2 1816 SIP/2.0 180 Ringing 1817 Via: SIP/2.0/UDP 1818 ss2.biloxi.example.com:5060;branch=z9hG4bK721e418c4.1 1819 ;received=192.0.2.222 1820 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 1821 ;received=192.0.2.101 1822 Record-Route: 1823 From: Alice ;tag=9fxced76sl 1824 To: Bob ;tag=314159 1825 Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com 1826 CSeq: 2 INVITE 1827 Contact: 1828 Content-Length: 0 1830 F15 180 Ringing Proxy 2 -> Alice 1832 SIP/2.0 180 Ringing 1833 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 1834 ;received=192.0.2.101 1835 Record-Route: 1836 From: Alice ;tag=9fxced76sl 1837 To: Bob ;tag=314159 1838 Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com 1839 CSeq: 2 INVITE 1840 Contact: 1841 Content-Length: 0 1843 F16 200 OK Bob -> Proxy 2 1845 SIP/2.0 200 OK 1846 Via: SIP/2.0/UDP 1847 ss2.biloxi.example.com:5060;branch=z9hG4bK721e418c4.1 1848 ;received=192.0.2.222 1849 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 1850 ;received=192.0.2.101 1851 Record-Route: 1852 From: Alice ;tag=9fxced76sl 1853 To: Bob ;tag=314159 1854 Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com 1855 CSeq: 2 INVITE 1856 Contact: 1857 Content-Type: application/sdp 1858 Content-Length: 147 1860 v=0 1861 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com 1862 s=- 1863 c=IN IP4 192.0.2.201 1864 t=0 0 1865 m=audio 3456 RTP/AVP 0 1866 a=rtpmap:0 PCMU/8000 1868 F17 200 OK Proxy 2 -> Alice 1870 SIP/2.0 200 OK 1871 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 1872 ;received=192.0.2.101 1873 Record-Route: 1874 From: Alice ;tag=9fxced76sl 1875 To: Bob ;tag=314159 1876 Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com 1877 CSeq: 2 INVITE 1878 Contact: 1879 Content-Type: application/sdp 1880 Content-Length: 147 1882 v=0 1883 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com 1884 s=- 1885 c=IN IP4 192.0.2.201 1886 t=0 0 1887 m=audio 3456 RTP/AVP 0 1888 a=rtpmap:0 PCMU/8000 1890 F18 ACK Alice -> Proxy 2 1892 ACK sip:bob@client.biloxi.example.com SIP/2.0 1893 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74b8g 1894 Max-Forwards: 70 1895 Route: 1896 From: Alice ;tag=9fxced76sl 1897 To: Bob ;tag=314159 1898 Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com 1899 CSeq: 2 ACK 1900 Content-Length: 0 1902 F19 ACK Proxy 2 -> Bob 1904 ACK sip:bob@client.biloxi.example.com SIP/2.0 1905 Via: SIP/2.0/UDP 1906 ss2.biloxi.example.com:5060;branch=z9hG4bK721e418c4.1 1907 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74b8g 1908 ;received=192.0.2.101 1909 Max-Forwards: 69 1910 From: Alice ;tag=9fxced76sl 1911 To: Bob ;tag=314159 1912 Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com 1913 CSeq: 2 ACK 1914 Content-Length: 0 1916 /* RTP streams are established between Alice and Bob */ 1918 /* Bob Hangs Up with Alice. */ 1920 F20 BYE Bob -> Proxy 2 1922 BYE sip:alice@client.atlanta.example.com SIP/2.0 1923 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 1924 Max-Forwards: 70 1925 Route: 1926 From: Bob ;tag=314159 1927 To: Alice ;tag=9fxced76sl 1928 Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com 1929 CSeq: 1 BYE 1930 Content-Length: 0 1932 F21 BYE Proxy 2 -> Alice 1934 BYE sip:alice@client.atlanta.example.com SIP/2.0 1935 Via: SIP/2.0/UDP 1936 ss2.biloxi.example.com:5060;branch=z9hG4bK721e418c4.1 1937 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 1938 ;received=192.0.2.201 1939 Max-Forwards: 69 1940 From: Bob ;tag=314159 1941 To: Alice ;tag=9fxced76sl 1942 Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com 1943 CSeq: 1 BYE 1944 Content-Length: 0 1946 F22 200 OK Alice -> Proxy 2 1948 SIP/2.0 200 OK 1949 Via: SIP/2.0/UDP 1950 ss2.biloxi.example.com:5060;branch=z9hG4bK721e418c4.1 1951 ;received=192.0.2.222 1952 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 1953 ;received=192.0.2.201 1954 From: Bob ;tag=314159 1955 To: Alice ;tag=9fxced76sl 1956 Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com 1957 CSeq: 1 BYE 1958 Content-Length: 0 1960 F23 200 OK Proxy 2 -> Bob 1962 SIP/2.0 200 OK 1963 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 1964 ;received=192.0.2.201 1965 From: Bob ;tag=314159 1966 To: Alice ;tag=9fxced76sl 1967 Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com 1968 CSeq: 1 BYE 1969 Content-Length: 0 1971 3.5 Session Through a SIP ALG 1973 Alice ALG Proxy 2 Bob 1974 | | | | 1975 | INVITE F1 | | | 1976 |--------------->| INVITE F2 | | 1977 | 100 F3 |--------------->| INVITE F4 | 1978 |<---------------| 100 F5 |--------------->| 1979 | |<---------------| 180 F6 | 1980 | | 180 F7 |<---------------| 1981 | 180 F8 |<---------------| | 1982 |<---------------| | 200 F9 | 1983 | | 200 F10 |<---------------| 1984 | 200 F11 |<---------------| | 1985 |<---------------| | 1986 | ACK F12 | | 1987 |--------------->| ACK F13 | 1988 | |-------------------------------->| 1989 | RTP Media | Both Way RTP Media | 1990 |<==============>|<===============================>| 1991 | BYE F14 | | 1992 |--------------->| BYE F15 | 1993 | |-------------------------------->| 1994 | | 200 F16 | 1995 | 200 F17 |<--------------------------------| 1996 |<---------------| | 1997 | | | 1999 Alice completes a call to Bob through a ALG (Application Layer 2000 Gateway) and a SIP Proxy. The routing through the ALG is 2001 accomplished using a pre-loaded Route header in the INVITE F1. Note 2002 that the media stream setup is not end-to-end - the ALG terminates 2003 both media streams and bridges them. This is done by the ALG 2004 modifying the SDP in the INVITE (F1) and 200 OK (F10) messages, and 2005 possibly any 18x or ACK messages containing SDP. 2007 In addition to firewall traversal, this Back-to-Back User Agent 2008 (B2BUA) could be used as part of an anonymizer 2009 service (in which all identifying information on Alice would be 2010 removed), or to perform codec media conversion, such as mu-law to A- 2011 law conversion of PCM on an international call. 2013 Also note that Proxy 2 does not Record-Route in this call flow. 2015 Message Details 2016 F1 INVITE Alice -> SIP ALG 2018 INVITE sip:bob@biloxi.example.com SIP/2.0 2019 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 2020 Max-Forwards: 70 2021 From: Alice ;tag=9fxced76sl 2022 To: Bob 2023 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2024 CSeq: 1 INVITE 2025 Contact: 2026 Route: 2027 Proxy-Authorization: Digest username="alice", 2028 realm="biloxi.example.com", 2029 nonce="85b4f1cen4341ae6cbe5a3a9c8e88df9", opaque="", 2030 uri="sip:bob@biloxi.example.com", 2031 response="b3f392f9218a328b9294076d708e6815" 2032 Content-Type: application/sdp 2033 Content-Length: 151 2035 v=0 2036 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 2037 s=- 2038 c=IN IP4 192.0.2.101 2039 t=0 0 2040 m=audio 49172 RTP/AVP 0 2041 a=rtpmap:0 PCMU/8000 2043 /* Client for Alice prepares to receive data on port 49172 from the 2044 network. */ 2046 F2 INVITE SIP ALG -> Proxy 2 2048 INVITE sip:bob@biloxi.example.com SIP/2.0 2049 Via: SIP/2.0/UDP alg1.atlanta.example.com:5060;branch=z9hG4bK739578.1 2050 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 2051 ;received=192.0.2.101 2052 Max-Forwards: 69 2053 Record-Route: 2054 From: Alice ;tag=9fxced76sl 2055 To: Bob 2056 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2057 CSeq: 1 INVITE 2058 Contact: 2059 Proxy-Authorization: Digest username="alice", 2060 realm="biloxi.example.com", 2061 nonce="85b4f1cen4341ae6cbe5a3a9c8e88df9", opaque="", 2062 uri="sip:bob@biloxi.example.com", 2063 response="b3f392f9218a328b9294076d708e6815" 2065 Content-Type: application/sdp 2066 Content-Length: 150 2068 v=0 2069 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 2070 s=- 2071 c=IN IP4 192.0.2.128 2072 t=0 0 2073 m=audio 2000 RTP/AVP 0 2074 a=rtpmap:0 PCMU/8000 2076 F3 100 Trying SIP ALG -> Alice 2078 SIP/2.0 100 Trying 2079 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 2080 ;received=192.0.2.101 2081 From: Alice ;tag=9fxced76sl 2082 To: Bob 2083 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2084 CSeq: 1 INVITE 2085 Content-Length: 0 2087 /* SIP ALG prepares to proxy data from port 192.0.2.128/2000 to 2088 192.0.2.101/49172. Proxy 2 uses a Location Service function to 2089 determine where Bob is located. Based upon location analysis the call 2090 is forwarded to Bob */ 2092 F4 INVITE Proxy 2 -> Bob 2094 INVITE sip:bob@client.biloxi.example.com SIP/2.0 2095 Via: SIP/2.0/UDP ss2.biloxi.example.com:5060;branch=z9hG4bK2d4790.1 2096 Via: SIP/2.0/UDP alg1.atlanta.example.com:5060;branch=z9hG4bK739578.1 2097 ;received=192.0.2.128 2098 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 2099 ;received=192.0.2.101 2100 Max-Forwards: 68 2101 Record-Route: 2102 From: Alice ;tag=9fxced76sl 2103 To: Bob 2104 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2105 CSeq: 1 INVITE 2106 Contact: 2107 Content-Type: application/sdp 2108 Content-Length: 150 2110 v=0 2111 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 2112 s=- 2113 c=IN IP4 192.0.2.128 2114 t=0 0 2115 m=audio 2000 RTP/AVP 0 2116 a=rtpmap:0 PCMU/8000 2118 F5 100 Trying Proxy 2 -> SIP ALG 2120 SIP/2.0 100 Trying 2121 Via: SIP/2.0/UDP alg1.atlanta.example.com:5060;branch=z9hG4bK739578.1 2122 ;received=192.0.2.128 2123 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 2124 ;received=192.0.2.101 2125 From: Alice ;tag=9fxced76sl 2126 To: Bob 2127 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2128 CSeq: 1 INVITE 2129 Content-Length: 0 2131 F6 180 Ringing Bob -> Proxy 2 2133 SIP/2.0 180 Ringing 2134 Via: SIP/2.0/UDP ss2.biloxi.example.com:5060;branch=z9hG4bK2d4790.1 2135 ;received=192.0.2.222 2136 Via: SIP/2.0/UDP alg1.atlanta.example.com:5060;branch=z9hG4bK739578.1 2137 ;received=192.0.2.128 2138 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 2139 ;received=192.0.2.101 2140 Record-Route: 2141 From: Alice ;tag=9fxced76sl 2142 To: Bob ;tag=314159 2143 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2144 CSeq: 1 INVITE 2145 Contact: 2146 Content-Length: 0 2148 F7 180 Ringing Proxy 2 -> SIP ALG 2150 SIP/2.0 180 Ringing 2151 Via: SIP/2.0/UDP alg1.atlanta.example.com:5060;branch=z9hG4bK739578.1 2152 ;received=192.0.2.128 2153 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 2154 ;received=192.0.2.101 2155 Record-Route: 2156 From: Alice ;tag=9fxced76sl 2157 To: Bob ;tag=314159 2158 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2159 CSeq: 1 INVITE 2160 Contact: 2161 Content-Length: 0 2163 F8 180 Ringing SIP ALG -> Alice 2165 SIP/2.0 180 Ringing 2166 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 2167 ;received=192.0.2.101 2168 Record-Route: 2169 From: Alice ;tag=9fxced76sl 2170 To: Bob ;tag=314159 2171 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2172 CSeq: 1 INVITE 2173 Contact: 2174 Content-Length: 0 2176 F9 200 OK Bob -> Proxy 2 2178 SIP/2.0 200 OK 2179 Via: SIP/2.0/UDP ss2.biloxi.example.com:5060;branch=z9hG4bK2d4790.1 2180 ;received=192.0.2.222 2181 Via: SIP/2.0/UDP alg1.atlanta.example.com:5060;branch=z9hG4bK739578.1 2182 ;received=192.0.2.128 2183 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 2184 ;received=192.0.2.101 2185 Record-Route: 2186 From: Alice ;tag=9fxced76sl 2187 To: Bob ;tag=314159 2188 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2189 CSeq: 1 INVITE 2190 Contact: 2191 Content-Type: application/sdp 2192 Content-Length: 147 2194 v=0 2195 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com 2196 s=- 2197 c=IN IP4 192.0.2.201 2198 t=0 0 2199 m=audio 3456 RTP/AVP 0 2200 a=rtpmap:0 PCMU/8000 2202 F10 200 OK Proxy 2 -> SIP ALG 2203 SIP/2.0 200 OK 2204 Via: SIP/2.0/UDP alg1.atlanta.example.com:5060;branch=z9hG4bK739578.1 2205 ;received=192.0.2.128 2206 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 2207 ;received=192.0.2.101 2208 Record-Route: 2209 From: Alice ;tag=9fxced76sl 2210 To: Bob ;tag=314159 2211 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2212 CSeq: 1 INVITE 2213 Contact: 2214 Content-Type: application/sdp 2215 Content-Length: 147 2217 v=0 2218 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com 2219 s=- 2220 c=IN IP4 192.0.2.201 2221 t=0 0 2222 m=audio 3456 RTP/AVP 0 2223 a=rtpmap:0 PCMU/8000 2225 F11 200 OK SIP ALG -> Alice 2227 SIP/2.0 200 OK 2228 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 2229 ;received=192.0.2.101 2230 Record-Route: 2231 From: Alice ;tag=9fxced76sl 2232 To: Bob ;tag=314159 2233 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2234 CSeq: 1 INVITE 2235 Contact: 2236 Content-Type: application/sdp 2237 Content-Length: 147 2239 v=0 2240 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com 2241 s=- 2242 c=IN IP4 192.0.2.128 2243 t=0 0 2244 m=audio 1734 RTP/AVP 0 2245 a=rtpmap:0 PCMU/8000 2247 /* The ALG prepares to proxy packets from 192.0.2.128/ 2248 1734 to 192.0.2.201/3456 */ 2250 F12 ACK Alice -> SIP ALG 2252 ACK sip:bob@client.biloxi.example.com SIP/2.0 2253 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bhh 2254 Max-Forwards: 70 2255 Route: 2256 From: Alice ;tag=9fxced76sl 2257 To: Bob ;tag=314159 2258 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2259 CSeq: 1 ACK 2260 Content-Length: 0 2262 F13 ACK SIP ALG -> Bob 2264 ACK sip:bob@client.biloxi.example.com SIP/2.0 2265 Via: SIP/2.0/UDP alg1.atlanta.example.com:5060;branch=z9hG4bK739578.1 2266 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bhh 2267 ;received=192.0.2.101 2268 Max-Forwards: 69 2269 From: Alice ;tag=9fxced76sl 2270 To: Bob ;tag=314159 2271 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2272 CSeq: 1 ACK 2273 Content-Length: 0 2275 /* RTP streams are established between Alice and the ALG and 2276 between the ALG and B*/ 2278 /* Alice Hangs Up with Bob. */ 2280 F14 BYE Alice -> SIP ALG 2282 BYE sip:bob@client.biloxi.example.com SIP/2.0 2283 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74be5 2284 Max-Forwards: 70 2285 Route: 2286 From: Alice ;tag=9fxced76sl 2287 To: Bob ;tag=314159 2288 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2289 CSeq: 2 BYE 2290 Content-Length: 0 2292 F15 BYE SIP ALG -> Bob 2294 BYE sip:bob@client.biloxi.example.com SIP/2.0 2295 Via: SIP/2.0/UDP alg1.atlanta.example.com:5060;branch=z9hG4bK739578.1 2296 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74be5 2297 ;received=192.0.2.101 2298 Max-Forwards: 69 2299 From: Alice ;tag=9fxced76sl 2300 To: Bob ;tag=314159 2301 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2302 CSeq: 2 BYE 2303 Content-Length: 0 2305 F16 200 OK Bob -> SIP ALG 2307 SIP/2.0 200 OK 2308 Via: SIP/2.0/UDP alg1.atlanta.example.com:5060;branch=z9hG4bK739578.1 2309 ;received=192.0.2.128 2310 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74be5 2311 ;received=192.0.2.101 2312 From: Alice ;tag=9fxced76sl 2313 To: Bob ;tag=314159 2314 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2315 CSeq: 2 BYE 2316 Content-Length: 0 2318 F17 200 OK SIP ALG -> Alice 2320 SIP/2.0 200 OK 2321 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74be5 2322 ;received=192.0.2.101 2323 From: Alice ;tag=9fxced76sl 2324 To: Bob ;tag=314159 2325 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2326 CSeq: 2 BYE 2327 Content-Length: 0 2329 3.6 Session via Redirect and Proxy Servers with SDP in ACK 2331 Alice Redirect Server Proxy 3 Bob 2332 | | | | 2333 | INVITE F1 | | | 2334 |--------------->| | | 2335 | 302 F2 | | | 2336 |<---------------| | | 2337 | ACK F3 | | | 2338 |--------------->| | | 2339 | INVITE F4 | | 2340 |-------------------------------->| INVITE F5 | 2341 | 100 F6 |--------------->| 2342 |<--------------------------------| 180 F7 | 2343 | 180 F8 |<---------------| 2344 |<--------------------------------| | 2345 | | 200 F9 | 2346 | 200 F10 |<---------------| 2347 |<--------------------------------| | 2348 | ACK F11 | | 2349 |-------------------------------->| ACK F12 | 2350 | |--------------->| 2351 | Both Way RTP Media | 2352 |<================================================>| 2353 | | BYE F13 | 2354 | BYE F14 |<---------------| 2355 |<--------------------------------| | 2356 | 200 F15 | | 2357 |-------------------------------->| 200 F16 | 2358 | |--------------->| 2359 | | | 2361 In this scenario, Alice places a call to Bob using first a 2362 Redirect server then a Proxy Server. The INVITE message is first 2363 sent to the Redirect Server. The Server returns a 302 Moved 2364 Temporarily response (F2) containing a Contact header with Bob's 2365 current SIP address. Alice then generates a new INVITE and sends to 2366 Bob via the Proxy Server and the call proceeds normally. In this 2367 example, no SDP is present in the INVITE, so the SDP is carried in 2368 the ACK message. 2370 The call is terminated when Bob sends a BYE message. 2372 Message Details 2374 F1 INVITE Alice -> Redirect Server 2375 INVITE sip:bob@biloxi.example.com SIP/2.0 2376 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bKbf9f44 2377 Max-Forwards: 70 2378 From: Alice ;tag=9fxced76sl 2379 To: Bob 2380 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2381 CSeq: 1 INVITE 2382 Contact: 2383 Content-Length: 0 2385 F2 302 Moved Temporarily Redirect Proxy -> Alice 2387 SIP/2.0 302 Moved Temporarily 2388 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bKbf9f44 2389 ;received=192.0.2.101 2390 From: Alice ;tag=9fxced76sl 2391 To: Bob ;tag=53fHlqlQ2 2392 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2393 CSeq: 1 INVITE 2394 Contact: 2395 Content-Length: 0 2397 F3 ACK Alice -> Redirect Server 2399 ACK sip:bob@biloxi.example.com SIP/2.0 2400 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bKbf9f44 2401 Max-Forwards: 70 2402 From: Alice ;tag=9fxced76sl 2403 To: Bob ;tag=53fHlqlQ2 2404 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2405 CSeq: 1 ACK 2406 Content-Length: 0 2408 F4 INVITE Alice -> Proxy 3 2410 INVITE sip:bob@chicago.example.com SIP/2.0 2411 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 2412 Max-Forwards: 70 2413 From: Alice ;tag=9fxced76sl 2414 To: Bob 2415 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2416 CSeq: 2 INVITE 2417 Contact: 2418 Content-Length: 0 2419 F5 INVITE Proxy 3 -> Bob 2421 INVITE sip:bob@client.chicago.example.com SIP/2.0 2422 Via: SIP/2.0/TCP 2423 ss3.chicago.example.com:5060;branch=z9hG4bK721e418c4.1 2424 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 2425 ;received=192.0.2.101 2426 Max-Forwards: 69 2427 Record-Route: 2428 From: Alice ;tag=9fxced76sl 2429 To: Bob 2430 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2431 CSeq: 2 INVITE 2432 Contact: 2433 Content-Length: 0 2435 F6 100 Trying Proxy 3 -> Alice 2437 SIP/2.0 100 Trying 2438 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 2439 ;received=192.0.2.101 2440 From: Alice ;tag=9fxced76sl 2441 To: Bob 2442 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2443 CSeq: 2 INVITE 2444 Content-Length: 0 2446 F7 180 Ringing Bob -> Proxy 3 2448 SIP/2.0 180 Ringing 2449 Via: SIP/2.0/TCP 2450 ss3.chicago.example.com:5060;branch=z9hG4bK721e418c4.1 2451 ;received=192.0.2.233 2452 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 2453 ;received=192.0.2.101 2454 Record-Route: 2455 From: Alice ;tag=9fxced76sl 2456 To: Bob ;tag=314159 2457 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2458 CSeq: 2 INVITE 2459 Contact: 2460 Content-Length: 0 2462 F8 180 Ringing Proxy 3 -> Alice 2463 SIP/2.0 180 Ringing 2464 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 2465 ;received=192.0.2.101 2466 Record-Route: 2467 From: Alice ;tag=9fxced76sl 2468 To: Bob ;tag=314159 2469 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2470 CSeq: 2 INVITE 2471 Contact: 2472 Content-Length: 0 2474 F9 200 OK Bob -> Proxy 3 2476 SIP/2.0 200 OK 2477 Via: SIP/2.0/TCP 2478 ss3.chicago.example.com:5060;branch=z9hG4bK721e418c4.1 2479 ;received=192.0.2.233 2480 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 2481 ;received=192.0.2.101 2482 Record-Route: 2483 From: Alice ;tag=9fxced76sl 2484 To: Bob ;tag=314159 2485 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2486 CSeq: 2 INVITE 2487 Contact: 2488 Content-Type: application/sdp 2489 Content-Length: 148 2491 v=0 2492 o=bob 2890844527 2890844527 IN IP4 client.chicago.example.com 2493 s=- 2494 c=IN IP4 192.0.2.100 2495 t=0 0 2496 m=audio 3456 RTP/AVP 0 2497 a=rtpmap:0 PCMU/8000 2499 F10 200 OK Proxy -> Alice 2501 SIP/2.0 200 OK 2502 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 2503 ;received=192.0.2.101 2504 Record-Route: 2505 From: Alice ;tag=9fxced76sl 2506 To: Bob ;tag=314159 2507 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2508 CSeq: 2 INVITE 2509 Contact: 2510 Content-Type: application/sdp 2511 Content-Length: 148 2513 v=0 2514 o=bob 2890844527 2890844527 IN IP4 client.chicago.example.com 2515 s=- 2516 c=IN IP4 192.0.2.100 2517 t=0 0 2518 m=audio 3456 RTP/AVP 0 2519 a=rtpmap:0 PCMU/8000 2521 /* ACK contains SDP of Alice since none present in INVITE */ 2523 F11 ACK Alice -> Proxy 3 2525 ACK sip:bob@client.chicago.example.com SIP/2.0 2526 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bq9 2527 Max-Forwards: 70 2528 Route: 2529 From: Alice ;tag=9fxced76sl 2530 To: Bob ;tag=314159 2531 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2532 CSeq: 2 ACK 2533 Content-Type: application/sdp 2534 Content-Length: 151 2536 v=0 2537 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 2538 s=- 2539 c=IN IP4 192.0.2.101 2540 t=0 0 2541 m=audio 49172 RTP/AVP 0 2542 a=rtpmap:0 PCMU/8000 2544 F12 ACK Proxy 3 -> Bob 2546 ACK sip:bob@client.chicago.example.com SIP/2.0 2547 Via: SIP/2.0/TCP 2548 ss3.chicago.example.com:5060;branch=z9hG4bK721e418c4.1 2549 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bq9 2550 ;received=192.0.2.101 2551 Max-Forwards: 69 2552 From: Alice ;tag=9fxced76sl 2553 To: Bob ;tag=314159 2554 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2555 CSeq: 2 ACK 2556 Content-Type: application/sdp 2557 Content-Length: 151 2559 v=0 2560 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 2561 s=- 2562 c=IN IP4 192.0.2.101 2563 t=0 0 2564 m=audio 49172 RTP/AVP 0 2565 a=rtpmap:0 PCMU/8000 2567 /* RTP streams are established between Alice and Bob */ 2569 /* Bob Hangs Up with Alice. */ 2571 F13 BYE Bob -> Proxy 3 2573 BYE sip:alice@client.atlanta.example.com SIP/2.0 2574 Via: SIP/2.0/TCP client.chicago.example.com:5060;branch=z9hG4bKfgaw2 2575 Max-Forwards: 70 2576 Route: 2577 From: Bob ;tag=314159 2578 To: Alice ;tag=9fxced76sl 2579 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2580 CSeq: 1 BYE 2581 Content-Length: 0 2583 F14 BYE Proxy 3 -> Alice 2585 BYE sip:alice@client.atlanta.example.com SIP/2.0 2586 Via: SIP/2.0/TCP 2587 ss3.chicago.example.com:5060;branch=z9hG4bK721e418c4.1 2588 ;received=192.0.2.100 2589 Via: SIP/2.0/TCP client.chicago.example.com:5060;branch=z9hG4bKfgaw2 2590 Max-Forwards: 69 2591 From: Bob ;tag=314159 2592 To: Alice ;tag=9fxced76sl 2593 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2594 CSeq: 1 BYE 2595 Content-Length: 0 2597 F15 200 OK Alice -> Proxy 3 2599 SIP/2.0 200 OK 2600 Via: SIP/2.0/TCP 2601 ss3.chicago.example.com:5060;branch=z9hG4bK721e418c4.1 2602 ;received=192.0.2.233 2603 Via: SIP/2.0/TCP client.chicago.example.com:5060;branch=z9hG4bKfgaw2 2604 ;received=192.0.2.100 2605 From: Bob ;tag=314159 2606 To: Alice ;tag=9fxced76sl 2607 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2608 CSeq: 1 BYE 2609 Content-Length: 0 2611 F16 200 OK Proxy 3 -> Bob 2613 SIP/2.0 200 OK 2614 Via: SIP/2.0/TCP client.chicago.example.com:5060;branch=z9hG4bKfgaw2 2615 ;received=192.0.2.100 2616 From: Bob ;tag=314159 2617 To: Alice ;tag=9fxced76sl 2618 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2619 CSeq: 1 BYE 2620 Content-Length: 0 2622 3.7 Session with re-INVITE (IP Address Change) 2624 Alice Proxy 2 Bob 2625 | F1 INVITE | | 2626 |------------------->| F2 INVITE | 2627 | F3 100 Trying |------------------->| 2628 |<-------------------| F4 180 Ringing | 2629 | F5 180 Ringing |<-------------------| 2630 |<-------------------| | 2631 | | F6 200 OK | 2632 | F7 200 OK |<-------------------| 2633 |<-------------------| | 2634 | F8 ACK | 2635 |---------------------------------------->| 2636 | Both Way RTP Media Established | 2637 |<=======================================>| 2638 | | 2639 | Bob changes IP address | 2640 | | 2641 | F9 INVITE | 2642 |<----------------------------------------| 2643 | F10 200 OK | 2644 |---------------------------------------->| 2645 | F11 ACK | 2646 |<----------------------------------------| 2647 | New RTP Media Stream | 2648 |<=======================================>| 2649 | F12 BYE | 2650 |---------------------------------------->| 2651 | F25 200 OK | 2652 |<----------------------------------------| 2653 | | 2655 This example shows a session in which the media is changes midway 2656 through the session. When Bob�s IP address changes during the 2657 session, Bob sends a re-INVITE containing a new Contact and SDP 2658 (version number incremented) information to A. In this flow, the 2659 proxy does not Record-Route so is not in the SIP messaging path after 2660 the initial exchange. 2662 Message Details 2664 F1 INVITE Alice -> Proxy 2 2666 INVITE sip:bob@biloxi.example.com SIP/2.0 2667 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 2668 Max-Forwards: 70 2669 From: Alice ;tag=9fxced76sl 2670 To: Bob 2671 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2672 CSeq: 1 INVITE 2673 Contact: 2674 Content-Type: application/sdp 2675 Content-Length: 151 2677 v=0 2678 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 2679 s=- 2680 c=IN IP4 192.0.2.101 2681 t=0 0 2682 m=audio 49172 RTP/AVP 0 2683 a=rtpmap:0 PCMU/8000 2685 F2 INVITE Proxy 2 -> Bob 2687 INVITE sip:bob@client.biloxi.example.com SIP/2.0 2688 Via: SIP/2.0/UDP ss2.biloxi.example.com:5060;branch=z9hG4bK2d4790.1 2689 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 2690 ;received=192.0.2.101 2691 Max-Forwards: 69 2692 From: Alice ;tag=9fxced76sl 2693 To: Bob 2694 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2695 CSeq: 1 INVITE 2696 Contact: 2697 Content-Type: application/sdp 2698 Content-Length: 151 2700 v=0 2701 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 2702 s=- 2703 c=IN IP4 192.0.2.101 2704 t=0 0 2705 m=audio 49172 RTP/AVP 0 2706 a=rtpmap:0 PCMU/8000 2708 F3 100 Trying Proxy 2 -> Alice 2710 SIP/2.0 100 Trying 2711 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 2712 ;received=192.0.2.101 2713 From: Alice ;tag=9fxced76sl 2714 To: Bob 2715 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2716 CSeq: 1 INVITE 2717 Content-Length: 0 2719 F4 180 Ringing Bob -> Proxy 2 2721 SIP/2.0 180 Ringing 2722 Via: SIP/2.0/UDP ss2.biloxi.example.com:5060;branch=z9hG4bK2d4790.1 2723 ;received=192.0.2.222 2724 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 2725 ;received=192.0.2.101 2726 From: Alice ;tag=9fxced76sl 2727 To: Bob ;tag=314159 2728 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2729 CSeq: 1 INVITE 2730 Contact: 2731 Content-Length: 0 2733 F5 180 Ringing Proxy 2 -> Alice 2735 SIP/2.0 180 Ringing 2736 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 2737 ;received=192.0.2.101 2738 From: Alice ;tag=9fxced76sl 2739 To: Bob ;tag=314159 2740 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2741 CSeq: 1 INVITE 2742 Contact: 2743 Content-Length: 0 2745 F6 200 OK Bob -> Proxy 2 2747 SIP/2.0 200 OK 2748 Via: SIP/2.0/UDP ss2.biloxi.example.com:5060;branch=z9hG4bK2d4790.1 2749 ;received=192.0.2.222 2750 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 2751 ;received=192.0.2.101 2752 From: Alice ;tag=9fxced76sl 2753 To: Bob ;tag=314159 2754 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2755 CSeq: 1 INVITE 2756 Contact: 2757 Content-Type: application/sdp 2758 Content-Length: 147 2759 v=0 2760 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com 2761 s=- 2762 c=IN IP4 192.0.2.201 2763 t=0 0 2764 m=audio 3456 RTP/AVP 0 2765 a=rtpmap:0 PCMU/8000 2767 F7 200 OK Proxy 2 -> Alice 2769 SIP/2.0 200 OK 2770 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 2771 ;received=192.0.2.101 2772 From: Alice ;tag=9fxced76sl 2773 To: Bob ;tag=314159 2774 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2775 CSeq: 1 INVITE 2776 Contact: 2777 Content-Type: application/sdp 2778 Content-Length: 147 2780 v=0 2781 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com 2782 s=- 2783 c=IN IP4 192.0.2.201 2784 t=0 0 2785 m=audio 3456 RTP/AVP 0 2786 a=rtpmap:0 PCMU/8000 2788 F8 ACK Alice -> Bob 2790 ACK sip:bob@client.biloxi.example.com SIP/2.0 2791 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74b7b 2792 Max-Forwards: 70 2793 From: Alice ;tag=9fxced76sl 2794 To: Bob ;tag=314159 2795 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2796 CSeq: 1 ACK 2797 Content-Length: 0 2799 /* RTP streams are established between Alice and Bob */ 2801 /* Bob changes IP address and re-INVITEs Alice with new Contact and 2802 SDP */ 2804 F9 INVITE Bob -> Alice 2805 INVITE sip:alice@client.atlanta.example.com SIP/2.0 2806 Via: SIP/2.0/UDP client.chicago.example.com:5060;branch=z9hG4bKlkld5l 2807 Max-Forwards: 70 2808 From: Bob ;tag=314159 2809 To: Alice ;tag=9fxced76sl 2810 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2811 CSeq: 14 INVITE 2812 Contact: 2813 Content-Type: application/sdp 2814 Content-Length: 149 2816 v=0 2817 o=bob 2890844527 2890844528 IN IP4 client.chicago.example.com 2818 s=- 2819 c=IN IP4 192.0.2.100 2820 t=0 0 2821 m=audio 47172 RTP/AVP 0 2822 a=rtpmap:0 PCMU/8000 2824 F10 200 OK Alice ->B 2826 SIP/2.0 200 OK 2827 Via: SIP/2.0/UDP client.chicago.example.com:5060;branch=z9hG4bKlkld5l 2828 ;received=192.0.2.100 2829 Max-Forwards: 70 2830 From: Bob ;tag=314159 2831 To: Alice ;tag=9fxced76sl 2832 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2833 CSeq: 14 INVITE 2834 Contact: 2835 Content-Type: application/sdp 2836 Content-Length: 150 2838 v=0 2839 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 2840 s=- 2841 c=IN IP4 192.0.2.101 2842 t=0 0 2843 m=audio 1000 RTP/AVP 0 2844 a=rtpmap:0 PCMU/8000 2846 F11 ACK Bob -> Alice 2848 ACK sip:alice@client.atlanta.example.com SIP/2.0 2849 Via: SIP/2.0/UDP client.chicago.example.com:5060;branch=z9hG4bKlkldcc 2850 Max-Forwards: 70 2851 From: Bob ;tag=314159 2852 To: Alice ;tag=9fxced76sl 2853 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2854 CSeq: 14 ACK 2855 Content-Length: 0 2857 /* New RTP stream established between Alice and Bob */ 2859 /* Alice hangs up with Bob */ 2861 F12 BYE Alice -> Bob 2863 BYE sip:bob@client.chicago.example.com SIP/2.0 2864 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bo4 2865 Max-Forwards: 70 2866 From: Alice ;tag=9fxced76sl 2867 To: Bob ;tag=314159 2868 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2869 CSeq: 2 BYE 2870 Content-Length: 0 2872 F13 200 OK Bob -> Alice 2874 SIP/2.0 200 OK 2875 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bo4 2876 ;received=192.0.2.101 2877 Max-Forwards: 70 2878 From: Alice ;tag=9fxced76sl 2879 To: Bob ;tag=314159 2880 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2881 CSeq: 2 BYE 2882 Content-Length: 0 2884 3.8 Unsuccessful No Answer 2886 Alice Proxy 1 Proxy 2 Bob 2887 | | | | 2888 | INVITE F1 | | | 2889 |--------------->| INVITE F2 | | 2890 | 100 F3 |--------------->| INVITE F4 | 2891 |<---------------| 100 F5 |--------------->| 2892 | |<---------------| | 2893 | | | 180 F6 | 2894 | | 180 F7 |<---------------| 2895 | 180 F8 |<---------------| | 2896 |<---------------| | | 2897 | | | | 2898 | CANCEL F9 | | | 2899 |--------------->| | | 2900 | 200 F10 | | | 2901 |<---------------| CANCEL F11 | | 2902 | |--------------->| | 2903 | | 200 F12 | | 2904 | |<---------------| | 2905 | | | CANCEL F13 | 2906 | | |--------------->| 2907 | | | 200 F14 | 2908 | | |<---------------| 2909 | | | 487 F15 | 2910 | | |<---------------| 2911 | | | ACK F16 | 2912 | | 487 F17 |--------------->| 2913 | |<---------------| | 2914 | | ACK F18 | | 2915 | 487 F19 |--------------->| | 2916 |<---------------| | | 2917 | ACK F20 | | | 2918 |--------------->| | | 2919 | | | | 2921 In this scenario, Alice gives up on the call before Bob answers 2922 (sends a 200 OK response). Alice sends a CANCEL (F9) since no final 2923 response had been received from Bob. If a 200 OK to the INVITE 2924 had crossed with the CANCEL, Alice would have sent an ACK then a BYE 2925 to Bob in order to properly terminate the call. 2927 Note that the CANCEL message is acknowledged with a 200 OK on a hop 2928 by hop basis, rather than end to end. 2930 Message Details 2932 F1 INVITE Alice -> Proxy 1 2934 INVITE sip:bob@biloxi.example.com SIP/2.0 2935 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 2936 Max-Forwards: 70 2937 Route: 2938 From: Alice ;tag=9fxced76sl 2939 To: Bob 2940 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2941 CSeq: 1 INVITE 2942 Contact: 2943 Proxy-Authorization: Digest username="alice", 2944 realm="atlanta.example.com", 2945 nonce="ze7k1ee88df84f1cec431ae6cbe5a359", opaque="", 2946 uri="sip:bob@biloxi.example.com", 2947 response="b00b416324679d7e243f55708d44be7b" 2948 Content-Type: application/sdp 2949 Content-Length: 151 2951 v=0 2952 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 2953 s=- 2954 c=IN IP4 192.0.2.101 2955 t=0 0 2956 m=audio 49172 RTP/AVP 0 2957 a=rtpmap:0 PCMU/8000 2959 /*Client for Alice prepares to receive data on port 49172 from the 2960 network.*/ 2962 F2 INVITE Proxy 1 -> Proxy 2 2964 INVITE sip:bob@biloxi.example.com SIP/2.0 2965 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 2966 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 2967 ;received=192.0.2.101 2968 Max-Forwards: 69 2969 Record-Route: 2970 From: Alice ;tag=9fxced76sl 2971 To: Bob 2972 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2973 CSeq: 1 INVITE 2974 Contact: 2975 Content-Type: application/sdp 2976 Content-Length: 151 2978 v=0 2979 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 2980 s=- 2981 c=IN IP4 192.0.2.101 2982 t=0 0 2983 m=audio 49172 RTP/AVP 0 2984 a=rtpmap:0 PCMU/8000 2986 F3 100 Trying Proxy 1 -> Alice 2988 SIP/2.0 100 Trying 2989 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 2990 ;received=192.0.2.101 2991 From: Alice ;tag=9fxced76sl 2992 To: Bob 2993 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 2994 CSeq: 1 INVITE 2995 Content-Length: 0 2997 F4 INVITE Proxy 2 -> Bob 2999 INVITE sip:bob@client.biloxi.example.com SIP/2.0 3000 Via: SIP/2.0/UDP 3001 ss2.client.biloxi.example.com:5060;branch=z9hG4bK721e418c4.1 3002 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 3003 ;received=192.0.2.111 3004 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3005 ;received=192.0.2.101 3006 Record-Route: , 3007 3008 Max-Forwards: 68 3009 From: Alice ;tag=9fxced76sl 3010 To: Bob 3011 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3012 CSeq: 1 INVITE 3013 Contact: 3014 Content-Type: application/sdp 3015 Content-Length: 151 3017 v=0 3018 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 3019 s=- 3020 c=IN IP4 192.0.2.101 3021 t=0 0 3022 m=audio 49172 RTP/AVP 0 3023 a=rtpmap:0 PCMU/8000 3025 F5 100 Trying Proxy 2 -> Proxy 1 3027 SIP/2.0 100 Trying 3028 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 3029 ;received=192.0.2.111 3030 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3031 ;received=192.0.2.101 3032 From: Alice ;tag=9fxced76sl 3033 To: Bob 3034 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3035 CSeq: 1 INVITE 3036 Content-Length: 0 3038 F6 180 Ringing Bob -> Proxy 2 3040 SIP/2.0 180 Ringing 3041 Via: SIP/2.0/UDP 3042 ss2.client.biloxi.example.com:5060;branch=z9hG4bK721e418c4.1 3043 ;received=192.0.2.222 3044 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 3045 ;received=192.0.2.111 3046 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3047 ;received=192.0.2.101 3048 Record-Route: , 3049 3050 From: Alice ;tag=9fxced76sl 3051 To: Bob ;tag=314159 3052 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3053 CSeq: 1 INVITE 3054 Contact: 3055 Content-Length: 0 3057 F7 180 Ringing Proxy 2 -> Proxy 1 3059 SIP/2.0 180 Ringing 3060 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 3061 ;received=192.0.2.111 3062 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3063 ;received=192.0.2.101 3064 Record-Route: , 3065 3066 From: Alice ;tag=9fxced76sl 3067 To: Bob ;tag=314159 3068 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3069 CSeq: 1 INVITE 3070 Contact: 3071 Content-Length: 0 3073 F8 180 Ringing Proxy 1 -> Alice 3075 SIP/2.0 180 Ringing 3076 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3077 ;received=192.0.2.101 3078 Record-Route: , 3079 3080 From: Alice ;tag=9fxced76sl 3081 To: Bob ;tag=314159 3082 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3083 CSeq: 1 INVITE 3084 Contact: 3085 Content-Length: 0 3087 F9 CANCEL Alice -> Proxy 1 3089 CANCEL sip:bob@biloxi.example.com SIP/2.0 3090 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3091 Max-Forwards: 70 3092 From: Alice ;tag=9fxced76sl 3093 To: Bob 3094 Route: 3095 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3096 CSeq: 1 CANCEL 3097 Content-Length: 0 3099 F10 200 OK Proxy 1 -> Alice 3101 SIP/2.0 200 OK 3102 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3103 ;received=192.0.2.101 3104 From: Alice ;tag=9fxced76sl 3105 To: Bob 3106 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3107 CSeq: 1 CANCEL 3108 Content-Length: 0 3110 F11 CANCEL Proxy 1 -> Proxy 2 3112 CANCEL sip:alice@atlanta.example.com SIP/2.0 3113 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 3114 Max-Forwards: 70 3115 From: Alice ;tag=9fxced76sl 3116 To: Bob 3117 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3118 CSeq: 1 CANCEL 3119 Content-Length: 0 3121 F12 200 OK Proxy 2 -> Proxy 1 3123 SIP/2.0 200 OK 3124 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 3125 ;received=192.0.2.111 3126 From: Alice ;tag=9fxced76sl 3127 To: Bob 3128 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3129 CSeq: 1 CANCEL 3130 Content-Length: 0 3132 F13 CANCEL Proxy 2 -> Bob 3134 CANCEL sip:bob@client.biloxi.example.com SIP/2.0 3135 Via: SIP/2.0/UDP 3136 ss2.biloxi.example.com:5060;branch=z9hG4bK721e418c4.1 3137 Max-Forwards: 70 3138 From: Alice ;tag=9fxced76sl 3139 To: Bob 3140 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3141 CSeq: 1 CANCEL 3142 Content-Length: 0 3144 F14 200 OK Bob -> Proxy 2 3146 SIP/2.0 200 OK 3147 Via: SIP/2.0/UDP 3148 ss2.biloxi.example.com:5060;branch=z9hG4bK721e418c4.1 3149 ;received=192.0.2.222 3150 From: Alice ;tag=9fxced76sl 3151 To: Bob 3152 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3153 CSeq: 1 CANCEL 3154 Content-Length: 0 3156 F15 487 Request Terminated Bob -> Proxy 2 3158 SIP/2.0 487 Request Terminated 3159 Via: SIP/2.0/UDP 3160 ss2.biloxi.example.com:5060;branch=z9hG4bK721e418c4.1 3161 ;received=192.0.2.222 3162 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 3163 ;received=192.0.2.111 3164 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3165 ;received=192.0.2.101 3166 From: Alice ;tag=9fxced76sl 3167 To: Bob ;tag=314159 3168 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3169 CSeq: 1 INVITE 3170 Content-Length: 0 3172 F16 ACK Proxy 2 -> Bob 3174 ACK sip:bob@client.biloxi.example.com SIP/2.0 3175 Via: SIP/2.0/UDP 3176 ss2.biloxi.example.com:5060;branch=z9hG4bK721e418c4.1 3177 Max-Forwards: 70 3178 From: Alice ;tag=9fxced76sl 3179 To: Bob ;tag=314159 3180 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3181 CSeq: 1 ACK 3182 Content-Length: 0 3184 F17 487 Request Terminated Proxy 2 -> Proxy 1 3186 SIP/2.0 487 Request Terminated 3187 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 3188 ;received=192.0.2.111 3189 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3190 ;received=192.0.2.101 3191 From: Alice ;tag=9fxced76sl 3192 To: Bob ;tag=314159 3193 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3194 CSeq: 1 INVITE 3195 Content-Length: 0 3197 F18 ACK Proxy 1 -> Proxy 2 3199 ACK sip:bob@biloxi.example.com SIP/2.0 3200 Via: SIP/2.0/UDP 3201 ss2.biloxi.example.com:5060;branch=z9hG4bK721e418c4.1 3202 Max-Forwards: 70 3203 From: Alice ;tag=9fxced76sl 3204 To: Bob ;tag=314159 3205 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3206 CSeq: 1 ACK 3207 Content-Length: 0 3209 F19 487 Request Terminated Proxy 1 -> Alice 3211 SIP/2.0 487 Request Terminated 3212 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3213 ;received=192.0.2.101 3214 From: Alice ;tag=9fxced76sl 3215 To: Bob ;tag=314159 3216 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3217 CSeq: 1 INVITE 3219 F20 ACK Alice -> Proxy 1 3221 ACK sip:bob@biloxi.example.com SIP/2.0 3222 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3223 Max-Forwards: 70 3224 From: Alice ;tag=9fxced76sl 3225 To: Bob ;tag=314159 3226 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3227 Proxy-Authorization: Digest username="alice", 3228 realm="atlanta.example.com", 3229 nonce="ze7k1ee88df84f1cec431ae6cbe5a359", opaque="", 3230 uri="sip:bob@biloxi.example.com", 3231 response="b00b416324679d7e243f55708d44be7b" 3232 CSeq: 1 ACK 3233 Content-Length: 0 3235 3.9 Unsuccessful Busy 3237 Alice Proxy 1 Proxy 2 Bob 3238 | | | | 3239 | INVITE F1 | | | 3240 |--------------->| INVITE F2 | | 3241 | 100 F3 |--------------->| INVITE F4 | 3242 |<---------------| 100 F5 |--------------->| 3243 | |<---------------| | 3244 | | | 486 F6 | 3245 | | |<---------------| 3246 | | | ACK F7 | 3247 | | 486 F8 |--------------->| 3248 | |<---------------| | 3249 | | ACK F9 | | 3250 | 486 F10 |--------------->| | 3251 |<---------------| | | 3252 | ACK F11 | | | 3253 |--------------->| | | 3254 | | | | 3256 In this scenario, Bob is busy and sends a 486 Busy Here response 3257 to Alice's INVITE. Note that the non-2xx response is acknowledged on 3258 a hop-by-hop basis instead of end-to-end. Also note that many SIP 3259 UAs will not return a 486 response, as they have multiple line and 3260 other features. 3262 Message Details 3264 F1 INVITE Alice -> Proxy 1 3266 INVITE sip:bob@biloxi.example.com SIP/2.0 3267 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3268 Max-Forwards: 70 3269 Route: 3270 From: Alice ;tag=9fxced76sl 3271 To: Bob 3272 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3273 CSeq: 1 INVITE 3274 Contact: 3275 Proxy-Authorization: Digest username="alice", 3276 realm="atlanta.example.com", 3277 nonce="dc3a5ab2530aa93112cf5904ba7d88fa", opaque="", 3278 uri="sip:bob@biloxi.example.com", 3279 response="702138b27d869ac8741e10ec643d55be" 3280 Content-Type: application/sdp 3281 Content-Length: 151 3283 v=0 3284 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 3285 s=- 3286 c=IN IP4 192.0.2.101 3287 t=0 0 3288 m=audio 49172 RTP/AVP 0 3289 a=rtpmap:0 PCMU/8000 3291 /*Client for Alice prepares to receive data on port 49172 from the 3292 network.*/ 3294 F2 INVITE Proxy 1 -> Proxy 2 3296 INVITE sip:bob@biloxi.example.com SIP/2.0 3297 Via: SIP/2.0/TCP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 3298 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3299 ;received=192.0.2.101 3300 Max-Forwards: 69 3301 Record-Route: 3302 From: Alice ;tag=9fxced76sl 3303 To: Bob 3304 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3305 CSeq: 1 INVITE 3306 Contact: 3307 Content-Type: application/sdp 3308 Content-Length: 151 3310 v=0 3311 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 3312 s=- 3313 c=IN IP4 192.0.2.101 3314 t=0 0 3315 m=audio 49172 RTP/AVP 0 3316 a=rtpmap:0 PCMU/8000 3318 F3 100 Trying Proxy 1 -> Alice 3320 SIP/2.0 100 Trying 3321 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3322 ;received=192.0.2.101 3323 From: Alice ;tag=9fxced76sl 3324 To: Bob 3325 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3326 CSeq: 1 INVITE 3327 Content-Length: 0 3328 F4 INVITE Proxy 2 -> Bob 3330 INVITE sip:bob@client.biloxi.example.com SIP/2.0 3331 Via: SIP/2.0/TCP 3332 ss2.biloxi.example.com:5060;branch=z9hG4bK721e418c4.1 3333 Via: SIP/2.0/TCP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 3334 ;received=192.0.2.111 3335 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3336 ;received=192.0.2.101 3337 Max-Forwards: 68 3338 Record-Route: , 3339 3340 From: Alice ;tag=9fxced76sl 3341 To: Bob 3342 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3343 CSeq: 1 INVITE 3344 Contact: 3345 Content-Type: application/sdp 3346 Content-Length: 151 3348 v=0 3349 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 3350 s=- 3351 c=IN IP4 192.0.2.101 3352 t=0 0 3353 m=audio 49172 RTP/AVP 0 3354 a=rtpmap:0 PCMU/8000 3356 F5 100 Trying Proxy 2 -> Proxy 1 3358 SIP/2.0 100 Trying 3359 Via: SIP/2.0/TCP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 3360 ;received=192.0.2.111 3361 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3362 ;received=192.0.2.101 3363 From: Alice ;tag=9fxced76sl 3364 To: Bob 3365 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3366 CSeq: 1 INVITE 3367 Content-Length: 0 3369 F6 486 Busy Here Bob -> Proxy 2 3371 SIP/2.0 486 Busy Here 3372 Via: SIP/2.0/TCP 3373 ss2.biloxi.example.com:5060;branch=z9hG4bK721e418c4.1 3374 ;received=192.0.2.222 3375 Via: SIP/2.0/TCP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 3376 ;received=192.0.2.111 3377 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3378 ;received=192.0.2.101 3379 From: Alice ;tag=9fxced76sl 3380 To: Bob ;tag=314159 3381 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3382 CSeq: 1 INVITE 3383 Content-Length: 0 3385 F7 ACK Proxy 2 -> Bob 3387 ACK sip:bob@client.biloxi.example.com SIP/2.0 3388 Via: SIP/2.0/TCP 3389 ss2.biloxi.example.com:5060;branch=z9hG4bK721e418c4.1 3390 Max-Forwards: 70 3391 From: Alice ;tag=9fxced76sl 3392 To: Bob ;tag=314159 3393 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3394 CSeq: 1 ACK 3395 Content-Length: 0 3397 F8 486 Busy Here Proxy 2 -> Proxy 1 3399 SIP/2.0 486 Busy Here 3400 Via: SIP/2.0/TCP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 3401 ;received=192.0.2.111 3402 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3403 ;received=192.0.2.101 3404 From: Alice ;tag=9fxced76sl 3405 To: Bob ;tag=314159 3406 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3407 CSeq: 1 INVITE 3408 Content-Length: 0 3410 F9 ACK Proxy 1 -> Proxy 2 3412 ACK sip:bob@biloxi.example.com SIP/2.0 3413 Via: SIP/2.0/TCP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 3414 Max-Forwards: 70 3415 From: Alice ;tag=9fxced76sl 3416 To: Bob ;tag=314159 3417 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3418 CSeq: 1 ACK 3419 Content-Length: 0 3421 F10 486 Busy Here Proxy 1 -> Alice 3423 SIP/2.0 486 Busy Here 3424 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3425 ;received=192.0.2.101 3426 From: Alice ;tag=9fxced76sl 3427 To: Bob ;tag=314159 3428 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3429 CSeq: 1 INVITE 3430 Content-Length: 0 3432 F11 ACK Alice -> Proxy 1 3434 ACK sip:bob@biloxi.example.com SIP/2.0 3435 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3436 Max-Forwards: 70 3437 From: Alice ;tag=9fxced76sl 3438 To: Bob ;tag=314159 3439 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3440 CSeq: 1 ACK 3441 Proxy-Authorization: Digest username="alice", 3442 realm="atlanta.example.com", 3443 nonce="dc3a5ab2530aa93112cf5904ba7d88fa", opaque="", 3444 uri="sip:bob@biloxi.example.com", 3445 response="702138b27d869ac8741e10ec643d55be" 3446 Content-Length: 0 3448 3.10 Unsuccessful No Response from User Agent 3450 Alice Proxy 1 Proxy 2 Bob 3451 | | | | 3452 | INVITE F1 | | | 3453 |--------------->| INVITE F2 | | 3454 | 100 F3 |--------------->| INVITE F4 | 3455 |<---------------| 100 F5 |--------------->| 3456 | |<---------------| INVITE F6 | 3457 | | |--------------->| 3458 | | | INVITE F7 | 3459 | | |--------------->| 3460 | | | INVITE F8 | 3461 | | |--------------->| 3462 | | | INVITE F9 | 3463 | | |--------------->| 3464 | | | INVITE F10 | 3465 | | |--------------->| 3466 | | | INVITE F11 | 3467 | | 480 F12 |--------------->| 3468 | |<---------------| | 3469 | | ACK F13 | | 3470 | 480 F14 |--------------->| | 3471 |<---------------| | | 3472 | ACK F15 | | | 3473 |--------------->| | | 3474 | | | | 3476 In this example, there is no response from Bob to Alice's INVITE 3477 messages being re-transmitted by Proxy 2. After the sixth re- 3478 transmission, Proxy 2 gives up and sends a 480 No Response to Alice. 3480 Message Details 3482 F1 INVITE Alice -> Proxy 1 3484 INVITE sip:bob@biloxi.example.com SIP/2.0 3485 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3486 Max-Forwards: 70 3487 Route: 3488 From: Alice ;tag=9fxced76sl 3489 To: Bob 3490 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3491 CSeq: 1 INVITE 3492 Contact: 3493 Proxy-Authorization: Digest username="alice", 3494 realm="atlanta.example.com", 3495 nonce="cf5904ba7d8dc3a5ab2530aa931128fa", opaque="", 3496 uri="sip:bob@biloxi.example.com", 3497 response="7afc04be7961f053c24f80e7dbaf888f" 3498 Content-Type: application/sdp 3499 Content-Length: 151 3501 v=0 3502 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 3503 s=- 3504 c=IN IP4 192.0.2.101 3505 t=0 0 3506 m=audio 49172 RTP/AVP 0 3507 a=rtpmap:0 PCMU/8000 3509 /*Client for Alice prepares to receive data on port 49172 from the 3510 network.*/ 3512 F2 INVITE Proxy 1 -> Proxy 2 3514 INVITE sip:bob@biloxi.example.com SIP/2.0 3515 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 3516 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3517 ;received=192.0.2.101 3518 Max-Forwards: 69 3519 Record-Route: 3520 From: Alice ;tag=9fxced76sl 3521 To: Bob 3522 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3523 CSeq: 1 INVITE 3524 Contact: 3525 Content-Type: application/sdp 3526 Content-Length: 151 3528 v=0 3529 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 3530 s=- 3531 c=IN IP4 192.0.2.101 3532 t=0 0 3533 m=audio 49172 RTP/AVP 0 3534 a=rtpmap:0 PCMU/8000 3536 F3 100 Trying Proxy 1 -> Alice 3538 SIP/2.0 100 Trying 3539 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3540 ;received=192.0.2.101 3541 From: Alice ;tag=9fxced76sl 3542 To: Bob 3543 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3544 CSeq: 1 INVITE 3545 Content-Length: 0 3547 F4 INVITE Proxy 2 -> Bob 3549 INVITE sip:bob@client.biloxi.example.com SIP/2.0 3550 Via: SIP/2.0/UDP 3551 ss2.biloxi.example.com:5060;branch=z9hG4bK721e418c4.1 3552 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 3553 ;received=192.0.2.111 3554 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3555 ;received=192.0.2.101 3556 Max-Forwards: 68 3557 Record-Route: , 3558 3559 From: Alice ;tag=9fxced76sl 3560 To: Bob 3561 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3562 CSeq: 1 INVITE 3563 Contact: 3564 Content-Type: application/sdp 3565 Content-Length: 151 3567 v=0 3568 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 3569 s=- 3570 c=IN IP4 192.0.2.101 3571 t=0 0 3572 m=audio 49172 RTP/AVP 0 3573 a=rtpmap:0 PCMU/8000 3575 F5 100 Trying Proxy 2 -> Proxy 1 3577 SIP/2.0 100 Trying 3578 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 3579 ;received=192.0.2.111 3580 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3581 ;received=192.0.2.101 3582 From: Alice ;tag=9fxced76sl 3583 To: Bob 3584 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3585 CSeq: 1 INVITE 3586 Content-Length: 0 3587 F6 INVITE Proxy 2 -> Bob 3589 Resend of Message F4 3591 F7 INVITE Proxy 2 -> Bob 3593 Resend of Message F4 3595 F8 INVITE Proxy 2 -> Bob 3597 Resend of Message F4 3599 F9 INVITE Proxy 2 -> Bob 3601 Resend of Message F4 3603 F10 INVITE Proxy 2 -> Bob 3605 Resend of Message F4 3607 F11 INVITE Proxy 2 -> Bob 3609 Resend of Message F4 3611 /* Proxy 2 gives up */ 3613 F12 480 No Response Proxy 2 -> Proxy 1 3615 SIP/2.0 480 No Response 3616 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 3617 ;received=192.0.2.111 3618 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3619 ;received=192.0.2.101 3620 From: Alice ;tag=9fxced76sl 3621 To: Bob ;tag=314159 3622 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3623 CSeq: 1 INVITE 3624 Content-Length: 0 3626 F13 ACK Proxy 1 -> Proxy 2 3628 ACK sip:bob@biloxi.example.com SIP/2.0 3629 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 3630 Max-Forwards: 70 3631 From: Alice ;tag=9fxced76sl 3632 To: Bob ;tag=314159 3633 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3634 CSeq: 1 ACK 3635 Content-Length: 0 3637 F14 480 No Response Proxy 1 -> Alice 3639 SIP/2.0 480 No Response 3640 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3641 ;received=192.0.2.101 3642 From: Alice ;tag=9fxced76sl 3643 To: Bob ;tag=314159 3644 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3645 CSeq: 1 INVITE 3646 Content-Length: 0 3648 F15 ACK Alice -> Proxy 1 3650 ACK sip:bob@biloxi.example.com SIP/2.0 3651 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3652 Max-Forwards: 70 3653 From: Alice ;tag=9fxced76sl 3654 To: Bob ;tag=314159 3655 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3656 CSeq: 1 ACK 3657 Proxy-Authorization: Digest username="alice", 3658 realm="atlanta.example.com", 3659 nonce="cf5904ba7d8dc3a5ab2530aa931128fa", opaque="", 3660 uri="sip:bob@biloxi.example.com", 3661 response="7afc04be7961f053c24f80e7dbaf888f" 3662 Content-Length: 0 3664 3.11 Unsuccessful Temporarily Unavailable 3666 Alice Proxy 1 Proxy 2 Bob 3667 | | | | 3668 | INVITE F1 | | | 3669 |--------------->| INVITE F2 | | 3670 | 100 F3 |--------------->| INVITE F4 | 3671 |<---------------| 100 F5 |--------------->| 3672 | |<---------------| 180 F6 | 3673 | | 180 F7 |<---------------| 3674 | 180 F8 |<---------------| | 3675 |<---------------| | 480 F9 | 3676 | | |<---------------| 3677 | | | ACK F10 | 3678 | | 480 F11 |--------------->| 3679 | |<---------------| | 3680 | | ACK F12 | | 3681 | 480 F13 |--------------->| | 3682 |<---------------| | | 3683 | ACK F14 | | | 3684 |--------------->| | | 3685 | | | | 3687 In this scenario, Bob initially sends a 180 Ringing response to 3688 Alice, indicating that alerting is taking place. However, then a 3689 480 Unavailable is then sent to Alice. This response is 3690 acknowledged then proxied back to Alice. 3692 Message Details 3694 F1 INVITE Alice -> Proxy 1 3696 INVITE sip:bob@biloxi.example.com SIP/2.0 3697 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3698 Max-Forwards: 70 3699 Route: 3700 From: Alice ;tag=9fxced76sl 3701 To: Bob 3702 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3703 CSeq: 1 INVITE 3704 Contact: 3705 Proxy-Authorization: Digest username="alice", 3706 realm="atlanta.example.com", 3707 nonce="aa9311cf5904ba7d8dc3a5ab253028fa", opaque="", 3708 uri="sip:bob@biloxi.example.com", 3709 response="59a46a91bf1646562a4d486c84b399db" 3711 Content-Type: application/sdp 3712 Content-Length: 151 3714 v=0 3715 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 3716 s=- 3717 c=IN IP4 192.0.2.101 3718 t=0 0 3719 m=audio 49172 RTP/AVP 0 3720 a=rtpmap:0 PCMU/8000 3722 /*Client for Alice prepares to receive data on port 49172 from the 3723 network.*/ 3725 F2 INVITE Proxy 1 -> Proxy 2 3727 INVITE sip:bob@biloxi.example.com SIP/2.0 3728 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 3729 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3730 ;received=192.0.2.101 3731 Max-Forwards: 69 3732 Record-Route: 3733 From: Alice ;tag=9fxced76sl 3734 To: Bob 3735 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3736 CSeq: 1 INVITE 3737 Contact: 3738 Content-Type: application/sdp 3739 Content-Length: 151 3741 v=0 3742 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 3743 s=- 3744 c=IN IP4 192.0.2.101 3745 t=0 0 3746 m=audio 49172 RTP/AVP 0 3747 a=rtpmap:0 PCMU/8000 3749 F3 100 Trying Proxy 1 -> Alice 3751 SIP/2.0 100 Trying 3752 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3753 ;received=192.0.2.101 3754 From: Alice ;tag=9fxced76sl 3755 To: Bob 3756 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3757 CSeq: 1 INVITE 3758 Content-Length: 0 3760 F4 INVITE Proxy 2 -> Bob 3762 INVITE sip:bob@client.biloxi.example.com SIP/2.0 3763 Via: SIP/2.0/UDP 3764 ss2.biloxi.example.com:5060;branch=z9hG4bK721e418c4.1 3765 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 3766 ;received=192.0.2.111 3767 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3768 ;received=192.0.2.101 3769 Max-Forwards: 68 3770 Record-Route: , 3771 3772 From: Alice ;tag=9fxced76sl 3773 To: Bob 3774 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3775 CSeq: 1 INVITE 3776 Contact: 3777 Content-Type: application/sdp 3778 Content-Length: 151 3780 v=0 3781 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com 3782 s=- 3783 c=IN IP4 192.0.2.101 3784 t=0 0 3785 m=audio 49172 RTP/AVP 0 3786 a=rtpmap:0 PCMU/8000 3788 F5 100 Trying Proxy 2 -> Proxy 1 3790 SIP/2.0 100 Trying 3791 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 3792 ;received=192.0.2.111 3793 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3794 ;received=192.0.2.101 3795 From: Alice ;tag=9fxced76sl 3796 To: Bob 3797 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3798 CSeq: 1 INVITE 3799 Content-Length: 0 3801 F6 180 Ringing Bob -> Proxy 2 3803 SIP/2.0 180 Ringing 3804 Via: SIP/2.0/UDP 3805 ss2.biloxi.example.com:5060;branch=z9hG4bK721e418c4.1 3806 ;received=192.0.2.222 3807 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 3808 ;received=192.0.2.111 3809 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3810 ;received=192.0.2.101 3811 Record-Route: , 3812 3813 From: Alice ;tag=9fxced76sl 3814 To: Bob ;tag=314159 3815 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3816 CSeq: 1 INVITE 3817 Contact: 3818 Content-Length: 0 3820 F7 180 Ringing Proxy 2 -> Proxy 1 3822 SIP/2.0 180 Ringing 3823 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 3824 ;received=192.0.2.111 3825 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3826 ;received=192.0.2.101 3827 Record-Route: , 3828 3829 From: Alice ;tag=9fxced76sl 3830 To: Bob ;tag=314159 3831 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3832 CSeq: 1 INVITE 3833 Contact: 3834 Content-Length: 0 3836 F8 180 Ringing Proxy 1 -> Alice 3838 SIP/2.0 180 Ringing 3839 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3840 ;received=192.0.2.101 3841 Record-Route: , 3842 3843 From: Alice ;tag=9fxced76sl 3844 To: Bob ;tag=314159 3845 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3846 CSeq: 1 INVITE 3847 Contact: 3848 Content-Length: 0 3849 F9 480 Temporarily Unavailable Bob -> Proxy 2 3851 SIP/2.0 480 Temporarily Unavailable 3852 Via: SIP/2.0/UDP 3853 ss2.biloxi.example.com:5060;branch=z9hG4bK721e418c4.1 3854 ;received=192.0.2.222 3855 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 3856 ;received=192.0.2.111 3857 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3858 ;received=192.0.2.101 3859 From: Alice ;tag=9fxced76sl 3860 To: Bob ;tag=314159 3861 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3862 CSeq: 1 INVITE 3863 Content-Length: 0 3865 F10 ACK Proxy 2 -> Bob 3867 ACK sip:bob@client.biloxi.example.com SIP/2.0 3868 Via: SIP/2.0/UDP 3869 ss2.biloxi.example.com:5060;branch=z9hG4bK721e418c4.1 3870 Max-Forwards: 70 3871 From: Alice ;tag=9fxced76sl 3872 To: Bob ;tag=314159 3873 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3874 CSeq: 1 ACK 3875 Content-Length: 0 3877 F11 480 Temporarily Unavailable Proxy 2 -> Proxy 1 3879 SIP/2.0 480 Temporarily Unavailable 3880 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 3881 ;received=192.0.2.111 3882 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3883 ;received=192.0.2.101 3884 From: Alice ;tag=9fxced76sl 3885 To: Bob ;tag=314159 3886 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3887 CSeq: 1 INVITE 3888 Content-Length: 0 3890 F12 ACK Proxy 1 -> Proxy 2 3892 ACK sip:bob@biloxi.example.com SIP/2.0 3893 Via: SIP/2.0/UDP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 3894 Max-Forwards: 70 3895 From: Alice ;tag=9fxced76sl 3896 To: Bob ;tag=314159 3897 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3898 CSeq: 1 ACK 3899 Content-Length: 0 3901 F13 480 Temporarily Unavailable Proxy 1 -> Alice 3903 SIP/2.0 480 Temporarily Unavailable 3904 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3905 ;received=192.0.2.101 3906 From: Alice ;tag=9fxced76sl 3907 To: Bob ;tag=314159 3908 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3909 CSeq: 1 INVITE 3910 Content-Length: 0 3912 F14 ACK Alice -> Proxy 1 3914 ACK sip:bob@biloxi.example.com SIP/2.0 3915 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 3916 Max-Forwards: 70 3917 From: Alice ;tag=9fxced76sl 3918 To: Bob ;tag=314159 3919 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com 3920 Proxy-Authorization: Digest username="alice", 3921 realm="atlanta.example.com", 3922 nonce="aa9311cf5904ba7d8dc3a5ab253028fa", opaque="", 3923 uri="sip:bob@biloxi.example.com", 3924 response="59a46a91bf1646562a4d486c84b399db" 3925 CSeq: 1 ACK 3926 Content-Length: 0 3928 Security Considerations 3930 Since this document contains examples of SIP session establishment, 3931 the security considerations in RFC 3261 [1] apply. RFC 3261 3932 describes the basic threats including registration hijacking, server 3933 impersonation, message body tampering, session modifying or teardown, 3934 and denial of service and amplification attacks. The use of HTTP 3935 Digest as shown in this document provides one-way authentication and 3936 protection against replay attacks. TLS transport is used in 3937 registration scenarios due to the lack of integrity protection in 3938 HTTP Digest and the danger of registration hijacking without it, as 3939 described in RFC 3261 [1]. A full discussion of the weaknesses of 3940 HTTP Digest is provided in RFC 3261 [1]. The use of TLS and the 3941 Secure SIP (sips) URI scheme provides a better level of security 3942 including two-way authentication. S/MIME can provide end-to-end 3943 confidentiality and integrity protection of message bodies, as 3944 described in RFC 3261. 3946 Normative References 3948 1 Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., 3949 Peterson, J., Sparks, R., Handley, M., and Schooler, E., "SIP: 3950 Session Initiation Protocol", RFC 3261, June 2002. 3952 2 Rosenberg, J. and Schulzrinne, H., "An Offer/Answer Model with 3953 SDP", Internet Engineering Task Force, RFC 3264, April 2002. 3955 3 Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, 3956 P., Luotonen, A. and Stewart, L., "HTTP authentication: Basic and 3957 Digest Access Authentication", RFC 2617, June 1999. 3959 Informative References 3961 4 Johnston, A., Donovan, S., Sparks, R., Cunningham, C., Summers, K., 3962 "Session Initiation Protocol PSTN Call Flow Examples", RFC xxxx, 3963 August 2002. 3965 Acknowledgments 3967 This document is has been a group effort by the SIP and SIPPING WGs. 3968 The authors wish to thank everyone who has read, reviewed, commented, 3969 or made suggestions to improve this document. 3971 Thanks to Rohan Mahy, Adam Roach, Gonzalo Camarillo, Cullen Jennings, 3972 and Tom Taylor for their detailed comments during the final review. 3973 Thanks to Dean Willis for his early contributions to the development 3974 of this document. 3976 The authors wish to thank Neil Deason for his additions to the 3977 Torture Test messages and Kundan Singh for performing parser 3978 validation of messages. 3980 The authors wish to thank the following individuals for their 3981 participation in the review of this call flows document: Aseem 3982 Agarwal, Rafi Assadi, Ben Campbell, Sunitha Kumar, Jon Peterson, Marc 3983 Petit-Huguenin, Vidhi Rastogi, and Bodgey Yin Shaohua. 3985 The authors also wish to thank the following individuals for their 3986 assistance: Jean-Francois Mule, Hemant Agrawal, Henry Sinnreich, 3987 David Devanatham, Joe Pizzimenti, Matt Cannon, John Hearty, the whole 3988 MCI WorldCom IPOP Design team, Scott Orton, Greg Osterhout, Pat 3989 Sollee, Doug Weisenberg, Danny Mistry, Steve McKinnon, and Denise 3990 Ingram, Denise Caballero, Tom Redman, Ilya Slain, Pat Sollee, John 3991 Truetken, and others from MCI WorldCom, 3Com, Cisco, Lucent and 3992 Nortel. 3994 Author's Addresses 3996 All listed authors actively contributed large amounts of text to this 3997 document. 3999 Alan Johnston 4000 WorldCom 4001 100 South 4th Street 4002 St. Louis, MO 63102 4003 USA 4005 EMail: alan.johnston@wcom.com 4007 Steve Donovan 4008 dynamicsoft, Inc. 4009 5100 Tennyson Parkway 4010 Suite 1200 4011 Plano, Texas 75024 4012 USA 4014 EMail: sdonovan@dynamicsoft.com 4016 Robert Sparks 4017 dynamicsoft, Inc. 4018 5100 Tennyson Parkway 4019 Suite 1200 4020 Plano, Texas 75024 4021 USA 4023 EMail: rsparks@dynamicsoft.com 4025 Chris Cunningham 4026 dynamicsoft, Inc. 4027 5100 Tennyson Parkway 4028 Suite 1200 4029 Plano, Texas 75024 4030 USA 4031 EMail: ccunningham@dynamicsoft.com 4033 Kevin Summers 4034 Sonus 4035 1701 North Collins Blvd, Suite 3000 4036 Richardson, TX 75080 4037 USA 4039 Email: kevin.summers@sonusnet.com 4041 Intellectual Property Statement 4043 The IETF takes no position regarding the validity or scope of any 4044 intellectual property or other rights that might be claimed to 4045 pertain to the implementation or use of the technology described in 4046 this document or the extent to which any license under such rights 4047 might or might not be available; neither does it represent that it 4048 has made any effort to identify any such rights. Information on the 4049 IETF's procedures with respect to rights in standards-track and 4050 standards-related documentation can be found in BCP-11. Copies of 4051 claims of rights made available for publication and any assurances of 4052 licenses to be made available, or the result of an attempt made to 4053 obtain a general license or permission for the use of such 4054 proprietary rights by implementors or users of this specification can 4055 be obtained from the IETF Secretariat. 4057 The IETF invites any interested party to bring to its attention any 4058 copyrights, patents or patent applications, or other proprietary 4059 rights which may cover technology that may be required to practice 4060 this standard. Please address the information to the IETF Executive 4061 Director. 4063 Full Copyright Statement 4065 Copyright (C) The Internet Society (2003). All Rights Reserved. 4067 This document and translations of it may be copied and furnished to 4068 others, and derivative works that comment on or otherwise explain it 4069 or assist in its implementation may be prepared, copied, published 4070 and distributed, in whole or in part, without restriction of any 4071 kind, provided that the above copyright notice and this paragraph are 4072 included on all such copies and derivative works. However, this 4073 document itself may not be modified in any way, such as by removing 4074 the copyright notice or references to the Internet Society or other 4075 Internet organizations, except as needed for the purpose of 4076 developing Internet standards in which case the procedures for 4077 copyrights defined in the Internet Standards process must be 4078 followed, or as required to translate it into languages other than 4079 English. 4081 The limited permissions granted above are perpetual and will not be 4082 revoked by the Internet Society or its successors or assignees. 4084 This document and the information contained herein is provided on an 4085 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING 4086 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 4087 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 4088 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 4089 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 4091 Acknowledgement 4093 Funding for the RFC Editor function is currently provided by the 4094 Internet Society.