d basic flows-routing-issues-vt00r00
DESCRIPTION
This is an old but usefull document, that treats about SIP messages' routing.TRANSCRIPT
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :1/40
ROUTING ISSUES IN BASIC
CALL FLOWS
By: Daniel Esteban Soroko - 2011
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :2/40
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
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :3/40
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).
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :4/40
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:[email protected]”, where “biloxi.com” is the domain of Bob's SIP service provider. Alice has a SIP URI of “sip:[email protected]”.
Note than “sip:[email protected]” and “sip:[email protected]” 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:[email protected] SIP/2.0
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :5/40
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:[email protected] SIP/2.0
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8
Max-Forwards: 70
To: Bob <sip:[email protected]>
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 314159 INVITE
Contact: <sip:[email protected]>
Header’s commentaries:
Request-URI: contains a SIP or SIPS URI (sip:[email protected]) 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:[email protected]) towards which the request
was originally directed. From: also contains a SIP or SIPS URI (sip:[email protected]) that indicate the
originator of the request.
Contact: contains a SIP or SIPS URI (sip:[email protected]) 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.
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :6/40
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:[email protected]) 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:[email protected]) by applying DHCP/DNS procedures.
M2
INVITE sip:[email protected] 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:[email protected]>
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 314159 INVITE
Contact: <sip:[email protected]>
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:[email protected]). It is responsible for “biloxi.com”, so it runs a location service and rewrites the
“Request-URI” (sip:[email protected] -> sip:[email protected]) -“P2” forwards the request to the resource indicated in the “Request-URI” (sip:
[email protected]) by applying DHCP/DNS procedures. M4
INVITE sip:[email protected] 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:[email protected]>
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 314159 INVITE
Contact: <sip:[email protected]>
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :7/40
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”
([email protected]) 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:[email protected]>;tag=a6c85cf
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
Contact: <sip:[email protected]>
CSeq: 314159 INVITE
Header’s commentaries:
Contact: “B” adds a Contact header field to the response, with its direct route
(sip:[email protected]). “B” obtain this value from the Request-URI of the incoming request (M4).
To: “B” adds its local tag, to “To” header.
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :8/40
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:[email protected]>;tag=a6c85cf
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
Contact: <sip:[email protected]>
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:[email protected]>;tag=a6c85cf
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
Contact: <sip:[email protected]>
CSeq: 314159 INVITE
Header’s commentaries:
Via: P1 delete its own via header in the routing path (bigbox3.site3.atlanta.com).
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :9/40
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:[email protected]>;tag=a6c85cf
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 314159 INVITE
Contact: <sip:[email protected]>
Header’s commentaries:
Contact: “B” adds a Contact header field to the response, with its direct route (sip:[email protected]). “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:[email protected]>;tag=a6c85cf
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 314159 INVITE
Contact: <sip:[email protected]>
Header’s commentaries:
Via: P2 delete its own via header in the routing path (server10.biloxi.com).
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :10/40
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:[email protected]>;tag=a6c85cf
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 314159 INVITE
Contact: <sip:[email protected]>
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([email protected]).
M12
ACK sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds9
Max-Forwards: 70
To: Bob <sip:[email protected]>;tag=a6c85cf
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 314159 ACK
Header’s commentaries:
Request-URI: contains a SIP or SIPS URI (sip:[email protected]) 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.
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :11/40
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 ([email protected]) (see 2.1.4-).
M13
BYE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP term24.biloxi.com;branch=z9hG4bKnashds10
Max-Forwards: 70
From: Bob <sip:[email protected]>;tag=a6c85cf
To: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 231 BYE
Contact: <sip:[email protected]>
Header’s commentaries:
Request-URI: “B” fills the Request-URI value, “Remote Target” of UA dialog data
structure ([email protected]) (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:[email protected]>;tag=a6c85cf
To: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 231 BYE
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :12/40
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:[email protected]”, where “biloxi.com” is the domain of Bob's SIP service
provider. Alice has a SIP URI of “sip:[email protected]”.
Note than “sip:[email protected]” and “sip:[email protected]” 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:[email protected] SIP/2.0
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :13/40
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:[email protected] SIP/2.0
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8
Max-Forwards: 70
To: Bob <sip:[email protected]>
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 314159 INVITE
Contact: <sip:[email protected]>
Header’s commentaries:
Request-URI: contains a SIP or SIPS URI (sip:[email protected]) 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:[email protected]) towards which the request was originally directed.
From: also contains a SIP or SIPS URI (sip:[email protected]) that indicate the originator of the request.
Contact: contains a SIP or SIPS URI (sip:[email protected]) 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.
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :14/40
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:[email protected]) 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:[email protected]) by applying DHCP/DNS procedures. M2
INVITE sip:[email protected] 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:[email protected]>
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 314159 INVITE
Contact: <sip:[email protected]>
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).
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :15/40
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:[email protected]). It is responsible for “biloxi.com”, so it runs a location service and rewrites the
“Request-URI” (sip:[email protected] -> sip:[email protected]) -“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:
[email protected]) by applying DHCP/DNS procedures. M4
INVITE sip:[email protected] 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:[email protected]>
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 314159 INVITE
Contact: <sip:[email protected]>
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).
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :16/40
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” ([email protected]).
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” ([email protected]) 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:[email protected]>;tag=a6c85cf
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
Contact: <sip:[email protected]>
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:[email protected]). “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.
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :17/40
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:[email protected]>;tag=a6c85cf
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
Contact: <sip:[email protected]>
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:[email protected]>;tag=a6c85cf
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
Contact: <sip:[email protected]>
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).
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :18/40
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:[email protected]>;tag=a6c85cf
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 314159 INVITE
Contact: <sip:[email protected]>
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:[email protected]). “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:[email protected]>;tag=a6c85cf
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 314159 INVITE
Contact: <sip:[email protected]>
Record-Route: sip:server10.biloxi.com;lr>
Record-Route: sip:bigbox3.site3.atlanta.com;lr>
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :19/40
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:[email protected]>;tag=a6c85cf
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 314159 INVITE
Contact: <sip:[email protected]>
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).
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :20/40
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 ([email protected]) 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:[email protected] SIP/2.0
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds9
Max-Forwards: 70
To: Bob <sip:[email protected]>;tag=a6c85cf
From: Alice <sip:[email protected]>;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 ([email protected]). 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).
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :21/40
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:[email protected] 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:[email protected]>;tag=a6c85cf
From: Alice <sip:[email protected]>;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).
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :22/40
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:[email protected]) because there are not more “Route” headers, applying DHCP/DNS procedures.
M14
ACK sip:[email protected] 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:[email protected]>;tag=a6c85cf
From: Alice <sip:[email protected]>;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).
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :23/40
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”([email protected]) (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:[email protected] SIP/2.0
Via: SIP/2.0/UDP term24.biloxi.com;branch=z9hG4bKnashds10
Max-Forwards: 70
From: Bob <sip:[email protected]>;tag=a6c85cf
To: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 231 BYE
Contact: <sip:[email protected]>
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 ([email protected]) (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).
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :24/40
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:[email protected] 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:[email protected]>;tag=a6c85cf
To: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 231 BYE
Contact: <sip:[email protected]>
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).
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :25/40
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:[email protected]) because there are not more “Route” headers, applying DHCP/DNS procedures.
M17
BYE sip:[email protected] 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:[email protected]>;tag=a6c85cf
To: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 231 BYE
Contact: <sip:[email protected]>
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:[email protected]>;tag=a6c85cf
To: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 231 BYE
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :26/40
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:[email protected]>;tag=a6c85cf
To: Alice <sip:[email protected]>;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:[email protected]>;tag=a6c85cf
To: Alice <sip:[email protected]>;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).
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :27/40
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:[email protected]”, where “biloxi.com” is the domain of Bob's SIP service
provider. Alice has a SIP URI of “sip:[email protected]”.
Note than “sip:[email protected]” and “sip:[email protected]” 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:[email protected]
SIP/2.0
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :28/40
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:[email protected] SIP/2.0
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8
Max-Forwards: 70
To: Bob <sip:[email protected]>
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 314159 INVITE
Contact: <sip:[email protected]>
Header’s commentaries:
Request-URI: contains a SIP or SIPS URI (sip:[email protected]) 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:[email protected]) towards which the request
was originally directed. From: also contains a SIP or SIPS URI (sip:[email protected]) that indicate the
originator of the request.
Contact: contains a SIP or SIPS URI (sip:[email protected]) 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.
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :29/40
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:[email protected]) 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:[email protected]) by applying DHCP/DNS procedures. M2
INVITE sip:[email protected] 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:[email protected]>
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 314159 INVITE
Contact: <sip:[email protected]>
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.
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :30/40
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:[email protected]). It is responsible for “biloxi.com”, so it runs a location service and rewrites the
“Request-URI” (sip:[email protected] -> sip:[email protected]) -“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:
[email protected]) by applying DHCP/DNS procedures. M4
INVITE sip:[email protected] 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:[email protected]>
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 314159 INVITE
Contact: <sip:[email protected]>
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).
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :31/40
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” ([email protected]).
The “Record-Route” headers in its UA “dialog data structure” as “Route Set”. (server10.biloxi.com)
-“B” uses the “Request-URI” ([email protected]) 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:[email protected]>;tag=a6c85cf
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
Contact: <sip:[email protected]>
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:[email protected]). “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.
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :32/40
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:[email protected]>;tag=a6c85cf
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
Contact: <sip:[email protected]>
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:[email protected]>;tag=a6c85cf
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
Contact: <sip:[email protected]>
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).
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :33/40
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:[email protected]>;tag=a6c85cf
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 314159 INVITE
Contact: <sip:[email protected]>
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:[email protected]). “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:[email protected]>;tag=a6c85cf
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 314159 INVITE
Contact: <sip:[email protected]>
Record-Route: sip:server10.biloxi.com;lr>
Header’s commentaries:
Via: P2 delete its own “Via” header in the routing path (server10.biloxi.com).
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :34/40
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:[email protected]>;tag=a6c85cf
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 314159 INVITE
Contact: <sip:[email protected]>
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 ([email protected]) 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:[email protected] SIP/2.0
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds9
Max-Forwards: 70
To: Bob <sip:[email protected]>;tag=a6c85cf
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 314159 ACK
Route:sip:server10.biloxi.com
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :35/40
Header’s commentaries:
Request-URI: “A” fills the Request-URI value, with “Remote Target” value of UA
dialog data structure ([email protected]) (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:[email protected]) because there are not more “Route” headers, applying DHCP/DNS procedures.
M13
ACK sip:[email protected] 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:[email protected]>;tag=a6c85cf
From: Alice <sip:[email protected]>;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).
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :36/40
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”([email protected]) (see 2.3.4-). -“B” sends the ACK request by using the first value of “Route Set”.
(server10.biloxi.com)
M14
BYE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP term24.biloxi.com;branch=z9hG4bKnashds10
Max-Forwards: 70
From: Bob <sip:[email protected]>;tag=a6c85cf
To: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 231 BYE
Contact: <sip:[email protected]>
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 ([email protected]) (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).
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :37/40
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:[email protected]) because there are not more “Route” headers, applying DHCP/DNS procedures.
M15
BYE sip:[email protected] 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:[email protected]>;tag=a6c85cf
To: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 231 BYE
Contact: <sip:[email protected]>
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:[email protected]>;tag=a6c85cf
To: Alice <sip:[email protected]>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 231 BYE
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :38/40
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:[email protected]>;tag=a6c85cf
To: Alice <sip:[email protected]>;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).
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :39/40
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).
ROUTING ISSUES IN BASIC CALL FLOWS DES
DES Page :40/40
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.