SlideShare a Scribd company logo
1 of 40
Download to read offline
ROUTING ISSUES IN BASIC CALL FLOWS DES 
ROUTING ISSUES IN BASIC 
CALL FLOWS 
By: Daniel Esteban Soroko - 2011 
DES Page :1/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
Contents 
1 GENERAL INTRODUCTION: .................................................3 
1.1 PURPOSE: .......................................................................................... 3 
1.2 SCOPE:.............................................................................................. 3 
1.3 ABBREVIATIONS AND TERMINOLOGY:.................................................... 3 
1.4 REQUIRED INFORMATION: ................................................................... 3 
1.5 RELATED DOCUMENTATION:................................................................. 3 
2 OVERVIEW: ........................................................................4 
2.1 EXAMPLE Nº1 (SIP TRAPEZOID WITHOUT USING RECORD-ROUTE AND 
ROUTE): ..................................................................................................... 4 
2.2 EXAMPLE Nº2 (SIP TRAPEZOID USING RECORD-ROUTE AND ROUTE): ...... 12 
2.3 EXAMPLE Nº3 (SIP TRAPEZOID USING RECORD-ROUTE AND ROUTE - 
VARIANT): ................................................................................................ 27 
3 UA DIALOG STRUCTURES: ................................................39 
3.1 FIELDS DESCRIPTION:....................................................................... 39 
DES Page :2/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
1 GENERAL INTRODUCTION: 
1.1 Purpose: 
This document gives a brief detail of the mechanisms used to route SIP 
messages and an approach about routing related header fields. 
1.2 Scope: 
This description depicts the routing mechanisms used in SIP messages. 
1.3 Abbreviations and Terminology: 
-. 
1.4 Required information: 
call_flow_woRR_v00.pdf: signalling flow example. 
call_flow_w1RR_v00.pdf: signalling flow example. 
call_flow_w2RR_v00.pdf: signalling flow example. 
1.5 Related documentation: 
RFC 3261: SIP: Session Initiation Protocol. 
RFC 3263: Session Initiation Protocol (SIP): Locating SIP Servers. 
RFC 3665: Session Initiation Protocol (SIP) Basic Call Flow Examples. 
RFC 3666: Session Initiation Protocol (SIP) Public Switched Telephone 
Network (PSTN) Call Flows. 
RFC 5411: A Hitchhiker's Guide to the Session Initiation Protocol (SIP). 
RFC 5627: Obtaining and Using Globally Routable User Agent URIs (GRUUs) 
in the Session Initiation Protocol (SIP) 
RFC 5630: The Use of the SIPS URI Scheme in the Session Initiation Protocol 
(SIP). 
DES Page :3/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2 OVERVIEW: 
In the next sections we will deal with SIP dialogs and routing of requests. 
A Dialog is a peer-to-peer relationship between two user agents. It 
represents a context that facilitates the sequencing of messages between the user 
agents and proper routing of requests between both of them. The following 
examples, illustrates the creation of a dialog, the processing of requests during this 
dialog, and the termination of the dialog. 
2.1 Example Nº1 (SIP trapezoid without using Record-Route and 
Route): 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|-----------------M12(ACK)--------------->| 
|<----------------M13(BYE)----------------| 
|-----------------M14(200)--------------->| 
This example shows two proxies in the routing path and neither of them 
request to be maintained in the signalling path by inserting Record-Route header 
fields. Only the header fields relevant to the dialog and the routing of requests are 
shown in the SIP messages. 
You can see the flow graph in “call_flow_woRR_v00.pdf” document. Next we 
will describe each one of the flow’s messages and its relevant headers (“100 
Trying” provisional response are ignored). 
Note that we used the “blue” colour to denote FQDN identities, and 
the “red” colour to denote NFQDN identities. 
In this example “A” calls “B” using his SIP identity, a type of Uniform 
Resource Identifier (URI) called a SIP URI. This SIP URI has a similar form to an 
email address, typically containing a username and a host name. In this case, it is 
“sip:bob@biloxi.com”, where “biloxi.com” is the domain of Bob's SIP service 
provider. Alice has a SIP URI of “sip:alice@atlanta.com”. 
Note than “sip:bob@biloxi.com” and “sip:alice@atlanta.com” are 
logical identities that define the users, and “pc33.atlanta.com” and 
“term24.biloxi.com”, are the physical identities (machines) where these 
users reside. In the same way “bigbox3.site3.atlanta.com” and 
“server10.biloxi.com”, are the proxies’ physical identities. 
Note than “Request-URI” is part of the “Request-Line = Method SP 
Request-URI SP SIP-Version CRLF”. Example: INVITE sip:bob@biloxi.com 
SIP/2.0 
DES Page :4/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.1.1- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|-----------------M12(ACK)--------------->| 
|<----------------M13(BYE)----------------| 
|-----------------M14(200)--------------->| 
-“A” generates the INVITE request (Since the “A” softphone does not know the 
location of Bob or the SIP server in the “biloxi.com” domain, the softphone sends 
the INVITE to the SIP server that serves Alice's domain, “atlanta.com”. The address 
of the “atlanta.com” SIP server could have been configured in Alice's softphone (as 
an outbound proxy), or it could have been discovered by DHCP/DNS, for example). 
M1 
INVITE sip:bob@biloxi.com SIP/2.0 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8 
Max-Forwards: 70 
To: Bob <sip:bob@biloxi.com> 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 314159 INVITE 
Contact: <sip:alice@pc33.atlanta.com> 
Header’s commentaries: 
Request-URI: contains a SIP or SIPS URI (sip:bob@biloxi.com) that indicates the 
user or service to which this request is being addressed. 
Via: contains the address (pc33.atlanta.com) at which “A” is expecting to receive 
responses to this request. 
To: contains a SIP or SIPS URI (sip:bob@biloxi.com) towards which the request 
was originally directed. 
From: also contains a SIP or SIPS URI (sip:alice@atlanta.com) that indicate the 
originator of the request. 
Contact: contains a SIP or SIPS URI (sip:alice@pc33.atlanta.com) that represents a 
direct route to contact Alice, usually composed of a username at a fully qualified 
domain name (FQDN). While an FQDN is preferred, many end systems do not have 
registered domain names, so IP addresses are permitted. While the Via header 
field tells other elements where to send the response, the Contact header 
field tells other elements where to send future requests. 
DES Page :5/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.1.2- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|-----------------M12(ACK)--------------->| 
|<----------------M13(BYE)----------------| 
|-----------------M14(200)--------------->| 
-“P1” inspects the received “Request-URI” in M1 message (sip:bob@biloxi.com) and 
does not change it because it is not responsible for the resource indicated in this 
URI. 
-“P1” forwards the request to the resource indicated in the “Request-URI” 
(sip:bob@biloxi.com) by applying DHCP/DNS procedures. 
M2 
INVITE sip:bob@biloxi.com SIP/2.0 
Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 
Max-Forwards: 69 
To: Bob <sip:bob@biloxi.com> 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 314159 INVITE 
Contact: <sip:alice@pc33.atlanta.com> 
Header’s commentaries: 
Via: P1 adds its own via header in the routing path (bigbox3.site3.atlanta.com), for 
its use in the response messages. 
2.1.3- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|-----------------M12(ACK)--------------->| 
|<----------------M13(BYE)----------------| 
|-----------------M14(200)--------------->| 
-“P2” inspects the received “Request-URI” in M2 message (sip:bob@biloxi.com). It 
is responsible for “biloxi.com”, so it runs a location service and rewrites the 
“Request-URI” (sip:bob@biloxi.com -> sip:bob@term24.biloxi.com) 
-“P2” forwards the request to the resource indicated in the “Request-URI” (sip: 
bob@term24.biloxi.com) by applying DHCP/DNS procedures. 
M4 
INVITE sip:bob@term24.biloxi.com SIP/2.0 
Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1 
Via: SIP/2.0/UDP 
bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1;received=192.0.2.2 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 
Max-Forwards: 68 
To: Bob <sip:bob@biloxi.com> 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 314159 INVITE 
Contact: <sip:alice@pc33.atlanta.com> 
DES Page :6/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
Header’s commentaries: 
Via: P2 adds its own via header in the routing path (server10.biloxi.com), for its 
use in the response messages. 
2.1.4- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|-----------------M12(ACK)--------------->| 
|<----------------M13(BYE)----------------| 
|-----------------M14(200)--------------->| 
-“B” inspects the received message (M4). Then it stores the “A” “Contact header” 
(alice@pc33.atlanta.com) in its UA “dialog data structure” as “Remote Target”. It 
uses the “Request-URI” of M4 to fill its own “Contact” header. 
-“B” creates the 180 response message. 
-“B” sends the 180 response message by using the “Via” headers. 
M6 
SIP/2.0 180 Ringing 
Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1;received=192.0.2.3 
Via: SIP/2.0/UDP bigbox3.site3.atlanta.com; 
branch=z9hG4bK77ef4c2312983.1;received=192.0.2.2 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 
To: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
Contact: <sip:bob@term24.biloxi.com> 
CSeq: 314159 INVITE 
Header’s commentaries: 
Contact: “B” adds a Contact header field to the response, with its direct route 
(sip:bob@term24.biloxi.com). “B” obtain this value from the Request-URI of the 
incoming request (M4). 
To: “B” adds its local tag, to “To” header. 
DES Page :7/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.1.5- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|-----------------M12(ACK)--------------->| 
|<----------------M13(BYE)----------------| 
|-----------------M14(200)--------------->| 
-“P2” forwards the 180 response message by using the “Via” headers. 
M7 
SIP/2.0 180 Ringing 
Via: SIP/2.0/UDP 
bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1;received=192.0.2.2 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 
To: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
Contact: <sip:bob@term24.biloxi.com> 
CSeq: 314159 INVITE 
Header’s commentaries: 
Via: P2 delete its own via header in the routing path (server10.biloxi.com). 
2.1.6- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|-----------------M12(ACK)--------------->| 
|<----------------M13(BYE)----------------| 
|-----------------M14(200)--------------->| 
-“P1” forwards the 180 response message by using the “Via” headers. 
M8 
SIP/2.0 180 Ringing 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 
To: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
Contact: <sip:bob@term24.biloxi.com> 
CSeq: 314159 INVITE 
Header’s commentaries: 
Via: P1 delete its own via header in the routing path (bigbox3.site3.atlanta.com). 
DES Page :8/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.1.7- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|-----------------M12(ACK)--------------->| 
|<----------------M13(BYE)----------------| 
|-----------------M14(200)--------------->| 
-“B” creates the 200 response message. 
-“B” sends the 200 response message by using the “Via” headers. 
M9 
SIP/2.0 200 OK 
Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1;received=192.0.2.3 
Via: SIP/2.0/UDP 
bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1;received=192.0.2.2 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 
To: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 314159 INVITE 
Contact: <sip:bob@term24.biloxi.com> 
Header’s commentaries: 
Contact: “B” adds a Contact header field to the response, with its direct route 
(sip:bob@term24.biloxi.com). “B” obtains this value from the Request-URI of the 
incoming request (M4). 
To: “B” adds its local tag, to “To” header. 
2.1.8- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|-----------------M12(ACK)--------------->| 
|<----------------M13(BYE)----------------| 
|-----------------M14(200)--------------->| 
-“P2” forwards the 200 response message by using the “Via” headers. 
M10 
SIP/2.0 200 OK 
Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1 ; 
received=192.0.2.2 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 
To: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 314159 INVITE 
Contact: <sip:bob@term24.biloxi.com> 
Header’s commentaries: 
Via: P2 delete its own via header in the routing path (server10.biloxi.com). 
DES Page :9/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.1.9- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|-----------------M12(ACK)--------------->| 
|<----------------M13(BYE)----------------| 
|-----------------M14(200)--------------->| 
-“P1” forwards the 200 response message by using the “Via” headers. 
M11 
SIP/2.0 200 OK 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 
To: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 314159 INVITE 
Contact: <sip:bob@term24.biloxi.com> 
Header’s commentaries: 
Via: P1 delete its own via header in the routing path (bigbox3.site3.atlanta.com). 
2.1.10- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|-----------------M12(ACK)--------------->| 
|<----------------M13(BYE)----------------| 
|-----------------M14(200)--------------->| 
-“A” inspects the received message (M11). Then it stores the “B” “Contact header” 
in its UA “dialog data structure” as “Remote Target”. 
-“A” creates the ACK request. 
-“A” sends the ACK request by using the Contact header received in 
M11(bob@term24.biloxi.com). 
M12 
ACK sip:bob@term24.biloxi.com SIP/2.0 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds9 
Max-Forwards: 70 
To: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 314159 ACK 
Header’s commentaries: 
Request-URI: contains a SIP or SIPS URI (sip:bob@term24.biloxi.com) that 
indicates the user or service to which this request is being addressed.”A” fills it 
value, with the received “Contact” header of M11 message. 
DES Page :10/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.1.11- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|-----------------M12(ACK)--------------->| 
|<----------------M13(BYE)----------------| 
|-----------------M14(200)--------------->| 
-“B” creates a BYE message. 
-“B” sends the BYE request by using the “Remote Target” of UA dialog data 
structure (alice@pc33.atlanta.com) (see 2.1.4-). 
M13 
BYE sip:alice@pc33.atlanta.com SIP/2.0 
Via: SIP/2.0/UDP term24.biloxi.com;branch=z9hG4bKnashds10 
Max-Forwards: 70 
From: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
To: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 231 BYE 
Contact: <sip:bob@term24.biloxi.com> 
Header’s commentaries: 
Request-URI: “B” fills the Request-URI value, “Remote Target” of UA dialog data 
structure 
(alice@pc33.atlanta.com) (see 2.1.4-). 
2.1.12- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|-----------------M12(ACK)--------------->| 
|<----------------M13(BYE)----------------| 
|-----------------M14(200)--------------->| 
-“A” creates a 200 OK response to respond to the BYE message. 
-“A” sends the 200 response by using the “Via headers”. 
M14 
SIP/2.0 200 OK 
Via: SIP/2.0/UDP term24.biloxi.com;branch=z9hG4bKnashds10 
From: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
To: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 231 BYE 
DES Page :11/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.2 Example Nº2 (SIP trapezoid using Record-Route and Route): 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| 
|<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| 
|---M18(200)->|---M19(200)->|---M20(200)->| 
This example shows two proxies in the routing path and both of them 
request to be maintained in the signalling path by inserting Record-Route header 
fields. Only the header fields relevant to the dialog and the routing of requests are 
shown in the SIP messages. 
You can see the flow graph in “call_flow_w2RR_v00.pdf” document. Next we 
will describe each one of the flow’s messages and its relevant headers (“100 
Trying” provisional response are ignored). 
Note that we used the “blue” colour to denote FQDN identities, and 
the “red” colour to denote NFQDN identities. 
In this example “A” calls “B” using his SIP identity, a type of Uniform 
Resource Identifier (URI) called a SIP URI. This SIP URI has a similar form to an 
email address, typically containing a username and a host name. In this case, it is 
“sip:bob@biloxi.com”, where “biloxi.com” is the domain of Bob's SIP service 
provider. Alice has a SIP URI of “sip:alice@atlanta.com”. 
Note than “sip:bob@biloxi.com” and “sip:alice@atlanta.com” are 
logical identities that define the users, and “pc33.atlanta.com” and 
“term24.biloxi.com”, are the physical identities (machines) where these 
users reside. In the same way “bigbox3.site3.atlanta.com” and 
“server10.biloxi.com”, are the proxies’ physical identities. 
Note than “Request-URI” is part of the “Request-Line = Method SP 
Request-URI SP SIP-Version CRLF”. Example: INVITE sip:bob@biloxi.com 
SIP/2.0 
DES Page :12/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.2.1- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| 
|<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| 
|---M18(200)->|---M19(200)->|---M20(200)->| 
-“A” generates the INVITE request (Since the “A” softphone does not know the 
location of Bob or the SIP server in the “biloxi.com” domain, the softphone sends 
the INVITE to the SIP server that serves Alice's domain, “atlanta.com”. The address 
of the “atlanta.com” SIP server could have been configured in Alice's softphone (as 
an outbound proxy), or it could have been discovered by DHCP/DNS, for example). 
M1 
INVITE sip:bob@biloxi.com SIP/2.0 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8 
Max-Forwards: 70 
To: Bob <sip:bob@biloxi.com> 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 314159 INVITE 
Contact: <sip:alice@pc33.atlanta.com> 
Header’s commentaries: 
Request-URI: contains a SIP or SIPS URI (sip:bob@biloxi.com) that indicates the 
user or service to which this request is being addressed. 
Via: contains the address (pc33.atlanta.com) at which “A” is expecting to receive 
responses to this request. 
To: contains a SIP or SIPS URI (sip:bob@biloxi.com) towards which the request 
was originally directed. 
From: also contains a SIP or SIPS URI (sip:alice@atlanta.com) that indicate the 
originator of the request. 
Contact: contains a SIP or SIPS URI (sip:alice@pc33.atlanta.com) that represents a 
direct route to contact Alice, usually composed of a username at a fully qualified 
domain name (FQDN). While an FQDN is preferred, many end systems do not have 
registered domain names, so IP addresses are permitted. While the Via header 
field tells other elements where to send the response, the Contact header 
field tells other elements where to send future requests. 
DES Page :13/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.2.2- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| 
|<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| 
|---M18(200)->|---M19(200)->|---M20(200)->| 
-“P1” inspects the received “Request-URI” in M1 message (sip:bob@biloxi.com) and 
does not change it because it is not responsible for the resource indicated in this 
URI. 
-“P1” adds a Record-Route header with its own address 
(bigbox3.site3.atlanta.com). (The next requests must traverse this address). 
-“P1” forwards the request to the resource indicated in the “Request-URI” 
(sip:bob@biloxi.com) by applying DHCP/DNS procedures. 
M2 
INVITE sip:bob@biloxi.com SIP/2.0 
Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 
Max-Forwards: 69 
To: Bob <sip:bob@biloxi.com> 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 314159 INVITE 
Contact: <sip:alice@pc33.atlanta.com> 
Record-Route: sip:bigbox3.site3.atlanta.com;lr> 
Header’s commentaries: 
Via: “P1” adds its own “Via” header in the routing path (bigbox3.site3.atlanta.com), 
for its use in the response messages. 
Record-Route: “P1” adds a “Record-Route” header with its own 
address(bigbox3.site3.atlanta.com). (The next requests must traverse this 
address). 
DES Page :14/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.2.3- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| 
|<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| 
|---M18(200)->|---M19(200)->|---M20(200)->| 
-“P2” inspects the received “Request-URI” in M2 message (sip:bob@biloxi.com). It 
is responsible for “biloxi.com”, so it runs a location service and rewrites the 
“Request-URI” (sip:bob@biloxi.com -> sip:bob@term24.biloxi.com) 
-“P2” adds a Record-Route header with its own address (server10.biloxi.com). (The 
next requests must traverse this address). 
-“P2” forwards the request to the resource indicated in the “Request-URI” (sip: 
bob@term24.biloxi.com) by applying DHCP/DNS procedures. 
M4 
INVITE sip:bob@term24.biloxi.com SIP/2.0 
Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1 
Via: SIP/2.0/UDP 
bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1;received=192.0.2.2 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 
Max-Forwards: 68 
To: Bob <sip:bob@biloxi.com> 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 314159 INVITE 
Contact: <sip:alice@pc33.atlanta.com> 
Record-Route: sip:server10.biloxi.com;lr> 
Record-Route: sip:bigbox3.site3.atlanta.com;lr> 
Header’s commentaries: 
Via: P2 adds its own “Via” header in the routing path (server10.biloxi.com), for its 
use in the response messages. 
Record-Route: “P2” adds a “Record-Route” header with its own address 
(server10.biloxi.com). (The next requests must traverse this address). 
DES Page :15/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.2.4- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| 
|<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| 
|---M18(200)->|---M19(200)->|---M20(200)->| 
-“B” inspects the received message (M4). Then it stores: 
The “A” “Contact” header in its UA “dialog data structure” as “Remote 
Target” 
(alice@pc33.atlanta.com). 
The “Record-Route” headers in its UA “dialog data structure” as “Route Set”. 
(server10.biloxi.com; bigbox3.site3.atlanta.com) 
-“B” uses the “Request-URI” (bob@term24.biloxi.com) of M4 to fill its own 
“Contact” header. 
-“B” creates the 180 response message. 
-“B” copies all the Record-Route headers to the 180 response message. 
-“B” sends the 180 response message by using the “Via” headers. 
M6 
SIP/2.0 180 Ringing 
Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1;received=192.0.2.3 
Via: SIP/2.0/UDP bigbox3.site3.atlanta.com; branch=z9hG4bK77ef4c2312983.1 
;received=192.0.2.2 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 
To: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
Contact: <sip:bob@term24.biloxi.com> 
CSeq: 314159 INVITE 
Record-Route: sip:server10.biloxi.com;lr> 
Record-Route: sip:bigbox3.site3.atlanta.com;lr> 
Header’s commentaries: 
Contact: “B” adds a “Contact” header field to the response, with its direct route 
(sip:bob@term24.biloxi.com). “B” obtain this value from the Request-URI of the 
incoming request (M4). 
To: “B” adds its local tag, to “To” header. 
Record-Route: “B” copies the received “Record-Route” headers into the response 
message. 
DES Page :16/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.2.5- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| 
|<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| 
|---M18(200)->|---M19(200)->|---M20(200)->| 
-“P2” forwards the 180 response message by using the “Via” headers. 
M7 
SIP/2.0 180 Ringing 
Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1 
;received=192.0.2.2 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 
To: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
Contact: <sip:bob@term24.biloxi.com> 
CSeq: 314159 INVITE 
Record-Route: sip:server10.biloxi.com;lr> 
Record-Route: sip:bigbox3.site3.atlanta.com;lr> 
Header’s commentaries: 
Via: P2 delete its own “Via” header in the routing path (server10.biloxi.com). 
2.2.6- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| 
|<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| 
|---M18(200)->|---M19(200)->|---M20(200)->| 
-“P1” forwards the 180 response message by using the “Via” headers. 
M8 
SIP/2.0 180 Ringing 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 
To: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
Contact: <sip:bob@term24.biloxi.com> 
CSeq: 314159 INVITE 
Record-Route: sip:server10.biloxi.com;lr> 
Record-Route: sip:bigbox3.site3.atlanta.com;lr> 
Header’s commentaries: 
Via: P1 delete its own “Via” header in the routing path (bigbox3.site3.atlanta.com). 
DES Page :17/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.2.7- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| 
|<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| 
|---M18(200)->|---M19(200)->|---M20(200)->| 
-“B” creates the 200 response message. 
-“B” sends the 200 response message by using the “Via” headers. 
M9 
SIP/2.0 200 OK 
Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1;received=192.0.2.3 
Via: SIP/2.0/UDP 
bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1;received=192.0.2.2 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 
To: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 314159 INVITE 
Contact: <sip:bob@term24.biloxi.com> 
Record-Route: sip:server10.biloxi.com;lr> 
Record-Route: sip:bigbox3.site3.atlanta.com;lr> 
Header’s commentaries: 
Contact: “B” adds a Contact header field to the response, with its direct route 
(sip:bob@term24.biloxi.com). “B” obtain this value from the Request-URI of the 
incoming request (M4). 
To: “B” adds its local tag, to “To” header. 
Record-Route: “B” copies the received “Record-Route” headers into the response 
message. 
2.2.8- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| 
|<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| 
|---M18(200)->|---M19(200)->|---M20(200)->| 
-“P2” forwards the 200 response message by using the “Via” headers. 
M10 
SIP/2.0 200 OK 
Via: SIP/2.0/UDP 
bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1;received=192.0.2.2 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 
To: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 314159 INVITE 
Contact: <sip:bob@term24.biloxi.com> 
Record-Route: sip:server10.biloxi.com;lr> 
Record-Route: sip:bigbox3.site3.atlanta.com;lr> 
DES Page :18/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
Header’s commentaries: 
Via: P2 delete its own “Via” header in the routing path (server10.biloxi.com). 
2.2.9- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| 
|<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| 
|---M18(200)->|---M19(200)->|---M20(200)->| 
-“P1” forwards the 200 response message by using the “Via” headers. 
M11 
SIP/2.0 200 OK 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 
To: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 314159 INVITE 
Contact: <sip:bob@term24.biloxi.com> 
Record-Route: sip:server10.biloxi.com;lr> 
Record-Route: sip:bigbox3.site3.atlanta.com;lr> 
Header’s commentaries: 
Via: P1 delete its own via “Via” header in the routing path 
(bigbox3.site3.atlanta.com). 
DES Page :19/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.2.10- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| 
|<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| 
|---M18(200)->|---M19(200)->|---M20(200)->| 
-“A” inspects the received message (M11). Then it stores : 
The “B” “Contact” header (bob@term24.biloxi.com) in its UA “dialog data 
structure” as “Remote Target”. 
The “Record-Route” headers in its UA “dialog data structure” as “Route Set” 
(bigbox3.site3.atlanta.com ; server10.biloxi.com). 
-“A” creates the ACK request. 
-“A” adds the “Route” headers using the stored “Route Set” 
(bigbox3.site3.atlanta.com ; server10.biloxi.com). 
-“A” sends the ACK request by using the first value of “Route Set”. 
(bigbox3.site3.atlanta.com ; server10.biloxi.com) 
M12 
ACK sip:bob@term24.biloxi.com SIP/2.0 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds9 
Max-Forwards: 70 
To: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 314159 ACK 
Route:sip:bigbox3.site3.atlanta.com 
Route:sip:server10.biloxi.com 
Header’s commentaries: 
Request-URI: “A” fills the Request-URI value, with “Remote Target” value of UA 
dialog data structure (bob@term24.biloxi.com). 
Route: contains the addresses that they will used to route the message. (Its value 
was the previously recorded “Route Set”) (bigbox3.site3.atlanta.com ; 
server10.biloxi.com). 
DES Page :20/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.2.11- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| 
|<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| 
|---M18(200)->|---M19(200)->|---M20(200)->| 
-“P1” inspects the Request-URI of the received message (M12), and does not 
change it because is not responsible for the resource indicated in this URI. 
-“P1” sees that it is the first value in the “Route” header field so it removes that 
value (sip:bigbox3.site3.atlanta.com). 
-“P1” forwards the request to the resource indicated in the topmost “Route” header 
(sip:server10.biloxi.com) field applying DHCP/DNS procedures. 
M13 
ACK sip:bob@term24.biloxi.com SIP/2.0 
Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds9 
Max-Forwards: 69 
To: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 314159 ACK 
Route:sip:server10.biloxi.com 
Header’s commentaries: 
Via: P1 adds its own “Via” header in the routing path (bigbox3.site3.atlanta.com). 
Route: P1 delete its own “Route” header in the routing path 
(bigbox3.site3.atlanta.com). 
DES Page :21/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.2.12- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| 
|<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| 
|---M18(200)->|---M19(200)->|---M20(200)->| 
-“P2” inspects the Request-URI of the received message (M13), and does not 
change it because is not responsible for the resource indicated in this URI (it is 
responsible for “biloxi.com”, not “term24.biloxi.com”). 
-“P2” sees that it is the first value in the “Route” header field so it removes that 
value (sip: server10.biloxi.com). 
-“P2” forwards the request to the resourse indicated in the Request-URI 
(sip:bob@term24.biloxi.com) because there are not more “Route” headers, 
applying DHCP/DNS procedures. 
M14 
ACK sip:bob@term24.biloxi.com SIP/2.0 
Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1 
Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds9 
Max-Forwards: 68 
To: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 314159 ACK 
Header’s commentaries: 
Via: P2 adds its own “Via” header in the routing path (server10.biloxi.com). 
Route: P2 delete its own “Route” header in the routing path (server10.biloxi.com). 
DES Page :22/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.2.13- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| 
|<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| 
|---M18(200)->|---M19(200)->|---M20(200)->| 
-“B” creates a BYE message. 
-“B” adds “Route” headers using the data stored at “Route Set” 
(server10.biloxi.com; bigbox3.site3.atlanta.com) (see 2.2.4-). 
-“B” sets “Request-URI” header using the data stored at “Remote 
Target”(alice@pc33.atlanta.com) (see 2.2.4-). 
-“B” sends the ACK request by using the first value of “Route Set”. 
(server10.biloxi.com ; bigbox3.site3.atlanta.com) 
M15 
BYE sip:alice@pc33.atlanta.com SIP/2.0 
Via: SIP/2.0/UDP term24.biloxi.com;branch=z9hG4bKnashds10 
Max-Forwards: 70 
From: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
To: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 231 BYE 
Contact: <sip:bob@term24.biloxi.com> 
Route: sip:server10.biloxi.com 
Route: sip:bigbox3.site3.atlanta.com 
Header’s commentaries: 
Request-URI: “B” fills the Request-URI value, with “Remote Target” value of UA 
dialog data structure (alice@pc33.atlanta.com) (see 4-). 
Route: contains the addresses that they will used to route the message. (Its value 
was the previously recorded “Route Set”) (server10.biloxi.com ; 
bigbox3.site3.atlanta.com). 
DES Page :23/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.2.14- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| 
|<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| 
|---M18(200)->|---M19(200)->|---M20(200)->| 
-“P2” inspects the Request-URI of the received message (M15), and does not 
change it because is not responsible for the resource indicated in this URI.. 
-“P2” sees that it is the first value in the “Route” header field so it removes that 
value (sip: server10.biloxi.com). 
-“P2” forwards the request to the resource indicated in the topmost “Route” header 
(sip: bigbox3.site3.atlanta.com) field applying DHCP/DNS procedures. 
M16 
BYE sip:alice@pc33.atlanta.com SIP/2.0 
Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1 
Via: SIP/2.0/UDP term24.biloxi.com;branch=z9hG4bKnashds10 
Max-Forwards: 69 
From: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
To: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 231 BYE 
Contact: <sip:bob@term24.biloxi.com> 
Route: sip:bigbox3.site3.atlanta.com 
Header’s commentaries: 
Via: P2 adds its own “Via” header in the routing path (server10.biloxi.com). 
Route: P2 delete its own “Route” header in the routing path 
(server10.biloxi.com). 
DES Page :24/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.2.15- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| 
|<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| 
|---M18(200)->|---M19(200)->|---M20(200)->| 
-“P1” inspects the Request-URI of the received message (M16), and does not 
change it because is not responsible for the resource indicated in this URI URI (it is 
responsible for “atlanta.com”, not “pc33.atlanta.com”). 
-“P1” sees that it is the first value in the “Route” header field so it removes that 
value (sip: bigbox3.site3.atlanta.com). 
-“P1” forwards the request to the resourse indicated in the Request-URI 
(sip:alice@pc33.atlanta.com) because there are not more “Route” headers, 
applying DHCP/DNS procedures. 
M17 
BYE sip:alice@pc33.atlanta.com SIP/2.0 
Via: SIP/2.0/UDP bigbox3.site3.atlanta.com; 
branch=z9hG4bK77ef4c2312983.1 
Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1 
Via: SIP/2.0/UDP term24.biloxi.com;branch=z9hG4bKnashds10 
Max-Forwards: 68 
From: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
To: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 231 BYE 
Contact: <sip:bob@term24.biloxi.com> 
Header’s commentaries: 
Via: P1 adds its own “Via” header in the routing path 
(bigbox3.site3.atlanta.com). 
Route: P1 delete its own “Route” header in the routing path 
(bigbox3.site3.atlanta.com). 
2.2.16- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| 
|<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| 
|---M18(200)->|---M19(200)->|---M20(200)->| 
-“A” creates a 200 OK response to respond to the BYE message. 
-“A” sends the 200 response by using the “Via headers”. 
M18 
SIP/2.0 200 OK 
Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1 
Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1 
Via: SIP/2.0/UDP term24.biloxi.com;branch=z9hG4bKnashds10 
From: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
To: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 231 BYE 
DES Page :25/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.2.17- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| 
|<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| 
|---M18(200)->|---M19(200)->|---M20(200)->| 
-“P1” forwards the 200 response by using the “Via” header field. 
M19 
SIP/2.0 200 OK 
Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1 
Via: SIP/2.0/UDP term24.biloxi.com;branch=z9hG4bKnashds10 
From: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
To: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 231 BYE 
Header’s commentaries: 
Via: P1 deletes its own “Via” header in the routing path 
(server10.biloxi.com). 
2.2.18- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| 
|<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| 
|---M18(200)->|---M19(200)->|---M20(200)->| 
-“P2” forwards the 200 response by using the “Via” header field. 
M20 
SIP/2.0 200 OK 
Via: SIP/2.0/UDP term24.biloxi.com;branch=z9hG4bKnashds10 
From: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
To: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 231 BYE 
Header’s commentaries: 
Via: P1 deletes its own “Via” header in the routing path 
(bigbox3.site3.atlanta.com). 
DES Page :26/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.3 Example Nº3 (SIP trapezoid using Record-Route and Route - 
Variant): 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---------M12(ACK)--------->|---M13(ACK)->| 
|<--------M15(BYE)----------|<--M14(BYE)--| 
|---------M16(200)--------->|---M17(200)->| 
This example shows two proxies in the routing path and neither of them 
request to be maintained in the signalling path by inserting Record-Route header 
fields. Only the header fields relevant to the dialog and the routing of requests are 
shown in the SIP messages. 
You can see the flow graph in “call_flow_w1RR_v00.pdf” document. Next we 
will describe each one of the flow’s messages and its relevant headers (“100 
Trying” provisional response are ignored). 
Note that we used the “blue” colour to denote FQDN identities, and 
the “red” colour to denote NFQDN identities. 
In this example “A” calls “B” using his SIP identity, a type of Uniform 
Resource Identifier (URI) called a SIP URI. This SIP URI has a similar form to an 
email address, typically containing a username and a host name. In this case, it is 
“sip:bob@biloxi.com”, where “biloxi.com” is the domain of Bob's SIP service 
provider. Alice has a SIP URI of “sip:alice@atlanta.com”. 
Note than “sip:bob@biloxi.com” and “sip:alice@atlanta.com” are 
logical identities that define the users, and “pc33.atlanta.com” and 
“term24.biloxi.com”, are the physical identities (machines) where these 
users reside. In the same way “bigbox3.site3.atlanta.com” and 
“server10.biloxi.com”, are the proxies’ physical identities. 
Note than “Request-URI” is part of the “Request-Line = Method SP 
Request-URI SP SIP-Version CRLF”. Example: INVITE sip:bob@biloxi.com 
SIP/2.0 
DES Page :27/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.3.1- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---------M12(ACK)--------->|---M13(ACK)->| 
|<--------M15(BYE)----------|<--M14(BYE)--| 
|---------M16(200)--------->|---M17(200)->| 
-“A” generates the INVITE request (Since the “A” softphone does not know the 
location of Bob or the SIP server in the “biloxi.com” domain, the softphone sends 
the INVITE to the SIP server that serves Alice's domain, “atlanta.com”. The address 
of the “atlanta.com” SIP server could have been configured in Alice's softphone (as 
an outbound proxy), or it could have been discovered by DHCP/DNS, for example). 
M1 
INVITE sip:bob@biloxi.com SIP/2.0 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8 
Max-Forwards: 70 
To: Bob <sip:bob@biloxi.com> 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 314159 INVITE 
Contact: <sip:alice@pc33.atlanta.com> 
Header’s commentaries: 
Request-URI: contains a SIP or SIPS URI (sip:bob@biloxi.com) that indicates the 
user or service to which this request is being addressed. 
Via: contains the address (pc33.atlanta.com) at which “A” is expecting to receive 
responses to this request. 
To: contains a SIP or SIPS URI (sip:bob@biloxi.com) towards which the request 
was originally directed. 
From: also contains a SIP or SIPS URI (sip:alice@atlanta.com) that indicate the 
originator of the request. 
Contact: contains a SIP or SIPS URI (sip:alice@pc33.atlanta.com) that represents a 
direct route to contact Alice, usually composed of a username at a fully qualified 
domain name (FQDN). While an FQDN is preferred, many end systems do not have 
registered domain names, so IP addresses are permitted. While the Via header 
field tells other elements where to send the response, the Contact header 
field tells other elements where to send future requests. 
DES Page :28/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.3.2- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---------M12(ACK)--------->|---M13(ACK)->| 
|<--------M15(BYE)----------|<--M14(BYE)--| 
|---------M16(200)--------->|---M17(200)->| 
-“P1” inspects the received “Request-URI” in M1 message (sip:bob@biloxi.com) and 
does not change it because it is not responsible for the resource indicated in this 
URI. 
-“P1” forwards the request to the resource indicated in the “Request-URI” 
(sip:bob@biloxi.com) by applying DHCP/DNS procedures. 
M2 
INVITE sip:bob@biloxi.com SIP/2.0 
Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 
Max-Forwards: 69 
To: Bob <sip:bob@biloxi.com> 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 314159 INVITE 
Contact: <sip:alice@pc33.atlanta.com> 
Header’s commentaries: 
Via: “P1” adds its own “Via” header in the routing path (bigbox3.site3.atlanta.com), 
for its use in the response messages. 
DES Page :29/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.3.3- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---------M12(ACK)--------->|---M13(ACK)->| 
|<--------M15(BYE)----------|<--M14(BYE)--| 
|---------M16(200)--------->|---M17(200)->| 
-“P2” inspects the received “Request-URI” in M2 message (sip:bob@biloxi.com). It 
is responsible for “biloxi.com”, so it runs a location service and rewrites the 
“Request-URI” (sip:bob@biloxi.com -> sip:bob@term24.biloxi.com) 
-“P2” adds a Record-Route header with its own address (server10.biloxi.com). (The 
next requests must traverse this address). 
-“P2” forwards the request to the resource indicated in the “Request-URI” (sip: 
bob@term24.biloxi.com) by applying DHCP/DNS procedures. 
M4 
INVITE sip:bob@term24.biloxi.com SIP/2.0 
Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1 
Via: SIP/2.0/UDP 
bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1;received=192.0.2.2 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 
Max-Forwards: 68 
To: Bob <sip:bob@biloxi.com> 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 314159 INVITE 
Contact: <sip:alice@pc33.atlanta.com> 
Record-Route: sip:server10.biloxi.com;lr> 
Header’s commentaries: 
Via: P2 adds its own “Via” header in the routing path (server10.biloxi.com), for its 
use in the response messages. 
Record-Route: “P2” adds a “Record-Route” header with its own address 
(server10.biloxi.com). (The next requests must traverse this address). 
DES Page :30/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.3.4- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---------M12(ACK)--------->|---M13(ACK)->| 
|<--------M15(BYE)----------|<--M14(BYE)--| 
|---------M16(200)--------->|---M17(200)->| 
-“B” inspects the received message (M4). Then it stores: 
The “A” “Contact” header in its UA “dialog data structure” as “Remote 
Target” (alice@pc33.atlanta.com). 
The “Record-Route” headers in its UA “dialog data structure” as “Route Set”. 
(server10.biloxi.com) 
-“B” uses the “Request-URI” (bob@term24.biloxi.com) of M4 to fill its own 
“Contact” header. 
-“B” creates the 180 response message. 
-“B” copies all the Record-Route headers to the 180 response message. 
-“B” sends the 180 response message by using the “Via” headers. 
M6 
SIP/2.0 180 Ringing 
Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1;received=192.0.2.3 
Via: SIP/2.0/UDP bigbox3.site3.atlanta.com; branch=z9hG4bK77ef4c2312983.1 
;received=192.0.2.2 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 
To: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
Contact: <sip:bob@term24.biloxi.com> 
CSeq: 314159 INVITE 
Record-Route: sip:server10.biloxi.com;lr> 
Header’s commentaries: 
Contact: “B” adds a “Contact” header field to the response, with its direct route 
(sip:bob@term24.biloxi.com). “B” obtain this value from the Request-URI of the 
incoming request (M4). 
To: “B” adds its local tag, to “To” header. 
Record-Route: “B” copies the received “Record-Route” headers into the response 
message. 
DES Page :31/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.3.5- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---------M12(ACK)--------->|---M13(ACK)->| 
|<--------M15(BYE)----------|<--M14(BYE)--| 
|---------M16(200)--------->|---M17(200)->| 
-“P2” forwards the 180 response message by using the “Via” headers. 
M7 
SIP/2.0 180 Ringing 
Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1 
;received=192.0.2.2 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 
To: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
Contact: <sip:bob@term24.biloxi.com> 
CSeq: 314159 INVITE 
Record-Route: sip:server10.biloxi.com;lr> 
Header’s commentaries: 
Via: P2 delete its own “Via” header in the routing path (server10.biloxi.com). 
2.3.6- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---------M12(ACK)--------->|---M13(ACK)->| 
|<--------M15(BYE)----------|<--M14(BYE)--| 
|---------M16(200)--------->|---M17(200)->| 
-“P1” forwards the 180 response message by using the “Via” headers. 
M8 
SIP/2.0 180 Ringing 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 
To: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
Contact: <sip:bob@term24.biloxi.com> 
CSeq: 314159 INVITE 
Record-Route: sip:server10.biloxi.com;lr> 
Header’s commentaries: 
Via: P1 delete its own “Via” header in the routing path (bigbox3.site3.atlanta.com). 
DES Page :32/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.3.7- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---------M12(ACK)--------->|---M13(ACK)->| 
|<--------M15(BYE)----------|<--M14(BYE)--| 
|---------M16(200)--------->|---M17(200)->| 
-“B” creates the 200 response message. 
-“B” sends the 200 response message by using the “Via” headers. 
M9 
SIP/2.0 200 OK 
Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1;received=192.0.2.3 
Via: SIP/2.0/UDP 
bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1;received=192.0.2.2 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 
To: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 314159 INVITE 
Contact: <sip:bob@term24.biloxi.com> 
Record-Route: sip:server10.biloxi.com;lr> 
Header’s commentaries: 
Contact: “B” adds a Contact header field to the response, with its direct route 
(sip:bob@term24.biloxi.com). “B” obtains this value from the Request-URI of the 
incoming request (M4). 
To: “B” adds its local tag, to “To” header. 
Record-Route: “B” copies the received “Record-Route” headers into the response 
message. 
2.3.8- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---------M12(ACK)--------->|---M13(ACK)->| 
|<--------M15(BYE)----------|<--M14(BYE)--| 
|---------M16(200)--------->|---M17(200)->| 
-“P2” forwards the 200 response message by using the “Via” headers. 
M10 
SIP/2.0 200 OK 
Via: SIP/2.0/UDP 
bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1;received=192.0.2.2 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 
To: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 314159 INVITE 
Contact: <sip:bob@term24.biloxi.com> 
Record-Route: sip:server10.biloxi.com;lr> 
Header’s commentaries: 
Via: P2 delete its own “Via” header in the routing path (server10.biloxi.com). 
DES Page :33/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.3.9- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---------M12(ACK)--------->|---M13(ACK)->| 
|<--------M15(BYE)----------|<--M14(BYE)--| 
|---------M16(200)--------->|---M17(200)->| 
-“P1” forwards the 200 response message by using the “Via” headers. 
M11 
SIP/2.0 200 OK 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 
To: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 314159 INVITE 
Contact: <sip:bob@term24.biloxi.com> 
Record-Route: sip:server10.biloxi.com;lr> 
Header’s commentaries: 
Via: P1 delete its own via “Via” header in the routing path 
(bigbox3.site3.atlanta.com). 
2.3.10- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---------M12(ACK)--------->|---M13(ACK)->| 
|<--------M15(BYE)----------|<--M14(BYE)--| 
|---------M16(200)--------->|---M17(200)->| 
-“A” inspects the received message (M11). Then it stores : 
The “B” “Contact” header (bob@term24.biloxi.com) in its UA “dialog data 
structure” as “Remote Target”. 
The “Record-Route” headers in its UA “dialog data structure” as “Route Set” 
(bigbox3.site3.atlanta.com ; server10.biloxi.com). 
-“A” creates the ACK request. 
-“A” adds the “Route” headers using the stored “Route Set” (server10.biloxi.com). 
-“A” sends the ACK request by using the unique value of “Route Set” 
(server10.biloxi.com). 
M12 
ACK sip:bob@term24.biloxi.com SIP/2.0 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds9 
Max-Forwards: 70 
To: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 314159 ACK 
Route:sip:server10.biloxi.com 
DES Page :34/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
Header’s commentaries: 
Request-URI: “A” fills the Request-URI value, with “Remote Target” value of UA 
dialog data structure (bob@term24.biloxi.com) (see 2.3.4-). 
Route: contains the addresses that they will used to route the message. (Its value 
was the previously recorded “Route Set”) (server10.biloxi.com) (see 2.3.4-). 
2.3.11- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---------M12(ACK)--------->|---M13(ACK)->| 
|<--------M15(BYE)----------|<--M14(BYE)--| 
|---------M16(200)--------->|---M17(200)->| 
-“P2” inspects the Request-URI of the received message (M12), and does not 
change it because is not responsible for the resource indicated in this URI (it is 
responsible for “biloxi.com”, not “term24.biloxi.com”). 
-“P2” sees that it is the first value in the “Route” header field so it removes that 
value (sip: server10.biloxi.com). 
-“P2” forwards the request to the resourse indicated in the Request-URI 
(sip:bob@term24.biloxi.com) because there are not more “Route” headers, 
applying DHCP/DNS procedures. 
M13 
ACK sip:bob@term24.biloxi.com SIP/2.0 
Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1 
Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1 
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds9 
Max-Forwards: 69 
To: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
From: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 314159 ACK 
Header’s commentaries: 
Via: P2 adds its own “Via” header in the routing path (server10.biloxi.com). 
Route: P2 delete its own “Route” header in the routing path (server10.biloxi.com). 
DES Page :35/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.3.12- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---------M12(ACK)--------->|---M13(ACK)->| 
|<--------M15(BYE)----------|<--M14(BYE)--| 
|---------M16(200)--------->|---M17(200)->| 
-“B” creates a BYE message. 
-“B” adds “Route” headers using the data stored at “Route Set” 
(server10.biloxi.com) (see 2.3.4-). 
-“B” sets “Request-URI” header using the data stored at “Remote 
Target”(alice@pc33.atlanta.com) (see 2.3.4-). 
-“B” sends the ACK request by using the first value of “Route Set”. 
(server10.biloxi.com) 
M14 
BYE sip:alice@pc33.atlanta.com SIP/2.0 
Via: SIP/2.0/UDP term24.biloxi.com;branch=z9hG4bKnashds10 
Max-Forwards: 70 
From: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
To: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 231 BYE 
Contact: <sip:bob@term24.biloxi.com> 
Route: sip:server10.biloxi.com 
Header’s commentaries: 
Request-URI: “B” fills the Request-URI value, with “Remote Target” value of UA 
dialog data structure (alice@pc33.atlanta.com) (see 2.3.4-). 
Route: contains the addresses that they will used to route the message. (Its value 
was the previously recorded “Route Set”) (server10.biloxi.com). 
DES Page :36/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.2.13- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---------M12(ACK)--------->|---M13(ACK)->| 
|<--------M15(BYE)----------|<--M14(BYE)--| 
|---------M16(200)--------->|---M17(200)->| 
-“P2” inspects the Request-URI of the received message (M15), and does not 
change it because is not responsible for the resource indicated in this URI.. 
-“P2” sees that it is the first value in the “Route” header field so it removes that 
value (sip: server10.biloxi.com). 
-“P2” forwards the request to the resourse indicated in the Request-URI 
(sip:alice@pc33.atlanta.com) because there are not more “Route” headers, 
applying DHCP/DNS procedures. 
M15 
BYE sip:alice@pc33.atlanta.com SIP/2.0 
Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1 
Via: SIP/2.0/UDP term24.biloxi.com;branch=z9hG4bKnashds10 
Max-Forwards: 69 
From: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
To: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 231 BYE 
Contact: <sip:bob@term24.biloxi.com> 
Header’s commentaries: 
Via: P2 adds its own “Via” header in the routing path (server10.biloxi.com). 
Route: P2 delete its own “Route” header in the routing path 
(server10.biloxi.com). 
2.3.14- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---------M12(ACK)--------->|---M13(ACK)->| 
|<--------M15(BYE)----------|<--M14(BYE)--| 
|---------M16(200)--------->|---M17(200)->| 
-“A” creates a 200 OK response to respond to the BYE message. 
-“A” sends the 200 response by using the “Via headers”. 
M16 
SIP/2.0 200 OK 
Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1 
Via: SIP/2.0/UDP term24.biloxi.com;branch=z9hG4bKnashds10 
From: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
To: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 231 BYE 
DES Page :37/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
2.3.15- 
A P1 P2 B 
|---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| 
|<--M8(180)---|<--M7(180)---|<--M6(180)---| 
|<--M11(200)--|<--M10(200)--|<--M9(200)---| 
|---------M12(ACK)--------->|---M13(ACK)->| 
|<--------M15(BYE)----------|<--M14(BYE)--| 
|---------M16(200)--------->|---M17(200)->| 
-“P2” forwards the 200 response by using the “Via” header field. 
M20 
SIP/2.0 200 OK 
Via: SIP/2.0/UDP term24.biloxi.com;branch=z9hG4bKnashds10 
From: Bob <sip:bob@biloxi.com>;tag=a6c85cf 
To: Alice <sip:alice@atlanta.com>;tag=1928301774 
Call-ID: a84b4c76e66710 
CSeq: 231 BYE 
Header’s commentaries: 
Via: P2 deletes its own “Via” header in the routing path 
(server10.biloxi.com). 
DES Page :38/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
3 UA DIALOG STRUCTURES: 
In the UA there are data structures that are used to store dialogues’ states 
and necessary parameters for the interchange of messages. In the previous 
sections, we mentioned some of these parameters. In this section we will 
enumerate these parameters. 
This data structures are not standarised, but through its use on “best 
practices” they became in a defacto design standard. 
Figure Nº1: UA dialog structure 
Note than exists a field named “Other parameters”, in this field I grouped 
some existing fields, that I will mention briefly. 
3.1 Fields description: 
Each UA can behave like UAS or UAC for different dialogues. One UA will 
behave like UAC if it sends requests in a certain dialog and one UA will behave like 
UAS if it sends responses in a certain dialog. Some of the fields of the UA dialog 
structure take its value in different form if the UA acts as an UAC or an UAS. 
Figure Nº2: UAC-UAS scheme. 
In the following lines I will give a description of the structure’s fields. 
Between square brackets will be added the related SIP header in each case. 
Call-Id [Call-Id]: This field stores de Call-ID of the call. A generated Call-Id for UAC 
(see 2.1.1) or a received Call-ID for UAS (see 2.1.4). 
Local Tag [From(UAC);To(UAS)]: This field stores the generated local tag used in 
the “From” header in the UAC (see 2.1.1) or the generated local tag for the “To” 
header in the UAS (see 2.1.4). 
DES Page :39/40
ROUTING ISSUES IN BASIC CALL FLOWS DES 
Remote Tag [To(UAC);From(UAS)]: This field stores the received tag in the “From” 
header in the UAC (see 2.1.6 - “A” node) or the received tag in the “To” header in 
the UAS (see 2.1.4). 
Local seqnum[Cseq(UAC)]: This field stores the generated Cseq for UAC (see 
2.1.1). 
Remote seqnum[Cseq(UAS)]: This field stores the received Cseq for UAS (see 
2.1.4). 
Local URI [From(UAC);To(UAS)]: This field stores the local URI used in the “From” 
header in the UAC (see 2.1.1) or in the “To” header in the UAS (see 2.1.4). 
Remote URI [To(UAC); From(UAS); Request-URI(UAC*)]: This field stores the 
remote URI used in the “To” header in the UAC (see 2.1.1) or in the “To” header in 
the UAS (see 2.1.4). Under certain conditions this value is used on “Request-URI” 
by UAC (see 2.1.1 [Condition: In the first INVITE of an outgoing call]). 
Local target [Contact]: This field stores the value for “Contact” header. This value is 
generated on UAC (see 2.1.1) or obtained from “Request-URI” in UAS(see 
2.1.4)/UAC only under certain conditions. 
Remote target [Request-URI]: This field stores the value for “Request-URI” header. 
This value is obtained from “Contact” header in UAS(see 2.1.4)/UAC(see 2.1.6 node 
“A”) or generated in UAC under certain conditions. 
Route Set[Record-Route, Route]: This field stores the values obtained from 
“Record-Route” headers and used in “Route” headers.(see 2.2.6 node “A” , see 
2.2.4). 
Secure flag: This field stores when the UA uses TLS for signalling or SRTP for audio 
streams. 
Other parameters: “display” part, “P-Preferred-Identity”,”A-Asserted- 
Identity”,”Privacy”. The mentioned headers are related to the “local tag” 
identification through public networks. The values that they can take depend on the 
country network “id” parameters and interconnection terms. 
DES Page :40/40

More Related Content

Viewers also liked

Call Center Layouts by Interior Concepts
Call Center Layouts by Interior ConceptsCall Center Layouts by Interior Concepts
Call Center Layouts by Interior ConceptsInterior Concepts
 
Call Centre Architecture
Call Centre ArchitectureCall Centre Architecture
Call Centre Architectureapoorva tyagi
 
Modern Data Architecture for a Data Lake with Informatica and Hortonworks Dat...
Modern Data Architecture for a Data Lake with Informatica and Hortonworks Dat...Modern Data Architecture for a Data Lake with Informatica and Hortonworks Dat...
Modern Data Architecture for a Data Lake with Informatica and Hortonworks Dat...Hortonworks
 
Best practices-lte-call-flow-guide
Best practices-lte-call-flow-guideBest practices-lte-call-flow-guide
Best practices-lte-call-flow-guideMorg
 
Genesys SIP Server Architecture
Genesys SIP Server ArchitectureGenesys SIP Server Architecture
Genesys SIP Server ArchitectureRanjit Patel
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with DataSeth Familian
 

Viewers also liked (6)

Call Center Layouts by Interior Concepts
Call Center Layouts by Interior ConceptsCall Center Layouts by Interior Concepts
Call Center Layouts by Interior Concepts
 
Call Centre Architecture
Call Centre ArchitectureCall Centre Architecture
Call Centre Architecture
 
Modern Data Architecture for a Data Lake with Informatica and Hortonworks Dat...
Modern Data Architecture for a Data Lake with Informatica and Hortonworks Dat...Modern Data Architecture for a Data Lake with Informatica and Hortonworks Dat...
Modern Data Architecture for a Data Lake with Informatica and Hortonworks Dat...
 
Best practices-lte-call-flow-guide
Best practices-lte-call-flow-guideBest practices-lte-call-flow-guide
Best practices-lte-call-flow-guide
 
Genesys SIP Server Architecture
Genesys SIP Server ArchitectureGenesys SIP Server Architecture
Genesys SIP Server Architecture
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with Data
 

Similar to D basic flows-routing-issues-vt00r00

Ericsson-IMS-call-flows-volte123_pdf.pdf
Ericsson-IMS-call-flows-volte123_pdf.pdfEricsson-IMS-call-flows-volte123_pdf.pdf
Ericsson-IMS-call-flows-volte123_pdf.pdfFabianLopez488132
 
From MSS to TelScale - Mobicents Summit 2011
From MSS to TelScale - Mobicents Summit 2011From MSS to TelScale - Mobicents Summit 2011
From MSS to TelScale - Mobicents Summit 2011telestax
 
7 Principles of API Design - Waza
7 Principles of API Design - Waza7 Principles of API Design - Waza
7 Principles of API Design - WazaTwilio Inc
 
Instantmessagingprotocols
InstantmessagingprotocolsInstantmessagingprotocols
Instantmessagingprotocolssanjoysanyal
 
Sinnreich Henry Johnston Alan Pt 1
Sinnreich Henry Johnston Alan   Pt 1Sinnreich Henry Johnston Alan   Pt 1
Sinnreich Henry Johnston Alan Pt 1Carl Ford
 
FreeSBC How To - Advanced SIP Routing
FreeSBC How To - Advanced SIP RoutingFreeSBC How To - Advanced SIP Routing
FreeSBC How To - Advanced SIP RoutingTelcoBridges Inc.
 
FreeSBC How To - Advanced SIP Routing
FreeSBC How To - Advanced SIP RoutingFreeSBC How To - Advanced SIP Routing
FreeSBC How To - Advanced SIP RoutingAlan Percy
 
Sip Tutorial Preview
Sip Tutorial PreviewSip Tutorial Preview
Sip Tutorial Previewekrapf
 
LinuxCon North America: SIPPing from the Open Source Well
LinuxCon North America: SIPPing from the Open Source WellLinuxCon North America: SIPPing from the Open Source Well
LinuxCon North America: SIPPing from the Open Source WellMatt Bynum
 
Getting a live_transcript_of_your_call_using_the_ari
Getting a live_transcript_of_your_call_using_the_ariGetting a live_transcript_of_your_call_using_the_ari
Getting a live_transcript_of_your_call_using_the_ariPascal Cadotte-Michaud
 
Developing VoIP Applications with SIP Servlets, SDForum Java SIG, Nov 2007
Developing VoIP Applications with SIP Servlets, SDForum Java SIG, Nov 2007Developing VoIP Applications with SIP Servlets, SDForum Java SIG, Nov 2007
Developing VoIP Applications with SIP Servlets, SDForum Java SIG, Nov 2007Jarek Wilkiewicz
 
Introduction to VoIP using SIP
Introduction to VoIP using SIPIntroduction to VoIP using SIP
Introduction to VoIP using SIPKundan Singh
 
session initiation protocol - SIP
session initiation protocol - SIPsession initiation protocol - SIP
session initiation protocol - SIPMahmoud Abudaqa
 
Hacking Trust Relationships Between SIP Gateways
Hacking Trust Relationships Between SIP GatewaysHacking Trust Relationships Between SIP Gateways
Hacking Trust Relationships Between SIP GatewaysFatih Ozavci
 
Session Initiation Protocol
Session Initiation ProtocolSession Initiation Protocol
Session Initiation ProtocolMatt Bynum
 
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...ALTANAI BISHT
 
Sinnreich Henry Johnston Alan Pt 3
Sinnreich Henry Johnston Alan   Pt 3Sinnreich Henry Johnston Alan   Pt 3
Sinnreich Henry Johnston Alan Pt 3Carl Ford
 

Similar to D basic flows-routing-issues-vt00r00 (20)

Sip crash course
Sip crash courseSip crash course
Sip crash course
 
Indroduction to SIP
Indroduction to SIPIndroduction to SIP
Indroduction to SIP
 
Ericsson-IMS-call-flows-volte123_pdf.pdf
Ericsson-IMS-call-flows-volte123_pdf.pdfEricsson-IMS-call-flows-volte123_pdf.pdf
Ericsson-IMS-call-flows-volte123_pdf.pdf
 
From MSS to TelScale - Mobicents Summit 2011
From MSS to TelScale - Mobicents Summit 2011From MSS to TelScale - Mobicents Summit 2011
From MSS to TelScale - Mobicents Summit 2011
 
7 Principles of API Design - Waza
7 Principles of API Design - Waza7 Principles of API Design - Waza
7 Principles of API Design - Waza
 
Instantmessagingprotocols
InstantmessagingprotocolsInstantmessagingprotocols
Instantmessagingprotocols
 
Sinnreich Henry Johnston Alan Pt 1
Sinnreich Henry Johnston Alan   Pt 1Sinnreich Henry Johnston Alan   Pt 1
Sinnreich Henry Johnston Alan Pt 1
 
FreeSBC How To - Advanced SIP Routing
FreeSBC How To - Advanced SIP RoutingFreeSBC How To - Advanced SIP Routing
FreeSBC How To - Advanced SIP Routing
 
FreeSBC How To - Advanced SIP Routing
FreeSBC How To - Advanced SIP RoutingFreeSBC How To - Advanced SIP Routing
FreeSBC How To - Advanced SIP Routing
 
Sip Tutorial Preview
Sip Tutorial PreviewSip Tutorial Preview
Sip Tutorial Preview
 
LinuxCon North America: SIPPing from the Open Source Well
LinuxCon North America: SIPPing from the Open Source WellLinuxCon North America: SIPPing from the Open Source Well
LinuxCon North America: SIPPing from the Open Source Well
 
Getting a live_transcript_of_your_call_using_the_ari
Getting a live_transcript_of_your_call_using_the_ariGetting a live_transcript_of_your_call_using_the_ari
Getting a live_transcript_of_your_call_using_the_ari
 
Developing VoIP Applications with SIP Servlets, SDForum Java SIG, Nov 2007
Developing VoIP Applications with SIP Servlets, SDForum Java SIG, Nov 2007Developing VoIP Applications with SIP Servlets, SDForum Java SIG, Nov 2007
Developing VoIP Applications with SIP Servlets, SDForum Java SIG, Nov 2007
 
Introduction to VoIP using SIP
Introduction to VoIP using SIPIntroduction to VoIP using SIP
Introduction to VoIP using SIP
 
session initiation protocol - SIP
session initiation protocol - SIPsession initiation protocol - SIP
session initiation protocol - SIP
 
IMS Signaling (Rev. 3)
IMS Signaling (Rev. 3)IMS Signaling (Rev. 3)
IMS Signaling (Rev. 3)
 
Hacking Trust Relationships Between SIP Gateways
Hacking Trust Relationships Between SIP GatewaysHacking Trust Relationships Between SIP Gateways
Hacking Trust Relationships Between SIP Gateways
 
Session Initiation Protocol
Session Initiation ProtocolSession Initiation Protocol
Session Initiation Protocol
 
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...
 
Sinnreich Henry Johnston Alan Pt 3
Sinnreich Henry Johnston Alan   Pt 3Sinnreich Henry Johnston Alan   Pt 3
Sinnreich Henry Johnston Alan Pt 3
 

Recently uploaded

(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝soniya singh
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidNikhilNagaraju
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learningmisbanausheenparvam
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineeringmalavadedarshan25
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLDeelipZope
 
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024Mark Billinghurst
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130Suhani Kapoor
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2RajaP95
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx959SahilShah
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort servicejennyeacort
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 

Recently uploaded (20)

(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfid
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learning
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineering
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCL
 
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 

D basic flows-routing-issues-vt00r00

  • 1. ROUTING ISSUES IN BASIC CALL FLOWS DES ROUTING ISSUES IN BASIC CALL FLOWS By: Daniel Esteban Soroko - 2011 DES Page :1/40
  • 2. ROUTING ISSUES IN BASIC CALL FLOWS DES Contents 1 GENERAL INTRODUCTION: .................................................3 1.1 PURPOSE: .......................................................................................... 3 1.2 SCOPE:.............................................................................................. 3 1.3 ABBREVIATIONS AND TERMINOLOGY:.................................................... 3 1.4 REQUIRED INFORMATION: ................................................................... 3 1.5 RELATED DOCUMENTATION:................................................................. 3 2 OVERVIEW: ........................................................................4 2.1 EXAMPLE Nº1 (SIP TRAPEZOID WITHOUT USING RECORD-ROUTE AND ROUTE): ..................................................................................................... 4 2.2 EXAMPLE Nº2 (SIP TRAPEZOID USING RECORD-ROUTE AND ROUTE): ...... 12 2.3 EXAMPLE Nº3 (SIP TRAPEZOID USING RECORD-ROUTE AND ROUTE - VARIANT): ................................................................................................ 27 3 UA DIALOG STRUCTURES: ................................................39 3.1 FIELDS DESCRIPTION:....................................................................... 39 DES Page :2/40
  • 3. ROUTING ISSUES IN BASIC CALL FLOWS DES 1 GENERAL INTRODUCTION: 1.1 Purpose: This document gives a brief detail of the mechanisms used to route SIP messages and an approach about routing related header fields. 1.2 Scope: This description depicts the routing mechanisms used in SIP messages. 1.3 Abbreviations and Terminology: -. 1.4 Required information: call_flow_woRR_v00.pdf: signalling flow example. call_flow_w1RR_v00.pdf: signalling flow example. call_flow_w2RR_v00.pdf: signalling flow example. 1.5 Related documentation: RFC 3261: SIP: Session Initiation Protocol. RFC 3263: Session Initiation Protocol (SIP): Locating SIP Servers. RFC 3665: Session Initiation Protocol (SIP) Basic Call Flow Examples. RFC 3666: Session Initiation Protocol (SIP) Public Switched Telephone Network (PSTN) Call Flows. RFC 5411: A Hitchhiker's Guide to the Session Initiation Protocol (SIP). RFC 5627: Obtaining and Using Globally Routable User Agent URIs (GRUUs) in the Session Initiation Protocol (SIP) RFC 5630: The Use of the SIPS URI Scheme in the Session Initiation Protocol (SIP). DES Page :3/40
  • 4. ROUTING ISSUES IN BASIC CALL FLOWS DES 2 OVERVIEW: In the next sections we will deal with SIP dialogs and routing of requests. A Dialog is a peer-to-peer relationship between two user agents. It represents a context that facilitates the sequencing of messages between the user agents and proper routing of requests between both of them. The following examples, illustrates the creation of a dialog, the processing of requests during this dialog, and the termination of the dialog. 2.1 Example Nº1 (SIP trapezoid without using Record-Route and Route): A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |-----------------M12(ACK)--------------->| |<----------------M13(BYE)----------------| |-----------------M14(200)--------------->| This example shows two proxies in the routing path and neither of them request to be maintained in the signalling path by inserting Record-Route header fields. Only the header fields relevant to the dialog and the routing of requests are shown in the SIP messages. You can see the flow graph in “call_flow_woRR_v00.pdf” document. Next we will describe each one of the flow’s messages and its relevant headers (“100 Trying” provisional response are ignored). Note that we used the “blue” colour to denote FQDN identities, and the “red” colour to denote NFQDN identities. In this example “A” calls “B” using his SIP identity, a type of Uniform Resource Identifier (URI) called a SIP URI. This SIP URI has a similar form to an email address, typically containing a username and a host name. In this case, it is “sip:bob@biloxi.com”, where “biloxi.com” is the domain of Bob's SIP service provider. Alice has a SIP URI of “sip:alice@atlanta.com”. Note than “sip:bob@biloxi.com” and “sip:alice@atlanta.com” are logical identities that define the users, and “pc33.atlanta.com” and “term24.biloxi.com”, are the physical identities (machines) where these users reside. In the same way “bigbox3.site3.atlanta.com” and “server10.biloxi.com”, are the proxies’ physical identities. Note than “Request-URI” is part of the “Request-Line = Method SP Request-URI SP SIP-Version CRLF”. Example: INVITE sip:bob@biloxi.com SIP/2.0 DES Page :4/40
  • 5. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.1.1- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |-----------------M12(ACK)--------------->| |<----------------M13(BYE)----------------| |-----------------M14(200)--------------->| -“A” generates the INVITE request (Since the “A” softphone does not know the location of Bob or the SIP server in the “biloxi.com” domain, the softphone sends the INVITE to the SIP server that serves Alice's domain, “atlanta.com”. The address of the “atlanta.com” SIP server could have been configured in Alice's softphone (as an outbound proxy), or it could have been discovered by DHCP/DNS, for example). M1 INVITE sip:bob@biloxi.com SIP/2.0 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8 Max-Forwards: 70 To: Bob <sip:bob@biloxi.com> From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 314159 INVITE Contact: <sip:alice@pc33.atlanta.com> Header’s commentaries: Request-URI: contains a SIP or SIPS URI (sip:bob@biloxi.com) that indicates the user or service to which this request is being addressed. Via: contains the address (pc33.atlanta.com) at which “A” is expecting to receive responses to this request. To: contains a SIP or SIPS URI (sip:bob@biloxi.com) towards which the request was originally directed. From: also contains a SIP or SIPS URI (sip:alice@atlanta.com) that indicate the originator of the request. Contact: contains a SIP or SIPS URI (sip:alice@pc33.atlanta.com) that represents a direct route to contact Alice, usually composed of a username at a fully qualified domain name (FQDN). While an FQDN is preferred, many end systems do not have registered domain names, so IP addresses are permitted. While the Via header field tells other elements where to send the response, the Contact header field tells other elements where to send future requests. DES Page :5/40
  • 6. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.1.2- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |-----------------M12(ACK)--------------->| |<----------------M13(BYE)----------------| |-----------------M14(200)--------------->| -“P1” inspects the received “Request-URI” in M1 message (sip:bob@biloxi.com) and does not change it because it is not responsible for the resource indicated in this URI. -“P1” forwards the request to the resource indicated in the “Request-URI” (sip:bob@biloxi.com) by applying DHCP/DNS procedures. M2 INVITE sip:bob@biloxi.com SIP/2.0 Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 Max-Forwards: 69 To: Bob <sip:bob@biloxi.com> From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 314159 INVITE Contact: <sip:alice@pc33.atlanta.com> Header’s commentaries: Via: P1 adds its own via header in the routing path (bigbox3.site3.atlanta.com), for its use in the response messages. 2.1.3- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |-----------------M12(ACK)--------------->| |<----------------M13(BYE)----------------| |-----------------M14(200)--------------->| -“P2” inspects the received “Request-URI” in M2 message (sip:bob@biloxi.com). It is responsible for “biloxi.com”, so it runs a location service and rewrites the “Request-URI” (sip:bob@biloxi.com -> sip:bob@term24.biloxi.com) -“P2” forwards the request to the resource indicated in the “Request-URI” (sip: bob@term24.biloxi.com) by applying DHCP/DNS procedures. M4 INVITE sip:bob@term24.biloxi.com SIP/2.0 Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1 Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1;received=192.0.2.2 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 Max-Forwards: 68 To: Bob <sip:bob@biloxi.com> From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 314159 INVITE Contact: <sip:alice@pc33.atlanta.com> DES Page :6/40
  • 7. ROUTING ISSUES IN BASIC CALL FLOWS DES Header’s commentaries: Via: P2 adds its own via header in the routing path (server10.biloxi.com), for its use in the response messages. 2.1.4- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |-----------------M12(ACK)--------------->| |<----------------M13(BYE)----------------| |-----------------M14(200)--------------->| -“B” inspects the received message (M4). Then it stores the “A” “Contact header” (alice@pc33.atlanta.com) in its UA “dialog data structure” as “Remote Target”. It uses the “Request-URI” of M4 to fill its own “Contact” header. -“B” creates the 180 response message. -“B” sends the 180 response message by using the “Via” headers. M6 SIP/2.0 180 Ringing Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1;received=192.0.2.3 Via: SIP/2.0/UDP bigbox3.site3.atlanta.com; branch=z9hG4bK77ef4c2312983.1;received=192.0.2.2 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 To: Bob <sip:bob@biloxi.com>;tag=a6c85cf From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 Contact: <sip:bob@term24.biloxi.com> CSeq: 314159 INVITE Header’s commentaries: Contact: “B” adds a Contact header field to the response, with its direct route (sip:bob@term24.biloxi.com). “B” obtain this value from the Request-URI of the incoming request (M4). To: “B” adds its local tag, to “To” header. DES Page :7/40
  • 8. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.1.5- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |-----------------M12(ACK)--------------->| |<----------------M13(BYE)----------------| |-----------------M14(200)--------------->| -“P2” forwards the 180 response message by using the “Via” headers. M7 SIP/2.0 180 Ringing Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1;received=192.0.2.2 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 To: Bob <sip:bob@biloxi.com>;tag=a6c85cf From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 Contact: <sip:bob@term24.biloxi.com> CSeq: 314159 INVITE Header’s commentaries: Via: P2 delete its own via header in the routing path (server10.biloxi.com). 2.1.6- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |-----------------M12(ACK)--------------->| |<----------------M13(BYE)----------------| |-----------------M14(200)--------------->| -“P1” forwards the 180 response message by using the “Via” headers. M8 SIP/2.0 180 Ringing Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 To: Bob <sip:bob@biloxi.com>;tag=a6c85cf From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 Contact: <sip:bob@term24.biloxi.com> CSeq: 314159 INVITE Header’s commentaries: Via: P1 delete its own via header in the routing path (bigbox3.site3.atlanta.com). DES Page :8/40
  • 9. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.1.7- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |-----------------M12(ACK)--------------->| |<----------------M13(BYE)----------------| |-----------------M14(200)--------------->| -“B” creates the 200 response message. -“B” sends the 200 response message by using the “Via” headers. M9 SIP/2.0 200 OK Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1;received=192.0.2.3 Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1;received=192.0.2.2 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 To: Bob <sip:bob@biloxi.com>;tag=a6c85cf From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 314159 INVITE Contact: <sip:bob@term24.biloxi.com> Header’s commentaries: Contact: “B” adds a Contact header field to the response, with its direct route (sip:bob@term24.biloxi.com). “B” obtains this value from the Request-URI of the incoming request (M4). To: “B” adds its local tag, to “To” header. 2.1.8- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |-----------------M12(ACK)--------------->| |<----------------M13(BYE)----------------| |-----------------M14(200)--------------->| -“P2” forwards the 200 response message by using the “Via” headers. M10 SIP/2.0 200 OK Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1 ; received=192.0.2.2 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 To: Bob <sip:bob@biloxi.com>;tag=a6c85cf From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 314159 INVITE Contact: <sip:bob@term24.biloxi.com> Header’s commentaries: Via: P2 delete its own via header in the routing path (server10.biloxi.com). DES Page :9/40
  • 10. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.1.9- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |-----------------M12(ACK)--------------->| |<----------------M13(BYE)----------------| |-----------------M14(200)--------------->| -“P1” forwards the 200 response message by using the “Via” headers. M11 SIP/2.0 200 OK Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 To: Bob <sip:bob@biloxi.com>;tag=a6c85cf From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 314159 INVITE Contact: <sip:bob@term24.biloxi.com> Header’s commentaries: Via: P1 delete its own via header in the routing path (bigbox3.site3.atlanta.com). 2.1.10- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |-----------------M12(ACK)--------------->| |<----------------M13(BYE)----------------| |-----------------M14(200)--------------->| -“A” inspects the received message (M11). Then it stores the “B” “Contact header” in its UA “dialog data structure” as “Remote Target”. -“A” creates the ACK request. -“A” sends the ACK request by using the Contact header received in M11(bob@term24.biloxi.com). M12 ACK sip:bob@term24.biloxi.com SIP/2.0 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds9 Max-Forwards: 70 To: Bob <sip:bob@biloxi.com>;tag=a6c85cf From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 314159 ACK Header’s commentaries: Request-URI: contains a SIP or SIPS URI (sip:bob@term24.biloxi.com) that indicates the user or service to which this request is being addressed.”A” fills it value, with the received “Contact” header of M11 message. DES Page :10/40
  • 11. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.1.11- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |-----------------M12(ACK)--------------->| |<----------------M13(BYE)----------------| |-----------------M14(200)--------------->| -“B” creates a BYE message. -“B” sends the BYE request by using the “Remote Target” of UA dialog data structure (alice@pc33.atlanta.com) (see 2.1.4-). M13 BYE sip:alice@pc33.atlanta.com SIP/2.0 Via: SIP/2.0/UDP term24.biloxi.com;branch=z9hG4bKnashds10 Max-Forwards: 70 From: Bob <sip:bob@biloxi.com>;tag=a6c85cf To: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 231 BYE Contact: <sip:bob@term24.biloxi.com> Header’s commentaries: Request-URI: “B” fills the Request-URI value, “Remote Target” of UA dialog data structure (alice@pc33.atlanta.com) (see 2.1.4-). 2.1.12- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |-----------------M12(ACK)--------------->| |<----------------M13(BYE)----------------| |-----------------M14(200)--------------->| -“A” creates a 200 OK response to respond to the BYE message. -“A” sends the 200 response by using the “Via headers”. M14 SIP/2.0 200 OK Via: SIP/2.0/UDP term24.biloxi.com;branch=z9hG4bKnashds10 From: Bob <sip:bob@biloxi.com>;tag=a6c85cf To: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 231 BYE DES Page :11/40
  • 12. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.2 Example Nº2 (SIP trapezoid using Record-Route and Route): A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| |<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| |---M18(200)->|---M19(200)->|---M20(200)->| This example shows two proxies in the routing path and both of them request to be maintained in the signalling path by inserting Record-Route header fields. Only the header fields relevant to the dialog and the routing of requests are shown in the SIP messages. You can see the flow graph in “call_flow_w2RR_v00.pdf” document. Next we will describe each one of the flow’s messages and its relevant headers (“100 Trying” provisional response are ignored). Note that we used the “blue” colour to denote FQDN identities, and the “red” colour to denote NFQDN identities. In this example “A” calls “B” using his SIP identity, a type of Uniform Resource Identifier (URI) called a SIP URI. This SIP URI has a similar form to an email address, typically containing a username and a host name. In this case, it is “sip:bob@biloxi.com”, where “biloxi.com” is the domain of Bob's SIP service provider. Alice has a SIP URI of “sip:alice@atlanta.com”. Note than “sip:bob@biloxi.com” and “sip:alice@atlanta.com” are logical identities that define the users, and “pc33.atlanta.com” and “term24.biloxi.com”, are the physical identities (machines) where these users reside. In the same way “bigbox3.site3.atlanta.com” and “server10.biloxi.com”, are the proxies’ physical identities. Note than “Request-URI” is part of the “Request-Line = Method SP Request-URI SP SIP-Version CRLF”. Example: INVITE sip:bob@biloxi.com SIP/2.0 DES Page :12/40
  • 13. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.2.1- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| |<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| |---M18(200)->|---M19(200)->|---M20(200)->| -“A” generates the INVITE request (Since the “A” softphone does not know the location of Bob or the SIP server in the “biloxi.com” domain, the softphone sends the INVITE to the SIP server that serves Alice's domain, “atlanta.com”. The address of the “atlanta.com” SIP server could have been configured in Alice's softphone (as an outbound proxy), or it could have been discovered by DHCP/DNS, for example). M1 INVITE sip:bob@biloxi.com SIP/2.0 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8 Max-Forwards: 70 To: Bob <sip:bob@biloxi.com> From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 314159 INVITE Contact: <sip:alice@pc33.atlanta.com> Header’s commentaries: Request-URI: contains a SIP or SIPS URI (sip:bob@biloxi.com) that indicates the user or service to which this request is being addressed. Via: contains the address (pc33.atlanta.com) at which “A” is expecting to receive responses to this request. To: contains a SIP or SIPS URI (sip:bob@biloxi.com) towards which the request was originally directed. From: also contains a SIP or SIPS URI (sip:alice@atlanta.com) that indicate the originator of the request. Contact: contains a SIP or SIPS URI (sip:alice@pc33.atlanta.com) that represents a direct route to contact Alice, usually composed of a username at a fully qualified domain name (FQDN). While an FQDN is preferred, many end systems do not have registered domain names, so IP addresses are permitted. While the Via header field tells other elements where to send the response, the Contact header field tells other elements where to send future requests. DES Page :13/40
  • 14. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.2.2- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| |<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| |---M18(200)->|---M19(200)->|---M20(200)->| -“P1” inspects the received “Request-URI” in M1 message (sip:bob@biloxi.com) and does not change it because it is not responsible for the resource indicated in this URI. -“P1” adds a Record-Route header with its own address (bigbox3.site3.atlanta.com). (The next requests must traverse this address). -“P1” forwards the request to the resource indicated in the “Request-URI” (sip:bob@biloxi.com) by applying DHCP/DNS procedures. M2 INVITE sip:bob@biloxi.com SIP/2.0 Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 Max-Forwards: 69 To: Bob <sip:bob@biloxi.com> From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 314159 INVITE Contact: <sip:alice@pc33.atlanta.com> Record-Route: sip:bigbox3.site3.atlanta.com;lr> Header’s commentaries: Via: “P1” adds its own “Via” header in the routing path (bigbox3.site3.atlanta.com), for its use in the response messages. Record-Route: “P1” adds a “Record-Route” header with its own address(bigbox3.site3.atlanta.com). (The next requests must traverse this address). DES Page :14/40
  • 15. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.2.3- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| |<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| |---M18(200)->|---M19(200)->|---M20(200)->| -“P2” inspects the received “Request-URI” in M2 message (sip:bob@biloxi.com). It is responsible for “biloxi.com”, so it runs a location service and rewrites the “Request-URI” (sip:bob@biloxi.com -> sip:bob@term24.biloxi.com) -“P2” adds a Record-Route header with its own address (server10.biloxi.com). (The next requests must traverse this address). -“P2” forwards the request to the resource indicated in the “Request-URI” (sip: bob@term24.biloxi.com) by applying DHCP/DNS procedures. M4 INVITE sip:bob@term24.biloxi.com SIP/2.0 Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1 Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1;received=192.0.2.2 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 Max-Forwards: 68 To: Bob <sip:bob@biloxi.com> From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 314159 INVITE Contact: <sip:alice@pc33.atlanta.com> Record-Route: sip:server10.biloxi.com;lr> Record-Route: sip:bigbox3.site3.atlanta.com;lr> Header’s commentaries: Via: P2 adds its own “Via” header in the routing path (server10.biloxi.com), for its use in the response messages. Record-Route: “P2” adds a “Record-Route” header with its own address (server10.biloxi.com). (The next requests must traverse this address). DES Page :15/40
  • 16. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.2.4- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| |<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| |---M18(200)->|---M19(200)->|---M20(200)->| -“B” inspects the received message (M4). Then it stores: The “A” “Contact” header in its UA “dialog data structure” as “Remote Target” (alice@pc33.atlanta.com). The “Record-Route” headers in its UA “dialog data structure” as “Route Set”. (server10.biloxi.com; bigbox3.site3.atlanta.com) -“B” uses the “Request-URI” (bob@term24.biloxi.com) of M4 to fill its own “Contact” header. -“B” creates the 180 response message. -“B” copies all the Record-Route headers to the 180 response message. -“B” sends the 180 response message by using the “Via” headers. M6 SIP/2.0 180 Ringing Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1;received=192.0.2.3 Via: SIP/2.0/UDP bigbox3.site3.atlanta.com; branch=z9hG4bK77ef4c2312983.1 ;received=192.0.2.2 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 To: Bob <sip:bob@biloxi.com>;tag=a6c85cf From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 Contact: <sip:bob@term24.biloxi.com> CSeq: 314159 INVITE Record-Route: sip:server10.biloxi.com;lr> Record-Route: sip:bigbox3.site3.atlanta.com;lr> Header’s commentaries: Contact: “B” adds a “Contact” header field to the response, with its direct route (sip:bob@term24.biloxi.com). “B” obtain this value from the Request-URI of the incoming request (M4). To: “B” adds its local tag, to “To” header. Record-Route: “B” copies the received “Record-Route” headers into the response message. DES Page :16/40
  • 17. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.2.5- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| |<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| |---M18(200)->|---M19(200)->|---M20(200)->| -“P2” forwards the 180 response message by using the “Via” headers. M7 SIP/2.0 180 Ringing Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1 ;received=192.0.2.2 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 To: Bob <sip:bob@biloxi.com>;tag=a6c85cf From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 Contact: <sip:bob@term24.biloxi.com> CSeq: 314159 INVITE Record-Route: sip:server10.biloxi.com;lr> Record-Route: sip:bigbox3.site3.atlanta.com;lr> Header’s commentaries: Via: P2 delete its own “Via” header in the routing path (server10.biloxi.com). 2.2.6- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| |<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| |---M18(200)->|---M19(200)->|---M20(200)->| -“P1” forwards the 180 response message by using the “Via” headers. M8 SIP/2.0 180 Ringing Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 To: Bob <sip:bob@biloxi.com>;tag=a6c85cf From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 Contact: <sip:bob@term24.biloxi.com> CSeq: 314159 INVITE Record-Route: sip:server10.biloxi.com;lr> Record-Route: sip:bigbox3.site3.atlanta.com;lr> Header’s commentaries: Via: P1 delete its own “Via” header in the routing path (bigbox3.site3.atlanta.com). DES Page :17/40
  • 18. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.2.7- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| |<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| |---M18(200)->|---M19(200)->|---M20(200)->| -“B” creates the 200 response message. -“B” sends the 200 response message by using the “Via” headers. M9 SIP/2.0 200 OK Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1;received=192.0.2.3 Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1;received=192.0.2.2 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 To: Bob <sip:bob@biloxi.com>;tag=a6c85cf From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 314159 INVITE Contact: <sip:bob@term24.biloxi.com> Record-Route: sip:server10.biloxi.com;lr> Record-Route: sip:bigbox3.site3.atlanta.com;lr> Header’s commentaries: Contact: “B” adds a Contact header field to the response, with its direct route (sip:bob@term24.biloxi.com). “B” obtain this value from the Request-URI of the incoming request (M4). To: “B” adds its local tag, to “To” header. Record-Route: “B” copies the received “Record-Route” headers into the response message. 2.2.8- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| |<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| |---M18(200)->|---M19(200)->|---M20(200)->| -“P2” forwards the 200 response message by using the “Via” headers. M10 SIP/2.0 200 OK Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1;received=192.0.2.2 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 To: Bob <sip:bob@biloxi.com>;tag=a6c85cf From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 314159 INVITE Contact: <sip:bob@term24.biloxi.com> Record-Route: sip:server10.biloxi.com;lr> Record-Route: sip:bigbox3.site3.atlanta.com;lr> DES Page :18/40
  • 19. ROUTING ISSUES IN BASIC CALL FLOWS DES Header’s commentaries: Via: P2 delete its own “Via” header in the routing path (server10.biloxi.com). 2.2.9- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| |<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| |---M18(200)->|---M19(200)->|---M20(200)->| -“P1” forwards the 200 response message by using the “Via” headers. M11 SIP/2.0 200 OK Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 To: Bob <sip:bob@biloxi.com>;tag=a6c85cf From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 314159 INVITE Contact: <sip:bob@term24.biloxi.com> Record-Route: sip:server10.biloxi.com;lr> Record-Route: sip:bigbox3.site3.atlanta.com;lr> Header’s commentaries: Via: P1 delete its own via “Via” header in the routing path (bigbox3.site3.atlanta.com). DES Page :19/40
  • 20. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.2.10- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| |<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| |---M18(200)->|---M19(200)->|---M20(200)->| -“A” inspects the received message (M11). Then it stores : The “B” “Contact” header (bob@term24.biloxi.com) in its UA “dialog data structure” as “Remote Target”. The “Record-Route” headers in its UA “dialog data structure” as “Route Set” (bigbox3.site3.atlanta.com ; server10.biloxi.com). -“A” creates the ACK request. -“A” adds the “Route” headers using the stored “Route Set” (bigbox3.site3.atlanta.com ; server10.biloxi.com). -“A” sends the ACK request by using the first value of “Route Set”. (bigbox3.site3.atlanta.com ; server10.biloxi.com) M12 ACK sip:bob@term24.biloxi.com SIP/2.0 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds9 Max-Forwards: 70 To: Bob <sip:bob@biloxi.com>;tag=a6c85cf From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 314159 ACK Route:sip:bigbox3.site3.atlanta.com Route:sip:server10.biloxi.com Header’s commentaries: Request-URI: “A” fills the Request-URI value, with “Remote Target” value of UA dialog data structure (bob@term24.biloxi.com). Route: contains the addresses that they will used to route the message. (Its value was the previously recorded “Route Set”) (bigbox3.site3.atlanta.com ; server10.biloxi.com). DES Page :20/40
  • 21. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.2.11- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| |<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| |---M18(200)->|---M19(200)->|---M20(200)->| -“P1” inspects the Request-URI of the received message (M12), and does not change it because is not responsible for the resource indicated in this URI. -“P1” sees that it is the first value in the “Route” header field so it removes that value (sip:bigbox3.site3.atlanta.com). -“P1” forwards the request to the resource indicated in the topmost “Route” header (sip:server10.biloxi.com) field applying DHCP/DNS procedures. M13 ACK sip:bob@term24.biloxi.com SIP/2.0 Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds9 Max-Forwards: 69 To: Bob <sip:bob@biloxi.com>;tag=a6c85cf From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 314159 ACK Route:sip:server10.biloxi.com Header’s commentaries: Via: P1 adds its own “Via” header in the routing path (bigbox3.site3.atlanta.com). Route: P1 delete its own “Route” header in the routing path (bigbox3.site3.atlanta.com). DES Page :21/40
  • 22. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.2.12- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| |<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| |---M18(200)->|---M19(200)->|---M20(200)->| -“P2” inspects the Request-URI of the received message (M13), and does not change it because is not responsible for the resource indicated in this URI (it is responsible for “biloxi.com”, not “term24.biloxi.com”). -“P2” sees that it is the first value in the “Route” header field so it removes that value (sip: server10.biloxi.com). -“P2” forwards the request to the resourse indicated in the Request-URI (sip:bob@term24.biloxi.com) because there are not more “Route” headers, applying DHCP/DNS procedures. M14 ACK sip:bob@term24.biloxi.com SIP/2.0 Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1 Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds9 Max-Forwards: 68 To: Bob <sip:bob@biloxi.com>;tag=a6c85cf From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 314159 ACK Header’s commentaries: Via: P2 adds its own “Via” header in the routing path (server10.biloxi.com). Route: P2 delete its own “Route” header in the routing path (server10.biloxi.com). DES Page :22/40
  • 23. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.2.13- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| |<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| |---M18(200)->|---M19(200)->|---M20(200)->| -“B” creates a BYE message. -“B” adds “Route” headers using the data stored at “Route Set” (server10.biloxi.com; bigbox3.site3.atlanta.com) (see 2.2.4-). -“B” sets “Request-URI” header using the data stored at “Remote Target”(alice@pc33.atlanta.com) (see 2.2.4-). -“B” sends the ACK request by using the first value of “Route Set”. (server10.biloxi.com ; bigbox3.site3.atlanta.com) M15 BYE sip:alice@pc33.atlanta.com SIP/2.0 Via: SIP/2.0/UDP term24.biloxi.com;branch=z9hG4bKnashds10 Max-Forwards: 70 From: Bob <sip:bob@biloxi.com>;tag=a6c85cf To: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 231 BYE Contact: <sip:bob@term24.biloxi.com> Route: sip:server10.biloxi.com Route: sip:bigbox3.site3.atlanta.com Header’s commentaries: Request-URI: “B” fills the Request-URI value, with “Remote Target” value of UA dialog data structure (alice@pc33.atlanta.com) (see 4-). Route: contains the addresses that they will used to route the message. (Its value was the previously recorded “Route Set”) (server10.biloxi.com ; bigbox3.site3.atlanta.com). DES Page :23/40
  • 24. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.2.14- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| |<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| |---M18(200)->|---M19(200)->|---M20(200)->| -“P2” inspects the Request-URI of the received message (M15), and does not change it because is not responsible for the resource indicated in this URI.. -“P2” sees that it is the first value in the “Route” header field so it removes that value (sip: server10.biloxi.com). -“P2” forwards the request to the resource indicated in the topmost “Route” header (sip: bigbox3.site3.atlanta.com) field applying DHCP/DNS procedures. M16 BYE sip:alice@pc33.atlanta.com SIP/2.0 Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1 Via: SIP/2.0/UDP term24.biloxi.com;branch=z9hG4bKnashds10 Max-Forwards: 69 From: Bob <sip:bob@biloxi.com>;tag=a6c85cf To: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 231 BYE Contact: <sip:bob@term24.biloxi.com> Route: sip:bigbox3.site3.atlanta.com Header’s commentaries: Via: P2 adds its own “Via” header in the routing path (server10.biloxi.com). Route: P2 delete its own “Route” header in the routing path (server10.biloxi.com). DES Page :24/40
  • 25. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.2.15- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| |<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| |---M18(200)->|---M19(200)->|---M20(200)->| -“P1” inspects the Request-URI of the received message (M16), and does not change it because is not responsible for the resource indicated in this URI URI (it is responsible for “atlanta.com”, not “pc33.atlanta.com”). -“P1” sees that it is the first value in the “Route” header field so it removes that value (sip: bigbox3.site3.atlanta.com). -“P1” forwards the request to the resourse indicated in the Request-URI (sip:alice@pc33.atlanta.com) because there are not more “Route” headers, applying DHCP/DNS procedures. M17 BYE sip:alice@pc33.atlanta.com SIP/2.0 Via: SIP/2.0/UDP bigbox3.site3.atlanta.com; branch=z9hG4bK77ef4c2312983.1 Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1 Via: SIP/2.0/UDP term24.biloxi.com;branch=z9hG4bKnashds10 Max-Forwards: 68 From: Bob <sip:bob@biloxi.com>;tag=a6c85cf To: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 231 BYE Contact: <sip:bob@term24.biloxi.com> Header’s commentaries: Via: P1 adds its own “Via” header in the routing path (bigbox3.site3.atlanta.com). Route: P1 delete its own “Route” header in the routing path (bigbox3.site3.atlanta.com). 2.2.16- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| |<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| |---M18(200)->|---M19(200)->|---M20(200)->| -“A” creates a 200 OK response to respond to the BYE message. -“A” sends the 200 response by using the “Via headers”. M18 SIP/2.0 200 OK Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1 Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1 Via: SIP/2.0/UDP term24.biloxi.com;branch=z9hG4bKnashds10 From: Bob <sip:bob@biloxi.com>;tag=a6c85cf To: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 231 BYE DES Page :25/40
  • 26. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.2.17- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| |<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| |---M18(200)->|---M19(200)->|---M20(200)->| -“P1” forwards the 200 response by using the “Via” header field. M19 SIP/2.0 200 OK Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1 Via: SIP/2.0/UDP term24.biloxi.com;branch=z9hG4bKnashds10 From: Bob <sip:bob@biloxi.com>;tag=a6c85cf To: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 231 BYE Header’s commentaries: Via: P1 deletes its own “Via” header in the routing path (server10.biloxi.com). 2.2.18- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---M12(ACK)->|---M13(ACK)->|---M14(ACK)->| |<--M17(BYE)--|<--M16(BYE)--|<--M15(BYE)--| |---M18(200)->|---M19(200)->|---M20(200)->| -“P2” forwards the 200 response by using the “Via” header field. M20 SIP/2.0 200 OK Via: SIP/2.0/UDP term24.biloxi.com;branch=z9hG4bKnashds10 From: Bob <sip:bob@biloxi.com>;tag=a6c85cf To: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 231 BYE Header’s commentaries: Via: P1 deletes its own “Via” header in the routing path (bigbox3.site3.atlanta.com). DES Page :26/40
  • 27. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.3 Example Nº3 (SIP trapezoid using Record-Route and Route - Variant): A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---------M12(ACK)--------->|---M13(ACK)->| |<--------M15(BYE)----------|<--M14(BYE)--| |---------M16(200)--------->|---M17(200)->| This example shows two proxies in the routing path and neither of them request to be maintained in the signalling path by inserting Record-Route header fields. Only the header fields relevant to the dialog and the routing of requests are shown in the SIP messages. You can see the flow graph in “call_flow_w1RR_v00.pdf” document. Next we will describe each one of the flow’s messages and its relevant headers (“100 Trying” provisional response are ignored). Note that we used the “blue” colour to denote FQDN identities, and the “red” colour to denote NFQDN identities. In this example “A” calls “B” using his SIP identity, a type of Uniform Resource Identifier (URI) called a SIP URI. This SIP URI has a similar form to an email address, typically containing a username and a host name. In this case, it is “sip:bob@biloxi.com”, where “biloxi.com” is the domain of Bob's SIP service provider. Alice has a SIP URI of “sip:alice@atlanta.com”. Note than “sip:bob@biloxi.com” and “sip:alice@atlanta.com” are logical identities that define the users, and “pc33.atlanta.com” and “term24.biloxi.com”, are the physical identities (machines) where these users reside. In the same way “bigbox3.site3.atlanta.com” and “server10.biloxi.com”, are the proxies’ physical identities. Note than “Request-URI” is part of the “Request-Line = Method SP Request-URI SP SIP-Version CRLF”. Example: INVITE sip:bob@biloxi.com SIP/2.0 DES Page :27/40
  • 28. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.3.1- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---------M12(ACK)--------->|---M13(ACK)->| |<--------M15(BYE)----------|<--M14(BYE)--| |---------M16(200)--------->|---M17(200)->| -“A” generates the INVITE request (Since the “A” softphone does not know the location of Bob or the SIP server in the “biloxi.com” domain, the softphone sends the INVITE to the SIP server that serves Alice's domain, “atlanta.com”. The address of the “atlanta.com” SIP server could have been configured in Alice's softphone (as an outbound proxy), or it could have been discovered by DHCP/DNS, for example). M1 INVITE sip:bob@biloxi.com SIP/2.0 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8 Max-Forwards: 70 To: Bob <sip:bob@biloxi.com> From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 314159 INVITE Contact: <sip:alice@pc33.atlanta.com> Header’s commentaries: Request-URI: contains a SIP or SIPS URI (sip:bob@biloxi.com) that indicates the user or service to which this request is being addressed. Via: contains the address (pc33.atlanta.com) at which “A” is expecting to receive responses to this request. To: contains a SIP or SIPS URI (sip:bob@biloxi.com) towards which the request was originally directed. From: also contains a SIP or SIPS URI (sip:alice@atlanta.com) that indicate the originator of the request. Contact: contains a SIP or SIPS URI (sip:alice@pc33.atlanta.com) that represents a direct route to contact Alice, usually composed of a username at a fully qualified domain name (FQDN). While an FQDN is preferred, many end systems do not have registered domain names, so IP addresses are permitted. While the Via header field tells other elements where to send the response, the Contact header field tells other elements where to send future requests. DES Page :28/40
  • 29. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.3.2- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---------M12(ACK)--------->|---M13(ACK)->| |<--------M15(BYE)----------|<--M14(BYE)--| |---------M16(200)--------->|---M17(200)->| -“P1” inspects the received “Request-URI” in M1 message (sip:bob@biloxi.com) and does not change it because it is not responsible for the resource indicated in this URI. -“P1” forwards the request to the resource indicated in the “Request-URI” (sip:bob@biloxi.com) by applying DHCP/DNS procedures. M2 INVITE sip:bob@biloxi.com SIP/2.0 Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 Max-Forwards: 69 To: Bob <sip:bob@biloxi.com> From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 314159 INVITE Contact: <sip:alice@pc33.atlanta.com> Header’s commentaries: Via: “P1” adds its own “Via” header in the routing path (bigbox3.site3.atlanta.com), for its use in the response messages. DES Page :29/40
  • 30. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.3.3- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---------M12(ACK)--------->|---M13(ACK)->| |<--------M15(BYE)----------|<--M14(BYE)--| |---------M16(200)--------->|---M17(200)->| -“P2” inspects the received “Request-URI” in M2 message (sip:bob@biloxi.com). It is responsible for “biloxi.com”, so it runs a location service and rewrites the “Request-URI” (sip:bob@biloxi.com -> sip:bob@term24.biloxi.com) -“P2” adds a Record-Route header with its own address (server10.biloxi.com). (The next requests must traverse this address). -“P2” forwards the request to the resource indicated in the “Request-URI” (sip: bob@term24.biloxi.com) by applying DHCP/DNS procedures. M4 INVITE sip:bob@term24.biloxi.com SIP/2.0 Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1 Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1;received=192.0.2.2 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 Max-Forwards: 68 To: Bob <sip:bob@biloxi.com> From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 314159 INVITE Contact: <sip:alice@pc33.atlanta.com> Record-Route: sip:server10.biloxi.com;lr> Header’s commentaries: Via: P2 adds its own “Via” header in the routing path (server10.biloxi.com), for its use in the response messages. Record-Route: “P2” adds a “Record-Route” header with its own address (server10.biloxi.com). (The next requests must traverse this address). DES Page :30/40
  • 31. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.3.4- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---------M12(ACK)--------->|---M13(ACK)->| |<--------M15(BYE)----------|<--M14(BYE)--| |---------M16(200)--------->|---M17(200)->| -“B” inspects the received message (M4). Then it stores: The “A” “Contact” header in its UA “dialog data structure” as “Remote Target” (alice@pc33.atlanta.com). The “Record-Route” headers in its UA “dialog data structure” as “Route Set”. (server10.biloxi.com) -“B” uses the “Request-URI” (bob@term24.biloxi.com) of M4 to fill its own “Contact” header. -“B” creates the 180 response message. -“B” copies all the Record-Route headers to the 180 response message. -“B” sends the 180 response message by using the “Via” headers. M6 SIP/2.0 180 Ringing Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1;received=192.0.2.3 Via: SIP/2.0/UDP bigbox3.site3.atlanta.com; branch=z9hG4bK77ef4c2312983.1 ;received=192.0.2.2 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 To: Bob <sip:bob@biloxi.com>;tag=a6c85cf From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 Contact: <sip:bob@term24.biloxi.com> CSeq: 314159 INVITE Record-Route: sip:server10.biloxi.com;lr> Header’s commentaries: Contact: “B” adds a “Contact” header field to the response, with its direct route (sip:bob@term24.biloxi.com). “B” obtain this value from the Request-URI of the incoming request (M4). To: “B” adds its local tag, to “To” header. Record-Route: “B” copies the received “Record-Route” headers into the response message. DES Page :31/40
  • 32. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.3.5- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---------M12(ACK)--------->|---M13(ACK)->| |<--------M15(BYE)----------|<--M14(BYE)--| |---------M16(200)--------->|---M17(200)->| -“P2” forwards the 180 response message by using the “Via” headers. M7 SIP/2.0 180 Ringing Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1 ;received=192.0.2.2 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 To: Bob <sip:bob@biloxi.com>;tag=a6c85cf From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 Contact: <sip:bob@term24.biloxi.com> CSeq: 314159 INVITE Record-Route: sip:server10.biloxi.com;lr> Header’s commentaries: Via: P2 delete its own “Via” header in the routing path (server10.biloxi.com). 2.3.6- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---------M12(ACK)--------->|---M13(ACK)->| |<--------M15(BYE)----------|<--M14(BYE)--| |---------M16(200)--------->|---M17(200)->| -“P1” forwards the 180 response message by using the “Via” headers. M8 SIP/2.0 180 Ringing Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 To: Bob <sip:bob@biloxi.com>;tag=a6c85cf From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 Contact: <sip:bob@term24.biloxi.com> CSeq: 314159 INVITE Record-Route: sip:server10.biloxi.com;lr> Header’s commentaries: Via: P1 delete its own “Via” header in the routing path (bigbox3.site3.atlanta.com). DES Page :32/40
  • 33. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.3.7- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---------M12(ACK)--------->|---M13(ACK)->| |<--------M15(BYE)----------|<--M14(BYE)--| |---------M16(200)--------->|---M17(200)->| -“B” creates the 200 response message. -“B” sends the 200 response message by using the “Via” headers. M9 SIP/2.0 200 OK Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1;received=192.0.2.3 Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1;received=192.0.2.2 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 To: Bob <sip:bob@biloxi.com>;tag=a6c85cf From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 314159 INVITE Contact: <sip:bob@term24.biloxi.com> Record-Route: sip:server10.biloxi.com;lr> Header’s commentaries: Contact: “B” adds a Contact header field to the response, with its direct route (sip:bob@term24.biloxi.com). “B” obtains this value from the Request-URI of the incoming request (M4). To: “B” adds its local tag, to “To” header. Record-Route: “B” copies the received “Record-Route” headers into the response message. 2.3.8- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---------M12(ACK)--------->|---M13(ACK)->| |<--------M15(BYE)----------|<--M14(BYE)--| |---------M16(200)--------->|---M17(200)->| -“P2” forwards the 200 response message by using the “Via” headers. M10 SIP/2.0 200 OK Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1;received=192.0.2.2 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 To: Bob <sip:bob@biloxi.com>;tag=a6c85cf From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 314159 INVITE Contact: <sip:bob@term24.biloxi.com> Record-Route: sip:server10.biloxi.com;lr> Header’s commentaries: Via: P2 delete its own “Via” header in the routing path (server10.biloxi.com). DES Page :33/40
  • 34. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.3.9- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---------M12(ACK)--------->|---M13(ACK)->| |<--------M15(BYE)----------|<--M14(BYE)--| |---------M16(200)--------->|---M17(200)->| -“P1” forwards the 200 response message by using the “Via” headers. M11 SIP/2.0 200 OK Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8;received=192.0.2.1 To: Bob <sip:bob@biloxi.com>;tag=a6c85cf From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 314159 INVITE Contact: <sip:bob@term24.biloxi.com> Record-Route: sip:server10.biloxi.com;lr> Header’s commentaries: Via: P1 delete its own via “Via” header in the routing path (bigbox3.site3.atlanta.com). 2.3.10- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---------M12(ACK)--------->|---M13(ACK)->| |<--------M15(BYE)----------|<--M14(BYE)--| |---------M16(200)--------->|---M17(200)->| -“A” inspects the received message (M11). Then it stores : The “B” “Contact” header (bob@term24.biloxi.com) in its UA “dialog data structure” as “Remote Target”. The “Record-Route” headers in its UA “dialog data structure” as “Route Set” (bigbox3.site3.atlanta.com ; server10.biloxi.com). -“A” creates the ACK request. -“A” adds the “Route” headers using the stored “Route Set” (server10.biloxi.com). -“A” sends the ACK request by using the unique value of “Route Set” (server10.biloxi.com). M12 ACK sip:bob@term24.biloxi.com SIP/2.0 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds9 Max-Forwards: 70 To: Bob <sip:bob@biloxi.com>;tag=a6c85cf From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 314159 ACK Route:sip:server10.biloxi.com DES Page :34/40
  • 35. ROUTING ISSUES IN BASIC CALL FLOWS DES Header’s commentaries: Request-URI: “A” fills the Request-URI value, with “Remote Target” value of UA dialog data structure (bob@term24.biloxi.com) (see 2.3.4-). Route: contains the addresses that they will used to route the message. (Its value was the previously recorded “Route Set”) (server10.biloxi.com) (see 2.3.4-). 2.3.11- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---------M12(ACK)--------->|---M13(ACK)->| |<--------M15(BYE)----------|<--M14(BYE)--| |---------M16(200)--------->|---M17(200)->| -“P2” inspects the Request-URI of the received message (M12), and does not change it because is not responsible for the resource indicated in this URI (it is responsible for “biloxi.com”, not “term24.biloxi.com”). -“P2” sees that it is the first value in the “Route” header field so it removes that value (sip: server10.biloxi.com). -“P2” forwards the request to the resourse indicated in the Request-URI (sip:bob@term24.biloxi.com) because there are not more “Route” headers, applying DHCP/DNS procedures. M13 ACK sip:bob@term24.biloxi.com SIP/2.0 Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1 Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds9 Max-Forwards: 69 To: Bob <sip:bob@biloxi.com>;tag=a6c85cf From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 314159 ACK Header’s commentaries: Via: P2 adds its own “Via” header in the routing path (server10.biloxi.com). Route: P2 delete its own “Route” header in the routing path (server10.biloxi.com). DES Page :35/40
  • 36. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.3.12- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---------M12(ACK)--------->|---M13(ACK)->| |<--------M15(BYE)----------|<--M14(BYE)--| |---------M16(200)--------->|---M17(200)->| -“B” creates a BYE message. -“B” adds “Route” headers using the data stored at “Route Set” (server10.biloxi.com) (see 2.3.4-). -“B” sets “Request-URI” header using the data stored at “Remote Target”(alice@pc33.atlanta.com) (see 2.3.4-). -“B” sends the ACK request by using the first value of “Route Set”. (server10.biloxi.com) M14 BYE sip:alice@pc33.atlanta.com SIP/2.0 Via: SIP/2.0/UDP term24.biloxi.com;branch=z9hG4bKnashds10 Max-Forwards: 70 From: Bob <sip:bob@biloxi.com>;tag=a6c85cf To: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 231 BYE Contact: <sip:bob@term24.biloxi.com> Route: sip:server10.biloxi.com Header’s commentaries: Request-URI: “B” fills the Request-URI value, with “Remote Target” value of UA dialog data structure (alice@pc33.atlanta.com) (see 2.3.4-). Route: contains the addresses that they will used to route the message. (Its value was the previously recorded “Route Set”) (server10.biloxi.com). DES Page :36/40
  • 37. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.2.13- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---------M12(ACK)--------->|---M13(ACK)->| |<--------M15(BYE)----------|<--M14(BYE)--| |---------M16(200)--------->|---M17(200)->| -“P2” inspects the Request-URI of the received message (M15), and does not change it because is not responsible for the resource indicated in this URI.. -“P2” sees that it is the first value in the “Route” header field so it removes that value (sip: server10.biloxi.com). -“P2” forwards the request to the resourse indicated in the Request-URI (sip:alice@pc33.atlanta.com) because there are not more “Route” headers, applying DHCP/DNS procedures. M15 BYE sip:alice@pc33.atlanta.com SIP/2.0 Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1 Via: SIP/2.0/UDP term24.biloxi.com;branch=z9hG4bKnashds10 Max-Forwards: 69 From: Bob <sip:bob@biloxi.com>;tag=a6c85cf To: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 231 BYE Contact: <sip:bob@term24.biloxi.com> Header’s commentaries: Via: P2 adds its own “Via” header in the routing path (server10.biloxi.com). Route: P2 delete its own “Route” header in the routing path (server10.biloxi.com). 2.3.14- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---------M12(ACK)--------->|---M13(ACK)->| |<--------M15(BYE)----------|<--M14(BYE)--| |---------M16(200)--------->|---M17(200)->| -“A” creates a 200 OK response to respond to the BYE message. -“A” sends the 200 response by using the “Via headers”. M16 SIP/2.0 200 OK Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1 Via: SIP/2.0/UDP term24.biloxi.com;branch=z9hG4bKnashds10 From: Bob <sip:bob@biloxi.com>;tag=a6c85cf To: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 231 BYE DES Page :37/40
  • 38. ROUTING ISSUES IN BASIC CALL FLOWS DES 2.3.15- A P1 P2 B |---M1(INV)-->|---M2(INV)-->|---M4(INV)-->| |<--M8(180)---|<--M7(180)---|<--M6(180)---| |<--M11(200)--|<--M10(200)--|<--M9(200)---| |---------M12(ACK)--------->|---M13(ACK)->| |<--------M15(BYE)----------|<--M14(BYE)--| |---------M16(200)--------->|---M17(200)->| -“P2” forwards the 200 response by using the “Via” header field. M20 SIP/2.0 200 OK Via: SIP/2.0/UDP term24.biloxi.com;branch=z9hG4bKnashds10 From: Bob <sip:bob@biloxi.com>;tag=a6c85cf To: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 231 BYE Header’s commentaries: Via: P2 deletes its own “Via” header in the routing path (server10.biloxi.com). DES Page :38/40
  • 39. ROUTING ISSUES IN BASIC CALL FLOWS DES 3 UA DIALOG STRUCTURES: In the UA there are data structures that are used to store dialogues’ states and necessary parameters for the interchange of messages. In the previous sections, we mentioned some of these parameters. In this section we will enumerate these parameters. This data structures are not standarised, but through its use on “best practices” they became in a defacto design standard. Figure Nº1: UA dialog structure Note than exists a field named “Other parameters”, in this field I grouped some existing fields, that I will mention briefly. 3.1 Fields description: Each UA can behave like UAS or UAC for different dialogues. One UA will behave like UAC if it sends requests in a certain dialog and one UA will behave like UAS if it sends responses in a certain dialog. Some of the fields of the UA dialog structure take its value in different form if the UA acts as an UAC or an UAS. Figure Nº2: UAC-UAS scheme. In the following lines I will give a description of the structure’s fields. Between square brackets will be added the related SIP header in each case. Call-Id [Call-Id]: This field stores de Call-ID of the call. A generated Call-Id for UAC (see 2.1.1) or a received Call-ID for UAS (see 2.1.4). Local Tag [From(UAC);To(UAS)]: This field stores the generated local tag used in the “From” header in the UAC (see 2.1.1) or the generated local tag for the “To” header in the UAS (see 2.1.4). DES Page :39/40
  • 40. ROUTING ISSUES IN BASIC CALL FLOWS DES Remote Tag [To(UAC);From(UAS)]: This field stores the received tag in the “From” header in the UAC (see 2.1.6 - “A” node) or the received tag in the “To” header in the UAS (see 2.1.4). Local seqnum[Cseq(UAC)]: This field stores the generated Cseq for UAC (see 2.1.1). Remote seqnum[Cseq(UAS)]: This field stores the received Cseq for UAS (see 2.1.4). Local URI [From(UAC);To(UAS)]: This field stores the local URI used in the “From” header in the UAC (see 2.1.1) or in the “To” header in the UAS (see 2.1.4). Remote URI [To(UAC); From(UAS); Request-URI(UAC*)]: This field stores the remote URI used in the “To” header in the UAC (see 2.1.1) or in the “To” header in the UAS (see 2.1.4). Under certain conditions this value is used on “Request-URI” by UAC (see 2.1.1 [Condition: In the first INVITE of an outgoing call]). Local target [Contact]: This field stores the value for “Contact” header. This value is generated on UAC (see 2.1.1) or obtained from “Request-URI” in UAS(see 2.1.4)/UAC only under certain conditions. Remote target [Request-URI]: This field stores the value for “Request-URI” header. This value is obtained from “Contact” header in UAS(see 2.1.4)/UAC(see 2.1.6 node “A”) or generated in UAC under certain conditions. Route Set[Record-Route, Route]: This field stores the values obtained from “Record-Route” headers and used in “Route” headers.(see 2.2.6 node “A” , see 2.2.4). Secure flag: This field stores when the UA uses TLS for signalling or SRTP for audio streams. Other parameters: “display” part, “P-Preferred-Identity”,”A-Asserted- Identity”,”Privacy”. The mentioned headers are related to the “local tag” identification through public networks. The values that they can take depend on the country network “id” parameters and interconnection terms. DES Page :40/40