2nd and 3rd generation of telecommunication

Although the history of telecom evolution begins with PSTN and switches we shall oit them as they are truly legacy now .  We have seen the evolution of second to third generation of telecom most recently .  Where 2 G is referred to as the GSM era  , 2.5 G as the GPRS with GSM era . The following two diagram denote the service operators architecture nodes in both these times .

Note that in pure 2G there was only circuit switched communication services .


The advent 2.5 G bought packet switching for data access along with existing circuit switching for voice network .


Note that the processes such as billing etc had begun merging for both the circuit switched and packet switched networks .

However as the mobile became smarted and hungry for faster internet , it bbecame necessary to bring in faster speed and hence was born 3G. . Now 3G was further succeeded by 3.5G ( HSPA – High Speed Downlink Packet Access ) eventually 4G ( LTE Long Term Evolution ) as we can see now but that is another story .

Difference between WebRTC and plugin based communication

A lot of service providers ie telecom operators had deduced their own ways to provide Web based communication even before WebRTC was born . With time , as WebRTC has become stronger , more secure , resilient to failure they have come around to migrate their existing system from previous closed box native APIs to opensource WebRTC APIs.

The first figure ( given below ) depicts a communication platform build over plugins and proprietary APIs using HTTP REST based signaling .

Web Communication Service Architecture over HTTP/ REST API

As the migration took place the proprietary API components were replaced by Open standard based entities such as plugins were replaced by WebRTC APIs, HTTP REST based signalling was replaced by SIP ( Session Initiation Protocol ) .

Web Communication Service Architecture over WebRTC SIP
Web Communication Service Architecture over WebRTC SIP

Note telecom operator network did not had to face transformation by integration of WebRTC elements .

Interoperability between WebRTC , SIP phones and softphones

What is the role of SIP server ?

SIP Server convert the SIP transport from WebSocket protocol to UDP, TCP or TLS which are supported by all legacy networks. It also facilitates the use of rich serves such as phonebook synchronisation , file sharing , oauth in client .

How does WebRTC Solution traverse through FireWalls ?

NAT traversal across Firewalls is achieved via TURN/STUN through ICE candidates gathering .Current ice_servers are : stun:stun.l.google.com:19302 and  turn:user@numb.viagenie.ca

What audio and video codecs are supported by WebRTC client side alone ?

Without the role of Media Server WebRTC solution supports Opus , PCMA , PCMU for audio and VP8 for video call.

RTCBreaker if enabled provides a third party B2BUA agent that performs certain level of codec conversion to H.264, H.263, Theora or MP4V-ES for non WebRTC supported agents.

What video resolution is supported by WebRTC solution ?

The browser will try to find the best video size between max and min based on the camera capabilities.

Options are : sqcif | qcif | qvga | cif | hvga | vga | 4cif | svga | 480p | 720p | 16cif | 1080p

We can also predefine the video size such as minWidth, minHeight, maxWidth, maxHeight.

What bandwidth is required to run WebRTC solution ?

We can set maximum audio and video bandwidth to use or use the browser’s ability to set it hy default at runtime . This will change the outgoing SDP to include a “b:AS=” attribute. Browser negotiates the right value using RTCP-REMB and congestion control.

List of Web based SIP clients

SIPML5 client by Dubango


Telestax WebRTC client


SIPJS with flash network support



MIT license 2014-02-09_1444

SIP phones in Ubuntu / Linux

SFL phone

linux sfl 2
linux sfl 1

Yate SIP phone

linux yate 2
linux yate 1


There are ready made build of Linphone for Windows , Mac and Mobile


Aletrnatively one can also build the Linphone from source

Installation of Linphone v4.1 for Desktop

apt-get install libqt53dcore5:amd64 libqt53dextras5:amd64 libqt53dinput5:amd64 libqt53dlogic5:amd64 libqt53dquick5:amd64 libqt53dquickextras5:amd64 libqt53dquickinput5:amd64 libqt53dquickrender5:amd64 libqt53drender5:amd64 libqt5concurrent5:amd64 libqt5core5a:amd64 libqt5dbus5:amd64 libqt5designer5:amd64 libqt5designercomponents5:amd64 libqt5gui5:amd64 libqt5help5:amd64 libqt5multimedia5:amd64 libqt5multimedia5-plugins:amd64 libqt5multimediawidgets5:amd64 libqt5network5:amd64 libqt5opengl5:amd64 libqt5opengl5-dev:amd64 libqt5positioning5:amd64 libqt5printsupport5:amd64 libqt5qml5:amd64 libqt5quick5:amd64 libqt5quickcontrols2-5:amd64 libqt5quickparticles5:amd64 libqt5quicktemplates2-5:amd64 libqt5quicktest5:amd64 libqt5quickwidgets5:amd64 libqt5script5:amd64 libqt5scripttools5:amd64 libqt5sensors5:amd64 libqt5serialport5:amd64 libqt5sql5:amd64 libqt5sql5-sqlite:amd64 libqt5svg5:amd64 libqt5svg5-dev:amd64 libqt5test5:amd64 libqt5webchannel5:amd64 libqt5webengine-data libqt5webenginecore5:amd64 libqt5webenginewidgets5:amd64 libqt5webkit5:amd64 libqt5widgets5:amd64 libqt5x11extras5:amd64 libqt5xml5:amd64 libqt5xmlpatterns5:amd64 qt5-default:amd64 qt5-doc qt5-gtk-platformtheme:amd64 qt5-qmake:amd64 qt5-qmltooling-plugins:amd64

Besdies these dont foeget to also install pip and pystache which is a templating system

sudo apt install python-pip
pip install pystache

And Doxygen which d tool for generating documentation from annotated C++ sources

apt install doxygen

Yasm assembler

sudo apt install yasm


sudo apt-get install -y v4l-utils

Get source Code

git clone https://gitlab.linphone.org/BC/public/linphone-desktop.git --recursive

To build without video or v4l support

sudo cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_V4L=0

The run build

sudo cmake --build . --target all




CMakeFiles/EP_ms2.dir/build.make:118: recipe for target '/home/altanai/linphone-desktop/WORK/WORK/desktop/Stamp/EP_ms2/EP_ms2-configure' failed
make[8]: *** [/home/altanai/linphone-desktop/WORK/WORK/desktop/Stamp/EP_ms2/EP_ms2-configure] Error 1
CMakeFiles/Makefile2:115: recipe for target 'CMakeFiles/EP_ms2.dir/all' failed
make[7]: *** [CMakeFiles/EP_ms2.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make[6]: *** [all] Error 2


[ 57%] Performing configure step for 'EP_ms2'
loading initial cache file /home/altanai/linphone-desktop/WORK/WORK/desktop//tmp/EP_ms2/EP_ms2-cache-RelWithDebInfo.cmake
CMake Error at CMakeLists.txt:322 (message):
Could not find a support sound driver API. Use -DENABLE_SOUND=NO if you
don't care about having sound.

Install sound drivers

sudo apt-get install libpulse-dev pulseaudio libasound2-dev pavucontrol alsa-lib 

Failing on MS compilation on Performing configure step for ‘EP_ms2

Ref :

Windows Operating system SIP software

Xlite is well known SIP softphone for windows dessktop

xlite 1

Xlite new version


Kapanga SIP softphone

It is also runnable on Linux desktop through windows compatibility softwares like wine


FreeSwitch Communicator

comes along with the Freeswitch Media Server


Boghe SIP RCS client


Jitsi SIP phone

jitsi 2
jitsi 1

MAC SIP software

idoubs desktop SIP RCS client for Mac

Screen shot 2014-06-13 at 4.03.27 PM

iOS SIP phone applications

Linphone for ios

IMG-20140703-WA0003  IMG-20140703-WA0006 IMG-20140703-WA0007  IMG-20140710-WA0001 IMG-20140710-WA0002

Android SIP applications

Sipdroid for Android


sip droid

Supporfts SIP stack and compatible with most of the SIP servers