draft-ietf-sipping-call-flows-01.txt   draft-ietf-sipping-call-flows-02.txt 
Internet Engineering Task Force Alan Johnston This document has been replaced by draft-ietf-sipping-basic-call-flows-01.txt.
Internet Draft WorldCom For more information or a copy of the document, contact the author directly.
Document: draft-ietf-sipping-call-flows-01.txt Steve Donovan
Category: Informational Robert Sparks
July 2002 Chris Cunningham
Expires: December 2002 Dean Willis
Jonathan Rosenberg
dynamicsoft
Kevin Summers
Sonus
Henning Schulzrinne
Columbia University
Session Initiation Protocol Call Flow Examples
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that other
groups may also distribute working documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet- Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
Abstract
This informational document gives examples of Session Initiation
Protocol (SIP) call flows. Elements in these call flows include SIP
User Agents and Clients, SIP Proxy and Redirect Servers, and Gateways
to the PSTN (Public Switch Telephone Network). Scenarios include SIP
Registration, SIP to SIP calling, SIP to Gateway, Gateway to SIP, and
Gateway to Gateway via SIP. Call flow diagrams and message details
are shown. PSTN telephony protocols are illustrated using ISDN
(Integrated Services Digital Network), ANSI ISUP (ISDN User Part),
and FGB (Feature Group B) circuit associated signaling. PSTN calls
are illustrated using global telephone numbers from the PSTN and
private extensions served on by a PBX (Private Branch Exchange).
Example SIP messages used for testing during SIP interoperability
test events include SIP "torture test" messages, and messages with
invalid parameters, methods, and tags.
Table of Contents
1 Overview...................................................4
1.1 General Assumptions........................................4
1.2 Legend for Message Flows...................................5
1.3 SIP Protocol Assumptions...................................6
2 SIP Registration...........................................7
2.1 Success Scenarios..........................................7
2.1.1 SIP Client New Registration................................7
2.1.2 User updates contact list..................................9
2.1.3 User Requests Current Contact List........................11
2.1.4 User Cancels Registration.................................12
2.2 Failure Scenarios.........................................13
2.2.1 Unsuccessful SIP registration.............................13
3 SIP to SIP Dialing........................................15
3.1 Success Scenarios.........................................15
3.1.1 Successful Simple SIP to SIP..............................16
3.1.2 Successful SIP to SIP through two proxies.................19
3.1.3 Successful SIP to SIP with Multi Proxy Authentication.....29
3.1.4 Successful SIP to SIP with Proxy failure..................39
3.1.5 Successful SIP to SIP through SIP ALG ....................47
3.1.6 Successful SIP to SIP via Redirect and Proxy SDP in ACK...55
3.1.7 Successful SIP to SIP with re-INVITE......................61
3.2 Failure Scenarios.........................................67
3.2.1 Unsuccessful SIP to SIP no answer.........................67
3.2.2 Unsuccessful SIP to SIP busy..............................74
3.2.3 Unsuccessful SIP to SIP no response.......................79
3.2.4 Unsuccessful SIP to SIP Temporarily Unavailable...........84
4 SIP to Gateway Dialing....................................90
4.1 Success Scenarios.........................................90
4.1.1 Successful SIP to ISUP PSTN call..........................91
4.1.2 Successful SIP to ISDN PBX call...........................99
4.1.3 Successful SIP to ISUP PSTN call with overflow...........107
4.2 Failure Scenarios........................................115
4.2.1 Unsuccessful SIP to PSTN call: Treatment from PSTN.......116
4.2.2 Unsuccessful SIP to PSTN: REL w/Cause from PSTN..........123
4.2.3 Unsuccessful SIP to PSTN: ANM Timeout....................127
5 Gateway to SIP Dialing...................................133
5.1 Success Scenarios........................................133
5.1.1 Successful PSTN to SIP call..............................134
5.1.2 Successful PSTN to SIP call, Fast Answer.................140
5.1.3 Successful PBX to SIP call...............................145
5.2 Failure Scenarios........................................151
5.2.1 Unsuccessful PSTN to SIP REL, SIP error mapped to REL....151
5.2.2 Unsuccessful PSTN to SIP REL, SIP busy mapped to REL.....153
5.2.3 Unsuccessful PSTN->SIP, SIP error interworking to tones..157
5.2.4 Unsuccessful PSTN->SIP, ACM timeout......................161
5.2.5 Unsuccessful PSTN->SIP, ACM timeout, stateless Proxy.....165
5.2.6 Unsuccessful PSTN->SIP, Call Abandonment.................168
6 Gateway to Gateway Dialing via SIP Network...............174
6.1 Success Scenarios........................................174
6.1.1 Successful ISUP PSTN to ISUP PSTN call...................175
6.1.2 Successful FGB PBX to ISDN PBX call with overflow........182
7 SIP Test Messages........................................191
7.1 INVITE Parser Torture Test Message.......................191
7.2 INVITE with Proxy-Require and Require....................192
7.3 INVITE with Unknown Schemes in URIs and URLs.............192
7.4 REGISTER with Y2038 Test.................................193
7.5 INVITE with inconsistent Accept and message body.........193
7.6 INVITE with non-SDP message body.........................194
7.7 Unknown Method Message...................................194
7.8 Unknown Method with CSeq Error...........................195
7.9 REGISTER with Unknown Authorization Scheme...............195
7.10 Multiple SIP Request in a Single Message.................196
7.11 INVITE missing Required Headers..........................197
7.12 INVITE with Duplicate Required Headers...................197
7.13 INVITE with Illegal Expires Header.......................198
7.14 200 OK Response with Broadcast Via Header................198
7.15 INVITE with Invalid Via and Contact Headers..............199
7.16 INVITE with Incorrect Content-Length Header..............200
7.17 INVITE with Invalid Value for Content-Length.............200
7.18 INVITE with Garbage after Message Body...................201
7.19 INVITE with Error in Display Name in To Header...........201
7.20 INVITE with long tokens, Call-ID, and SIP URIs...........202
7.21 INVITE with Illegal Enclosing of Request-URI in "<>".....202
7.22 INVITE with Illegal LWS within Elements of Request-URI...203
7.23 INVITE with Illegal >1 SP between elements Request-URI...204
7.24 INVITE with a Legal SIP URI With Escaped Characters......204
7.25 INVITE with the Illegal Escaped Headers Request-URI......205
7.26 INVITE with Unknown Scheme in Request-URI................206
7.27 OPTIONS with no LWS between display name and "<".........206
7.28 OPTIONS with Extra WS between display name and "<".......206
7.29 INVITE with an Illegal Date Format.......................207
7.30 INVITE with Passed Expires Time..........................207
7.31 INVITE with Max-Forwards Set to Zero.....................208
7.32 REGISTER with Escaped Header in a Legal Contact URI......209
7.33 REGISTER with Escaped Header in an Illegal Contact URI...209
7.34 INVITE with Long Values in Headers.......................210
7.35 OPTIONS with Multiple Headers............................211
7.36 INVITE with Large Number of SDP Attributes and Long URI..211
7.37 REGISTER with Contact Parameter..........................212
7.38 REGISTER with a URI Parameter............................213
7.39 INVITE with Unquoted Display Name with Tokens............213
7.40 INVITE with Unquoted Display Name with Non-Token Chars...213
7.41 INVITE with Unknown (Higher) Protocol Version Start Line.214
8 Security Considerations .................................214
9 IANA Considerations .....................................215
10 Acknowledgements.........................................215
11 References...............................................215
1 Overview
The call flows shown in this document were developed in the design of
a carrier-class SIP IP Telephony network. They represent an example
minimum set of functionality for SIP to be used in IP Telephony
applications. The message examples were developed during the SIP
interoperability tests known as SIPit.
It is the hope of the authors that this document will be useful for
SIP implementors, designers, and protocol researchers alike and will
help further the goal of a standard SIP implementation for IP
Telephony. It is envisioned that as changes to the standard and
additional RFCs are added that this document will reflect those
changes and represent the current state of a standard interoperable
SIP IP Telephony implementation.
Note that this document is informational, and is NOT NORMATIVE on any
aspect of SIP or SIP/PSTN interworking.
These call flows are based on the current version 2.0 of SIP in
[RFC3261] with SDP usage described in [RFC3264].
Various PSTN signaling protocols are illustrated in this document:
ISDN (Integrated Services Digital Network), ANSI ISUP (ISDN User
Part) and FGB (Feature Group B) circuit associated signaling. They
were chosen to illustrate the nature of SIP/PSTN interworking - they
are not a complete or even representative set. Also, some details
and parameters of these PSTN protocols have been omitted. For full
information about SIP to ISUP mapping, refer to [SIP-ISUP].
Finally, some example messages are given along with expected
behavior of clients and servers.
1.1 General Assumptions
A number of architecture, network, and protocol assumptions underly
the call flows in this document. Note that these assumptions are not
requirements. They are outlined in this section so that they may be
taken into consideration and to aid in the understanding of the call
flow examples.
The authentication of SIP User Agents in these example call flows is
performed using SIP Digest as defined in [RFC3261] and [RFC2617].
Throughout this document the call flows show a network where the
proxy servers authenticate users on behalf of gateways. Gateways may
also authenticate users directly. Both of these are reasonable usages
of SIP. If gateways do not authenticate directly they would be to
refuse requests from entities other than trusted proxy servers with
which they have effective channel security (for example [RFC2246] or
[RFC2401])."
The SIP Proxy Server has access to a Location Service and other
databases. Information present in the Request-URI and the context
(From header) is sufficient to determine to which proxy or gateway
the message should be routed. In most cases, a primary and secondary
route will be determined in case of Proxy or Gateway failure
downstream.
Some Proxy Servers in these call flows insert Record-Route headers
into requests to ensure that they are in the signaling path for
future message exchanges.
Gateways provide tones (ringing, busy, etc) and announcements to the
PSTN side based on SIP response messages, or pass along audio in-band
tones (ringing, busy tone, etc.) in an early media stream to the SIP
side.
The interactions between the Proxy and Gateway can be summarized as
follows:
. The SIP Proxy Server performs digit analysis and lookup and
locates the correct gateway.
. The SIP Proxy Server performs gateway location based on primary
and secondary routing.
Telephone numbers are usually represented as SIP URIs. Note that an
alternative is the use of the tel URI [RFC2806].
These flows show UDP for transport. Other transport schemes could
also be used.
1.2 Legend for Message Flows
Dashed lines (---) represent signaling messages that are mandatory to
the call scenario. These messages can be SIP or PSTN
signaling. The arrow indicates the direction of message flow.
Double dashed lines (===) represent media paths between network
elements.
Messages with parentheses around their name represent optional
messages.
Messages are identified in the Figures as F1, F2, etc. This
references the message details in the list that follows the Figure.
Comments in the message details are shown in the following form:
/* Comments. */
1.3 SIP Protocol Assumptions
This document is informational only and is NOT NORMATIVE in any
sense.
For simplicity in reading and editing the document, there are a
number of differences between some of the examples and actual SIP
messages. For example, the SIP Digest responses are not actual MD5
encodings. Call-IDs are often repeated, and CSeq counts often begin
at 1. Header fields are usually shown in the same order. Usually
only the minimum required header field set is shown, others that
would normally be present such as Accept, Supported, Allow, etc are
not shown.
Actors:
Element Display Name URI IP Address
------- ------------ --- ----------
User Agent BigGuy UserA@atlanta.com 192.168.100.101
User Agent LittleGuy UserB@biloxi.com 192.168.200.201
User Agent UserB@chicago.com 192.168.200.100
Proxy Server ss1.atlanta.com 192.168.255.111
Proxy/Registrar ss2.biloxi.com 192.168.156.222
Proxy Server ss3.chicago.com 192.168.182.333
ALG alg1.atlanta.com 192.168.255.128
User Agent (Gateway) gw1.atlanta.com 192.168.255.201
User Agent (Gateway) gw2.atlanta.com 192.168.255.202
User Agent (Gateway) gw3.atlanta.com 192.168.255.203
User Agent (Gateway) ngw1.atlanta.com 192.168.255.101
User Agent (Gateway) ngw2.atlanta.com 192.168.255.102
2 SIP Registration
2.1 Success Scenarios
Registration binds a particular device Contact URI with a SIP user
AOR (Address of Record).
2.1.1 SIP Client New Registration
User B SIP Server
| |
| REGISTER F1 |
|------------------------------>|
| 401 Unauthorized F2 |
|<------------------------------|
| REGISTER F3 |
|------------------------------>|
| 200 OK F4 |
|<------------------------------|
| |
User B sends a SIP REGISTER request to the SIP server. The request
includes the user's contact list. The SIP server provides a
challenge to User B. User B enters her/his valid user ID and
password. User B's SIP client encrypts the user information
according to the challenge issued by the SIP server and
sends the response to the SIP server. The SIP server validates the
user's credentials. It registers the user in its contact database
and returns a response (200 OK) to User B's SIP client. The response
includes the user's current contact list in Contact headers. The
format of the authentication shown is SIP digest. It is assumed that
User B has not previously registered with this Server.
Message Details
F1 REGISTER B -> SIP Server
REGISTER sip:ss2.biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.biloxi.com:5060;branch=z9hG4bKnashds7
Max-Forwards: 70
From: LittleGuy <sip:UserB@biloxi.com>;tag=a73kszlfl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 1j9FpLxk3uxtm8tn@biloxi.com
CSeq: 1 REGISTER
Contact: <sip:UserB@192.168.200.201>
Content-Length: 0
F2 401 Unauthorized SIP Server -> User B
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP client.biloxi.com:5060;branch=z9hG4bKnashds7
;received=192.168.200.201
From: LittleGuy <sip:UserB@biloxi.com>;tag=a73kszlfl
To: LittleGuy <sip:UserB@biloxi.com>;tag=1410948204
Call-ID: 1j9FpLxk3uxtm8tn@biloxi.com
CSeq: 1 REGISTER
WWW-Authenticate: Digest realm="atlanta.com", qop="auth",
nonce="ea9c8e88df84f1cec4341ae6cbe5a359",
opaque="", stale=FALSE, algorithm=MD5
Content-Length: 0
F3 REGISTER B -> SIP Server
REGISTER sip:ss2.biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.biloxi.com:5060;branch=z9hG4bKnashds7
Max-Forwards: 70
From: LittleGuy <sip:UserB@biloxi.com>;tag=ja743ks76zlflH
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 1j9FpLxk3uxtm8tn@biloxi.com
CSeq: 2 REGISTER
Contact: <sip:UserB@192.168.200.201>
Authorization: Digest username="UserB", realm="atlanta.com"
nonce="ea9c8e88df84f1cec4341ae6cbe5a359", opaque="",
uri="sip:ss2.biloxi.com", response="dfe56131d1958046689d83306477ecc"
Content-Length: 0
F4 200 OK SIP Server -> B
SIP/2.0 200 OK
Via: SIP/2.0/UDP client.biloxi.com:5060;branch=z9hG4bKnashds7
;received=192.168.200.201
From: LittleGuy <sip:UserB@biloxi.com>;tag=ja743ks76zlflH
To: LittleGuy <sip:UserB@biloxi.com>;tag=37GkEhwl6
Call-ID: 1j9FpLxk3uxtm8tn@biloxi.com
CSeq: 2 REGISTER
Contact: <sip:UserB@192.168.200.201>;expires=3600
Content-Length: 0
2.1.2 User updates contact list
User B SIP Server
| |
| REGISTER F1 |
|------------------------------>|
| 200 OK F2 |
|<------------------------------|
| |
User B wishes to update the list of addresses where the SIP server
will redirect or forward INVITE requests.
User B sends a SIP REGISTER request to the SIP server. User B's
request includes an updated contact list. Since the user already has
authenticated with the server, the user supplies authentication
credentials with the request and is not challenged by the server.
The SIP server validates the user's credentials. It registers the
user in its contact database, updates the user's contact list, and
returns a response (200 OK) to User B's SIP client. The response
includes the user's current contact list in Contact headers.
Message Details
F1 REGISTER B -> SIP Server
REGISTER sip:ss2.biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.biloxi.com:5060;branch=z9hG4bKnashds7
Max-Forwards: 70
From: LittleGuy <sip:UserB@biloxi.com>;tag=a73kszlfl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 1j9FpLxk3uxtm8tn@biloxi.com
CSeq: 1 REGISTER
Contact: mailto:UserB@biloxi.com
Authorization: Digest username="UserB", realm="atlanta.com",
qop="auth", nonce="1cec4341ae6cbe5a359ea9c8e88df84f", opaque="",
uri="sip:ss2.biloxi.com",
response="71ba27c64bd01de719686aa4590d5824"
Content-Length: 0
F2 200 OK SIP Server -> B
SIP/2.0 200 OK
Via: SIP/2.0/UDP client.biloxi.com:5060;branch=z9hG4bKnashds7
;received=192.168.200.201
From: LittleGuy <sip:UserB@biloxi.com>;tag=a73kszlfl
To: LittleGuy <sip:UserB@biloxi.com>;tag=34095828jh
Call-ID: 1j9FpLxk3uxtm8tn@biloxi.com
CSeq: 1 REGISTER
Contact: <sip:UserB@192.168.200.201>;expires=3600
Contact: <mailto:UserB@biloxi.com>;expires=4294967295
Content-Length: 0
2.1.3 User Requests Current Contact List
User B SIP Server
| |
| REGISTER F1 |
|------------------------------>|
| 200 OK F2 |
|<------------------------------|
| |
User B sends a register request to the Proxy Server containing no
Contact headers, indicating the user wishes to query the server for
the user's current contact list. Since the user already has
authenticated with the server, the user supplies authentication
credentials with the request and is not challenged by the server. The
SIP server validates the user's credentials. The server returns a
response (200 OK) which includes the user's current registration list
in Contact headers.
Message Details
F1 REGISTER B -> SIP Server
REGISTER sip:ss2.biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.biloxi.com:5060;branch=z9hG4bKnashds7
Max-Forwards: 70
From: LittleGuy <sip:UserB@biloxi.com>;tag=a73kszlfl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 1j9FpLxk3uxtm8tn@biloxi.com
CSeq: 1 REGISTER
Authorization: Digest username="UserB", realm="atlanta.com",
nonce="df84f1cec4341ae6cbe5ap359a9c8e88", opaque="",
uri="sip:ss2.biloxi.com",
response="aa7ab4678258377c6f7d4be6087e2f60"
Content-Length: 0
F2 200 OK SIP Server -> B
SIP/2.0 200 OK
Via: SIP/2.0/UDP client.biloxi.com:5060;branch=z9hG4bKnashds7
;received=192.168.200.201
From: LittleGuy <sip:UserB@biloxi.com>;tag=a73kszlfl
To: LittleGuy <sip:UserB@biloxi.com>;tag=jqoiweu75
Call-ID: 1j9FpLxk3uxtm8tn@biloxi.com
CSeq: 1 REGISTER
Contact: <sip:UserB@192.168.200.201>;expires=3600
Contact: <mailto:UserB@biloxi.com>;expires=4294967295
Content-Length: 0
2.1.4 User Cancels Registration
User B SIP Server
| |
| REGISTER F1 |
|------------------------------>|
| 200 OK F2 |
|<------------------------------|
| |
User B wishes to cancel their registration with the SIP
server. User B sends a SIP REGISTER request to the
SIP server. The request has an expiration period of 0 and applies to
all existing contact locations. Since the user already has
authenticated with the server, the user supplies authentication
credentials with the request and is not challenged by the server.
The SIP server validates the user's credentials. It clears the
user's contact list, and returns a response (200 OK) to User B's SIP
client.
Message Details
F1 REGISTER B -> SIP Server
REGISTER sip:ss2.biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.biloxi.com:5060;branch=z9hG4bKnashds7
Max-Forwards: 70
From: LittleGuy <sip:UserB@biloxi.com>;tag=a73kszlfl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 1j9FpLxk3uxtm8tn@biloxi.com
CSeq: 1 REGISTER
Expires: 0
Contact: *
Authorization: Digest username="UserB", realm="atlanta.com",
nonce="88df84f1cac4341aea9c8ee6cbe5a359", opaque="",
uri="sip:ss2.biloxi.com",
response="ff0437c51696f9a76244f0cf1dbabbea"
Content-Length: 0
F2 200 OK SIP Server -> B
SIP/2.0 200 OK
Via: SIP/2.0/UDP client.biloxi.com:5060;branch=z9hG4bKnashds7
;received=192.168.200.201
From: LittleGuy <sip:UserB@biloxi.com>;tag=a73kszlfl
To: LittleGuy <sip:UserB@biloxi.com>;tag=1418nmdsrf
Call-ID: 1j9FpLxk3uxtm8tn@biloxi.com
CSeq: 1 REGISTER
Content-Length: 0
2.2 Failure Scenarios
2.2.1 Unsuccessful SIP registration
User B SIP Server
| |
| REGISTER F1 |
|------------------------------>|
| 401 Unauthorized F2 |
|<------------------------------|
| REGISTER F3 |
|------------------------------>|
| 401 Unauthorized F4 |
|<------------------------------|
| |
User B sends a SIP REGISTER request to the SIP Server. The SIP
server provides a challenge to User B. User B enters her/his user ID
and password. User B's SIP client encrypts the user information
according to the challenge issued by the SIP server and sends the
response to the SIP server. The SIP server attempts to validate the
user's credentials, but they are not valid (the user's password does
not match the password established for the user's account). The
server returns a response (401 Unauthorized) to User B's SIP client.
Message Details
F1 REGISTER B -> SIP Server
REGISTER sip:ss2.biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.biloxi.com:5060;branch=z9hG4bKnashds7
Max-Forwards: 70
From: LittleGuy <sip:UserB@biloxi.com>;tag=a73kszlfl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 1j9FpLxk3uxtm8tn@biloxi.com
CSeq: 1 REGISTER
Contact: <sip:UserB@192.168.200.201>
Content-Length: 0
F2 Unauthorized SIP Server -> User B
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP client.biloxi.com:5060;branch=z9hG4bKnashds7
;received=192.168.200.201
From: LittleGuy <sip:UserB@biloxi.com>;tag=a73kszlfl
To: LittleGuy <sip:UserB@biloxi.com>;tag=1410948204
Call-ID: 1j9FpLxk3uxtm8tn@biloxi.com
CSeq: 1 REGISTER
WWW-Authenticate: Digest realm="atlanta.com", qop="auth",
nonce="f1cec4341ae6ca9c8e88df84be55a359",
opaque="", stale=FALSE, algorithm=MD5
Content-Length: 0
F3 REGISTER B -> SIP Server
REGISTER sip:ss2.biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.biloxi.com:5060;branch=z9hG4bKnashds7
Max-Forwards: 70
From: LittleGuy <sip:UserB@biloxi.com>;tag=JueHGuidj28dfga
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 1j9FpLxk3uxtm8tn@biloxi.com
CSeq: 2 REGISTER
Contact: <sip:UserB@192.168.200.201>
Authorization: Digest username="UserB", realm="atlanta.com",
nonce="f1cec4341ae6ca9c8e88df84be55a359", opaque="",
uri="sip:ss2.biloxi.com",
response="61f8470ceb87d7ebf508220214ed438b"
Content-Length: 0
/* The response above encodes the incorrect password */
F4 401 Unauthorized SIP Server -> User B
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP client.biloxi.com:5060;branch=z9hG4bKnashds7
;received=192.168.200.201
From: LittleGuy <sip:UserB@biloxi.com>;tag=JueHGuidj28dfga
To: LittleGuy <sip:UserB@biloxi.com>;tag=1410948204
Call-ID: 1j9FpLxk3uxtm8tn@biloxi.com
CSeq: 2 REGISTER
WWW-Authenticate: Digest realm="atlanta.com", qop="auth",
nonce="84f1c1ae6cbe5ua9c8e88dfa3ecm3459",
opaque="", stale=FALSE, algorithm=MD5
Content-Length: 0
3 SIP to SIP Dialing
3.1 Success Scenarios
This section details calls between two SIP User Agents (UAs):
User A and User B. User A (LittleGuy sip:UserA@atlanta.com) and User
B (BigGuy sip:UserB@biloxi.com) are assumed to be SIP phones or SIP-
enabled devices. The successful calls show the initial signaling,
the exchange of media information in the form of SDP payloads, the
establishment of the media session, then finally the termination of
the call.
SIP digest authentication is used by Proxy Servers to
authenticate the caller User A. It is assumed that User B has
registered with Proxy Server Proxy 2 as per Section 2.1 to be able to
receive the calls via the Proxy.
3.1.1 Successful Simple SIP to SIP
User A User B
| |
| INVITE F1 |
|----------------------->|
| 180 Ringing F2 |
|<-----------------------|
| |
| 200 OK F3 |
|<-----------------------|
| ACK F4 |
|----------------------->|
| Both Way RTP Media |
|<======================>|
| |
| BYE F5 |
|<-----------------------|
| 200 OK F6 |
|----------------------->|
| |
In this scenario, User A completes a call to User B directly.
Message Details
F1 INVITE User A -> User B
INVITE sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 3848276298220188511@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserA@192.168.100.101>
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F2 180 Ringing User B -> User A
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=8321234356
Call-ID: 3848276298220188511@atlanta.com
CSeq: 1 INVITE
Content-Length: 0
F3 200 OK User B -> User A
SIP/2.0 200 OK
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=8321234356
Call-ID: 3848276298220188511@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserB@192.168.200.201>
Content-Type: application/sdp
Content-Length: 145
v=0
o=UserB 2890844527 2890844527 IN IP4 client.biloxi.com
s=-
c=IN IP4 192.168.200.201
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F4 ACK User A -> User B
ACK sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=8321234356
Call-ID: 3848276298220188511@atlanta.com
CSeq: 1 ACK
Content-Length: 0
/* RTP streams are established between A and B */
/* User B Hangs Up with User A. Note that the CSeq is NOT 2, since
User A and User B maintain their own independent CSeq counts.
(The INVITE was request 1 generated by User A, and the BYE is
request 1 generated by User B) */
F5 BYE User B -> User A
BYE sip:UserA@192.168.100.101 SIP/2.0
Via: SIP/2.0/UDP client.biloxi.com:5060;branch=z9hG4bKnashds7
Max-Forwards: 70
From: LittleGuy <sip:UserB@biloxi.com>;tag=8321234356
To: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
Call-ID: 3848276298220188511@atlanta.com
CSeq: 1 BYE
Content-Length: 0
F6 200 OK User A -> User B
SIP/2.0 200 OK
Via: SIP/2.0/UDP client.biloxi.com:5060;branch=z9hG4bKnashds7
;received=192.168.200.201
From: LittleGuy <sip:UserB@biloxi.com>;tag=8321234356
To: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
Call-ID: 3848276298220188511@atlanta.com
CSeq: 1 BYE
Content-Length: 0
3.1.2 Successful SIP to SIP through two proxies
User A Proxy 1 Proxy 2 User B
| | | |
| INVITE F1 | | |
|--------------->| | |
| 407 F2 | | |
|<---------------| | |
| ACK F3 | | |
|--------------->| | |
| INVITE F4 | | |
|--------------->| INVITE F5 | |
| 100 F6 |--------------->| INVITE F7 |
|<---------------| 100 F8 |--------------->|
| |<---------------| |
| | | 180 F9 |
| | 180 F10 |<---------------|
| 180 F11 |<---------------| |
|<---------------| | 200 F12 |
| | 200 F13 |<---------------|
| 200 F14 |<---------------| |
|<---------------| | |
| ACK F15 | | |
|--------------->| ACK F16 | |
| |--------------->| ACK F17 |
| | |--------------->|
| Both Way RTP Media |
|<================================================>|
| | | BYE F18 |
| | BYE F19 |<---------------|
| BYE F20 |<---------------| |
|<---------------| | |
| 200 F21 | | |
|--------------->| 200 F22 | |
| |--------------->| 200 F23 |
| | |--------------->|
| | | |
In this scenario, User A completes a call to User B using two proxies
Proxy 1 and Proxy 2. The initial INVITE (F1) contains a pre-loaded
Route header with the address of Proxy 1 (Proxy 1 is configured as a
default outbound proxy for User A). The request does not contain the
Authorization credentials Proxy 1 requires, so a 407 Proxy
Authorization response is sent containing the challenge information.
A new INVITE (F4) is then sent containing the correct credentials and
the call proceeds. The call terminates when User B disconnects by
initiating a BYE message.
Proxy 1 inserts a Record-Route header into the INVITE message to
ensure that it is present in all subsequent message exchanges. Proxy
2 also inserts itself into the Record-Route header. The ACK (F15)
and BYE (F18) both have a Route header.
Message Details
F1 INVITE A -> Proxy 1
INVITE sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 3848276298220188511@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserA@192.168.100.101>
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/* Proxy 1 challenges User A for authentication */
F2 407 Proxy Authorization Required Proxy 1 -> User A
SIP/2.0 407 Proxy Authorization Required
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=3flal12sf
Call-ID: 3848276298220188511@atlanta.com
CSeq: 1 INVITE
Proxy-Authenticate: Digest realm="atlanta.com", qop="auth",
nonce="f84f1cec41e6cbe5aea9c8e88d359",
opaque="", stale=FALSE, algorithm=MD5
Content-Length: 0
F3 ACK A -> Proxy 1
ACK sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=3flal12sf
Call-ID: 3848276298220188511@atlanta.com
CSeq: 1 ACK
Content-Length: 0
/* User A responds be re-sending the INVITE with authentication
credentials in it. */
F4 INVITE A -> Proxy 1
INVITE sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 3848276298220188511@atlanta.com
CSeq: 2 INVITE
Contact: <sip:UserA@192.168.100.101>
Proxy-Authorization: Digest username="UserA", realm="atlanta.com",
nonce="wf84f1ceczx41ae6cbe5aea9c8e88d359", opaque="",
uri="sip:UserB@biloxi.com", response="42ce3cef44b22f50c6a6071bc8"
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/* Proxy 1 accepts the credentials and forwards the INVITE to Proxy
2. Proxy 1 is assumed to have been authenticated by Proxy 2 using
IPSec. Client for A prepares to receive data on port 49172 from the
network. */
F5 INVITE Proxy 1 -> Proxy 2
INVITE sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 69
Record-Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 3848276298220188511@atlanta.com
CSeq: 2 INVITE
Contact: <sip:UserA@192.168.100.101>
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F6 100 Trying Proxy 1 -> User A
SIP/2.0 100 Trying
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 3848276298220188511@atlanta.com
CSeq: 2 INVITE
Content-Length: 0
F7 INVITE Proxy 2 -> B
INVITE sip:UserB@192.168.200.201 SIP/2.0
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK721e418c4.1
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 68
Record-Route: <sip:ss2.biloxi.com;lr>, <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 3848276298220188511@atlanta.com
CSeq: 2 INVITE
Contact: <sip:UserA@192.168.100.101>
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F8 100 Trying Proxy 2 -> Proxy 1
SIP/2.0 100 Trying
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 3848276298220188511@atlanta.com
CSeq: 2 INVITE
Content-Length: 0
F9 180 Ringing B -> Proxy 2
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK721e418c4.1
;received=192.168.156.222
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss2.biloxi.com;lr>, <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 3848276298220188511@atlanta.com
Contact: <sip:UserB@192.168.200.201>
CSeq: 2 INVITE
Content-Length: 0
F10 180 Ringing Proxy 2 -> Proxy 1
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss2.biloxi.com;lr>, <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 3848276298220188511@atlanta.com
Contact: <sip:UserB@192.168.200.201>
CSeq: 2 INVITE
Content-Length: 0
F11 180 Ringing Proxy 1 -> A
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss2.biloxi.com;lr>, <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 3848276298220188511@atlanta.com
Contact: <sip:UserB@192.168.200.201>
CSeq: 2 INVITE
Content-Length: 0
F12 200 OK B -> Proxy 2
SIP/2.0 200 OK
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK721e418c4.1
;received=192.168.156.222
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss2.biloxi.com;lr>, <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 3848276298220188511@atlanta.com
CSeq: 2 INVITE
Contact: <sip:UserB@192.168.200.201>
Content-Type: application/sdp
Content-Length: 145
v=0
o=UserB 2890844527 2890844527 IN IP4 client.biloxi.com
s=-
c=IN IP4 192.168.200.201
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F13 200 OK Proxy 2 -> Proxy 1
SIP/2.0 200 OK
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss2.biloxi.com;lr>, <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 3848276298220188511@atlanta.com
CSeq: 2 INVITE
Contact: <sip:UserB@192.168.200.201>
Content-Type: application/sdp
Content-Length: 145
v=0
o=UserB 2890844527 2890844527 IN IP4 client.biloxi.com
s=-
c=IN IP4 192.168.200.201
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F14 200 OK Proxy 1 -> A
SIP/2.0 200 OK
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss2.biloxi.com;lr>, <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 3848276298220188511@atlanta.com
CSeq: 2 INVITE
Contact: <sip:UserB@192.168.200.201>
Content-Type: application/sdp
Content-Length: 145
v=0
o=UserB 2890844527 2890844527 IN IP4 client.biloxi.com
s=-
c=IN IP4 192.168.200.201
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F15 ACK A -> Proxy 1
ACK sip:UserB@192.168.200.201 SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
Route: <sip:ss1.atlanta.com;lr>, <sip:ss2.biloxi.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 3848276298220188511@atlanta.com
CSeq: 2 ACK
Content-Length: 0
F16 ACK Proxy 1 -> Proxy 2
ACK sip:UserB@192.168.200.201 SIP/2.0
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 69
Route: <sip:ss2.biloxi.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 3848276298220188511@atlanta.com
CSeq: 2 ACK
Content-Length: 0
F17 ACK Proxy 2 -> B
ACK sip:UserB@192.168.200.201 SIP/2.0
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK721e418c4.1
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 68
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 3848276298220188511@atlanta.com
CSeq: 2 ACK
Content-Length: 0
/* RTP streams are established between A and B */
/* User B Hangs Up with User A. */
/* Again, note that the CSeq is NOT 3. User A and User B maintain
their own separate CSeq counts */
F18 BYE User B -> Proxy 2
BYE sip:UserA@192.168.100.101 SIP/2.0
Via: SIP/2.0/UDP client.biloxi.com:5060;branch=z9hG4bKnashds7
Max-Forwards: 70
Route: <sip:ss2.biloxi.com;lr>, <sip:ss1.atlanta.com;lr>
From: LittleGuy <sip:UserB@biloxi.com>;tag=314159
To: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
Call-ID: 3848276298220188511@atlanta.com
CSeq: 1 BYE
Content-Length: 0
F19 BYE Proxy 2 -> Proxy 1
BYE sip:UserA@192.168.100.101 SIP/2.0
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK721e418c4.1
Via: SIP/2.0/UDP client.biloxi.com:5060;branch=z9hG4bKnashds7
;received=192.168.200.201
Max-Forwards: 69
Route: <sip:ss1.atlanta.com;lr>
From: LittleGuy <sip:UserB@biloxi.com>;tag=314159
To: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
Call-ID: 3848276298220188511@atlanta.com
CSeq: 1 BYE
Content-Length: 0
F20 BYE Proxy 1 -> User A
BYE sip:UserA@192.168.100.101 SIP/2.0
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK721e418c4.1
;received=192.168.156.222
Via: SIP/2.0/UDP client.biloxi.com:5060;branch=z9hG4bKnashds7
;received=192.168.200.201
Max-Forwards: 68
From: LittleGuy <sip:UserB@biloxi.com>;tag=314159
To: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
Call-ID: 3848276298220188511@atlanta.com
CSeq: 1 BYE
Content-Length: 0
F21 200 OK User A -> Proxy 1
SIP/2.0 200 OK
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK721e418c4.1
;received=192.168.156.222
Via: SIP/2.0/UDP client.biloxi.com:5060;branch=z9hG4bKnashds7
;received=192.168.200.201
From: LittleGuy <sip:UserB@biloxi.com>;tag=314159
To: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
Call-ID: 3848276298220188511@atlanta.com
CSeq: 1 BYE
Content-Length: 0
F22 200 OK Proxy 1 -> Proxy 2
SIP/2.0 200 OK
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK721e418c4.1
;received=192.168.156.222
Via: SIP/2.0/UDP client.biloxi.com:5060;branch=z9hG4bKnashds7
;received=192.168.100.101
From: LittleGuy <sip:UserB@biloxi.com>;tag=314159
To: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
Call-ID: 3848276298220188511@atlanta.com
CSeq: 1 BYE
Content-Length: 0
F23 200 OK Proxy 2 -> User B
SIP/2.0 200 OK
Via: SIP/2.0/UDP client.biloxi.com:5060;branch=z9hG4bKnashds7
;received=192.168.200.201
From: LittleGuy <sip:UserB@biloxi.com>;tag=314159
To: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
Call-ID: 3848276298220188511@atlanta.com
CSeq: 1 BYE
Content-Length: 0
3.1.3 SIP to SIP with Multi Proxy Authentication
User A Proxy 1 Proxy 2 User B
| | | |
| INVITE F1 | | |
|----------->| | |
| 407 Proxy Authorization Required F2 |
|<-----------| | |
| ACK F3 | | |
|----------->| | |
| INVITE F4 | | |
|----------->| | |
| 100 F5 | | |
|<-----------| INVITE F6 | |
| |---------->| |
| | 407 Proxy Authorization Required F7
| |<----------| |
| | ACK F8 | |
| |---------->| |
| 407 Proxy Authorization Required F9 |
|<-----------| | |
| ACK F10 | | |
|----------->| | |
| INVITE F11| | |
|----------->| | |
| 100 F12 | | |
|<-----------| INVITE F13| |
| |---------->| |
| | 100 F14 | |
| |<----------| INVITE F15 |
| | |------------>|
| | | 200 OK F16 |
| | 200 OK F17|<------------|
| 200 OK F18 |<----------| |
|<-----------| | |
| ACK F19 | | |
|----------->| ACK F20 | |
| |---------->| ACK F21 |
| | |------------>|
| RTP Media Path |
|<====================================>|
In this scenario, User A completes a call to User B using two proxies
Proxy 1 and Proxy 2. User A has valid credentials in both domains.
Since the initial INVITE (F1) does not contain the
Authorization credentials Proxy 1 requires, so a 407 Proxy
Authorization response is sent containing the challenge information.
A new INVITE (F4) is then sent containing the correct credentials and
the call proceeds after Proxy 2 challenges and receives valid
credentials. The call terminates when User B disconnects by
initiating a BYE message.
Proxy 1 inserts a Record-Route header into the INVITE message to
ensure that it is present in all subsequent message exchanges. Proxy
2 also inserts itself into the Record-Route header.
Message Details
F1 INVITE A -> Proxy 1
INVITE sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserA@192.168.100.101>
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/* Proxy 1 challenges User A for authentication */
F2 407 Proxy Authorization Required Proxy 1 -> User A
SIP/2.0 407 Proxy Authorization Required
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=876321
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Proxy-Authenticate: Digest realm="atlanta.com", qop="auth",
nonce="wf84f1cczx41ae6cbeaea9ce88d359",
opaque="", stale=FALSE, algorithm=MD5
Content-Length: 0
F3 ACK A -> Proxy 1
ACK sip:UserB@biloxi.com SIP/2.0
Max-Forwards: 70
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=876321
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 ACK
Content-Length: 0
/* User A responds be re-sending the INVITE with authentication
credentials in it. The same Call-ID is used, so the CSeq is
increased. */
F4 INVITE A -> Proxy 1
INVITE sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 INVITE
Contact: <sip:UserA@192.168.100.101>
Proxy-Authorization: Digest username="UserA", realm="atlanta.com",
nonce="wf84f1ceczx41ae6cbe5aea9c8e88d359", opaque="",
uri="sip:UserB@biloxi.com", response="42ce3cef44b22f50c6a6071bc8"
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/* Proxy 1 accepts the credentials and forwards the INVITE to Proxy
2. Proxy 1 is assumed to have been authenticated by Proxy 2 using
IPSec. Client for A prepares to receive data on port 49172 from the
network. */
F5 100 Trying Proxy 1 -> User A
SIP/2.0 100 Trying
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 INVITE
Content-Length: 0
F6 INVITE Proxy 1 -> Proxy 2
INVITE sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK230f2.1
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 69
Record-Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 INVITE
Contact: <sip:UserA@192.168.100.101>
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/* Proxy 2 challenges User A for authentication */
F7 407 Proxy Authorization Required Proxy 2 -> Proxy 1
SIP/2.0 407 Proxy Authorization Required
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK230f2.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=838209
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 INVITE
Proxy-Authenticate: Digest realm="biloxi.com", qop="auth",
nonce="c1e22c41ae6cbe5ae983a9c8e88d359",
opaque="", stale=FALSE, algorithm=MD5
Content-Length: 0
F8 ACK Proxy 1 -> Proxy 2
ACK sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=838209
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 ACK
Content-Length: 0
/* Proxy 1 forwards the challenge to User A for authentication from
Proxy 2 */
F9 407 Proxy Authorization Required Proxy 1 -> User A
SIP/2.0 407 Proxy Authorization Required
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=838209
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 INVITE
Proxy-Authenticate: Digest realm="biloxi.com", qop="auth",
nonce="c1e22c41ae6cbe5ae983a9c8e88d359",
opaque="", stale=FALSE, algorithm=MD5
Content-Length: 0
F10 ACK User A -> Proxy 1
ACK sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=838209
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 ACK
Content-Length: 0
/* User A responds be re-sending the INVITE with authentication
credentials for Proxy 1 AND Proxy 2. */
F11 INVITE A -> Proxy 1
INVITE sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 3 INVITE
Contact: <sip:UserA@192.168.100.101>
Proxy-Authorization: Digest username="UserA", realm="atlanta.com",
nonce="wf84f1ceczx41ae6cbe5aea9c8e88d359", opaque="",
uri="sip:UserB@biloxi.com", response="42ce3cef44b22f50c6a6071bc8"
Proxy-Authorization: Digest username="UserA", realm="biloxi.com",
nonce="c1e22c41ae6cbe5ae983a9c8e88d359", opaque="",
uri="sip:UserB@biloxi.com", response="f44ab22f150c6a56071bce8"
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/* Proxy 1 finds its credentials and authorizes User A, forwarding
the INVITE to Proxy. */
F12 100 Trying Proxy 1 -> User A
SIP/2.0 100 Trying
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 3 INVITE
Content-Length: 0
F13 INVITE Proxy 1 -> Proxy 2
INVITE sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK230f2.1
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 69
Record-Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 3 INVITE
Contact: <sip:UserA@192.168.100.101>
Proxy-Authorization: Digest username="UserA", realm="biloxi.com",
nonce="c1e22c41ae6cbe5ae983a9c8e88d359", opaque="",
uri="sip:UserB@biloxi.com", response="f44ab22f150c6a56071bce8"
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/* Proxy 2 finds its credentials and authorizes User A, forwarding
the INVITE to User B. */
F14 100 Trying Proxy 2 -> Proxy 1
SIP/2.0 100 Trying
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK230f2.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 3 INVITE
Content-Length: 0
F15 INVITE Proxy 2 -> User B
INVITE sip:UserB@192.168.200.201 SIP/2.0
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK31972.1
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK230f2.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 68
Record-Route: <sip:ss2.biloxi.com;lr>, <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 3 INVITE
Contact: <sip:UserA@192.168.100.101>
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/* User B answers the call immediately */
F16 200 OK User B -> Proxy 2
SIP/2.0 200 OK
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK31972.1
;received=192.168.156.222
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK230f2.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss2.biloxi.com;lr>, <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=9103874
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 3 INVITE
Contact: <sip:UserB@192.168.200.201>
Content-Type: application/sdp
Content-Length: 145
v=0
o=UserB 2890844527 2890844527 IN IP4 client.biloxi.com
s=-
c=IN IP4 192.168.200.201
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F17 200 OK Proxy 2 -> Proxy 1
SIP/2.0 200 OK
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK230f2.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss2.biloxi.com;lr>, <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=9103874
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 3 INVITE
Contact: <sip:UserB@192.168.200.201>
Content-Type: application/sdp
Content-Length: 145
v=0
o=UserB 2890844527 2890844527 IN IP4 client.biloxi.com
s=-
c=IN IP4 192.168.200.201
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F18 200 OK Proxy 1 -> User A
SIP/2.0 200 OK
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss2.biloxi.com;lr>, <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=9103874
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 3 INVITE
Contact: <sip:UserB@192.168.200.201>
Content-Type: application/sdp
Content-Length: 145
v=0
o=UserB 2890844527 2890844527 IN IP4 client.biloxi.com
s=-
c=IN IP4 192.168.200.201
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F19 ACK User A -> Proxy 1
ACK sip:UserB@192.168.200.201 SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
Route: <sip:ss1.atlanta.com;lr>, <sip:ss2.biloxi.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=9103874
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 3 ACK
Content-Length: 0
F20 ACK Proxy 1 -> Proxy 2
ACK sip:UserB@192.168.200.201 SIP/2.0
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK230f2.1
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 69
Route: <sip:ss2.biloxi.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=9103874
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 3 ACK
Contact: <sip:UserB@192.168.200.201>
Content-Length: 0
F21 ACK Proxy 2 -> User A
ACK sip:UserB@192.168.200.201 SIP/2.0
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK31972.1
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK230f2.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 68
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=9103874
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 3 ACK
Contact: <sip:UserB@192.168.200.201>
Content-Length: 0
3.1.4 Successful SIP to SIP with Proxy failure
User A Proxy 1 Proxy 2 User B
| | | |
| 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, User A completes a call to User B via a Proxy
Server. User A 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). User A has valid credentials
for both domains. Proxy 1 is out of service and does not respond to
INVITEs (it is reachable, but unresponsive). User A then completes
the call to User B using Proxy 2.
Message Details
F1 INVITE A -> Proxy 1
INVITE sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK465bf9
Max-Forwards: 70
Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserA@192.168.100.101>
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F2 INVITE A -> Proxy 1
Same as Message F1
F3 INVITE A -> Proxy 1
Same as Message F1
F4 INVITE A -> Proxy 1
Same as Message F1
F5 INVITE A -> Proxy 1
Same as Message F1
F6 INVITE A -> Proxy 1
Same as Message F1
F7 INVITE A -> Proxy 1
Same as Message F1
/* User A gives up on the unresponsive proxy */
F8 INVITE A -> Proxy 2
INVITE sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 4Fde34wkd11wsGFDs3@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserA@192.168.100.101>
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/* Proxy 2 challenges User A for authentication */
F9 407 Proxy Authorization Required Proxy 2 -> User A
SIP/2.0 407 Proxy Authorization Required
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=2421452
Call-ID: 4Fde34wkd11wsGFDs3@atlanta.com
CSeq: 1 INVITE
Proxy-Authenticate: Digest realm="biloxi.com", qop="auth",
nonce="1ae6cbe5ea9c8e8df84fqnlec434a359",
opaque="", stale=FALSE, algorithm=MD5
Content-Length: 0
F10 ACK A -> Proxy 2
ACK sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=2421452
Call-ID: 4Fde34wkd11wsGFDs3@atlanta.com
CSeq: 1 ACK
Content-Length: 0
/* User A responds be re-sending the INVITE with authentication
credentials in it. */
F11 INVITE A -> Proxy 2
INVITE sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 4Fde34wkd11wsGFDs3@atlanta.com
CSeq: 2 INVITE
Contact: <sip:UserA@192.168.100.101>
Proxy-Authorization: Digest username="UserA", realm="biloxi.com",
nonce="1ae6cbe5ea9c8e8df84fqnlec434a359", opaque="",
uri="sip:UserB@biloxi.com",
response="8a880c919d1a52f20a1593e228adf599"
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.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 User B.
Client for A prepares to receive data on port 49172 from the network.
*/
F12 INVITE Proxy 2 -> B
INVITE sip:UserB@192.168.200.201 SIP/2.0
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK721e418c4.1
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 69
Record-Route: <sip:ss2.biloxi.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 4Fde34wkd11wsGFDs3@atlanta.com
CSeq: 2 INVITE
Contact: <sip:UserA@192.168.100.101>
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F13 100 Trying Proxy 2 -> User A
SIP/2.0 100 Trying
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 4Fde34wkd11wsGFDs3@atlanta.com
CSeq: 2 INVITE
Content-Length: 0
F14 180 Ringing B -> Proxy 2
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK721e418c4.1
;received=192.168.156.222
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss2.biloxi.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 4Fde34wkd11wsGFDs3@atlanta.com
CSeq: 2 INVITE
Contact: <sip:UserB@192.168.200.201>
Content-Length: 0
F15 180 Ringing Proxy 2 -> A
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss2.biloxi.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 4Fde34wkd11wsGFDs3@atlanta.com
CSeq: 2 INVITE
Contact: <sip:UserB@192.168.200.201>
Content-Length: 0
F16 200 OK B -> Proxy 2
SIP/2.0 200 OK
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK721e418c4.1
;received=192.168.156.222
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss2.biloxi.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 4Fde34wkd11wsGFDs3@atlanta.com
CSeq: 2 INVITE
Contact: <sip:UserB@192.168.200.201>
Content-Type: application/sdp
Content-Length: 145
v=0
o=UserB 2890844527 2890844527 IN IP4 client.biloxi.com
s=-
c=IN IP4 192.168.200.201
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F17 200 OK Proxy 2 -> A
SIP/2.0 200 OK
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss2.biloxi.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 4Fde34wkd11wsGFDs3@atlanta.com
CSeq: 2 INVITE
Contact: <sip:UserB@192.168.200.201>
Content-Type: application/sdp
Content-Length: 145
v=0
o=UserB 2890844527 2890844527 IN IP4 client.biloxi.com
s=-
c=IN IP4 192.168.200.201
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F18 ACK A -> Proxy 2
ACK sip:UserB@192.168.200.201 SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
Route: <sip:ss2.biloxi.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 4Fde34wkd11wsGFDs3@atlanta.com
CSeq: 2 ACK
Content-Length: 0
F19 ACK Proxy 2 -> B
ACK sip:UserB@192.168.200.201 SIP/2.0
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK721e418c4.1
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 69
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 4Fde34wkd11wsGFDs3@atlanta.com
CSeq: 2 ACK
Content-Length: 0
/* RTP streams are established between A and B */
/* User B Hangs Up with User A. */
F20 BYE User B -> Proxy 2
BYE sip:UserA@192.168.100.101 SIP/2.0
Via: SIP/2.0/UDP client.biloxi.com:5060;branch=z9hG4bKnashds7
Max-Forwards: 70
Route: <sip:ss2.biloxi.com;lr>
From: LittleGuy <sip:UserB@biloxi.com>;tag=314159
To: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
Call-ID: 4Fde34wkd11wsGFDs3@atlanta.com
CSeq: 1 BYE
Content-Length: 0
F21 BYE Proxy 2 -> User A
BYE sip:UserA@192.168.100.101 SIP/2.0
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK721e418c4.1
Via: SIP/2.0/UDP client.biloxi.com:5060;branch=z9hG4bKnashds7
;received=192.168.200.201
Max-Forwards: 69
From: LittleGuy <sip:UserB@biloxi.com>;tag=314159
To: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
Call-ID: 4Fde34wkd11wsGFDs3@atlanta.com
CSeq: 1 BYE
Content-Length: 0
F22 200 OK User A -> Proxy 2
SIP/2.0 200 OK
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK721e418c4.1
;received=192.168.156.222
Via: SIP/2.0/UDP client.biloxi.com:5060;branch=z9hG4bKnashds7
;received=192.168.200.201
From: LittleGuy <sip:UserB@biloxi.com>;tag=314159
To: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
Call-ID: 4Fde34wkd11wsGFDs3@atlanta.com
CSeq: 1 BYE
Content-Length: 0
F23 200 OK Proxy 2 -> User B
SIP/2.0 200 OK
Via: SIP/2.0/UDP client.biloxi.com:5060;branch=z9hG4bKnashds7
;received=192.168.200.201
From: LittleGuy <sip:UserB@biloxi.com>;tag=314159
To: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
Call-ID: 4Fde34wkd11wsGFDs3@atlanta.com
CSeq: 1 BYE
Content-Length: 0
3.1.5 Successful SIP to SIP through SIP ALG
User A ALG Proxy 2 User B
| | | |
| 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 |<--------------------------------|
|<---------------| |
| | |
User A completes a call to User B 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 User A 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 A -> SIP ALG
INVITE sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserA@192.168.100.101>
Route: <sip:alg1.atlanta.com;lr>
Proxy-Authorization: Digest username="UserA", realm="biloxi.com",
nonce="85b4f1cen4341ae6cbe5a3a9c8e88df9", opaque="",
uri="sip:UserB@biloxi.com",
response="b3f392f9218a328b9294076d708e6815"
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/* Client for A prepares to receive data on port 49172 from the
network. */
F2 INVITE SIP ALG -> Proxy 2
INVITE sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP alg1.atlanta.com:5060;branch=z9hG4bK739578.1
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 69
Record-Route: <sip:alg1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserA@192.168.100.101>
Proxy-Authorization: Digest username="UserA", realm="biloxi.com",
nonce="85b4f1cen4341ae6cbe5a3a9c8e88df9", opaque="",
uri="sip:UserB@biloxi.com",
response="b3f392f9218a328b9294076d708e6815"
Content-Type: application/sdp
Content-Length: 146
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.255.128
t=0 0
m=audio 2000 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F3 100 Trying SIP ALG -> A
SIP/2.0 100 Trying
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Content-Length: 0
/* SIP ALG prepares to proxy data from port 192.168.255.128/2000 to
192.168.100.101/49172. Proxy 2 uses a Location Service function to
determine where B is located. Based upon location analysis the call
is forwarded to User B */
F4 INVITE Proxy 2 -> B
INVITE sip:UserB@192.168.200.201 SIP/2.0
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK2d4790.1
Via: SIP/2.0/UDP alg1.atlanta.com:5060;branch=z9hG4bK739578.1
;received=192.168.255.128
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 68
Record-Route: <sip:alg1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserA@192.168.100.101>
Content-Type: application/sdp
Content-Length: 146
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.255.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.com:5060;branch=z9hG4bK739578.1
;received=192.168.255.128
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Content-Length: 0
F6 180 Ringing B -> Proxy 2
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.156.222
Via: SIP/2.0/UDP alg1.atlanta.com:5060;branch=z9hG4bK739578.1
;received=192.168.255.128
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:alg1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserB@192.168.200.201>
Content-Length: 0
F7 180 Ringing Proxy 2 -> SIP ALG
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP alg1.atlanta.com:5060;branch=z9hG4bK739578.1
;received=192.168.255.128
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:alg1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserB@192.168.200.201>
Content-Length: 0
F8 180 Ringing SIP ALG -> A
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:alg1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserB@192.168.200.201>
Content-Length: 0
F9 200 OK B -> Proxy 2
SIP/2.0 200 OK
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.156.222
Via: SIP/2.0/UDP alg1.atlanta.com:5060;branch=z9hG4bK739578.1
;received=192.168.255.128
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:alg1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserB@192.168.200.201>
Content-Type: application/sdp
Content-Length: 145
v=0
o=UserB 2890844527 2890844527 IN IP4 client.biloxi.com
s=-
c=IN IP4 192.168.200.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.com:5060;branch=z9hG4bK739578.1
;received=192.168.255.128
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:alg1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserB@192.168.200.201>
Content-Type: application/sdp
Content-Length: 145
v=0
o=UserB 2890844527 2890844527 IN IP4 client.biloxi.com
s=-
c=IN IP4 192.168.200.201
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F11 200 OK SIP ALG -> A
SIP/2.0 200 OK
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:alg1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserB@192.168.200.201>
Content-Type: application/sdp
Content-Length: 145
v=0
o=UserB 2890844527 2890844527 IN IP4 client.biloxi.com
s=-
c=IN IP4 192.168.255.128
t=0 0
m=audio 1734 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/* The ALG prepares to proxy packets from 192.168.255.128/
1734 to 192.168.200.201/3456 */
F12 ACK A -> SIP ALG
ACK sip:UserB@192.168.200.201 SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
Route: <sip:alg1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 ACK
Content-Length: 0
F13 ACK SIP ALG -> B
ACK sip:UserB@192.168.200.201 SIP/2.0
Via: SIP/2.0/UDP alg1.atlanta.com:5060;branch=z9hG4bK739578.1
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 69
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 ACK
Content-Length: 0
/* RTP streams are established between A and the ALG and
between the ALG and B*/
/* User A Hangs Up with User B. */
F14 BYE A -> SIP ALG
BYE sip:UserB@192.168.200.201 SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
Route: <sip:alg1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 BYE
Content-Length: 0
F15 BYE SIP ALG -> B
BYE sip:UserB@192.168.200.201 SIP/2.0
Via: SIP/2.0/UDP alg1.atlanta.com:5060;branch=z9hG4bK739578.1
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 69
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 BYE
Content-Length: 0
F16 200 OK B -> SIP ALG
SIP/2.0 200 OK
Via: SIP/2.0/UDP alg1.atlanta.com:5060;branch=z9hG4bK739578.1
;received=192.168.255.128
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 BYE
Content-Length: 0
F17 200 OK SIP ALG -> A
SIP/2.0 200 OK
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 BYE
Content-Length: 0
3.1.6 Successful SIP to SIP via Redirect and Proxy with SDP in ACK
User A Redirect Server Proxy 3 User B
| | | |
| 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, User A places a call to User B 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 User B's
current SIP address. User A then generates a new INVITE and sends to
User B 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 User B sends a BYE message.
Message Details
F1 INVITE A -> Redirect Server
INVITE sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bKbf9f44
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserA@192.168.100.101>
Content-Length: 0
F2 302 Moved Temporarily Redirect Proxy -> A
SIP/2.0 302 Moved Temporarily
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bKbf9f44
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=53fHlqlQ2
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: sip:UserB@chicago.com
Content-Length: 0
F3 ACK A -> Redirect Server
ACK sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bKbf9f44
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=53fHlqlQ2
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 ACK
Content-Length: 0
F4 INVITE A -> Proxy 3
INVITE sip:UserB@chicago.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 INVITE
Contact: <sip:UserA@192.168.100.101>
Content-Length: 0
F5 INVITE Proxy 3 -> B
INVITE sip:UserB@192.168.200.100 SIP/2.0
Via: SIP/2.0/UDP ss3.chicago.com:5060;branch=z9hG4bK721e418c4.1
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 69
Record-Route: <sip:ss3.chicago.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 INVITE
Contact: <sip:UserA@192.168.100.101>
Content-Length: 0
F6 100 Trying Proxy 3 -> A
SIP/2.0 100 Trying
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 INVITE
Content-Length: 0
F7 180 Ringing B -> Proxy 3
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP ss3.chicago.com:5060;branch=z9hG4bK721e418c4.1
;received=192.168.182.333
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss3.chicago.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 INVITE
Contact: <sip:UserB@192.168.200.100>
Content-Length: 0
F8 180 Ringing Proxy 3 -> A
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss3.chicago.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 INVITE
Contact: <sip:UserB@192.168.200.100>
Content-Length: 0
F9 200 OK B -> Proxy 3
SIP/2.0 200 OK
Via: SIP/2.0/UDP ss3.chicago.com:5060;branch=z9hG4bK721e418c4.1
;received=192.168.182.333
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss3.chicago.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 INVITE
Contact: <sip:UserB@192.168.200.100>
Content-Type: application/sdp
Content-Length: 146
v=0
o=UserB 2890844527 2890844527 IN IP4 client.chicago.com
s=-
c=IN IP4 192.168.200.100
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F10 200 OK Proxy -> A
SIP/2.0 200 OK
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss3.chicago.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 INVITE
Contact: <sip:UserB@192.168.200.100>
Content-Type: application/sdp
Content-Length: 146
v=0
o=UserB 2890844527 2890844527 IN IP4 client.chicago.com
s=-
c=IN IP4 192.168.200.100
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/* ACK contains SDP of A since none present in INVITE */
F11 ACK A -> Proxy 3
ACK sip:UserB@192.168.200.100 SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
Route: <sip:ss3.chicago.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 ACK
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F12 ACK Proxy 3 -> B
ACK sip:UserB@111.112.112.114 SIP/2.0
Via: SIP/2.0/UDP ss3.chicago.com:5060;branch=z9hG4bK721e418c4.1
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 69
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 ACK
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/* RTP streams are established between A and B*/
/* User B Hangs Up with User A. */
F13 BYE B -> Proxy 3
BYE sip:UserA@192.168.100.101 SIP/2.0
Via: SIP/2.0/UDP client.chicago.com:5060;branch=z9hG4bKfgaw2
Max-Forwards: 70
Route: <sip:ss3.chicago.com;lr>
From: LittleGuy <sip:UserB@biloxi.com>;tag=314159
To: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 BYE
Content-Length: 0
F14 BYE Proxy 3 -> A
BYE sip:UserA@192.168.100.101 SIP/2.0
Via: SIP/2.0/UDP ss3.chicago.com:5060;branch=z9hG4bK721e418c4.1
;received=192.168.200.100
Via: SIP/2.0/UDP client.chicago.com:5060;branch=z9hG4bKfgaw2
Max-Forwards: 69
From: LittleGuy <sip:UserB@biloxi.com>;tag=314159
To: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 BYE
Content-Length: 0
F15 200 OK A -> Proxy 3
SIP/2.0 200 OK
Via: SIP/2.0/UDP ss3.chicago.com:5060;branch=z9hG4bK721e418c4.1
;received=192.168.182.333
Via: SIP/2.0/UDP client.chicago.com:5060;branch=z9hG4bKfgaw2
;received=192.168.200.100
From: LittleGuy <sip:UserB@biloxi.com>;tag=314159
To: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 BYE
Content-Length: 0
F16 200 OK Proxy 3 -> B
SIP/2.0 200 OK
Via: SIP/2.0/UDP client.chicago.com:5060;branch=z9hG4bKfgaw2
;received=192.168.200.100
From: LittleGuy <sip:UserB@biloxi.com>;tag=314159
To: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 BYE
Content-Length: 0
3.1.7 Successful SIP to SIP with re-INVITE (IP Address Change)
User A Proxy 2 User B
| 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 |
|<=======================================>|
| |
| B changes IP address |
| |
| F9 INVITE |
|<----------------------------------------|
| F10 200 OK |
|---------------------------------------->|
| F11 ACK |
|<----------------------------------------|
| New RTP Media Stream |
|<=======================================>|
| F12 BYE |
|---------------------------------------->|
| F25 200 OK |
|<----------------------------------------|
| |
This example shows a session in which the media is changes midway
through the session. When User B?s IP address changes during the
session, User B 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 A -> Proxy 2
INVITE sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserA@192.168.100.101>
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F2 INVITE Proxy 2 -> B
INVITE sip:UserB@192.168.200.201 SIP/2.0
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK2d4790.1
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 69
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserA@192.168.100.101>
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F3 100 Trying Proxy 2 -> A
SIP/2.0 100 Trying
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Content-Length: 0
F4 180 Ringing B -> Proxy 2
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.156.222
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserB@192.168.200.201>
Content-Length: 0
F5 180 Ringing Proxy 2 -> A
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserB@192.168.200.201>
Content-Length: 0
F6 200 OK B -> Proxy 2
SIP/2.0 200 OK
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.156.222
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserB@192.168.200.201>
Content-Type: application/sdp
Content-Length: 145
v=0
o=UserB 2890844527 2890844527 IN IP4 client.biloxi.com
s=-
c=IN IP4 192.168.200.201
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F7 200 OK Proxy 2 -> A
SIP/2.0 200 OK
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserB@192.168.200.201>
Content-Type: application/sdp
Content-Length: 145
v=0
o=UserB 2890844527 2890844527 IN IP4 client.biloxi.com
s=-
c=IN IP4 192.168.200.201
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F8 ACK A -> B
ACK sip:UserB@192.168.200.201 SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 ACK
Content-Length: 0
/* RTP streams are established between A and B */
/* B changes IP address and re-INVITEs A with new Contact and SDP */
F9 INVITE B -> A
INVITE sip:UserA@192.168.100.101 SIP/2.0
Via: SIP/2.0/UDP client.biloxi.com:5060;branch=z9hG4bKlkld5l
Max-Forwards: 70
From: LittleGuy <sip:UserB@biloxi.com>;tag=314159
To: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 14 INVITE
Contact: <sip:UserB@192.168.200.100>
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserB 2890844527 2890844528 IN IP4 client.chicago.com
s=-
c=IN IP4 192.168.200.100
t=0 0
m=audio 47172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F10 200 OK A ->B
SIP/2.0 200 OK
Via: SIP/2.0/UDP client.chicago.com:5060;branch=z9hG4bKlkld5l
;received=192.168.200.100
Max-Forwards: 70
From: LittleGuy <sip:UserB@biloxi.com>;tag=314159
To: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 14 INVITE
Contact: <sip:UserA@192.168.100.101>
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 1000 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F11 ACK B -> A
ACK sip:UserA@192.168.100.101 SIP/2.0
Via: SIP/2.0/UDP client.biloxi.com:5060;branch=z9hG4bKlkld5l
Max-Forwards: 70
From: LittleGuy <sip:UserB@biloxi.com>;tag=314159
To: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 14 ACK
Content-Length: 0
/* New RTP stream established between A and B */
/* A hangs up with B */
F12 BYE A -> B
BYE sip:UserB@192.168.200.100 SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 BYE
Content-Length: 0
F13 200 OK B -> A
SIP/2.0 200 OK
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 BYE
Content-Length: 0
3.2 Failure Scenarios
3.2.1 Unsuccessful SIP to SIP no answer
User A Proxy 1 Proxy 2 User B
| | | |
| INVITE F1 | | |
|--------------->| INVITE F2 | |
| 100 F3 |--------------->| INVITE F4 |
|<---------------| 100 F5 |--------------->|
| |<---------------| |
| | | 180 F6 |
| | 180 F7 |<---------------|
| 180 F8 |<---------------| |
|<---------------| | |
| | | |
| CANCEL F9 | | |
|--------------->| | |
| 200 F10 | | |
|<---------------| CANCEL F11 | |
| |--------------->| |
| | 200 F12 | |
| |<---------------| |
| | | CANCEL F13 |
| | |--------------->|
| | | 200 F14 |
| | |<---------------|
| | | 487 F15 |
| | |<---------------|
| | | ACK F16 |
| | 487 F17 |--------------->|
| |<---------------| |
| | ACK F18 | |
| 487 F19 |--------------->| |
|<---------------| | |
| ACK F20 | | |
|--------------->| | |
| | | |
In this scenario, User A gives up on the call before User B answers
(sends a 200 OK response). User A sends a CANCEL (F9) since no final
response had been received from User B. If a 200 OK to the INVITE
had crossed with the CANCEL, User A would have sent an ACK then a BYE
to User B in order to properly terminate the call.
Note that the CANCEL message is acknowledged with a 200 OK on a hop
by hop basis, rather than end to end.
Message Details
F1 INVITE A -> Proxy 1
INVITE sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserA@192.168.100.101>
Proxy-Authorization: Digest username="UserA", realm="atlanta.com",
nonce="ze7k1ee88df84f1cec431ae6cbe5a359", opaque="",
uri="sip:UserB@biloxi.com",
response="b00b416324679d7e243f55708d44be7b"
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/*Client for A prepares to receive data on port 49172 from the
network.*/
F2 INVITE Proxy 1 -> Proxy 2
INVITE sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 69
Record-Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserA@192.168.100.101>
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F3 100 Trying Proxy 1 -> A
SIP/2.0 100 Trying
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Content-Length: 0
F4 INVITE Proxy 2 -> B
INVITE sip:UserB@192.168.200.201 SIP/2.0
Via: SIP/2.0/UDP ss2.client.biloxi.com:5060;branch=z9hG4bK721e418c4.1
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss2.biloxi.com;lr>, <sip:ss1.atlanta.com;lr>
Max-Forwards: 68
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserA@192.168.100.101>
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F5 100 Trying Proxy 2 -> Proxy 1
SIP/2.0 100 Trying
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Content-Length: 0
F6 180 Ringing B -> Proxy 2
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP ss2.client.biloxi.com:5060;branch=z9hG4bK721e418c4.1
;received=192.168.156.222
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss2.biloxi.com;lr>, <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserB@192.168.200.201>
Content-Length: 0
F7 180 Ringing Proxy 2 -> Proxy 1
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss2.biloxi.com;lr>, <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserB@192.168.200.201>
Content-Length: 0
F8 180 Ringing Proxy 1 -> A
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss2.biloxi.com;lr>, <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserB@192.168.200.201>
Content-Length: 0
F9 CANCEL A -> Proxy 1
CANCEL sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 CANCEL
Content-Length: 0
F10 200 OK Proxy 1 -> A
SIP/2.0 200 OK
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 CANCEL
Content-Length: 0
F11 CANCEL Proxy 1 -> Proxy 2
CANCEL sip:UserA@atlanta.com SIP/2.0
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 CANCEL
Content-Length: 0
F12 200 OK Proxy 2 -> Proxy 1
SIP/2.0 200 OK
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 CANCEL
Content-Length: 0
F13 CANCEL Proxy 2 -> B
CANCEL sip:UserB@192.168.200.201 SIP/2.0
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK721e418c4.1
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 CANCEL
Content-Length: 0
F14 200 OK B -> Proxy 2
SIP/2.0 200 OK
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK721e418c4.1
;received=192.168.156.222
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 CANCEL
Content-Length: 0
F15 487 Request Terminated B -> Proxy 2
SIP/2.0 487 Request Terminated
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK721e418c4.1
;received=192.168.156.222
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Content-Length: 0
F16 ACK Proxy 2 -> B
ACK sip:UserB@192.168.200.201 SIP/2.0
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK721e418c4.1
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 ACK
Content-Length: 0
F17 487 Request Terminated Proxy 2 -> Proxy 1
SIP/2.0 487 Request Terminated
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Content-Length: 0
F18 ACK Proxy 1 -> Proxy 2
ACK sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK721e418c4.1
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 ACK
Content-Length: 0
F19 487 Request Terminated Proxy 1 -> A
SIP/2.0 487 Request Terminated
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
F20 ACK A -> Proxy 1
ACK sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 ACK
Content-Length: 0
3.2.2 Unsuccessful SIP to SIP busy
User A Proxy 1 Proxy 2 User B
| | | |
| INVITE F1 | | |
|--------------->| INVITE F2 | |
| 100 F3 |--------------->| INVITE F4 |
|<---------------| 100 F5 |--------------->|
| |<---------------| |
| | | 486 F6 |
| | |<---------------|
| | | ACK F7 |
| | 486 F8 |--------------->|
| |<---------------| |
| | ACK F9 | |
| 486 F10 |--------------->| |
|<---------------| | |
| ACK F11 | | |
|--------------->| | |
| | | |
In this scenario, User B is busy and sends a 486 Busy Here response
to User A's INVITE. Note that the non-2xx response is acknowleged on
a hop-by-hop basis instead of end-to-end.
Message Details
F1 INVITE User A -> Proxy 1
INVITE sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserA@192.168.100.101>
Proxy-Authorization: Digest username="UserA", realm="atlanta.com",
nonce="dc3a5ab2530aa93112cf5904ba7d88fa", opaque="",
uri="sip:UserB@biloxi.com",
response="702138b27d869ac8741e10ec643d55be"
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/*Client for A prepares to receive data on port 49172 from the
network.*/
F2 INVITE Proxy 1 -> Proxy 2
INVITE sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 69
Record-Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserA@192.168.100.101>
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F3 100 Trying Proxy 1 -> User A
SIP/2.0 100 Trying
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Content-Length: 0
F4 INVITE Proxy 2 -> User B
INVITE sip:UserB@192.168.200.201 SIP/2.0
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK721e418c4.1
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 68
Record-Route: <sip:ss2.biloxi.com;lr>, <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserA@192.168.100.101>
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F5 100 Trying Proxy 2 -> Proxy 1
SIP/2.0 100 Trying
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Content-Length: 0
F6 486 Busy Here User B -> Proxy 2
SIP/2.0 486 Busy Here
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK721e418c4.1
;received=192.168.156.222
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Content-Length: 0
F7 ACK Proxy 2 -> User B
ACK sip:UserB@192.168.200.201 SIP/2.0
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK721e418c4.1
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 ACK
Content-Length: 0
F8 486 Busy Here Proxy 2 -> Proxy 1
SIP/2.0 486 Busy Here
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Content-Length: 0
F9 ACK Proxy 1 -> Proxy 2
ACK sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 ACK
Content-Length: 0
F10 486 Busy Here Proxy 1 -> User A
SIP/2.0 486 Busy Here
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Content-Length: 0
F11 ACK User A -> Proxy 1
ACK sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 ACK
Content-Length: 0
3.2.3 Unsuccessful SIP to SIP no response
User A Proxy 1 Proxy 2 User B
| | | |
| INVITE F1 | | |
|--------------->| INVITE F2 | |
| 100 F3 |--------------->| INVITE F4 |
|<---------------| 100 F5 |--------------->|
| |<---------------| INVITE F6 |
| | |--------------->|
| | | INVITE F7 |
| | |--------------->|
| | | INVITE F8 |
| | |--------------->|
| | | INVITE F9 |
| | |--------------->|
| | | INVITE F10 |
| | |--------------->|
| | | INVITE F11 |
| | 480 F12 |--------------->|
| |<---------------| |
| | ACK F13 | |
| 480 F14 |--------------->| |
|<---------------| | |
| ACK F15 | | |
|--------------->| | |
| | | |
In this example, there is no response from User B to User A's INVITE
messages being re-transmitted by Proxy 2. After the sixth re-
transmission, Proxy 2 gives up and sends a 480 No Response to User A.
Message Details
F1 INVITE User A -> Proxy 1
INVITE sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserA@192.168.100.101>
Proxy-Authorization: Digest username="UserA", realm="atlanta.com",
nonce="cf5904ba7d8dc3a5ab2530aa931128fa", opaque="",
uri="sip:UserB@biloxi.com",
response="7afc04be7961f053c24f80e7dbaf888f"
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/*Client for A prepares to receive data on port 49172 from the
network.*/
F2 INVITE Proxy 1 -> Proxy 2
INVITE sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 69
Record-Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserA@192.168.100.101>
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F3 100 Trying Proxy 1 -> User A
SIP/2.0 100 Trying
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Content-Length: 0
F4 INVITE Proxy 2 -> User B
INVITE sip:UserB@192.168.200.201 SIP/2.0
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK721e418c4.1
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 68
Record-Route: <sip:ss2.biloxi.com;lr>, <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserA@192.168.100.101>
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F5 100 Trying Proxy 2 -> Proxy 1
SIP/2.0 100 Trying
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Content-Length: 0
F6 INVITE Proxy 2 -> User B
Resend of Message F4
F7 INVITE Proxy 2 -> User B
Resend of Message F4
F8 INVITE Proxy 2 -> User B
Resend of Message F4
F9 INVITE Proxy 2 -> User B
Resend of Message F4
F10 INVITE Proxy 2 -> User B
Resend of Message F4
F11 INVITE Proxy 2 -> User B
Resend of Message F4
/* Proxy 2 gives up */
F12 480 No Response Proxy 2 -> Proxy 1
SIP/2.0 480 No Response
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Content-Length: 0
F13 ACK Proxy 1 -> Proxy 2
ACK sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 ACK
Content-Length: 0
F14 480 No Response Proxy 1 -> User A
SIP/2.0 480 No Response
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Content-Length: 0
F15 ACK User A -> Proxy 1
ACK sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 ACK
Content-Length: 0
3.2.4 Unsuccessful SIP to SIP Temporarily Unavailable
User A Proxy 1 Proxy 2 User B
| | | |
| INVITE F1 | | |
|--------------->| INVITE F2 | |
| 100 F3 |--------------->| INVITE F4 |
|<---------------| 100 F5 |--------------->|
| |<---------------| 180 F6 |
| | 180 F7 |<---------------|
| 180 F8 |<---------------| |
|<---------------| | 480 F9 |
| | |<---------------|
| | | ACK F10 |
| | 480 F11 |--------------->|
| |<---------------| |
| | ACK F12 | |
| 480 F13 |--------------->| |
|<---------------| | |
| ACK F14 | | |
|--------------->| | |
| | | |
In this scenario, User B initially sends a 180 Ringing response to
User A, indicating that alerting is taking place. However, then a
480 Unavailable is then sent to User A. This response is
acknowledged then proxied back to User A.
Message Details
F1 INVITE A -> Proxy 1
INVITE sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserA@192.168.100.101>
Proxy-Authorization: Digest username="UserA", realm="atlanta.com",
nonce="aa9311cf5904ba7d8dc3a5ab253028fa", opaque="",
uri="sip:UserB@biloxi.com",
response="59a46a91bf1646562a4d486c84b399db"
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/*Client for A prepares to receive data on port 49172 from the
network.*/
F2 INVITE Proxy 1 -> Proxy 2
INVITE sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 69
Record-Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserA@192.168.100.101>
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F3 100 Trying Proxy 1 -> A
SIP/2.0 100 Trying
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Content-Length: 0
F4 INVITE Proxy 2 -> B
INVITE sip:UserB@192.168.200.201 SIP/2.0
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK721e418c4.1
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 68
Record-Route: <sip:ss2.biloxi.com;lr>, <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserA@192.168.100.101>
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F5 100 Trying Proxy 2 -> Proxy 1
SIP/2.0 100 Trying
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Content-Length: 0
F6 180 Ringing B -> Proxy 2
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK721e418c4.1
;received=192.168.156.222
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss2.biloxi.com;lr>, <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserB@192.168.200.201>
Content-Length: 0
F7 180 Ringing Proxy 2 -> Proxy 1
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss2.biloxi.com;lr>, <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserB@192.168.200.201>
Content-Length: 0
F8 180 Ringing Proxy 1 -> A
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss2.biloxi.com;lr>, <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserB@192.168.200.201>
Content-Length: 0
F9 480 Temporarily Unavailable B -> Proxy 2
SIP/2.0 480 Temporarily Unavailable
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK721e418c4.1
;received=192.168.156.222
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Content-Length: 0
F10 ACK Proxy 2 -> B
ACK sip:UserB@192.168.200.201 SIP/2.0
Via: SIP/2.0/UDP ss2.biloxi.com:5060;branch=z9hG4bK721e418c4.1
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 ACK
Content-Length: 0
F11 480 Temporarily Unavailable Proxy 2 -> Proxy 1
SIP/2.0 480 Temporarily Unavailable
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Content-Length: 0
F12 ACK Proxy 1 -> Proxy 2
ACK sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 ACK
Content-Length: 0
F13 480 Temporarily Unavailable Proxy 1 -> A
SIP/2.0 480 Temporarily Unavailable
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Content-Length: 0
F14 ACK A -> Proxy 1
ACK sip:UserB@biloxi.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
From: BigGuy <sip:UserA@atlanta.com>;tag=9fxced76sl
To: LittleGuy <sip:UserB@biloxi.com>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 ACK
Content-Length: 0
4 SIP to Gateway Dialing
In the following scenarios, User A (BigGuy sip:UserA@atlanta.com) is
a SIP phone or other SIP-enabled device. User B is reachable via the
PSTN at global telephone number +19725552222. User A places a call
to User B through a Proxy Server Proxy 1 and a Network Gateway. In
other scenarios, User A places calls to User C, who is served via a
PBX (Private Branch Exchange) and is identified by a private
extension 444-3333, or global number +1-918-555-3333. Note that User
A uses his/her global telephone number +1-314-555-1111 in the From
header in the INVITE messages. This then gives the Gateway the
option of using this header to populate the calling party
identification field in subsequent signaling (CgPN in ISUP). Left
open is the issue of how the Gateway can determine the accuracy of
the telephone number, necessary before passing it as a valid CgPN in
the PSTN.
There is a major difference in the call flows in this section. In-
band alerting (ringing tone, busy tone, recorded announcements, etc.)
may be present in the PSTN speech path after the receipt of the SS7
Address Complete Message (ACM) which maps to the SIP 180 Ringing
response. To establish a two way media path prior to the call being
answered (200 OK), a 183 Session Progress response is sent instead of
a 180 Ringing. Note that since this 183 response is not sent
reliably, it should be periodically resent by the gateway. The same
SDP in the 183 should also be present in the 200 OK when the call is
answered.
4.1 Success Scenarios
In these scenarios, User A is a SIP phone or other SIP-enabled
device. User A places a call to User B in the PSTN or User C on a
PBX through a Proxy Server and a Gateway.
4.1.1 Successful SIP to ISUP PSTN call
User A Proxy 1 NGW 1 Switch B
| | | |
| INVITE F1 | | |
|--------------->| | |
| 100 F2 | | |
|<---------------| INVITE F3 | |
| |--------------->| |
| | 100 F4 | |
| |<---------------| IAM F5 |
| | |--------------->|
| | | ACM F6 |
| | 183 F7 |<---------------|
| 183 F8 |<---------------| |
|<---------------| | |
| Both Way RTP Media | One Way Voice |
|<===============================>|<===============|
| | | ANM F9 |
| | 200 F10 |<---------------|
| 200 F11 |<---------------| |
|<---------------| | |
| ACK F12 | | |
|--------------->| ACK F13 | |
| |--------------->| |
| Both Way RTP Media | Both Way Voice |
|<===============================>|<==============>|
| BYE F14 | | |
|--------------->| BYE F15 | |
| |--------------->| |
| | 200 F16 | |
| 200 F17 |<---------------| REL F18 |
|<---------------| |--------------->|
| | | RLC F19 |
| | |<---------------|
| | | |
User A dials the globalized E.164 number +19725552222 to reach
User B. Note that A might have only dialed the last 7 digits, or
some other dialing plan. It is assumed that the SIP User Agent
Client converts the digits into a global number and puts them into a
SIP URI. Note that tel URIs could be used instead of SIP URIs.
User A could use either their SIP address (sip:UserA@atlanta.com) or
SIP telephone number (sip:+13145551111@ss1.atlanta.com;user=phone) in
the From header. In this example, the telephone number is included,
and it is shown as being passed as calling party identification
through the Network Gateway (NGW 1) to User B (F5). Note that for
this number to be passed into the SS7 network, it would have to be
somehow verified for accuracy.
In this scenario, User B answers the call then User A disconnects the
call. Signaling between NGW 1 and User B's telephone switch is ANSI
ISUP. For the details of SIP to ISUP mapping, refer to [SIP-ISUP].
Message Details
F1 INVITE A -> Proxy 1
INVITE sip:+19725552222@ss1.atlanta.com;user=phone SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: LittleGuy <sip:+19725552222@ss1.atlanta.com;user=phone>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserA@192.168.100.101>
Proxy-Authorization: Digest username="UserA", realm="atlanta.com",
nonce="dc3a5ab25302aa931904ba7d88fa1cf5", opaque="",
uri="sip:+19725552222@ss1.atlanta.com;user=phone",
response="ccdca50cb091d587421457305d097458c"
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F2 100 Trying Proxy 1 -> User A
SIP/2.0 100 Trying
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: LittleGuy <sip:+19725552222@ss1.atlanta.com;user=phone>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Content-Length: 0
/* Proxy 1 uses a Location Service function to determine the gateway
for terminating this call. The call is forwarded to NGW 1. Client
for A prepares to receive data on port 49172 from the
network.*/
F3 INVITE Proxy 1 -> NGW 1
INVITE sip:+19725552222@ngw1.atlanta.com;user=phone SIP/2.0
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 69
Record-Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: LittleGuy <sip:+19725552222@ss1.atlanta.com;user=phone>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserA@192.168.100.101>
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F4 100 Trying NGW 1 -> Proxy 1
SIP/2.0 100 Trying
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: LittleGuy <sip:+19725552222@ss1.atlanta.com;user=phone>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Content-Length: 0
F5 IAM NGW 1 -> User B
IAM
CdPN=972-555-2222,NPI=E.164,NOA=National
CgPN=314-555-1111,NPI=E.164,NOA=National
F6 ACM User B -> NGW 1
ACM
F7 183 Session Progress NGW 1 -> Proxy 1
SIP/2.0 183 Session Progress
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: LittleGuy <sip:+19725552222@ss1.atlanta.com;user=phone>
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:+19725552222@ngw1.atlanta.com;user=phone>
Content-Type: application/sdp
Content-Length: 141
v=0
o=GW 2890844527 2890844527 IN IP4 ngw1.atlanta.com
s=-
c=IN IP4 192.168.255.101
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/* NGW 1 sends PSTN audio (ringing) in the RTP path to A */
F8 183 Session Progress Proxy 1 -> User A
SIP/2.0 183 Session Progress
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: LittleGuy <sip:+19725552222@ss1.atlanta.com;user=phone>
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:+19725552222@ngw1.atlanta.com;user=phone>
Content-Type: application/sdp
Content-Length: 141
v=0
o=GW 2890844527 2890844527 IN IP4 ngw1.atlanta.com
s=-
c=IN IP4 192.168.255.101
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F9 ANM User B -> NGW 1
ANM
F10 200 OK NGW 1 -> Proxy 1
SIP/2.0 200 OK
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: LittleGuy <sip:+19725552222@ss1.atlanta.com;user=phone>
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:+19725552222@ngw1.atlanta.com;user=phone>
Content-Type: application/sdp
Content-Length: 141
v=0
o=GW 2890844527 2890844527 IN IP4 ngw1.atlanta.com
s=-
c=IN IP4 192.168.255.201
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F11 200 OK Proxy 1 -> User A
SIP/2.0 200 OK
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: LittleGuy <sip:+19725552222@ss1.atlanta.com;user=phone>
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:+19725552222@ngw1.atlanta.com;user=phone>
Content-Type: application/sdp
Content-Length: 141
v=0
o=GW 2890844527 2890844527 IN IP4 ngw1.atlanta.com
s=-
c=IN IP4 192.168.255.101
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F12 ACK A -> Proxy 1
ACK sip:+19725552222@ngw1.atlanta.com;user=phone SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: LittleGuy <sip:+19725552222@ss1.atlanta.com;user=phone>
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 ACK
Content-Length: 0
F13 ACK Proxy 1 -> NGW 1
ACK sip:+19725552222@ngw1.atlanta.com;user=phone SIP/2.0
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 69
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: LittleGuy <sip:+19725552222@ss1.atlanta.com;user=phone>
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 ACK
Content-Length: 0
/* User A Hangs Up with User B. */
F14 BYE A -> Proxy 1
BYE sip:+19725552222@ngw1.atlanta.com;user=phone SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: LittleGuy <sip:+19725552222@ss1.atlanta.com;user=phone>
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 BYE
Content-Length: 0
F15 BYE Proxy 1 -> NGW 1
BYE sip:+19725552222@ngw1.atlanta.com;user=phone SIP/2.0
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 69
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: LittleGuy <sip:+19725552222@ss1.atlanta.com;user=phone>
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 BYE
Content-Length: 0
F16 200 OK NGW 1 -> Proxy 1
SIP/2.0 200 OK
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: LittleGuy <sip:+19725552222@ss1.atlanta.com;user=phone>
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 BYE
Content-Length: 0
F17 200 OK Proxy 1 -> A
SIP/2.0 200 OK
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: LittleGuy <sip:+19725552222@ss1.atlanta.com;user=phone>
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 BYE
Content-Length: 0
F18 REL NGW 1 -> B
REL
CauseCode=16 Normal
F19 RLC B -> NGW 1
RLC
4.1.2 Successful SIP to ISDN PBX call
User A Proxy 1 GW 1 PBX C
| | | |
| INVITE F1 | | |
|--------------->| | |
| 100 F2 | | |
|<---------------| INVITE F3 | |
| |--------------->| |
| | 100 F4 | |
| |<---------------| SETUP F5 |
| | |--------------->|
| | | CALL PROC F6 |
| | |<---------------|
| | | PROGress F7 |
| | 180 F8 |<---------------|
| 180 F9 |<---------------| |
|<---------------| | |
| | | One Way Voice |
| | |<===============|
| | | CONNect F10 |
| | |<---------------|
| | | CONNect ACK F11|
| | 200 F12 |--------------->|
| 200 F13 |<---------------| |
|<---------------| | |
| ACK F14 | | |
|--------------->| ACK F15 | |
| |--------------->| |
| Both Way RTP Media | Both Way Voice |
|<===============================>|<==============>|
| BYE F16 | | |
|--------------->| BYE F17 | |
| |--------------->| |
| | 200 F18 | |
| 200 F19 |<---------------| DISConnect F20 |
|<---------------| |--------------->|
| | | RELease F21 |
| | |<---------------|
| | | RELease COM F22|
| | |--------------->|
| | | |
User A is a SIP device while User C is connected via a
Gateway (GW 1) to a PBX. The PBX connection is via a ISDN trunk
group. User A dials User C's telephone number (918-555-3333) which
is globalized and put into a SIP URI.
The host portion of the Request-URI in the INVITE F3 is used to
identify the context (customer, trunk group, or line) in which the
private number 444-3333 is valid. Otherwise, this INVITE message
could get forwarded by GW 1 and the context of the digits could
become lost and the call unroutable.
Proxy 1 looks up the telephone number and locates the gateway that
serves User C. User C is identified by its extension
(444-3333) in the Request-URI sent to GW 1.
Message Details
F1 INVITE A -> Proxy 1
INVITE sip:+19185553333@ss1.atlanta.com;user=phone SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: OtherGuy <sip:+19185553333@ss1.atlanta.com;user=phone>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 INVITE
Contact: <sip:UserA@192.168.100.101>
Proxy-Authorization: Digest username="UserA",
realm="atlanta.com", nonce="qo0dc3a5ab22aa931904badfa1cf5j9h",
opaque="", uri="sip:+19185553333@ss1.atlanta.com;user=phone",
response="6c792f5c9fa360358b93c7fb826bf550"
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F2 100 Trying Proxy 1 -> User A
SIP/2.0 100 Trying
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: OtherGuy <sip:+19185553333@ss1.atlanta.com;user=phone>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 INVITE
Content-Length: 0
F3 INVITE Proxy 1 -> GW 1
INVITE sip:4443333@gw1.atlanta.com SIP/2.0
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 69
Record-Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: OtherGuy <sip:+19185553333@ss1.atlanta.com;user=phone>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 INVITE
Contact: <sip:UserA@192.168.100.101>
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F4 100 Trying GW -> Proxy 1
SIP/2.0 100 Trying
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: OtherGuy <sip:+19185553333@ss1.atlanta.com;user=phone>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 INVITE
Content-Length: 0
F5 SETUP GW 1 -> User C
Protocol discriminator=Q.931
Message type=SETUP
Bearer capability: Information transfer capability=0 (Speech) or 16
(3.1 kHz audio)
Channel identification=Preferred or exclusive B-channel
Progress indicator=1 (Call is not end-to-end ISDN;further call
progress information may be available inband)
Called party number:
Type of number unknown
Digits=444-3333
F6 CALL PROCeeding User C -> GW 1
Protocol discriminator=Q.931
Message type=CALL PROC
Channel identification=Exclusive B-channel
F7 PROGress User C -> GW 1
Protocol discriminator=Q.931
Message type=PROG
Progress indicator=1 (Call is not end-to-end ISDN;further call
progress information may be available inband)
F8 180 Ringing GW 1 -> Proxy 1
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: OtherGuy <sip:+19185553333@ss1.atlanta.com;user=phone>
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 INVITE
Contact: <sip:4443333@gw1.atlanta.com>
Content-Length: 0
F9 180 Ringing Proxy 1 -> User A
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: OtherGuy <sip:+19185553333@ss1.atlanta.com;user=phone>
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 INVITE
Contact: <sip:4443333@gw1.atlanta.com>
Content-Length: 0
F10 CONNect User C -> GW 1
Protocol discriminator=Q.931
Message type=CONN
F11 CONNect ACK GW 1 -> User C
Protocol discriminator=Q.931
Message type=CONN ACK
F12 200 OK GW 1 -> Proxy 1
SIP/2.0 200 OK
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: OtherGuy <sip:+19185553333@ss1.atlanta.com;user=phone>
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 INVITE
Contact: <sip:4443333@gw1.atlanta.com>
Content-Type: application/sdp
Content-Length: 140
v=0
o=GW 2890844527 2890844527 IN IP4 gw1.atlanta.com
s=-
c=IN IP4 192.168.255.201
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F13 200 OK Proxy 1 -> User A
SIP/2.0 200 OK
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: OtherGuy <sip:+19185553333@ss1.atlanta.com;user=phone>;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 INVITE
Contact: <sip:4443333@gw1.atlanta.com>
Content-Type: application/sdp
Content-Length: 140
v=0
o=GW 2890844527 2890844527 IN IP4 gw1.atlanta.com
s=-
c=IN IP4 192.168.255.201
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F14 ACK A -> Proxy 1
ACK sip:4443333@gw1.atlanta.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: OtherGuy <sip:+19185553333@ss1.atlanta.com;user=phone>
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 ACK
Content-Length: 0
F15 ACK Proxy 1 -> GW 1
ACK sip:4443333@gw1.atlanta.com SIP/2.0
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 69
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: OtherGuy <sip:+19185553333@ss1.atlanta.com;user=phone>
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 2 ACK
Content-Length: 0
/* User A Hangs Up with User B. */
F16 BYE A -> Proxy 1
BYE sip:4443333@gw1.atlanta.com SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: OtherGuy <sip:+19185553333@ss1.atlanta.com;user=phone>
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 3 BYE
Content-Length: 0
F17 BYE Proxy 1 -> GW 1
BYE sip:4443333@gw1.atlanta.com SIP/2.0
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 69
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: OtherGuy <sip:+19185553333@ss1.atlanta.com;user=phone>
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 3 BYE
Content-Length: 0
F18 200 OK GW 1 -> Proxy 1
SIP/2.0 200 OK
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: OtherGuy <sip:+19185553333@ss1.atlanta.com;user=phone>
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 3 BYE
Content-Length: 0
F19 200 OK Proxy 1 -> A
SIP/2.0 200 OK
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: OtherGuy <sip:+19185553333@ss1.atlanta.com;user=phone>
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 3 BYE
Content-Length: 0
F20 DISConnect GW 1 -> User C
Protocol discriminator=Q.931
Message type=DISC
Cause=16 (Normal clearing)
F21 RELease User C -> GW 1
Protocol discriminator=Q.931
Message type=REL
F22 RELease COMplete GW 1 -> User C
Protocol discriminator=Q.931
Message type=REL COM
4.1.3 Successful SIP to ISUP PSTN call with overflow
User A Proxy 1 NGW 1 NGW 2 Switch B
| | | | |
| INVITE F1 | | | |
|------------->| | | |
| | INVITE F2 | | |
| 100 F3 |------------->| | |
|<-------------| 503 F4 | | |
| |<-------------| | |
| | ACK F5 | | |
| |------------->| | |
| | INVITE F6 | |
| |---------------------------->| IAM F7 |
| | |------------->|
| | | ACM F8 |
| | 183 F9 |<-------------|
| 183 F10 |<----------------------------| |
|<-------------| | |
| Two Way RTP Media | One Way Voice|
|<==========================================>|<=============|
| | | ANM F11 |
| | 200 F12 |<-------------|
| 200 F13 |<----------------------------| |
|<-------------| | |
| ACK F14 | | |
|------------->| ACK F15 | |
| |---------------------------->| |
| Both Way RTP Media |Both Way Voice|
|<==========================================>|<============>|
| BYE F16 | | |
|------------->| BYE F17 | |
| |---------------------------->| |
| | 200 F18 | |
| 200 F19 |<----------------------------| REL F20 |
|<-------------| |------------->|
| | | RLC F21 |
| | |<-------------|
| | | |
User A calls User B through Proxy 1. Proxy 1 tries to route to a
Network Gateway NGW 1. NGW 1 is not available and responds with a 503
Service Unavailable (F4). The call is then routed to Network Gateway
NGW 2. User B answers the call. The call is terminated when User A
disconnects the call. NGW 2 and User B's telephone switch use ANSI
ISUP signaling.
Message Details
F1 INVITE A -> Proxy 1
INVITE sip:+19725552222@ss1.atlanta.com;user=phone SIP/2.0
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
Max-Forwards: 70
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: LittleGuy <sip:+19725552222@ss1.atlanta.com;user=phone>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserA@192.168.100.101>
Proxy-Authorization: Digest username="UserA",
realm="atlanta.com", nonce="b59311c3ba05b401cf80b2a2c5ac51b0",
opaque="", uri="sip:+19725552222@ss1.atlanta.com;user=phone",
response="ba6ab44923fa2614b28e3e3957789ab0"
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/* Proxy 1 uses a Location Service function to determine where B is
located. Proxy 1 receives a primary route NGW 1 and a secondary
route NGW 2. NGW 1 is tried first */
F2 INVITE Proxy 1 -> NGW 1
INVITE sip:+19725552222@ngw1.atlanta.com;user=phone SIP/2.0
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 69
Record-Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: LittleGuy <sip:+19725552222@ss1.atlanta.com;user=phone>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserA@192.168.100.101>
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F3 100 Trying Proxy 1 -> User A
SIP/2.0 100 Trying
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: LittleGuy <sip:+19725552222@ss1.atlanta.com;user=phone>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Content-Length: 0
F4 503 Service Unavailable NGW 1 -> Proxy 1
SIP/2.0 503 Service Unavailable
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: LittleGuy <sip:+19725552222@ss1.atlanta.com;user=phone>
;tag=123456789
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Content-Length: 0
F5 ACK Proxy 1 -> NGW 1
ACK sip:+19725552222@ngw1.atlanta.com;user=phone SIP/2.0
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.1
Max-Forwards: 70
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: LittleGuy <sip:+19725552222@ss1.atlanta.com>;user=phone>
;tag=123456789
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 ACK
Content-Length: 0
/* Proxy 1 now tries secondary route to NGW 2 */
F6 INVITE Proxy 1 -> NGW 2
INVITE sip:+19725552222@ngw2.atlanta.com;user=phone SIP/2.0
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.2
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Max-Forwards: 69
Record-Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: LittleGuy <sip:+19725552222@ss1.atlanta.com;user=phone>
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:UserA@192.168.100.101>
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 client.atlanta.com
s=-
c=IN IP4 192.168.100.101
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F7 IAM NGW 2 -> User B
IAM
CdPN=972-555-2222,NPI=E.164,NOA=National
CgPN=314-555-1111,NPI=E.164,NOA=National
F8 ACM User B -> NGW 2
ACM
F9 183 Session Progress NGW 2 -> Proxy 1
SIP/2.0 183 Session Progress
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.2
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: LittleGuy <sip:+19725552222@ss1.atlanta.com;user=phone>
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:+19725552222@ngw2.atlanta.com;user=phone>
Content-Type: application/sdp
Content-Length: 141
v=0
o=GW 2890844527 2890844527 IN IP4 ngw2.atlanta.com
s=-
c=IN IP4 192.168.255.102
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/* RTP packets are sent by GW to A for audio (e.g. ring tone) */
F10 183 Session Progress Proxy 1 -> User A
SIP/2.0 183 Session Progress
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: LittleGuy <sip:+19725552222@ss1.atlanta.com;user=phone>
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:+19725552222@ngw2.atlanta.com;user=phone>
Content-Type: application/sdp
Content-Length: 141
v=0
o=GW 2890844527 2890844527 IN IP4 ngw2.atlanta.com
s=-
c=IN IP4 192.168.255.102
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F11 ANM User B -> NGW 2
ANM
F12 200 OK NGW 2 -> Proxy 1
SIP/2.0 200 OK
Via: SIP/2.0/UDP ss1.atlanta.com:5060;branch=z9hG4bK2d4790.2
;received=192.168.255.111
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: LittleGuy <sip:+19725552222@ss1.atlanta.com;user=phone>
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:+19725552222@ngw2.atlanta.com;user=phone>
Content-Type: application/sdp
Content-Length: 141
v=0
o=GW 2890844527 2890844527 IN IP4 ngw2.atlanta.com
s=-
c=IN IP4 192.168.255.102
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F13 200 OK Proxy 1 -> User A
SIP/2.0 200 OK
Via: SIP/2.0/UDP client.atlanta.com:5060;branch=z9hG4bK74bf9
;received=192.168.100.101
Record-Route: <sip:ss1.atlanta.com;lr>
From: BigGuy <sip:+13145551111@ss1.atlanta.com;user=phone>
;tag=9fxced76sl
To: LittleGuy <sip:+19725552222@ss1.atlanta.com;user=phone>
;tag=314159
Call-ID: 2xTb9vxSit55XU7p8@atlanta.com
CSeq: 1 INVITE
Contact: <sip:+19725552222@ngw2.atlanta.com;user=phone>
Content-Type: application/sdp
Content-Length: 141
v=0
o=GW 2890844527 2890844527 IN IP4 ngw2.atlanta.com
s=-
c=IN IP4 192.168.255.102
t=0 0