Over and over again I can hear:
Why we need VoLTE, when I can use Skype or Whatsapp (for free)?
What is the difference between native (volte) and non-native client?
Of course, everyone likes applications for free. And it’s a great thing we can use our facebook, skype or google accounts practically on any device and from anywhere. Maybe it’s a bit annoying that in order to communicate using such an Over-The-Top (OTT) application, we have to install the same applications as all our buddies.
By OTT we understand an application for a real-time communication using audio, video, and other media over the Internet without the involvement of a mobile operators’ IMS network. But when it comes to mobility we can’t get along without the operators’ infrastructure completely, we still need them to provide us with the internet connectivity.
OTT and LTE
Skype and other icons are used only for illustration.
There are many aspects and technical details which can’t be covered in this short article. Please, take this post as a brief introduction into the matter.
In February WhatsApp and Gmail joined the 1 billion active user club. Whatsapp also announced that it would waive its yearly $0.99 fee. There are also more and more rumours that WhatsApp will add video calling soon to the application.
At the same time, according to a newly released report from Exact Ventures, the market for WebRTC gateways (product and service revenues) is expected to grow to nearly $900 million in 2020. WebRTC GW are becoming the bridges which can interconnect OTTs, Enterprise solutions and Telcos.
WebRTC GW allows to combine the power of VoLTE with a dedicated information system. Typical example can be a customer care system (e.g. insurance company) connected directly over WebRTC to the end users’ VoLTE handsets. Why the operator should use a handset herself when she can directly see the pictures/videos from your car crash, and the system will store the data along with the call itself in your customer history? Sure there are thousands of other applications starting with health care services and ending with m2m. But the idea remains the same – we want to integrate all communication channels and we want to work with the data later. And this is magnified in the business and industry. According to Exact Ventures even the traditionally consumer-focused web properties like Facebook and WhatsApp are looking to expand their presence in business communications.
RTC is speeding. Do you remember – just a few weeks ago there were 700 million monthly active Whatsapp users. Now it just passed 800 million monthly active users!
Whatsapp is also rolling out with voice calls! That can be a really bad news for operators. Does it mean that everyone will use Whatsapp now? Maybe – I’ve just found a post written by Dan York
Oh, and it’s owned by Facebook! 🙂
Now, I personally don’t use WhatsApp that much right now. The people who I want to message are primarily using iMessage, Facebook Messenger or Wire. (And every once in a great while I’ll fire up Skype on my iPhone.)
But obviously there are 800 million people who do use WhatsApp each month… and they now have free calling! (If they are on Android, iOS or BlackBerry 10… and subject to a staggered rollout, i.e. people will get the actual ability to call over the next while.) It will be fascinating to see how this plays out.
The problem of universal id (WhatsApp, Skype, Viber, telcos …) can be solve already by OAuth and OpenID which are taking over. So the only issue which remains is who will pay the bill at the end 🙂
If you are interested in some technical details and in what has the WhatsApp in common with the WebRTC, you can find an interesting post on https://webrtchacks.com/whats-up-with-whatsapp-and-webrtc/
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:
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
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
Whatsapp is growing and it is growing fast. Just within the last 4 months it gained 100M monthly active users. Additionally, as the founder Jan Koum says on his profile, every day users send over 30 billion messages. What still remains questionable is the business model. But that is a task for Facebook 😉
From the technical point of view the Whatsapp was originally a Jabber server written in Erlang (Ejabberd). The multimedia is sent out-of-the-band via HTTP. Only the thumbnail is encoded in base64. Google push notifications are used on Android.
Jabber or eXtensible Messaging and Presence Protocol (XMPP) was developed by an open source community in 1999 as a standardized alternative to existing Instant Messaging platforms. By design XMPP supports instant messaging, presence and contact list maintenance. But because it is extensible nowadays there is also a support for gaming, social networking, VoiP, file transfer and many other applications. Actually Jingle protocol used by Google is an example of such XMPP extension. Last but not least XMPP extensions are used very much for Mashine-to-Mashine (M2M, IoT) communication. Generally we can say that XMPP is a direct competitor of SIP. Interwoking between XMPP and SIP is possible however the RFC is not finished yet.
Erlang is a special functional programming language designed by Ericsson especially for telecom systems. There were several basic principles which were followed: massive parallelism, soft-real-time, secure memory management. Erlang supports hot swapping of code blocks and tracing of functions. So Erlang is a very good choice if we need to manage many concurrent processes or transactions. Whatsapp is processing > 70M Erlang messages/s.
If you want to know more about the architecture of Whatsapp you can check a great article on http://highscalability.com/blog/2014/2/26/the-whatsapp-architecture-facebook-bought-for-19-billion.html.