This is an emergency!

I used to enjoy the feeling to be for two weeks in the mountings skiing or canoeing down the river and not to know anything about what happens in the world, without a weather forecast and without knowing about my friends and family. That’s what I call relaxation ūüėȬ†Mobile phones changed our behavior significantly. We’re always reachable and we never ever really switch off unless there is no signal. ¬†When there is no signal we start to feel uneasy – we can’t call and what if anything happens?

Mobile communication changed our way how we act in case of emergency and also its effectiveness. Emergency crews can get on scene much faster, have more information and can update emergency centers with the latest development. It is even possible to provide so called assisted first aid. On the other hand people rely sometimes on mobiles a bit too much.

‚ÄěZZS KV, KZOS v Jihlavńõ (01)‚Äú od Radim HoliŇ°, Wikimedia Commons. Licensed by CC BY-SA 3.0 cz via Wikimedia Commons

 

To support emergency calling is one of the basic requirements for VoLTE. When we need to reach a Public Safety Answering/Access Point (PSAP) or Emergency Control/Communication Centre (ECC), the common VoIP is not enough. That’s why we have some new elements in the IMS network. The relevant standards are¬†RFC 5031,¬†3GPP TS 24.229 and TS 23.167.

Continue reading

eSRVCC – Mind the coverage hole!

There are two big enemies of mobile communication. Weak signal and battery drain. With the LTE technology in place we need to deal with the situation when our signal gets too weak. The higher frequencies have a problem to penetrate walls, currently the radio network is not covering whole country yet, etc.. ¬†these problems seems to be only temporary (as the LTE is moving forward) but at this point of time we can’t rely on the LTE network only. When we are out of 4G coverage¬†while we are not calling we’ll simply fallback to CS network and VoLTE supports CS breakout or CS retry so our voice service is still working.

But what if it happens during an ongoing call? Can we handover and still maintain the session? It is possible but not easy as because of the battery drain we can access only one radio network at the time. What we are looking for is called enhanced Single Radio Voice Call Continuity (eSRVCC) and it is described in the GSMA IR.64 and ETSI TS 124 237. (SRVCC is applied during PS to CS access transfer in a single radio system from LTE to 3G/2G. For devices that support active WiFi, and 3G/2G and LTE dual radio, the enhanced Dual Radio Voice Call Continuity (eDRVCC) is applied.)

eSRVCC call flow is probably one of the most complex flows you can encounter in VoLTE. Read firstly about the basic flows VoLTE in IMS. In case of doubts or when more scenarios/details needed please refer to the spec.

To allow this functionality we need to add some more IMS elements in the network:

Access Transfer Control Function (ATCF)

ATCF acts as SIP signalling anchor and is located in the SIP signalling path between P-SCSF and S-CSCF. Very often it is part of the SBC. ATCF controls the ATGW, where the media plane is anchored. During the session transfer, the ATCF establishes a new session with the SCC AS. This new session substitutes the old session between the ATCF and the SCC AS.

Access Transfer Gateway (ATGW)

The ATGW anchors the media session.

Service Centralization and Continuity Application Server (SCC AS)

The SCC AS anchors originated and terminated sessions when using the PS or CS access. It is also responsible for the Terminating Access Domain Selection (T-ADS).

SRVCC

IMS Architecture for eSRVCC

 

Continue reading

WebRTC and IMS

WebRTC Рwhat a great technology! The simple technologies are the best. Thank you Google for open-sourcing it! Now the WebRTC is a part of the Mobile Web Initiative/HTML5  driven by W3C.

Some technologies that were originally defined in Mobile Web Initiative are now defined in separate specifications. The WebRTC is one of them:

Web Real-Time Communication –¬†WebRTC is introducing¬†real time communication as a¬†standard¬†web capability. In the past (just 2-5 years ago!) to create a conferencing or helpdesk solution costed a lot. Now all you need is a few pages of JavaScript (http://www.html5rocks.com/en/tutorials/webrtc/basics/#toc-tldr). In the near future we can just add¬†some plugins in Joomla or WordPress and that will be all.

How is it possible? That’s because the most of the work was already done by developers of web browsers. Just try¬†https://appear.in/realtimecommunication.

HTML5 ready browsers provide API to enable

  • Chat
  • Voice and Video calling
  • File sharing

as a standard content Рso without plugins.

Well it’s nice, it’s working (although still in progress). WebRTC is being used by Google in their google hangout, most probably Amazon Mayday for Kindle Fire is based on WebRTC and many smaller players are following. For an enterprise business is this technology priceless.¬†There are also some great solutions created with help of WebRTC which are focused also on other devices¬†e.g.

Fluke Connect tm

or

Net Medical Xpress tm

 

So why we just don’t throw away all that uselessly complex stuff of IMS, VoLTE and (on the first place) RCS?

Continue reading

A magic box called SBC

It is a part of nearly each IMS deployment. Session Border Controller. As the name indicates it sits on a border. A border between two networks. SBC is a controller so it controls all the traffic (both signalling and media) going through.  So far so good. But what is really the SBC? What standards we can find? Where is some detail description of the SBC internal architecture? Sure, there are plenty of specs which are somehow describing the role of SBC. The basic one describing SBC is the RFC 5853.

SBC in VoLTE

SBC in VoLTE

The meaning of SBC has changed over the last 15 years significantly. We can say that SBCs are solving the problems which are not addressed by other IMS elements Рproblems with multiple access networks (e.g. IPv4 and IPv6, SIP normalization, VPNs..), security issues (DOS attacks, topology hiding, ..), legislative issues (emergency calls, legal intercept, interworking,..), media related problems (QoS, transcoding, media security,..). And of course, the number of these problems and issues which need to be solved is increasing. So what is the SBC now? As an SBC we understand a network element which is implementing following functionalities:

  • Security:
    • Malicious attacks such as a denial-of-service attack (DoS) or distributed DoS
    • Toll fraud via rogue media streams
    • Topology hiding
    • Malformed packet protection
    • Encryption of signaling (via TLS and IPSec) and media (SRTP)
  • Connectivity:
    • NAT traversal
    • SIP normalization via SIP message and header manipulation
    • IPv4 to IPv6 interworking
    • VPN connectivity
    • Protocol translations between SIP, SIP-I, H.323
    • Access Transfer
  • Quality of service ‚Äď the QoS policy of a network and prioritization of flows is usually implemented by the SBC. It can include such functions as:
    • Traffic policing
    • Resource allocation
    • Rate limiting
    • Call admission control
    • ToS/DSCP bit setting
  • Regulatory ‚Äď many times the SBC is expected to provide support for regulatory requirements such as:
  • Media services ‚Äď many of the new generation of SBCs also provide built-in digital signal processors (DSPs) to enable them to offer border-based media control and services such as:
    • DTMF relay and interworking
    • Media transcoding
    • Tones and announcements
    • Data and fax interworking
    • Support for voice and video calls
  • Statistics and billing information
  • ¬†WebRTC Gateway

(source Wikipedia)

Continue reading

VoLTE – close encounters

If you know a bit about SIP and IMS you are probably aware that they are quite flexible. There are many ways how to do some solution and different vendors can easily come up with different implementation for the same thing.

In trainings people are asking very often – is this SIP message mandatory, what will happen if our client will not support this feature, what header attribute is the right one to identify xyz?

Well we have a huge number of specifications (from different organizations and bodies as 3GPP, IETF, OMA, GSMA, …).¬†To avoid the confusion for VoLTE service GSMA created (yes another) document called¬†VoLTE Service Description and Implementation Guide. This is not a classical spec, rather a guide what are the exact call flows and what message fields are relevant for the VoLTE.

We already know the registration from other posts (Registration, How to read tcpdump РRegistration, Third party registration, Sh, ..). In the VoLTE the flow looks like this:

VoLTE registration

VoLTE registration

Continue reading

P-Early-Media – You are running low on credit!

Have you ever thought about how this simple announcement works? Most of the (IMS aware) people believe¬†that in order to establish a media session an UAC (originator’s handset) has to send the SIP ACK. This is true as long as we don’t need to inform the originator before the real voice or video call is established – e.g. running low on credit, informing about calling into foreign network, playing customized ring back tones etc.

In order to achieve this functionality the RFC 3960 introduced a concept of Early Media. The basic call can look like this:

Early Media

Early Media

In general this early media can be generated by caller, callee or both. In case that B2BUA is present – which is the case of TAS in VoLTE, the B2BUA can establish the Early Media session too.

Continue reading

It is about quality!

One of the marketing reasons why one should prefer VoLTE instead of common VoIP is the Quality of Service. The framework for Policy and Charging Control is described in its own post.¬†Here we’ll focus QoS support in SIP/SDP protocols. Note that this post goes in details and expects that you’re familiar with SIP/SDP session negotiation procedure. When we want to support QoS during the session negotiation we need to add so-called preconditions in the SIP INVITE:

Require: precondition

The details can be found in the RFC 4032 and RFC 3312. The preconditions can be of several types as  qos, connectivity or security. In order to support QoS there are dedicated fields in SDP:

 
      current-status     =  "a=curr:" precondition-type
                            SP status-type SP direction-tag
      desired-status     =  "a=des:" precondition-type
                            SP strength-tag SP status-type
                            SP direction-tag
      confirm-status     =  "a=conf:" precondition-type
                            SP status-type SP direction-tag
      precondition-type  =  "qos" | token
      strength-tag       =  ("mandatory" | "optional" | "none"
                         =  | "failure" | "unknown")
      status-type        =  ("e2e" | "local" | "remote")
      direction-tag      =  ("none" | "send" | "recv" | "sendrecv")

The logic is very simple. Each participant will define whether he/she has some desired status he/she wants to reach. Then during the SDP offer/answer negotiation they are simply checking if the current state >= desired state. Continue reading

VoLTE in IMS

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:

VoLTE network architecture – simplified

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.

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.

  • Telephony Application Server (TAS)¬†
    • The application server responsible for all the services as address normalization, call diverting, call forwarding, barring, etc.
    • In a nutshell TAS is what makes the VoLTE enhancements on top of the¬†pure VoIP.

VoLTE specification also defines SMS interworking. To support SMS over SIP we have a dedicated Application Server called IPSMGW. In more detail it is described in IPSMGW РTransport Level Interworking post.

IMS Core and Application Servers don’t have any persistent storage. All the information about subscribers and their services is stored in HSS (Home Subscriber Server). The communication between HSS and I/S-CSCF or TAS makes use of Diameter protocol.

Other IMS elements are:

  • MRF – Media Resource Function
    • Can be used as a media mixer or as a media server for playing of tones and announcements.
  • MGCF – Media Gateway Control Function
    • MGCF is used for the breakout to and from CS network. Usually the MGCF and MGW – Media GW is a part of enhanced MSC.
  • BGCF – Breakout Gateway Control Function
    • BGCF might be used in case when S-CSCF is not able to find the routing based on ENUM/DNS (e.g. PSTN number). Usually it is a part of IMS Core (along with S-CSCF and I-CSCF).

The IMS definition is very broad and flexible. GSMA VoLTE standard restricts it and defines what services are mandatory and how we should implement them. E.g. it defines how to implement Emergency Services, SRVCC, Roaming, SMS interworking, etc. In our post we will go through the basic LTE to LTE callflow.

 

Continue reading