IMS Introduction 4
IMS Introduction 4
Introduction IMS
2e
Ulf Spangenberger
Overview 2e
• IMS basics
Basic functionality
Architecture + Interfaces
Subscriber data • VoLTE features
Registration procedure Precondition
Invite procedure Gating
SRVCC
• VoLTE with IMS eSRVCC
EME call
Subscriber data LTE
(emSRVCC)
Registration procedure LTE
Invite procedure LTE
SDP + Codecs
SIP + Routing
Service/Application
voice layer
IMS layer
172.27.132.232
text
Transport layer
IMS
Ic
SIP Mw Cx diameter IMS
SIP
Gm P- I- S-
UE CSCF CSCF CSCF
CSCF
I-BCF BGCF
Mj, Mg
SIP
MGCF
diameter Rx
H.248 Iq
A-BGF • Trigger data path setup • Call routing
PCRF • Security (SBC) • Authentication
• LI • LI
Gx • Charging • Charging
P-GW
Introduction in IMS 5 Ulf Spangenberger
Call control signalling
VoLTE test bed overview User plan traffic HSS/HLR CSCF OpenTAS
PS/UTRAN sign/traffic
Other control traffic FlexiNG NVS/MSS 2e
MGW
GERAN/UTRAN
Uu D 10.200.241.206
10.200.137.3 MSS MAP D MMTEL D
10.200.136.5 HLR-FE MAP MRFC MAP
10.200.136.8/.9
SCC-AS
10.200.50.152
10.200.24.177 Gr Sh IP-SM-GW SMS-C
LDAP
MAP diameter Ut/XCAP
SGSN
10.200.50.154
One-NDS 10.200.50.144
172.24.6.81/.82 ISC
10.200.82.84
SIP MGCF
LDAP 10.200.81.101
I/S/E-CSCF
SGs Sv 10.200.81.164/.166 Cx Mj, Mg
Gn SGSAP GTPv2 BGCF
10.200.81.106 diameter SIP
GTPv1
10.200.81.106
10.200.81.101 10.200.81.101 10.200.136.34/.35
S6a
diameter HSSd-FE
Mw
SIP Mr, Mp
MEGACO
10.200.53.192/27 10.50.45.33 PCRF 10.200.84.71 10.200.81.101 10.200.81.221
10.200.53.208/27 (EME)
10.50.45.49
Ut LDAP Rx Mn
HTTP MME 10.50.45.25
diameter P-CSCF
10.200.84.103 ATCF / EATF
S1-MME S11 10.200.81.135 Iq
Gx
LTE-Uu S1AP GTPv2 Gm MEGACO
10.50.45.49 diameter
10.50.45.209 SIP
10.50.53.192/.193
eNB SGi
10.50.54.66 10.50.54.32 (LB)
10.50.54.33/.34 IP www 10.200.83.19
Mb
IMPU (IP Multimedia PUblic Identity) URI: Uniform resource identifier -> SIP-URI / TEL-URI
sip:<user part>@<host/domain part>
tel:<telefone number>
sip:[email protected]
IMPI (IP Multimedia Private Identity) <any string> used for authentication
derived IMPI = IMPU without „sip:“
[email protected]
Credentials, e.g. password
ConditionTypeCNF: 1 SPT:
SPT ID: 2
SPT: Condition Negated: 0
SPT ID: 0 Group: 2
Condition Negated: 0 SPT Class: SIPHeader
Group: 0 Header: "Content-Type"
SPT Class: SessionCase Content: "application/sdp„
Value: 0 "ORIGINATING SESSION„
SPT:
SPT: SPT ID: 3
SPT ID: 1 Condition Negated: 0
Condition Negated: 0 Group: 3
Group: 1 SPT Class: SessionDescription
SPT Class: Method Line: "body"
Value: "INVITE" Content: "m=(audio|video|image)„
IMPU/IMPI
DNS AS
IMPU1
IMPU2
scscf2 HSSd-FE iFC AS
One-NDS
I-CSCF S-CSCF
I-CSCF S-CSCF
P-CSCF I-CSCF S-CSCF
REGISTER sip:<domain> REGISTER sip:<domain> REGISTER sip:<scscf2>
From: IMPU1
To: IMPU1
P- I- S-
HSS AS
CSCF CSCF CSCF
Select I-CSCF
REGISTER based on DNS
UAR (S-CSCF already assigned?)
REGISTER
UAA
Select S-CSCF
based on config
MAR
REGISTER
MAA (provide credentials)
401 Unauthorized (nonce)
UAR (S-CSCF already assigned?)
REGISTER (auth.header with reponse)
UAA (provide S-CSCF FQDN)
SAR
REGISTER
200 OK
P- I- S-
HSS AS
CSCF CSCF CSCF
LIA (S-CSCF)
200 OK
NOTIFY (event=registered)
200 OK
AS
AS ENUM DNS
Domain based routing
I-BCF
A IMS
P- S-
CSCF CSCF
INVITE A INVITE A
sip:<#>@<domain> sip:<#>@<domain>
From: IMPU-A From: IMPU-A iFC
HSS AS
Cx
OpenTAS External
operator services
operator services
User services
iFC iFC
Incoming
Outgoing
Forced
iFC iFC
nena, transcoding … FEE
iFC
enum, snh, numglob,
GAT, PI, … LoPS
EATF role
ISC
ims/cscf/scscf/
OperatorService Service Control (SC)
nena: National Emergency Number Assiciation LoPS: Local Plugin Service PI: Prefix Insertion numglob: Number Globalization
FEE: Feature Expansion Environment GAT: Global Address Translation snh: Service Number Handling
One- HSSd AS
-FE AS
NDS
Location-Info (LIR/A)
I-
CSCF
S- P-
B
CSCF CSCF
/
INVITE INVITE B INVITE B INVITE
I-BCF
sip:<#>@<valid_domain> sip:<#>@<valid_domain> sip:<contact from REG> sip:<#>@<UE IP>
B iFC
UE-B
IMPU-B pcscf3 IMPU-B scscf4
IP address
iFC
P- S- AS ENUM S- AS P-
I-CSCF HSS
CSCF CSCF A DNS CSCF B CSCF
B
A A B B
INVITE
INVITE
INVITE
ENUM NAPTR
SIP-URI
domain NAPTR
domain IPs
LIR
INVITE
INVITE
INVITE
RINGING
200 OK
ACK
OpenTAS: ATCA based Telefon Application Server ATCF: Access Transfer Control Function
T-ADS: Terminating - Access Domain Selection EATF: Emergency Access Transfer Function
STN-SR: Session Transfer Number – Single Radio PCRF: Policy and Charging Rule Function
eSRVCC: enhanced Single Radio Voice Call Continuity SCC-AS: Service Centralization and Continuity-Application Server
-> MSS
-> OpenTAS
P- I- S- Open
HSS
CSCF CSCF CSCF TAS
Select I-CSCF
REGISTER based on DNS
UAR (S-CSCF already assigned?)
SAE- REGISTER
eNB
GW UAA
3rd party Register
IP1 QCI 9 Select S-CSCF
based on config
IP2 QCI 5 3rd party REGISTER (;DataRepository, Default IMPU)
MAR
MAR HLR
REGISTER
(IMPU = IMSI derived, IPsec -UE)
LTE attach REGISTER UDR (Repository Data)
MAA (provide
MAA (provide credentials)
credentials)
401 Unauthorized
RD
UAR (S-CSCF already assigned?) UDA (SIP-Basic-Data)
REGISTER
RDA (MMTEL)
UAA (provide S-CSCF FQDN)
401 Unauthorized (IPsec – P-CSCF) 200 OK
SAR
REGISTER (IPsec tunnel) REGISTER
200 OK
SAA (provide iFCs, IMPUs)
IPsec 200 OK (P-Associated-URI = MSISDN IMPU
P-Associated-URI = tel-uri) 3rd party REGISTER
200 OK
eNB
SAE- SIP-URI/domain IPs
GW INVITE (IMPU-B)
LIR 200 OK
INVITE
IP1 QCI 9: Data b INVITE (MSRN) get MSRN from HLR
QCI 5: SIP LIA ( S-CSCF FQDN)
IP2 Break out
INVITE
QCI 1: RTP
Dedicated bearer setup INVITE
INVITE
INVITE
RINGING
200 OK (SDP)
AAR
AAR
- Flow descriptor
PCRF (IP address + port) PCRF
- Codec list
- Bandwidth
Gx Rx
Introduction in IMS 23 Ulf Spangenberger
SDP 2e
Requested bandwidth for Destination IP address for
RTP/RTCP RTP/RTCP
Media type
Destination port for RTP
(RTCP = RTP +1)
AMR modes
Precondition attributes
Stream mode directionality
G.711 – (static 8, 0)
• 8kHz / 8bit + no compression => 64 kbit/s
• used for ISDN and VoIP in fixed line environment
• good voice quality (MOS = 4,4)
AMR (Adaptive Multirate Codec) – (dynamic)
• 8kHz / 13bit
• 4,75 – 12,2 kbit/s
• bit rate according to radio quality
• used in GSM and UMTS
• 12,2 kbit/s mode ≈ G.711
AMR-WB (AMR-Wide band) – (dynamic)
• 16kHz / 14bit
• 6,6 – 23,85 kbit/s
• 12,65 kbit/s mode ≈ G.722 with 56 kbit/s (MOS = 4,5)
• lower modes for bad radio conditions
• higher modes for background noise environment,
combined voice and music
• G.722.2
OpenTAS: ATCA based Telefon Application Server ATCF: Access Transfer Control Function
T-ADS: Terminating - Access Domain Selection EATF: Emergency Access Transfer Function
STN-SR: Session Transfer Number – Single Radio PCRF: Policy and Charging Rule Function
eSRVCC: enhanced Single Radio Voice Call Continuity SCC-AS: Service Centralization and Continuity-Application Server
INVITE (SDP)
RINGING
BYE BYE
200 OK (SDP)
SAE-
eNB
GW
AAA
Data: QCI 9
SIP: QCI 5
RTP: QCI 1
• Precondition: a set of constraints that must be fulfilled before the user is alerted (rfc3312)
• new SDP attributes
curr (current status), des (desired status), conf (confirmation status)
• Offer/Answer message flow
A -> B
Initial INVITE (SDP) Delay ringing
A B until curr=des
for A
200 OK (SDP)
Ringing
INVITE (SDP)
183 Session progress (SDP)
AAR/A AAR/A
PCRF PCRF
PRACK (Session progress)
200 OK (PRACK)
QCI 1
200 OK (Update, SDP)
AAR/A AAR/A
PCRF PCRF
RINGING
200 OK (Invite)
AAR/A AAR/A
PCRF PCRF
ACK
OpenTAS: ATCA based Telefon Application Server ATCF: Access Transfer Control Function
T-ADS: Terminating - Access Domain Selection EATF: Emergency Access Transfer Function
STN-SR: Session Transfer Number – Single Radio PCRF: Policy and Charging Rule Function
eSRVCC: enhanced Single Radio Voice Call Continuity SCC-AS: Service Centralization and Continuity-Application Server
Early media:
Gating OFF
(RTP before 200 OK)
RINGING
200 OK (SDP)
ACK
INVITE (SDP)
183 Session Progress (SDP)
AAR/A AAR/A
RTP
Gating ON
Gating =
ON/OFF
AAR/A
AAR/A AAR/A
AAR/A
Flow-status: enabled
AAR/A AAR/A
183 Session progress (P-Early-Media = Inactive, gated; SDP)
PCRF PCRF
PRACK (Session progress)
AAR/A AAR/A
PCRF PCRF
RINGING
no MM
200 OK (Invite)
AAR/A AAR/A
PCRF PCRF
ACK
Gating Gating (access Flow status in: Flow status in: Gating result
networks) - 183 session progress - 200 OK (final)
- Update
INGRESS INGRESS
E1 E2
P-CSCF
E2 E1
EGRESS EGRESS
reinsert.xml
<clist>
<manipulation>
<name>Remove received PEM header</name>
<rule>
<remove>
<path-what>/response/header[@name=’P-Early-Media’]</path-what>
</remove>
</rule>
</manipulation>
<manipulation> MmConfigClist.sh
<name>Insert PEM header with inactive value</name> –p
<rule> –add /home/mm/reinsert.xml
<add>
<path-where>/response</path-where>
<path-what>./header[@name=’P-Early-Media’]</path-what>
<value>inactive</value>
</add>
</rule>
</manipulation>
</clist>
provisional
responses (1xx)
Final response (2xx, 3xx, 4xx, 5xx, 6xx) SIP dialog
• Syntax: start-line/header/[body]
• Private header -> flexible
Sequence number
SIP header
Route:
IP source = mobile IP IP source = P-CSCF IP Via:
IP destination = P-CSCF IP IP destination = S-CSCF IP Contact:
Record-Route:
?
RINGING / 200OK
Contact-B
Dialog-ID
Via: proxy-C
Via: proxy-A
Via: UE-A
Via: proxy-C
Record-route: sip:proxy-C
Via: proxy-A
Via: proxy-C Record-route: sip:proxy-A
Via: UE-A
Via: proxy-A Contact: sip:UE-B
Record-route: sip:proxy-C
Via: UE-A Record-route: sip:proxy-A
Record-route: sip:proxy-C Contact: sip:UE-B
Record-route: sip:proxy-A
Contact: sip:UE-B
Invite
P- S- I- S- P-
CSCF CSCF CSCF CSCF CSCF
A A B B B
UE-A UE-B
Via:
Record-Route:
Open Open
TAS TAS Invite
P- S- I- S- P-
CSCF CSCF CSCF CSCF CSCF
A A B B B
UE-A UE-B
SIP Dialog 2
AS AS
B2BUA B2BUA
P- S- I- S- P-
CSCF CSCF CSCF CSCF CSCF
A A B B B
AS AS
P- S- I- S- P-
CSCF CSCF CSCF CSCF CSCF
A A B B B
UE-A UE-B
PCRF PCRF
OpenTAS: ATCA based Telefon Application Server ATCF: Access Transfer Control Function
T-ADS: Terminating - Access Domain Selection EATF: Emergency Access Transfer Function
STN-SR: Session Transfer Number – Single Radio PCRF: Policy and Charging Rule Function
eSRVCC: enhanced Single Radio Voice Call Continuity SCC-AS: Service Centralization and Continuity-Application Server
SIP Dialog 2
SIP Dialog 1 Open Open SIP Dialog 3
TAS TAS
Update B-side
UE-A UE-B
P- S- I- S- P-
CSCF CSCF CSCF CSCF CSCF
A A B B B
SIP Dialog 3
MSS
MGW
Open Open
HSS
TAS TAS
UE-A UE-B
P- S- I- S- P-
CSCF CSCF CSCF CSCF CSCF
A A B B B
MSS
INVITE (tel:+<OpenTAS-STN-SR>)
LIR (OpenTAS-STN-SR)
PSI user - OpenTAS
Update A-BGF LIA (OpenTAS-SIP-URI)
INVITE (tel:+<OpenTAS-STN-SR>)
CMN Active
INVITE (Updated SDP)
200 OK Forward new SDP to remote side
200 OK
BYE
Release old call leg
OpenTAS: ATCA based Telefon Application Server ATCF: Access Transfer Control Function
T-ADS: Terminating - Access Domain Selection EATF: Emergency Access Transfer Function
STN-SR: Session Transfer Number – Single Radio PCRF: Policy and Charging Rule Function
eSRVCC: enhanced Single Radio Voice Call Continuity SCC-AS: Service Centralization and Continuity-Application Server
SIP Dialog 2
SIP Dialog 1 Open Open SIP Dialog 3
TAS TAS UE-B
Update B-side
UE-A
P-
P- S- I- S-
CSCF
CSCF CSCF CSCF CSCF
B/
A A B B
ATCF
A-BGF
P-GW A-BGF P-GW
ATGW
SIP Dialog 4
MSS
MGW
Open Open
HSS
TAS TAS
UE-A UE-B
P-
P- S- I- S-
CSCF
CSCF CSCF CSCF CSCF
B/
A A B B
ATCF
MSS
INVITE (tel:+<ATCF-STN-SR>)
LIR (ATCF-STN-SR)
PSI user - ATCF
LIA (ATCF-SIP-URI)
INVITE (tel:+<ATCF-STN-SR>)
Update ATGW
200 OK
P- ATCF I- S- Open
HSS
CSCF CSCF CSCF TAS
BC : BGW table
OpenTAS: ATCA based Telefon Application Server ATCF: Access Transfer Control Function
T-ADS: Terminating - Access Domain Selection EATF: Emergency Access Transfer Function
STN-SR: Session Transfer Number – Single Radio PCRF: Policy and Charging Rule Function
eSRVCC: enhanced Single Radio Voice Call Continuity SCC-AS: Service Centralization and Continuity-Application Server
INVITE urn:service:sos
INVITE urn:service:sos.fire
INVITE urn:service:sos.police
INVITE urn:service:sos.<…>
* Recommended to
a.) reject by IMS to force UE to perform detected EME
b.) handle via S-CSCF to provide SRVCC service
Open
TAS
UE-B = PSAP SIP Dialog 2
SIP Dialog 1 UE-A
S-
E- P-
MGCF EATF
CSCF CSCF
Update B-side
Public Safety
Answering Point MGW A-BGF P-GW
E-STN-SR
MSS
MGW
HSS
EATF
UE-A
I- E- P-
MGCF CSCF CSCF CSCF
A A A
MSS
INVITE (tel:+<E-STN-SR>)
LIR (E-STN-SR)
PSI user - EATF
LIA (EATF-SIP-URI)
INVITE (tel:+<E-STN-SR>)
INVITE
Forward new SDP to remote side
200 OK 200 OK
BYE
Release old call leg
200 OK
P- I- S- Open
HSS TAS
CSCF CSCF CSCF
Select I-CSCF
REGISTER based on DNS
UAR (S-CSCF already assigned?)
REGISTER
SAE- UAA
eNB
GW Select S-CSCF
based on config
IP1 QCI 9
MAR
IP2 QCI 5 REGISTER only IMS AKA and
TlsDigestAkaV2 allowed
MAA (provide credentials)
IP3 401
QCIUnauthorized
5
REGISTER UAR (S-CSCF already assigned?)
REGISTER
(IMSI derived IMPU,
contact: sos) UAA (provide S-CSCF FQDN)
SAR
LTE attach REGISTER
200 OK
SAA (provide iFCs, add. IMPUs)
200 OK (P-Associated-URI = MSISDN IMPU
P-Associated-URI = IMSI derived IMPU 3rd party REGISTER
P-Associated-URI = tel-uri)
200 OK
200 OK (SDP)
Gx
AAA SAE-
ACK eNB
GW
AAR
- Flow descriptor IP1 QCI 9: Data
(IP address + port)
- Codec list IP2 QCI 5: SIP
PCRF - Bandwidth
- Service-URN = sos IP3 QCI 5: SIP
Gx Rx QCI 1: RTP
Dedicated bearer setup
Introduction in IMS 71 Ulf Spangenberger
Invite message flow, VoLTE EME, details 2e
Message Manipulation
sos -> 911 SectorID table + PANI: To: 110 => replace 911->110 in R-URI
sos.police -> 110 => PSAP = <TAI> + 911 To: 112 => replace 911->112 in R-URI
sos.fire -> 112
911 INVITE: urn:service:sos INVITE: sip:911@<IMS domain> INVITE: sip:<TAI>911@<IMS domain> INVITE: sip:<TAI>911@<MGCF>
To: urn:service:sos To: sip:911@<IMS domain> To: sip:911@<IMS domain> To: sip:911@<IMS domain>
PANI: PANI: PANI: PANI:
110 INVITE: urn:service:sos.police INVITE: sip:110@<IMS domain> INVITE: sip:<TAI>911@<IMS domain> INVITE: sip:<TAI>110@<MGCF>
To: urn:service:sos.police To: sip:110@<IMS domain> To: sip:110@<IMS domain> To: sip:110@<IMS domain>
PANI: PANI: PANI: PANI:
112
INVITE: urn:service:sos.fire INVITE: sip:112@<IMS domain> INVITE: sip:<TAI>911@<IMS domain> INVITE: sip:<TAI>112@<MGCF>
To: urn:service:sos.fire To: sip:112@<IMS domain> To: sip:112@<IMS domain> To: sip:112@<IMS domain>
PANI: PANI: PANI: PANI:
P-CSCF:
E-CSCF
iFC for LRF: 911 -> PSAP
( SectorID table
(SipMethod == "INVITE") AND instr, sectorid, psap, LLLL_8yy, MSC_8yy, NPA_411, PPPP_411, MSC_411, ENSP,
(SipHeader == "IsEmergency") AND psap_cap, ECRC, cellformat
a, 5551030390001D03, sip:[email protected], , , , , , , , , E
(SipHeader == "Contact","urn\:gsma\:imei\:([-0-9]+)") a, 5551010220019D01, sip:[email protected], , , , , , , , , E
)
(
(SipMethod == "INVITE")
) (
AND (SipMethod == "INVITE")
( )
(SipHeader == "IsEmergency") AND
) (
AND (SipHeader == "IsEmergency")
( )
(SipHeader == "To","sip:110") AND
) (
(SipHeader == "To","sip:112")
)
BACKUP
Subscriber provisioning:
- HSSd
- ENUM (E.164 NUmber Mapping): Translation of E.164 numbers to an URI, i.e. SIP-URI
Signalling
Data