Voicelte
Voicelte
The year 2015 is definitely a year of VoLTE. VoLTE is everywhere and operators are rolling
out as crazy. There are plenty of articles describing how the LTE or LTE-A do work. We’ll put
the LTE Packet Core part aside and take a look on the IMS related VoLTE architecture and
VoLTE flows.
Voice over LTE service specified in GSMA IR.92. If you think it seriously with VoLTE, don’t
waste your time on any blog and read the VoLTE Service Description and Implementation
Guide. On the other hand real beginners can try our VoLTE Illustrated: Beginners Guide.
The very basic architecture of IMS for VoLTE can look like this:
During the LTE attach procedure VoLTE client receives IP address of P-CSCF.
P-CSCF (Proxy Call Session Control Function)
An entry point for IMS signalling. It is directly connected to the
VoLTE device (UE) over SIP protocol.
P-CSCF maintains the security associations between itself and the UE.
The P-CSCF is usually a part of A-SBC.
A-SBC (Access Session Border Controller)
Provides connectivity for two or more IP networks, including IPv4 and
IPv6 interworking, NAT traversal, etc.
Implements Security features, e.g. DoS, DDoS attack prevention,
Topology Hiding, Encryption, CAC, ..
Communicates with access network (e.g. LTE) and is responsible for
QoS
Handles Media Services, provides transcoding if needed
For the end-2-end signalling (voice call setup) we use SIP protocol. The multimedia then goes
out-of-band using RTP protocol.
Advertisement
The heart of IMS network is IMS Core. It consists of often collocated I/S-CSCF, which cares
about authentication, session routing and management.
I-CSCF (Interrogating Call Session Control Function)
I-CSCF provides a Location service. That means that for each
subscriber (or public service) I-CSCF is able to locate the right S-
CSCF.
I-CSCF also represents IMS network to peers. E.g. for peer networks
the I-CSCF is the first point of contact.
S-CSCF (Serving Call Session Control Function)
The S-CSCF is responsible for basic IMS services. It is a SIP server
providing session set-up, session tear-down, session control and
routing functions.
S-CSCF acts as SIP Registrar – stores the binding between Public User
Identity (e.g. sip uri or tel uri) and its actual point of presence (Contact
IP address) and maintains user registration status. During VoLTE
registration procedure S-CSCF performs user authentication.
S-CSCF also invokes Application Servers (TAS, IPSMGW) based on
rules (IFCs) received from the HSS.
The IMS Core however doesn’t know anything about Voice or SMS service. That is a task for
Application servers. The Application Server for voice and video telephony is called TAS –
Telephony Application Server or MMTel AS – Multimedia Telephony AS.
What particular services will be applied is driven by the configuration of a TAS/MMTel and by
subscriber and non-subscriber data which is stored in HSS.
Before a subscriber can place or receive any call, he has to register himself in the IMS network.
We went through the registration in several posts (Registration, How to read tcpdump –
Registration). Once the user is successfully registered, the S-CSCF is able to route the incoming
calls to the user. This S-CSCF also knows which TAS did the 3rd party registration and
maintains a binding between the IMPU (public user identity) and the TAS. This information is a
part of the user’s context.
When a subscriber (Johan) wants to initiate a new call he sends a SIP INVITE message to the
recipient (Rory). The basic flow looks like this:
VoLTE SIP signalling
VoLTE subscribers use SIP protocol in order to negotiate the parameters of a multimedia (RTP)
session. The SIP signalling also allows the IMS network to secure sufficient resources for the
requested Quality of Service.
In IMS the SIP INVITE message is firstly sent to P-CSCF which was assigned to the user during
the registration. The P-CSCF has a binding with the S-CSCF which is responsible for the
originator.
The S-CSCF routes the SIP INVITE to the O-TAS which applies originating services (e.g.
Outgoing Call Barring, triggering of playing announcements, Conferencing, etc.) and can modify
the recipient’s address (based on translation rules, ENUM response, CAMEL triggering,
etc.) Remember that TAS acts as a B2BUA and can change any SIP header including the Call-
ID.
From O-TAS the SIP INVITE is sent back to the S-CSCF of the originator. The S-CSCF finds a
routing to the network of the recipient (e.g. with help of DNS or ENUM). In our case (recipient
is registered in IMS) S-CSCF forwards the message to I-CSCF in the terminating network.
I-CSCF will locate the S-CSCF which handles the context for the recipient. S-CSCF triggers T-
TAS for terminating services (e.g. Incoming Call Barring, Call Forwading, etc.)
Finally the T-TAS forwards the SIP INVITE to the S-CSCF of the recipient. The S-CSCF knows
which P-CSCF maintains a dialog with the recipient.
When the recipient receives the SIP INVITE he will respond and the response backtracks all the
way to the originator.
VoLTE Call Flow (LTE-LTE Call)
Please note, so far we have been talking about logical flow. Physically the O-TAS and T-TAS
can be just one server (e.g. originator and recipient are both registered on the same S-CSCF,
using the same A-SBC).
VoLTE Flow on one site
SIP routing of VoLTE call in IMS is in more details discussed in SIP Illustrated 5: SIP
Session Routing.
In order to establish the media path the body of the SIP INVITE and other signaling messages
carries Session Description Protocol (SDP) data.
v=0
Via SDP the originator and recipient exchange IP addresses (223.112.161.118) and ports (23448)
for the media stream (RTP) and sets of supported codecs (AMR-WB, AMR, DTFM – telephone-
event,..). There are many more parameters, for now it is important that once originator and
recipient know the IP:Port and codecs to be used, they can start to communicate over the RTP
protocol.
SDP Exchange
Later when one of the call parties wants to close the RTP stream (hang-up), the client sends a
SIP BYE message. After the 200 OK response the session is finished.
Maybe you ask why is the signalling so complex? That is because the IMS is very general. E.g.
in case of roaming this simple scenario can go across four different IMS networks:
VoLTE Call with Roaming
Although currently nearly no operators support IMS-based roaming and mostly they are not
connected to any other IMS networks at all, still the network architecture can be quite
complicated. Operators have multiple sites and there can be several different types of sites (E.g.
Access site, Core IMS site, Maintenance Site, Failover Site, RCS Site, …)
VoLTE architecture for multiple sites.
Now we know the very basic LTE-LTE flow. More detail information about VoLTE are
described in VoLTE flows – close encounters.
SIP headers and routing is then explained in SIP Illustrated: SIP by sip.
Basic VoLTE validation procedures are described at Validating VoLTE document.
Other posts related to VoLTE:
VOLTE
ARCHITECTURE
IMS :