You are on page 1of 24

Chapter 1

Introduction
1.1 What is VoIP ?

Voice over Internet Protocol (also called VoIP, IP Telephony, Internet


telephony, and Broadband Phone) is the routing of voice conversations over the
Internet or any other IP-based network. The voice data flows over a general-
purpose packet-switched network, instead of traditional dedicated, circuit-
switched telephony transmission lines.

Protocols used to carry voice signals over the IP network are commonly referred
to as Voice over IP or VoIP protocols. They may be viewed as commercial
realizations of the experimental Network Voice Protocol (1973) invented for the

Fig 1.1 Person using VoIP through his Personal computer

VoIP can turn a standard Internet connection into a way to place free phone calls.
The practical upshot of this is that by using some of the free VoIP software that is
available to make Internet phone calls, you are bypassing the phone company
(and its charges) entirely.

VoIP is a revolutionary technology that has the potential to completely rework the
world's phone systems. VoIP providers like Vonage have already been around for
a little while and are growing steadily. Major carriers like AT&T are already
setting up VoIP calling plans in several markets around the United States, and the
FCC is looking seriously at the potential ramifications of VoIP service.

8
1.2 How VoIP Works?

The interesting thing about VoIP is that there is not just one way to place a call.
There are three different "flavors" of VoIP service in common use today:

• ATA - The simplest and most common way is through the use of a device called
an ATA (analog telephone adaptor). The ATA allows you to connect a standard
phone to your computer or your Internet connection for use with VoIP. The ATA
is an analog-to-digital converter. It takes the analog signal from your traditional
phone and converts it into digital data for transmission over the Internet.
Providers like Vonage and AT&T CallVantage are bundling ATAs free with their
service. You simply crack the ATA out of the box, plug the cable from your
phone that would normally go in the wall socket into the ATA, and you're ready
to make VoIP calls. Some ATAs may ship with additional software that is loaded
onto the host computer to configure it; but in any case, it is a very straightforward
setup.

Fig 1.2 Analog Telephone Adapter

A - analog phone/fax
B - IP connection
C - power cord socket

9
• IP Phones - These specialized phones look just like normal phones with a
handset, cradle and buttons. But instead of having the standard RJ-11 phone
connectors, IP phones have an RJ-45 Ethernet connector. IP phones connect
directly to your router and have all the hardware and software necessary right
onboard to handle the IP call. Soon, Wi-Fi IP phones will be available, allowing
subscribing callers to make VoIP calls from any Wi-Fi hot spot.

• Computer-to-computer - This is certainly the easiest way to use VoIP. You don't
even have to pay for long-distance calls. There are several companies offering
free or very low-cost software that you can use for this type of VoIP. All you need
is the software, a microphone, speakers, a sound card and an Internet connection,
preferably a fast one like you would get through a cable or DSL modem. Except
for your normal monthly ISP fee, there is usually no charge for computer-to-
computer calls, no matter the distance.

1
1.3 Objectives

The main purpose of the project would be to create an effective voice


communication system to able the client to interact to other online clients. .

The main Objectives of the project include :-

1. Client Program (User Interface ) : To develop a user interface for the client to
be able to start and end voice conversations, signup on the “ “ Network ,and add
and delete friends from the clients own friend list.
2. Server Program : To Develop a program that’s keeps all information about all
users on the “ “ network ,their connectivity status and all provides contact
information for all other clients(IP Address).
3. Installation Program : A Setup Program to install the client program on the
clients computer and to provide all extra files and installations needed for
communication by the client program.

1
1.4 Why Use VoIP ?

The following are the important advantages :

Cost

In general, phone service via VoIP costs less than equivalent service from
ttraditional sources but similar to alternative Public Switched Telephone Network
(PSTN) service providers. Some cost savings are due to using a single network to
carry voice and data, especially where users have existing under-utilized network
capacity they can use for VoIP at no additional cost. Some Internet connections
are asymmetrical, i.e. the upstream data rate is significantly lower than the
downstream data rate. This places a final absolute throttle to the transmitted data
rate and thus voice quality. The slowest Internet connections can offer lower
signal quality than regular dedicated phone networks.

Functionality

VoIP can facilitate tasks that may be more difficult to achieve using traditional
phone networks:

• Incoming phone calls can be automatically routed to your VoIP phone,


irrespective of where you are connected to the network. Take your VoIP phone
with you on a trip, and anywhere you connect it to the Internet, you can receive
your incoming calls.
• Call center agents using VoIP phones can work from anywhere with a sufficiently
fast Internet connection.

1
• VoIP phones can integrate with other services available over the Internet,
including video conversation, message or data file exchange in parallel with the
conversation, audio conferencing, managing address books and passing
information about whether others (e.g. friends or colleagues) are available online
to interested parties.

1.5 What are implementation challenges faced ?

General Issues

Because IP does not provide any mechanism to ensure that data packets are
delivered in sequential order, or provide any Quality of Service guarantees, VoIP
implementations may face problems dealing with latency (especially if satellite
circuits are involved), and jitter. They are faced with the problem of restructuring
streams of received IP packets, which can come in any order and have packets
delayed or missing, to ensure that the ensuing audio stream maintains a proper
time consistency. This functionality is usually accomplished by means of a jitter
buffer. Another main challenge is routing VoIP traffic to traverse certain firewalls
and NAT. Intermediary devices called Session Border Controllers (SBC) are often
used to achieve this, though some proprietary systems such as Skype traverse
firewall and NAT without a SBC by using users' computers as super node servers
to route other people's calls. Other methods to traverse firewalls involve using
protocols such as STUN or ICE.

DSL Internet access

VoIP technology does not necessarily require broadband Internet access, but this
usually supports better quality of service. A sizable percentage of homes today are
connected to the Internet through DSL, which requires a traditional phone line.
Having to pay for VoIP in addition to both a basic phone line and broadband

1
Internet access reduces the potential benefits of VoIP. However, some regional
telephone companies now offer DSL service without the phone, thus saving you
money when you switch to VoIP. VoIP can also be used with Cable Internet
instead of DSL, eliminating the need to purchase two telephone lines.

Reliability

Conventional telephones are connected directly to telephone company phone


lines, which in the event of a power failure are kept functioning by back-up
generators or batteries located at the telephone exchange. However, household
VoIP hardware uses broadband modems and other equipment powered by
household electricity, which may be subject to outages. In order to use VoIP
during a power outage, an uninterruptible power supply or a generator must be
installed on the premises. Early adopters of VoIP may also be users of other
phone equipment, such as PBX and cordless phone bases, that rely on power not
provided by the telephone company.

Some broadband connections may have less than desirable reliability. Where IP
packets are lost or delayed at any point in the network between VoIP users, there
will be a momentary drop-out of voice. This is more noticeable in highly
congested networks and/or where there is long distances and/or interworking
between end points. Technology has improved the reliability and voice quality
over time and will continue to improve VoIP performance as time goes on.

Emergency calls

The nature of IP makes it difficult to geographically locate network users.


Emergency calls, therefore, cannot easily be routed to a nearby call center, and are
impossible on some VoIP systems. Moreover, in the event that the caller is unable
to give an address, emergency services may be unable to locate them in any other
way. Following the lead of mobile phone operators , several VoIP carriers are
already implementing a technical work-around. The United States government

1
had set a deadline, requiring VoIP carriers to implement E911, however, the
deadline is being appealed by several of the leading VoIP companies.

This is a different situation with IPBX systems, where these corporate systems
often have full E911 capabilities built into the system.

Integration into global telephone number system

While the traditional Plain Old Telephone System (POTS) and mobile phone
networks share a common global standard (E.164) which allocates and identifies
any specific telephone line, there is no widely adopted similar standard for VoIP
networks. Some allocate an E.164 number which can be used for VoIP as well as
incoming/external calls. However, there are often different, incompatible schemes
when calling between VoIP providers which use provider specific short codes.

Single point of calling

With commercial services such as Vonage, it is possible to connect the VoIP


router into the existing central phone box in the house and have VoIP at every
phone already connected. Other services, such as Skype & PeerMe, typically
require the use of a computer, so they are limited to single point of calling, though
handsets are now available, allowing them to be used without a PC. Some
services, such as BroadVoice provide the ability to connect WiFi SIP phones so
that service can be extended throughout the premises, and off-site to any location
with an open hotspot.

Mobile phones

Telcos and consumers have invested billions of dollars in mobile phone


equipment. In developed countries, mobile phones have achieved nearly complete

1
market penetration, and many people are giving up landlines and using mobiles
exclusively. Given this situation, it is not entirely clear whether there would be a
significant higher demand for VoIP among consumers until either a) public or
community wireless networks have similar geographical coverage to cellular
networks (thereby enabling mobile VoIP phones, so called WiFi phones) or b)
VoIP is implemented over legacy 3G networks. However, "dual mode" handsets,
which allow for the seamless handover between a cellular network and a WiFi
network, are expected to help VoIP become more popular.

Security

The majority of consumer VoIP solutions do not support encryption. As a result,


it is relatively easy to eavesdrop on VoIP calls and even change their content.
There are several open source solutions like VoIPong or Vomit that facilitate
sniffing of VoIP conversations. A modicum of security is afforded due to patented
audio codecs that are not easily available for open source applications, however
such security by obscurity has not proven effective in the long run in other fields.
Some vendors also use compression to make eavesdropping more difficult.
However, real security requires encryption and cryptographic authentication
which are usually not available at a consumer level.

In this context, the beta testing of Zfone, a 'security wrapper' for certain VoIP
systems by the inventor of PGP, is notable, as a means by which strong security
may be added to certain otherwise less secure VoIP systems. This information is
correct as of April 2006.

Pre-Paid Phone Cards

VoIP has become a major provider of phone services to travellers, migrant


workers and ex-pats, who either due to not having a fixed or mobile phone or high
overseas roaming charges choose instead to use VoIP services to make their

1
phone calls. Pre-Paid phone cards can be used either from a normal phone or from
Internet Cafes that have phone services. The undeveloped markets are usually
markets where Pre-Paid cards are used, however in cities with high tourist or
immigrant communities they are also common.

1
Chapter 2

Analysis and Design

2.1 Requirement Analysis

The requirement analysis for this software was divided into various sections.
We analyzed these sections according to the various perspectives. These were based on:

• Users perspective

• Functional Perspective

• Developer Perspective

2.1.1 User’s Perspective

These would be the most important stakeholders for this product. Users are the
people who actually install and use Voice Communication Software on their
computer, and they will ultimately decide if the product succeeds or fails (a
product will surely fail if no one wants to use it). Through interviews and
questionnaires, it was discovered that users need a system that is relatively easy to
use (i.e. Users can use it without much training) and does what they want. The
interviews and questionnaires also revealed that users are primarily concern with:

1
1. Ease of use: How easy is it for them to communicate to other people using
this software?

2. Effectiveness: How effective is the communication process ? Does it meet


the voice and delay standards as expected by the user?

3. Utility of the product: What can this product do? Can it replace their
Plain Old Telephone System ?

4. Ease of learning the system:Does user need to spend a lot of time


learning the system before they can use it?

5. User satisfaction: How satisfied (happy) are the users with the system?

2.1.2 Functional Perspective

The following are the functional requirements for this system:

I. General System and Interface Requirements

1. The interface should be intuitive for users to use.

2. Users should be able to create a New Account on Voix Network easily.

3. Users should be able to make and receive calls on a press of a button .

4. The System must alert the user of incoming call and provide options for
Accepting and Declining Calls.

1
5. The System must provide errors and alerts in case of unreachable or unknown
users.

6. Users should be able to recover from all user errors.

7. Users must be able to easily able to sign in and signout of the Voix
Network and thus must be able to Sign in to multiple accounts.

Alerts, explanations and errors should be specific and informative

2
2.3 Use Case Diagram
Sign UP
Use Case Diagram

SignIn

SignOut

Add
Contact

.CLIENT
.CLIENT
Delete
Contact

Call PC

End Call

Figure 2.1 Use Case Diagram

2
2.4 Data Flow Analysis
Context Diagram:

Peer to Peer Voice Chat

Source LAN or Source LAN or Source LAN or


Internet Internet Internet
(User1) (User2) (UserN)

……………

Reply Incoming
Packet Packet
(Based on type of packet received) (Authentication, Add, Delete etc)

SERVER Database
Modify

Incoming PacketType
Rules

Process Rules
According to the type of
packet

Figure 2.2: Context Diagram - VOIX

2
First Level DFD:

Client
(New User or
Rules to Database Store
Process
Registered User) Database
P1

Packet send to server

Peer Server Reply Packet


To
Peer
Voice
Chat
Process SERVER
P3

Packet send to server Server Reply Packet

Rules to
Client Process
Client Packet
(New User or P2
Registered User)

Figure 2.3: First Level DFD – VOIX

2
Chapter 3

Implementation and Coding

3.1 Tools Required for Implementation


The following are the tools that will be used for implementation of the project :

3.1.1 Java Media Framework (JMF) API

JavaTM Media Framework (JMF) provides a unified architecture and messaging


protocol for managing the acquisition, processing, and delivery of time-based
media data. JMF is designed to support most standard media content types, such
as AIFF, AU, AVI, GSM, MIDI, MPEG, QuickTime, RMF, and WAV.
By exploiting the advantages of the Java platform, JMF delivers the promise of
"Write Once, Run AnywhereTM" to developers who want to use media such as
audio and video in their Java programs. JMF provides a common cross-platform
Java API for accessing underlying media frameworks. JMF implementations can
leverage the capabilities of the underlying operating system, while developers can
easily create portable Java programs that feature time-based media by writing to
the JMF API.

A data source encapsulates the media stream much like a video tape and a player
provides processing and control mechanisms similar to a VCR. Playing and
capturing audio and video with JMF requires the appropriate input and output
devices such as microphones, cameras, speakers, and monitors.

2
Data sources and players are integral parts of JMF's high-level API for managing
the capture, presentation, and processing of time-based media. JMF also provides
a lower-level API that supports the seamless integration of custom processing
components and extensions. This layering provides Java developers with an easy-
to-use API for incorporating time-based media into Java programs while
maintaining the flexibility and extensibility required to support advanced media
applications and future media technologies.

3.1.2 Net Beans 5.0

NetBeans IDE 5.0 includes comprehensive support for developing IDE plug-in
modules and rich client applications based on the NetBeans platform. It also
includes the intuitive GUI builder Matisse, redesigned CVS support, support for
Sun Application Server 8.2, Weblogic9 and JBoss 4, and many editor
enhancements including new refactorings. NetBeans IDE 5.0 is a robust, open
source Java IDE that has everything software developers need to develop cross-
platform desktop, web and mobile applications straight out of the box. It was
released on January 31, 2006.
Features of NetBeans

Environment

• Easy to configure user interface with DnD support


• Flexible windowing modes allowing for maximum screen real estate
• Improved navigation around source files with Navigator
• Modular architecture extensible with additional plug-ins

Project System

• J2SE Application and Library project types


• J2SE free-form project type for projects with existing Ant scripts
• Easy management of libraries

2
• Projects easily portable to other environments

GUI Builder (Project Matisse)

• Simple and intuitive layout of GUIs without the complexity of Swing layout
managers
• Drag and drop capability
• Automatic form alignment
• Visual guidelines for optimal spacing between components and alignment of
components
• Support for both visual and non-visual forms
• Extensible Component Palette with pre-installed Swing and AWT components
• In-place editing of text labels of components (labels, buttons, textfields, etc).
• Full JavaBeans support - installing, using and customizing (properties, events,
customizers)
• In-place text label editing

Code Editor

• Faster and enhanced code completion

• Various editor enhancements including an error stripe and Java hints

• Generation of code snippets through the code completion box

• Type camel case abbreviations to generate code

• Method parameters are shown in a tooltip

• Syntax highlighting for Java, XML, HTML, CSS, JSP and IDL

• Full support of new JDK 1.5 features

• Customizable fonts, colors and keyboard shortcuts

• Live parsing/error marking

• Popup Javadoc for fast access to documentation

• Advanced code completion for Java, HTML, XML and JSP

2
• Automatic indentation with customizable indentation engines

• Word Matching and Bracket Matching highlighting

• Goto Declaration and Goto Class

• Fast Importing of Java classes

• Code folding to hide unimportant code

Debugger

• Better integration with the Source Editor

• Enable and Disable breakpoints in the Source Editor

• Access breakpoints properties from Editor annotations

• Variables window enhanced for easier display of long arrays

• Evaluate any expression on the fly using the Evaluate Expression dialog box

• Run to any method through the Source Editor

• Use code completion in the New Watch and Breakpoint Customizer dialog boxes

• Language independent DebuggerCore

• Unified UI for debugging Java / C++

• Multisession debugging

• Multithreaded application debugging

• Powerful expression evaluations

• Variable modification and watches

• Method entry/exit breakpoints, exception breakpoints, conditional


breakpoints
• Tooltips with variable values right in the editor
• Variable Access/Modification

2
3.2 Entities Involved

The following are the two basic entities involved which need to be implemented :

1. Voix Server : This is a multithreaded program that listens for client


request on port number 4040.The Server keeps track of Voix Network and its
clients through an MySQL database .The Server process each packet
according to certain rules defined for Voix and then parses the data in the
packet according to the rules.The Server Provides contact
information(IPAddress) to the client about its friends so that client can
independently contact its friends without any help from the Server.
2. Voix Clients : This Program resides on the users machine and provides an
interface to the use for functions like “New User Sign Up” , “Sign In” , “Sign
Out” and “Call”. A Number of Voix Clients Exist on the Voix Network who
can communicate with each other.

2
3.3 Mixed Model : Implementation

The Mixed Model is a new concept that has been introduced in Voix. This
concept uses both models i.e Client-Sever Model and a Peer 2 Peer model
together to achieve the task of voice communication.

The following are the steps involved in Voice Communication using the mixed
model :-

Step 1 :

Voix Client Voix Server


Fig 3.2 Step 1

1. Voix Client Sends a “New User Sign UP” Message to the Voix Server
containing clients personal information to join the Voix Network.
2. Voix Server adds this client to the database and sends a “Sign UP
Successful “ message to the client If a Duplicate Id Exits it Sends a
“Duplicate ID Exists” message to the client.

2
Step 2 :

4
Voix Client Voix Server

Fig 3.3 Step 2

3. The Voix Client Sends a “Sign In” message to the Voix Server to login to
the Voix Network .
4. The Voix Server sets the Status value of the Client to Online and sends a
“Login Successful “ and a “ List of Friends “ Message to the Client.

Step 3 :

Voix Client B
Voix Client A Fig 3.4 Step 3

5. The Voix Client A sends a “Call” message to its friend that is Voix Client
B.
6. The Voix Client may Either Accept Or Decline The Call Request

3
Step 4 :

Voix Client A Voix Client B


Fig 3.5 Step 4

7-8 . Both Client A and B Exchange Voice Messages.

Thus the above process of voice communication works in mixed mode as the
Steps 1 and 2 involve interaction with the client and Steps 3 and 4 involve only
client to client interaction.Due to non involvement of Server in voice exchange
,delay in the transmission decreases and Voice Quality Improves.

You might also like