Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
BulgaraCeha slovacaCroataEnglezaEstonaFinlandezaFranceza
GermanaItalianaLetonaLituanianaMaghiaraOlandezaPoloneza
SarbaSlovenaSpaniolaSuedezaTurcaUcraineana

AdministrationAnimalsArtBiologyBooksBotanicsBusinessCars
ChemistryComputersComunicationsConstructionEcologyEconomyEducationElectronics
EngineeringEntertainmentFinancialFishingGamesGeographyGrammarHealth
HistoryHuman-resourcesLegislationLiteratureManagementsManualsMarketingMathematic
MedicinesMovieMusicNutritionPersonalitiesPhysicPoliticalPsychology
RecipesSociologySoftwareSportsTechnicalTourismVarious

Voice Over Internet protocol (VOIP)

comunications



+ Font mai mare | - Font mai mic



Voice Over Internet protocol (VOIP)



What is VoIP?


VOIP


VoIP stands for 'V'oice 'o'ver 'I' ernet 'P'r ocol. As the term says VoIP

tries to let go voice (mainly human) through IP packets and, in defi ti

through Internet. VoIP can use accelerating hardware to achieve this purpose

and can also be used in a PC environment.

How does it work?

Many years ago we discovered that sending a signal to a remote

destination could have be done also in a digit fashion: before sending it we

have to digit ize it with an ADC (analog to digit converter), ransmitt, and

at the end transform it again in analog format with DAC (digit to analog

converter) to use it.

VoIP works like that, digit izing voice in data packets, sending them

and reconverting them in voice at destination.

Digit format can be better controll we can compress it, oute it,

convertt to a new better format, and so on; also we saw that digit signal is

more noise tolerant than the analog one (see GSM vs TACS).

TCP/IP networks are made of IP packets containing a header (to control

communication) and a payload to transport data: VoIP use it o go across the

network and come to destination.

Voice (source) - - ADC - - - - Internet - - - DAC - - Voice (dest)

W hat is the advantages using VoIP rather PSTN?

When you are using PSTN li you typically pay for time used to a

PSTN line manager company: more time you stay at phone and more you'l

pay. In addition you couldn't alk with other that one person at a time.

In opposite with VoIP mechanism you can talk all he time with every

person you want (the needed is that other person is also connected to Internet

at the same time), as far as you want (money independent) and, in additi

you can talk with many people at the same time.

If you're stil not persuaded you can consider that, at the same time,

you can exchange data with people are you talking wit sending images,

graphs and videos.

Then, why everybody doesn't use it yet?

Unfortunately we have to report some problem with the integrati

between VoIP architecture and Internet. As you can easy imagine, voice data

communication must be a real time stream (you couldn't speak, waitor many

seconds, then hear other side answering): this is in contrast with the Internet

heterogeneous architecture that can be made of many routers (machines that

route packets), about 20-30 or more and can have a very high round tri ime

(RTT), so we need to modify something to get it properly working.

In next sections we'llry to understand how to solve this great problem.

In general we know that is very diffi t to guarantee a bandwidth in Internet

for VoIP appli ion.

Technical info about VoIP

Here we see some important info about VoIP, needed to understand it.

180



Overview on a VoIP connection

To setup a VoIP communication we need:

1.Fir the ADC to convert analog voice to digit signals (bit


VOIP


2.Now the bits have to be compressed in a good format for transmission:

there is a number of protocols we'l see after.

3.Here we have to insert our voice packets in data packets using a real-

time protocol (typically RTP over UDP over IP)

4.We need a signaling protocol to call users: ITU-T H323 does that.

5.At RX we have to disassemble packets, extract datas, then convert

them to analog voice signals and send them to sound card (or phone)

6.All hat must be done in a real time fashion cause we cannot wait or

too long for a vocal answer!

Base architecture

Voice )) ADC - Compression Algorithm - Assembling RTP in TCP/IP -

----

---->

|

<----

|

Voice (( DAC - Decompress. Algorithm - Disass. RTP from TCP/IP -

----

Analog to Digital Conversion

This is made by hardware, typically by card integrated ADC.

Today every sound card allows you convert with 16 bit a band of 22050 Hz

(f sampling it you need a freq of 44100 Hz for Nyquist Principle) obtaining a

throughput of 2 bytes * 44100 (samples per second) = 88200 Bytes/s, 176.4

kBytes/s for stereo stream.

For VoIP we needn't a 22 kHz bandwidth (and also we needn't 16 bit!): next

we'l see other coding used for it.

Compression Algorithms

Now that we have digit data we may convert it o a standard format that

could be quickly transmitted.

PCM, Pulse Code Modulation, Standard ITU-T G.711

Voice bandwidth is 4 kHz, so sampling bandwidth has to be 8 kHz (for

Nyquist).

We represent each sample with 8 bit (having 256 possible values).

Throughput is 8000 Hz *8 bit = 64 kbit/s, as a typical digital phone line.

In real application mu-law (North America) and a-law (Europe) variants

are used which code analog signal a logarithmic scale using 12 or 13

bits instead of 8 bits (see Standard ITU-T G.711).

ADPCM, Adaptive diff enti PCM, Standard ITU-T G.726

It converts only the diff ence between the actual and the previous voice

packet requiring 32 kbps (see Standard ITU-T G.726).

LD-CELP, Standard ITU-T G.728

CS-ACELP, Standard ITU-T G.729 and G.729a

MP-MLQ, Standard ITU-T G.723.1, 6.3kbps, True speech

ACELP, Standard ITU-T G.723.1, 5.3kbps, True speech

LPC-10, able to reach 2.5 kbps!!

181



VOIP

This last protocols are the most important cause can guarantee a very low

minimal band using source coding; also G.723.1 codecs have a very high MOS

(Mean Opinion Score, used to measure voice fidelit but attention to

elaboration performance required by them, up to 26 MIPS!

RTP Real Time Transport Protocol

Now we have the raw data and we want to encapsulate it nto TCP/IP stack.

We follow the structure:

VoIP data packets

RTP

UDP

IP

I, II layers

VoIP data packets live in RTP (Real-Time Transport Protocol) packets, which

are inside UDP-IP packets.

Fir , VoIP don't use TCP cause it s too heavy for real time appli ion, so

instead UDP (datagram) is used.

In UDP we cannot ordering packets in arrive time (which is a must in VoIP)

because there isn't onnection idea, each packet is independent from others

(datagram concept); so we have to introduce a new protocol, such as RTP,

able to manage this.

The following figure gives the structure of RTP implemented in VOIP.

Real Time Transport Protocol

0 1 2 3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

| V=2|P|X| CC |M| PT | sequence number |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

| timestamp |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

| synchronization source (SSRC) identifier |

+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

| contributing source (CSRC) identifiers |

| . |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

Where:

V indicates the version of RTP used

P indicates the padding, a byte not used at bottom packet to reach the

parity packet dimension

X is the presence of the header extension

CC field is the number of CSRC identifiers following the fixed header.

CSRC fi d are used, for example, in conference case.

M is a marker bit

PT payload type

RSVP

There are also other protocols used in VoIP, like RSVP, that can manage

Qualiy of Service (QoS).

RSVP is a signaling protocol that requests a cert n amount of bandwidth and

latency in every network hop that supports it.

182


Quality of Service (QoS)


VOIP


We said many times that VoIP appli ions require a real-time data streaming

cause we expect an interactive data voice exchange.

Unfortunately, TCP/IP cannot guarantee this kind of purpose, it ust make a '

best eff t' to do it. So we need to introduce tricks and polies that could

manage the packet flow in EVERY router we cross.

So here are:

1.TOS fi d in IP protocol to describe type of service: high values indicate

low urgency while more and more low values bring us more and more

real-time urgency

2.Queuing packets methods:

1.FIFO (Fir in Fir Out), he more stupid method that allows

passing packets in arrive order.

2.WFQ (Weighted Fair Queuing), consisting in a fair passing of

packets (f example, FTP cannot consume all avail e

bandwidth), depending on kind of data flow, typically one packet

for UDP and one for TCP in a fair ashion.

3.CQ (Custom Queuing), users can decide pri it

4.PQ (Pri ity Queuing), here is a number (typically 4) of queues

with a pri ity level each one: fir , packets in the fir queue are

sent, hen (when fir queue is empty) starts sending from the

second one and so on.

5.CB-WFQ (Class Based Weighted Fair Queuing), ike WFQ but,n

additi we have classes concept (up to 64) and the bandwidth

value associated for each one.

3.Shaping capabily, that allows to li t the source to a fixed bandwidth

in:

1.download

2.upload

4.Congestion Avoidance, like RED (Random Early Detection).

H323 Signaling Protocol

H323 protocol is used, for example, by Microsoft Net meeting to make VoIP

call

This protocol allow a vari y of elements talking each other:

1.Terminals, clients that initi ize VoIP connection. Although terminals

could talk together without anyone else, we need some additional

elements for a scalable vision.

2.Gatekeepers, that essenti ly operate:

1.Address translation service, to use names instead IP addresses

2.Admission control,o allow or deny some hosts or some users

3.Bandwidth management

3.Gateways, points of reference for conversion TCP/IP - PSTN.

4.Multipoint Control Units (MCUs) to provide conference.

5.Proxies Server also is used.

h323 allows not only VoIP but also video and data communications.

Concerning VoIP, h323 can carry audio codecs G.711, G.722, G.723, G.728

and G.729 whil or video it supports h261 and h263.

You can find it mplemented in various appli ion software like Microsoft

Netmeeting , Net2Phone , DialPad , and also in freeware products you can

find at Openh323 Web Site .

Requirement

183



Hardware requirement

To create a litle VoIP system you need the following hardware:

1.PC 386 or more

2.Sound card, full duplex capable


VOIP


3.a network card or connection to internet or other kind of interface to

allow communication between 2 PCs

All that has to be present twice to simulate a standard communication.

The tool above are the minimal requirement for a VoIP connection: next we'l

see that we should (and in Internet we must) use more hardware to do the

same in a real situation.

Sound card has be full duplex unless we couldn't hear anything whil

speaking!

Hardware accelerating cards

We can use special cards with hardware accelerating capabiliy. Two of them

(and also the only ones directly managed by the Linux kernel at this moment)

are the

1.Quicknet PhoneJack

2.Quicknet LineJack

Quicknet PhoneJack is a sound card that can use standard algorithms to

compress audio stream like G723.1

It can be connected directl o a phone (POTS port) or a couple mic-speaker.

It has a ISA or PCI connector bus.

Quicknet LineJack works like PhoneJack with some addition features (see

next).

For more info see Quicknet web site .

Hardware gateway cards

Quicknet LineJack can be connected to a PSTN line allowing VoIP gateway

feature.

Then you'l need software to manage it see after).

Software requirement

We can choose what O.S. to use:

1.Win9x

2.Linux

Under Win9x we have Microsoft Netmeeting, Internet Phone, DialPad or others

or Internet Switchboard (from Quicknet web site )<https://www.quicknet.net>

for Quicknet cards.

Also you can use free software you download from OpenH323 .

Under Linux we only have free software from OpenH323 web sit simph323

or ohphone that can also work with Quicknet accelerating hardware.

Attention: all Openh323 source code has to be compiled in a user directory (if

not it s necessary to change some environment variable). You are warned

184



VOIP

that compiling time could be very high and you could need a lot of RAM to

make itn a decent time.

Gateway software

To manage gateway feature (join TCP/IP VoIP to PSTN lines) you need some

kind of software like this:

Internet SwitchBoard (https://www.quicknet.net) for Windows systems

also acting as a h323 terminal;

PSTNGw for Linux and Windows systems you download from OpenH323

. (https://www.openh323.org/code.html)

Gatekeeper software

You can choose as gatekeeper:

1.Opengatekeeper, you can download from opengatekeeper web site

<https://www.opengatekeeper.org >for Linux and Win9x.

Other software

In addition I report some useful software h323 compli :

Phonepatch, able to solve problems behind a NAT fiewall. It simply

allows users (external or internal) calling from a web page (which is

reachable from even external and internal users): when web appli ion

understands the remote host is ready, it call h323) the source telli

it alls ok and communication can be established.

Setup

In this section we try to setup VoIP system, simple at fir , then more and

more complex.

Simple communication: IP to IP

A (Win9x+Sound card) - - - B (Win9x+Sound card)

192.168.1.1 - - - 192.168.1.2

192.168.1.1 calls 192.168.1.2.

A and B should:

1.have Microsoft Netmeeting (or other software) installed and properly

configured.

2.have a network card or other kind of TCP/IP interface to talk each other.

In this kind of view A can make a H323 call o B (if B has Netmeeti

active) using B IP address. Then B can answer to itf it wants. After accepti

call VoIP data packets start o pass.

Using names

If you use Microsoft Windows in a lan you can call he other side using

NetBIOS name. NetBIOS is a protocol that can work (stand over) with NetBEUI

low level protocol and also with TCP/IP. It is only need to call the ' computer

name' on the other side to make a connection.

A - - - B

192.168.1.1 - - - 192.168.1.2

185


John - - - Alice

John calls Alice.


VOIP


This is possible cause John call request to Alice is converted to IP callng by

the NetBIOS protocol.

The above 2 examples are very easy to implement but aren't scalable.

In a more big view such as Internet it s impossible to use direct callng

cause, usuall the call s don't know the destination IP address. Furthermore

NetBIOS naming feature cannot work cause it uses broadcast messages, which

typically don't pass ISP routers .

Internet calling using a W INS server

The NetBIOS name callng idea can be implemented also in a Internet

environment, using a WINS server: NetBIOS clients can be configured to use a

WINS server to resolve names.

PCs using the same WINS server wil be able to make direct callng between

them.

A (WINS Server is S) - - - - I - - - - B (WINS Server is S)

N

T

E - - - - - S (WINS Server)

C (WINS Server is S) - - - - R

N

E - - - - D (WINS Server is S)

T

Internet communication

A, B, C and D are in diff ent subnets, but they can call each other in a

NetBIOS name callng fashion. The needed is that all e using S as WINS

Server.

Note: WINS server hasn't very high performance cause it use NetBIOS feature

and should only be used for joining few subnets.

A big problem: the masquering.

A problem of few IPs is commonly solved using the so called masqueri

(also NAT, network address translation): there is only 1 IP public address (that

Internet can directly ' see' ), he others machines are ' masqueraded' using

all this IP.

A - - -

B - - - Router with NAT - - - Internet

C - - -

This doesn't work

In the example A,B and C can navigate, pinging, using mail and news

services with Internet people, but they CANNOT make a VoIP call This

because H323 protocol send IP address at appli ion level, so the answer will

never arrive to source (that is using a private IP address).

186



Solutions:


VOIP


there is a Linux module that modifies H323 packets avoiding this

problem. You can download the module here . To install it you have to

copy it o source directory specifi modify Makefie and go compilng

and installng module with ' modprobe ip_masq_h323' . Unfortunately

this module cannot work with ohphone software at this moment (I don't

know why).

A - - - Router with NAT

B - - - + - - - Internet

C - - - ip_masq_h323 module

This works

A - - -

B - - - PhonePatch - - - Internet

C - - -

This works

Using Linux

With Linux (as an h323 terminal) you can experiment everything done

before.

O h p h o n e Sy n ta x

Syntax is:

' ohphone -l|--listen [options]'

' ohphone [options]. . address'

' -l' , listen to standard port (1720)

' address' , mean that we don't wait for a call, but we connect to '

address' host

' -n' , ' --no-gatekeeper' , this is ok if we haven't a gatekeeper

' -q num' , ' --quicknet num' , it uses Quicknet card, device

/dev/phone(num)

' -s device' , ' --sound device' , it uses /dev/device sound device.

' -j delay' , ' --jitter delay' , it change delay buffer to ' delay' .

Also, when you start ohphone, you can give command to the interpreter

directl like decrease AEC, Automatic Echo Cancell ion).

Setting up a gatekeeper

You can also experiment gatekeeper feature

187



Example

(Terminal H323) A - - -

(Terminal H323) B - - - D (Gatekeeper)

/

(Terminal H323) C - - -

Gatekeeper configuration

1.Hosts A,B and C have gatekeeper setting to point to D.


VOIP


2.At start ime each host tells D own address and own name (also with

aliases) which could be used by a call to reach it.

3.When a terminal asks D for an host, D answers with right IP address, so

communication can be established.

We have to notice that the Gatekeeper is able only to solve name in IP

address, it couldn't oin hosts that aren't eachable each other (at IP level),n

other words it couldn't act as a NAT router.

Program has only to be launch with -d (as daemon) or -x (execute)

parameter.

Setting up a gateway

As we said, gateway is an entity that can join VoIP to PSTN lines allowing us to

made callrom Internet to a classic telephone. So, in addition, we need a card

that could manage PSTN lines: Quicknet LineJack does it.

From OpenH323 web site we download:

1.driver for Linejack

2.PSTNGW appli ion to create our gateway.

If executable doesn't work you need to download source code and openh323

li ary, <code.html> then install l in a home user directory.

After that you only need to launch PSTNGw to start your H323 gateway.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1147
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved