Designing and Prototyping WebRTC and IMS Integration ...

110
Designing and Prototyping WebRTC and IMS Integration using Open Source Tools Submitted in fulfilment of the requirements for the degree of Master of Science of Rhodes University by Tebagano Valerie Motsumi March 2018

Transcript of Designing and Prototyping WebRTC and IMS Integration ...

Designing and Prototyping WebRTC and IMS Integration using

Open Source Tools

Submitted in fulfilment of the

requirements for the degree of

Master of Science

of Rhodes University

by

Tebagano Valerie Motsumi

March 2018

i

Acknowledgements

I heard from someone that when you are pursuing a postgraduate degree, you become the product

in addition to the degree itself. I can honestly say that these words ring true for me given how this

research journey has stretched me in ways I never imagined possible. I learnt what it means to trust;

to pursue relentlessly; to overcome and to be vulnerable enough to receive support and for that I

thank Poppa God for being faithful and true to His word that indeed He will never leave me nor forsake

me. A special thank you to my supervisors Dr. Mosiuoa Tsietsi and Prof. Alfredo Terzoli - Mos for the

hands-on support he so selflessly gave me from beginning right up to the end and Alfredo for the

oversight and financial support – words cannot express the immense gratitude I feel for you for your

support throughout this journey. I want to thank my mum for her continued tender love and care

during our project and for reminding me every time I faced challenges that I will always have a home.

A big thank you to my sister Sega for her support, to my husband Sydney for his persistent

encouragement to keep trucking and to my family and friends. If I have forgotten to thank you, please

charge it to my head and not my heart. At last, it is finished.

Finally, thank you to my sponsors: Telkom SA, Coriant, Tellabs, Bright Ideas 39 and Easttel who

generously provided the financial support that allowed me to complete this work.

ii

Abstract

WebRTC, or Web Real-time Communications, is a collection of web standards that detail the

mechanisms, architectures and protocols that work together to deliver real-time multimedia

services to the web browser. It represents a significant shift from the historical approach of

using browser plugins, which over time, have proven cumbersome and problematic.

Furthermore, it adopts various Internet standards in areas such as identity management, peer-

to-peer connectivity, data exchange and media encoding, to provide a system that is truly open

and interoperable. Given that WebRTC enables the delivery of multimedia content to any

Internet Protocol (IP)-enabled device capable of hosting a web browser, this technology could

potentially be used and deployed over millions of smartphones, tablets and personal computers

worldwide.

This service and device convergence remains an important goal of telecommunication network

operators who seek to enable it through a converged network that is based on the IP Multimedia

Subsystem (IMS). IMS is an IP-based subsystem that sits at the core of a modern

telecommunication network and acts as the main routing substrate for media services and

applications such as those that WebRTC realises. The combination of WebRTC and IMS

represents an attractive coupling, and as such, a protracted investigation could help to answer

important questions around the technical challenges that are involved in their integration, and

the merits of various design alternatives that present themselves.

This thesis is the result of such an investigation and culminates in the presentation of a detailed

architectural model that is validated with a prototypical implementation in an open source

testbed. The model is built on six requirements which emerge from an analysis of the literature,

including previous interventions in IMS networks and a key technical report on design

alternatives. Furthermore, this thesis argues that the client architecture requires support for

web-oriented signalling, identity and call handling techniques leading to a potential for IMS

networks to natively support these techniques as operator networks continue to grow and

develop. The proposed model advocates the use of SIP over WebSockets for signalling and

DTLS-SRTP for media to enable one-to-one communication and can be extended through

additional functions resulting in a modular architecture. The model was implemented using

open source tools which were assembled to create an experimental network testbed, and tests

were conducted demonstrating successful cross domain communications under various

conditions. The thesis has a strong focus on enabling ordinary software developers to assemble

a prototypical network such as the one that was assembled and aims to enable experimentation

in application use cases for integrated environments.

iii

Table of Contents

1. Chapter 1 – Introduction ................................................................................................................ 1

Overview ................................................................................................................................. 1

Background of the IMS Architecture............................................................................... 1

The Value Proposition of IMS ......................................................................................... 2

Poor Proliferation of IMS Services .................................................................................. 3

The Open Telco Ecosystem ............................................................................................. 3

The Emergence of Web-Based Standards ....................................................................... 4

The Advent of WebRTC ................................................................................................... 5

Discontinuation of Browser Plugins ................................................................................ 5

WebRTC and IMS Integration .......................................................................................... 6

Research Problem ................................................................................................................... 7

Research Goals ........................................................................................................................ 7

Research Objectives ................................................................................................................ 8

Research Scope ....................................................................................................................... 8

Document Overview ............................................................................................................... 9

Chapter 2 – The WebRTC Standard ................................................................................. 9

Chapter 3 – The IMS Service Architecture ...................................................................... 9

Chapter 4 – The Integration of IMS with WebRTC .......................................................... 9

Chapter 5 – The Integration of WebRTC and IMS: Proposed Model .............................. 9

Chapter 6 –Prototyping the Model ................................................................................. 9

Chapter 7 - Conclusion .................................................................................................... 9

2. Chapter 2 - The WebRTC Standard............................................................................................... 10

Overview ............................................................................................................................... 10

WebRTC Standardisation Efforts ........................................................................................... 10

The WebRTC Application Programming Interface (API) ....................................................... 10

Enabling Media Capture ................................................................................................ 12

P2P Connections ........................................................................................................... 12

Low Priority Functions .................................................................................................. 12

Session Description in WebRTC ............................................................................................ 13

JSEP Alternatives ........................................................................................................... 13

Example of Session Negotiation .................................................................................... 13

The WebRTC Protocol Stack .................................................................................................. 14

Connection Management using ICE .............................................................................. 15

iv

Audio and Video ............................................................................................................ 16

Data ............................................................................................................................... 17

The WebSocket Protocol ............................................................................................... 18

Basic WebRTC Architecture .................................................................................................. 19

Open Issues in the WebRTC Deployment Environment ....................................................... 20

Identity Provision and Management ............................................................................ 20

Mandatory-to-Implement (MTI) Codecs ....................................................................... 21

Signalling Alternatives ................................................................................................... 23

Security Key Management Alternatives ........................................................................ 23

Competing Standards ............................................................................................................ 24

Conclusion ............................................................................................................................. 25

3. Chapter 3 – The IMS Service Architecture ................................................................................... 26

Overview ............................................................................................................................... 26

IMS Application Servers ........................................................................................................ 26

The SIP Application Server ............................................................................................ 27

The OSA Service Capability Server ................................................................................ 27

The IMS – Service Switching Function .......................................................................... 28

Insights from Application Server Functionality ..................................................................... 28

Standardised Interfaces between Participating Entities ....................................................... 28

Conclusion ............................................................................................................................. 30

4. Chapter 4 – The Integration of IMS with WebRTC: A Review ...................................................... 31

Overview ............................................................................................................................... 31

Requirements for a Basic Integration Architecture .............................................................. 31

Basic Integration Architecture .............................................................................................. 33

Solutions Analysis .................................................................................................................. 33

Solution 1 ...................................................................................................................... 34

Solution 2 ...................................................................................................................... 39

Solution 3 ...................................................................................................................... 42

Solution 4 ...................................................................................................................... 46

Solution 5 ...................................................................................................................... 47

Solution 6 ...................................................................................................................... 49

Solution 7 ...................................................................................................................... 50

Insights from Solutions Analyses .......................................................................................... 53

3GPP Reference Architecture ............................................................................................... 56

Architecture .................................................................................................................. 56

v

Registration Scenario .................................................................................................... 57

Session Handling Scenario ............................................................................................ 57

Insights from the Enhanced Reference Architecture ............................................................ 58

Conclusion ............................................................................................................................. 58

5. Chapter 5 – The Integration of WebRTC and IMS: Proposed Model ........................................... 60

Overview ............................................................................................................................... 60

Synthesising the Model ......................................................................................................... 60

Architecture .................................................................................................................. 61

Registration Scenario .................................................................................................... 65

Session Handling Scenario ............................................................................................ 66

Mapping the Model to the Requirements ............................................................................ 67

Conclusion ............................................................................................................................. 69

6. Chapter 6 –Prototyping the Model .............................................................................................. 70

6.1. Overview ............................................................................................................................... 70

6.2. Demonstrating the Model using Software Tools .................................................................. 70

6.2.1. Hardware Platform and Environment Variables ........................................................... 71

6.2.2. Architecture .................................................................................................................. 71

6.2.3. Registration scenario .................................................................................................... 77

6.2.4. Session handling scenario ............................................................................................. 81

6.2.5. Challenges ..................................................................................................................... 83

6.3. Other Tool Considerations .................................................................................................... 84

6.4. Insights from the Demonstration .......................................................................................... 86

6.5. Conclusion ............................................................................................................................. 87

7. Chapter 7 – Conclusion ................................................................................................................ 88

Revisiting the Research Goals ............................................................................................... 88

Research Goal 1 ............................................................................................................ 88

Research Goal 2 ............................................................................................................ 89

Limitations of the Study ........................................................................................................ 89

Tool sets ........................................................................................................................ 89

Training and skills set .................................................................................................... 89

Performance evaluation ................................................................................................ 89

Recommendations for Future Work ..................................................................................... 89

Identity Management ................................................................................................... 90

Signalling Alternatives ................................................................................................... 90

Integration with other Domains ................................................................................... 90

vi

Statement of Contributions .................................................................................................. 90

List of References ................................................................................................................................. 91

vii

List of Figures

Figure 1-1 - The IMS architecture. Source: Brouquet (2008). ............................................................... 2

Figure 1-2- Browser support for WebRTC. Source: Talky (2018). ......................................................... 5

Figure 2-1 - The WebRTC API. Derived from W3C (2015). .................................................................. 11

Figure 2-2 – WebRTC media representation. Adapted from Sredojev, Samardzija & Posarac (2015).

.............................................................................................................................................................. 12

Figure 2-3 - Offer/answer model between Alice and Bob. Adapted from Sredojev et al. (2015). .... 14

Figure 2-4 - Connection management using ICE. Adapted from Rosenberg (2010). ......................... 16

Figure 2-5- Payload information for standard audio and video encodings. Source: Casner (2016). . 17

Figure 2-6 - WebRTC architecture and protocol stack. Adapted from Johnston & Burnett (2013). . 19

Figure 2-7 - The WebRTC identity model. Source: Loreto & Romano (2014). .................................... 21

Figure 2-8 - ORTC object interactions. Source: Microsoft Developers (2016). ................................... 25

Figure 3-1 - The IMS service architecture. Adapted from Khlifi & Grégoire (2008). .......................... 26

Figure 3-2 - Telco API overview. Source: Tsietsi et al. (2015). ............................................................ 29

Figure 4-1 - Basic integration architecture showing. Source: Sansay (2013). .................................... 33

Figure 4-2 -Solution 1 architecture. Source: 3GPP (2013). .................................................................. 34

Figure 4-3 -Registering a WIC using IMS digest-based authentication. Source: 3GPP (2013). .......... 36

Figure 4-4 - Alternative registration process. Source: 3GPP (2013). .................................................. 37

Figure 4-5 - Session handling between a WIC and an IMS UE. Source: 3GPP (2013). ........................ 38

Figure 4-6 - Solution 2 architecture. Source: 3GPP (2013). ................................................................. 39

Figure 4-7 – Registration using SIP over WebSockets. Source: 3GPP (2013). .................................... 40

Figure 4-8 - Registration using web authentication. Source: 3GPP (2013). ....................................... 41

Figure 4-9 - Solution 3 architecture. Source: 3GPP (2013). ................................................................. 42

Figure 4-10 – Registration using IMS digest. Source: 3GPP (2013). .................................................... 43

Figure 4-11 – Registration using web authentication. Source: 3GPP (2013)...................................... 44

Figure 4-12 – WAAF registration of wildcard IMPU. Source: 3GPP (2013). ........................................ 45

Figure 4-13 - WIC registration of individual IMPU from wildcard range. Source: 3GPP (2013). ....... 45

Figure 4-14 - Solution 4 architecture. Source: 3GPP (2013). ............................................................... 46

Figure 4-15 - Solution 5 architecture. Source: 3GPP (2013). ............................................................... 47

Figure 4-16 - Registration using operator-provided web identity. Source: 3GPP (2013). ................. 48

Figure 4-17- Solution 6 architecture. Source: 3GPP (2013). ................................................................ 49

Figure 4-18 - Solution 7 architecture. Source: 3GPP (2013). ............................................................... 50

Figure 4-19- WebRTC authentication using IMS credentials. Source: 3GPP (2013). .......................... 51

Figure 4-20 - Session handling on operator controlled WebRTC. Source: 3GPP (2013). ................... 52

Figure 4-21 - 3GPP WebRTC and IMS reference architecture. Source: 3GPP (2013). ........................ 56

Figure 4-22 - WIC registration of IMPU using IMS registration. Source: 3GPP (2013). ...................... 57

Figure 4-23 - WIC registration of IMPU using web authentication. Source: 3GPP (2013). ................ 57

Figure 4-24 - Updated 3GPP reference architecture showing WAF. Source: 3GPP (2015). ............... 58

Figure 5-1 - WebRTC and IMS model. .................................................................................................. 61

Figure 5-2 - The WWSF and supporting functions. .............................................................................. 62

Figure 5-3 - The WSF and additional signalling supporting functions. ............................................... 63

Figure 5-4 - The WMF and some supporting functions. ...................................................................... 64

Figure 5-5 - The WebRTC IMS client architecture. Adapted from Taylor & Ing (2013). ..................... 65

Figure 5-6 - Registration scenario using different signalling protocol and channel (JSON over XHR).

.............................................................................................................................................................. 66

Figure 5-7 - Session handling scenario showing WIC using RCS messaging service. .......................... 67

viii

Figure 6-1 - Model demonstrated using software tools. .................................................................... 70

Figure 6-2 - Registration interface on sipML5. .................................................................................... 73

Figure 6-3 - Interface to configure network settings by experts on sipML5. ..................................... 73

Figure 6-4 - IMSDroid network details. ............................................................................................... 74

Figure 6-5 - IMSDroid user account details. ........................................................................................ 75

Figure 6-6 - The webrtc2sip gateway architecture. Source: Doubango Telecom (2016b). ................ 75

Figure 6-7 - webrtc2sip config.xml....................................................................................................... 76

Figure 6-8 - sipML5 - webrtc2sip - OpenIMSCore registration scenario. ............................................ 78

Figure 6-9 - webrtc2sip: local address retrieval. ................................................................................. 79

Figure 6-10 - webrtc2sip: transport conversion and updated contact header. ................................. 80

Figure 6-11 - webrtc2sip: 200 OK successful response from IMS. ...................................................... 80

Figure 6-12 - Session handling scenario: IMSDroid - sipML5. ............................................................. 81

Figure 6-13 – SIP “INVITE” request during session handling scenario. .............................................. 82

Figure 6-14 - Example SDP offer. ......................................................................................................... 82

Figure 6-15 - Navigator.getUserMedia() deprecated. Source: Mozilla (2017). ......................... 84

Figure 6-16 - getUserMedia() secure origins error on Google Chrome. ........................................ 84

Figure 6-17 - Model implemented using other tools. ......................................................................... 86

ix

List of Tables

Table 1 - Example of a WebSocket handshake. Source: Skvorc et al. (2014). .................................... 19

Table 2 - Overview of Opus performance. Source: Narbutt & Davis (2005). ..................................... 22

Table 3 - Requirements for the integration architecture. ................................................................... 68

Table 4 - IP addresses and port numbers of clients and services. ...................................................... 83

Page | 1

1. Chapter 1 – Introduction

Overview Over the years, there has been a strong trend towards faster provisioning of real-time multimedia

services over the Internet. In a recent annual report measuring the world’s adoption of Information

and Communications Technology (ICT), ITU (2016) state “that while 84 percent of the world's people

live in an area where mobile-broadband services are offered, only 47 percent are actually using the

Internet” (ITU, 2016). The accessibility that the Internet provides to users at a global scale enables the

use of different devices over which users can utilise dynamic and tailored services to communicate

anytime, anywhere. The growing trend for more efficient services has also led to improved

requirements for network architectures where the Internet Protocol (IP) is the de facto standard. As

such, IP-based infrastructure has been deployed resulting from a shift from circuit to packet-switched

networking (Black, 2001). The IP Multimedia Subsystem (IMS) was thus developed to provide a

common IP platform that facilitates multimedia service creation, deployment and supports

interoperability between the Internet and legacy cellular systems (Khandelwal, 2007).

The Third-Generation Partnership Project (3GPP) is the recognised custodian of IMS standardisation

which was initially intended to deliver new mobile services over evolved Universal Mobile

Telecommunications System (UMTS) networks (3GPP, 2017). The European Telecommunications

Standards Institute (ETSI) also standardises IMS as part of its definition of Next Generation Networks

(NGNs) where the Telecommunications and Internet Converged Services and Protocols for Advanced

Networking (TISPAN) working group is responsible for its specification. Work done by TISPAN also

includes the definition of other non-IMS subsystems such as the Network Attachment Subsystem

(NASS) and the Resource Admission Control Subsystem (RACS) which function at the transport layer.

The NASS acts as a Dynamic Host Configuration Protocol (DHCP) server by providing IP addresses and

other configuration parameters; authentication; authorisation and location management while the

RACS applies policy decisions when managing resources and controlling user access based on their

profiles (Brouquet, 2008).

The IMS is part of 3G/4G standards which are constantly being developed and extended. The 3GPP

IMS and ETSI IMS are thus standardised where joint focus is on application service development, radio

access networks, network convergence and so on. Other standardisation bodies are also involved in

IMS standardisation, for instance, the Internet Engineering Task Force (IETF) are responsible for

specifying the communication protocols used in IMS such as the Session Initiation Protocol (SIP) which

is mandated as the main signalling protocol. Furthermore, the Open Mobile Alliance (OMA) is also

enlisted to provide third-party service capabilities such as Push to Talk over Cellular (PoCC) (Bertrand,

2007). All the partners define IP networks and therefore approach IMS from different vantage points.

So, for the common parts of IMS standardisation, the 3GPP is responsible for maintaining a single set

of specifications in order for the resultant architecture to capitalise on economies of scale and cost

reductions, an initiative which as per ETSI (2007) is referred to as Common IMS. Therefore, for

simplicity, the 3GPP IMS will be the main focus of this thesis.

Background of the IMS Architecture

The IMS architecture includes key functions that are responsible for routing, locating and addressing

terminals that are connected in different ways to IMS to enable registration and access to services on

the network (Camarillo & Garcia-Martin, 2007). Using IP as the main bearer, these functions are

connected to form one administrative IMS domain where subscribers can also register from another

network domain or geographic location through roaming facilities. Camarillo & Garcia-Martin (2007)

Page | 2

continue to define core IMS as comprising Call Session Control Functions (CSCFs) and a Home

Subscriber Server (HSS). A CSCF is an essential function in the IMS which processes SIP signalling and

comes in three different types: Proxy (P-CSCF), Interrogating (I-CSCF) and Serving (S-CSCF).

The P-CSCF is the entry point for all SIP requests between IMS and a user terminal. It forwards

responses and requests appropriately in its capacity as a SIP proxy server. The I-CSCF is a SIP server

that is the first point of entry for external requests. Its address is listed in the Domain Name System

(DNS) records of the domain such that when a SIP server is looking for the next hop for a message, it

obtains the address of an I-CSCF of the destination domain and forwards the message to that

destination. The S-CSCF carries the central function of the signalling plane because, in addition to basic

SIP server functionality, it acts as a SIP registrar, meaning that it manages bindings between a user’s

IP address, port number and transport protocol, and their SIP Address of Record (AoR), which can be

expressed as sip:[email protected].

Consequently, the S-CSCF is responsible for providing charging and billing information due to its role

in service provision, triggering and maintenance, and hence interacts with other mediation systems.

The HSS is the central repository for user-related information that is required to handle multimedia

sessions. This information includes but is not limited to location information, user profile, security

information (required for authentication and authorisation purposes) and the address of the S-CSCF

that is serving the user. The HSS interacts with the I-CSCF and the S-CSCF using Diameter, a AAA

(Authentication, Authorisation and Accounting) protocol.

In its expanded form, IMS includes other functions such as the Media Resource Functions (MRFs) and

Public Switched Telephone Network (PSTN) gateways as shown by Figure 1-1. These functions are

responsible for interfacing with other legacy networks to provide what is referred to as network

convergence. The diagram below shows the P-CSCF acting as a point of contact for a user terminal

located in a visited network and accessing services from their home network over a radio access

network. The IMS also defines interfaces to Application Servers (ASs) which may be hosted either

within the home network, visited network or in a third-party, non-operator network.

Figure 1-1 - The IMS architecture. Source: Brouquet (2008).

The Value Proposition of IMS

The value proposition of IMS as a service development platform is in its ability to provide Quality of

Service (QoS), charging and the integration of different services as capabilities that can be

Page | 3

implemented universally for all applications. Such a service environment provides operators with the

opportunity to differentiate their service offering through business models that can be tailored to

meet user needs, where predictable communication experiences can be guaranteed at a premium,

over and above the best-effort service level provided by the Internet. Camarillo & Garcia-Martin

(2007) further describe the ability to apply different types of charging schemes that may be

independent of the underlying business model adopted. With this in mind, the IMS was thus seen as

the appropriate platform to position network operators as front-line competitors in service provision,

where supporting multi-vendor products is a major objective. Moreover, Spiers & Ventura (2010) state

further objectives of IMS as offering converged services to users over multiple access technologies;

lowering costs associated with service creation including reducing the Time-To-Market (TTM) of

services amongst others.

Poor Proliferation of IMS Services

In light of these objectives, however, there is a disconnect between the disruptive potential of IMS

and the reality of the extent of its adoption, where IMS services are viewed as having not yet reached

a subscriber base as large as originally envisioned by its custodians. According to Spiers & Ventura

(2010), the steep learning curve associated with acquiring extensive knowledge of the multiple

protocols, elements, interfaces and frameworks that constitute the IMS can have an impact on the

ability to develop new and innovative services. This challenge is further met by the advent of web-

oriented applications that, in addition to their innovative power, experience short development and

TTM cycles that can easily be provided at relatively low costs. As such, the proliferation of IMS services

is hampered especially when for every IMS service provided, there is a counter web application

providing a similar, more enhanced service. Moreover, these web applications typically provide

tailored service offerings, advertisements, user profiles etc. as a result of applying data analytics that

allow a better understanding of the customer, hence optimising the user experience (Maes, 2010).

For example, social networking sites such as Facebook, Skype and Google Hangouts are already

succeeding at changing the traditional view of telephony - call establishment between users requires

their web identities as opposed to telco assets such as cell phone numbers or SIP addresses and

telephony services (voice and video calls) are embedded within their communication suites and form

only part of their overall service offering (Bertin, Crespi & L’Hostis, 2011). As a result of deploying their

services ‘over’ existing telecommunication networks, these service providers have come to be

described as over the top (OTT) service providers. Furthermore, OTT players are rewriting the web

browser to become a common online platform for services with browser plug-ins as the fundamental

technologies that have changed the way media is consumed on the web. By integrating telephony in

these online platforms, which was a core service offering of the mobile operator, telcos are thus being

relegated to the status of a mere ‘data pipe’ for other companies’ data, as opposed to a major service

provider (Raivio & Luukkainen, 2011).

The Open Telco Ecosystem

Maes (2010) suggests telcos use more open strategies to expand their ecosystem and offer more

efficient and innovative services in order to compete against or collaborate with OTTs. Examples

include offering their infrastructure as a service; enabling access to business resources such as QoS

and Operating and Business Support Systems (OSS and BSS) and providing them as a service; providing

a cloud computing platform to increase efficiency and reduce costs; becoming identity providers for

web applications and federating these identities to curtail fragmentation, and so on. These examples

indicate that the network operator may need to embrace web-oriented approaches. Raivio &

Luukkainen (2011) suggest the adoption of hybrid strategies that are a balance between open and

Page | 4

closed ecosystems (or gardens) to create an Open Telco. Eisenmann, Parker & Alstyne (2008) define

an open garden as a system that does not restrict how users interact with their products and services,

and provide third-party integration through Application Programming Interfaces (APIs), while a closed

system is one where the service provider restricts access to resources, application content and media.

For example, Linux is an open system whereas Apple’s iPhone is closed. Telecommunication networks

are often seen as closed systems; therefore, the use of hybrid strategies would give them innovative

power from opening up their networks via Open APIs while also maintaining control over their

networks through business level agreements that govern the resultant strategic approaches.

The Open Telco ecosystem is a movement that was developed to improve telco agility with regard to

transformation and innovation, and according to STL Partners (2015), using open source software

would further enable their position as leading service providers. Their proposition is that open source

software would result in technological progress; reduced financial pressure and increased agility when

developing services with reduced TTMs. Spiers & Ventura (2010) also propose telcos release open

source products that are created using widely accepted tools and programming languages which are

easy to program or modify as a way to encourage developer interest in IMS. In light of the above, this

thesis takes the pragmatic approach of presenting IMS integration with an open, standards-based web

API known as Web Real-Time Communication (WebRTC).

The Emergence of Web-Based Standards

The emergence of web-based standards has been instrumental in growing the web ecosystem via

native application development to meet increased demand from stakeholders for the adoption of

alternatives to browser plugins. The amalgamation of the Hypertext Mark-up Language version 5

(HTML5), Cascading Style Sheets (CSS) and JavaScript as the main technologies behind web

standardisation, in combination with JavaScript APIs, improves the accessibility and openness of the

web (Amirante et al., 2013). These interfaces enable an application to use assets provided by a service

provider, for instance, developers wishing to adopt a design like Facebook can use Facebook APIs as a

set of building blocks over which this design consistency is to be maintained; resulting in the

development of innovative applications that are available on any kind of supporting device, thus

establishing what is known as the Open Web Platform (Eriksson & Hakansson, 2012). Many

organisations are involved in the development of such a platform, particularly the Web Hypertext

Application Technology Working Group (WHATWG) that have made significant advancements in the

creation of APIs responsible for establishing real-time Peer-to-Peer (P2P) communications since 2006.

This work progressed into a mature API standard that was ultimately taken up by a World Wide Web

Consortium (W3C) Working Group in 2011 with the fundamental concepts of media access and the

establishment of P2P connections thus being created.

The success of the Open Web Platform, in addition to web standardisation, also depends on

advancements made within browser engines that are responsible for rendering advanced marked-up

content and applying styles to such content (Eriksson & Hakansson, 2012). The four main browser

engines implemented include WebKit, used in Safari and Google Chrome; Gecko, used in Mozilla

Firefox; Trident, used in Internet Explorer and Presto used in Opera. These engines are also used in

other less popular browser implementations, desktop applications and mobile devices running various

operating systems. Of these, WebKit and Gecko are open source frameworks whereas the rest are

closed source. Major technological developments are typically seen with open source engines because

developers can publicly propose new features and implementations that are usually developed in

parallel with on-going standardisation. These developments result in browser architectures that are

more flexible, secure and cutting-edge than their proprietary counterparts, thus leading to major

Page | 5

strides within the web domain; as is evidenced by the proliferation of Google Chrome as the most

widely used browser in the world as reported by StatCounter.com (2016).

The Advent of WebRTC

Google’s acquisition of On2 and Global IP Solutions (GIPS) resulted in major developments within the

field of real-time communication on the web. On2 developed the VP8 video codec and others in the

VP (9 and 10) series, and GIPS developed media frameworks that provided support for JavaScript APIs

to enable bi-directional media processing and coding technologies, particularly for use in Voice over

IP (VoIP) systems (Alexandru, 2014). Consequently, Google released VP8 under a patent-free licence

with the aim of providing a high-quality video codec to rival the widely used and patented H.264 video

codec. Coupled with the W3C standardisation effort, an open source API implementation was released

by Google as the platform over which developers could experiment with real-time communication on

the web and was named WebRTC.

Interest in WebRTC includes companies such as Mozilla, Opera, Telenor, Cisco, Ericsson, Oracle and

others, as well as private individuals. Apple, on the other hand, has been absent since the advent of

WebRTC except for participating in the process of selecting an MTI video codec. The company has

continually been adamant about support for H.264 with no interest in the VPx series. At the same

time, WebKit, the rendering engine used by Safari, had an issue logged as far back as November 2013

for support for WebRTC. The status of this item remained as “in development” for several years,

including the period of time during which much of this investigation was conducted. The status

changed to “resolved” in August 2017 and as of March 2018, WebRTC is shown as “supported”

(WebKit, 2018). WebRTC support was similarly taken up by standardisation bodies, resulting in the

creation of working groups within the W3C and the IETF through which a consistent and stable

standardisation process could be followed (Ubiquity, 2005). The W3C is tasked with defining the

WebRTC API, while the IETF is tasked with defining the protocols and media processing mechanisms

that extend the browser’s RTC functionality (IETF, 2014; W3C, 2015). In addition to their involvement

in working groups, these bodies continue to demonstrate the ability of WebRTC to support real-time

capabilities on the browser through various “plug-and-play” applications. Figure 1-2 below shows a

snapshot of browser support for WebRTC at the time of writing. The colour coding scheme shows the

extent to which the API elements (left hand side) are supported by the major browser vendors (top) –

red signifies that not all the API elements are supported; green signifies that most of the API elements

are supported and yellow signifies that support for these elements is “in progress” or “under

development”.

Figure 1-2- Browser support for WebRTC. Source: Talky (2018).

Discontinuation of Browser Plugins

WebRTC promises to add RTC capabilities to the web by providing browser support for direct

communication with another browser without the need for third-party plugins such as Adobe Flash

Player; Microsoft Silverlight; RealPlayer; QuickTime and many more that have played such a

fundamental role in the deployment of rich and expressive multimedia content across different

Page | 6

browsers. Plugins have enabled browsers to act as multimedia platforms which have enabled user

experiences that were otherwise not possible or feasible on the web (Davies, Zeiss & Gabner, 2012).

Even though plugins have resulted in extensive modifications to browser architectures and are still

widely used on the web, recent years have seen a shift away from their use. Early plugins were based

on the Netscape Plugin Application Program Interface (NPAPI) architecture and major providers such

as Google and Mozilla have discontinued support for NPAPI-based plugins such as Java and Silverlight,

on their platforms (Chrome Help, 2015; Mozilla, 2015). Similarly, plugins such as Flash that are not

based on the legacy NPAPI architecture provide a “click-to-play” feature to bypass the security

restrictions implemented against plugins.

Furthermore, Apple discontinued support for plugins (particularly Flash) across their devices as stated

by Jobs (2010) via an online public address. This reduced support was due to the wide criticism plugins

received for the number of problems they presented to user when downloading, installing and

updating, notably browser crashes; security vulnerabilities and code complexity. As browser

architectures change over time - becoming faster, more secure and more capable - plugin vendors

have battled to keep up-to-date with these changes, and even more so across multiple platforms,

hence leading to the proliferation of web-based standards that support use cases previously

implemented by plugins (Schuh, 2013).

WebRTC and IMS Integration

The progress of IMS standardisation is well developed with extensive documentation produced that

describe various IMS interactions with other systems while contrarily, WebRTC is still an emerging web

technology with standardisation that is still ongoing and currently under-developed. These differences

present opportunities for operators to be frontline competitors in service provisioning, and can help

them reach a critical mass number of users (Toutain, Le Huérou & Beaufils, 2015). According to

Khandelwal (2007), IMS features such as QoS; session establishment; identity management and

authentication; charging, billing, and more, act as value-added drivers that can be used to enrich

WebRTC and IMS integrated services. Therefore, the telco adoption of WebRTC presents the potential

to offer a wide range of use cases where WebRTC can also benefit from a stable and well-defined

environment that IMS provides. These use cases would be facilitated by the platform or device

independence of WebRTC where implementers need not be concerned with maintaining plugin

software. Even though OTTs’ adoption of WebRTC could disrupt the web, opportunities exist for the

telco to also provide multimedia capabilities in different devices such as smartphones, tablets,

netbooks, set-top boxes, TVs etc., where revenue generation has been a challenge for them (Raivio &

Luukkainen, 2011).

The basic aims of standardisation therefore are: 1) to enable simple browser-to-X communication

(where X is either another browser or a standard IMS terminal) and 2) to show support for integration

with other systems. The scope of the thesis is to cover both of these aims, with a strong emphasis on

the second point in reference to IMS. When inter-working with different networks and services, Bertin

et al. (2013) give some examples of how companies such as Oracle, Cisco, Ericsson, Alcatel-Lucent and

many more, have developed inter-working functions such as gateways, Session Border Controllers

(SBCs) and application servers to interoperate with WebRTC. The availability of these intermediary

functions has resulted in innovative business models and architectures supporting web-based

signalling and media processing capabilities. In fact, many prominent open source projects such as

Page | 7

Asterisk1, Kamailio2, FreeSwitch3, Kurento4 and others already support WebRTC thereby allowing

proof-of-concepts for standardisation initiatives such as those taken up by the 3GPP.

The 3GPP has recognised opportunities for network operators to expand their ecosystem and have

expended much effort in investigating the possible architectural arrangements that could facilitate

the delivery of WebRTC services over IMS (3GPP, 2013). They have thus drafted a Technical Report

(TR) 23.701 that presents these architectural alternatives and expresses the high-level requirements

for the network operator to fulfil when enabling their integration. It also describes the possible

modifications to the IMS architecture to enable integration with WebRTC, hence representing the

guiding framework behind how the IMS architecture can be reimagined in order to enable WebRTC

access. Work done by Bach et al. (2014), Bertin et al. (2013) and Cruz & Barraca (2015) give some

evidence of how TR 23.701 is used to guide the investigation of the integration scenario from multiple

facets.

Research Problem The complexity of the IMS environment requires a clear plan and a systematic approach in order to

enable integration with a web-based standard such as WebRTC, and the 3GPP TR 23.701 provides a

suitable basis for that. As previously stated by Spiers & Ventura (2010), the availability of easily

programmable and extendable applications in the form of open source products has the potential to

remove the barrier of entry for software developers wishing to experiment with such integrations.

However, while TR 23.701 is a technical document that explores this topic, it is not presented in a

suitable format to assist software developers in their experiments – rather the document is targeted

at telecommunication engineers and network architects. As such, the report is presently inadequate

for these audiences.

Research Goals In light of the above, this thesis thus sets out to address the challenges that software and service

developers would have to overcome to perform integrations with IMS. The proposed integration

model may be realised over a prototypical, networked environment that can allow different kinds of

developers with expertise in either web or telco environments to conduct further research and

experimentation. The following main points summarise the research goals of the thesis:

To synthesise a WebRTC and IMS integration model that addresses developer needs and

requirements.

The purpose of this goal is to determine said developer needs and requirements by laying a theoretical

foundation of the 3GPP groundwork and analysing the architectural solutions suggested in TR 23.701.

This analysis ensures that the proposed model is practical and mimics, as far as possible, real-life

networks that can be prototyped by developers.

To create an open source testbed that enables testing and experimentation.

Realising this objective allows the research to respond to the challenge of how the proposed model

can be prototyped so that developers can be able to test and experiment over it with the aim of

evaluating its behavioural impacts within the RTC landscape. Segec & Kovacikova (2012) state that the

1 http://www.asterisk.org 2 http://www.kamailio.org 3 http://freeswitch.org 4 http://www.kurento.org

Page | 8

open source community is more competent compared to their proprietary counterparts at mapping

standards to practice through products whose source code is freely available to the public for viewing,

distribution, modification and redistribution. For this purpose, the resultant testbed aims to create a

learning environment for users to grapple with WebRTC and IMS integration.

Research Objectives For each goal, the objectives are listed below to detail the process the research will follow to

investigate the important yet under-researched integration of WebRTC and IMS.

To synthesise a WebRTC and IMS integration model that addresses developer needs and

requirements.

o To describe how the W3C and the IETF have envisioned WebRTC, listing the current

open issues and subsequent efforts to overcome these challenges.

o To present the IMS service architecture and bring forth the most prevalent

requirements needed to integrate third-party services.

o To critically analyse the solutions presented in the TR 23.701 and describe the set of

functions and requirements that are necessary to enable WebRTC access to IMS.

o To formulate a novel integration model that is based on these functions and

requirements.

To create an open source testbed that enables testing and experimentation.

o To present the currently available open source software for implementing WebRTC

and IMS testbeds/platforms.

o To evaluate the suitability of these software tools and their ease of integration to

enable developers to deploy WebRTC and IMS services.

o To implement an initial prototype of the integration model using the selection of

open source software.

Research Scope The scope of this research is confined to the use case of enabling one-to-one communication between

WebRTC and IMS endpoints. There are other use cases such as video conferencing, instant messaging,

file transfer, live streaming and so on that can be supported, however, the objective of this restriction

is to focus on the core issues that result from the emergent requirements of enabling the target use

case. With this said, although the proposed model is designed to support multiple protocols and

techniques, SIP over WebSockets is chosen as the main signalling protocol when illustrating the

interactions between WebRTC and IMS, thus simplifying the construction of the solution architecture.

The research focuses on using WebRTC in application servers to thoroughly investigate how the

differences in the WebRTC and IMS systems can be resolved at the access edge.

The research is limited to using open source tools for experimentation as opposed to proprietary

products -proprietary products could be compared with open source products to provide a more

inclusive and comprehensive analysis, however, their use is infeasible given the time and financial

constraints of the research.

Page | 9

Document Overview The rest of the thesis is organised into seven chapters as follows:

Chapter 2 – The WebRTC Standard

This chapter describes how standardisation was taken up by the IETF and the W3C. The discussion also

describes the WebRTC API and the protocols that are mandated to interact with it to adapt the

browser as an engine for RTC. Furthermore, the chapter also describes the open issues faced during

standardisation.

Chapter 3 – The IMS Service Architecture

This chapter focuses on the application servers that are part of the service architecture to describe

how services are provisioned, including those provided by third-parties. The standardised interfaces

implemented within this service architecture are also described, giving a synopsis of IMS requirements

identified during service provision.

Chapter 4 – The Integration of IMS with WebRTC

This chapter provides an analysis of the architectural solutions presented in TR 23.701 and presents

insights gained from this analysis. The reference architecture chosen by the 3GPP is also presented

which was instrumental in laying a foundation to understand the different functional entities that

enable the inter-connection between WebRTC and IMS. Moreover, requirements specific to the

integration scenario are presented.

Chapter 5 – The Integration of WebRTC and IMS: Proposed Model

This chapter presents the suggested model that is informed by the solutions analysis conducted in the

previous chapter. The 3GPP reference architecture proved valuable at structuring the presentation of

the model where the design considerations behind the different entities are discussed, leading to a

more practical architecture.

Chapter 6 –Prototyping the Model

The purpose of this chapter is to demonstrate the use of open source frameworks and their ability to

create a network testbed that is extensible and modular, to allow further testing of many use case

scenarios. This demonstration showcases the integration landscape based on what is currently done

in practice.

Chapter 7 - Conclusion

The purpose of this chapter is to communicate how effective the solution was at satisfying research

goals and objectives; and to place an emphasis on the main contributions of the research.

Furthermore, the researchers’ own analysis is provided which includes limitations and insights. Lastly,

the possible extensions or use cases that could stem from the implementation are also discussed to

present opportunities for future studies thereby situating the research strongly within the field.

Page | 10

2. Chapter 2 - The WebRTC Standard

Overview This chapter details the standardisation efforts behind WebRTC and looks at how the different API

components work together to enable a P2P connection. The WebRTC protocol stack is also described

in order to detail how the IETF has envisioned the suite of communication protocols that work with

the API. The chapter also gives an overview of the open technical, political and interoperability issues

that are prevalent within this context, and concludes with a discussion on competing standards. This

overview is important because it describes the key decisions that are being made around the WebRTC

standard.

WebRTC Standardisation Efforts The W3C and the IETF are the main standardisation bodies responsible for WebRTC. These

organisations each have working groups that jointly develop the standard and comprise designers,

researchers, vendors, developers, users and private individuals from the Internet community. The

W3C’s WebRTC Working Group, a subgroup of the Ubiquitous Web Applications Activity responsible

for “enabling value-added services and business models for ubiquitous networked devices” (Hirsch &

Braun, 2010), is tasked with defining the WebRTC API comprising a set of JavaScript APIs exposed to

developers for application development (W3C, 2015). The IETF’s RTCWeb Working Group is tasked

with defining the protocols and media processing mechanisms that extend the browser’s real-time

communication functionality (IETF, 2014). The API is defined with the purpose of realising the use case

requirements of simple video communication services, with the added responsibility of defining a

multitude of innovative extensions as specified in Holmberg, Hakansson & Eriksson (2013).

The WebRTC Application Programming Interface (API) The WebRTC API enables simple multimedia communication by providing the ability to access

(capture) media streams from input peripherals such as cameras and microphones; to encode, decode

and perform other forms of media stream processing such as echo cancellation; and to establish P2P

connections employing Network Address Translation (NAT) and firewall traversal techniques where

necessary. Overall, this functionality should successfully deliver media streams even in the presence

of jitter and packet loss. The W3C WebRTC Working Group works in conjunction with the Media

Capture Task Force, another W3C Working Group, to specify the API that enables access to local media

devices (W3C, 2009). Furthermore, the lack of implicit trust of the web requires the implementation

of security measures that assure them of strict privacy control where they are made aware of the type

of media access and to where it is transmitted. Security considerations are addressed in collaboration

with the IETF RTCWeb Working Group and are defined in an ancillary standard (Rescorla, 2015a,

2015b). The API specification involves the implementation of the functions that are illustrated in

Figure 2-1 with further details provided in subsequent sections.

Page | 11

The WebRTC APIIdentity Management

Data Channels

P2P Connections

Media Stream Tracks

Statistics Model

DTMF Tones

Security Certificate

Management

RTCPeerConnection

RTCSessionDescription

RTCIceCandidate

RTCRtpSender

RTCRtpReceiver

RTCDataChannel

RTCCertificate

RTCRtpSender

RTCStatsReport

RTCIdentityProviderRegistrar

RTCIdentityProvider

RTCIdentityAssertion

Media Handling

Media Devices

GetUserMedia

RTCSctpTransport

Figure 2-1 - The WebRTC API. Derived from W3C (2015).

Page | 12

Enabling Media Capture

The aim of the RTPMedia API is to define a MediaStream object that manages the generation,

processing and rendering of media streams sent over a P2P connection. These media streams are

captured from input devices via the GetUserMedia object. Media streams are represented as

MediaStreamTrack objects that describe the type of media sent over the connection and

comprise one or more audio and/or video streams. The MediaStream object also makes provision

for remote access to media by specifying extensions for network use to enable varied types of media

access. Figure 2-2 below illustrates this:

MediaStreamTrack

(audio)

MediaStreamTrack

(video)

MediaStream

RTCPeerConnectionInput output to

Figure 2-2 – WebRTC media representation. Adapted from Sredojev, Samardzija & Posarac (2015).

P2P Connections

The RTCPeerConnection object facilitates the negotiation of session description information,

represented using the RTCSessionDescription object, which needs to be exchanged to

establish a media path between browsers (the signalling channel used to coordinate this

communication is not specified in WebRTC and is typically facilitated by a server function). The

RTCPeerConnection object is also responsible for the exchange of arbitrary data, functionality

that is handled by the RTCDataChannel object. Data channels are established in parallel to media

streams without one causing congestion problems for the other.

Low Priority Functions

The WebRTC API also defines low priority functions that fulfil telephony-based requirements: the

ability to send Dual-Tone Multi-Frequency (DTMF) tones during a call and the maintenance of a basic

model to obtain statistics about the call session. The use of DTMF tones is to mimic classical telephony

experiences, especially when inter-working with traditional fixed line terminals on the PSTN which

support voice menu features to interact with services such as voice mail, airtime purchases, call centre

queries etc. (W3C, 2015). The statistics model on the other hand, is implemented using the Real-time

Transport Control Protocol (RTCP), a protocol that is responsible for monitoring and gathering

statistics about a communication session. It can be used to implement QoS techniques to ensure

reliable delivery and aids in synchronising multiple streams in conferencing scenarios where media is

transmitted as separate RTP streams. Other low priority functions include the identity provisioning

model which shows the interaction between the browser and an identity provider in order to

authenticate the offers and answers exchanged.

Page | 13

Session Description in WebRTC The W3C and the IETF do not define a precise mechanism as to how a browser should initiate

communication with another browser on another machine. This was done by design to encourage

vendor innovation - a website can either implement its own proprietary protocol or choose to use an

existing protocol such as SIP or Jingle (Loreto & Romano, 2014). The standardisation bodies do

however, define mechanisms to enable a WebRTC application to describe and negotiate media

parameters to setup a session. These mechanisms include the conjunctive use of the Session

Description Protocol (SDP) and a standard called the JavaScript Session Establishment Protocol (JSEP)

(Uberti, Jennings & Rescorla, 2015).

SDP is used to describe media parameters and is the basis for the offer/answer model that enables

endpoints to present and negotiate the desired media properties of a session (Rosenberg &

Schulzrinne, 2002). Thus, the protocol describes various aspects of the session represented by

different streams: audio; video; whiteboard; ICE transport information; security parameters and other

media-related parameters. Having used SDP to describe a media session, JSEP is then used as a

signalling abstraction layer where the exchange of offers and answers occurs via the

RTCPeerConnection and with signalling messages defined in the format of the signalling protocol

that the application has chosen to use (e.g. SIP or Jingle). In the case where SIP is used, the application

would adapt the JSEP API into a SIP-compliant one where a JSEP OFFER is mapped to a SIP

INVITE request, and say, a 200 OK response to a JSEP ANSWER (Ravindran, Rauschenbach &

Manickam, 2013).

JSEP Alternatives

Uberti et al. (2015) mentions other approaches to signalling that were considered as alternatives to

the JSEP model. One approach considered the implementation of a lightweight signalling protocol

(RTCWeb Offer/Answer Protocol (ROAP)) that imposes greater control over the generation and

exchange of signalling messages on the web browser. The approach was rejected due to the

complexity of having the browser maintain signalling state. Another approach included the ability to

provide APIs to independently control media devices without having to generate session descriptions.

Such an API definition was found to be cumbersome and would impede the WebRTC standardisation

process given the need to arrange media interactions that would also need to be agreed upon and

documented.

Further, Uberti et al. (2015) describe another approach that defines a getCapabilities interface

where the application would have to generate session descriptions and subsequent offers and

answers from the media capabilities of the media devices. This approach provides a further

abstraction layer and thus adds a more complex set of interactions for the application to resolve.

These approaches were considered based on their ability to ensure interoperability with other third-

parties while creating a simple API platform for application developers from different backgrounds

(either VoIP or web) to experiment with. Ultimately, the JSEP approach was chosen for its ability to

provide a signalling solution within WebRTC where the application is given greater control with

reduced complexity while specifying the generation of session descriptions in a manner that can be

easily adapted to suit the underlying signalling protocol.

Example of Session Negotiation

Assuming the goal of simple one-to-one browser communication, the following scenario is used to

describe the current session negotiation model of WebRTC within a single domain. The scenario

illustrates the interactions between WebRTC API components employing JSEP to handle the exchange

Page | 14

of session description information. Alice and Bob are two hypothetical users who are both running the

same WebRTC client, a JavaScript application downloaded from a web server that provides a user with

access to communication services. This application, accessible over a WebRTC-enabled web browser

or device capable of running JavaScript, enables a user to make and receive calls, instant messaging,

file exchange, screen sharing, gaming and many more. To initiate the communication, both Alice and

Bob have registered user accounts/profiles with the service provider and have each other’s user

identities in their contact lists. Alice clicks on a button to initiate a call with Bob and the application

then instantiates an RTCPeerConnection object and makes an association with Bob’s peer.

The GetUserMedia API adds a MediaStream object to an RTCPeerConnection and the

media, transport and security parameters are generated using the createOffer method to set up

a local configuration of Alice’s media capabilities. The setLocalDescription method creates a

local description in her peer while the setRemoteDescription creates Bob’s remote description

also at her peer. Alice’s offer is sent to Bob via a WebSocket channel using a means not yet

standardised. The signalling server is responsible for facilitating message exchange between Alice and

Bob to determine the intended recipient of the message. The application alerts Bob of the call and

upon answering, his remote peer processes the incoming message and instantiates an

RTCPeerConnection object in response. Bob’s browser follows a similar process to send back his

own transport and security parameters via the signalling service, but uses the createAnswer

method to generate these parameters. Figure 2-3 illustrates these interactions:

Alice Bob

Signalling Server

Local

Description

Remote

Description

Remote

Description

Local

Description

SDP (Offer) SDP (Offer)

SDP (Answer) SDP (Answer)

setLocalDescriptionsetRemoteDescription

setRemoteDescription setLocalDescription

SDP

JSEP

Signalling

Protocol

Figure 2-3 - Offer/answer model between Alice and Bob. Adapted from Sredojev et al. (2015).

The WebRTC Protocol Stack The WebRTC protocol stack involves the use of Interactive Connectivity Establishment (ICE) to

establish and maintain media connections, the Secure Real-time Transport Protocol (SRTP) to transmit

audio and video securely, while the Stream Control Transmission Protocol (SCTP) transmits arbitrary

Page | 15

data. Media channels are encrypted using the Datagram Transport Layer Security (DTLS) protocol over

the User Datagram Protocol (UDP) at the transport layer, whereas the WebSocket protocol functions

at the application layer to enable the exchange of application control information. These protocols

and the mechanisms invoking their use are discussed in the following sections.

Connection Management using ICE

The most basic WebRTC use case aims to enable P2P connections between endpoints residing in the

same domain, where a media path is established without any intermediary firewalls or NATs.

However, in the case where peers reside on different administrative domains, attempting to establish

a P2P connection without any special handling would fail given the use of private addresses. To

circumvent this connection failure, WebRTC endpoints implement ICE agents as a mandatory feature

for negotiating the best communication path during NAT traversal (Janczukowicz, Bouabdallah &

Bonnin, 2015). ICE works by compiling a list of IP addresses and ports in SDP offers and answers, then

testing them for reachability using the Session Traversal Utilities for NAT (STUN) and Traversal Using

Relays around NAT (TURN) protocols. STUN helps an endpoint to determine its address allocated by a

NAT and therefore enables it to communicate with peers outside of its network. Moreover, it also

helps the client determine the topology of the network in which it resides (for example the kind of

NAT it is sitting behind) by sending requests to multiple STUN servers, while also providing a security

measure against untrusted webpages and applications.

On the other hand, TURN relays packets between endpoints behind NATs and is usually implemented

as a last resort because of the effectiveness of STUN at finding a public routing path. Furthermore, it

needs higher bandwidth because of the need to relay multimedia through an intermediary (Mahy,

Matthews & Rosenberg, 2010). The ICE agent is managed as a layer within the WebRTC framework

and thus needs to interact with the RTCPeerConnection object to deliver ICE messages via the

signalling channel (Eriksson & Hakansson, 2012). When establishing a media connection, each peer

appends its own IP address and forwards it to the other via SDP strings exchanged during session

establishment. The SDP string also contains the port numbers through which the media connection is

to take place.

The ICE agent generates an ICE candidate which provides information about the IP address and port

number of the server employed during connection management. Moreover, the ICE agent is also

responsible for keeping the P2P connection alive. The agent is configured within an

RTCPeerConnection object to listen to any ICE events that may occur during the candidate

gathering process. An example of an ICE event includes STUN requests and responses that are

exchanged between peers to ensure a consistent connection – this process serves as a connection

keep-alive where TURN is used as a fall-back strategy in the event of a connection failure (Mozilla,

2016). Figure 2-4 illustrates the above process.

Page | 16

WebRTC Client WebRTC Client

Server

Generate ICE Candidate

STUN Lookups

SDP Offer (ICE Candidate) SDP Offer (ICE Candidate)

Generate ICE Candidate

STUN Lookups

SDP Answer (ICE Candidate)SDP Answer (ICE Candidate)

STUN Binding Request STUN Binding Request

STUN ResponseSTUN Response

Figure 2-4 - Connection management using ICE. Adapted from Rosenberg (2010).

Audio and Video

The Real-time Transport Protocol (RTP) is used to transport real-time multimedia and is implemented

by the media engine of a WebRTC-enabled component. RTP is an application layer protocol that

typically runs over UDP to realise best-effort delivery of media packets and works in concert with other

complementary protocols such as RTCP to monitor QoS. Other than providing a mere reporting

function, RTP+RTCP do not guarantee in-order delivery of media packets, nor do they assume a

reliable network connection. As such, according to Schulzrinne, Casner, Frederick & Jacobson (2003),

RTP+RTCP support the basic transportation of interactive media by providing functionality that

includes: “payload type identification, sequence numbering, timestamping and delivery monitoring”

(Schulzrinne et al., 2003) in order to satisfy media requirements common to a wide number of

applications. For those applications with additional requirements, RTP is by design, a protocol that is

extensible and hence open to extensions through the definition of a new RTP profile: a specification

that defines the payload type and format of media encodings. Figure 2-5 shows the payload

information for standard audio and video encodings:

Page | 17

Figure 2-5- Payload information for standard audio and video encodings. Source: Casner (2016).

Data

The exchange of arbitrary data between browsers is enabled by an association between the Data

Channel Establishment Protocol (DCEP) and the Stream Control Transport Protocol (SCTP) which

together provide reliable and ordered data transport (Jesup, Loreto & Tuexen 2015a, 2015b). DCEP

establishes a bidirectional data channel by associating two unidirectional channels and setting the

incoming or opening handshake streams to have the same stream identifiers. The use of SCTP then

provides a way to encapsulate DCEP streams into an association over which certain requirements need

to be met by endpoints. These requirements include the ability to establish data channels parallel to

the SRTP media streams created by the MediaStream API over an RTCPeerConnection object;

provide reliable, semi-reliable and unreliable data channels to support a wide variety of use cases from

instant messaging to real-time gaming, and to enable congestion control. Furthermore, the use of

message fragmentation, where large messages are sent without delaying data transmission via other

data channels, is supported with the ability to provide efficient sequencing capabilities for in-order or

out-of-order message delivery. The SCTP association is then encrypted over DTLS to provide

confidentiality, source authentication and integrity protection for SCTP packets.

Page | 18

The WebSocket Protocol

When a user interacts with a web server to access communication services, the browser sends a

request to the web server for the content, to which the server responds with the information

requested within a standard Hyper-Text Transfer Protocol (HTTP) response object. This interaction

describes the traditional setting where the server does not need to independently send data to the

client without first having received a request. Recent trends now require the server to send data to

the client on an as-needed basis. As such, current HTTP bidirectional technologies employ different

techniques that interrogate the server with frequent requests for updates without a user having to

constantly refresh a web page – these techniques are termed HTTP polling and require the server to

delay responding to a client request until new data is available (Pimentel & Nickerson, 2012).

According to Skvorc, Horvat & Srbljic (2014), the main issue experienced with such polling techniques

is that the server must maintain multiple connections for each client request, a computationally and

spatially expensive process that requires the maintenance of bindings between incoming and outgoing

connections.

For this purpose, WebRTC mandates the use of another communication protocol namely, the

WebSocket protocol, to establish a two-way, bidirectional communication channel between a client

and a server that operates through a single socket. The protocol was defined to provide a reliable and

suitable alternative to HTTP polling, hence it is based on HTTP and is designed to reuse existing HTTP

server infrastructure for proxying, filtering and authenticating client requests. As such, it uses the

standard HTTP port 80, and for secure connections, port 443. The protocol has two parts, a handshake

and data transfer. The handshake is based on HTTP and begins when a client sends an HTTP GET

method with an “Upgrade” request to the web server and upon successful negotiation, data transfer

occurs where a bidirectional communication channel is established through which each side can

independently send data.

The use of WebSockets for signalling is a growing phenomenon where signalling messages are

exchanged by endpoints and is predicated on the client and server both agreeing on a protocol to use

over the WebSocket connection. Examples of commonly used application protocols are SIP, JavaScript

Object Notation (JSON) and certain proprietary protocols. The success of WebSockets is based on its

ability to create scalable, real-time applications that place less burden on servers due to the reduction

in network traffic and latency, hence easier management of multiple concurrent connections (Fette &

Melnikov, 2011). Table 1 shows an example of a WebSocket handshake initiated by the client and

responded to by the server:

The WebSocket Client Request GET /chat HTTP/1.1

Host: server.example.com

Upgrade: websocket

Connection: Upgrade

Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==

Origin: http://example.com

Sec-WebSocket-Protocol: chat, superchat

Sec-WebSocket-Version: 13

The WebSocket Server Response HTTP/1.1 101 Switching Protocols

Upgrade: websocket

Connection: Upgrade

Page | 19

Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=

Sec-WebSocket-Protocol: chat

Table 1 - Example of a WebSocket handshake. Source: Skvorc et al. (2014).

Basic WebRTC Architecture Figure 2-6 below sums up the overall WebRTC API and protocol stack interactions as implemented by

WebRTC-enabled devices such as web browsers and gateways.

Media

Handling

WebRTC

API

WebRTC

Supporting

APIs

Video Codecs

Audio Codecs

Transport

MediaStream

GetUserMedia PeerConnection

DataChannel

SDP

Web Application

HTML / CSS /

JavaScript

SignallingJS

JSEP

SRTP / SCTP

Identity

Provision

Statistics

Model

DTMF

Figure 2-6 - WebRTC architecture and protocol stack. Adapted from Johnston & Burnett (2013).

Primarily, WebRTC is a P2P communication technology but it employs server intervention mainly on

the signalling plane to enable session negotiation and connection management and ensure that media

capabilities are exchanged by endpoints that could be located behind NATs or firewalls. JSEP, with

media capabilities described by SDP, enables this negotiation upon interaction with a signalling

protocol whose messages are transported using WebSockets. The web server is the main functional

entity employed during this process to proxy signalling messages to endpoints participating in the

communication session. Once established, the media path is setup where voice, video and arbitrary

data are transmitted in a P2P fashion via the RTCPeerConnection object implemented by the

browser engine. If some private network places restrictions on one or more peers, a STUN server finds

Page | 20

the best communication path for media with the TURN server used as a last resort for media relay.

Figure 2-6 therefore illustrates a basic WebRTC model that should be supported as per the W3C and

IETF standards - functionality beyond this basic structure is taken up by other standardisation efforts

and defines the facilities to provide especially when enabling WebRTC support onto other web or VoIP-

based systems.

Open Issues in the WebRTC Deployment Environment The analysis of WebRTC which was conducted as part of this thesis highlighted several open technical,

political and interoperability issues that continue to cause controversy within the WebRTC community

due to the way different schools of thought have sought to assert their influence on the

standardisation process. Some believe that ambiguity fosters room for innovation while others see it

as having the potential to negatively impact the proliferation of the WebRTC standard as a whole

(York, 2013). These open issues include how to approach identity provision and management; the

definition of a Mandatory-To-Implement (MTI) video codec; the definition of standard signalling

protocols and others that are out of scope of this discussion: how to approach video conferencing,

presence, address book integration and notifications.

Identity Provision and Management

The IETF RTCWeb Working Group proposes an identity model where a third-party Identity Provider

(IdP) and the WebRTC service provider are completely decoupled during identity assertion (Muranyi

& Kotuliak, 2013). The model relies on the IdP alone to assert the user’s identity, while the service

provider merely forwards assertions between users participating in a communication session.

Decoupling the interaction between the service provider and the IdP implies a lack of trust of the

service provider while the IdP is wholly trusted to provide identities. Beltran et al. (2014) state that

the service provider should be allowed to manage user identities because they are involved in the

delivery of messages between users, and as such, are often better suited to manage a user’s identity

because it enables them to monitor their activity and provide tailored services. On the contrary, the

WebRTC identity model restricts identity management by the service provider in order to avoid the

potential scenario where the service provider unethically accesses user information without their

consent. As a possible intervention, the user should have the liberty on a case by case basis to indicate

whether to trust the service provider or not (Rescorla, 2015a).

Put another way, the WebRTC model mandates that the called party bear the responsibility of

asserting the calling party’s identity with their IdP as opposed to the service provider bearing this

responsibility. Therefore, during session negotiation, the calling user’s identity is included as a session

description parameter allowing the cryptographic construction of a unique call fingerprint that is also

asserted when a media channel is established. In this way, call participants can trust that they are

talking to the same user they communicated with during session negotiation. Figure 2-7 illustrates the

proposed WebRTC identity model where Alice and Bob are two hypothetical users that verify each

other’s identity with the other’s respective IdP. The diagram also illustrates a functional entity

instantiated by the browser called the IdP Proxy that obtains and verifies Alice and Bob’s identity

assertions that are then forwarded by the web server operated by a service provider.

Page | 21

Bob

Web Server

Alice s Identity Provider Bob s Identity Provider

Signalling Control Data Signalling Control Data

Alice requests user authentication Bob requests user authentication

RTCPeerConnection (audio, video and/or data)

Alice verifies Bob s

identity assertion

Bob verifies Alice s

identity assertion

Alice s IdP Proxy Bob s IdP Proxy

Figure 2-7 - The WebRTC identity model. Source: Loreto & Romano (2014).

In the diagram, Alice and Bob’s browsers are omitted on purpose for simplicity (their interactions are

mediated by the servers). The interaction is handled by a protocol-independent browser API that is

currently, at the time of writing, still under discussion (Rescorla, 2015b). The purpose of the IdP Proxy

is to “decouple the browser from any particular IdP” (Rescorla, 2015b) that way, the browser is able

to handle multiple user identities implemented using different identity protocols, thereby acting as a

bridge between the multiple services that the user is subscribed to, and the different IdPs providing a

particular service. That is, when a service provider requests a user’s identity, the IdP Proxy analyses

the request and forwards it to the appropriate IdP. Thus, this approach creates a more efficient, secure

and flexible identity system where users participating in a session are assured that they are

communicating with the same party with whom session negotiation was initially conducted (Beltran

et al., 2014).

Mandatory-to-Implement (MTI) Codecs

The vision for WebRTC to align with open source software is largely dependent on the licencing status

of the underlying artifacts, in this case, codecs that collectively enable the successful implementation

of WebRTC as an open web standard. The adoption of an MTI codec depends on that codec’s ability

to produce high quality media with good performance, and in such a way that the codec can be

supported on a wide variety of hardware and software platforms. Furthermore, the Intellectual

Property Rights (IPR) status of that codec also has a role to play in such discussions, hence the choice

of an MTI codec, particularly video, has proven controversial, particularly regarding patents. These

debates also stem from the way software distributors and hardware manufactures define the use of

their intellectual property through different licensing structures that tend to promote their own codec

and thus assert their commercial interests.

Page | 22

The IETF has defined a minimum requirement of Opus and G.711 as MTI audio codecs while at the

time of writing the selection of MTI video codecs is under debate - the major contenders are VP8 and

H.264/AVC constrained baseline profile – while the use of additional codecs is at the will of the

implementer. Examples of supported audio codecs include iLBC, iSAC and for integration with VoIP

systems: the Adaptive Multi-Rate (AMR) and the Adaptive Multi-Rate WideBand (AMR-WB) codec,

G.722, Speex and others. In addition, recent variants of the current MTI video codecs, that is, VP9,

VP10 and H.265, are also to be supported (Levent-Levi, 2014). In light of this codec selection, the main

standardisation goal is to position WebRTC as a royalty-free project that has minimal restrictions on

the use and distribution of its software. As a result, the Berkeley Software Distribution (BSD) licence

protects WebRTC, and also enables the freedom around its use.

Audio Codecs

The consensus for the MTI audio codec seems to centre around Opus, followed by G.711 as the second

choice. The ability for Opus to scale from low bitrate narrowband to full-band, ranging from 6 kbps to

510 kbps, makes it a high-quality option that is appropriate for a wide variety of audio applications

including conferencing, in-game chat, live distributed audio performances and many more (Proust et

al., 2015). This varied use of Opus also asserts its adaptability to changing network conditions, thus

allowing sampling of audio at various effective rates (Table 2 illustrates this). At the same time, G.711

accommodates the integration of WebRTC with legacy VoIP-based systems due to its wide adoption

on these systems. Even though the WebRTC community is contrary to this adoption, codecs within the

G.7xx series are widely accepted within the VoIP community and have proven very adaptable (Narbutt

& Davis, 2005). Ultimately, these codecs have a royalty-free status and provide high quality audio

conversion, hence their adoption.

Table 2 - Overview of Opus performance. Source: Narbutt & Davis (2005).

Video Codecs

Alvestrand & Grange (2013) describe VP8 as a royalty-free video codec typically used in a WebM media

container that claims to encode and decode video with better performance than its counterpart

H.264. Services such as Skype, Google Hangouts, and Firefox and so on, implement VP8. In addition,

Google is continually licensing VP8 hardware accelerators to numerous chip manufacturers whose

increasing support may enable the growth and success of VP8 as an MTI video codec (video processing

is more expensive than audio and therefore often implemented in hardware that is not easily

upgradeable). H.264 on the other hand has become the de-facto video standard in VoIP systems, is

also supported by Skype, and so too has reached wide adoption across major web browsers.

Proponents of each codec both claim that their supported codec outperforms the other based on

Page | 23

independent tests comparing the quality of conversion, thus resulting in an apparent hiatus in

standardisation of the MTI video codec.

For WebRTC to reach mass adoption, proponents argue that standards need to mandate H.264 to

avoid the risk of bypassing major adopters of RTC on the Internet while on the other hand; VP8 is

reaching rapid adoption in real-time web applications and hardware devices. Nonetheless, the

conclusion of the discussion around the MTI video codecs should result in a codec that produces a

high video quality and performance; reasonable power consumption of both hardware and software

implementations as well as a stable IPR status that will ultimately promote WebRTC within an open

and competitive communication landscape (Bankoski, Wilkins & Xu, 2011). Currently,

implementations adopt both codecs as a minimum requirement (Cardoza, 2015; Roach & Mozilla,

2015).

Signalling Alternatives

The ambiguous signalling landscape of WebRTC involves the use of SIP and JSON as the two most

common protocols; others include Jingle, Open Peer or other proprietary solutions. SIP is a simple,

extensible, flexible and familiar protocol that implements strong RTC capabilities to support a wide

range of voice, video, data, file transfer, presence, instant messaging and other types of applications

(Sege et al., 2014). Thus, it has played a major role in network convergence by facilitating the seamless

integration of telco services over an interactive platform conducive to service creation and

deployment, in the form of IMS. JSON on the other hand, is a language-independent text format that

exchanges structured data between applications. It does this in a lightweight manner in the form of

formatting rules applied to objects and/or arrays that make up JSON-text. The independence of JSON

results in an instrument that supports a wide range of uses on the web, including the ability to send

signalling messages between endpoints (Crockford, 2006).

Jingle is a key technology in the eXtensible Messaging and Presence Protocol (XMPP) that enables

session establishment features comparable to SIP (Ludwig et al., 2016). As with SIP, Jingle session

negotiation occurs over a signalling channel and the media is exchanged over a separate data channel.

According to Jitsi (2011), inter-working functions between XMPP and SIP networks are feasible. Open

Peer is a proprietary P2P signalling protocol developed by Hookflash which has been designed to

support WebRTC services on the web browser, while also providing an independent signalling stack

for standalone RTC applications (Raymond, 2012). The protocol addresses the scalability issues that

are prevalent within SIP and XMPP while also bringing a novel signalling solution that covers a wide

range of complex application scenarios.

Security Key Management Alternatives

WebRTC promotes inherently secure media transfer through the extended secure RTP profile. This

secure profile ensures that WebRTC conforms to the widely accepted Confidentiality, Integrity and

Availability (CIA) model for securing information systems by providing confidentiality through media

encryption, integrity protection through message authentication and replay protection, and using

cryptographic means to prevent unauthorised access to media (Kurose & Ross, 2012). The Datagram

Transport Layer Security (DTLS) has also been specified for use with SRTP where DTLS handles the

exchange of security parameters, algorithms as well as the derivation of secret master keys using

during the media encryption process (McGrew, 2010). According to Pascual (2013), DTLS-SRTP was

preferred over key management alternatives such as the SDP Security Descriptions for Media Streams

(SDES); Multimedia Key Exchange (MIKEY) and ZRTP.

Page | 24

The wide adoption of SDES in commercial VoIP solutions has led to debates around the key

management algorithm to use. Pascual (2013) states that the arguments made against SDES can also

apply to DTLS. For instance, both eavesdropping and the insertion in the media path of a malicious

web server are possible in both protocols. Furthermore, they are both susceptible to similar kinds of

downgrade attacks. Kaplan (2015) also shares this view. However, DTLS-SRTP is able to secure

signalling and media planes hence guaranteeing both their security unlike SDES and MIKEY which, as

Pascual (2013) states, secures only the signalling plane via SDP independently of the media plane, thus

proving insufficient when considering the security needs of the web. Proponents of SDES argue that it

would provide backward compatibility when interworking WebRTC with VoIP networks and in

response, DTLS-SRTP-to-SDES conversion should take place to enable interoperability with legacy VoIP

networks. Still more, ZRTP was also considered because it “could potentially provide a simpler

approach or even better protection in some scenarios” (Pascual, 2013).

In light of the above, a single mechanism, DTLS-SRTP, was chosen from an interoperability viewpoint

thus when presented with key management options, an endpoint or gateway must select it above the

others. Even though standardisation prohibits SDES use for WebRTC, industry implementations still

provide its support and browsers such as Chrome serve as an exemplar, while Firefox only supports

DTLS-SRTP. The vendor can thus determine the key management mechanism to adopt and in the same

way as Adobe Flash; may support SDES and others via a flag or option that can be enabled at the

developer’s discretion.

Competing Standards Currently, the latest versions of Google Chrome, Firefox and Opera support most of the WebRTC API

components. Internet Explorer (now known as Edge) initially adopted a competing standard,

Customizable, Ubiquitous Real-Time Communication over the Web (CU-RTC-WEB) which as stipulated

by Bertin et al. (2013) later became the Object API for RTC (ORTC) until the first quarter of 2016 when

WebRTC support also began to be included. ORTC implements session negotiation differently from

the SIP-based offer/answer model accompanied by SDP, and provides web-oriented conditions that

are more suitable for session negotiation to occur. An application can either send a multimedia track

for voice or video, or set up a data channel to transfer other arbitrary data formats, as with WebRTC.

Differences come about when implementing “sender”, “receiver” and “transport” objects which are

used to define “parameters”, configured to describe what an object does and “capabilities”,

configured to describe the media, ICE and transport capabilities possible. The “sender” object bundles

these configurations and transmits them to the “receiver” object for processing (Microsoft

Developers, 2016). Figure 2-8 shows the interaction between the different objects to exchange media

and data.

Page | 25

Figure 2-8 - ORTC object interactions. Source: Microsoft Developers (2016).

According to Cardoza (2015), ORTC in itself is not meant to replace WebRTC, even though some

members of the RTC community consider it a likely successor of WebRTC (often called WebRTC 1.1),

it is typically implemented as a layer on top of WebRTC which is used to extend its SDP functionality

with support for backwards compatibility. Hence, both standards implement interrelated APIs, mainly

the RTCPeerConnection API, thereby enabling interoperability between the two. Similarly,

WebRTC implements some ORTC concepts such as the use of RtpSender and RtpReceiver

objects. The signalling model for the ORTC approach is not clear because its definition came about

mainly to address the challenges facing WebRTC regarding SDP functionality. The ORTC API can

implement advanced capabilities such as layered video coding, simulcast, scalable video coding etc.

more easily than WebRTC, which would require changes to the browser source code. The level of

abstraction ORTC offers enables greater flexibility of the types of applications developed.

The Google WebRTC Project envisions a full convergence of WebRTC and ORTC where developers have

the option to “upgrade” WebRTC to higher-level ORTC APIs with the freedom to bypass use of SDP

(Microsoft Developers, 2016). This goes on to show that the rapid evolution of the web towards a

standards-based environment is more reason for network operators to leverage WebRTC which is the

channel through which RTC capabilities are added to the web browser.

Conclusion This chapter provides an analysis of how the W3C and IETF are championing the standardisation

process to define the interaction between the set of WebRTC APIs with the underlying communication

protocols to provide native support for real-time communications capabilities on the web browser.

This analysis served to show how the web platform has evolved over the years to support more

dynamic and interactive content. The basic architectural model shown in Section 2.6 is segue for

subsequent chapters which look at adjusting this web model to enable WebRTC access to the IMS

platform. The discussion of the controversial issues facing WebRTC expresses the challenges inherent

in the standardisation process, where major stakeholders have the influence and commercial power

to govern and augment its adoption. However, there are opportunities for these issues: identity

provision; selection of MTI video codecs; signalling alternatives and security mechanisms, to be

formally addressed in WebRTC’s integration with IMS. As such, Chapter 3 covers the basics of IMS

architecture, but more importantly seeks to emphasise the aspects of IMS that position it as a central

integration platform for third-party services. The discussion will show how network operators

historically have sought to evolve their networks, particularly in the area of multimedia services, with

recent trends indicating an openness toward web-based paradigms.

Page | 26

3. Chapter 3 – The IMS Service Architecture

Overview The purpose of this chapter is to give historical context to the IMS service layer which delivers

multimedia services to subscriber using entities that are either resident in the home network or

accessible via gateways into external domains. The web-based version of this integration channel

using WebRTC necessitates an investigation into this context to determine the suitability of the IMS

service platform to support an external system such as the one envisioned.

IMS Application Servers The IMS service layer comprises ASs whose main purpose is to “host service containers in which

applications are deployed” (Tsietsi, Honye & Thinyane, 2015). There are three types, each with a

different approach to providing such services: the SIP Application Server; the Open Services

Architecture (OSA) Service Capability Server (SCS) and the IP Multimedia Service Switching Function

(SSF) (Bertin, Yahia & Crespi, 2007). Using these servers, it is possible to extend the IMS ecosystem to

connect third-party services that can be deployed to various types of terminals without needing to

change the endpoints themselves. As such, the service layer facilitates a coordinated service

deployment strategy that benefits from the underlying functionality provided by the main application

layer routing (CSCFs) and database (HSS) functions to deliver QoS, security, charging, billing and other

enablers horizontally across services. Figure 3-1 illustrates the arrangement of these ASs in relation to

each other and demonstrates how they interface with the S-CSCF as the main call control function.

Subsequent sections describe their functions and roles during service execution.

HSS

SIP AS

OSA SCSS-CSCF

IM-SSF

OSA AS

gsmSCF

DIAMETER ISC - SIP OSA API

ISC - SIP

ISC - SIP CAMEL APPLICATION PART

OSA SERVICE ENVIRONMENT

CAMEL SERVICE ENVIRONMENT

SIP AS

ISC - SIP

IMS HOME NETWORK

THIRD-PARTY SERVICE PROVIDER

Figure 3-1 - The IMS service architecture. Adapted from Khlifi & Grégoire (2008).

Page | 27

Figure 3-1 also shows that SIP is the main signalling protocol through which service interaction takes

place, thus the IMS Server Control (ISC) interface is standardised to define the routing of SIP messages

to ASs (Reichl et al., 2006). The ISC provides an easy way to manage service logic and integrate various

types of services that are supported by the different types of ASs.

The SIP Application Server

The SIP AS enhances the ability to provide a modular architecture where different service providers

can deploy one or more services onto a common IP core. It is a native IMS AS that provides signalling

capabilities for handling the execution of a service where different components are invoked in

response to SIP signalling requests (Khlifi & Grégoire, 2008). These invocations occur based on the

interactions between key elements within the IMS architecture and may result in the AS assuming

various server roles: redirect; proxy; originating user agent; terminating user agent or back-to-back

user agent. The establishment of a multimedia call session for instance, involves the use of the S-CSCF

and the MRF during service execution where the S-CSCF applies filter criteria to decide which service

will handle the call, and the MRF controls the media capabilities required for it.

The SIP AS can also reside in a third-party network, usually with service level agreements with the

network operator, and plays an important role in adding new services to the IMS network

(Khandelwal, 2007). There are various SIP-based techniques that can be used to achieve this goal, such

as the SIP Servlet API or the SIP Common Gateway Interface (CGI) (Khlifi & Grégoire, 2008). The SIP

Servlet API is a Java API that defines a converged servlet model that permits the mixing of SIP and

HTTP applications, while SIP CGI defines a CGI model for SIP that is somewhat inherited from HTTP

CGI. Although these technologies are not expressly covered, it is important to note them here as they

are part of a more general discussion on extensions to SIP-based networks, particularly the kinds of

extensions that help create a service platform that is based on a convergent architectural model that

leverages HTTP to create novel, integrated applications.

In addition, the ISC interface also facilitates this service extension through its ability to adapt to

interactions with ASs outside of the operator domain, hence breaking the concept of the walled

garden (Higa, 2008). There is a common view that telco networks operate in this manner where access

to their devices, platforms and equipment is restricted to outside entities. However, the ability for the

SIP AS and the other ASs as shown in subsequent sections to facilitate external access to the IMS

contradicts this common view. Bertin, Crespi & L’Hostis (2011) are also of a similar opinion where they

refer to the argument of the telco network as a closed network to be a myth.

The OSA Service Capability Server

The OSA SCS is an AS that acts as a gateway between the IMS and ASs based on the OSA framework,

whereby connectivity between OSA servers and the OSA SCS is provided through the OSA API (3GPP,

2008a). The OSA API is jointly defined by the Parlay Group, 3GPP and ETSI where the Parlay Group

specifies a set of interfaces that are independent from the underlying network technology, since the

specifics of the underlying network are the responsibility of both the 3GPP and ETSI. The OSA SCS

translates instructions sent through SIP messages into a format understood by the OSA API to provide

access to OSA-based services whose logic resides in an OSA AS (Moerdijk & Klostermann, 2003). The

OSA SCS is typically located in the home network, whereas the OSA AS can be located externally in a

third-party service provider network, or on the open Internet. Therefore, the OSA SCS and the SIP AS

perform similar functions in terms of communicating with the S-CSCF via the ISC to invoke services. In

the same way as the SIP AS, the OSA SCS can also interact with the MRF to define media interactions

and how the OSA platform is to incorporate the IMS service capabilities with their service enablers.

Page | 28

The IMS – Service Switching Function

The IM-SSF is an AS that acts as a gateway between the IMS and services that implement the

Customised Applications for Mobile networks using Enhanced Logic (CAMEL) standard, which are used

in Global System for Mobile communication (GSM) networks. Camarillo & Garcia-Martin (2007) show

that CAMEL-based services operate over legacy Intelligent Network (IN) infrastructure, and as such,

implement non-IMS protocols for session control involving IN service capabilities. For example, while

the SIP AS uses the Diameter protocol to interface with the HSS, the IM-SSF uses the Mobile

Application Part (MAP) when doing the same. As a result, the interaction between the IM-SSF and IMS

ensures that GSM-based functional entities can thus provide services to users, whereby the GSM

Service Control Function (gsmSCF) handles service logic (Ghadialy, 2004).

Insights from Application Server Functionality From the discussion on the IMS ASs, the following requirements can be made in terms of

conceptualising how the IMS service architecture fits in with the overall aim to integrate with external

networks such as WebRTC networks.

1. Gateway functions as bridges to external networks

There is a strong historical context for integrations with IMS involving external systems. The OSA SCS

and IM-SSF give evidence of the exposure of service capabilities to third-party networks. These

functions act as ASs on one side and as gateways on the other by describing interfaces and protocols

to external networks that may not adhere to IMS standards but are translated to IMS-based protocols,

as exemplified by using SIP when interacting with the S-CSCF and the OSA API or CAMEL when

interacting with the OSA framework and the GSM network respectively.

2. Reuse of IMS functionality

Since the implementation of Common IMS, the 3GPP has developed a systematic way of enabling

third-party access to IMS where any new requirements that may emerge from the integration are

handled by working groups and liaisons that are appointed to oversee extensions to IMS. For instance,

when integrating with the OMA, a release package was created that described their definition,

requirements and architecture for services employing PoCC, messaging, conferencing, presence and

availability and many more (Open Mobile Alliance, 2005). As such, third-parties can have their services

integrated in a coordinated way which demonstrates an important business case for the IMS.

3. Use of internal and external protocols

The internal use of SIP within the home network ensures consistent development of the IMS service

environment while external interfaces such as the OSA API are suited for IMS integration with other

networks. Given that integrations with other networks are not uncommon, IMS also adapts to suit

these interactions. For example, the implementation of SIP through the ISC interface ensures that the

different ASs are able to interact directly with the S-CSCF, thus enabling third-party access to specific

functions while also enabling adaptability to external interfaces.

Standardised Interfaces between Participating Entities The telco service layer expanded further to include the GSMA as the standardisation body in charge

of implementing web service-based APIs. Haas & Brown (2004) describe a web service as a web

application that uses HTTP and eXtensible Markup Language (XML) as underlying technologies for its

use, access and description in order to support interoperable interactions between endpoints over a

network. Initially, telcos implemented CAMEL-based IN services whose implementation was typically

Page | 29

restricted to their network, and as a result, demand for “more innovative programming paradigms for

service platforms” (Magedanz, Blum & Dutkowski, 2007) was prevalent within the industry, hence the

adoption of service interfaces that provided a high-level abstraction from the underlying network. In

fact, this ability to abstract away from the platform led to the proliferation of API implementations

that rested upon the notion of service providers reusing existing investments in components such as

ASs within their architectures to create extensible service delivery platforms.

According to Khlifi & Grégoire (2008), the OSA API enables the network operator to support APIs based

on programming practices that result in protocol/platform-independent access to the components

employed when executing services. Thus, the evolution of the Parlay OSA API to Parlay X led to the

rapid development of applications using web services. Furthermore, interfacing mechanisms such as

the Java APIs for Integrated Networks (JAIN) were developed as an alternative means through which

service management and execution could be supported. JAIN provides an efficient application

execution environment that supports the creation of integrated service mashups through the JAIN

Service Logic Execution Environment (SLEE) (Tsietsi et al., 2015).

Still more, Internet-wide demand for more efficient API standards for third-party service interaction

led to the emergence of Representational State Transfer (REST)ful web services. RESTful-based web

services are modern and lightweight due to their efficient use of HTTP concepts in their architectural

style where interactions between clients and servers leverage HTTP methods to exchange data. Thus,

the telco’s adoption of the OMA Next Generation Service Interfaces (NGSI) and GSMA OneAPI as

dominant API implementations within the field of RESTful web service-based APIs points to the

significance of the pervasive influence that the web is beginning to have on telecommunication

networks. The NGSI framework details APIs for data configuration and management, call control and

configuration, multimedia list handling, context management, service registration and discovery and

identity control, whereas OneAPI enables global operators to create applications that are written for

mobile networks interoperable across multiple networks (Tsietsi et al., 2015). Figure 3-2 shows a

framework of the overall telco network and the different APIs.

Figure 3-2 - Telco API overview. Source: Tsietsi et al. (2015).

Page | 30

Conclusion The 3GPP collaborates with other standardisation bodies to define how to open telecommunication

networks to third-parties. This integration is realised through standardised interfaces that enable ASs

and the core IMS entities to interact with each other, thus showing how these interfaces are crucial in

positioning the IMS as an integration platform. As such, providing common capabilities accessible to

different kinds of user terminals, even those served by different platforms such as the OMA, is made

possible through API implementations in the form of OSA API (nee Parlay X), OMA NGSI and OneAPI

which are notable exemplars. The aim is that a service interaction of this sort could enable “secure,

standards-based and billable access to services” (Tsietsi et al., 2015) where the network operator

natively supports these services over their IMS architectures without having to rely on third-party

infrastructure. To this end, the next chapter will analyse seminal work from the 3GPP in the form of a

key technical report which investigates, in great detail, the possible architectural models that can help

realise the integration between IMS and WebRTC, as well as the key design questions that are central

to such conversations.

Figure 33-Error! No sequence specified.- Telco Adoption of APIs in their Networks. Source: (Tsietsi et al., 2015)

Page | 31

4. Chapter 4 – The Integration of IMS with WebRTC: A Review

Overview This chapter aims to discuss the architecture and the mechanisms that are necessary to support the

integration between WebRTC and the IMS service layer. The previous chapter facilitated a discussion

on the functional roles of standard IMS service layer elements and demonstrated what is necessary to

support the integration by contextualising the extent to which existing elements are re-imagined or

have their roles and functions re-defined. In recognition of the need to chart a clear path toward the

goal, the 3GPP through an existing working group, investigated the architectural implications of

providing WebRTC access to IMS. The result was the drafting of TR 23.701 which is a technical report

that emerged out of this investigation. The report proposes several integration models, each one

describing a qualitatively different way of combining WebRTC and IMS (3GPP, 2013). It represents

exploratory work that proposes underlying protocols and techniques to be used to facilitate the

integration and asks some critical questions when assessing potential telco interest. The discussion on

architectural models culminates in the introduction and analysis of the 3GPP reference architecture

for WebRTC integration. Subsequent chapters will detail how the model that is proposed in this thesis

borrows from specific architectural alternatives including the reference architecture but is constrained

by the objectives of the investigation.

Requirements for a Basic Integration Architecture The previous chapter highlighted three important features of the IMS service layer: the use of gateway

functions as bridges to external networks; the re-use of IMS functionality, and the use of internal and

external protocols. Thus, if follows that the integration model must fulfil these fundamental

requirements to determine the readiness of the IMS to leverage WebRTC.

Requirement 1 - the use of gateway functions as bridges to external networks

Chapter 3 introduced the AS as the entity responsible for hosting and executing services, and where

necessary, becoming a gateway function to connect external domains to the IMS. Similarly, the

integration with WebRTC requires the definition of functional nodes that have their roles re-imagined

to handle WebRTC-specific extensions in order to eliminate or minimise modifications to standard IMS

elements. This effort to minimise the extent of the modifications imposed is an important

consideration given that modifications have the potential to adversely affect other (possibly

unrelated) IMS processes, or otherwise complicate the integration of such features into existing

equipment or software, making them less practical. Furthermore, Shores et al. (2014) emphasise in

their description of the methods to adopt when extending IMS to HTML5 environments that the

importance of developing a system that does not require extensive or fundamental modifications to

the browser model (where HTML5 is one of the main standards upon which WebRTC is based) is

paramount. As such, the AS as the foundational entity for the development of an additional or re-

imagined mediation function results in an architecture that is simple, effective and does not require

expertise to develop applications to use the system.

Requirement 2 - the re-use of IMS functionality

Benali et al. (2004) mention that the ability to deploy new technologies (such as WebRTC) over

operator networks requires that these technologies are realised “with reduced capital and operational

expenditures in order to maintain sustainable growth of the whole industry and society” (Benali et al.,

2004). Therefore, the main advantage of mediation functions such as the P-CSCF or an SBC is the ability

Page | 32

to evolve the network incrementally to integrate with WebRTC, thus resulting in re-usable

architectures, components and frameworks. Moreover, there is great opportunity in retaining

investments in quality developers who have extensive knowledge of the web and telco ecosystems

that tend to be complex and cumbersome to gauge.

Standards Development Organisations are investigating each environment and their potential

integration forms to tap into systems whose infrastructure is continuously being adapted to solve real

problems through communication services. Even though the WebRTC and IMS integration use case is

still ambiguous, under-specified and lacks a fully interoperable framework, there exists further

potential for research and standardisation efforts to deliver appropriate models. For instance, Bertin

et al. (2013) suggest either extending IMS to enable inter-working with WebRTC-based functions using

gateways or creating a new telco control plane that is cloud-based and supports Infrastructure-as-a-

Service (IaaS); Service-as-a-Service (SaaS); and Mobile Virtual Network Operators (MVNOs) and other

ways of abstracting the network using WebRTC as the driving technology.

Requirement 3 - the use of internal and external protocols

The implementation of standardised interfaces ensures that entities can communicate using protocols

and mechanisms that conform to pre-defined requirements and security considerations determined

by standardisation bodies. The integration landscape therefore involves a wide array of these

protocols that are translated and converted by mediation functions. Furthermore, inter-connection

with the web domain results in the creation of an innovative space that will allow for even more

flexible mechanisms that can be easily abstracted at various levels. As such, Requirement 3 is split into

Parts a and b to cover a discussion of the communication protocols supported and the utilisation of

the WebRTC API respectively.

Part a - the implementation of internal IMS protocols

Rosenberg et al. (2011) explore the ability for browsers to support basic operator network protocols

to enable interoperability at levels that go beyond the reliance on mediation servers. Both WebRTC

and IMS employ protocols such as UDP, Transmission Control Protocol (TCP), ICE and RTP, although

WebRTC employs the secure RTP profile, hence ensuring a common framework that requires little

modification to the overall architecture as previously discussed, and reduces challenges experienced

by gateways when performing media conversions. Furthermore, the WebSocket protocol as the main

communication channel for WebRTC messages uses existing HTTP infrastructure, which IMS also

supports. However, differences in the protocol suites are evident, for example, when WebRTC adopts

a key exchange algorithm such as DTLS to secure media and data channels whereas the IMS mainly

uses SDES.

Still more, the ability to support data exchange in the integrated scenario adds complexity. The

WebRTC Data Channel is used to transport arbitrary data such as text messages, files and photos.

Jesup et al. (2015b), also suggest using it to exchange control plane information between peers to

enable signalling, conferencing, gaming and other use cases. Within IMS, the Binary Floor Control

Protocol (BFCP), the Message Session Relay Protocol (MSRP) and T.140 (a real-time text presentation

layer protocol) can perform similar functions to the Data Channel. BFCP is used to manage the way

applications access a set of resources common to participants in a conference, where floor control

determines whether users have shared or exclusive access. For instance, the protocol instils

requirements that can enable a user to send media to a particular media session and not the other

(Miniero et al., 2008). MSRP on the other hand is used within a SIP session, typically in the RCS context

Page | 33

and as with voice and video sessions, uses SDP to negotiate messaging capabilities between clients

(O’Connell, 2007). Further, T.140 is a text format used in the context of a Global Text Telephony (GTT)

environment where real-time text conversations take place either independently or in combination

with other media. It can also be used in conjunction with IMS SIP to realise its functionality and

therefore support interoperability with other networks (ITU-T, 1998). Thus, inter-working the Data

Channel with IMS could foster applications that are yet to be explored or are still under investigation.

Part b - the use of external protocols

The ability for WebRTC to provide readily available solutions in the form of a standardised web API

lowers the barrier of entry for developers wishing to experiment with browser-based RTC capabilities

that were previously too complex and cumbersome to implement using plugins. With the browser as

the main access platform for WebRTC, the network operator is thus able to provide services

ubiquitously over devices that are not solely limited to the web. In fact, the use of the WebRTC API

aligns with the adoption of the RESTful web service-based interfaces such as OSA API and OMA NGSI

that enable an efficient external interface to the IMS network. On the same note, the demonstrations

conducted by companies such as Google and Ericsson show the innovative ways in which the WebRTC

API components are being used to develop applications based on voice, video and arbitrary data

exchange.

Basic Integration Architecture Dynamic client applications are created and run over lightweight web server functions whose

functionality can be mimicked in the integrated scenario by IMS AS functions suitably adapted to

support service provisioning and interoperability with WebRTC. For this purpose, a client is an

application, running on a WebRTC-enabled browser, capable of accessing IMS services hosted by an

AS and running over User Equipment (UE) (Muswera & Terzoli, 2010). A UE is any device with which a

user can interact with a client (a hand-held telephone, laptop, personal computer etc.) and offer

access to multiple access networks with the ability to roam. Figure 4-1 illustrates an integrated

network where the question marks symbolise a collection of mediation functions that need to be put

in place to enable the integration of WebRTC with the IMS service architecture.

Figure 4-1 - Basic integration architecture showing. Source: Sansay (2013).

Solutions Analysis The analysis that follows discusses and interrogates each solution as proposed by the 3GPP in technical

report 23.701. The report includes certain assumptions that have been made about the architectural

requirements for each solution and these are listed as follows: first, that SDP is used for negotiation

Page | 34

media parameters; second, media multiplexing is not supported and if used by WebRTC clients, the

IMS network would remove the portion of the SDP offer that is associated with media multiplexing

and third, that minimal modifications be made to the IMS network when enabling WebRTC access to

IMS. Therefore, WebRTC-based media extensions are handled by inter-working functions. Lastly, the

report also describes the use of functional entities handling NAT traversal, charging and billing policy

control to enable QoS support. Each solution is analysed according to three key aspects: architecture,

registration and session handling scenarios. While the discussion on architecture identifies the entities

involved, the registration and session handling scenarios detail the interactions that occur between

these identified entities. The use of this approach allows the discussion to highlight or emphasise the

similarities and differences between each solution. In addition, missing requirements can be easily

identified, leading to the possibility of synthesising a suitable integration architecture based on

specific criteria.

Solution 1

Figure 4-2 -Solution 1 architecture. Source: 3GPP (2013).

Architecture

Solution 1 depicts a generic integrated system showing an RTCWeb Inter-Working Function (IWF)

mediating the control plane, with the IMS Access Gateway (AGW) mediating the media plane. The IWF

in IMS is responsible for providing signalling interworking between the IMS network and a service

provider that may be using a different signalling protocol to SIP (Brouquet, 2008). The Gweb reference

point represents any of the signalling alternatives described in Section 2.7.3 and is thereafter

translated into a format that conforms to the Gm reference, symbolising SIP, which the P-CSCF

propagates towards IMS. The IMS AGW is a functional entity that resides in the home IMS network

and is responsible for reserving resources that are to be consumed during a media session, where

either client can communicate behind a NAT or firewall (Camarillo & Garcia-Martin, 2007). During

signalling and session negotiation, the P-CSCF requests a transport address from the IMS AGW which

then reserves an address for the requested media flow and sends that to the P-CSCF for inclusion in

the control path. Consequently, the IMS AGW routes the media packets appropriately towards clients

participating in the session. The solution also provides support for IP version 4 (IPv4) and IP version 6

(IPv6) translation performed by the IMS Application Level Gateway (ALG) co-located with the P-CSCF.

The solution depicts the IMS AGW working in conjunction with the gateway shown next to it in Figure

4-2. From the diagram, the author gleans that this function applies IP forwarding policies to media to

provide differentiated WebRTC services with these policies informed by the Policy Control and

Charging Rules Function (PCRF), a “functional element that encompasses policy control decision and

Page | 35

flow based charging control functionalities” (3GPP, 2008b). The implementation of Gx/Gq and Rx/Rq

reference points has the ability to further proliferate the creation of state-of-the-art integrated

business models (Pascual, 2014). This thesis does not consider QoS constraints, along with NAT and

firewall traversal using ICE connectivity because the Policy Control and Charging (PCC) framework is

extensive and requires independent specification and investigation beyond the research scope as per

Section 1.5.

Registration Scenarios

Registering a WIC using IMS Digest-Based Authentication

The scenario, as shown in Figure 4-3, begins with the WebRTC IMS Client (WIC) registering with IMS

via the RTCWeb IWF over a WebSocket connection. The IWF then converts this connection to UDP,

Transport Layer Security (TLS) or TCP when relaying signalling messages to the P-CSCF. In sending the

“Register” message, the WIC maintains an identity binding by including its IMS Public User Identity

(IMPU) as the username within the message but the solution does not discuss possible strategies to

allocate the IMPU and associated credentials to the client. As such, opportunities exist to employ a

web server either managed by the network operator or a third-party in a trust relationship with the

network operator in this process. Friese et al. (2010) suggest various ways of integrating the Internet

and web identity strategies to support identity provision where, for instance, the browser can store

the user’s identity information via browser cookies or adopt the HTML5 Web Storage API in the client

application to allow for storage that is more persistent following an initial subscription to IMS. These

browser-based mechanisms represent alternatives to the Subscriber Identity Module (SIM)-based

identity management schemes that are pervasive in IMS. Having propagated the “Register” message

to the IMS core, the scenario follows the basic IMS registration flow (Khandelwal, 2007).

Page | 36

Figure 4-3 -Registering a WIC using IMS digest-based authentication. Source: 3GPP (2013).

Alternative Registration where the RTCWeb IWF acts as an IMS user

The call flow depicted in Figure 4-4 is an alternative to the one shown in Figure 4-3, where in this case,

the RTCWeb IWF acts as an IMS user by performing third-party registration on behalf of the client. The

process is identical to IMS registration and results in the IWF receiving an IMPU. When a client

registers with the IWF, it includes its username and appropriate credentials within the “Register”

message. Once authentication is successful, the IWF creates a binding between the username and the

specific IMPU allocated to the user. This procedure is evident in the case of the IWF acting as an IP

Private Branch Exchange (IP PBX) unit. An IP PBX is an entity that typically resides at the network edge

and is used to switch phone calls between users residing in the same domain while also relaying

control messages and requests between different domains (Prasad & Kumar, 2011). It is

predominantly used by enterprises in order to handle client download, identity authentication and

location management functions thus applying appropriate business level policies via standardised

interfaces. Solution 6 which is presented later in this chapter suggests the use of WebRTC-based IP

PBX emulation functions.

Page | 37

Figure 4-4 - Alternative registration process. Source: 3GPP (2013).

Session Handling Scenario

In the session handling scenario as depicted in Figure 4-5, a basic multimedia call occurs between a

WIC and a standard IMS client with either client having the ability to originate and terminate the call.

The WIC sends a “Setup Session” request to the IWF with the address of the target user included within

the request. The IWF then sends an “Invite” message to the P-CSCF which follows regular IMS session

setup procedures. Once confirmation is received that the session can begin, media flow occurs via the

IMS AGW where the necessary media inter-working is performed.

Page | 38

Figure 4-5 - Session handling between a WIC and an IMS UE. Source: 3GPP (2013).

Page | 39

Solution 2

Figure 4-6 - Solution 2 architecture. Source: 3GPP (2013).

Architecture

Solution 2 decomposes the generic IWF introduced in Solution 1 into a WebRTC Signalling Function

(WSF) and the WebRTC Media Function (WMF). Although not explicitly illustrated in the diagram nor

mentioned in the report, the IMS AGW is an important entity that is required to handle the IMS-side

media inter-working, therefore, it is safe to assume the inclusion of such an entity, or a similar one,

within the IMS network.

The WSF comprises a signalling component, an SDP mediator and a Media Function Controller (MFC).

However, additional components are supported, such as an ICE Agent to handle ICE connectivity. The

signalling component is responsible for converting WebRTC-side signalling with the session

negotiation capabilities being handled by the SDP Mediator. The SDP Mediator is also necessary to

translate any extensions to SDP messages that the client may need to add to support WebRTC for

example, the use of media multiplexing via RTP/RTCP into one port. WebRTC supports multiplexing

whereas IMS does not, therefore the integration architecture would have to adapt its SDP interactions

accordingly. The MFC coordinates with the WMF during session management to control media

resources as well as to apply appropriate congestion control schemes when reserving such resources

- the RTP mediator within the WMF is responsible for resource reservation and performs media

conversion. Other components within the WMF include a transcoder, responsible for media codecs

conversions in addition to an ICE Agent.

The ability to design components to support WebRTC extensions results in innovative architectures

that could be co-located with different IMS entities, for instance, the WSF can be co-located with the

P-CSCF while the WMF with the IMS AGW. Such an arrangement would also require enhancing the

interfaces between these components in order to support efficient communication mechanisms that

are more relevant to the WebRTC domain and to enable the WebRTC-based IWFs to process them

more effectively. As such, there is a potential to standardise the Gwebrtc and the Gwebrtcm

(representing media) interfaces particularly given that the WebRTC-side signalling scenario has been

intentionally left ambiguous and is left to the will of the implementer.

Page | 40

Registration Scenarios

Registration using SIP over WebSockets for IMS authentication

The WIC initiates the registration process by sending a “Register” request via SIP over WebSockets to

the WSF along with a username and associated credentials to validate and authenticate the user. The

user obtains this identity information through means outside the scope of the solution. On behalf of

the WIC, the WSF then includes the user's IMPU in the “Register” request sent to IMS for basic

authentication. On the other hand, the WSF can simply indicate within the request that the user is

part of the trusted domain and therefore does not require further authentication. The registration

procedure ends as normal with the I-CSCF forwarding a success response to the WSF. The assumption

is that this scenario is supported in addition to the ones depicted in Solution 1 where basic IMS

registration is to be supported by all communications provided over the IMS network. Figure 4-7

shows the call flow for the registration procedure.

Figure 4-7 – Registration using SIP over WebSockets. Source: 3GPP (2013).

Registration using Web Authentication

This registration scenario enables a user to authenticate with IMS using web identities through web

authentication schemes not specified within the solution. The WSF is responsible for receiving a user’s

web credentials and issuing them with an access token once authentication is successful, and further

performs the necessary mapping of the user’s web identity to their IMPU in order to continue with

Page | 41

IMS registration. Even though the access token issuance is not specified within the procedure, the

authentication nodes employed during registration namely the WSF are trusted by IMS entities.

Figure 4-8 - Registration using web authentication. Source: 3GPP (2013).

Session Handling Scenario

The session handling scenario follows a similar model to Solution 1 where, instead of the RTCWeb

IWF, the clients forwards the “Setup Session” request to the WSF that then propagates relevant

“Invite” messages to the IMS core network and back to the WebRTC domain. Media is similarly

handled as outlined in Solution 1 however, the WMF is included in the communication path, in

addition to the IMS AGW.

Page | 42

Solution 3

Figure 4-9 - Solution 3 architecture. Source: 3GPP (2013).

Architecture

Solution 3 introduces the WebRTC Access Aggregator Function (WAAF) and the WebRTC Web Server

Function (WWSF). The WAAF is an IWF that performs advanced features, in addition to signalling

translation. It performs identity management by communicating with the WWSF to allocate IMS

identities to the user and acting as a SIP Registrar when authenticating those IMS identities – a

function that occurs in consultation with the P-CSCF as outlined in the discussion on registration which

follows. The WAAF also aggregates the signalling messages that are sent by multiple clients to the P-

CSCF in an efficient manner. Furthermore, when the WAAF is located in a third-party network and

provided the WWSF is also in that same network, it can optionally provide communication services to

the user to enhance their experience. Within the solution, the WAAF and WWSF perform the majority

of their functions together, hence, the W2 reference point links them.

The WWSF on the other hand simply hosts the IMS services that the user subscribes to and accesses

these services via web pages, therefore, it is the initial point of contact a user has with IMS. The WWSF

can either be located in the home or third-party network and can perform advanced features in

combination with the WAAF such as identity management as previously mentioned. As a result, it

applies web authentication procedures to register a WIC with the network by maintaining a consistent

binding between their web and IMS identities, thereby putting the necessary security measures in

place.

Registration Scenario

The introduction of the WAAF and WWSF emphasises the importance that the solution places on

utilising web-based schemes to manage user identities and provide enhanced services, hence their

combined functionality. As a result, the description of the registration scenario is extensive and

expresses procedures in terms of how they differ in the authentication method: digest-based IMS

authentication, web authentication and wild-card IMPU; type of IMPU being registered and ownership

(typified by location) of the WAAF and the WWSF. Figure 4-10 to Figure 4-13 illustrate the call flows

for user registration.

Registration using IMS Digest

This scenario depicts a digest-based registration process when a WIC registers an individual IMPU via

the WAAF located in the home network. The WAAF is restricted to the home network to prevent man-

Page | 43

in-the-middle attacks that digest-based authentication is easily susceptible to, whereas the WWSF can

either be located in the home or third-party network. A secure connection is established using HTTPS

between the WIC and the WWSF in order to authenticate the user's IMS credentials by interacting

with the WAAF via the W2 interface which forwards their identity information to the appropriate IMS

entities. The WIC then opens a secure WebSocket connection to the WAAF using Cross-Origin

Resource Sharing (CORS) procedures to ensure that the WIC is served by a trusted WWSF that has

been authorised to serve it. Following which, a “Register” request can then be sent to the P-CSCF via

the secure connection.

Fette & Melnikov (2011) state that CORS is a mechanism used by the WebSocket protocol when

connecting clients and servers, whereby a server can reject a script that comes from an unknown

(essentially untrusted) origin and as a result, ensures that requests are received from entities trusted

by the network to perform the authentication. According to Sansay (2013), it is a mechanism that

needs to be properly handled in order to avoid the potentially large security risks of implementing

WebRTC and IMS gateway functionality, particularly when interfacing with an external web server. It

is the responsibility of the WAAF to translate the transport mechanism from WebSockets to the

appropriate IMS protocol that can be understood by the P-CSCF and other core IMS entities. The

process then follows standard IMS registration procedures that once are successful, allow the user to

gain access to IMS communication services.

Figure 4-10 – Registration using IMS digest. Source: 3GPP (2013).

Registration using Web Authentication

This registration scenario describes the interaction between the WWSF and the WAAF in the

authentication of IMS users using their web identities. It is similar to the corresponding one described

in Solution 2 in that it is the preceding step depicting how a user obtains a mapping of their IMS

identity based on their web identity (a process which was out of scope for Solution 2 given that the

architecture does not show interactions with a web server function).

The client initiates the registration process by establishing a secure connection to the WWSF and

provides their user information when logging onto the service. A security token is then issued to the

client containing the user's IMPU. As in the previous scenario, the WIC establishes a secure connection

to the WAAF using CORS, after which an authentication-less registration process ensues where the

Page | 44

WAAF informs the P-CSCF that the WWSF has already authenticated the user during the issuance of

the security token. Because the WWSF is a trusted authentication node, IMS successfully registers the

user. The use of the WWSF as a trusted entity borrows from Jennings, Peterson & Watson (2002) who

describe the ability of certain SIP servers to authenticate and assert user identities within a restricted

domain.

The WAAF must strictly reside in the IMS network for it to completely trust the authentication-less

registration request from the user, while on the contrary, the WWSF can be located either in the home

or third-party network even though it is also involved in the authentication process. Moreover, the

WAAF is a registrar server and is therefore the one that performs the crucial validation step checking

the security token received from the client to make sure that the IMS identities being registered are

from an authorised WWSF.

Figure 4-11 – Registration using web authentication. Source: 3GPP (2013).

WAAF Registration of Wildcard IMPU with IMS on behalf of WWSF

This scenario is an extension of Solution 1 where it shows the RTCWeb IWF registering an IMPU on

behalf of the clients it serves. In this case, the WWSF is responsible for obtaining a range of IMPUs

that it allocates to the pool of clients it serves. The effect of employing the WWSF and WAAF during

this process results in differing registration modes that the IMS applies depending on the entity the

WAAF interfaces with. For instance, when the WAAF interfaces with an Inter-connection Border

Control Function (IBCF) or IP PBX, the IMS pre-registers the IMS identities in the wildcard IMPU range

during user terminal configuration to hide the terminal configuration from the third-party network.

Brouquet (2008) defines an IBCF as a function that may be adopted between two different enterprise

domains, typically employing SIP, to enable communication in such a way that the networks hide their

configuration to protect them from security vulnerabilities. It can also obfuscate SIP headers and other

information about the network such as the number of S-CSCFs, their capacity and the capacity of the

network. The IBCF may also integrate with an IWF to enable interoperation with other signalling

protocols such as WebRTC-based ones. On the other hand, the WAAF interfaces with a P-CSCF when

the IMS dynamically registers the identities. For this scenario, the location of the WAAF is not

restricted to the network to enable the third-party domain to provide value-added communication

services on top of the IMS service offering.

Page | 45

Figure 4-12 – WAAF registration of wildcard IMPU. Source: 3GPP (2013).

WIC Registration of Individual IMPU from Range

Once the range of identities have been registered according to the preceding scenario, individual WICs

can then follow the web authentication procedure shown in Figure 4-13 below with a similar process

to Section 4.4.1.2.2. The difference is that the WAAF is responsible for verifying the user’s identity

assertion and authorising their access to services. It is also able to verify the third-party registration

on behalf of the user by either examining the configuration data attached to the user’s identity or

based on a prior arrangement with the WWSF to register the range of identities.

Figure 4-13 - WIC registration of individual IMPU from wildcard range. Source: 3GPP (2013).

Session Handling Scenario

The session handling scenario on the other hand, follows the standard IMS procedure where the WIC,

WAAF, P-CSCF and other IMS entities are involved in the session establishment path.

Page | 46

Solution 4

Figure 4-14 - Solution 4 architecture. Source: 3GPP (2013).

Architecture

As with Solution 3, Solution 4 places particular emphasis on the authorisation and authentication of

users subscribed to IMS, hence the introduction of the WebRTC Portal/Unified Authorisation System

which may be located either in the home or third-party network. Furthermore, previous solutions also

present components, the WSF and WMF whose function is familiar. In this architecture, the difference

is that the WebRTC Portal System functions similarly to the WWSF, while the combined WSF and P-

CSCF functions similarly to the WAAF.

The purpose of the Portal System is to ensure that authorised users access IMS services by providing

means to verify their IMS identities via a web-based application also hosted by the Portal System.

Moreover, it also informs a client of the IP address of the WSF serving it. The dual functionality of the

Portal System is reminiscent of the WWSF seen in Solution 3 in that they are both responsible for

managing user identification by authenticating users and mapping their web identities to their IMPUs,

while also hosting the JavaScript code containing application content.

The solution also suggests that the WSF may be co-located with the P-CSCF, a feature that is also

possible with Solution 2. The importance of co-locating these functions results in a modularised

architecture that reduces the added complexity of managing the interactions between these entities

when performing the necessary inter-working. At the same time, the combination of these entities

also leads to possibility of evolving IMS entities to support web-based features, which is a concept

that comes with its own complexities. This implementation is in favour of adding complexity at the

gateway level, as opposed to the client level, in order to reduce barriers to application development,

thus attracting the innovate web developer. More importantly, the solution is a segue to the reference

architecture described in TSGC (2015) and discussed in Section 4.6 which is based on an augmented

IMS network that is enhanced to implement intelligent WebRTC mechanisms.

Page | 47

Registration and Session Handling Scenarios

The registration and session handling scenarios for this solution are similar to the ones seen in

previous solutions where support for IMS and web authentication schemes are described, particularly

those for Solution 3, albeit with differences in the nomenclature of the functional entities.

Solution 5

Figure 4-15 - Solution 5 architecture. Source: 3GPP (2013).

Architecture

The architectural arrangement for this solution is presented in Figure 4-15, and is evidently an

amalgamation of some of the components seen in previous solutions. For instance, the WWSF has

already been introduced in Solution 3 and the WebRTC mediation functions for signalling and media

were seen in solutions 2 and 4. As such it is evident that the functions in this solution serve similar

purposes to those already described. This architecture is simply more straightforward in its

arrangement and use of terminology. As a result, it is conceivable that the architecture is a clear

expression of integration with the WebRTC domain and at a superficial level, implies a more efficient

realisation by the operator when providing web-telco mashups.

Registration and Session Handling Scenarios

As with Solution 4, the registration and session handling scenarios for this solution are similar to those

seen in previous solutions where support for IMS and web authentication schemes are described,

particularly those for Solution 3, with differences in the nomenclature of the functional entities.

However, the solution explicitly mentions the use of operator-provided web identities and associated

credentials that can be mapped to IMS entities as previously described. Figure 4-16 shows the

registration call flow for this novel use case.

Page | 48

Figure 4-16 - Registration using operator-provided web identity. Source: 3GPP (2013).

Page | 49

Solution 6

Figure 4-17- Solution 6 architecture. Source: 3GPP (2013).

Architecture

Solution 6 locates WebRTC mediation and server functions within an IP PBX emulation node that

resides between two enterprise domains. The node is responsible for all interactions with the client,

and therefore provides the necessary interfaces required to handle client application downloads from

the WWSF; identity authentication, session establishment and location management by the WSF and

media handling by the WMF. These functions are similar those seen in previous solutions and translate

the WebRTC-based interfaces to IMS with messages propagated towards either a P-CSCF or an IBCF.

Registration and Session Handling Scenarios

The registration and session handling scenarios follow a similar pattern to the one described in

Solution 1 where the IWF acts as an IMS subscriber and can therefore register on behalf of the client.

The client would then be authenticated by the IWF and have its web identity mapped to its IMPU.

Similarly, the WSF in this scenario registers with IMS and independently registers the client.

Furthermore, the scenarios described for Solution 3 are also applicable to Solution 6 where, instead

of the WAAF, the WWSF and WSF emulation functions are able to jointly authenticate and authorise

the WIC to access IMS. Again, this functionality elects the IWFs as trusted authentication nodes in their

capacity as registrar servers. This separation of concerns is necessary to abstract the network from

the user, especially when interoperating with a different domain whose security profile may be

unknown, and thus prove to be a concern for the network. Moreover, the functions are used to offer

telephony services such as call holding, transfer and others that according to Prasad & Kumar (2011),

can be conformed to standard IMS business trunking interfaces and procedures, where trunking refers

to the ability to adopt business policies that inform the way different domains make connections

between subscribers (3GPP, 2013).

Page | 50

Solution 7

WebRTC

Client

WWPF

WebRTC Signalling

Function

IMS Client

NAT

WebRTC

Media Function

WebRTC Web

Server Function

P-CSCF

IMS Access

Gateway

PCRF

IP-CAN PCEF

UE

Gm

IqGx

Px

Figure 4-18 - Solution 7 architecture. Source: 3GPP (2013).

Architecture

The last solution presents an architectural arrangement that differs considerably from the ones

previously seen through its co-location of a WebRTC client, IMS client, WebRTC signalling and media

functions and an entity called the WebRTC Web Proxy Function (WWPF) into a single UE. The UE then

interacts with a web server function and IMS core entities. As such, the functional entities, with the

exception of the WWPF, operate as expected based on previous solutions. The main purpose of the

WWPF is to provide an interface between clients in order to enable the browser to access the user's

IMS credentials directly from a Universal Integrated Circuit Card (UICC) application provided by the

SIM without user intervention. Consequently, this solution is applicable to the specific use case where

the UE is a standard IMS user terminal that follows classical IMS registration procedures.

This design alternative strongly positions the telco as an IdP that has the capability of exporting the

user's identity to the web. The solution does not provide support for web authentication procedures,

however, in the case of a telco-operated architecture, it can be argued that the telco has the ability to

provide the means to map a users' web and IMS identities, thus supporting the registration scenario

depicted in Solution 3. On the other hand, the telco could also provide web identities and

consequently support the registration scenario illustrated in Solution 5.

Even though the solution does not describe alternative ways to access user information, Solution 1

suggests storing it using web-based mechanisms such as the HTML5 Web Storage API that informs the

possibility of implementing API support in the WWPF due to its pre-existing involvement in the

acquisition of said user credentials. As a result, non-UICC based clients could still benefit, and in

addition, operators would continue to have tighter control over their architectures especially when

managing WebRTC functions, particularly the web server functions whose ability to support web

identities proves most advantageous. Furthermore, supporting flexible web integrated clients further

proliferates Minerva & Bell (2010)’s mandate of the ability of the operator to create open

environments that “enable adaptive, overlay and self-organising technologies” (Minerva & Bell, 2010).

The authors go on to suggest the possibility of implementing virtual networks on a global scale in the

form of MVNOs as a business strategy for the operator and use the success of Apple in this regard as

evidence.

Page | 51

Registration Scenario

The scenario begins when a user accesses application content on the web browser via a WebRTC

client. As the WebRTC client has no direct interface with the UICC, the IMS client is thus responsible

for accessing the user credentials because it already supports mechanisms to enable this access. IMS

registration then follows the usual pattern. Figure 4-19 provides an illustration of client interactions

with IMS and a web server managed by an operator.

Figure 4-19- WebRTC authentication using IMS credentials. Source: 3GPP (2013).

Session Handling Scenario

The session call flow, depicted in Figure 4-20, shows detailed interactions between the components

employed during transcoding, ICE connection management and general session and media handling.

In the diagram, SIP messaging is handled by the Signalling Inter-working Function (SIF), which performs

similar functions to the WSF, while transcoding and protocol conversion are handled by the RTC Media

Inter-working Function labelled (RMF).

Page | 52

Figure 4-20 - Session handling on operator controlled WebRTC. Source: 3GPP (2013).

Page | 53

Insights from Solutions Analyses Having analysed the solution architectures presented in the previous section, this thesis proposes two

additional requirements for performing WebRTC and IMS integration to add onto the three existing

requirements presented in Section 3.3.

Requirement 4 – the ability to create integrated clients and UEs

The different techniques supported by the integrated architecture ensure support for different

combinations of clients in different scenarios where the operator or third-party is trusted to provide

the service. Examples of support include the ability to integrate with existing operator-controlled

service platforms and the ability to extend current UEs. These techniques are conceived to extend the

IMS ecosystem and Raivio & Luukkainen (2011) believe that supporting strategies to “open up” the

network results in increased innovation for the types of services and the resultant business models

which attempt to find a balance between the closed walled garden ecosystem that is typical for the

network operator and their open systems. This requirement is split into Parts a and b and expresses

insights that have also been developed from a literature study that was conducted in conjunction with

the report analysis.

Part a – the ability to integrate with existing telco service platforms

Numerous opportunities exist to integrate a WebRTC-IMS ecosystem with existing technologies

already offered by telcos such as RCS, in order to cover a wide range of service capabilities depending

on the gateway design (infrastructure) deployed. The use of WebRTC with RCS as the main example is

attractive given that RCS was initiated as a technology that telcos could use to enable collaboration

with the web. In fact, both technologies perform similar functions of creating an application-focused

environment where contextualised (immersive) communication services are provided (Romain, 2013).

Part b – the ability to extend current UEs to the web domain

Johnston, Yoakum & Singh (2013) suggest the ability to upgrade existing VoIP/SIP/IMS UEs to

accommodate WebRTC. The notion of upgrading existing phones opens a way for network operators

to become device manufacturers outside of enterprises where SIP phones are typically adopted and

has the potential to change the behaviour of how users interact with these phones, from performing

basic voice/video calls to enabling immersive communication experiences that are also found on the

web. This thesis advocates that such a UE should require the implementation of web technologies that

adopt WebRTC as an RTC engine. The feasibility of such a device remains an open issue however, it

also creates a space for the telco to become more involved in the original equipment manufacturer

(OEM) value chain, in addition to the provision of integrated (device independent) web applications

and services. According to Olanoff (2015), Google’s acquisition of Jibe Mobile could be seen as a

motivating factor behind the interoperability between WebRTC and RCS; moreover, Mavenir, a

software-based networking solutions company, is an example of an industry effort already involved in

the development of such a solution (Richardson, 2014). The strategic move of these companies aims

to disrupt the market by providing services on the Android OS platform based on RCS and even though

Google would be promoting RCS, WebRTC can be the enabler to create enriched web experiences.

Requirement 5 – the potential to natively support web-based techniques

The standards and techniques employed around web identity management and media handling have

the potential to lead to evolutions centred on WebRTC where IMS entities can natively support these

features. The preliminary work conducted in the report provides a basis for the ability to incrementally

Page | 54

grow and develop such an architecture and describes the issues around supporting these features in

Parts a, b and c.

Part a – the use of operator-based web identities

Solution 5 suggests the use of Operator WebIDs authenticated using existing web authentication

procedures that the network maps to a user’s IMPU/IMPI. The use of web-based identities is a strategy

that can be employed by the operator to open up their network and result in Single-Sign On (SSO)

systems that use SSO protocols such as OAuth 2.0 and OpenID Connect (Beltran et al., 2014).

Furthermore, employing such a strategy leverages the strong position that the operator has to

authenticate users for services, hence the adoption of phone numbers in user verification for

applications such as WhatsApp, Facebook, Yahoo Mail and other OTTs which, according to Beltran et

al. (2014) are international and thus collectively managed by operators. The formulation of Operator

APIs developed by network operators thus becomes the next logical step; Mulligan (2009) mentions

that Open APIs have been created which can be used in conjunction with an API such as WebRTC to

access video conferencing capabilities, presence for user online status (notifications as well) and text-

to-speech technology for accessibility during instant messaging. Raivio & Luukkainen (2011) further

suggest the creation of ecosystems based on network operator APIs that would provide device-

independent alternatives to device-based ecosystems such as Apple’s App Store, Google’s Android

Market (Play Store) and Nokia’s Windows Store.

The API exposure also enables the network operator to access identity information (SIM-based or

otherwise) that they can use to improve user experiences through big data analytics. Solution 7 is an

example of an architectural model over which an API, imagined as the “Operator SIM Authentication

API”, can be implemented to authenticate WebRTC users over the web with the aid of the WWPF. This

process would require interfaces to IWFs to organise contextualised information about the user

(retrieved from HSS and S-CSCF in their capacity as registrars and signalling function) and their

multimedia sessions (retrieved from the media function).

Part b – the use of web-based identity protocols

The interface between a WWSF and a WSF is crucial due to the novelty it brings to managing web

identities where the WWSF can also integrate value-added services. This interface is illustrated as W2

in Solution 3, RTC5 in Solution 4, W3 in Solution 5 and is implicitly assumed in Solutions 6 and 7. Shekh-

Yusef & Pascual (2014) suggest the adaptation of SIP to implement an authorisation framework such

as OAuth 2.0. The combined adoption of these protocols can thus be one way for the WWSF and the

variety of signalling functions to serve the user with access tokens during authentication, as depicted

in Solutions 2, 3, 4, 5 and 6. Furthermore, when mapping a user’s web identity to their IMPU, the

relevant function (WSSF, WAAF, WebRTC Portal System, etc.) can also implement technology such as

the Lightweight Directory Access Protocol (LDAP) as means to perform lookups for the identity of a

user, an organisation (in the case of inter-connecting enterprise domains), a file or other resources in

a network (Howes, Smith & Good, 2003).

An alternative to the SIP OAuth 2.0 framework could involve the use of JSON Web Tokens provided by

an operator-managed web server function (Lynch, 2011). The main benefit of using a JSON-based

token format is that it is generic and can be used as part of a standard authorisation protocol such as

OAuth 2.0 or OpenID Connect. An authentication scheme such as this provides a flexible means

through which a telco-operated IdP could have the ability to communicate with numerous web server

implementations that exist on the web. The use of JSON for authentication also supports service

Page | 55

integration through the creation of an SSO system outside of the Generic Bootstrapping Architecture

(GBA)-based framework that is responsible for user authentication and prevalent in IMS, thus

extensively widening the reach of the telco (Muranyi & Kotuliak, 2013). Furthermore, the

standardisation of the WWSF and WSF reference point leads to the evolution of RESTful web service-

based API implementations (where OSA API, OMA NGSI and GSMA OneAPI are notable exemplars).

Part c – the ability to handle signalling alternatives

The ambiguous signalling landscape of WebRTC which seemingly elects data exchange formats such

as JSON and XMPP/Jingle to carry session establishment messages introduces obvious differences with

the IMS landscape. Solutions 2, 4, 5, 6 and 7 illustrate a relationship between the P-CSCF and the WSF,

which is evidence of this potential to enable opportunities for expansion where techniques such as

SIP over WebSockets and JSEP are key illustrations of the ability to contextualise some IMS protocols,

SDP included, to the web domain.

Part d – the ability to handle WebRTC-based media

The interfaces between a client, a WMF and an IMS AGW as shown in all the solutions are similarly

crucial to media handling not only for transcoding and protocol conversion, but for the development

of suitable control structures that both WebRTC and IMS need to implement. For instance, with the

P-CSCF and IMS AGW typically acting as the initial points of contact with IWFs for session handling and

media, there is a need to implement small changes in their functionalities in order to support the new

WebRTC access type. Furthermore, the S-CSCF, acting as the main entity used during service provision,

might also require minor augmentation in its structure to handle the browser-based WebRTC services

whose web server functions need to be recognised and trusted by IMS.

Page | 56

3GPP Reference Architecture This section documents the process that yielded the selection of a reference architecture for WebRTC

and IMS integration. The reference architecture is documented in TR 23.701 and combines some of

the solutions described previous sections, while also providing a forecast into the future of the IMS

ecosystem in incorporating WebRTC. It was later added to IMS technical specification (TS) 23.228, in

an effort to recognise the evolution of the telco industry towards enabling WebRTC access to IMS.

However, the architecture in TS 23.228 differs from the initial one presented in TR 23.701, as such,

this section will discuss the nature of the differences.

Figure 4-21 - 3GPP WebRTC and IMS reference architecture. Source: 3GPP (2013).

Architecture

The purpose of this architecture is to put together a model that shows interactions with IMS entities

whose functions are extended to support interoperability with WebRTC, for instance the P-CSCF and

IMS AGW termed the enhanced P-CSCF (eP-CSCF) and enhanced IMS AGW (eIMS AGW) respectively.

The function of the WWSF has already been seen in Solutions 3, 5, 6 and 7 where a user interacts with

a WWSF that can either be located within the operator or third-party network with the operator

ultimately being responsible for its control and management. The WWSF is involved with user

identities and is responsible for allocating and mapping the user's IMS and web identities. The eP-CSCF

is responsible for authenticating users using IMS and web authentication means and authorising the

verifications that the WWSF performs to ensure that identities are served by a WWSF trusted by the

network. As such, the eP-CSCF is strictly located in the home network because of its role as a trusted

authentication node. The limited functionality of the WWSF, compared to the aforementioned

solutions, is due to the absence of a direct interface with the eP-CSCF.

The eIMS AGW on the other hand, is enhanced to support the media inter-connection typically

performed by the WMF and is therefore required to support characteristics such as DTLS-SRTP,

transcoding, DataChannel translation to protocols such as BFCP, MSRP or T.140 and other WebRTC

functions. These media handling actions are carried out by the W3 reference point in Figure 4-21 and

represent an amalgamation of the W3 in Solution 3, RTC2 in Solution 4, W5 and W6 in Solution 5 and

the similar unlabelled reference points in Solutions 6 and 7.

Page | 57

Registration Scenario

The registration scenarios for this solution are similar to the ones already seen, particularly in Solution

3 where IMS and web authentication schemes are used by the eP-CSCF which is the main

authentication entity involved during signalling. The technical report depicts the following registration

call flows shown in Figure 4-22 and Figure 4-23. Figure 4-22 shows WIC registration of IMPU using IMS

registration while Figure 4-23 shows WIC registration of IMPU using web authentication procedures.

The solution also provides the ability to provide a wild-card IMPU range to the WWSF from which

individual clients can be assigned identities including the ability to support different registration

modes. The architecture further describes the de-registration scenario, however, even though it is not

explicitly described by other solutions, it is inherently supported and follows standard IMS procedures

with messages traversing the relevant signalling functions.

Figure 4-22 - WIC registration of IMPU using IMS registration. Source: 3GPP (2013).

Figure 4-23 - WIC registration of IMPU using web authentication. Source: 3GPP (2013).

Session Handling Scenario

The eP-CSCF is responsible for routing session origination and termination flows between the WIC and

other IMS entities according to standard IMS procedures. The architecture involves enhancing

Page | 58

reference points such as the Iq, Mw and others to incorporate WebRTC-based characteristics for

efficient media flows.

Insights from the Enhanced Reference Architecture Requirement 5 acts as a precursor to the enhanced architectural model where the eP-CSCF and eIMS

AGW natively support web-based techniques such as web identities and media. Furthermore, the eP-

CSCF has the ability to natively support WebRTC-based signalling protocols by inter-working them into

native IMS SIP; functionality that was performed by the WSF in previous solutions. The shift in led to

the eP-CSCF handling the combined roles of the WWSF and the WSF where a reference point was

needed in order for these two entities to jointly support user authentication and signalling exchange

as in Solutions 5 and 6. In other instances however, an additional component was introduced that

independently handled the implementation of the reference point for example, Solution 3 introduced

the WAAF and Solution 4 introduced the WebRTC Authentication / Portal Unified System that

functions similarly to the WWSF. By the same token, Solution 4 also explicitly demonstrates a co-

located P-CSCF and WSF operating together to handle the signalling inter-working and identity

management which the author believes to have set a precedent to the enhanced P-CSCF.

In light of the above reflections, a future release of TS 23.228 re-imagined the reference architecture

with the inclusion of an entity called the WebRTC Authorisation Function (WAF) (3GPP, 2015). The role

of the WAF is similar to the combined functions of Solutions 3, 4, 5 and 6 where it is responsible for

authenticating users using web procedures resulting in the issuance of access tokens to the WIC (via

the WWSF) propagated towards IMS. The WAF can either authenticate users by itself or trust the

WWSF to allocate users with their identities and similarly to the WWSF, can reside in the home or

third-party domain. Figure 4-24 shows the updated 3GPP reference architecture showing the WAF

whose registration and session handling scenarios are similar to the model shown in Figure 4-21.

Figure 4-24 - Updated 3GPP reference architecture showing WAF. Source: 3GPP (2015).

Conclusion The chapter brought about some emergent strategies defined by the 3GPP to assist telcos in

expanding their IMS ecosystem to enable access to WebRTC. These strategies are evident in the seven

qualitatively different solutions that are specified in TR 23.701 which portrays telco interest in

emergent web architectures. The solutions were described in Section 4.4 in order to show the different

architectural models where different components work in concert. Beforehand, the opening of the

Page | 59

chapter gave an overview of a basic integration architecture upon which all solutions could be viewed

and interrogated according to the set of requirements that were detailed which were based on

insights from the previous chapter.

The detailed description of each solution was important and necessary to the discussion in order to

explicitly identify their similarities and differences. Through this process, it was discovered that

Solution 1 represents a generic introduction of an RTCWeb inter-working function that is meant to

express the need for having mediation functions for both signalling and media handling. These

mediation functions were further described and split into subsequent solutions. The registration and

session handling scenarios from Solutions 4, 5 and 6 were mainly based upon Solution 3 which

describes the different modes of applying web authentication procedures to clients seeking to access

IMS services through a web server or similar function managed either by the operator or third-party

service provider. In addition, Solution 6 in particular, addressed the ability of the network to interact

with another similar network domain where business trunking interfaces are established to connect

them. Furthermore, Solution 7 provided the novel use case of using existing IMS assets such as SIMs

to address the open issue of identity management for WebRTC, thus restricting use of web-based

authentication schemes contrarily to the solutions before it. As a result, Solution 7 specified innovative

ways of using a WWPF to provide the interface for the browser to access the user’s IMS credentials

retrieved by the IMS client located in an advanced and state-of-the-art UE.

Finally, Sections 4.5, 4.6 and 4.7 provided further insights to be gained from the solutions analyses,

the selection of the 3GPP reference architecture and how they lead to the potential to evolve IMS

entities enhanced to natively support WebRTC. Even though the theme of the evolution of the IMS

network contradicts a more general overall aim which is to prevent extensive modifications to either

the WebRTC or the IMS network, there seems to be a clear necessity for such enhanced entities.

However, the specification of an enhanced integration architecture is largely conceptual and there is

a paucity of evidence of experimental trials. As a result, the next chapter will present the design and

implementation of an alternative architecture which is motivated by this thesis in order to satisfy the

requirements discussed thus far. The subsequent chapter will detail the open source tools and

platforms that can be employed to realise an environment to investigate the integration.

Page | 60

5. Chapter 5 – The Integration of WebRTC and IMS: Proposed Model

Overview The purpose of this chapter is to present the model that is espoused by the thesis. It aims to do so

through an investigation of the requirements described in the previous chapters, and will contrast this

model with the 3GPP reference architecture to explicitly highlight how certain design decisions were

made that reflect the desired functionality according to the specific goals and scope of the thesis. That

way, a novel integration model is expressed that is not simply a carbon copy of the 3GPP reference

architecture, and more strongly accommodates the open source web / telco developer whose main

goal is to experiment with an integrated architecture in a meaningful but cost effective way that is still

strongly aligned with the spirit of the 3GPP recommendations.

Synthesising the Model The model is derived to some extent from the 3GPP reference architecture, with its synthesis also

borrowing certain aspects from the architectural alternatives that have been investigated and

specified in the previous chapters. However, the model is novel in that it is constrained by the specific

requirements that the thesis posits, with the aim of simplifying the design, and enabling an easier

implementation path for the application developer who seeks to work in this area. Thus, the model is

instrumental in communicating the ease of integration by emphasising the high-level differences that

occur between it and the 3GPP solutions. In order to provide a more fluid discussion, as well as to

simplify the process of highlighting the differences between this model and the other solutions, the

discussion is structured in a like manner, with a discussion on general architecture, followed by an

outline of registration and session handling scenarios.

Page | 61

Media Inter-working

Communication

Services

Signalling Inter-working

[Advanced Capabilities]

IMS Core

IMS Media Routing

WMF

WWSF

WSFP-CSCF

Mw

W4

IMS AGW

Wm Mm

Iq

WIC

W2

W1

W3

Figure 5-1 - WebRTC and IMS model.

Architecture

The model closely matches Solution 5, where the WIC is a browser-based or similar JavaScript

execution environment acting as the black box that “provides application logic and WebRTC API calls

to access to the communications services of the IMS” (Pascual, 2014). The sections below describe the

functionality of each component in the architecture.

The WWSF

The model re-imagines the WWSF as a lightweight web server that simply hosts the WebRTC

application and can work independently to implement a standalone service environment that provides

a “plug-and-play” capability where advanced services such as identity management, contact

management, third-party service integration, operations and business support systems and more can

be implemented by supporting functions as needed for the application use case. These ancillary roles

integrated into the WWSF can be recognised as dedicated components in the form of a WebRTC Portal

/ Unified Authorisation System, a WAAF and a WAF which have been demonstrated in Solutions 2 and

3, and the 3GPP reference architecture. The purpose of such an organisation of functions results in an

architecture whose core value is relevance and innovation, thus meeting specific application and

developer needs. Figure 5-2 depicts the WWSF and supporting functions.

Page | 62

WWSF

Identity

Management

Contact

Management

OSS and

BSS

Third-party

Services

Figure 5-2 - The WWSF and supporting functions.

The eP-CSCF

The presence of the eP-CSCF is evolutionary in nature requiring major modifications to be made to the

IMS core. The complexities surrounding these modifications results in technical implications for IMS,

requiring it to support WebRTC frameworks, components, business models and value chains in

addition to existing ones which are already criticised as being cumbersome. Considering this, it is

expedient to deconstruct the eP-CSCF by arranging it in accordance with the structure proposed in

Solution 4, where a WSF and the P-CSCF are either co-located or operate independently. Therefore,

the WSF provides a lightweight signalling exchange mechanism responsible for translating SIP over

WebSockets, with the ability to “plug in” support for additional signalling protocols, authentication

schemes, third-party service control and others. The WSF also conforms to the WWSF “building block”

service infrastructure where the P-CSCF is protected from undergoing extensive modifications outside

of being able to recognise the new WebRTC access type. Figure 5-3 illustrates how the model should

support additional signalling protocols.

Page | 63

WSF

Protocol 1

Protocol 2

Protocol ..n

Protocol

Stack

Management

Authentication

Management

Third-party

Service

Control

Figure 5-3 - The WSF and additional signalling supporting functions.

The eIMS AGW

The eIMS AGW combines a WMF and an IMS AGW to independently handle WebRTC and IMS media

inter-working as demonstrated in Solutions 2, 4, 5, 6 and 7. The WMF is a standalone media

environment, with the ability to support transcoding, DTLS-SRTP conversion and ICE connection

management as basic use cases. When extended via supporting functions, analogous to previous

clauses, the WMF has the potential to support use cases such as recording, voicemail, multiplexing,

broadcasting, facial recognition and other advanced media processing capabilities. Figure 5-4 shows

the WMF and some examples of media supporting functions.

Page | 64

WMF

Recording

Facial

recognition

Voicemail

Broadcasting

Figure 5-4 - The WMF and some supporting functions.

The WIC

The proposed WIC implementation is a modular, integrated system that is structured in such a way

that the WWSF and the WIC can interact via an IMS proxy module in order to provide an interface to

the supporting functions hosted by the WWSF. Examples of these supporting functions include an RCS

Proxy, Operator SIM Authentication, Advanced Call Control, Notifications, Presence and Directory

services and so on which have the capacity to implement certain API functionalities relevant to the

deployment environment. The ability to access APIs more efficiently results in a greater degree of

flexibility where developers can either create native or browser-based clients. For instance, a

developer can create a native client over, Android or iOS that is able to execute RTC services via the

RCS Proxy, or they can create a browser-based application with the ability to access SIM-based identity

information via Operator SIM Authentication mechanisms. Still more, the Presence and Directory

services function can enable efficient contact management where Operator Web IDs are used to

describe user information. This gives the developer far greater freedom during application

development, and thus has the potential to improve mobile support for WebRTC, which according to

VoipSwitch (2014), enhances the ability to customise client applications. Figure 5-5 illustrates WIC

functionality in the proposed model.

Page | 65

Media

Handling

WebRTC

API

WebRTC

Supporting

APIs

WIC

Supporting

Functions

Video Codecs

Audio Codecs

Transport

MediaStream

GetUserMedia PeerConnection

DataChannel

SDP

Web Application

HTML / CSS /

JavaScript

SignallingJS

JSEP

SRTP / SCTP

Identity

Provision

Statistics

Model

DTMF

WWSFOperator SIM

Authentication

Operator WebIDs

RCS Proxy

Presence and Directory

Notifications

Advanced Call Control

IMS Proxy

Figure 5-5 - The WebRTC IMS client architecture. Adapted from Taylor & Ing (2013).

Registration Scenario

The model supports call flows for registration and session handling scenarios that conform to those

specified in the architectural solutions using SIP over WebSockets, however, these have been

reimagined to include additional supporting functions. For instance, the call flow in Figure 5-6

illustrates a user registering their operator-provided web identity using XMLHttpRequest as the main

communication channel, which is contrary to the preferred WebSockets method. The purpose of this

call flow is to exemplify how the authentication management function could be invoked.

Page | 66

WIC WWSF WSFAuth.

man.P-CSCF

I-CSCF

S-CSCF

Download web application

Instantiate IMS Proxy

Login in with operator web ID

Invoke operator web ID function

Verify user ID

Return security token

Open XMLHttpRequest channel

Register using security token

Verify identity

Identity assertion ok

Register

Register

200 OK

200 OK

Registration success

Registration success

Figure 5-6 - Registration scenario using different signalling protocol and channel (JSON over XHR).

Session Handling Scenario

Once authenticated, the user may wish to use a messaging component of the application that is

implemented as an RCS service where the RCS Proxy is invoked by the WWSF to handle the necessary

inter-connection. With RCS reusing certain IMS functionality, the WSF is necessary to convert the WIC-

side signalling to SIP. Following successful session establishment, messages can now flow between

clients via the WMF and IMS AGW for protocol conversion and resource reservation respectively. The

call flow in Figure 5-7 illustrates how the different functions could be used.

Page | 67

Media resources were reserved

and confirmed prior to message

exchange

Capabilities; presence and other options are exchanged and agreed upon

IMS Proxy instantiated

during registration

Registration and user discovery with RCS

domain initially [internally] performed to

identify WIC as RCS user

WIC WWSFRCS

Proxy

IMS Core

[S-CSCF]

IMS Core

[RCS AS]

Load RCS messaging service

Invoke RCS Proxy

Session Invite

WSF

SIP Invite

SIP Invite

SIP Invite

to RCS client

200 OK

200 OK

200 OK

Session establishment success

Initialise DataChannel

Perform signalling conversion to SIP

Load user information and verify identity

MSRP messages exchanged

WMF IMS AGW

Perform DataChannel to MSRP conversion

MSRP messages to RCS client

Figure 5-7 - Session handling scenario showing WIC using RCS messaging service.

Mapping the Model to the Requirements The design considerations that were followed in the creation of the model are summarised in the

points below which relate how the requirements organised in Table 3 are mapped to the arrangement

of the different components included in the overall model. The discussion that follows identifies the

way in which both the overall design and the different components satisfy the stated requirements.

Page | 68

REQUIREMENT DESCRIPTION

BASIC ARCHITECTURAL REQUIREMENTS

1 The use of gateway functions as bridges to external networks

2 The reuse of existing infrastructure

3 The use of internal and external protocols

3A The implementation of internal IMS protocols

3B The use of external protocols

EMERGENT REQUIREMENTS FROM SOLUTIONS ANALYSIS

4 The ability to create integrated clients and UEs

4A The ability to integrate with existing telco service platforms

4B The ability to extend current UEs to the web domain

5 The potential to natively support web-based techniques

5A The use of operator-based web identities

5B The use of web-based identity protocols

5C The ability to handle signalling alternatives

5D The ability to handle WebRTC-based media

Table 3 - Requirements for the integration architecture.

1. The overall model

The overarching aim driving the creation of the model is the need to derive an architecture that is

simple, effective and does not components that would not be readily available to the average

developer when it comes to the implementation of it.

2. The WWSF

The WWSF conforms to Requirement 1 as the re-imagined AS function that, in addition to hosting

client applications, interfaces with IWFs or other ASs residing in a third-party domain. This interfacing

is achieved through implementing appropriate interfaces between functions where SIP and the

WebRTC API are basic examples of internal and external protocols that Requirements 3a and 3b

advocate. The WWSF also conforms to other requirements in the event of supporting advanced

features, for instance, when interfacing with an RCS network, Requirement 4a discusses the resultant

implications of such a connection.

Page | 69

3. The P-CSCF and WSF

The reuse of the P-CSCF as the initial point of contact with IMS conforms to Requirement 2, while its

combination with the WSF enables the possibility to evolve IMS to natively support WebRTC

functionality in conformance with the different parts composing Requirement 5.

4. The IMS AGW and WMF

The role played by the IMS AGW indicates the reuse of an IMS media gateway to enable transcoding,

protocol conversion and overall media handling during the integration with WebRTC which aligns with

Requirements 1, 2 and 5d. Furthermore, the addition of and integration with a WMF necessitates the

implementation of internal protocols to interface to the WSF thus following Requirement 3a.

5. The WIC

The WIC architecture describes client behaviour that is versatile in its ability to interface with other

functions through standardised interfaces, which is mainly in accordance with Requirement 4. For

example, interoperability with RCS could result in an integrated UE that also provides WIC functionality

as Requirement 4a details. In another instance, a WIC that supports Operator SIM Authentication

could champion the creation of WebRTC-consuming user terminals that are described in Requirement

4b.

Conclusion This chapter has described the synthesis of a WebRTC and IMS integration model whose definition

was guided by the requirements that are unique to the present research. These requirements led to

the construction of an architecture that addresses the design considerations of the 3GPP reference

architecture and adapts it to a scope that is more relevant to the application developer as opposed to

one that meets the needs of the operator. Section 5.2 describes this model creation where the WWSF

and WAF were firstly unpacked to show their conformity with Requirement 1. Secondly, Section 5.2.1.2

saw the introduction of the WSF which was brought about from the decomposition of the eP-CSCF,

hence incorporating aspects from Requirements 2 and 5. The decomposition of the eIMS AGW also

followed a similar pattern where the WMF was introduced to work in conjunction with the IMS AGW

to perform media inter-connection. Finally, the WIC architecture was detailed to show the interaction

between the WebRTC API and other supporting functions that the operator could provide as API

implementations. Section 5.3 concluded with a mapping of the model components to the

requirements, hence synthesising an integration model that presents numerous opportunities for

experimentation. To this end, the next chapter illustrates the implementation of a network testbed

that realises the model by presenting an array of open source tools that are currently readily available

and can be used to aid the developer in this regard.

Page | 70

6. Chapter 6 –Prototyping the Model

6.1. Overview The model presented in the previous chapter is a conceptual framework that demonstrates how to

integrate WebRTC with IMS in such a way that the constraints and requirements of the present

research are met. As such, it is important to verify the efficacy of the design with a practical

implementation that satisfies the underlying requirements which demand a design that can be readily

implemented and extended by the average developer. This chapter shows how the model was

implemented using a selection of readily available, free and open source tools and platforms that are

effective at mapping standards to practice.

6.2. Demonstrating the Model using Software Tools There are a number of open source products that can be used to demonstrate the integration of

WebRTC and IMS which have supported the creation of a practical environment for experimentation

and the extension of the proposed model. This section therefore discusses the use of such tools to aid

in the construction of a suitable network testbed. In particular, the investigation was strongly

influenced by Loreto & Romano (2014) and Altanai (2014) who provide practical guidance in the

development of WebRTC systems in general. As such, the discussion of the architecture involves a

mapping of the software tools shown in Figure 6-1 to the model, where the process undergone to

integrate each tool is also described. The registration and session handling scenarios are further

described using call flows, code snippets and extracts from configuration files where necessary, in

order to enhance the discussion.

Fraunhofer

OpenIMSCore

WSS to UDP-TCP

sipML5

Apache Tomcat 7

WMF

webrtc2sip HSSP-CSCF

S-CSCF

I-CSCF

WSF

STRP to RTP

SIPoWSS

DTLS-SRTP SIP

SIP

SIP

Diameter

Diameter

SIP

HTML-CSS-JS

HTTPS

IMSDroid

SIP

Figure 6-1 - Model demonstrated using software tools.

Page | 71

6.2.1. Hardware Platform and Environment Variables

The hardware platform used to execute the testbed comprises a Proline Officeware personal

computer with the following hardware specifications:

MSI X58 Pro-E (MS-7522) motherboard;

Intel(R) Core(TM) i7 930 @ 2.8GHz CPU;

4GB RAM; 64-bit memory address size and

ATA Disk size 500GB.

The network specifications include a 1 Gbit/s Ethernet interface attached to a personal computer with

an Ubuntu 14.04.4 LTS operating system. The open source nature of Linux conformed to the research

requirements, while the choice of Ubuntu was seamless due to the ease at which the environment

could be customised and setup for development. The system environment variables are specified as

follows:

A private DNS server was configured using BIND9

The purpose of setting up a private DNS server was to ensure the effective management of services in

the private network – the local DNS server acted as a DNS forwarder to an upstream DNS server for

external Internet access. The use of a fully qualified domain name (FQDN) was preferable to using IP

addresses in order to ease the maintenance of configuration files, applications and services. The

domain chosen for the research was webrtc-ims.co.za.

An SSL certificate was obtained to secure multimedia transports

A GeoTrust: RapidSSL® certificate was purchased through Register Domain SA in response to the move

made by Google, as stated in Dutton (2015), to reject the implementation of the GetUserMedia API

and media exchange via non-secure channels from Chrome version 47, a controversial move that also

resulted in the failure of many self-signed certificates (Google Groups, 2015; Stackoverflow, 2016).

However, the use of localhost is still enabled but unfortunately, unsuitable for most research needs,

including the present.

6.2.2. Architecture

The discussion that follows provides an overview of the different options that were available, not only

to provide a report on software alternatives, but also to justify the selection of the tools that were

used in this implementation. SIP was the signalling protocol of choice for the demonstration because

it is used pervasively in the IMS and therefore more easily supports the basic “barebones” architecture

proposed for the model, hence the emphasis on SIP-based WebRTC tools and IMS registration and

session handling procedures.

6.2.2.1. The WWSF: Apache Tomcat 7

The main requirement for the WWSF is to provide a lightweight web server function that has the ability

to implement advanced features through additional functions. Apache Tomcat 7 was found to be

appropriate at meeting this requirement, thus running as the HTTP web servlet container from which

to execute the WIC. Tomcat is a project developed by the Apache Software Foundation in an effort to

address the need “to simplify the creation of web applications” (Bakore, 2003) while also enabling

support for integration with the Apache Web Server when extending the server architecture through

modules. Tomcat is a Java-based web application container that runs servlets and Java Server Pages

(JSP) in a stable, open source environment and is released under an Apache Software Licence version

2.0 (Vukotic & Goodwill, 2011). For this reason, it boasts a wide user-base and implements several

Page | 72

Java EE technologies, including support for WebSockets. Apache Tomcat versions are currently

available as stable releases – the latest one at the time of writing being version 8.5.15, released May

5th 2017 with an alpha version (9.0.0.M21) released in May 4th 2017.

It is notable that Tomcat was the initial point of reference for the WWSF preferable over tools such as

Microsoft Internet Information Services (IIS); Nginx and the Google Web Server (GWS) which, as stated

in a survey conducted by Netcraft (2017), are the most used web servers on the Internet alongside

Apache. The survey showed that Apache had the highest share of all sites that were assessed with a

market share of about 45.8%, translating to almost 80 million active sites. Hence by extension, Tomcat

was a highly rated choice. Furthermore, experience of the installation and setup of Tomcat in Ubuntu

was seamless: OpenJDK Runtime Environment (IcedTea, 2.6.8) was used to run Java version 1.7.0_121;

JAVA_HOME environment variables set and server started as a service over port 8085.

6.2.2.2. The WIC: sipML5

There are several JavaScript libraries available that can enable the creation of clients and user agents

to provide SIP signalling for WebRTC applications. The main libraries/clients include jsSIP, a lightweight

client-side library run over Node.js; SIP.js, a popular fork of the jsSIP library; sipML5, a feature-rich

client developed by Doubango Telecom (2018) that can connect to SIP, IMS or PSTN networks;

QoffeeSIP, a CoffeScript SIP stack for WebRTC; ctxPhone, a simple phone based on SIP.js, and many

others. These clients were tested individually for the purpose of comparison, but ultimately, jsSIP and

sipML5 were chosen as the main solutions for the testbed. Their selection was based on the manner

in which they are packaged which is as part of a comprehensive gateway function that can easily be

extended or manipulated to meet a number of mediation needs, and thus be more adept at addressing

the integration needs of the research.

jsSIP was developed as the testing library for OverSIP, an outbound SIP proxy server, and can work

with other popular SIP servers such as Kamailio, Asterisk, OfficeSIP and others that support

WebSockets. Similarly, sipML5 was developed as the main client to work with webrtc2sip, a gateway

developed by Doubango Telecom (2016b) as a software artefact to enable WebRTC endpoints to

communicate with legacy SIP and PSTN networks. Even though jsSIP is better maintained, with more

recent releases, it is the ability for the sipML5 and webrtc2sip package to interoperate particularly

with IMS that resulted in their selection above the other tools. As such, the next section describes the

sipML5 architecture. webrtc2sip is described in Section 6.2.2.4.

The sipML5 architecture

Altanai (2014) demonstrates three ways of using sipML5: the most basic option is to use the demo

version available online at http://sipml5.org/call.htm. The second option enables a developer to code

a simplified version of the sipML API, and use a basic web server (or in this case a web servlet

container) to load it over a WebRTC-enabled browser. Finally, the third option is to access the sipML5

source code that can be checked out from GitHub and modified for greater customisation – this option

is most suitable for developers looking to integrate sipML5 over other systems and was therefore

followed for this research (sipML5, 2017).

During the development phase, version 1.5.222 was available and is the one that was eventually used,

however, at the time of writing, version 2.1.3 is available and regularly updated to fix interoperability

issues with Asterisk, a software PBX. Figure 6-2 below shows the graphical interface that enables users

to configure their accounts and Figure 6-3 shows the graphical interface for users to configure settings

under 'Expert Mode' with information about WebSocket, SIP and ICE servers - the media handling

Page | 73

settings are also configured on this interface. The screenshots show the network settings for a user

account served over the webrtc-ims.co.za domain.

Figure 6-2 - Registration interface on sipML5.

Figure 6-3 - Interface to configure network settings by experts on sipML5.

6.2.2.3. The IMS Client: IMSDroid

Work carried out by Segec & Kovacikova (2012), Spiers & Ventura (2010), El Alaoui et al. (2012) and

others served as starting point towards reviewing the IMS client landscape, which includes a number

Page | 74

of clients, each with its own features and target platforms. For instance, the Boghe IMS/RCS client was

developed for Windows, iDoubs by Doubango Telecom for iOS, IMSDroid for Android, the UCT IMS

Client for Linux platforms and others such as myMonster TCS, IMS Communicator and so on. Client

functionality covers a wide variety of use cases, from basic use cases like registration, one-to-one voice

and video calls and instant messaging; to more advanced ones like presence, IPTV, contact

management, advanced authentication schemes (security) and more. The process of testing these

clients revealed that some of them are not being actively maintained and rely on outdated and

sometimes buggy software libraries, thus making their integration within the testbed a challenge. For

instance, the UCT IMS Client, myMonster TCS and IMS Communicator have not been updated since

2014. In the end, IMSDroid was deemed the most suitable client to use in the demonstration of the

model. Figure 6-4 and Figure 6-5 show the client’s interface showing provisioned user and network

settings.

Figure 6-4 - IMSDroid network details.

Page | 75

Figure 6-5 - IMSDroid user account details.

6.2.2.4. The WSF and WMF: webrtc2sip gateway

The webrtc2sip gateway was developed as a software artefact to enable WebRTC endpoints to

interact with legacy SIP and PSTN networks. An important observation to make through the inclusion

of the gateway is the removal of the need to provide an explicit IMS AGW to handle media processing,

as the gateway is equipped to do so. However, the research recognises the importance of this entity

therefore recommendations are made in Section 6.3 for a likely tool to use that could act as the IMS

AGW for the benefit of controlling IMS-side media. The gateway was the initial and most preferred

tool for testing due to the feature-rich capabilities it offers which include the combination of the WSF

and WMF roles. It has a modular architecture that comprises a SIP proxy to convert WebSockets to

UDP, TCP or TLS; an RTCWeb Breaker, to convert DTLS-SRTP media to RTP/RTCP and to negotiate

media flow using ICE and a Media Coder to translate audio and video codecs accordingly. These

modules can be classified within the model as follows: the SIP Proxy as the WSF, and the RTCWeb

Breaker and Media Coder as the WMF. Furthermore, it includes a Click-to-Call service for service

providers to use on social media profiles and company websites. Version 2.7.0 of the software was

used and is freely available under a GNU General Public License (GPLv3), which permits users to freely

access, modify and distribute the software so long as derivative work is also available under the same

license (GNU, 2007). Figure 6-6 shows the webrtc2sip architecture.

Figure 6-6 - The webrtc2sip gateway architecture. Source: Doubango Telecom (2016b).

Page | 76

The configuration of webrtc2sip was carried out in a configuration file named config.xml file which

was configured with the contents shown in Figure 6-7:

Figure 6-7 - webrtc2sip config.xml.

The points below highlight the relevant aspects to note regarding the contents of this file:

i. Transport variables

These fields specify where webrtc2sip is listening for incoming WebSocket connections, either ws

(WebSocket) or wss (secure WebSocket), which are also stipulated in the sipML5 expert settings page.

Page | 77

ii. Media settings

The details concerning the media transport are stipulated from within the enable-rtp-symetric

tag to the dtmf-type tag. The enable-media-coder tag, when set to ‘yes’, utilises the RTCWeb

Breaker to convert and transcode media according to the media codec variables set in the relevant

tags. On the client side, sipML5 checks the ‘Enable RTCWeb Breaker’ to enable the connection with

IMS.

iii. SSL certificates

This section specifies the certificates to use for secure WebSockets and indicates the verify-value

which when set to ‘no’, disables the validation process to ensure that the connection is established

should the remote peer’s certificates be missing or have a mismatch.

6.2.2.5. The IMS Core: OpenIMSCore

The OpenIMSCore was developed by the Fraunhofer FOKUS Institute in 2004 and in 2006 was released

as an open source (GPLv2 licence) tool for IMS testbeds compliant with 3GPP and 3GPP2 standards

(openimscore.org, 2015). According to Segec & Kovacikova (2012), the purpose of the project was to

develop an advanced learning environment upon which complex multimedia experiments could be

conducted to simulate real-world scenarios and also to ensure interoperability testing with other

network components. Being the first of its kind, OpenIMSCore was an initial point of reference for the

deployment of the IMS core network for this research, comprising CSCFs (P-CSCF; I-CSCF and S-CSCF)

as modules; a lightweight HSS called FOKUS Home Subscriber Server (FHoSS) which is written in Java

and employs a MySQL database for storage. The project also implements a CDiameterPeer module,

also written in Java, for the Diameter stack which defines three interfaces: Sh, for ASs to access the

HSS; Zh and Cx, to communicate with the I-CSCF and the S-CSCF.

For this research, OpenIMSCore was configured to run over the webrtc-ims.co.za domain and the

default port numbers kept as follows: P-CSCF: 4060; I-CSCF: 5060; S-CSCF: 6060, and the web interface

supported by a Tomcat container exposing the HSS running over 8080 and accessible from the client

machine. User identities and network settings can be created and managed either via the web-based

HSS management console (from the client machine) or the mysql server instance accessible from the

command line.

From 2015, the project management of OpenIMSCore was taken up by Core Network Dynamics, a

German start-up company that provides software solutions for mobile network infrastructure based

on the Evolved Packet Core (EPC). Core Network Dynamics investigates 4G networks, with the intent

to commercialise software-based end products (Core Network Dynamics, 2017). It is however, worth

noting that an independent project that is not aligned with Core Network Dynamics exists in the form

of Kamailio IMS, which extends the open source Kamailio SIP server to implement IMS functions

(openimscore.org, 2015). Even so, the OpenIMSCore platform ran successfully in the network testbed

system due to relevant documentation and online support platforms that make it easy to integrate as

compared with Kamailio IMS, which is discussed in Section 6.3.

6.2.3. Registration scenario

The OpenIMSCore follows the standard IMS procedures for registration, therefore to avoid

unnecessary duplication, this discussion focuses mainly on the SIP over WebSockets, abbreviated as

SIPoWS where the “o” stands for “over”, portion of the communication between sipML5 and

webrtc2sip in order to highlight the protocol conversion that occurs. The call flow below describes the

Page | 78

registration procedure that employs the tools arranged in Figure 6-1, while Figure 6-9 and Figure 6-10

illustrate the conversion process using a screenshot of a captured SIP “REGISTER” message.

OpenIMSCore

sipML5SIP Proxy:

webrtc2sipP-CSCF IMS Core

SIP REGISTER

SIPoWS

(invalid contact)

WebSocket to UDP

conversion

SIP REGISTER

SIPoUDP

(valid contact)

SIP REGISTER

401 UNAUTHORISED

401 UNAUTHORISED

401 UNAUTHORISED

SIP REGISTER

SIPoWS

(invalid contact with credentials)

WebSocket to UDP

conversion

SIP REGISTER

SIPoUDP

(valid contact with credentials)

SIP REGISTER

200 OK

200 OK

200 OK

Figure 6-8 - sipML5 - webrtc2sip - OpenIMSCore registration scenario.

As the purpose of a SIP “REGISTER” is to form an association/binding between the user’s AoR (for

example, sip:[email protected]) and their IP address, port number and chosen transport

protocol, the IMS needs to be able to capture this information in order to facilitate the registration.

However, the browser is not able to retrieve and include it in the Contact and Via headers for IMS

registration, as such, these headers are populated with a default invalid address. Furthermore, the

use of WebSockets prevents the SIP network from handling the request, in the event that the SIP

servers do not support WebSockets. As such, webrtc2sip examines the request and determines the IP

address of the client and also translates the transport from WebSockets to UDP/TCP, represented as

SIPoUDP in the diagram where the “o” also stands for “over”.

Page | 79

Figure 6-9 - webrtc2sip: local address retrieval.

The Via header is modified to use TCP as a transport protocol, and to include the IP address and port number pair from which the WebSocket connection was

established and the request was received, in this case, the address of the client machine. The SIP Proxy module also adds an additional Via header to the

request to indicate that the message traversed it, via UDP.

Page | 80

Figure 6-10 - webrtc2sip: transport conversion and updated contact header.

Once the request has been processed, OpenIMSCore receives the request in its appropriate format and challenges the user to authenticate via a 401

“UNAUTHORISED” response. The subsequent “REGISTER” message that sipML5 sends back to the OpenIMSCore with the credentials requires transport

conversion to take place once more, following which, successful user registration can be confirmed via a 200 OK response as shown in Figure 6-11.

Figure 6-11 - webrtc2sip: 200 OK successful response from IMS.

Page | 81

6.2.4. Session handling scenario

Figure 6-12 shows a call flow diagram illustrating the session handling scenario where signalling and

media traverses webrtc2sip from IMSDroid to sipML5.

Figure 6-12 - Session handling scenario: IMSDroid - sipML5.

The SIP “INVITE” request is sent over the WebSocket connection and uses an SDP stack written in

JavaScript to negotiate the media parameters. The request is also modified by webrtc2sip to translate

the relevant Via and Contact headers with the appropriate source and destination contact addresses.

Once media parameters are agreed upon, media can flow between clients via the webrtc2sip Media

Server as shown in Figure 6-13 Figure 6-14 which show a screenshot of the SIP “INVITE” and SDP

messages sent when users Mosiuoa and Hunter establish an audio session.

Page | 82

Figure 6-13 – SIP “INVITE” request during session handling scenario.

Figure 6-14 - Example SDP offer.

Page | 83

Table 4 below summarises the IP addresses and port numbers of all clients and services running in the

testbed.

Client / service IP address Port number

P-CSCF: pcscf.webrtc-ims.co.za

146.231.88.41 4060

I-CSCF: icscf.webrtc-ims.co.za 146.231.88.41 5060

S-CSCF: scscf.webrtc-ims.co.za

146.231.88.41 6060

HSS: hss.webrtc-ims.co.za 146.231.88.41 3868

8080 (GUI management console)

Webrtc2sip gateway 146.231.88.41 10060 (UDP)

10061 (WS)

10062 (WSS)

sipML5 (WebRTC client) 146.231.89.134 8085 (Tomcat)

IMSDroid (IMS client) 146.231.183.95 48863

Table 4 - IP addresses and port numbers of clients and services.

6.2.5. Challenges

The main challenges facing the integration mostly involved outdated libraries or documentation,

interoperability issues when integrating the different tools and lack or delayed support from the open

source community. With WebRTC still an emergent technology, further challenges were experienced

because browser developers introduced updates and changes to the WebRTC ecosystem. These

challenges unfortunately frustrated the task of demonstrating the efficacy of the design through

practical experimentation.

6.2.5.1. Code updates: navigator.getusermedia()

One of the frustrations experienced during the initial stages of the development of the prototype, in

late 2015, included the deprecation of the navigator.getUserMedia() method to access the

getUserMedia API (Mozilla, 2017). Previously, the API was prefixed with Webkit for Chrome

(becoming webkitGetUserMedia); moz for Firefox (becoming mozGetUserMedia) and remained

as was for Opera. Although the old method is still included in specifications, the newer method,

navigator.mediaDevices.getUserMedia(), is preferred because it returns a promise to give

developers access to media devices located either locally or remotely. A promise is a technical term

for a proxy value that provides a level of abstraction by promising to supply a value for the media

device at a future time to avoid having to immediately return the final value. A promise can be

pending, fulfilled or rejected depending on the user’s response to grant permission to access their

media device. It is set to ‘fulfilled’ when a user grants permission, to ‘rejected’ when user denies

permission, and ‘pending’ when no action is performed. Figure 6-15 shows a warning that the old

method may cease to work unexpectedly, therefore it is an important aspect to consider when

modifying the prototype for further study.

Page | 84

Figure 6-15 - Navigator.getUserMedia() deprecated. Source: Mozilla (2017).

6.2.5.2. Secure origins for media (Apache Tomcat, 2017)

As previously mentioned, the strict requirement to secure media through HTTPS origins initially

impeded the progress of the work, but was overcome with the purchase of an SSL certificate as a

countermeasure. Acquiring a certificate is relatively straightforward and simply follows a step by step

process that is well documented in the online community for the different certificate authorities that

exist. Apache Tomcat (2017) is an example of an online tutorial available to guide this process. Figure

6-16 depicts the error message displayed in the browser console when attempting to exchange media

over insecure channels.

Figure 6-16 - getUserMedia() secure origins error on Google Chrome.

6.2.5.3. Session handling scenario

The demonstration of call session handling scenarios posed greater challenges compared to

registration scenarios, due to the complex procedures involved when inter-working media,

particularly considering the ambiguity of the video codec in the WebRTC landscape. For instance, the

noise levels in audio sessions, which used the G.711 audio codec, were quite high and there were

delays in the conversation. Video sessions on the other hand proved more challenging. For instance,

performing video calling from sipML5 sometimes resulted in abrupt call drops or poor video quality,

where at times the call screen would go blank. However, call setup was more seamless when calling

sipML5 from IMSDroid. A thorough investigation of the support forums showed that other developers

were experiencing similar challenges mostly when integrating WebRTC-based clients with other SIP-

based legacy systems (Doubango Telecom, 2016a). Thus, the need for more extensive experiments

and learning is necessary to overcome the complexities involved with the correct implementation of

a browser RTC “black box” and the codecs, standards, tools and techniques that need to be adopted

to support real-time communication.

6.3. Other Tool Considerations The demonstration of the basic model presents a tool selection that is generally considered as an

initial point of reference for experimentation by the Internet community. Otto, Meijer & Skrødal

(2016) performed a technology overview of WebRTC interoperability with SIP networks and thus

provided reference in addition to Altanai (2014), to consider other potential tools for testing. The

purpose of this section is to describe other tools that can be used to realise the model, particularly

when implementing the WSF and WMF roles.

Page | 85

An alternative to OpenIMSCore, in the form of Kamailio IMS, is also presented. Kamailio is a powerful

tool that undergoes promising technological developments that are both innovative and relevant to

the communication needs of the open source VoIP community, incorporating advanced features for

supporting TCP, UDP and SCTP transports, secure media communications via TLS, SIMPLE instant

messaging and presence, user authentication and authorisation, information storage using databases

such as MySQL, PostgreSQL, Oracle and LDAP access, call routing, accounting and many others

(Kamailio, 2015).

Kamailio is capable of processing thousands of calls per second and is esteemed as a viable option for

SIP routing. As such, an alternative implementation of the model could utilise Kamailio as the WSF,

providing support for WebSockets, and for the IMS core network. Kamailio IMS provides a stable

architecture for IMS modules since version 4.4 after Fraunhofer FOKUS entrusted the OpenIMSCore

development to Core Networks Dynamics. The HSS is still provided by Fraunhofer with the CSCFs

configured over Kamailio. DNS configuration for these modules is still required, and the Kamailio

configuration file must be modified to enable each entity. Kamailio IMS is generally more complex to

set up compared to OpenIMSCore due to additional Diameter configuration files that need to be set

up for components with a Diameter interface, namely, the I-CSCF and the S-CSCF.

The WMF role can also be assumed by the FreeSWITCH Media Server which offers full media

processing capabilities such as transcoding, call recording, voicemail recording, Interactive Voice

Response (IVR) and video conferencing as part of a large carrier-grade telephony framework (West &

Boteler, 2017). FreeSWITCH enables transcoding between many audio and video codecs that are

available as part of the core or can be compiled and loaded from various modules as per the

FreeSWITCH (2012) codecs list. To include the media server in the communication path, the RTP Proxy

module is configured in Kamailio to direct media accordingly. The RTP Proxy engine ensures media is

relayed appropriately if endpoints are behind NAT and firewalls. Figure 6-17 below depicts the

alternative tool selection using jsSIP as the WIC.

Page | 86

Kamailio IMS

jsSIP

Apache Tomcat 7

FreeSwitch Media Server

HSS

[Fraunhofer HSS (FHoSS)]P-CSCF

S-CSCF

I-CSCF

Kamailio SIP Server

rtpproxyengine

SIPoWSS

DTLS-SRTP SIP

SIP

SIP

Diameter

Diameter

SIP

HTML-CSS-JS

HTTPS

IMSDroid

SIP

Figure 6-17 - Model implemented using other tools.

The list of open source tools available to enable the integration of WebRTC and IMS is extensive, hence

different combinations are possible, although with interoperability challenges. Examples of other

frameworks worth considering include the Mobicents Restcomm Communication Platform

(Mobicents, 2015). This platform includes a WebRTC AS which can be used to implement the WSF,

while its Media WebRTC Server could implement the WMF. In another example, Amirante et al. (2015)

describe the Janus WebRTC gateway which is a “barebones” core WebRTC implementation that

enables interaction with legacy telco networks over a modular architecture that is capable of

supporting signalling alternatives to SIP, basic real-time communication and streaming, video

conferencing and server-side techniques to ensure highly scalable and load balanced performance.

Kurento is another integration framework that provides signalling and media handling capabilities to

provide a powerful modular architecture over which convergent WebRTC and SIP-legacy-based

applications are created (Lopez Fernandez et al., 2013). Still more, Ericsson offers OpenWebRTC, a

client framework that enables developers to build native mobile applications, and is also based on

Gstreamer (Alund, 2015).

This wide tool availability allows the arrangement of different architectures that can address unique

scenarios as seen in this chapter. The inability to implement a standalone IMS AGW deviates from the

proposed model and is therefore also testament of the efficiency of open source products and the

technological advancements they make to enable inter-working between the WebRTC and IMS

systems.

6.4. Insights from the Demonstration The implementation of the model and the review of the open source tools have led to an important

observation, one that is summarised in the following point as an emerging requirement to be added

to those used in the synthesis of the model:

Page | 87

Requirement 6 – the importance of implementing a modular architecture

As demonstrated by Amirante et al. (2015), it is important to use, as far as possible, tools that are

modular to develop an integrated architecture that “allows users to implement a variegated set of

advanced services in a scalable fashion” (Amirante et al., 2015). Through the implementation of

plugins, the Janus gateway is able to conform to this requirement, as with the tools mentioned within

this chapter, particularly Kamailio, whose ability to integrate IMS modules is evidence of the concept

put forward to provide a basic model that can be extended through additional supporting functions

which can be implemented as modules.

6.5. Conclusion This chapter demonstrated the use of open source tools that were employed to implement the

WebRTC and IMS model in order to demonstrate a successful integration through the demonstration

of successful registration and session establishment scenarios. The basic architecture was presented

in Section 6.2 and was realised using common and popular software tools that are used by system

integrators. The tools used in this demonstration are sipML5 as the WIC, the webrtc2sip gateway as a

combined WSF and WMF, OpenIMSCore as the IMS core network and IMSDroid as the IMS client. The

prototype excludes the IMS AGW although it was included as part of the model. The purpose of this

change shows the effectiveness of webrtc2sip in performing the necessary media inter-working

functions, thus rendering the IMS AGW redundant. In spite of this, the author continues to recognise

the importance of the IMS AGW at the conceptual level. Section 6.2.5 describes the challenges faced

when employing these tools, which in some instances extended to the implementation of other tools

considered demonstrating the integration that was described in Section 6.3. An added feature

emergent from the demonstration was identified in Section 6.4 which expresses the importance of

using tools that can be structured and organised into a modular fashion in order to implement a basic

model which could be extended via additional functions when executing advanced features. The next

and final chapter will then discuss how the implementation realises the thesis objectives and

recommendations for future research.

Page | 88

7. Chapter 7 – Conclusion The purpose of this chapter is to provide concluding remarks that outline the extent to which this work

meets the goals defined and the objectives stated for the research. The discussion is structured in such

a way as to cross-reference the resultant model and implementation against the original research

objectives. The chapter goes on to make recommendations for future work that could be conducted

on the network testbed for further experimentation.

Revisiting the Research Goals This section summarises the requirements that emerged from the analysis of the IMS service

architecture in Chapter 3, the 3GPP investigation of the WebRTC and IMS integration in Chapter 4, as

well as the implementation of the proposed model in Chapter 6 which uses open source tools

according to the goals and objectives defined for the present research. Consequently, the approach

taken to synthesise the research argument is clearly expressed and re-emphasised.

Research Goal 1

To synthesise a WebRTC and IMS integration model that addresses developer needs and

requirements.

The discussion of both WebRTC (Chapter 2) and IMS (Chapter 3) systems, particularly the IMS service

architecture, provided a coherent argument highlighting common themes that emerged from

analysing how service provision occurs in IMS. These themes were organised as requirements which

informed a basic integration model that acted as a starting point to discover how telcos are inclined

to reuse existing infrastructure to integrate third-party services into their networks. This ability is

enabled by the implementation of AS functions which also function as gateways where necessary to

connect with ASs in external domains. Furthermore, the heavy reliance on standards and regulations

led to the development of standardised interfaces between these functions where internal and

external protocols are supported. Thus, WebRTC as a third-party domain of interest, benefits from

access to IMS infrastructure as a result of the structures already put in place to enable their

integration.

For this purpose, the 3GPP TR 23.701 was extensively analysed in Section 4.4 to describe how the

different architectural solutions propose qualitatively unique candidate integration models. This

analysis resulted in the formulation of further requirements that would be added to the espoused

integration model. These requirements, and their main elements, summarise the ability to incorporate

web-based principles in telco ecosystems, where the use of Operator Web IDs and JSON-based

signalling techniques are exemplars. In addition, the requirements also describe an evolutionary

measure that telcos can take to extend their existing infrastructure to natively support web

techniques. Section 4.6 covered the 3GPP reference architecture which was used as a guiding

framework for the synthesis of the model espoused in this thesis in Chapter 5, which consolidates a

practical model for the developer. Section 5.2.3 presented a discussion of how the functions from the

3GPP reference architecture are conceptualised to develop a “barebones” model using SIP over

WebSockets as the main signalling technique and DTLS-SRTP as the main media protocol. This basic

view allows one to identify core functions that are required for the integration model to provide core

services, following which, any advanced services are decoupled and provided as additional functions

required to support the overall architecture.

Page | 89

Research Goal 2

To create an open source testbed that enables testing and experimentation.

The implementation of the model presents a selection of products that could be used to create the

network testbed. The use of open source tools was determined to be pragmatic since it would lend

unrestricted access to source code, and the array of tools available were effective at experimenting

with the standards and protocols required. For instance, the webrtc2sip SIP Proxy module and

Kamailio provided WebSocket support, the webrtc2sip RTCWeb Breaker and Media Coder modules,

the RTPProxy media engine, FreeSWITCH and others described in Section 6.3, provided support for

the relevant transcoding and media handling functions. Not only did these tools support the creation

of an experimentation platform, they could in theory be arranged in such a way that the model could

be realised using different combinations of the tools, with the possibility of extending the testbed

further. Thus, the final requirement identified for the research was summarised by the importance of

implementing a modular architecture.

Limitations of the Study The following sub-sections describe the overall challenges faced when conducting the research which

introduced constraints that could influence the quality of the research contribution.

Tool sets

The author recognises that not every available open source tool was tested which could have

produced a different implementation.

Training and skills set

The investigation of the available tools presented a steep learning curve. For example, Kamailio

requires several interventions in order to run the different modules for WebSockets, IMS, the

RTPProxy engine and other fine-tuning for DNS and database access. In addition to analysing files and

code, the investigation involved maintaining a high-level view of the overall architecture in order to

ensure that other tools could still be able to run and integrate following any modifications. As such,

the solution would be challenging for some developers to implement given that it comprises multiple

components.

Performance evaluation

The use of testing tools such as SIPp (SIPp, 2014); testRTC (a proprietary WebRTC testing tool)

(testRTC, 2017) and Multi-Protocol Test Suite (MTS) (MTS, 2017) could have enhanced the research

outcomes by providing a quantitative analysis of the performance of the integration model, thus giving

a better perspective of the qualitative accomplishments of this research. Cruz & Barraca (2015) for

instance, evaluate the performance of a WebRTC and IMS system based on Solution 5 of TR 23.701 by

measuring the call throughput and mouth-to-ear delay using MTS. They suggest that call delays

experienced over an integrated architecture are similar to those experienced with mobile network

calls. Furthermore, these testing tools could enable the creation of data sets that could be used to

measure different tools’ capabilities when trying a variety of communication scenarios. Adeyeye et al.

(2013) is another example of a study that could have been conducted where signalling overheads of

different protocols are compared. Even though this facility would have been beneficial, it was never a

goal of the work hence the focus on synthesising the design.

Recommendations for Future Work The current implementation provides a basic model with the potential for the inclusion of support for

advanced features illustrated by the WIC architecture in Figure 5-5, thus creating numerous

Page | 90

opportunities for further research to be conducted over the network testbed. As such, opportunities

stem from deploying these advanced features whereas other opportunities from addressing the

limitations of the study described in the previous section. Therefore, some examples of further

research that could be conducted are summarised in the following subsection.

Identity Management

It would be desirable to extend the testbed through added identity management functions such as

implementing operator web identities using SIP or another mechanism, or modelling identity

management provided by the operator or a web-based IdP such as Google within a mixed WebRTC-

IMS context. This use case could involve testing SIP OAuth2.0 on a WIC as proposed by Shekh-Yusef &

Pascual (2014). The SIM authentication scheme proposed by Solution 7 in Section 4.4.7 is another

instance that could be realised for this use case that also supports the investigation of the WWPF as a

unique function suggested for this architecture.

Signalling Alternatives

The issue of signalling alternatives to SIP could be investigated. XMPP could be investigated in addition

to using transport channels that are different from WebSockets such as XHR or even WebRTC Data

Channels. The study conducted by Adeyeye et al. (2013) is evidence of the feasibility of alternative

signalling protocols and transport alternatives that can be implemented. The use of WebRTC Data

Channels is also another mechanism that offers diverse usage in terms of transporting JSON-based or

proprietary signalling messages along the control plane, and can therefore be used within applications

that do not need a centralised server to setup Data Channels, for instance during live gaming and P2P

file sharing.

Integration with other Domains

The integration of WebRTC services with RCS could be investigated where the session handling

scenario described for a WIC implementing an RCS messaging service could be modelled. Another

example of is PSTN interworking, where a telecom server such as the Mobicents AS could be used as

the integration tool to enable services such as IVR, voice mail and other call handling capabilities.

Statement of Contributions The research has contributed:

1. A WebRTC and IMS model that meets developers’ needs for experimentation.

Developers can benefit from the practicality and ease of integration of the proposed model which has

been designed to leverage existing IMS infrastructure while also providing a forward-thinking view by

enabling evolution through additional functions. The thesis also acts as a guiding framework for

developers looking to understand the implications of integrating WebRTC and IMS by using a model

whose requirements conform to standards prescribed by standardisation bodies.

2. A synopsis of open source tools available to support the integration of WebRTC with IMS.

The description of the implementation process gives a synopsis of tool availability and support, mainly

for SIP-based WebRTC systems but also provides easy access to implementing other protocols by

supporting additional functions where necessary, thus improving efficacy when making development

decisions.

Page | 91

List of References 3GPP. 2008a. Open Service Access (OSA) Application Programming Interface (API); Part 10:

Connectivity Manager Service Capability Feature (SCF). Retrieved

(http://www.3gpp.org/ftp/Specs/html-info/29198-10.htm).

3GPP. 2008b. Policy and Charging Control (PCC) over S9 Reference Point. Retrieved

(http://www.3gpp.org/ftp/Specs/html-info/29215.htm).

3GPP. 2013. Study on Web Real Time Communication (WebRTC) Access to IP Multimedia Subsystem

(IMS); Stage 2 (Release 12). Retrieved (http://www.3gpp.org/DynaReport/23701.htm).

3GPP. 2015. “IP Multimedia Subsystem (IMS); Stage 2 (Release 14).” (Stage 2):1–311. Retrieved

(https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificatio

nId=821).

3GPP. 2017. “IP Multimedia Subsystem.” 3GPP - A Global Initiative 1. Retrieved July 19, 2017

(http://www.3gpp.org/technologies/keywords-acronyms/109-ims).

Adeyeye, Michael, Ishmeal Makitla, and Thomas Fogwill. 2013. “Determining the Signalling

Overhead of Two Common WebRTC Methods: JSON via XMLHttpRequest and SIP over

WebSocket.” in IEEE AFRICON Conference.

Alexandru, Carol. 2014. Impact of WebRTC (P2P in the Browser). Zurich, Switzerland.

Altanai. 2014. WebRTC Integrator’s Guide. First. edited by A. Arrichiello, P. Boemio, A. R. Portabales,

and A. Sergiienko. Birmingham: Packt Publishing Ltd. Retrieved (http://www.it-

ebooks.info/book/4643/).

Alund, Stefan. 2015. “OpenWebRTC - What’s Happening 2015?” Ericsson Research Blog 1. Retrieved

April 28, 2015 (http://www.ericsson.com/research-blog/context-aware-

communication/openwebrtc-whats-happening-2015/).

Alvestrand, Harald and Adrian Grange. 2013. VP8 as RTCWEB Mandatory to Implement. Retrieved

(http://www.ietf.org/internet-drafts/draft-alvestrand-rtcweb-vp8-02.txt).

Amirante, Alessandro, Tobia Castaldi, Lorenzo Miniero, and Simon Romano. 2013. “On the Seamless

Interaction between webRTC Browsers and SIP-Based Conferencing Systems.” IEEE

Communications Magazine 51(4):42–47.

Amirante, Alessandro, Tobia Castaldi, Lorenzo Miniero, and Simon Pietro Romano. 2015.

“Performance Analysis of the Janus WebRTC Gateway.” P. 4:1--4:7 in Proceedings of the 1st

Workshop on All-Web Real-Time Systems, AWeS ’15. New York, NY, USA: ACM. Retrieved

(http://doi.acm.org/10.1145/2749215.2749223).

Apache Tomcat. 2017. SSL/TLS Configuration HOW-TO. Retrieved

(https://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html).

Asterisk. 2017. “Asterisk.” asterisk.org 1. Retrieved June 1, 2017 (http://www.asterisk.org/).

Bach, Tilmann, Michael Maruschke, Jens Zimmermann, H. Kay, and Matthias Baumgart. 2014.

“Combination of IMS-Based IPTV Services with WebRTC.” Pp. 140–45 in The Ninth International

Multi-Conference on Computing in the Global Information Technology, ICCGI 2014.

Page | 92

Bakore, Amit. 2003. Professional Apache Tomcat. Wrox. Retrieved May 16, 2017

(https://books.google.co.za/books?id=6lXRnoVEOQoC&printsec=frontcover&source=gbs_atb#v

=onepage&q&f=false).

Bankoski, J., Paul Wilkins, and Yaowu Xu. 2011. Technical overview of VP8, an open source video

codec for the web. Multimedia and Expo (ICME), 2011 IEEE International Conference on.

Barcelona: IEEE.

Beltran, Victoria, Emmanuel Bertin, and Noël Crespi. 2014. “User Identity for WebRTC Services: A

Matter of Trust.” IEEE Internet Computing 18(6):18–25.

Benali, O., K. El-Khazen, D. Garrec, M. Guiraudou, and G. Martinez. 2004. “A Framework for an

Evolutionary Path toward 4G by Means of Cooperation of Networks.” IEEE Communications

Magazine 42(5):82–89.

Bertin, Emmanuel, Noel Crespi, and Michel L’Hostis. 2011. “A Few Myths about Telco and OTT

Models.” Pp. 6–10 in 2011 15th International Conference on Intelligence in Next Generation

Networks, ICIN 2011.

Bertin, Emmanuel, Sébastien Cubaud, Stéphane Tuffin, Noël Crespi, and Victoria Beltran. 2013.

“WebRTC, the Day after: What’s next for Conversational Services?” 2013 17th International

Conference on Intelligence in Next Generation Networks, ICIN 2013 (January):46–52.

Bertin, Emmanuel, Imen Ben Yahia, and Noel Crespi. 2007. “Modeling IMS Services.” Journal of

Mobile Multimedia 3(2):150–67. Retrieved (http://www.it-

sudparis.eu/dpt/rs2m/ncpub/2006/Journal of Mobile Multimedia/JMM final.pdf).

Bertrand, Gilles. 2007. “The IP Multimedia Subsystem in Next Generation Networks.” Network,

Multimedia and Security department (RSM)- … 7(March):1–9. Retrieved

(http://www1.coe.neu.edu/~eeichen/spring_2013/class_notes/j_march_14/IMS_an_overview.

pdf).

Black, U. D. 2001. Internet Telephony: Call Processing Protocols. 1st ed. Prentice Hall PTR. Retrieved

(https://books.google.co.za/books?id=JPhSAAAAMAAJ).

Brouquet, Daniel. 2008. Pervasive Networks and Connectivity Seminar Series on Special Topics in

Networking: IP Multimedia Subsystem, Spring 2008.

Camarillo, Gonzalo and Miguel-Angel Garcia-Martin. 2007. The 3G IP Multimedia Subsystem (IMS):

Merging the Internet and the Cellular Worlds. Third. West Sussex: John Wiley & Sons.

Cardoza, Christina. 2015. “WebRTC: The Road to Standardization - SD Times.” Software Development

Times 3. Retrieved October 25, 2016 (http://sdtimes.com/webrtc-road-standardization/).

Casner, Steve. 2016. “Real-Time Transport Protocol (RTP) Parameters.” Internet Assigned Numbers

Authority (IANA) 1. Retrieved October 7, 2016 (http://www.iana.org/assignments/rtp-

parameters/rtp-parameters.xhtml).

Chrome Help. 2015. “Blocked Plugins.” Retrieved May 8, 2015

(https://support.google.com/chrome/answer/1247383?hl=en).

Core Network Dynamics. 2017. “About | Germany | Core Network Dynamics.” Core Network

Dynamics 1. Retrieved August 16, 2017 (https://www.corenetdynamics.com/about).

Page | 93

Crockford, D. 2006. The Application/json Media Type for JavaScript Object Notation (JSON). RFC

Editor. Retrieved (http://www.rfc-editor.org/rfc/rfc4627.txt).

Cruz, B. S. and J. P. Barraca. 2015. “IMS Centric Communication Supporting WebRTC Endpoints.” Pp.

732–37 in 2015 IEEE Symposium on Computers and Communication (ISCC).

Davies, Marcin, Joachim Zeiss, and Rene Gabner. 2012. “Evaluating Two Approaches for Browser-

Based Real-Time Multimedia Communication.” P. 109 in Proceedings of the 10th International

Conference on Advances in Mobile Computing & Multimedia. Retrieved

(http://dl.acm.org/citation.cfm?doid=2428955.2428982).

Doubango Telecom. 2016a. “Doubango Telecom webrtc2sip.” GitHub 1. Retrieved

(https://github.com/DoubangoTelecom/webrtc2sip/issues).

Doubango Telecom. 2016b. “Smart SIP and Media Gateway to Connect WebRTC Endpoints.”

Retrieved (https://www.doubango.org/webrtc2sip/).

Doubango Telecom. 2018. "Doubango Telecom." Retrieved (https://www.doubango.org/).

Dutton, Sam. 2015. “Chrome 47 WebRTC: Media Recording, Secure Origins & Proxy Handling.”

Google Developers. Retrieved (https://developers.google.com/web/updates/2015/10/chrome-

47-webrtc?hl=en).

Eisenmann, Thomas R., Geoffrey Parker, and Marshall Van Alstyne. 2008. Opening Platforms: How,

When and Why? Cheltenham,. Retrieved July 26, 2017

(http://www.hbs.edu/faculty/Publication Files/09-030.pdf).

El Alaoui, Sara et al. 2012. “Towards Future 4G Mobile Networks: A Real-World IMS Testbed.”

International Journal of Next-Generation Networks (IJNGN) 4(3). Retrieved May 15, 2017

(http://airccse.org/journal/ijngn/papers/4312ijngn03.pdf).

Eriksson, GP and S. Hakansson. 2012. “WebRTC: Enhancing the Web with Real-Time Communication

Capabilities.” Ericson Rev 5–9. Retrieved June 14, 2015

(http://scholar.google.com/scholar?hl=en&btnG=Search&q=intitle:WebRTC+:+enhancing+the+

web+with+real-time+communication+capabilities#0).

ETSI. 2007. “ETSI - Common IMS to Be Centred in the 3GPP Services Specification Group.” ETSI News

1. Retrieved July 25, 2017 (http://www.etsi.org/news-events/news/202-news-release-18th-

june-2007).

Fette, Ian and Alexey Melnikov. 2011. “The WebSocket Protocol.” Retrieved

(https://tools.ietf.org/html/rfc6455).

FreeSwitch. 2012. “Codecs - FreeSWITCH Wiki.” FreeSwitch Wiki 1. Retrieved June 7, 2017

(https://wiki.freeswitch.org/wiki/Codecs).

Friese, I. et al. 2010. “Bridging IMS and Internet Identity.” Pp. 1–6 in Intelligence in Next Generation

Networks (ICIN), 2010 14th International Conference on.

Ghadialy, Zahid. 2004. “CAMEL: An Introduction.” 3G4G.org 1. Retrieved December 2, 2016

(http://www.3g4g.co.uk/Tutorial/ZG/zg_camel.html).

Page | 94

Google Groups. 2015. Google groups forum - discuss doubango. Retrieved

(https://groups.google.com/forum/#!topic/doubango/-6XKVB_Y1kY).

GNU. 2007. “GNU General Public License.” GNU Operating System 1. Retrieved August 16, 2017

(https://www.gnu.org/licenses/gpl.html).

Haas, Hugo and Allen Brown. 2004. “W3C. Web Services Glossary. Definitions. Web Service.” W3C

3(February):1–17. Retrieved December 9, 2016 (https://www.w3.org/TR/2004/NOTE-ws-gloss-

20040211/#webservice).

Higa, D. 2008. “Walled Gardens versus the Wild West.” Computer 41(10):102–5.

Hirsch, Frederick and Andrew Braun. 2010. “Ubiquitous Web Applications Activity Statement.”

Ubiquitous Web Domain (September):2010–11. Retrieved

(https://www.w3.org/2007/uwa/Activity.html).

Holmberg, C., S. Hakansson, and G. Eriksson. 2013. “Web Real-Time Communication Use-Cases and

Requirements.” draft-ietf-rtcweb-usecases-and-requirements-11. Retrieved

(https://tools.ietf.org/html/rfc7478).

Howes, Tim, Mark Smith, and Gordon S. Good. 2003. “Introduction to Directory Services and LDAP.”

P. 899 in Understanding and Deploying LDAP Directory Services. Boston: Addison-Wesley.

IETF. 2014. “Overview: Real Time Protocols for Browser-Based Applications.” 3–22. Retrieved May

18, 2015 (http://datatracker.ietf.org/doc/draft-ietf-rtcweb-overview/?include_text=1).

ITU. 2016. Measuring the Information Society Report. Geneva, Switzerland. Retrieved July 23, 2017

(http://www.itu.int/en/ITU-D/Statistics/Documents/publications/misr2016/MISR2016-w4.pdf).

ITU-T. 1998. T.140: Protocol for Multimedia Application Text Conversation. Retrieved

(https://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-T.140-199802-I!!PDF-

E&type=items).

Janczukowicz, Ewa, Ahmed Bouabdallah, and Jean-marie Bonnin. 2015. “Specialized Network

Services for WebRTC.” P. 6 in AWeS ’15 Proceedings of the 1st Workshop on All-Web Real-Time

System. New York. Retrieved

(http://dl.acm.org/ft_gateway.cfm?id=2749218&ftid=1564576&dwn=1&CFID=713346403&CFT

OKEN=23309977).

Jennings, C., Peterson, J., & Watson, M. (2002). Private Extensions to the Session Initiation Protocol

(SIP) for Asserted Identity within Trusted Networks. RFC Editor. RFC Editor.

Jesup, Randell, Salvatore Loreto, and Michael Tuexen. 2015a. WebRTC Data Channel Establishment

Protocol. Retrieved (http://www.ietf.org/internet-drafts/draft-ietf-rtcweb-data-protocol-

09.txt).

Jesup, Randell, Salvatore Loreto, and Michael Tuexen. 2015b. WebRTC Data Channels. Retrieved

(http://www.ietf.org/internet-drafts/draft-ietf-rtcweb-data-channel-13.txt).

Jitsi. 2011. “A SIP to Jingle (XMPP) Gateway in Kamailio (OpenSER) | Jitsi.” Jitsi.org 1. Retrieved

November 16, 2016 (https://jitsi.org/GSOC2011/KamailioJingle).

Jobs, Steve. 2010. “Thoughts on Flash.” Apple. Retrieved May 6, 2015

Page | 95

(http://www.apple.com/hotnews/thoughts-on-flash/).

Johnston, Alan B. and Daniel C. Burnett. 2013. “WebRTC: The Web Way to Communicate.” 10.

Retrieved (http://webrtcbook.com/presentations/WebRTCIEEE04-02-13.pdf).

Johnston, Alan, John Yoakum, and Kundan Singh. 2013. “Taking on WebRTC in an Enterprise.” IEEE

Communications Magazine 51(4):48–54.

Kamailio. 2015. “Welcome to Kamailio - the Open Source SIP Server.” 1. Retrieved June 12, 2015

(http://www.kamailio.org/w/).

Kaplan, Hadriel. 2015. Should We Support SDES in WebRTC? Retrieved June 6, 2017

(https://www.ietf.org/proceedings/84/slides/slides-84-rtcweb-15.pdf).

Khandelwal, Rakesh. 2007. “The Importance of Standard IMS Architecture.” Architecture 1–7.

Retrieved (http://blog.pucp.edu.pe/blog/wp-content/uploads/sites/100/2007/09/Importance-

of-IMS.pdf).

Khlifi, Hechmi and Jean Charles Grégoire. 2008. “IMS Application Servers: Roles, Requirements, and

Implementation Technologies.” IEEE Internet Computing 12(3):40–51.

Kurose, James F. and Keith W. Ross. 2012. Computer Networking: A Top-Down Approach (6th

Edition). 6th ed. Pearson.

Levent-Levi, Tsahi. 2014. “The Real Codec Battle Is VP9 vs H.265 - And VP9 Is Winning - Post - No

Jitter.” NoJitter 1. Retrieved November 16, 2016

(http://www.nojitter.com/post/240168581/the-real-codec-battle-is-vp9-vs-h265--and-vp9-is-

winning).

Lopez Fernandez, L. and Paris Diaz, M. and Benitez Mejias, R. and Lopez, F.J. and Santos, J. A. 2013.

“Kurento: A Media Server Technology for Convergent WWW/mobile Real-Time Multimedia

Communications Supporting WebRTC.” Pp. 1–6 in World of Wireless, Mobile and Multimedia

Networks (WoWMoM), 2013 IEEE 14th International Symposium and Workshops on a. Madrid:

IEEE Xplore Digital Library. Retrieved

(http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6583507&isnumber=6583357).

Loreto, Salvatore; and Simon Romano. 2014. Real-Time Communication with WebRTC Peer-to-Peer in

the Browser. 1st ed. Safari Books Online: O’Reilly Media.

Ludwig, Scott, Joe Beda, Peter Saint-Andre, Robert McQueen, Sean Egan, and Joe Hildebrand. 2016.

XEP-0166: Jingle. XMPP Standards Foundation. Retrieved (https://xmpp.org/extensions/xep-

0166.html).

Lynch, Lucy. 2011. “Inside the Identity Management Game.” IEEE Internet Computing 15(5):78–82.

Maes, Stéphane H. 2010. “Next Generation Telco Service Providers : Telco 2 . 0 and Beyond.” Huawei

CTO Whitepaper. Retrieved

(http://www.stephanemaes.com/ESSEM/Download/2010/Huawei_CTO_paper_sm_7_5_10.pdf

)

Magedanz, Thomas, Niklas Blum, and Simon Dutkowski. 2007. “Evolution of SOA Concepts in

Telecommunications.” Computer 40(11):46–50.

Page | 96

Mahy, R., P. Matthews, and J. Rosenberg. 2010. Traversal Using Relays around NAT (TURN): Relay

Extensions to Session Traversal Utilities for NAT (STUN). RFC Editor. Retrieved (http://www.rfc-

editor.org/rfc/rfc5766.txt).

McGrew, D. 2010. “Datagram Transport Layer Security (DTLS) Extension to Establish Keys for the

Secure Real-Time Transport Protocol (SRTP)(RFC 5764), IETF.” Retrieved

(https://tools.ietf.org/html/rfc5764).

Microsoft Developers. 2016. “Dev Guide: Object RTC API - Microsoft Edge Development.” Microsoft

Developers 1. Retrieved (https://developer.microsoft.com/en-us/microsoft-

edge/platform/documentation/dev-guide/realtime-communication/object-rtc-api/).

Minerva, Roberto and Steve Bell. 2010. “Boundary Blurring between Telecom and the Internet.”

EMEA 2010 8–11.

Miniero, Lorenzo, Alessandro Amirante, Tobia Castaldi, and Simon Romano. 2008. A Binary Floor

Control Protocol (BFCP) Control Package for the Session Initiation Protocol (SIP). Retrieved

(http://www.ietf.org/internet-drafts/draft-miniero-bfcp-control-package-00.txt).

Mobicents. 2015. “The Mobicents Communication Platform.” Retrieved May 18, 2015

(http://www.mobicents.org/).

Moerdijk, A. J. and Lucas Klostermann. 2003. “Opening the Networks with Parlay/OSA: Standards

and Aspects behind the APIs.” IEEE network 17(3):58–64.

Mozilla. 2015. “Plugins.” Mozilla Developer Network. Retrieved May 5, 2015

(https://developer.mozilla.org/en-US/Add-ons/Plugins).

Mozilla. 2016. “Performance.now() - Web APIs | MDN.” Mozilla Foundation 1. Retrieved

(https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/onicecandidate).

Mozilla. 2017. “Navigator.getUserMedia() - Web APIs | MDN.” Mozilla Developer Network 1.

Retrieved May 22, 2017 (https://developer.mozilla.org/en-

US/docs/Web/API/Navigator/getUserMedia#Browser_compatibility).

MTS. 2017. “Multi-Protocol Test Suite : The Solution to Integrate, Test and Optimize Your IP Telecom

System.” Ericsson MTS 1. Retrieved June 7, 2017 (http://mts.arm-tool.com/).

Mulligan, C. E. A. 2009. “Open API Standardization for the NGN Platform.” IEEE Communications

Magazine 47(5):108–13.

Muranyi, J. and I. Kotuliak. 2013. “Identity Management in WebRTC Domains.” Pp. 289–93 in

Emerging eLearning Technologies and Applications (ICETA), 2013 IEEE 11th International

Conference on. Retrieved

(http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=6674445%5Cnpapers3://p

ublication/doi/10.1109/ICETA.2013.6674445).

Muswera, Wt and Alfredo Terzoli. 2010. “Development of an IMS Compliant, Cross Platform Client

Using the JAIN SIP Applet Phone.” in Development of an IMS Compliant, Cross Platform Client

Using the JAIN SIP Applet Phone. Retrieved

(http://www.satnac.org.za/proceedings/2010/papers/poster/Muswera 490.pdf).

Narbutt, Miroslaw and Mark Davis. 2005. “An Assessment of the Audio Codec Performance in Voice

Page | 97

over WLAN (VoWLAN) Systems.” Retrieved November 12, 2016 (http://arrow.dit.ie/commcon).

NetCraft. 2017. “February 2017 Web Server Survey | Netcraft.” Netcraft News 1. Retrieved May 16,

2017 (https://news.netcraft.com/archives/2017/02/27/february-2017-web-server-

survey.html).

O’Connell, John. 2007. “Service Delivery within an IMS Environment.” IEEE Vehicular Technology

Magazine 2(1):12–19.

Olanoff, Drew. 2015. “Google Acquires Jibe Mobile To Help Adopt New Standard For Carrier

Messaging | TechCrunch.” Tech Crunch 1. Retrieved February 26, 2017

(https://techcrunch.com/2015/09/30/google-acquires-jibe-mobile-to-help-adopt-new-

standard-for-carrier-messaging/).

Open Mobile Alliance. 2005. “Utilization of IMS Capabilities Requirements.” 1–15. Retrieved October

26, 2016

(http://technical.openmobilealliance.org/Technical/Release_Program/docs/IMS/V1_0-

20050809-A/OMA-RD-IMSinOMA-V1_0-20050809-A.pdf).

openimscore.org. 2015. “OpenIMS – The Open Source IMS Core Project.” Core Network Dynamics 1.

Retrieved May 20, 2017 (http://www.openimscore.org/).

Otto, Stefan, Jan Meijer, and Simon Skrødal. 2016. SA8T2 Internal Deliverable. Technology Scout:

WebRTC2SIP Gateway.

Pascual, Victor. 2014. “The IMS Approach to WebRTC - webrtcHacks.” webrtcH4cKS 1. Retrieved

February 9, 2017 (https://webrtchacks.com/ims-approach-webrtc/).

Pascual, Victor Ávila. 2013. “WebRTC MUST Implement DTLS-SRTP But… MUST NOT Implement

SDES?” webrtcH4cKS 1. Retrieved June 6, 2017 (https://webrtchacks.com/webrtc-must-

implement-dtls-srtp-but-must-not-implement-sdes/).

Pimentel, Victoria and Bradford G. Nickerson. 2012. “Communicating and Displaying Real-Time Data

with WebSocket.” IEEE Internet Computing 16(4):45–53.

Prasad, J.Kalyan and B. Anil Kumar. 2011. “Analysis of SIP and Realization of Advanced IP-PBX

Features.” Pp. 218–22 in ICECT 2011 - 2011 3rd International Conference on Electronics

Computer Technology, vol. 6.

Proust, S. et al. 2015. Additional WebRTC Audio Codecs for Interoperability. RFC Editor. Retrieved

(https://tools.ietf.org/html/rfc7875).

Raivio, Yrjo, and Sakari Luukkainen. 2011. “Mobile Networks as a Two-Sided Platform - Case Open

Telco.” Journal of Theoretical and Applied Electronic Commerce Research 6(2):77–89.

Ravindran, Parthasarathi, Uwe Rauschenbach, and Elangovan Manickam. 2013. Offer & Answer

Interworking between JSEP & SIP. Retrieved (http://www.ietf.org/internet-drafts/draft-partha-

rtcweb-jsep-sip-01.txt).

Raymond, Robin. 2012. “Open Peer - A Proposed Peer-to-Peer Signaling Protocol for WebRTC.”

Hookflash 1–11. Retrieved April 27, 2015 (https://www.scribd.com/doc/114565509/Open-

Peer-for-WebRTC-Whitepaper).

Page | 98

Reichl, Peter, Sandford Bessler, Joachim Fabini, Rudolf Pailer, and Joachim Zeiss. 2006.

“Implementing a Native IMS Location Service Enabler over a Prototypical IMS Core Network

Testbed.” Pp. 2–9 in CEC/EEE 2006 Joint Conferences, vol. 2006.

Rescorla, Eric. 2015a. Security Considerations for WebRTC. Retrieved (http://www.ietf.org/internet-

drafts/draft-ietf-rtcweb-security-08.txt).

Rescorla, Eric. 2015b. WebRTC Security Architecture. Retrieved (http://www.ietf.org/internet-

drafts/draft-ietf-rtcweb-security-arch-11.txt).

Richardson, Texas. 2014. “Mavenir Selected by MTS for Advanced Multimedia Services Based on RCS

| ITWeb.” IT Web Telecoms 1. Retrieved February 26, 2017

(http://www.itweb.co.za/index.php?option=com_content&view=article&id=71400:Mavenir-

selected-by-MTS-for-advanced-multimedia-services-based-on-RCS&catid=260).

Roach, A. B. and Mozilla. 2015. “WebRTC Video Processing and Codec Requirements.” Retrieved

(https://tools.ietf.org/html/draft-ietf-rtcweb-video-06).

Romain, Carbou. 2013. “Some WebRTC Opportunities for RCS: And Some Inner Challenges to

Overcome.” 2013 17th International Conference on Intelligence in Next Generation Networks,

ICIN 2013 31–38.

Rosenberg, J. 2010. Interactive Connectivity Establishment (ICE): A Protocol for Network Address

Translator (NAT) Traversal for Offer/Answer Protocols. RFC Editor. Retrieved (http://www.rfc-

editor.org/rfc/rfc5245.txt).

Rosenberg, J. and H. Schulzrinne. 2002. An Offer/Answer Model with Session Description Protocol

(SDP). RFC Editor. Retrieved (http://www.rfc-editor.org/rfc/rfc3264.txt).

Rosenberg, Jonathan, Matthew Kaufman, Magnus Hiie, and Francois Audet. 2011. An Architectural

Framework for Browser Based Real-Time Communications (RTC). Retrieved

(http://www.ietf.org/internet-drafts/draft-rosenberg-rtcweb-framework-00.txt).

Sansay. 2013. “Integrating WebRTC with Existing VoIP Networks.” 1–7. Retrieved

(http://www.sansay.com/sandbox/wp-

content/uploads/2013/06/Integrating_WP_062313_FINAL_3.pdf).

Schuh, Justin. 2013. “Saying Goodbye to Our Old Friend NPAPI.” Chromium Blog. Retrieved May 5,

2015 (http://blog.chromium.org/2013/09/saying-goodbye-to-our-old-friend-npapi.html).

Schulzrinne, H., S. Casner, R. Frederick, and V. Jacobson. 2003. RTP: A Transport Protocol for Real-

Time Applications. RFC Editor. Retrieved (http://www.rfc-editor.org/rfc/rfc3550.txt).

Sege, Pavel, Peter Palúch, Jozef Papán, and Milan Kubina. 2014. “The Integration of WebRTC and

SIP : Way of Enhancing Real-Time , Interactive Multimedia Communication.” Pp. 437–42 in

Proceedings of the 12th International Conference on Emerging eLearning Technologies and

Applications (ICETA). IEEE Xplore Digital Library.

Segec, Pavel and Tatiana Kovacikova. 2012. “Implementation Of IMS Testbeds Using Open Source

Platforms.” 8. Retrieved May 15, 2017

(https://www.academia.edu/11040281/IMPLEMENTATION_OF_IMS_TESTBEDS_USING_OPEN_

SOURCE_PLATFORMS).

Page | 99

Shekh-Yusef, Rifaat and Victor Pascual. 2014. The Session Initiation Protocol (SIP) OAuth. Retrieved

(http://www.ietf.org/internet-drafts/draft-yusef-sipcore-sip-oauth-00.txt).

Shores, Redwood, Castro Valley, Honggang Frank Zhu, and Karthic Loganathan. 2014. “System And

Method For Extending IP Multimedia Subsystem To HTML5 Environments.” 1(19):14.

sipML5. 2017. “Doubango Telecom / sipML5.” 1. Retrieved

(https://github.com/DoubangoTelecom/sipml5).

SIPp. 2014. “Welcome to SIPp.” SIPp Sourceforge 1. Retrieved June 7, 2017

(http://sipp.sourceforge.net/).

Skvorc, D., M. Horvat, and S. Srbljic. 2014. “Performance Evaluation of Websocket Protocol for

Implementation of Full-Duplex Web Streams.” Pp. 1003–8 in 2014 37th International

Convention on Information and Communication Technology, Electronics and Microelectronics,

MIPRO 2014 - Proceedings.

Spiers, Richard and Neco Ventura. 2010. “A Converged IMS Client for the IP Multimedia Subsystem.”

in Rondebosch, South Africa: University of Cape …. Retrieved

(http://www.satnac.org.za/proceedings/2010/papers/software/Spiers FP 384.pdf).

Sredojev, Branislav, Dragan Samardzija, and Dragan Posarac. 2015. “WebRTC Technology Overview

and Signaling Solution Design and Implementation.” Pp. 1006–9 in 2015 38th International

Convention on Information and Communication Technology, Electronics and Microelectronics,

MIPRO 2015 - Proceedings.

Stackoverflow. 2016. JavaScript GetUserMedia using Chrome with localhost without HTTPS.

Retrieved (https://stackoverflow.com/questions/40144036/javascript-getusermedia-using-

chrome-with-localhost-without-https).

StatCounter.com. (2016). Top 5 Desktop, Tablet & Console Browsers from Oct 2015 to Oct 2016

| StatCounter Global Stats. Retrieved from StatCounter: Global Stats:

http://gs.statcounter.com/

STL Partners. 2015. The Open Source Telco: Taking Control of Destiny - STL Partners / Telco 2.0

Research. Retrieved July 26, 2017 (https://www.telco2research.com/articles/EB_the-open-

source-telco).

Talky. 2017. “Browser Support Scorecard - Is WebRTC Ready Yet?” Talky 1. Retrieved May 18, 2017

(http://iswebrtcreadyyet.com/).

Taylor, R. and J. Ing. 2013. “WebRTC Overview - 3GPP.” Presentation: Public Safety Canada.Retrieved

(ftp://www.3gpp.org/TSG_SA/WG3_Security/TSGS3_LI/2013_51_Burlington/SA3LI13_136r1.pp

t).

testRTC. 2017. “Homepage testRTC.” testRTC 1. Retrieved June 7, 2017 (https://testrtc.com/).

Toutain, François, Emmanuel Le Huérou, and Eric Beaufils. 2015. “On Webco Interoperability.” Pp. 1–

6 in Proceedings of the 1st Workshop on All-Web Real-Time Systems - AWeS ’15. Retrieved

(http://dl.acm.org/citation.cfm?doid=2749215.2749219).

TSGC. 2015. TS 124 371 - V12.0.0 - Universal Mobile Telecommunications System (UMTS); LTE; Web

Real-Time Communications (WebRTC) Client Access to the IP Multimedia (IM) Core Network

Page | 100

(CN) Subsystem; Protocol Specification (3GPP TS 24.371 Version 12.0.0 Release 12). Sophia

Antipolis Cedex. Retrieved February 10, 2017 (http://www.etsi.org).

Tsietsi, M., S. Honye, and H. Thinyane. 2015. “Modelling the Exposure of Services within next

Generation Telecommunication Networks.” Pp. 1–11 in IST-Africa Conference, 2015, edited by

P. Cunningham and M. Cunningham.

Uberti, Justin, Cullen Jennings, and Eric Rescorla. 2015. Javascript Session Establishment Protocol.

Retrieved (http://www.ietf.org/internet-drafts/draft-ietf-rtcweb-jsep-16.txt).

Ubiquity. 2005. “A Concise Guide To The Major Internet Bodies.” Association for Computing

Machinery 1. Retrieved (http://ubiquity.acm.org/article.cfm?id=1071915).

VoipSwitch. 2014. “What Makes a Native OTT or RCS Mobile Client WebRTC Compatible? -.”

VoipSwitch 1. Retrieved May 4, 2017 (http://www.voipswitch.com/what-makes-a-native-ott-

or-rcs-mobile-client-webrtc-compatible/).

Vukotic, Aleksa and James Goodwill. 2011. “Integrating Apache Web Server.” Pp. 185–97 in Apache

Tomcat 7. Berkeley, CA: Apress. Retrieved May 16, 2017

(http://link.springer.com/10.1007/978-1-4302-3724-2_10).

W3C. 2009. “Device and Sensors Working Group - W3C.” W3C 1. Retrieved

(https://www.w3.org/2009/dap/#mediacapture).

W3C. 2015. “WebRTC 1.0: Real-Time Communication Between Browsers.” W3C Working Draft.

Retrieved May 18, 2015 (http://www.w3.org/TR/webrtc/).

WebKit. 2017. “WebKit Feature Status | WebRTC Specification.” WebKit 1. Retrieved November 2,

2017 (https://webkit.org/status/#specification-webrtc).

West, Brian and John Boteler. 2017. “FreeSWITCH Explained - FreeSWITCH - Confluence.” FreeSwitch

1. Retrieved June 7, 2017

(https://freeswitch.org/confluence/display/FREESWITCH/FreeSWITCH+Explained).

York, Dan. 2013. “WebRTC: Moving Real-Time Communication into the Web Browser.” The IETF

Journal 9(1):11–12. Retrieved (http://www.internetsociety.org/sites/default/files/IETF 86_July

11b-1.pdf).