Uploaded by nicolas matt

VoLTE Intro P 1 Network Architecture

advertisement
Welcome to the training CN61120
VoLTE System Siganaling
Dalton Quinalha
Cordoba, March 18th to 22nd, 2019 - 09h00~~16h00
1
Contents:
0. VoLTE Network Architecture (VoLTE Network Architecture Review)
1. VoLTE Subscriber EPS Attach and IMS bearer setup
2. VoLTE Subscriber Registration
3. Dedicated bearer setup and QoS mapping Procedures
4. VoLTE Call Setup Procedures
5. MMTel Service Handling
6. VoLTE session transfer
7. VoLTE Emergency Call
2
Course Programme
Afternoon
Day 1
•
•
Course Introduction
VoLTE Network Architecture
(Review)
•
•
VoLTE EPS attach and IMS bearer setup
VoLTE Subscriber Registration
Day 2
•
VoLTE Subscriber Registration
•
VoLTE Subscriber Registration
Day 3
•
Dedicated Bearer setup and QoS
•
VoLTE Call Setup procedures
Day 4
•
VoLTE Call Setup procedures
•
•
VoLTE Call Setup procedures
MMTEL Service Handling
Day 5
•
VoLTE Session Transfer
•
•
VoLTE Emergency Calls
Course Review and Conclusions
3
Lunch Break
Morning
Please could you possibly introduce yourself ?
•
•Name
• Working Area
• Experience
• Expectation
4
•
General Course Info (Classroom Session)
Course day duration
(e.g. : 09h00  16h00…max. 16h30)
•
Lunch break schedule
(e.g. : 12h30)
•
Number of additional breaks during the day
(e.g. : 1 in the morning and 1 in the afternoon
shift)
•
Special needs for the last day
(e.g. : early flight / train)
5
Coffee!!!
6
06/08/2023
A bit of HISTORY…
7
06/08/2023
In Telecommunications History, voice service has always been the main Focus !
8
History
voice
9
In Mobile Telecommunications History, voice service has always been the main Focus !
10
voice
11
06/08/2023
“This changes with the introduction of LTE,
Where Data is the main Focus.
Voice is regarded as just Another Application,
But with specific requirements : Qos, GBR and
Interoperability to Legacy 2/3G networks…”
DATA
12
“Voice Over LTE or VoLTE…
…Uses IMS (IP Multimedia System) as Call Control Layer.
IMS uses SIP as main Call Control Protocol and SDP for media.
13
Today’s Voice Services are offered by 2/3 G Circuit Switching Core
Where the main Network Element executing voice services is the MSS,
using for that, a set of different Signaling protocols…
14
One day in the future, the VoLTE architecture will replace
the current 2/3G CS core…
…at this scenario, TAS will be the main NE executing voice services and
SIP will be the main signaling protocol.
But as this replacement will not happen from night to day for most of
Operators, Interoperability between 2/3G and VoLTE is necessary.
From another point of view, the 2/3G network has undergone a huge
evolutionary path and IMS appeared somewhere in this track…
15
A bit of History: the mobile communication evolutionary path:
16
Capabilities
Mobile Communication Evolution
Time
17
Capabilities
Mobile Communication Evolution
Rel
6
Rel
7
Rel
8
4G LTE
E
Rel
3G
NodeB
Rel 5
S/P
3G
GW
IMS
Rel 4
HSUPA
3G
MME
extens
Networ
HSDPA
99 3G
k
ions HSS –
IU-CS
Core
Rel 3G
LTE
Sharin
over IP
Networ
Rel 98
g
Multim
IBCF CS FB
IUFLEX
k
97 Higher edia Modific CAMEL IMS PCRF IMS
Service
extens PCEF extens
Ph 4
ation
Rel Higher bit
s New
ions IP-SM- ions:
rates
IP at
GSM 96 bit
RAN
Preco
IMS
WLAN GW
EDGE
User
WCDM
rates
Ph 2
nditio
Voice
CAMEL
Plane
Higher GPRS
A
GSM
over
ns,Em
Ph2
and
RNC,
BS = 9.6 bit
CAMEL
IMS
ergen
Control
Kbit’/s rates
Basic
NodeB
IMS
cy,SR
Plane
Service SS=ISD 14.4
CAMEL
ALG
ASCI
VCC,L
N
=
HSCSD
Ph3
Speech
18
TrGW
awfull
Interc
Rel
9
4G LTE
IMS
extens
ions:
MMTE
L
TAS,
SRVC
C for
Emerg
ency
calls
Time
Mobile Communication Evolution
Capabilities
LTE IMS over LTE
IMS Ext
IMS
Rel
6
Rel
7
Rel
8
4G LTE
E
Rel
3G
NodeB
Rel 5
S/P
3G
GW
IMS
Rel 4
HSUPA
3G
MME
extens
Networ
HSDPA
99 3G
k
ions HSS –
IU-CS
Core
Rel 3G
LTE
Sharin
over IP
Networ
Rel 98
g
Multim
IBCF CS FB
IUFLEX
k
97 Higher edia Modific CAMEL IMS PCRF IMS
Service
extens PCEF extens
Ph 4
ation
Rel Higher bit
s New
ions IP-SM- ions:
rates
IP at
GSM 96 bit
RAN
Preco
IMS
WLAN GW
EDGE
User
WCDM
rates
Ph 2
nditio
Voice
CAMEL
Plane
Higher GPRS
A
GSM
over
ns,Em
Ph2
and
RNC,
BS = 9.6 bit
CAMEL
IMS
ergen
Control
Kbit’/s rates
Basic
NodeB
IMS
cy,SR
Plane
Service SS=ISD 14.4
CAMEL
ALG
ASCI
VCC,L
N
=
HSCSD
Ph3
Speech
19
TrGW
awfull
Interc
Rel
9
4G LTE
IMS
extens
ions:
MMTE
L
TAS,
SRVC
C for
Emerg
ency
calls
Time
2009 GSM-A
IR 92 – IP Multimedia Subsystem profile for Voice and SMS
IR 94 – Conversational Video Service
IR 64 – Service Centralization and Continuity Guidelines
IR 65 – IMS Roaming and Interworking Guidelines
IR 88 – LTE Roaming Guidelines
IR 51 – IMS Over Wi Fi
20
2009 GSM-A
IR 92 – IP Multimedia Subsystem profile for Voice and SMS
IR 94 – Conversational Video Service
IR 64 – Service Centralization and Continuity Guidelines
IR 65 – IMS Roaming and Interworking Guidelines
IR 88 – LTE Roaming Guidelines
IR 51 – IMS Over Wi Fi
21
Capabilities
Mobile Communication Evolution
Rel
6
Rel
7
Rel
8
4G LTE
E
Rel
3G
NodeB
Rel 5
S/P
3G
GW
IMS
Rel 4
HSUPA
3G
MME
extens
Networ
HSDPA
99 3G
k
ions HSS –
IU-CS
Core
Rel 3G
LTE
Sharin
over IP
Networ
Rel 98
g
Multim
IBCF CS FB
IUFLEX
k
97 Higher edia Modific CAMEL IMS PCRF IMS
Service
extens PCEF extens
Ph 4
ation
Rel Higher bit
s New
ions IP-SM- ions:
rates
IP at
GSM 96 bit
RAN
Preco
IMS
WLAN GW
EDGE
User
WCDM
rates
Ph 2
nditio
Voice
CAMEL
Plane
Higher GPRS
A
GSM
over
ns,Em
Ph2
and
RNC,
BS = 9.6 bit
CAMEL
IMS
ergen
Control
Kbit’/s rates
Basic
NodeB
IMS
cy,SR
Plane
Service SS=ISD 14.4
CAMEL
ALG
ASCI
VCC,L
N
=
HSCSD
Ph3
Speech
22
TrGW
awfull
Interc
Rel
9
Rel
10
4G LTE
Rel
11
4G LTE
Rel
12
4G LTE
4G LTE
IMS
IMS
IMS
extens
extens
extens
ions:
IMS
ions:
extens ions:
ions: eSRV
MMTE CC
L
TAS,
SRVC
C for
Emerg
ency
calls
….
Time
23
06/08/2023
VoLTE Network Architecture
24
06/08/2023
MGW- IMS
MGCF
CS-IP
BB
BTS
SCP
IM-SSF
BSC
MS
SIM
IMSI
MSISDN
MGW-CS
Mc
(h248)
HLR
LDAP
UE
USIM
IMSI
MSISDN
SGs(SGSAP) CSFB
SV(GTP V2) SRVCC
Hd (propr
diameter)
One
NDS
HSS
IMS
(GTP V1)
BGCF
Mw
IBCF
PCRF
IMS ATC
ALG F
CFX5000
Ix (megaco)
Iq (megaco)
PGW
PDN
Gi (IP)
IMS
AGW
ATGW
Open Border GW
SWu
(IKEv2/Ipsec)
ePDG
xDSL
SWm
( diameter )
AAA
GW
DNS
eNUM
Mw
P-CSCF
WiFi
25
S-CSCF
Mw
S5/S8 ( GTP V2)
SGW
Open TAS
Ma
ISC (SIP)
(SIP)
Mi
I-CSCF
LDAP
HSS
LTE
MME
eN B
UE
USIM
IMSI
MSISDN
PDN
GGSN
SGSN
Mr’ (SIP MSML)
Mp’(h248)
Traffica
MMTEL
MSS
VLR
RNC
MRF
MRFC
SCC-AS
SMS
Billing
Ut (xcap)
XCAP
IP-SM-GW
IN
I2 (SIP)
NB
Mg [BGCF-MGCF] Mj [MGCF-I-CSCF (SIP)
PSTN
HPLMN
TrG
W
Other IMS
Networks
MGW- IMS
MGCF
CS-IP
BB
BTS
SCP
IM-SSF
BSC
MS
SIM
IMSI
MSISDN
MGW-CS
Mc
(h248)
HLR
LDAP
UE
USIM
IMSI
MSISDN
SGs(SGSAP) CSFB
SV(GTP V2) SRVCC
Hd (propr
diameter)
One
NDS
HSS
IMS
(GTP V1)
BGCF
Mw
IBCF
PCRF
IMS ATC
ALG F
CFX5000/SBC
Ix (megaco)
Iq (megaco)
PGW
PDN
Gi (IP)
IMS
AGW
ATGW
TrG
W
Open Border GW / SBC
SWu
(IKEv2/Ipsec)
ePDG
xDSL
SWm
( diameter )
AAA
GW
DNS
eNUM
Mw
P-CSCF
WiFi
26
S-CSCF
Mw
S5/S8 ( GTP V2)
SGW
Nokia TAS
Ma
ISC (SIP)
(SIP)
Mi
I-CSCF
LDAP
HSS
LTE
MME
eN B
UE
USIM
IMSI
MSISDN
PDN
GGSN
SGSN
Mr’ (SIP MSML)
Mp’(h248)
Traffica
MMTEL
MSS
VLR
RNC
MRF
MRFC
SCC-AS
SMS
Billing
Ut (xcap)
XCAP
IP-SM-GW
IN
I2 (SIP)
NB
Mg [BGCF-MGCF] Mj [MGCF-I-CSCF (SIP)
PSTN
HPLMN
Other IMS
Networks
MGW- IMS
MGCF
CS-IP
BB
BTS
SCP
IM-SSF
BSC
MS
SIM
IMSI
MSISDN
MGW-CS
Mc
(h248)
HLR
LDAP
UE
USIM
IMSI
MSISDN
SGs(SGSAP) CSFB
SV(GTP V2) SRVCC
WiFi
Hd (propr
diameter)
MME
VoLTE
VoWiFi
27
One
NDS
HSS
IMS
LDAP
HSS
LTE
SGW
SWu
(IKEv2/Ipsec)
(GTP V1)
ePDG
xDSL
PGW
SWm
( diameter )
Nokia TAS
Ma
ISC (SIP)
(SIP)
Mi
S-CSCF
BGCF
Mw
IBCF
Mw
P-CSCF
PCRF
IMS ATC
ALG F
CFX5000/SBC
Ix (megaco)
Iq (megaco)
PDN
Gi (IP)
IMS
AGW
ATGW
TrG
W
Open Border GW / SBC
AAA
GW
DNS
eNUM
Mw
I-CSCF
S5/S8 ( GTP V2)
eN B
UE
USIM
IMSI
MSISDN
PDN
GGSN
SGSN
Mr’ (SIP MSML)
Mp’(h248)
Traffica
MMTEL
I2 (SIP)
RNC
MRF
MRFC
SCC-AS
SMS
Billing
Ut (xcap)
XCAP
IP-SM-GW
IN
MSS
VLR
NB
Mg [BGCF-MGCF] Mj [MGCF-I-CSCF (SIP)
PSTN
HPLMN
Other IMS
Networks
MGW- IMS
MGCF
CS-IP
BB
BTS
Mg [BGCF-MGCF] Mj [MGCF-I-CSCF (SIP)
PSTN
HPLMN
SCP
IM-SSF
BSC
MS
SIM
IMSI
MSISDN
MGW-CS
Mc
(h248)
HLR
UE
USIM
IMSI
MSISDN
PDN
GGSN
SGSN
SGs(SGSAP) CSFB
SV(GTP V2) SRVCC
Hd (propr
diameter)
LDAP
One
NDS
HSS
IMS
Nokia TAS
Ma
ISC (SIP)
(SIP)
Mi
S-CSCF
PCRF
S5/S8 ( GTP V2)
(GTP V1)
PGW
PDN
Gi (IP)
WiFi - WAP
28
Mw
CFX5000
IMS ATC
ALG F
Iq (megaco)
IMS
AGW
SWu
(IKEv2/Ipsec)
BGCF
Mw
P-CSCF
SGW
IBCF
Ix (megaco)
ATGW
TrG
W
Open Border GW / SBC
ePDG
xDSL
SWm
( diameter )
AAA
GW
DNS
eNUM
Mw
I-CSCF
LDAP
HSS
LTE
MME
eN B
UE
USIM
IMSI
MSISDN
Traffica
MMTEL
I2 (SIP)
RNC
Mr’ (SIP MSML)
Mp’(h248)
MRF
MRFC
SCC-AS
SMS
MSS
VLR
NB
XCAP
IP-SM-GW
IN
Billing
Ut (xcap)
Other IMS
Networks
MGW- IMS
MGCF
CS-IP
BB
BTS
Mg [BGCF-MGCF] Mj [MGCF-I-CSCF (SIP)
PSTN
HPLMN
SCP
IM-SSF
BSC
MS
SIM
IMSI
MSISDN
MGW-CS
Mc
(h248)
HLR
UE
USIM
IMSI
MSISDN
PDN
GGSN
SGSN
SGs(SGSAP) CSFB
SV(GTP V2) SRVCC
Hd (propr
diameter)
LDAP
One
NDS
HSS
IMS
Nokia TAS
Ma
ISC (SIP)
(SIP)
Mi
S-CSCF
(GTP V1)
PGW
PCRF
PDN
Gi (IP)
CFX5000
IMS ATC
ALG F
SWu
(IKEv2/Ipsec)
IBCF
Ix I-SBC
(megaco)
Iq (megaco)
A-SBC
IMS
AGW
WiFi - WAP
29
Mw
Other IMS
Networks
P-CSCF
SGW
BGCF
Mw
S5/S8 ( GTP V2)
ATGW
TrG
W
Open Border GW / SBC
ePDG
xDSL
SWm
( diameter )
AAA
GW
DNS
eNUM
Mw
I-CSCF
LDAP
HSS
LTE
MME
eN B
UE
USIM
IMSI
MSISDN
Traffica
MMTEL
I2 (SIP)
RNC
Mr’ (SIP MSML)
Mp’(h248)
MRF
MRFC
SCC-AS
SMS
MSS
VLR
NB
XCAP
IP-SM-GW
IN
Billing
Ut (xcap)
SCP
IM-SSF
Billing
Ut (xcap)
XCAP
IP-SM-GW
MRF
MRFC
SCC-AS
Traffica
MMTEL
One
NDS
HSS
IMS
HSS
LTE
MME
UE
USIM
IMSI
MSISDN
SGW
(GTP V1)
BGCF
Mw
IBCF
PCRF
IMS ATC
ALG F
CFX5000/SBC
Ix (megaco)
Iq (megaco)
PGW
PDN
Gi (IP)
IMS
AGW
ATGW
TrG
W
Open Border GW / SBC
SWu
(IKEv2/Ipsec)
ePDG
xDSL
SWm
( diameter )
AAA
GW
DNS
eNUM
Mw
P-CSCF
WiFi
30
S-CSCF
Mw
S5/S8 ( GTP V2)
eN B
Nokia TAS
Ma
ISC (SIP)
(SIP)
Mi
I-CSCF
LDAP
Mr’ (SIP MSML)
Mp’(h248)
Other IMS
Networks
Billing
Ut (xcap)
Mr’ (SIP MSML)
Mp’(h248)
Traffica
Nokia TAS
Ma
ISC (SIP)
(SIP)
One
NDS
DNS
eNUM
HSS
IMS
LDAP
HSS
LTE
MME
UE
USIM
IMSI
MSISDN
Iq (megaco)
S5/S8 ( GTP V2)
eN B
SGW
(GTP V1)
PGW
Ix (megaco)
PDN
Gi (IP)
WiFi
31
CFX5000/SBC
PCRF
Open Border GW / SBC
SWu
(IKEv2/Ipsec)
ePDG
xDSL
SWm
( diameter )
AAA
GW
Other IMS
Networks
Billing
Ut (xcap)
Mr’ (SIP MSML)
Mp’(h248)
Traffica
Nokia TAS
Ma
ISC (SIP)
(SIP)
One
NDS
DNS
eNUM
HSS
IMS
LDAP
HSS
LTE
MME
UE
USIM
IMSI
MSISDN
Iq (megaco)
S5/S8 ( GTP V2)
eN B
SGW
(GTP V1)
CFX5000/SBC
PCRF
PGW
Ix (megaco)
PDN
Gi (IP)
Open Border GW / SBC
32
Other IMS
Networks
SIP
33
SIP Session Initiation Protocol
•
Text based application layer protocol primarily for media stream signalling
-
It’s purpose is the establishment, modification, and termination of multimedia
sessions e.g. phone calls, videoconferences, online game sessions, etc.
-
Extensions allow instant messaging, presence status and event publication
•
IETF defined standard: RFC 3261
•
3GPP has adopted SIP as the main Control Protocol for IMS – TS 23.228 and 24.229
•
Text Protocol – http like. The headers are flexible. ‘’write what ever you want’’
•
- Binary protocols (like SS7) are predefined, prearranged and requires signaling links
and routing data bases. Text protocols are flexible and have all definitions at own
body.
•
Sip over TCP/UPD/SCTP dest. Port 5060
•
Request/Response client/server protocol
•
-clients send Requests (methods) to Servers. Servers sends Responses (Status
Codes).
34
•
Nodes acts as both: clients and servers
SIP Network Components (summary)
•
UA – User agent:
-
SIP enabled terminal (end device), which is one of the endpoints of a session
•
It may send AND receive session initiation requests
•
Acts on behalf of it’s user, hence user agent
-
35
Two parts:
•
UAC – User Agent Client: initiates requests
•
UAS – User Agent Server: generates responses
•
Registrar server:
-
Accepts REGISTER requests
-
Usually performs authentication of users and downloads user profile
-
Builds a temporary binding between the AOR (IMPU) present in the REGISTER’s „To” header
and the device URI present in the „Contact” header
•
Proxy Server:
-
36
Helps Routing a Request from a Client to a Server. The Proxy itself is a combination of Client
and a server just routing messages, not modifying them. It has no media capabilities.
-
Statefull proxy: maintains dialog state. Keep on ‘the loop’’.
-
Stateless proxy: only forwards the messages
•
37
Back to Back User Agent:
-
SIP Device that works as 2 coupled User Agents in opposite directions. It receives requests (A
side requests and may reformulate them (creating new ‘B’ side requests) thus potentially
creating new dialogs
-
It answers these requests (A responses)
-
It also handles the responses for B requests)
-
Mantains dialog states
Addressing
•
Address of Record (AOR):
-
URI which Identifies a participant in the session
-
E.g. sip:user@domain.com, tel:+123456789
-
Usually requires database lookups
-
Appears in „From” and „To” headers and in the start-line
•
38
Device URI:
-
URI which Identifies a (logical) network element
-
E.g. sip:user@unit1.NE2.subdomain.domain.com
-
Usually does not require database lookups
-
Appears in „Contact” header
SIP message structure
•
Start line contains the SIP version and…
-
…the method and target address in requests (Request URI R-URI)
-
…the status in responses
•
Headers contain the information related to the session in text lines
•
e.g. the initiator, and the recipient of the request, call identifier etc.
Message body (payload) can carry any text based information
-
e.g. SDP packet, instant message etc.
-
Starts with CRLF
Start-Line
Header1: value1
Header1: value2
Header3: value3
Header4: value4
Message body
39
•
Request:
-
SIP message which is sent by a client towards a server requesting the invocation of
a SIP service method
-
e.g. INVITE message
•
•
40
Method:
-
A SIP functionality which is performed at the server invoked by a request message
-
e.g. invitation of a peer to a call (invoked by the INVITE request)
Almost interchangeable terms
SIP Requests
REGISTER
SUBSCRIBE
INVITE
PUBLISH
ACK
NOTIFY
MESSAGE
BYE
CANCEL
PRACK
UPDATE
OPTIONS
41
REFER
INFO
•
REGISTER:
Registers a user’s AOR and device URI to the SIP system with a given
expiration time
•
„From” header: AOR of the UA performing the registration
•
„To” header: AOR of the UA to be registered
•
•
42
3rd party registration: if „From” and „To” URI don’t equal (e.g. IMS)
„Expires” header
•
Indicates the duration of the registration requested
•
If zero, de-registration is requested, the user will be removed from the sytsem
•
The AOR will be bound to the device URI for the duration of the registration,
thus if changing the „Contact” URI (due to e.g. WLAN handover) the user has to
be re-registered by sending another REGISTER message
•
If there’s no „Contact” header present
•
Return all current registrations in response
•
43
INVITE:
•
Invites a participant into a media session
•
Body usually carries an SDP message describing the media session
•
A media session is considered established when the INVITE, 200 OK, and ACK messages
have been exchanged between the participants
•
RURI and „To” URI is the called party’s AOR, „From” URI is the caller’s AOR, „Contact” address
is the device URI of the caller
•
ACK:
-
Acknowledges final responses for INVITE requests
-
It can also carry media description, but only if the initial INVITE did not
•
44
It must not modify an already established session (re-INVITE has to be used for that)
-
The „CSeq” value in an ACK is never incremented, but the method is changed to
ACK so that the UA can match the particular ACK with the corresponding INVITE
(see CSeq header and examples!)
-
ACK for 2xx responses is end-to-end, for all other responses it is hop-by-hop (i.e.
new ACK transaction for each hop)
•
45
BYE:
-
Terminates active sessions
-
Only UAs participating in a session may send it, proxies must not (thus end-to-end)
-
Pending INVITEs should be terminated with CANCEL, not with BYE
•
CANCEL:
-
Cancels pending requests before a final response arrives for a request (otherwise
BYE is used)
-
Forking proxies are using CANCEL to end parallel branch dialogs
-
CSeq is NOT incremented like in case of ACK (see CSeq header and examples!)
-
Hop-by-hop request
• It is responded to with 200 OK
• The INVITE is replied to with 487 Request Terminated
46
•
OPTIONS:
-
Used for querying UAs’ or servers’ capabilities (e.g. supported extensions,
language, etc.) and momentary availability
-
It is responded to with 200 OK in successful case with the capabilities of the „B”
side listed
• Supported header may list the supported SIP extensions
• Allow header may list the allowed methods
• Accept header may list the accepted payload types
• SDP payload may describe the broadest set of supported media types
• It can be used for reachability checking i.e. ping
-
47
Proxies must not generate OPTIONS request
•
48
OPTIONS and CANCEL basics:
•
PRACK:
-
Used for acknowledging reliably transported provisional responses (1xx)
• Reliably transported: received with a proper „RSeq” header
• Any informational response except for „100 Trying”
• Other responses are using ACK for acknowledgment
49
-
Specified in RFC 3262
-
Requires support for extension „100rel”
-
RAck header: used for echoing CSeq and RSeq of the acknowledged response
(see RAck headers and examples!)
-
Matches the offer/answer model of SDP
•
UPDATE:
-
Allows a client to update parameters of a session before the completion of an initial
INVITE method
• Set of media streams and their codecs
• After the session is established, re-INVITE should be used for the same purpose
-
50
Used for e.g. codec negotiation, QoS parameter updates
PRACK, UPDATE basics:
51
•
SUBSCRIBE:
-
Used by a UA to initiate a subscription to another UA’s presence and activity (or
„arbitrary”) status
-
Creates a dialog
• Can be terminated using a final NOTIFY (see NOTIFY method)
-
„Expires” header defines the duration of the subscription
• A subscription can be refreshed by another SUBSCRIBE
• „Expires: 0” means the termination of a subscription
52
-
„Event” header describes which actions the UA wants to subscribe to
-
„Allow-Events” header may show the allowed events
•
PUBLISH:
-
53
Used by a UA to publish an event towards an ESC which then distributes it to the interested
parties
•
NOTIFY:
-
Used by a UA to notify it’s target about the occurence of a particular event
• Usually within a subscription dialog, but also in case of call transfer (see REFER method)
-
„Event” and „Subscription-State” headers highlight the basics of the occured event
-
Has a specific XML based payload describing the actual change and the event of a
subscription
• sipfrag in case of call reference
54
-
Solicited ~: sent within a dialog (i.e.: subscription)
-
Unsolicited ~: sent outside a dialog (i.e.: MWI)
•
MESSAGE:
-
Allows a client to send a direct message to a recipient
-
One shot request: does not create a dialog
-
May be sent within a dialog (in-dialog messaging)
-
Payload (message body) can be a large number of MIME types
• E.g. „text/plain” or „application/vnd.3gpp.sms”
-
Success scenarios:
• 200 OK is received
• 202 Accepted is received meaning that the NE recieved the message but is not yet able to
deliver it to it’s target
55
•
REFER:
-
Used by a UA to instruct another UA participating in the session to contact a third
(or Xth) URI or URL
• E.g. Call transfer or even PBX functionality
• Arbitrary URL/URI scheme can be used as a target e.g. HTTP resources can also be used
56
-
„Refer-To” header indicates the target of the reference
-
The optional „Referred-By” header shows information about the referrer
-
Requires immediate response
-
Implicit subscription: equals with a subscription for „Refer” event (see SUBSCRIBE
method)
•
INFO:
-
Method for in-dialog general information transmission
• E.g. In case of ISUP tunnelling, those messages that don’t fit the SIP initiatives (e.g. CHG,
MPM, CNF, etc.) or DTMF relay
-
57
End-to-end transmission
•
Response:
-
SIP message which is sent by a server towards a client responding to a previously received
request
-
e.g. 200 message
•
•
58
Status code:
-
A number which represents the state of the method that the response is sent about
-
e.g. 200 OK for an INVITE: the called party picks up the call
Strongly coupled terms
•
59
Provisional response:
-
Response which does not complete/terminate the transaction
-
Practically a synonym for Information class (1xx) responses
-
E.g.: 183 Session Progress
-
They can be acknowledged using the PRACK method if they are reliably
transmitted (if the „100rel” extension is supported by the peers participating in the
dialog)
RESPONSES
•
Status codes:
-
Informational:
•
-
2xx
200,202
Redirection:3xx
•
-
300, 301, 302
Client error: 4xx
•
-
400,401,403,404,405,407,408,480,484,486,487
Server error:
•
-
5xx
500,503,501,513
Global error:
•
60
100,180,181,183
Success:
•
1xx
600,606
6xx
•
100 Trying:
-
Sent in case the processing of an INVITE request lasts too long in order to avoid
retransmission of the INVITE
• Never sent reliably  never PRACK’d
• Hop-by-hop response
• Must not contain a message body
• Typically does not contain a „To”-tag (see „To” header)
•
61
180 Ringing:
-
Indicates that the INVITE has reached it’s target and it is alerting
-
May contain media description e.g. for special RBT
•
181 Call Is Being Forwarded:
-
•
Indicates that the call is being handed off to another end-point
183 Session/Call Progress:
-
Used for transmitting information regarding the progress of the session
-
If „100rel” extension is supported it perfectly fits the offer/answer model of SDP
• Can be used for codec negotiation
-
Can be used generally for media stream establishment prior the session
establishment
• E.g. announcements
62
•
200 OK:
-
Used for indicating the successful completion of a request
• For INVITE, OPTIONS, REGISTER it may contain a message body
• For other requests it must not contain a message body
•
202 Accepted:
-
Indicates that the request was received and accepted (e.g. it is both syntactically
and semantically reasonable), however it does not indicate any information about
it’s processing
• Typically for SUBSCRIBE, MESSAGE and REFER
63
•
300 Multiple Choices:
-
Indicates that the location service returned multiple possible locations of the sip(s)
URI in the RURI
• Contains several „Contact” headers in significant order
•
301 Moved Permanently:
-
•
~, „Contact” header contains the new permanent URI of the called party
302 Moved Temporarily:
-
~, „Contact” header contains the momentarily valid URI of the called party
• „Expires” header may provide the duration of the validity of the URI
64
•
400 Bad Request:
-
Indicates that the server does not understand the request
• E.g. missing mandatory headers or multiple INVITEs with same Call-ID
•
401 Unauthorized:
-
Indicates that authentication is required before accessing the requested method
• Generally UAs or registrar servers (proxy servers use 407)
• The authenticated request should have the same Call-ID as the initial
65
•
403 Forbidden:
-
Indicates that the requested service is not available for the UA
• E.g. call attempt when unregistered
•
404 Not Found:
-
•
Indicates that the user in the RURI can not be located by the server
405 Method Not Allowed:
-
Indicates that the requested method is not allowed at the UA
• E.g. REGISTER to a UA
• „Allow” header must be present containing the allowed methods
66
•
407 Proxy Authentication Required:
-
Indicates that the UA (and NOT a server) sending the request to a proxy server has
to be authenticated
• „Proxy-Authenticate” header contains the required authentication type
• Request then has to be resubmitted with „Proxy-Authorization” header containing the
authentication credentials
•
408 Request Timeout:
-
67
Indicates that an INVITE containing an „Expires” header has timed out
•
480 Temporarily Unavailable:
-
Indicates that the target UA can not be accessed momentarily
• E.g.: The called party is found, but is not logged in
• „Retry-After” header should contain when the request might be served
•
484 Address Incomplete:
-
Indicates that the address in the RURI is not complete
• Typically in case of overlap dialing at PSTN gateways
•
486 Busy Here:
-
Indicates that the call can not be accepted at the target location
• Equivalent to the busy signal
68
•
487 Request Terminated:
-
Sent by a (B2B)UA which received a CANCEL message to a pending INVITE
• The CANCEL is acknowledged with a 200 OK, and the pending INVITE is responded with
487
69
•
500 Server Internal Error:
-
General server error response which indicates that the request can not be served
(usually only momentarily) due to some unexpected condition
• E.g. a server unit melts down during processing the request
• „Retry-After” header may indicate the interval of the outage
•
503 Service Unavailable:
-
General server error response which indicates that the request can not be served
(usually only momentarily) due to some NE level error
• Typically in case of overload or maintenance (which causes overload) of a NE
• „Retry-After” header may indicate the interval of the outage
70
•
501 Not Implemented:
-
Indicates that the requested method is unknown to the server and will never be
able to serve it
• E.g. Presence functionality in case of a strict VoIP network
•
513 Message Too Large:
-
71
The length of the message exceeds the server capabilities
•
600 Busy Everywhere:
-
Indicates that the request is not going to be served at any possible resource bound
to the RURI
• Global version of 486, only servers with overall knowledge of the network should be
sending it
•
606 Not Acceptable:
-
Indicates that the target was reached, but no end point will be able to accept the
session due to some aspect of the media description
• E.g. attempt to join a voice conference with video conference media requirement
• Primitive/basic media negotiation method
• „Warning” header may be used to clarify the reason
72
HEADERS
•
header = "header-name" HCOLON header-value *(COMMA headervalue)
-
Field names are always case-insensitive
•
E.g. the following ones are equivalent
Contact: <sip:alice@atlanta.com>;expires=3600
CONTACT: <sip:alice@atlanta.com>;ExPiReS=3600
-
73
In most cases field values, parameter names, and parameter values are
case-insensitive too
Many headers have a compact form of one character
•
From:
•
Shows the originator of the session establishment attempt
•
Must contain a URI and a „tag” field
•
74
-
The URI is enclosed in < > brackets
-
The URI may contain a display name which is exluded from the < > brackets
In a response it is echoed, i.e. even though the response is generated by the
server, the header’s value will be the CALLER’s URI
•
To:
Shows the target of the session establishment attempt
•
Must contain a URI
-
75
The URI must be composed like in „From” header
•
From the first response to a request (even in case of provisionals except for 100
Trying) it must contain a tag field, which indicates that the dialog is established
•
In a response it is echoed, i.e. even though the response’s target is the client, the
header’s value will be the CALLEE’s URI
•
The URI in the To header is NOT used for routing, the RURI is used instead
•
Via:
•
Used for routing and matching SIP messages to the transaction it belongs to
•
Mandatory header that must contain
-
the protocol version (always SIP/2.0)
-
the transport that was used for transmitting the message (/UDP)
-
an address (10.85.18.113:5060)
-
a „branch” field beginning always with the so-called magic cookie „z9hG4bK”
(branch=z9hG4bK5B1gdA.WdC85)
•
76
A SIP message may contain many Via headers
-
Their order is utterly important for routing purposes
-
They record the path of a request and ensure that responses are routed the same way as the
request was that they belong to
•
77
Via: In requests
•
Via:
•
In responses
-
78
A NE element receiving a response checks whether the address in the topmost Via header
matches it’s own’s
•
If it does not, the NE discards the message
•
If it does (i.e. the message has reached the proper NE), the NE removes the topmost Via
header and forwards the response towards the address in the new topmost Via header
•
This allows that responses are routed the same way the corresponding request was
Via: In responses
79
•
Call-ID:
Is a unique ID generated by the UA generating a request identifying the call
throughout the entire session
•
It is echoed in responses
•
Each call should have a unique Call-ID
•
However in case of registrations, all registrations from a particular user should
contain the same Call-ID
•
Usually made up of a local-id, the @ symbol, and a host name or IP address
-
80
Local-id should be a cryptographically random string
•
CSeq:
Stands for Command Sequence
•
A counter that increases for each request and contains the method of the request that triggered
the last incrementation
•
It is generated for each request
•
It is echoed in the respons(es) belonging to the request
•
81
-
This way, within a dialog it can identify all messages belonging to the transaction initiated by
a particular request
-
Cseq „space” is generated and maintained by each UA independently
CANCEL and ACK DO NOT increment the CSeq number, they contain a CSeq with the number
of the INVITE they refer to, but the method name is changed
CSeq:
82
•
Contact:
•
Contains the URI of the resource generating the SIP message
•
Usually it resolves directly to the address of the UA
-
83
E.g. networks with firewalls may hide the actual address of the UA
•
In case of registrations, it is the address bound to the URI publicly available for
addressing SIP messages
•
In case of registration the wildcard „Contact: *” may be used together with „Expires:
0” header meaning that all registrations should be cleared
•
Allow:
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, PRACK, INFO, MESSAGE, SUBSCRIBE,
NOTIFY, REFER, UPDATE
•
•
Shows which methods are allowed at the UA
Supported:
Supported:100rel,precondition,timer
•
•
Shows which extensions of SIP are supported by the UA
Require:
Require:100rel
•
84
Shows which extensions of SIP the UA requires the other party to support
•
85
Reason:
•
In case of CANCEL and BYE it describes the reason of closing the session
•
In case of error responses it describes the reason for the situation represented by
the response’s status code
•
May containg a SIP-specific, partly textual description and/or a Q.850 SS7-specific
cause value
•
Reason header in a „484 Address Incomplete” response:
Reason:X.int ;reasoncode=0x0B17;add-info=01CA.FFFE.0000
Reason:Q.850 ;cause=28
SIP Reason
Part
Value
Meaning
Clear code 0B17 Insufficient digits or selection information have been received (address_incomplete)
01CA si7prb
PRB
c0B17_mapped_from_ext_cause
Situation
FFFE
Add info
0
86
cd_t type constant definition info
The clear code is mapped from an external cause
code
•
WWW-Authenticate:
•
Carries public authentication credentials  it „challenges” the client to authenticate
itself
•
Typically in a „401 Unauthorized” response
In a reformulated request after the 401, „Authorization” header carries the authentication
credentials generated by the client using
-
87
•
the authentication algorithm described in the algorithm field’s value
•
nonce, which is the public key of the authentication algorithm
•
the client’s private key
•
88
Authorization:
•
Carries authentication credentials in requests
•
Typically in a reformulated request generated after the arrival of a „401
Unauthorized” response
•
Record-Route:
Record-Route: <sip:private.in.nephthys.tas.com:5060;lr>
•
89
used to force routing through a proxy for all subsequent requests in a session
between two user agents
-
Normally a present „Contact” header allows the direct transmission of SIP messages
between two UAs, a present Record-Route however overrides this and forces the message
to go through the proxy present in the header
-
All subsequent requests must have a „Route” header containing the address present in the
„Record-Route” header (see examples)
•
Route:
Route: <sip:private.in.nephthys.tas.com:5060;lr>, <sip:private.in.apollon.tas.com:5060;lr>,
<sip:private.in.hercules.tas.com:5060;lr>
•
90
In case a message with Record-Route header(s) was received all subsequent
requests must contain a Route header matching the Record-Route value(s)
• Content-Type:
Content-Type: application/sdp
•
Indicates the type of the payload carried in the
message body
• Content-Length:
Content-Length: 0
91
•
Expires:
Expires: 60
•
Indicates the time interval in which the request or message contents are valid
•
Interval is defined in seconds or in absolute time (SIP date type)
-
•
92
E.g.: Expires: Mon, 8 Nov 2010 16:00:00 GMT+1
Typically in case of REGISTER, SUBSCRIBE and INVITE requests
•
Session-Expires:
Session-Expires: 3600
•
It can define a duration for a session
-
93
It can be extended using an UPDATE or a re-INVITE method
•
94
Transaction:
-
All messages from the first request (sent from the client to the server) up to the final (non-1xx)
response for the request (sent from the server to the client)
-
Also includes ACK for a response if it was a non-2xx response
-
ACK for a 2xx response is a separate transaction
-
„Via” header’s „branch” field’s value in SIP messages identifies the transaction it belongs to in
an unequivocal way (see Via header)
-
“Transaction is a Request-Response(s) sequence of messages for one single Request between
2 directly connected SIP entities’’.
Session:
‘’A Session is a Realtime multimedia exchange between 2 or more users’’
95
•
Dialog:
-
Peer-to-peer SIP relationship between a client and a server that
persists for some time
Established by SIP messages, such as a 2xx or 1xx response to
an INVITE request
Consists of transactions
Each dialog is uniquely identified by it’s initial request’s
-
96
•
„Call-ID” header value AND
•
„tag” field’s value in the „From” header (From-tag) AND
•
„tag” field’s vaule in the „To” header (To-tag) (appears in the first non-100 response!)
Each transaction within a dialog is uniquely identified by it’s
request’s „CSeq” header’s value
Dialog:
97
Routing - Strict Routing
Route is created from Record-Routes
If there is a Route header field present
- Pull the topmost Route header and replace the Request-URI with it
- Route the request according to the new content of the R-URI
- DO NOT modify the new content of the R-URI
98
Routing – Loose Routing
A loose router proxy routes according the topmost Route and does not modify the R-URI (if Route
present)
A loose router proxy can insert additional hops to the Route list: Route-pre-loading entity
Pre-loaded Route headers
Route headers inserted to a request, which are not copied/derived from Record-Route header fields
of an earlier request
99
. Routing – Example (Pre-config’d route)
Alice’s UA is pre-configured with the outbound proxy outbound.nokia.com
So, UA inserts a Route-header with the outbound proxy address
10
0
Routing – Example (Proxy R-R-ing)
A Proxy examines route-header and finds out itself, so it removes the route-header
Outbound.nokia.com decides it wants to stay on the path of subsequent requests for this dialog, so it
includes a Record-Route header in the request
Inserts a Via header on top
10
1
Routing – Example (DNS)
Resolver at the outbound proxy
Resolver queries DNS with NAPRT records for vodafone.com
- Answer might look like:
• ;
order pref flags service
regexp replacement
• IN NAPTR 50 50
"s" "SIPS+D2T" ""
_sips._tcp.vodafone.com.
• IN NAPTR 90 50
"s" "SIP+D2T"
""
_sip._tcp.vodafone.com
• IN NAPTR 100 50
"s" "SIP+D2U"
""
_sip._udp.vodafone.com
10
2
A Name Authority Pointer (NAPTR) is a type of resource record used in the DNS.
„s" flag indicates that resulting domain name points to a SRV pointer.
Routing – Example (DNS)
Choosing TCP, an SRV query for _sip._tcp. vodafone.com is performed
- Answer might look like:
• ;;
Priority Weight Port Target
• IN SRV 0
1
5060 server1.vodafone.com
• IN SRV 0
2
5060 server2.vodafone.com
10
3
Routing – Example (DNS)
So, now we have TCP. We still need an IP address and port
DNS A/AAAA record query is performed. IP address and port is returned
Each one of the SRV records is tried starting from the top until one is successful
10
4
Examples – Registration
10
5
. Basic call
Client
Server
10
6
Server
Client
Examples – Basic Call with 100rel
10
7
User Plane Setup
10
8
10
9
11
0
Download