Site Loader
Get a Quote
Rock Street, San Francisco

1 | P a g e

UNIVERSITY OF ZIMBABWE

We Will Write a Custom Essay Specifically
For You For Only $13.90/page!


order now

We Will Write a Custom Essay Specifically
For You For Only $13.90/page!


order now

TITLE: DESIGN AND DEVELOPMENT OF A Voice-Over-Internet
Protocol (VoIP) ENTERPRISE APPLICATION FOR TELONE CO. TO
REPLACE SKYPE FOR BUSINESS COMMUNICATION
FOURTH YEAR PROJECT REPORT
Written and submitted by:
KENNETH DIRWAYI (R116426E)

Department of Electrical Engineering
Faculty of engineering at the University of Zimbabwe
Project supervisor Eng. S Chari
THIS PROJECT IS SUBMITTED IN PARTIAL FULFILMENT OF THE
REQUIREMENTS FOR A BSc DEGREE IN ELECTRICAL ENGINEERING
Email: [email protected]

2 | P a g e

Table of Contents
ABSTRACT …………………………………………………………………………………………………………………………………. 3
CHAPTER 1: INTRODUCTION…………………………………………………………………………………………………….. 4
1.1 INTRODUCTION AND BACKGROUND …………………………………………………………………………… 4
1.1.1 Telone Company Background ………………………………………………………………………………………………… 4
1.1.2 What is Skype? …………………………………………………………………………………………………………………….. 5
1.1.3 Skype for Business ………………………………………………………………………………………………………………… 5
1.1.4 The Limitations of Skype for Business ……………………………………………………………………………………… 7
1.2 AIM ……………………………………………………………………………………………………………………………………. 8
1.3 PROBLEM STATEMENT ……………………………………………………………………………………………………. 9
1.4 OBJECTIVES ……………………………………………………………………………………………………………………… 9
1.5 METHODOLOGY ……………………………………………………………………………………………………………… 10
1.5.1 BRAIN STORMING ………………………………………………………………………………………………………… 10
1.6 LITERATURE REVIEW …………………………………………………………………………………………………… 10
1.7 CONCEPT GENERATION ……………………………………………………………………………………………… 11
1.8 DESIGN CONSIDERATIONS ………………………………………………………………………………………….. 11
1.8.1 DETAILED DESIGN, SIMULATION AND ANALYSIS OF OUTCOMES ……………………………….. 12
1.9 IMPLEMENTATION AND TESTING ………………………………………………………………………………… 12
2.0 GANTT CHART ……………………………………………………………………………………………………………… 12
CHAPTER 2: LITERATURE REVIEW……………………………………………………………………………………… 13
2.1 VoIP and Telephony ………………………………………………………………………………………………………………. 13
2.4 PROTOCOLS ………………………………………………………………………………………………………………………….. 15
2.5 WebRTC…………………………………………………………………………………………………………………………. 16
2.5.1 DIFFERENCE IN VIDEO QUALITY …………………………………………………………………………………………………….. 18
2.6 RESEARCH ON SIGNALING ………………………………………………………………………………………………………….. 19
2.6.1 XMPP AS SIGNALING PROTOCOL ………………………………………………………………………………………………… 20
2.6.2 SIP AS SIGNALING PROTOCOL ………………………………………………………………………………………………………. 26
2.6.3 JINGLE AS SIGNALING PROTOCOL ………………………………………………………………………………………………….. 26
2.6.4 XMPP VS SIP AND JINGLE …………………………………………………………………………………………………………. 27
CHAPTER 3: METHODOLOGY …………………………………………………………………………………………………. 28
3.1WEBRTC TRAPEZOID ARCHITECTURE ……………………………………………………………………………………………………. 29
CHAPTER 4: DESIGN …………………………………………………………………………………………………………………. 36
4.1 ESTABLISHING A CONNECTION TO THE DATABASE …………………………………………………………………… 41
4.1.1 SENDING A QUERY TO THE DATABASE …………………………………………………………………………………… 42
4.1.2 EXECUTING SQL…………………………………………………………………………………………………………………. 42
4.1.3 ACCESSING THE RESULTS …………………………………………………………………………………………………….. 43
5.1 THE USER INTERFACE REGISTRATION PAGE …………………………………………………………………………….. 45
5.2 THE LOGIN PAGE…………………………………………………………………………………………………………………….. 46
5.3 THE CHAT AREA:- ………………………………………………………………………………………………………………. 48
5.4 THE CONTACT SECTION …………………………………………………………………………………………………………….. 48
5.5 THE VIDEO/AUDIO CALL ICON:- …………………………………………………………………………………………………… 48
5.7 SHARE FILES ICON ……………………………………………………………………………………………………………………. 50
CHAPTER 6: SUMMARY ………………………………………………………………………………………………………….. 51
CHAPTER 7: CONCLUSION ………………………………………………………………………………………………………. 52

3 | P a g e

ABSTRACT

Web Real-Time Communication (WebRTC) is a technology standard that facilitates web
browsers communication free of any plug-ins. It forms an integral component of neo-
convergence communications network. This report briefly introduces WebRTC and its
emergence. Moving on, it provides information about the WebRTC technical goals,
architecture and protocols involved. This report also impresses on the network address
translation (NAT), traversal which involves STUN, TURN and ICE protocols. It explains the
ideas behind peer to peer to media flows with respect to WebRTC protocol stack and
application program interface (API). Combining the ideas into a design, the report
demonstrates the strength of WebRTC over other Real-Time Communications technology;
clearly highlighting its flexibility, ease to develop and ease to deployment. In the end, it
discusses the security features, tools available for WebRTC development and provides
enterprise use cases.

4 | P a g e

CHAPTER 1: INTRODUCTION

1.1 INTRODUCTION AND BACKGROUND

1.1.1 Telone Company Background
Telone Private Company is one of the several Telecommunications companies operating in the
Zimbabwean telecommunications and technology industry. It is state-owned and its main core
business revolves around voice communications, data and internet products and services.
Telone owns a wide range of telecommunications equipment, varying from various exchanges
located in strategic areas, optical fibre networks, radio network systems plus a wide range of
high-tech networks including a satellite base station located in Mazowe area of Mashonaland
Central Province in Zimbabwe. The company is headquartered in Harare’s central business
district.

Figure 1: TelOne Logo

5 | P a g e

Telone is Zimbabwe’s sole fixed landline services provider and has a wide network distribution
with infrastructure in almost every corner of this country. The company’s network has grown
at a fair pace to be the second largest fixed line network in the region after Telkom South
Africa. This has been accompanied with immense expansion in business and a great demand
on the company to equip its internal organizational communications with a robust ICT
structure. Commanding a large number of services station bases and widely distributed client
base means great need for an efficient and cheap business communications scheme. As a
service provider, business demands a lot of communication activities like instant messaging,
frequent meetings and briefings, business presentations and these, traditionally required
various company member personnel from all across its stations and remote business centres to
convene. This is rather expensive.
Currently, Telone relies on Skype for its business communications. Most of its organizational
personnel communications are Skype based to unify its internal business information
communications with voice communications.

1.1.2 What is Skype?
Skype is an unified communications internet based application that enables users to make and
receive online, phone or video calls, send and receive messages, share files or share desktop
screens with among users, make group calls, send or receive images, video/audio recordings,
and contacts, and use a range of fun emoticons to make your business chats less boring.

1.1.3 Skype for Business

Figure 2: Skype for Business logo

6 | P a g e

Skype for Business comes with professional features that make business communication even
more effective. It allows the user to schedule online meetings and conference calls. Skype (free
version) allows the users to make group calls to a maximum of 25 people. With Skype for
Business, users can call, video call or hold meetings or conferences with up to 250 people.
Skype for Business also integrates with Office 365, so that it can be launched it right from
Word document or PowerPoint slide, etc.
Basic features of Skype for Business include:
? Instant messaging
? Voice Over IP (VoIP)
? Video conferencing inside the client software
Advanced features relate to integration with other Microsoft software:
? Availability of contacts based on Microsoft Outlook contacts stored in a Microsoft
Exchange Server
? Users can retrieve contact lists from a local directory service such as Microsoft
Exchange Server
? Microsoft Office can show if other people are working on the same document.
? All communication between the clients takes place through a Skype for Business
Server. This makes communications more secure, as messages do not need to leave
the corporate intranet, unlike with the Internet-based Windows Live Messenger. The
server can be set to relay messages to other instant messaging networks, avoiding
installation of extra software at the client side.
? A number of client types are available for Microsoft Lync, including mobile clients.
? Uses Proprietary SIP as the basis for its client communication protocol.
? Offers support for TLS and SRTP to encrypt and secure signalling and media traffic
? Allows sharing files.

7 | P a g e

? Persistent Group Chat which allows multi-party chat with preservation of content
between chat sessions. However, only the native Windows OS client and no other
platform supports this feature at this time. The main new features of this version are
the addition of real-time multi-client collaborative software capabilities, (which allow
teams of people to see and simultaneously work on the same documents and
communications session). Lync implements these features as follows:
? Collaboration through Whiteboard documents, where the participants have freedom to
share text, drawing and graphical annotations.
? Collaboration through PowerPoint documents, where the participants can control and
see presentations, as well as allow everybody to add text, drawing and graphical
annotations.
? Polling lists, where Presenters can organize polls and all participants can vote and see
results.
? Desktop sharing, usually by allowing participants to see and collaborate on a
Windows screen
? Windows applications sharing, by allowing participants to see and collaborate on a
specific application.
? Skype Meetings enabling users to connect with their team for free. Collaborations
with up to 10 people at once (up to 3 people after 60 days) using group HD web
conferencing, from any device or operating system. However, this service is currently
only available to people in the United States.

1.1.4 The Limitations of Skype for Business
Skype for business has a robust communications architecture offering almost satisfactory
functionalities to its business consumers and it’s hard to find chinks in its armour.

8 | P a g e

However, some clients report a number of issues that will drive it out of favour with consumers.
These include:
? Lack of Open operability – Skype uses proprietary protocols which means it only works
for devices that has built-in Skype protocol. Unfortunately, many manufacturers of
VoIP architecture elements and devices build devices for open protocols. Any
enterprise VOIP equipment that has no open source SIP support will have potential
problems in terms of future compatibility.
? Lack of integration- Another drawback is that Skype doesn’t integrate with a large
number of online work platforms.
? Costly- It costs about over $2 per month, per user which in the long term becomes
expensive.
? Synchronization issues- there are syncing difficulties sometimes when communicating
between a desktop and mobile device.
? Quality issues -degrading voice and video quality when the number of participants in a
meeting or conference exceeds 25. Skype for Business allows addition of up to 250
people to online meetings.
? Lack of emergency calling – Skype does not allow emergency calls to toll free numbers.

1.2 AIM
To design and develop a VoIP enterprise Application that will function -wise replace Skype
for all business communications.

9 | P a g e

1.3 PROBLEM STATEMENT

Telone Private Company currently relies on a proprietary communications tool Skype
enterprise for its business and it requires an open source based VoIP enterprise application,
replacement for Skype in business communications.
In order to demonstrate the achievement of the stated aim, this project will identify other VoIP
Enterprise software systems currently in use and the underpinning architectural design; define
appropriate performance metrics; develop an improved design and demonstrate on what basis
it is judged an improvement, and implement the improved design in a usable and robust
software package.

1.4 OBJECTIVES
? To carry out surveys and research on the Telone Company structure and its
geographical locations in Zimbabwe including requirements gathering and processes.
? Analyse and decide on the best VoIP technologies to implement in the design,
whether Centralized or De-centralized models and, WebRTC or stand-alone
application.
? Select best suitable VoIP components to use for the selected architecture and choose
the programming language that works best for the problem statement.
? To master the Telestax (Mobicents) open source JavaScript, J2EE VoIP/SIP
communication modules.
? Design system Use-Case diagrams and flow charts.
? Program and configure tools for the system
? Test and refine for reliability, QoS, latency etc.
? Simulate the application protocols using a suitable simulator.
? Interconnect the subsystems to give a whole unified VoIP enterprise application and
host it locally for testing using a PC to PC communications

10 | P a g e

1.5 METHODOLOGY
To achieve the aim and objectives of this project, the researcher will use the methods stated
below to gather knowledge and come up with solutions for the problem stated above.
? Internet research
? Interviews for requirements gathering processes
? Consultations with the experts in the field.

1.5.1 BRAIN STORMING
The researcher will consult and seek the contribution of all relevant groups which are
engineering lecturers, engineering students and web developers, to mention a few. These
groups will help gather ideas so as to obtain an optimum solution to the problem in question.

1.6 LITERATURE REVIEW

The researcher will carry out a detailed study and review of literature on the pre-existing
VoIP systems currently employed around the world and Telestax Mobicents platform for
open source communications applications. The principles and concepts to be used in the
design are also to be reviewed closely. The researcher will use different sources such as the
internet, engineering journals, textbooks, research articles, existing systems testing and others
to gather the information required and the concepts needed.

11 | P a g e

1.7 CONCEPT GENERATION

Using the information gathered during the literature review, intensive research and other
electrical and software engineering concepts, the researcher will formulate and invent
possible designs that when implemented solves the problem in question. The researcher will
then evaluate each of these routes to select one that easily satisfies the aim and objectives of
this project.

1.8 DESIGN CONSIDERATIONS
These are considerations which are made to ensure proper performance of the system under
expected and worst-case conditions including tolerance and system flexibility.
Figure 3 IP Network

12 | P a g e

1.8.1 DETAILED DESIGN, SIMULATION AND ANALYSIS OF OUTCOMES
This stage involves the use of designing software platforms to design the system and simulate
it to view its behaviour and make necessary adjustments to ensure that the system is fulfilling
the aim objectives of the project before physically building the system.
1.9 IMPLEMENTATION AND TESTING
This stage will involve the integration of the subsystems and tools and testing the performance
against the objectives and expectations. Results will be evaluated and necessary changes
implemented to achieve the required outcome.
2.0 GANTT CHART

Table 1: Showing the Time which shall be allocated to the Project in various sections as
it progresses

7-Sep27-Oct16-Dec4-Feb26-Mar15-May
Proposal
Literature Review
Design
Implementation
Prototype Submission

13 | P a g e

CHAPTER 2: LITERATURE REVIEW

2.1 VoIP and Telephony

Voice over Internet Protocol telephony is the transmission of multi-media information like
voice conversations, video, images and data over an IP based network like the Internet. It
uses IP addresses instead of phone numbers, and Ethernet cable in place of phone wire.
The major differentiator of IP based voice communication and the traditional telephone
network we are all accustomed to using is the method of transmitting information. Both
methods involves conversion of sound to electrical signals (data) and send it over a network
to the recipient, where it is converted back to analogue signals. However, the networks they
are sending information over are vastly different in terms of handling capabilities.
Public Switched Telephone Network (PSTN), our standard phone system, consist of a
continuous circuit between the caller and the callee, which stays connected for the duration of
the call. On the other hand, VoIP makes use of the Internet, a packet-based network. The data
is relayed in discrete packets which are delivered to destination from source independently
and re-assembled upon arrival. This is more efficient and much less subject to distance issues
than a PSTN. This is part of the reason why VoIP calls are so much cheaper than PSTN calls.
Below is a schematic diagram showing a VoIP system architecture.

14 | P a g e

Figure 4 VoIP Network with legacy integration

2.2 Internet Telephony
Internet telephony or broadband telephony refers to the provisioning of communications services
(voice, fax, SMS, voice-messaging) over the public Internet, rather than via the public switched
telephone network (PSTN).

The steps and principles involved in establishing VoIP telephone calls are similar to traditional digital
telephony and involve signalling, channel setup, digitization of the analogue voice signals, and
encoding. Instead of being transmitted over a circuit-switched network, the digital information is
packetized, and transmission occurs as IP packets over a packet-switched network. They transport
media streams using special media delivery protocols that encode audio and video with audio
codecs, and video codecs. Various codecs that optimize the media stream based on application
requirements and network bandwidth exist; with some implementations relying on narrowband and
compressed speech, while others require high-fidelity stereo codecs. Early providers of voice-over-IP
services modelled business and technical solutions that copied the architecture of the legacy
switched telephone network. Second-generation providers, such as Skype, built closed networks for

15 | P a g e

private user bases, offering the benefit of free calls and convenience while potentially charging for
access to other communication networks, such as the PSTN. This shut out the possibility of users
integrating third-party hardware and software from different manufacturers. Third-generation
providers, such as Google Talk, adopted the concept of federated VoIP—which is a departure from
the architecture of the legacy networks. These solutions typically allow dynamic interconnection
between users on any two domains on the Internet when a user wishes to place a call.

In addition to VoIP phones, VoIP is also available on many personal computers and other Internet
access devices. Calls and SMS text messages may be sent over mobile data or Wi-Fi.
2.4 Protocols
Protocols are set of rules and principles that defines operation of a system. VoIP has been
implemented in various ways using either proprietary protocols or protocols based on open
standards. These protocols can be used by a VoIP phone, special-purpose software, a mobile
application or integrated into a web page. VoIP protocols include:

? Session Initiation Protocol (SIP), an open source application layer connection management
protocol developed by the IETF
? H.323, an early VoIP call signalling and control protocols that found widespread
implementation. Since the advent of newer, simpler protocols such as MGCP and SIP, H.323
is less deployed.
? Media Gateway Control Protocol (MGCP), connection management for media gateways
? Real-time Transport Protocol (RTP), transport protocol for real-time audio and video data
? Real-time Transport Control Protocol (RTCP), sister protocol for RTP providing stream
statistics and status information
? Secure Real-time Transport Protocol (SRTP), encrypted version of RTP
? Session Description Protocol (SDP), file format used by SIP to describe VoIP connections
? Inter-Asterisk exchange (IAX)- protocol used between VoIP servers
? Extensible Messaging and Presence Protocol (XMPP)- instant messaging, presence
information, and contact list maintenance
? Jingle, adds peer-to-peer session control to XMPP

16 | P a g e

? Skype protocol, proprietary protocol suite based on peer-to-peer architecture

2.5 WebRTC
Web real-time communication (WebRTC) makes it possible to develop rich, high-quality
RTC applications for browser, mobile platforms, and IoT devices, and allow them all to
communicate via a common set of protocols.
Unlike Skype, which is an application, WebRTC is a technology. It facilitates real-time
communication between web browsers allowing users to communicate through audio, video
and text, without ever needing to install a plugin or download an application.

WebRTC allows businesses to incorporate the VoIP services onto their website, helping to
enhance the user experience. It ensures that all media sent via WebRTC is encrypted,
rendering it one of the most secure options for web-based communications.

Essentially, both are two platforms that provide the same services in different ways. Skype
often is favorite for companies that do not have the technical expertise to implement
WebRTC technology or simply do not want to. While WebRTC is used by companies that
want to integrate a communication service into their website or other Internet-based platforms
that they can customize.

In March of 2016, Skype announced it was giving businesses the ability to integrate the
application into their own applications, both on the web and in mobile devices. This means
both tools can be integrated into businesses through the use of APIs and HTML code.

However, WebRTC is an open source technology. WebRTC can be modeled to cater for the
specificities of each company as a whole, without them need to build something from the

17 | P a g e

ground up. This means the technology can be configured on an individual basis, whereas
Skype cannot. It is a proprietary application now under Microsoft and companies that choose
to integrate Skype onto their websites are subject to Microsoft’s Terms of Service and
capabilities.

In a nutshell, WebRTC has considerable advantages over Proprietary Protocols like Skype or
other full hardware-based Unified Communications (UC) systems. These are re-iterated
below-:

? It’s free:
Unlike Skype and other proprietary applications, WebRTC is extremely cost
competitive compared with other similar options. This is because WebRTC is an
open source option that can be freely used within software. Contrasting this with
VOIP or UC communication options that can cost thousands of dollars for even the
simplest implementation, not to mention the ongoing high costs associated with
licensing that software.

? Platform and device independence:
Any WebRTC-enabled browser client in any OS and a web services application can
direct the client to establish a real-time communication to another WebRTC device or
to a WebRTC media server. The browser operating system type is not relevant. This
is accomplished by implementing standard APIs from the W3C and protocols from
the IETF. Developers can write HTML5 code that can work on desktop and mobile
devices.
? High security for voice and video:
WebRTC has always-on voice and video encryption. The Secure RTP protocol
(SRTP) is used for encryption and authentication of both voice and video. This is
especially beneficial over Wi-Fi networks which prevents eavesdropping and
recording of the voice and video.

? Good voice and video quality:

18 | P a g e

WebRTC employs the Opus audio codec that produces high fidelity voice. The Opus
codec is based on Skype’s SILK codec technology while VP8 codec is used for video.
These selections ensure interoperability and avoid the need for codec downloads that
may contain malicious code.

? Session establishment reliability:
WebRTC offers a reliable session establishment and this is true for Network Address
Translators (NAT), something that hinders and may block other communications and
collaboration protocols. This reliable operation avoids server-relayed media and
thereby reduces latency and increases quality. It also reduces the server load and
time.

? Multiple media streams:
WebRTC is an adaptive network technology solution that compensates and adjusts to
changing network conditions. It adjusts the communications quality, responds to
bandwidth availability, managing traffic communications congestion. This is
accomplished using the multiplexed RTP Control Protocol (RTCP) and Secure Audio
Video Profile with Feedback (SAVPF). The receiving browser client provides
network condition information back to the sending browser client where the
conditions can be analyzed to respond to changed network conditions.

2.5.1 Difference in video quality
Skype has worked very hard over the last few years to make improvements in their video and
audio quality. Focusing on the engineering of their protocols, they have improved their
application communications and made real-time adjustments to video quality. In-case of a
call over Skype, any changes affecting the quality is adjusted. These adjustments are made to
the bitrate, frame rate, and video resolution to compensate for the change.

19 | P a g e

That being said, WebRTC video is also relatively good in terms of quality. The difference is
WebRTC doesn’t have as much ability to manage video and audio quality. Users can set
various resolutions and bandwidth constraints to help with quality, however not all browsers
automatically modify SDPs.

2.6 Research on Signaling

Annabel Z. Dodd (2002), defines signaling as the sending of a signal from the transmitting
end of a telecommunication circuit to inform a user at the receiving end that a message is to
be sent. Connection between two peers in WebRTC is achieved by signaling.

The earliest telephone exchanges were “manual” switchboards, in which all calls were set up
and taken down by operators. To make a call, the subscriber would start by sending a ringing
signal. This alerted an operator, who would connect her telephone to the calling line, and ask
for the called number. The operator would then connect her telephone to the called line, and
ring the line. After the called party answered, the operator would establish the connection.
Signaling as we know it today started around 1890, with the invention, by Almon B.
Strowger (a Kansas City undertaker), of an automatic switchboard that could receive the
called number dialed by the calling subscriber, and would then automatically set up the
connection. During the past 100 years, signaling applications and technology have evolved in
parallel with the developments in telecommunications.
Signaling is a significant part in telecommunication. The two parties simply cannot
communicate with each other without signaling even though they have cable connected with
each other. Hence, many protocols have been developed to implement signaling process.
A signaling protocol is a type of protocol used to identify signaling encapsulation.

Signaling can be done by many protocols associated with WebRTC such as XMPP, SIP,
websocket, socket.io, xml, Jingle, and so on.

20 | P a g e

2.6.1 XMPP as signaling protocol

XMPP is a collection of open source technologies for multi-party chat, presence, instant
messaging, voice and video calls, collaboration, lightweight middleware, content syndication,
and generalized routing of XML data. The XMPP specifications were published as RFC 3920
and RFC 3921 in 2004, and the XMPP Standards Foundation continues to publish many
XMPP Extension Protocols. In 2011 the core RFCs were revised, resulting in the most up-to-
date specifications (RFC 6120, RFC 6121, and RFC 7622).
As a mature protocol, it is one of those proposed signaling solutions for WebRTC, since its
features such as instant message, presence and multi-party chat support the functionalities of
WebRTC signaling and its features such as lightweight middleware, content syndication, and
generalized routing of XML data support the non-functionalities of WebRTC signaling. The
functionalities make WebRTC signaling available and the non-functionalities make WebRTC
signaling performance well. The Internet Engineering Task Force (IETF) has formalized the
core XML streaming protocols as an approved instant messaging and presence technology.

Most literature describe WebRTC as “Skype-like” technology, but Skype has far existed
before WebRTC and the two are completely incomparable. Despite the dominance of Skype
in real-time communication industry, with over a billion subscribers, Skype still has certain
drawbacks. It is proprietary and users must install supporting software or plug-ins such as
Flash for it to work properly. These plug-ins used along with Skype renders it a security
concern. Skype also adopted the client server architecture which makes it resource intensive.
On the other hand, WebRTC uses peer topology with less overhead. It is an open-standard /
open-protocol descendant of FreeBSD media engine. This means that all the real-time
capabilities that existed in Flash plugin have been made available natively in WebRTC-
compatible browsers so that developers can use the technology to develop various real-time
solutions with ease-to-go architecture.

21 | P a g e

tsOne challenge with Internet communication before the emergence of WebRTC is the
dependence on service providers. Before WebRTC was introduced for real-time video
communications, vendors such as Public Switched Telephone Networks (PSTN) had used
more intricate communication processes. Their clients must participate as members of a
separate PSTN IP based community. This membership is maintained by a service provider
who delivers basic rudimentary necessities. There must also be an assurance that each
subscriber’s number is unique for every physical location. These communication schemes
require consumers to subscribe or buy a product, while others in addition require them to
download plugin for multimedia contents to be delivered appropriately. For example WebEX
and Skype. These cases required third party applications, thereby limiting the scalability and
diversity of communication.

However, with WebRTC each website is essentially its own “service provider”, without the
need for any relationship with an entity outside of itself and the user establishing the
communication.
The issue of lack of trust during Installation of third party software or plugins is a big
concern. This is because these technologies can surreptitiously introduce malicious software
and malware. This causes technical security with the application. WebRTC offers the solution
that can be used to overcome the problems associated with plugins installation. Another
problem is the lack of a standardized real-time media engine freely accessible through a
simple secured hypertext transfer protocol (HTTPS). In addition, security flaws or potential
vulnerabilities in most browsers are programmed to be automatically updated when
discovered and sometimes fixed in newer versions. Similarly, a WebRTC browser
implementation can easily be fixed rapidly as compared to traditional applications such as
Voice over Internet Protocol (VoIP) application. The complex VoIP addresses similar
problems posed by malicious software by developing patches to address the security flaws.
This often take much time. The importance placed on browsers are generally huge due to
their ubiquitous nature and speed of information accessed.
Skype uses a domain name server (DNS), and this may cause the decryption keys of media
contents conveyed through their service to be intercepted. WebRTC ensures encryption and

22 | P a g e

authentication of voice, video and data by default. This is achieved through Datagram
Transport Layer Security (DTLS) and secure real-time protocol (SRTP).
WebRTC does not hinder support for other communication and collaboration protocols. This
is also a major consideration for a reliable session establishment using Network Address
Translators (NAT). This is important because it avoids delays of responses from servers and
drastically reduces factors such as server load, latency and intensifies quality. This is
attractive since it assists in the rapid development of customized applications that allow other
vendors to initiate communications session with WebRTC applications. This unique feature
of WebRTC is absent in Skype. Applications developed using WebRTC lets participants join
the interactions from any site without any need to recur separate registrations or bear cost as a
result of joining the interactions like Google for federation.

The impact of WebRTC can be viewed from different angles. It can be viewed in terms of the
protocol stack, Codec, SDP and Signaling. It can also be viewed in terms of the API.
WebRTC relies on three implementation APIs which performs different roles to enable real-
time communication within any web application. These include:-
? media engine,
? RTCPeerConnection and
? RTCDataChannel.

Media Engine (getUserMedia)-This enables the browser to access the user media such as
microphone and camera. This API is also part of HTML5 used in accessing hardware
directly. Media engine avoids the use of external codec to capture audio or video data.

RTCPeerConnection – An RTCPeerConnection makes the actual WebRTC connection
possible, while WebRTC actually handles the efficient streaming of data between two peers.
Hence, for a caller to initiate a connection with a remote party, the browser must begin by
instantiating an RTCPeerConnection object. This API sends the real-time media data and it is

23 | P a g e

responsible for managing the full life-cycle of each peer-to-peer connection, encapsulates all
the connection setup and management, and its state within a single easy-to-use interface.

RTCDataChannel – The RTCDataChannel is an API that is offered as part of WebRTC
designed to exchange data between peers. RTCDataChannel acts like the well-known Web
Socket, but offers a customizable transport protocol. It is useful in many applications such as
game applications, file sharing and text chat applications.

The core working principles of the media engine cannot be obtained without the WebRTC
protocol stack. The components of the stack include ICE, STUN, and TURN used for
network address translation (NAT). A NAT basically set and maintain a peer-to-peer
connection over UDP transport protocol. UDP controls the delivery of packets of media
streams also known as the transport channel. Data transfer is obtained through the DTLS
component which secures media contents by mandatorily encrypting the data. DTLS is
equivalent to TLS but works only with UDP. The SCTP and SRTP are the application
protocols used in multiplexing the different streams, data framing and to provide flow and
congestion control.

SDP: Session Description Protocol – Participating peers needs a way to exchange call setup
information. This is where SDP comes in. SDP holds basic metadata about a browser prior to
peer connection. The new sessions are announced by initiation, invitation and exchange of
information. The information to be exchanged include; Video and audio media capabilities,
codecs information, user information which include IP address and port numbers, secured

RTP P2P data transmission protocol, available bandwidth, session features such as name,
identifier and active time.

24 | P a g e

ICE: Interactive Connectivity Establishment – ICE is used to enable participating peers to
understand how to exchange media data. ICE factors out the best path for such
communication based on the information that is interchanged between peers via wired or
wireless network interfaces. In trying to simplify the process of finding the best path through

NAT, ICE chooses the most efficient algorithm for NAT when it attempts to create a
connection using the host IP address and port obtained via the Operating System and the
device network interface card. If this attempt fails due to the peer being behind NAT, in this
case, ICE uses STUN server to generate an equivalent public or external IP address. And if
this also fails, a TURN server will be used to route the public IP over the other peer’s device.

NAT dynamically converts private IP address into a public IP address when an outbound
request is passed through. Similarly, inbound requests to a public IP are converted back into a
private IP to ensure correct routing on the internal network. This implies that private IPs
alone are often not enough to establish a connection to another peer.

STUN: Session Traversal Utilities for NAT – In order to perform P2P communication, both
parties require at least the knowledge of their peer’s IP address and the assigned UDP port. As
a result, a certain amount of information exchange is necessary before WebRTC
communication can be established. STUN server are used freely by each peer to determine
their public IP address and ports. STUN uses stun.l.google.com to obtain an API key.

TURN: Traversal Using Relays around NAT – TURN servers are used as a fallback
preference where STUN fails in establishing P2P communication. TURN server works by
relaying traffic between peers. The WebRTC communication can be ensured, but can suffer
degradations of media quality and latency. Though they guarantee better connection
establishment in whatever user’s environments. TURN impose more overhead on bandwidth
especially for simultaneous calls routed through the server. TURN server is not completely
free.

25 | P a g e

UDP: WEBRTC Real-time transport protocols – Real-time communication is a time critical
activity that may result in intermittent packet losses during video streaming. The WebRTC
audio and video codecs has overcome this challenge by implementing various logic to
recover from losses or packets delays. And at the same time, considers timeliness and low
latency in data transmission as major factors. WebRTC considers these factors more
important than reliability of data. This is the main reason why UDP protocol is the preferred
option over TCP for delivering real-time data
WebRTC uses UDP at the transport layer for transportation of video streams since latency,
timeliness and bandwidth are critical. WebRTC requires encryption of all media, the gaps
within UDP are filled by additional protocols implemented on top of UDP, such as SRTP and
DTLS. SRTP is used to transport audio and video streams, while DTLS is needed for
encryption of every data while on transit as required by WebRTC. TLS would have been the
best protocol of choice, but because it cannot be used on UDP. It is rather used on a reliable
protocol such as TCP. DTLS has been introduced to offer an equivalent security as TLS. It
also offer more reliable delivery of handshake records to negotiate the tunnel and in order,

26 | P a g e

and it is also fragmentation friendly. This is why it is able to fix the problems with TLS.
DTLS negotiates the secret keys for encrypting media data and for secure transport of
application data. SCTP is used for application data transport.

2.6.2 SIP as signaling protocol

According to IETF, SIP is an application-layer control (signaling) protocol for creating,
modifying, and terminating sessions with one or more participants. These sessions include
Internet telephone calls, multimedia distribution, and multimedia conferences.
SIP is being used to construct peer-to-peer systems, residential telephony services, PBX
replacement systems, and large-scale carrier next-generation networks, such as the IMS (IP
Multimedia Subsystem) of the 3GPP (Third Generation Partnership Project).
SIP, compared with XMPP, has more functions than instant message. It then of course
supports the part as WebRTC signaling.

2.6.3 Jingle as signaling protocol

Besides, Jingle is an XMPP protocol extension for initiating and managing peer-to-peer
media sessions between two XMPP entities in a way that is interoperable with existing

27 | P a g e

Internet standards. The protocol provides a pluggable model that enables the core session
management semantics (compatible with SIP) to be used for a wide variety of application
types (e.g., voice chat, video chat, _le transfer) and with a wide variety of transport methods
(e.g., TCP, UDP, ICE, application-specific transports).
Jingle, similar to SIP, it supports more functions such as video call and audio call. So it
supports WebRTC signaling the same as XMPP and SIP.

2.6.4 XMPP vs SIP and Jingle

Basically, XMPP is famous for its supporting instant message. Although SIP and Jingle also
support instant message, these two protocols are more supportive to multimedia
communication. They have additional functions more than the WebRTC signaling needs.
For researching from essential, XMPP is a better choice. Therefore, XMPP is chosen as target
to be researched here as the way to implement WebRTC signaling.

28 | P a g e

CHAPTER 3: METHODOLOGY

Many methodologies now exist for developing applications on the web, so to choose an
appropriate style for this project, research into the various options was conducted. A relevant
summary of this research will be presented below, followed by a justified choice, and a
description of how the methodology will be applied in this project.

In order to avoid the problems mentioned in Chapter 1, utilizing XMPP server as a signaling
server for WebRTC may be a good solution. Designing an architecture by setting up a
middleware server between XMPP server and the WebRTC clients can help. It could reduce
data flow between client and server. In such way the time cost that one client sends message
to server and server sends forward to another client may reduce. To find out if the solution
works, two models are designed, implemented, analysed and compared.

The first one is a simple model that client connect to XMPP server directly. In Figure below,
The WebRTC client communicate directly with the XMPP server. All the contents are being
transferred through the channel between them.

29 | P a g e

Figure 5: WebRTC in Browser
JavaScript/HTML/CSS in the middle and Native OS at the bottom. The application connects
to Web Server with HTTP/WebSocket. HTTP is used to send request and receive response.
Basically, it is used for fetching application. WebSocket is used for setting up connection to
WebServer and enable server to push data to the application. The application helps to call
WebRTC API in order to control Web browser and invoke Browser RTC functions, then
utilize resources from native OS or communication with remote client.

3.1WebRTC Trapezoid Architecture
Figure below shows the WebRTC trapezoid architecture and real-time communication in the
browser.

30 | P a g e

The browser on a client sets up communication with Web server using HTTP/WebSockets,
and the same for browser on another client. Web servers help to set up signaling path. By
exchange information through the signaling path, media path can be built up between clients.
To achieve signaling, one client can send information to a certain remote client. While the
remote client receives the information and send information back to the sender.
WebRTC makes real-time communication easy to be implemented through the Web.
However, signaling methods and protocols are not specified by WebRTC. Therefore, research
on signaling and WebRTC signaling should be conducted.

Figure 2.2: W ebRTC Trapezoid Architecture
As mentioned in Chapter 1, since XMPP is heavy text-based communication protocol, it is
expected that by adding a middleware between client and XMPP server which is located at
the same server would reduce data -ow between client and server, that is, data flow between
client and middleware through the Internet is reducing while data flow between middleware
and XMPP server is increasing. Transmission inside the same machine is considered much
faster than over the Internet. In Figure below, it shows the model with middleware server.
The middleware server is set together with the XMPP server on the same machine. It will

31 | P a g e

work in such a way that the WebRTC client sends request to the middleware server, the
middleware server communicate with the XMPP server with the majority part of the contents,
and then the middleware server pushes a response to the WebRTC client.

Figure 7: WebRTC Model Design with Direct Connection

32 | P a g e

Both models can apply the process of WebRTC signaling according to the previous research in
Chapter 2.

Technology in Use
As signaling is complex, many technologies are used in the project. WebRTC components
are accessed with JavaScript APIs. Currently in development are the Network Stream

Figure 5: WebRTC Model Design with Indirect Connection

33 | P a g e

API, which represents an audio or video data stream, and the PeerConnection API. The
WebSocket Protocol enables two-way communication between a clients running untrusted
code in a controlled environment to a remote host that has opted-in to communications from
that code.
WebRTC API.
To access native resources such as fetching the MediaStream and communication from peer
to peer, WebRTC APIs are necessary for the requirement.
Ejabberd.
XMPP is just a protocol. So a server which implement XMPP is needed for the solution.
Ejabberd is such an XMPP server.
WebSocket.
Client sends data to server meanwhile server need to push data to client. So WebSocket plays
the role.
STOMP
Since JSON is text-based format, STOMP is then used for messaging. STOMP is the Simple
(or Streaming) Text Orientated Messaging Protocol.
Smack
Middleware is planned to be implemented by Java. In order to enable communication
between middleware and Ejabberd, such a Java library which supports to send message to
and receive message from server is necessary. Smack is the proper one.
Real-time communication is time-sensitive because it is more important that the information
is sent on time to the receiver rather than guaranteeing its delivery. While looking at an
existing audio video streaming apps one can observe that these have been designed tolerant to
packet loss and output quality. If needed applications has to implement their own logic to
overcome packet loss and delay in packet transport.

34 | P a g e

Using the WebRTC API, media constraints will be specified in application to acquire media
streams, and then registering them with RTCPeerConnection object. Starting from media
acquisition to delivery, a lot of things needs to be taken care of such as encoding
optimization, handling packet loss, network fluctuations, error recovery, flow control, and
many more. All of this will be taken care by WebRTC media and network engines provided
by browser application. The browser network engine utilizes its own stream control algorithm
which permits every connection to start streaming at a bit rate of less than 500 Kbps,
regardless the size and quality of provided media stream. From there, the network stack will
start to dynamically adjust the media stream quality depending on the available network
bandwidth. This process is continuous and it occurs throughout the life span of the
connection to overcome packet loss and insufficient bandwidth situations. Therefore, it is the
responsibility of the WebRTC network engine to attempt to adjust provided media streams to
coordinate with the current states of the system. For this WebRTC uses existing transport
protocols to improve and adjust the quality of every media stream as mentioned below.

Secure Real-time Transport Protocol (SRTP): This is the secure profile of the standardized
packet format for delivery of real time data over the IP network. Secure Real-time Control
Transport Protocol (SRTCP): This is the secure profile of the control protocol for delivering
client statistics and control data for establishing SRTP flow.
WebRTC uses the secure profile of RTP protocol because it requires information to be
encrypted throughout the communication process.
Below shows a diagram illustrating a standard SRTP packet format:

Figure 6: SRTP headerAn SRTP packet contains all the crucial data needed by the media
engine to playback real-time media of the stream. Anyhow, it is the duty of SRTCP protocol

35 | P a g e

to control delivery of respective SRTP packets. For this, SRTCP protocol utilizes an alternate
out of band feedback channel for every media stream. SRTCP keeps track of SRTP packet
statistics such as the number of packets sent and lost, latest received packet sequence
number, monitoring timestamp and so on.

WebRTC has special requirements for these protocols to make them compatible with the real
time communication standards, as described below. As described earlier both SRTP and
SRTCP provides encrypted pay load data for communication which is secure, but neither of
these protocols provide a mechanism for sharing secret keys which will be used for message
authentication in further process. This is the reason for protocol stack showing DTLS
handshake on top of UDP even before SRTP and SRTCP. Hence, DTLS handshake needs to
be performed in the beginning which in turn shares a secret key between the peers. This
shared key can be reused in later stages as keying material within SRTP and SRTCP. For
every individual stream, SRTP and SRTCP requires different ports which will cause trouble
for those clients behind firewalls and NAT’s. Therefore, WebRTC requires an additional
multiplexing extension which can deliver multiple incoming streams coming through various
ports on the same destination port.
In a nutshell, these two protocols (SRTP, SRTCP) along with DTLS can work together on top
of UDP for optimizing the real time delivery of media streams (Audio, Video). The
application developers do not have to manage these protocols directly because the major part
of the required infrastructure has already been implemented within the browser.

36 | P a g e

CHAPTER 4: DESIGN

The design section elaborates all the critical stages in the modelling of the final system.
WebRTC has been chosen as the method of developing the communications software and the
previous chapter concluded that the system shall adopt a client-server adapter.js/HTML 5
UDP based web conferencing style.

The system need to do the following things:-
? Collect registration details from the user and save it in a database
? Redirect the user to a login page after successful registration upon which authentication is
carried out to validate the users information.
? Redirect the user to a chat page where the user can select among contacts who to chat with.
? The user should be able to send and receive text messages and broadcast messages to
multiple peers.
? Using a ‘Start Video Call’ button, the user should be directed to a video calling page where
the browser request for permission to access local media devices.
? Set up an empty video element at this stage until the user allows the application to access the
devices, then display local camera video of the user.
? Establish a connection through signalling.
A signalling server is needed and signalling protocol socket.io is used.

37 | P a g e

Server: reflector.js
var server = require(‘http’).createServer();
var app= server.listen(8080);
var io=require(‘socket.io’).listen(app);

io.sockets.on(‘connection’, function(socket){
socket.on(‘message’, function(message){
socket.broadcast.emit(‘message’, message);});
});

? Get network information such as IP addresses and ports, and exchange this with other
WebRTC clients (known as peers) to enable connection, even through NATs and firewalls.
? Coordinate signaling communication to report errors and initiate or close sessions.
? Exchange information about media and client capability, such as resolution and codecs.
? Communicate streaming audio, video or data.
To acquire and communicate streaming data, WebRTC implements the following APIs:
? MediaStream: get access to data streams, such as from the user’s camera and microphone.
? RTCPeerConnection: audio or video calling, with facilities for encryption and bandwidth
management.
? RTCDataChannel: peer-to-peer communication of generic data.
MediaStream (getUserMedia)
The MediaStream API represents synchronized streams of media. For example, a stream
taken from camera and microphone input has synchronized video and audio tracks.
Each MediaStream has an input, which might be a MediaStream generated
by navigator.getUserMedia (), and an output, which might be passed to a video element or an
RTCPeerConnection.
The getUserMedia () method takes three parameters:
? A constraints object.

38 | P a g e

? A success callback which, if called, is passed a MediaStream.
? A failure callback which, if called, is passed an error object.
stream.getAudioTracks () returns an empty array (because there’s no audio) and, assuming a
working webcam is connected, stream.getVideoTracks () returns an array of one
MediaStreamTrack representing the stream from the webcam. Each MediaStreamTrack has a
kind (‘video’ or ‘audio’), and represents one or more channels of either audio or video. In this
case, there is only one video track and no audio, but it is easy to imagine use cases where
there are more: for example, a chat application that gets streams from the front camera, rear
camera, microphone, and a ‘screenshared’ application.
A MediaStream can be attached to a video element by setting the srcObjectattribute.
Since version 25, Chromium-based browsers (Chrome and Opera) have allowed audio data
from getUserMedia () to be passed to an audio or video element.
GetUserMedia can also be used as an input node for the Web Audio API:

The use-case diagram in Figure below shows the basic usage of the TelOne VoIP Chat
conferencing system.
Most of them are self-explanatory and will not be elaborated further. In fact, they can all be
derived from the use case Participate in conference”, Table 1, and can be summarized as the
following:-
The users who want to participate in a conference enter a web page in their browser and
clicks a button with the text join”. This will let them stream the audio from their microphone
and the video from their web camera to all the other participants. The media from the other
participants will in turn be streamed back to the user. The user exits the conference by
clicking a button with the text leave”. After that point, no media will be exchanged between
the user and the other participants unless it joins the conference again.
Use Case: 001

39 | P a g e

Figure 7 Use Case for Chat System

Use Case: 002
Use case name Participate in conference
Participating actors Initiated by participant
Flow of events

1. Participant clicks a button with textjoin”.
2. Participant can see and hear all other
participants.
3. Participant clicks a button with textleave”.
Entry conditions

Participant has entered a web page.
Participant wants to join a conference.

40 | P a g e

Exit conditions Participant has been in a conference.
Quality requirements

1. The time it takes between event 1 and event
2 is at most one second.
2. All participants are visible at all times during
the conference.
3. All participants are audible at all times during
the conference.
4. The maximum number of participants in a
conference is at least 10.

Table 1: Use case: Participate in conference.

Use Case:003

41 | P a g e

Figure 8: Use case diagram for the conferencing system.

4.1 Establishing a Connection to the Database
Connections to the database are represented by instances of the java.sql.Connection object.
Each instance of this object represents an individual database connection. Access of
connections is done by calling factory methods on instances of the javax.sql.DataSource class.
The code snippet below demonstrates how a connection is made to a database:

The code first locates the application server JNDI naming services. Then, it creates a new
instance of the java.sql.Connection class and assigns the object returned by ds.getConnection
Connection myConn = null;
Try {
Context cntxt = new InitialContext ( )’
javax.sql.DataSource ds = (javax.sql.DataSource)cntxt.lookup(“example-
datasource-pool”);
java.sql.Connection myConn = ds.getConnection ( );
} catch (SQLException sqle)
{
}

42 | P a g e

( ) to it. By calling getConnection with the appropriate DataSource as defined in the Server
configuration, abstraction out is achieved from the database configuration.
There are other methods that are no as efficient and hence not chosen as the method to access
the database the WebAuction application. For example, the DriverManager could be used to
access the database. The problem with the DriverManager method is that it is a synchronized
class, which means that only one thread of execution can run at a single time, whereas the
DataSource technique of accessing database is multi-threaded.

4.1.1 Sending a Query to the Database
The process of interacting with the database centers on the java.sql.Statment class. First, an
instance of the Statement class by calling a factory method, createStatement ( ), on the instance
of the Connection class that was created. The code snippet below demonstrates this:
Statement stmt = myConn.createStatement ( );
4.1.2 Executing SQL
The statement object can be used to execute SQL queries against the database. This is
accomplished via the ‘execute ( )’ method. The result from the query to the database is handled
by the java.sql.ResultSet datatype. The statement class includes a method getResultSetType (
), which returns query results as instances of the java.sql.ResultSet class. To get the result set
for the query, the code snippet below is used.
ResultSet rs = stmt.getResultSet ( );
This creates an instance of the ResultSet class and returns the results of the query. A shortcut,
single line method could also be used to for simple queries. This method is within the statement
class: executeQuery (String SQL). For example:
ResultSet rs = stmt.executeQuery (“String SQLstring”)

43 | P a g e

4.1.3 Accessing the Results
The ResultSet (rs) is a virtual table of data representing a database result set. The data returned
form the query using the Statement class is encapsulated in an instance of the ResultSet class.
Methods on the ResultSet is used to access the data. ResultSet is accessed very much like an
Enumeration. A ResultSet object keeps a cursor pointing to its current row of data. Initially the
cursor is positioned before the first row. The next ( ) method moves the cursor to the next row.
Because it returns false when there are no more rows in the ResultSet objects, it can be used in
a WHILE loop to iterate through the result set.
ResultSet maps the data from the database to instances of Java objects. A relational-object
mapping is required for object-oriented Java programs to be able to use relational data. Usually,
results map directly from the SQL types that are defined by the database.
There are three basic operations for JDBC updates. These are:
? Established connections to the database
? Executing statements
? Releasing connections

The method establishing a connection to the database is the same as describe above.
Executing Statements
An instance of the Statement class I required to execute database updates. The createStatement
( ) method in the Connection class is used for SQL statement execution. The code snippet
bellows demonstrates this:
Statement stmt = myConn.createStatement ( );
An instance of the Statement class is created for the specific connection to the database
currently being used.
Three types of database updates are available in SQL:
• INSERT – to insert rows of data into tables

44 | P a g e

• UPDATE – to modify data in tables
• DELETE – to remove rows from tables

These statements are use via JDBC by inserting the SQL string in an executeUpdate ( ) method
call on the instance of the Statement class. For example:
stmt.executeUpdate (“INSERT INTO mytable VALUES (‘data1′,’data2’)”);
Releasing connections
After updating the data in the database, release the connections and objects by running the close
( ) method on each of these objects:

45 | P a g e

CHAPTER 5: TEST RESULTS

This chapter gives the results of the tests carried out in client browsers when the software was
deployed. The system consisted of the following categories:-

5.1 The User interface Registration page
This page is the home page for the TelOne WebRTC application which allows the user to
register for an account. It consists of a browser-database tier where the user’s information is
securely stored in a demo MySQL database registry upon clicking the ‘Register’ button. The
information supplied by the user is verified for eligibility upon registration and a unique
email address is used to secure individual user accounts.

The user is redirected to a login page shown in figure 6 below if the user already has a
registered account.

46 | P a g e

Figure 9 The Registration page

5.2 The Login Page
This page is the authentication page for the TelOne WebRTC application which allows the
user to access his/her existing account. It consists of a browser-database tier where the user’s
information is passed to the database registry for authentication upon clicking the ‘Login’
button.

47 | P a g e

The information supplied by the user is verified for eligibility before access is granted into
the account by use of a matching email address/username and password the user would have
provided upon registering the account.
The user is redirected to the Registration page shown in figure 5 above if the user do not
already have a registered account.

Figure 10 Login Page

48 | P a g e

5.3 The Chat Area:-

This page consists of a css-styled html webpage with various sub-sections.
1. The Contacts section
2. The Text-Chat Area
3. Video/Audio call icon
4. Share files icon
5.4 The Contact section
This section allows the user to view all the contacts available online provided with preference
to common peers the user communicates with. The user can see whether a peer is available
for chat or not.
With various options from text chat, video/audio call and share files; user can add a peer to a
chat-room where automatically he is declared the conference moderator with privileges to
add more peers and/or to remove or mute peers.

5.5 The Video/Audio call icon:-
Provided by css style u-list, the video/audio call icon triggers the RTCPeerConnection
between two client browsers where the user to first initiate the call send an offer to start
video chat and the other browser acknowledges by same negotiation parameters.
Below shows the image of one browser initiating a video call which systematically starts by
requesting the user 1 permission to access local media devices, camera and microphone.
The whole procedure as described in the methodology chapter.

49 | P a g e

Figure 11: Accessing Local Media Device in Browser

50 | P a g e

Figure 11 local video container in browser
5.7 Share files icon
After the user is logged in, he is taken to a chat page where he has different options:
Initiate a text chat, start a video call with one peer, or start a video conference. As seen
above, once the user is set on connection with a remote peer, he has the option to end call or
record the call by clicking respective buttons.

51 | P a g e

CHAPTER 6: SUMMARY

WebRTC has certainly proved to have several important merits over non-WebRTC applications like
Skype. From the project life span, the ease and flexibility of the design; the quick development
schemas already available on the web client and great robust security available on web browsers
certainly puts WebRTC ahead. Open-operability of WEBRTC provide VoIP developers with immense
possibilities of styles and architecture designs as readily scalable WebRTC system components are
available free-of charge.

52 | P a g e

CHAPTER 7: CONCLUSION
In this project, a practical experience in the analysis and design of a system architecture for
real-time communication has been presented. The design was employed using WebRTC with
its inherent features and other attributes in bringing the benefit and experience of a more
flexible, speedy and cost effective real-time communication to all Internet users. WebRTC
technology is available through user’s browsers client and this minimize installation and use
of plugins in supporting communication. It also improves the security of multimedia content
and help developers to create better real-time video communication solutions. Apart from
enhancing user’s experience, quality of service, it also reduces the cost of communication,
and provides better security of user data and information.
The employment of this WebRTC help in breaking the monopoly that has existed with under
the control of most OTT corporations and bring innovative opportunities to synchronize with
existing and future applications. WebRTC is still budding with potential; more development
is in progress to decide on certain standardization policies that will improve the technology
and provide better quality of service.

Post Author: admin

x

Hi!
I'm Victoria

Would you like to get a custom essay? How about receiving a customized one?

Check it out
x

Hi!
I'm Jeremy!

Would you like to get a custom essay? How about receiving a customized one?

Check it out