Monthly Archives: July 2013

WebRTC layers

WebRTC stands for Web Real-Time Communications and  introduces  a real-time media framework in the browser core alongside associated JavaScript APIs for controlling the media frame and HTML5 tags for displaying.

From a technical point of view, WebRTC will hide all the complexity of real-time media behind a very simple JavaScript API . 

WebRTC simplified :

In simple words its a phenomenal thing , that will revolutionize internet telephony .  Also it will emerge to be platform independent ( ie any browser , any desktop operating system any mobile Operating system ) .

WebRTC allows anybody to introduce real-time communication to their web page as simply as introducing a table.

Codec Confusion :

Audiio Codecs

Currently VP8 is the codec of choice since it is royalty free. In mobility today, the codec of choice is h264. H264 is not royalty free. But it is native in most mobile handsets due to its high performance.

Voice Codecs

Opus is a lossy audio compression format developed by the Internet Engineering Task Force (IETF) targeting a broad range of interactive real-time applications over the Internet, from speech to music. As an open format standardized through RFC
6716, a reference implementation is provided under the 3-clause BSD license. All known software patents Which cover Opus are licensed under royalty-free terms.
G.711 is an ITU (International Telecommunications Union) standard for  audio compression. It is primarily used in telephony. The standard was released in 1972. It is the required standard in many voice-based systems  and technologies, for example in H.320 and H.323 specifications.
Speex is a patent-free audio compression format designed for speech and also  a free software speech codec that is used in VoIP applications and podcasts. Some consider Speex obsolete, with Opus as its official successor, but since
significant content is out there using Speex, it will not disappear anytime soon.
G.722 is an ITU standard 7 kHz Wideband audio codec operating at 48, 56 and 64 kbit/s. It was approved by ITU-T in 1988. G722 provides improved speech quality due to a wider speech bandwidth of up to 50-7000 Hz compared to G.711 of 300–3400 Hz.

AMR-WB Adaptive Multi-rate Wideband is a patented wideband speech coding standard that provides improved speech quality due to a wider speech bandwidth of 50–7000 Hz. Its data rate is between 6-12 kbit/s, and the codec is generally available on mobile phones.

Architecture :

WebRTC offers web application developers the ability to write rich, realtime multimedia applications (think video chat) on the web, without requiring plugins, downloads or installs. It’s purpose is to help build a strong RTC platform that works across multiple web browsers, across multiple platforms.

WebRTCpublicdiagramforwebsite

Web API – An API to be used by third party developers for developing web based videochat-like applications.

WebRTC Native C++ API – An API layer that enables browser makers to easily implement the Web API proposal.

Transport / Session

The session components are built by re-using components from libjingle, without using or requiring the xmpp/jingle protocol.

RTP Stack – A network stack for RTP, the Real Time Protocol.

STUN/ICE – A component allowing calls to use the STUN and ICE mechanisms to establish connections across various types of networks.

Session Management

An abstracted session layer, allowing for call setup and management layer. This leaves the protocol implementation decision to the application developer.

VoiceEngine

VoiceEngine is a framework for the audio media chain, from sound card to the network.

iSAC / iLBC / Opus

iSAC: A wideband and super wideband audio codec for VoIP and streaming audio. iSAC uses 16 kHz or 32 kHz sampling frequency with an adaptive and variable bit rate of 12 to 52 kbps.

iLBC: A narrowband speech codec for VoIP and streaming audio. Uses 8 kHz sampling frequency with a bitrate of 15.2 kbps for 20ms frames and 13.33 kbps for 30ms frames. Defined by IETF RFCs 3951 and 3952.

Opus: Supports constant and variable bitrate encoding from 6 kbit/s to 510 kbit/s, frame sizes from 2.5 ms to 60 ms, and various sampling rates from 8 kHz (with 4 kHz bandwidth) to 48 kHz (with 20 kHz bandwidth, where the entire hearing range of the human auditory system can be reproduced). Defined by IETF RFC 6176.

NetEQ for Voice– A dynamic jitter buffer and error concealment algorithm used for concealing the negative effects of network jitter and packet loss. Keeps latency as low as possible while maintaining the highest voice quality.

Acoustic Echo Canceler (AEC) – The Acoustic Echo Canceler is a software based signal processing component that removes, in real time, the acoustic echo resulting from the voice being played out coming into the active microphone.

Noise Reduction (NR) -The Noise Reduction component is a software based signal processing component that removes certain types of background noise usually associated with VoIP. (Hiss, fan noise, etc…)

VideoEngine 

VideoEngine is a framework video media chain for video, from camera to the network, and from network to the screen.

VP8 –Video codec from the WebM Project. Well suited for RTC as it is designed for low latency.
Video Jitter Buffer – Dynamic Jitter Buffer for video. Helps conceal the effects of jitter and packet loss on overall video quality.
Image enhancements -For example, removes video noise from the image capture by the webcam.


w3c

—Media Stream Functions

—API for connecting processing functions to media devices and network connections, including media manipulation functions.

—Audio Stream Functions

—An extension of the Media Stream Functions to process audio streams (e.g. automatic gain control, mute functions and echo cancellation).

—Video Stream Functions

—An extension of the Media Stream Functions to process video streams (e.g. bandwidth limiting, image manipulation or “video mute“).

Functional Component Functions

—API to query presence of WebRTC components in an implementation, instantiate them, and connect them to media streams.

—P2P Connection Functions

—API functions to support establishing signalling protocol agnostic peer-to-peer connections between Web browsers

  • API specification Availability

WebRTC 1.0: Real-time Communication Between Browsers –  Draft 3 June 2013 available

  • -Implementation Library: WebRTC Native APIs

Media Capture and Streams – Draft 16 May 2013

  • Supported by Chrome , Firefox , Opera in desktop of all OS ( Linux , Windows , Mac )
  • Supported by Chrome , Firefox  in Mobile browsers ( android )

ietf

  • —Communication model
  • —Security model
  • —Firewall and NAT traversal
  • —Media functions
  • —Functionality such as media codecs, security algorithms, etc.,
  • —Media formats
  • —Transport of non media data between clients
  • —Input to W3C for APIs development
  • Interworking with legacy VoIP equipment

WG RFC   Date

  • draft-ietf-rtcweb-audio-02      2013-08-02
  • draft-ietf-rtcweb-data-channel-05      2013-07-15
  • draft-ietf-rtcweb-data-protocol-00      2013-07-15
  • draft-ietf-rtcweb-jsep-03      2013-02-27
  • draft-ietf-rtcweb-overview-07      2013-08-14
  • draft-ietf-rtcweb-rtp-usage-07     2013-07-15
  • draft-ietf-rtcweb-security-05      2013-07-15
  • draft-ietf-rtcweb-security-arch-07      2013-07-15
  • draft-ietf-rtcweb-transports-00      2013-08-19
  • draft-ietf-rtcweb-use-cases-and-reqs-11      2013-06-27
  • Plus over 20 discussion RFC drafts

Next -> webRTC business benefits


Advertisements

JAIN SLEE

•Jain SLEE :- JAIN is a Sun Java standards initiative and part of the Java Community Process.
JAIN specifies a comprehensive range of APIs that target converged IP and PSTN networks, including APIs for

– High-level application development (such as service provider APIs and the Service Logic Execution Environment (SLEE))

– call control

– signalling at the protocol level (such as SIP, MGCP and SS7)

•For telephony, data and wireless communications networks, the Java APIs defined through.

– service portability

– network independence

– open development

•A Service Logic Execution Environment (SLEE) is high-throughput, low-latency, event-processing application environment.
•JAIN SLEE  is designed specifically to allow implementations of a standard to meet the stringent requirements of communications applications (such as network-signaling applications).

Goals of JAIN SLEE are:

– Portable services and network independence.

– Hosting on an extensible platform.

– services and SLEE platform available from many vendors.

Key Features are  :

•Industry standard :- JSLEE is the industry-agreed standard for an application server that meets the specific needs of telecommunications networks.
•Network independence:-The JSLEE programming model enables network independence for the application developer. The model is independent of any particular network protocol, API or network topology.
•Converged services:- JSLEE provides the means to create genuinely converged services, which can run across multiple network technologies.
•Network migrations :-As JSLEE provides a generic, horizontal platform across many protocols, independent of the network technology, it provides the ideal enabler technology for smooth transition between networks.
•Global market—global services:-JSLEE-compliant applications, hosted on a JSLEE application server are network agnostic. A single platform can be used across disparate networks
•Robust and reliable:- As with the enterprise application server space, deploying applications on a standard application server that has been tested and deployed in many other networks reduces logic errors, and produces more reliable applications
•Standard object orientated component  architecture

Scope of JAINSLEE applications

•The principal features of the JSLEE programming model are :

– programs written in Java

-asynchronous programming paradigm

-well-defined event-delivery semantics

-component-based, object-oriented approach

-transactional model

-“profiles” of information, which represent provisioned data

-usage interfaces that support gathering service statistics

-support for standard Java APIs (such as JNDI and JDBC), and optionally, support integration with J2EE

-standard facilities for traces, alarms and timers, for use by the applications that are hosted on the SLEE

Resource adaptors

-The JSLEE provides integration capabilities using a plug-in architecture known as the resource adapter

architecture. Resource adaptors (RAs) provide interconnection with the “outside” world, for example,

interfaces to communication protocol stacks, directory services or external systems.

•SLEE management

-The JSLEE specification also defines the management capabilities of the SLEE. It adopts the Java standard

in this area, Java for Management Extensions (JMX).

————————————————————————————————————————

SIP based architecture

SIP Elements:

sip entities

SIP Gateways:

A SIP gateway is an application that interfaces a SIP network to a network utilizing another signaling protocol. In terms of the SIP protocol, a gateway is just a special type of user agent, where the user agent acts on behalf of another protocol rather than a human. A gateway terminates the signaling path and can also terminate the media path .

sip gaeways

To PSTN for telephony inter-working
To H.323 for IP Telephony inter-working
Client – originates message
Server – responds to or forwards message

……………………………………………..

Logical SIP entities are:

User Agent Client (UAC): Initiates SIP requests  ….
User Agent Server (UAS): Returns SIP responses ….
Network Servers ….

Registrar Server

A registrar server accepts SIP REGISTER requests; all other requests receive a 501 Not Implemented response. The contact information from the request is then made available to other SIP servers within the same administrative domain, such as proxies and redirect servers. In a registration request, the To header field contains the name of the resource being registered, and the Contact header fields contain the contact or device URIs.

regsitrar server

Proxy Server

A SIP proxy server receives a SIP request from a user agent or another proxy and acts on behalf of the user agent in forwarding or responding to the request. Just as a router forwards IP packets at the IP layer, a SIP proxy forwards SIP messages at the application layer.
A proxy server typically has access to a database or a location service to aid it in processing the request (determining the next hop).

proxy server

 1. Stateless Proxy Server
A proxy server can be either stateless or stateful. A stateless proxy server processes each SIP request or response based solely on the message contents. Once the message has been parsed, processed, and forwarded or responded to, no information (such as dialog information) about the message is stored. A stateless proxy never retransmits a message, and does not use any SIP timers

2. Stateful Proxy Server
A stateful proxy server keeps track of requests and responses received in the past, and uses that information in processing future requests and responses. For example, a stateful proxy server starts a timer when a request is forwarded. If no response to the request is received within the timer period, the proxy will retransmit the request, relieving the user agent of this task.

  3 . Forking Proxy Server
A proxy server that receives an INVITE request, then forwards it to a number of locations at the same time, or forks the request. This forking proxy server keeps track of each of the outstanding requests and the response. This is useful if the location service or database lookup returns multiple possible locations for the called party that need to be tried.

Redirect Server

A redirect server is a type of SIP server that responds to, but does not forward, requests. Like a proxy server, a redirect server uses a database or location service to lookup a user. The location information, however, is sent back to the caller in a redirection class response (3xx), which, after the ACK, concludes the transaction

redirect server

……………………………………………………………………………………………………………..

SIP ( Session Initiaion Protocol )

The SIP philosophy :

Reuse Internet addressing (URLs, DNS, proxies)
Utilizes rich Internet feature set
Reuse HTTP coding
Text based
Makes no assumptions about underlying protocol:
TCP, UDP, X.25, frame, ATM, etc.
Support of multicast

sip arch

SIP transaction

A SIP transaction occurs between a UAC and a UAS. The SIP transaction comprises all messages from the first request sent from the UAC to the UAS up to a final response (non-1xx) sent from the UAS to the UAC

Branch

The branch parameter is a transaction identifier. Responses relating a request can be correlated because they will contain the same transaction identifier.

Dialog

The initiator of the session that generates the establishing INVITE generates the unique Call-ID and From tag. In the response to the INVITE, the user agent answering the request will generate the To tag. The combination of the local tag (contained in the From header field), remote tag (contained in the To header field), and the Call-ID uniquely identifies the established session, known as a dialog. This dialog identifier is used by both parties to identify this call because there could be multiple calls set up between them.

 

SIP Transport Layers

sip 3

 

Unified Communications and Collaborations ( UC&C )

The rapidly changing scene of telecoms operations , brings to light many challenges faced by an telcos and service providers as they cater to the end users , with swift and innovative services , while at the same time keeping surcharge operational costs at bay .
Today a client expects converged orchestrated harmonized applications bringing call control and customizing features, all under one roof .

What is Unified Communication ? 

Unified Communications solutions bring together voice, messaging, video, and desktop applications to enable companies to quickly adapt to market changes, increase productivity, improve competitive advantage and deliver a rich-media experience across any work space.

Unified Communications (1)

Unified Communications

Components of Unified Communications.

The latest UCC solutions are based on open standards such as  SIMPLE/XMPP protocols or socket.io and REST webservices

  • Communications:                                        Voice, data, and video
  • Messaging:                                                     Voice, email, video, and IM
  • Conferencing:                                               Online, audio, and video
  • Application integration:                          Microsoft Office and CRM
  • Presence:                                                       IP phone, desktop clients, and call connectors
  • Common user experience:                     Desktop, phone, and mobility
  • Cloud / Virtualization                               Network Provisioning , Virtualized Applications

Video feature of UCC further has many aspects

  • Codecs : H323,H264,vp8/vp9 for video
  • Scalable Video Coding (SVC)
  • USecase : Call , conference , Broadcasting , Livestreaming

Audio aspects

  • Codecs like OPUS, AAC
  • Service like : voice Mail , IVR , auto attendant with Voice XML

 

What is the need of Unified communication ?

Currently the mode of communication across various users differs such as emails , SMS, VOIP call , GSM call , message on other platform etc .
These random forms of communication cannot be tracked and hamper fast decision making .

uc

Challenges with Unified Communications

  • Adds complexity in to already complex infrastructure
  • Lack of standardization
  • Organization Infrastructure and Bandwidth Limitations
  • Integration of services from different application platforms like emails
  • migrating existing communication infrastructure like desk phones
  • Interfacing of telephony applications with Business Applications such as CRMs

Types of UCC solutions

There exists broadly two types of UC&C solution – On-premise and cloud based . The fundamental difference is the location of the backend infrastructure supporting the communication system . Some more differences are outlined in table below:

On -premise Cloud Based
Mostly in SaaS nature ( software as a service )

Hosted by the consumer / business unit itself
more customizability and flexibility
more investment and maintenance

Service provider offers his infrastructure to the consumer as a service  
bills monthly / yearly etc
quick setup
lower upfront payment
billing is either per user basis or on consumption .
data is synced to cloud servers for storage and can be fetched from there when required such as cloud synced Call-logs or contact-book

Device / Platform Agnostic

The UCC clients are designed keeping mobility in mind . Thus UC  Solutions are made compatible with online provisioning / portal system , native mobile apps like android /ios , Desktop app for linux, mac, windows etc .

Unified Communications

UC&C + CRM

UC&C models integrates with Enterprise and Customer Relation Management Systems (CRM). Therefore provides unified messaging across teamspace/workspace/workflow management systems . It is trackable and can be used for realtime notification and analytics .

SRS TFX service suite (2)

SRS TFX service suite

SRS TFX service suite (1)

This directly ensures boost in sales and profitability by quick communication between customers / partners / eco-system / sales-rep / developers / field agents and others part of the communication system.

SME adopt UCC solutions

SME ( Small and Medium Enterprises) are first to adopt UC&C due to absence of  already setup traditional communication infrastructure like PSTN lines , desktop phones , special handsets etc .

Factors like :

  • quick setup
  • low budget of UC&C solutions
  •  BYOD ( Bring your Own Device ) to work

enable SMEs to adopt UC&C solution much faster and readily.
It has multiple advantages like:

  1. All information is stored in one place therefore easier to retrieve
  2. Increased Productivity
  3. Greater flexibility
  4. Faster Response and Information delivery

Future of UCC

  1. Context Driven + Real Time Analytics
  2. Monitization by cross vertical integration
  3.   Integration with IOT
  4. Automation for Billing and Operation – OSS/BSS
  5. Machine Learning
  6. Big Data Management

 

In conclusion UC&C is aimed at providing inter operable communications with ubiquitous coverage for applications and devices such as desktops , IP phones , smartphones, smart watches , kisosk etc . It means web , native apps and IP phones having the ability to create, share and participate in integrated multimedia ( like audio, video , desktop, files ) collaboration.