3.4. Successful Session with Proxy Failure
Alice Proxy 1 Proxy 2 Bob | | | | | INVITE F1 | | | |--------------->| | | | INVITE F2 | | | |--------------->| | | | INVITE F3 | | | |--------------->| | | | INVITE F4 | | | |--------------->| | | | INVITE F5 | | | |--------------->| | | | INVITE F6 | | | |--------------->| | | | INVITE F7 | | | |--------------->| | | | INVITE F8 | | |-------------------------------->| | | 407 F9 | | |<--------------------------------| | | ACK F10 | | |-------------------------------->| | | INVITE F11 | | |-------------------------------->| INVITE F12 | | 100 F13 |--------------->| |<--------------------------------| | | | 180 F14 | | 180 F15 |<---------------| |<--------------------------------| | | | 200 F16 | | 200 F17 |<---------------| |<--------------------------------| | | ACK F18 | | |-------------------------------->| ACK F19 | | |--------------->| | Both Way RTP Media | |<================================================>| | | BYE F20 | | BYE F21 |<---------------| |<--------------------------------| | | 200 F22 | | |-------------------------------->| 200 F23 | | |--------------->| | | |
In this scenario, Alice completes a call to Bob via a Proxy Server. Alice is configured for a primary SIP Proxy Server Proxy 1 and a secondary SIP Proxy Server Proxy 2 (Or is able to use DNS SRV records to locate Proxy 1 and Proxy 2). Alice has valid credentials for both domains. Proxy 1 is out of service and does not respond to INVITEs (it is reachable, but unresponsive). Alice then completes the call to Bob using Proxy 2. Message Details F1 INVITE Alice -> Proxy 1 INVITE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK465b6d Max-Forwards: 70 Route: <sip:ss1.atlanta.example.com;lr> From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com> Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 1 INVITE Contact: <sip:alice@client.atlanta.example.com> Content-Type: application/sdp Content-Length: 151 v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s=- c=IN IP4 192.0.2.101 t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F2 INVITE Alice -> Proxy 1 Same as Message F1 F3 INVITE Alice -> Proxy 1 Same as Message F1 F4 INVITE Alice -> Proxy 1 Same as Message F1
F5 INVITE Alice -> Proxy 1 Same as Message F1 F6 INVITE Alice -> Proxy 1 Same as Message F1 F7 INVITE Alice -> Proxy 1 Same as Message F1 /* Alice gives up on the unresponsive proxy */ F8 INVITE Alice -> Proxy 2 INVITE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74b8a Max-Forwards: 70 From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com> Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com CSeq: 1 INVITE Contact: <sip:alice@client.atlanta.example.com> Content-Type: application/sdp Content-Length: 151 v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s=- c=IN IP4 192.0.2.101 t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 /* Proxy 2 challenges Alice for authentication */ F9 407 Proxy Authorization Required Proxy 2 -> Alice SIP/2.0 407 Proxy Authorization Required Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74b8a ;received=192.0.2.101 From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=2421452
Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com CSeq: 1 INVITE Proxy-Authenticate: Digest realm="biloxi.example.com", qop="auth", nonce="1ae6cbe5ea9c8e8df84fqnlec434a359", opaque="", stale=FALSE, algorithm=MD5 Content-Length: 0 F10 ACK Alice -> Proxy 2 ACK sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74b8a Max-Forwards: 70 From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=2421452 Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com CSeq: 1 ACK Content-Length: 0 /* Alice responds by re-sending the INVITE with authentication credentials in it. */ F11 INVITE Alice -> Proxy 2 INVITE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com> Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com CSeq: 2 INVITE Contact: <sip:alice@client.atlanta.example.com> Proxy-Authorization: Digest username="alice", realm="biloxi.example.com", nonce="1ae6cbe5ea9c8e8df84fqnlec434a359", opaque="", uri="sip:bob@biloxi.example.com", response="8a880c919d1a52f20a1593e228adf599" Content-Type: application/sdp Content-Length: 151 v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s=- c=IN IP4 192.0.2.101 t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000
/* Proxy 2 accepts the credentials and forwards the INVITE to Bob. Client for Alice prepares to receive data on port 49172 from the network. */ F12 INVITE Proxy 2 -> Bob INVITE sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss2.biloxi.example.com:5060;branch=z9hG4bK721e4.1 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 Max-Forwards: 69 Record-Route: <sip:ss2.biloxi.example.com;lr> From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com> Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com CSeq: 2 INVITE Contact: <sip:alice@client.atlanta.example.com> Content-Type: application/sdp Content-Length: 151 v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s=- c=IN IP4 192.0.2.101 t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F13 100 Trying Proxy 2 -> Alice SIP/2.0 100 Trying Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com> Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com CSeq: 2 INVITE Content-Length: 0 F14 180 Ringing Bob -> Proxy 2 SIP/2.0 180 Ringing Via: SIP/2.0/UDP ss2.biloxi.example.com:5060;branch=z9hG4bK721e4.1 ;received=192.0.2.222
Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 Record-Route: <sip:ss2.biloxi.example.com;lr> From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com CSeq: 2 INVITE Contact: <sip:bob@client.biloxi.example.com> Content-Length: 0 F15 180 Ringing Proxy 2 -> Alice SIP/2.0 180 Ringing Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 Record-Route: <sip:ss2.biloxi.example.com;lr> From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com CSeq: 2 INVITE Contact: <sip:bob@client.biloxi.example.com> Content-Length: 0 F16 200 OK Bob -> Proxy 2 SIP/2.0 200 OK Via: SIP/2.0/UDP ss2.biloxi.example.com:5060;branch=z9hG4bK721e4.1 ;received=192.0.2.222 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 Record-Route: <sip:ss2.biloxi.example.com;lr> From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com CSeq: 2 INVITE Contact: <sip:bob@client.biloxi.example.com> Content-Type: application/sdp Content-Length: 147 v=0 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com s=- c=IN IP4 192.0.2.201 t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000
F17 200 OK Proxy 2 -> Alice SIP/2.0 200 OK Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 Record-Route: <sip:ss2.biloxi.example.com;lr> From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com CSeq: 2 INVITE Contact: <sip:bob@client.biloxi.example.com> Content-Type: application/sdp Content-Length: 147 v=0 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com s=- c=IN IP4 192.0.2.201 t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F18 ACK Alice -> Proxy 2 ACK sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74b8g Max-Forwards: 70 Route: <sip:ss2.biloxi.example.com;lr> From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com CSeq: 2 ACK Content-Length: 0 F19 ACK Proxy 2 -> Bob ACK sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss2.biloxi.example.com:5060;branch=z9hG4bK721e4.1 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74b8g ;received=192.0.2.101 Max-Forwards: 69 From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com
CSeq: 2 ACK Content-Length: 0 /* RTP streams are established between Alice and Bob */ /* Bob Hangs Up with Alice. */ F20 BYE Bob -> Proxy 2 BYE sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 Max-Forwards: 70 Route: <sip:ss2.biloxi.example.com;lr> From: Bob <sip:bob@biloxi.example.com>;tag=314159 To: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com CSeq: 1 BYE Content-Length: 0 F21 BYE Proxy 2 -> Alice BYE sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP ss2.biloxi.example.com:5060;branch=z9hG4bK721e4.1 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;received=192.0.2.201 Max-Forwards: 69 From: Bob <sip:bob@biloxi.example.com>;tag=314159 To: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com CSeq: 1 BYE Content-Length: 0 F22 200 OK Alice -> Proxy 2 SIP/2.0 200 OK Via: SIP/2.0/UDP ss2.biloxi.example.com:5060;branch=z9hG4bK721e4.1 ;received=192.0.2.222 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;received=192.0.2.201 From: Bob <sip:bob@biloxi.example.com>;tag=314159 To: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com CSeq: 1 BYE Content-Length: 0
F23 200 OK Proxy 2 -> Bob SIP/2.0 200 OK Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;received=192.0.2.201 From: Bob <sip:bob@biloxi.example.com>;tag=314159 To: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl Call-ID: 4Fde34wkd11wsGFDs3@atlanta.example.com CSeq: 1 BYE Content-Length: 0
3.5. Session Through a SIP ALG
Alice ALG Proxy 2 Bob | | | | | INVITE F1 | | | |--------------->| INVITE F2 | | | 100 F3 |--------------->| INVITE F4 | |<---------------| 100 F5 |--------------->| | |<---------------| 180 F6 | | | 180 F7 |<---------------| | 180 F8 |<---------------| | |<---------------| | 200 F9 | | | 200 F10 |<---------------| | 200 F11 |<---------------| | |<---------------| | | ACK F12 | | |--------------->| ACK F13 | | |-------------------------------->| | RTP Media | Both Way RTP Media | |<==============>|<===============================>| | BYE F14 | | |--------------->| BYE F15 | | |-------------------------------->| | | 200 F16 | | 200 F17 |<--------------------------------| |<---------------| | | | | Alice completes a call to Bob through a ALG (Application Layer Gateway) and a SIP Proxy. The routing through the ALG is accomplished using a pre-loaded Route header in the INVITE F1. Note that the media stream setup is not end-to-end - the ALG terminates both media streams and bridges them. This is done by the ALG modifying the SDP in the INVITE (F1) and 200 OK (F10) messages, and possibly any 18x or ACK messages containing SDP. In addition to firewall traversal, this Back-to-Back User Agent (B2BUA) could be used as part of an anonymizer service (in which all identifying information on Alice would be removed), or to perform codec media conversion, such as mu-law to A-law conversion of PCM on an international call. Also note that Proxy 2 does not Record-Route in this call flow.
Message Details F1 INVITE Alice -> SIP ALG INVITE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com> Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 1 INVITE Contact: <sip:alice@client.atlanta.example.com> Route: <sip:alg1.atlanta.example.com;lr> Proxy-Authorization: Digest username="alice", realm="biloxi.example.com", nonce="85b4f1cen4341ae6cbe5a3a9c8e88df9", opaque="", uri="sip:bob@biloxi.example.com", response="b3f392f9218a328b9294076d708e6815" Content-Type: application/sdp Content-Length: 151 v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s=- c=IN IP4 192.0.2.101 t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 /* Client for Alice prepares to receive data on port 49172 from the network. */ F2 INVITE SIP ALG -> Proxy 2 INVITE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP alg1.atlanta.example.com:5060;branch=z9hG4bK739578.1 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 Max-Forwards: 69 Record-Route: <sip:alg1.atlanta.example.com;lr> From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com> Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 1 INVITE Contact: <sip:alice@client.atlanta.example.com> Proxy-Authorization: Digest username="alice", realm="biloxi.example.com",
nonce="85b4f1cen4341ae6cbe5a3a9c8e88df9", opaque="", uri="sip:bob@biloxi.example.com", response="b3f392f9218a328b9294076d708e6815" Content-Type: application/sdp Content-Length: 150 v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s=- c=IN IP4 192.0.2.128 t=0 0 m=audio 2000 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F3 100 Trying SIP ALG -> Alice SIP/2.0 100 Trying Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com> Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 1 INVITE Content-Length: 0 /* SIP ALG prepares to proxy data from port 192.0.2.128/2000 to 192.0.2.101/49172. Proxy 2 uses a Location Service function to determine where Bob is located. Based upon location analysis the call is forwarded to Bob */ F4 INVITE Proxy 2 -> Bob INVITE sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss2.biloxi.example.com:5060;branch=z9hG4bK2d4790.1 Via: SIP/2.0/UDP alg1.atlanta.example.com:5060;branch=z9hG4bK739578.1 ;received=192.0.2.128 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 Max-Forwards: 68 Record-Route: <sip:alg1.atlanta.example.com;lr> From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com> Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 1 INVITE Contact: <sip:alice@client.atlanta.example.com> Content-Type: application/sdp
Content-Length: 150 v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s=- c=IN IP4 192.0.2.128 t=0 0 m=audio 2000 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F5 100 Trying Proxy 2 -> SIP ALG SIP/2.0 100 Trying Via: SIP/2.0/UDP alg1.atlanta.example.com:5060;branch=z9hG4bK739578.1 ;received=192.0.2.128 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com> Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 1 INVITE Content-Length: 0 F6 180 Ringing Bob -> Proxy 2 SIP/2.0 180 Ringing Via: SIP/2.0/UDP ss2.biloxi.example.com:5060;branch=z9hG4bK2d4790.1 ;received=192.0.2.222 Via: SIP/2.0/UDP alg1.atlanta.example.com:5060;branch=z9hG4bK739578.1 ;received=192.0.2.128 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 Record-Route: <sip:alg1.atlanta.example.com;lr> From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 1 INVITE Contact: <sip:bob@client.biloxi.example.com> Content-Length: 0 F7 180 Ringing Proxy 2 -> SIP ALG SIP/2.0 180 Ringing Via: SIP/2.0/UDP alg1.atlanta.example.com:5060;branch=z9hG4bK739578.1 ;received=192.0.2.128
Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 Record-Route: <sip:alg1.atlanta.example.com;lr> From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 1 INVITE Contact: <sip:bob@client.biloxi.example.com> Content-Length: 0 F8 180 Ringing SIP ALG -> Alice SIP/2.0 180 Ringing Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 Record-Route: <sip:alg1.atlanta.example.com;lr> From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 1 INVITE Contact: <sip:bob@client.biloxi.example.com> Content-Length: 0 F9 200 OK Bob -> Proxy 2 SIP/2.0 200 OK Via: SIP/2.0/UDP ss2.biloxi.example.com:5060;branch=z9hG4bK2d4790.1 ;received=192.0.2.222 Via: SIP/2.0/UDP alg1.atlanta.example.com:5060;branch=z9hG4bK739578.1 ;received=192.0.2.128 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 Record-Route: <sip:alg1.atlanta.example.com;lr> From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 1 INVITE Contact: <sip:bob@client.biloxi.example.com> Content-Type: application/sdp Content-Length: 147 v=0 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com s=- c=IN IP4 192.0.2.201 t=0 0
m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F10 200 OK Proxy 2 -> SIP ALG SIP/2.0 200 OK Via: SIP/2.0/UDP alg1.atlanta.example.com:5060;branch=z9hG4bK739578.1 ;received=192.0.2.128 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 Record-Route: <sip:alg1.atlanta.example.com;lr> From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 1 INVITE Contact: <sip:bob@client.biloxi.example.com> Content-Type: application/sdp Content-Length: 147 v=0 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com s=- c=IN IP4 192.0.2.201 t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F11 200 OK SIP ALG -> Alice SIP/2.0 200 OK Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 Record-Route: <sip:alg1.atlanta.example.com;lr> From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 1 INVITE Contact: <sip:bob@client.biloxi.example.com> Content-Type: application/sdp Content-Length: 147 v=0 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com s=- c=IN IP4 192.0.2.128 t=0 0
m=audio 1734 RTP/AVP 0 a=rtpmap:0 PCMU/8000 /* The ALG prepares to proxy packets from 192.0.2.128/ 1734 to 192.0.2.201/3456 */ F12 ACK Alice -> SIP ALG ACK sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bhh Max-Forwards: 70 Route: <sip:alg1.atlanta.example.com;lr> From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 1 ACK Content-Length: 0 F13 ACK SIP ALG -> Bob ACK sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP alg1.atlanta.example.com:5060;branch=z9hG4bK739578.1 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bhh ;received=192.0.2.101 Max-Forwards: 69 From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 1 ACK Content-Length: 0 /* RTP streams are established between Alice and the ALG and between the ALG and B*/ /* Alice Hangs Up with Bob. */ F14 BYE Alice -> SIP ALG BYE sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74be5 Max-Forwards: 70 Route: <sip:alg1.atlanta.example.com;lr> From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com
CSeq: 2 BYE Content-Length: 0 F15 BYE SIP ALG -> Bob BYE sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP alg1.atlanta.example.com:5060;branch=z9hG4bK739578.1 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74be5 ;received=192.0.2.101 Max-Forwards: 69 From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 2 BYE Content-Length: 0 F16 200 OK Bob -> SIP ALG SIP/2.0 200 OK Via: SIP/2.0/UDP alg1.atlanta.example.com:5060;branch=z9hG4bK739578.1 ;received=192.0.2.128 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74be5 ;received=192.0.2.101 From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 2 BYE Content-Length: 0 F17 200 OK SIP ALG -> Alice SIP/2.0 200 OK Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74be5 ;received=192.0.2.101 From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 2 BYE Content-Length: 0
3.6. Session via Redirect and Proxy Servers with SDP in ACK
Alice Redirect Server Proxy 3 Bob | | | | | INVITE F1 | | | |--------------->| | | | 302 F2 | | | |<---------------| | | | ACK F3 | | | |--------------->| | | | INVITE F4 | | |-------------------------------->| INVITE F5 | | 100 F6 |--------------->| |<--------------------------------| 180 F7 | | 180 F8 |<---------------| |<--------------------------------| | | | 200 F9 | | 200 F10 |<---------------| |<--------------------------------| | | ACK F11 | | |-------------------------------->| ACK F12 | | |--------------->| | Both Way RTP Media | |<================================================>| | | BYE F13 | | BYE F14 |<---------------| |<--------------------------------| | | 200 F15 | | |-------------------------------->| 200 F16 | | |--------------->| | | | In this scenario, Alice places a call to Bob using first a Redirect server then a Proxy Server. The INVITE message is first sent to the Redirect Server. The Server returns a 302 Moved Temporarily response (F2) containing a Contact header with Bob's current SIP address. Alice then generates a new INVITE and sends to Bob via the Proxy Server and the call proceeds normally. In this example, no SDP is present in the INVITE, so the SDP is carried in the ACK message. The call is terminated when Bob sends a BYE message.
Message Details F1 INVITE Alice -> Redirect Server INVITE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bKbf9f44 Max-Forwards: 70 From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com> Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 1 INVITE Contact: <sip:alice@client.atlanta.example.com> Content-Length: 0 F2 302 Moved Temporarily Redirect Proxy -> Alice SIP/2.0 302 Moved Temporarily Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bKbf9f44 ;received=192.0.2.101 From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=53fHlqlQ2 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 1 INVITE Contact: <sip:bob@chicago.example.com;transport=tcp> Content-Length: 0 F3 ACK Alice -> Redirect Server ACK sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bKbf9f44 Max-Forwards: 70 From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=53fHlqlQ2 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 1 ACK Content-Length: 0 F4 INVITE Alice -> Proxy 3 INVITE sip:bob@chicago.example.com SIP/2.0 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com> Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com
CSeq: 2 INVITE Contact: <sip:alice@client.atlanta.example.com;transport=tcp> Content-Length: 0 F5 INVITE Proxy 3 -> Bob INVITE sip:bob@client.chicago.example.com SIP/2.0 Via: SIP/2.0/TCP ss3.chicago.example.com:5060;branch=z9hG4bK721e.1 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 Max-Forwards: 69 Record-Route: <sip:ss3.chicago.example.com;lr> From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com> Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 2 INVITE Contact: <sip:alice@client.atlanta.example.com;transport=tcp> Content-Length: 0 F6 100 Trying Proxy 3 -> Alice SIP/2.0 100 Trying Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com> Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 2 INVITE Content-Length: 0 F7 180 Ringing Bob -> Proxy 3 SIP/2.0 180 Ringing Via: SIP/2.0/TCP ss3.chicago.example.com:5060;branch=z9hG4bK721e.1 ;received=192.0.2.233 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 Record-Route: <sip:ss3.chicago.example.com;lr> From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 2 INVITE Contact: <sip:bob@client.chicago.example.com;transport=tcp> Content-Length: 0
F8 180 Ringing Proxy 3 -> Alice SIP/2.0 180 Ringing Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 Record-Route: <sip:ss3.chicago.example.com;lr> From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 2 INVITE Contact: <sip:bob@client.chicago.example.com;transport=tcp> Content-Length: 0 F9 200 OK Bob -> Proxy 3 SIP/2.0 200 OK Via: SIP/2.0/TCP ss3.chicago.example.com:5060;branch=z9hG4bK721e.1 ;received=192.0.2.233 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 Record-Route: <sip:ss3.chicago.example.com;lr> From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 2 INVITE Contact: <sip:bob@client.chicago.example.com;transport=tcp> Content-Type: application/sdp Content-Length: 148 v=0 o=bob 2890844527 2890844527 IN IP4 client.chicago.example.com s=- c=IN IP4 192.0.2.100 t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F10 200 OK Proxy -> Alice SIP/2.0 200 OK Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 Record-Route: <sip:ss3.chicago.example.com;lr> From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 2 INVITE Contact: <sip:bob@client.chicago.example.com;transport=tcp> Content-Type: application/sdp Content-Length: 148 v=0 o=bob 2890844527 2890844527 IN IP4 client.chicago.example.com s=- c=IN IP4 192.0.2.100 t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 /* ACK contains SDP of Alice since none present in INVITE */ F11 ACK Alice -> Proxy 3 ACK sip:bob@client.chicago.example.com SIP/2.0 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bq9 Max-Forwards: 70 Route: <sip:ss3.chicago.example.com;lr> From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 2 ACK Content-Type: application/sdp Content-Length: 151 v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s=- c=IN IP4 192.0.2.101 t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F12 ACK Proxy 3 -> Bob ACK sip:bob@client.chicago.example.com SIP/2.0 Via: SIP/2.0/TCP ss3.chicago.example.com:5060;branch=z9hG4bK721e.1 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bq9 ;received=192.0.2.101 Max-Forwards: 69 From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 2 ACK Content-Type: application/sdp Content-Length: 151 v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s=- c=IN IP4 192.0.2.101 t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 /* RTP streams are established between Alice and Bob */ /* Bob Hangs Up with Alice. */ F13 BYE Bob -> Proxy 3 BYE sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TCP client.chicago.example.com:5060;branch=z9hG4bKfgaw2 Max-Forwards: 70 Route: <sip:ss3.chicago.example.com;lr> From: Bob <sip:bob@biloxi.example.com>;tag=314159 To: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 1 BYE Content-Length: 0 F14 BYE Proxy 3 -> Alice BYE sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TCP ss3.chicago.example.com:5060;branch=z9hG4bK721e.1 ;received=192.0.2.100 Via: SIP/2.0/TCP client.chicago.example.com:5060;branch=z9hG4bKfgaw2 Max-Forwards: 69 From: Bob <sip:bob@biloxi.example.com>;tag=314159 To: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 1 BYE Content-Length: 0 F15 200 OK Alice -> Proxy 3 SIP/2.0 200 OK
Via: SIP/2.0/TCP ss3.chicago.example.com:5060;branch=z9hG4bK721e.1 ;received=192.0.2.233 Via: SIP/2.0/TCP client.chicago.example.com:5060;branch=z9hG4bKfgaw2 ;received=192.0.2.100 From: Bob <sip:bob@biloxi.example.com>;tag=314159 To: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 1 BYE Content-Length: 0 F16 200 OK Proxy 3 -> Bob SIP/2.0 200 OK Via: SIP/2.0/TCP client.chicago.example.com:5060;branch=z9hG4bKfgaw2 ;received=192.0.2.100 From: Bob <sip:bob@biloxi.example.com>;tag=314159 To: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 1 BYE Content-Length: 0
3.7. Session with re-INVITE (IP Address Change)
Alice Proxy 2 Bob | F1 INVITE | | |------------------->| F2 INVITE | | F3 100 Trying |------------------->| |<-------------------| F4 180 Ringing | | F5 180 Ringing |<-------------------| |<-------------------| | | | F6 200 OK | | F7 200 OK |<-------------------| |<-------------------| | | F8 ACK | |---------------------------------------->| | Both Way RTP Media Established | |<=======================================>| | | | Bob changes IP address | | | | F9 INVITE | |<----------------------------------------| | F10 200 OK | |---------------------------------------->| | F11 ACK | |<----------------------------------------| | New RTP Media Stream | |<=======================================>| | F12 BYE | |---------------------------------------->| | F13 200 OK | |<----------------------------------------| | | This example shows a session in which the media changes midway through the session. When Bob's IP address changes during the session, Bob sends a re-INVITE containing a new Contact and SDP (version number incremented) information to A. In this flow, the proxy does not Record-Route so is not in the SIP messaging path after the initial exchange.
Message Details F1 INVITE Alice -> Proxy 2 INVITE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com> Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 1 INVITE Contact: <sip:alice@client.atlanta.example.com> Content-Type: application/sdp Content-Length: 151 v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s=- c=IN IP4 192.0.2.101 t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F2 INVITE Proxy 2 -> Bob INVITE sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss2.biloxi.example.com:5060;branch=z9hG4bK2d4790.1 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 Max-Forwards: 69 From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com> Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 1 INVITE Contact: <sip:alice@client.atlanta.example.com> Content-Type: application/sdp Content-Length: 151 v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s=- c=IN IP4 192.0.2.101 t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000
F3 100 Trying Proxy 2 -> Alice SIP/2.0 100 Trying Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com> Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 1 INVITE Content-Length: 0 F4 180 Ringing Bob -> Proxy 2 SIP/2.0 180 Ringing Via: SIP/2.0/UDP ss2.biloxi.example.com:5060;branch=z9hG4bK2d4790.1 ;received=192.0.2.222 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 1 INVITE Contact: <sip:bob@client.biloxi.example.com> Content-Length: 0 F5 180 Ringing Proxy 2 -> Alice SIP/2.0 180 Ringing Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 1 INVITE Contact: <sip:bob@client.biloxi.example.com> Content-Length: 0 F6 200 OK Bob -> Proxy 2 SIP/2.0 200 OK Via: SIP/2.0/UDP ss2.biloxi.example.com:5060;branch=z9hG4bK2d4790.1 ;received=192.0.2.222 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl
To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 1 INVITE Contact: <sip:bob@client.biloxi.example.com> Content-Type: application/sdp Content-Length: 147 v=0 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com s=- c=IN IP4 192.0.2.201 t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F7 200 OK Proxy 2 -> Alice SIP/2.0 200 OK Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 1 INVITE Contact: <sip:bob@client.biloxi.example.com> Content-Type: application/sdp Content-Length: 147 v=0 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com s=- c=IN IP4 192.0.2.201 t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F8 ACK Alice -> Bob ACK sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74b7b Max-Forwards: 70 From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 1 ACK Content-Length: 0
/* RTP streams are established between Alice and Bob */ /* Bob changes IP address and re-INVITEs Alice with new Contact and SDP */ F9 INVITE Bob -> Alice INVITE sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.chicago.example.com:5060;branch=z9hG4bKlkld5l Max-Forwards: 70 From: Bob <sip:bob@biloxi.example.com>;tag=314159 To: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 14 INVITE Contact: <sip:bob@client.chicago.example.com> Content-Type: application/sdp Content-Length: 149 v=0 o=bob 2890844527 2890844528 IN IP4 client.chicago.example.com s=- c=IN IP4 192.0.2.100 t=0 0 m=audio 47172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F10 200 OK Alice -> Bob SIP/2.0 200 OK Via: SIP/2.0/UDP client.chicago.example.com:5060;branch=z9hG4bKlkld5l ;received=192.0.2.100 Max-Forwards: 70 From: Bob <sip:bob@biloxi.example.com>;tag=314159 To: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 14 INVITE Contact: <sip:alice@client.atlanta.example.com> Content-Type: application/sdp Content-Length: 150 v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s=- c=IN IP4 192.0.2.101 t=0 0
m=audio 1000 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F11 ACK Bob -> Alice ACK sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.chicago.example.com:5060;branch=z9hG4bKlkldcc Max-Forwards: 70 From: Bob <sip:bob@biloxi.example.com>;tag=314159 To: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 14 ACK Content-Length: 0 /* New RTP stream established between Alice and Bob */ /* Alice hangs up with Bob */ F12 BYE Alice -> Bob BYE sip:bob@client.chicago.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bo4 Max-Forwards: 70 From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 2 BYE Content-Length: 0 F13 200 OK Bob -> Alice SIP/2.0 200 OK Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bo4 ;received=192.0.2.101 Max-Forwards: 70 From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 2xTb9vxSit55XU7p8@atlanta.example.com CSeq: 2 BYE Content-Length: 0