1273 lines
40 KiB
Plaintext
1273 lines
40 KiB
Plaintext
|
VoIP Howto
|
|||
|
Roberto Arcomano berto@fatamorgana.com
|
|||
|
v1.7, August 7, 2002
|
|||
|
|
|||
|
Voice Over IP is a new communication means that let you telephone with
|
|||
|
Internet at almost null cost. How this is possible, what systems are
|
|||
|
used, what is the standard, all that is covered by this Howto. Web
|
|||
|
site http://www.fatamorgana.com/bertolinux <http://www.fatamor<6F>
|
|||
|
gana.com/bertolinux> contains latest version of this document.
|
|||
|
______________________________________________________________________
|
|||
|
|
|||
|
Table of Contents
|
|||
|
|
|||
|
|
|||
|
|
|||
|
1. Introduction
|
|||
|
|
|||
|
1.1 Introduction
|
|||
|
1.2 Copyright
|
|||
|
1.3 Translations
|
|||
|
1.4 Credits
|
|||
|
|
|||
|
2. Background
|
|||
|
|
|||
|
2.1 The past
|
|||
|
2.2 Yesterday
|
|||
|
2.3 Today
|
|||
|
2.4 The future
|
|||
|
|
|||
|
3. Overview
|
|||
|
|
|||
|
3.1 What is VoIP?
|
|||
|
3.2 How does it work?
|
|||
|
3.3 What is the advantages using VoIP rather PSTN?
|
|||
|
3.4 Then, why everybody doesn't use it yet?
|
|||
|
|
|||
|
4. Technical info about VoIP
|
|||
|
|
|||
|
4.1 Overview on a VoIP connection
|
|||
|
4.2 Analog to Digital Conversion
|
|||
|
4.3 Compression Algorithms
|
|||
|
4.4 RTP Real Time Transport Protocol
|
|||
|
4.5 RSVP
|
|||
|
4.6 Quality of Service (QoS)
|
|||
|
4.7 H323 Signaling Protocol
|
|||
|
|
|||
|
5. Requirement
|
|||
|
|
|||
|
5.1 Hardware requirement
|
|||
|
5.2 Hardware accelerating cards
|
|||
|
5.3 Hardware gateway cards
|
|||
|
5.4 Software requirement
|
|||
|
5.5 Gateway software
|
|||
|
5.6 Gatekeeper software
|
|||
|
5.7 Other software
|
|||
|
|
|||
|
6. Cards setup
|
|||
|
|
|||
|
6.1 Quicknet PhoneJack
|
|||
|
6.1.1 Software installation
|
|||
|
6.1.2 Settings
|
|||
|
6.2 Quicknet LineJack
|
|||
|
6.3 VoiceTronix products
|
|||
|
|
|||
|
7. Setup
|
|||
|
|
|||
|
7.1 Simple communication: IP to IP
|
|||
|
7.2 Using names
|
|||
|
7.3 Internet calling using a WINS server
|
|||
|
7.4 ILS server
|
|||
|
7.5 A big problem: the masquering.
|
|||
|
7.6 Open Source applications
|
|||
|
7.6.1 Ohphone Sintax
|
|||
|
7.6.2 Gnomemeeting
|
|||
|
7.7 Setting up a gatekeeper
|
|||
|
7.8 Setting up a gateway
|
|||
|
7.9 Compatibility Matrix
|
|||
|
|
|||
|
8. Communications using PSTN line
|
|||
|
|
|||
|
8.1 Overview
|
|||
|
8.2 Scenario
|
|||
|
8.3 What can be changed in this configuration?
|
|||
|
|
|||
|
9. Bandwidth consideration
|
|||
|
|
|||
|
10. Glossary
|
|||
|
|
|||
|
11. Useful links
|
|||
|
|
|||
|
11.1 Open software link
|
|||
|
11.2 Commercial link
|
|||
|
|
|||
|
|
|||
|
______________________________________________________________________
|
|||
|
|
|||
|
1. Introduction
|
|||
|
|
|||
|
1.1. Introduction
|
|||
|
|
|||
|
This document explains about VoIP systems. Recent happenings like
|
|||
|
Internet diffusion at low cost, new integration of dedicated voice
|
|||
|
compression processors, have changed common user requirements allowing
|
|||
|
VoIP standards to diffuse. This howto tries to define some basic lines
|
|||
|
of VoIP architecture.
|
|||
|
|
|||
|
Please send suggestions and critics to my email address
|
|||
|
<mailto:berto@fatamorgana.com>
|
|||
|
|
|||
|
1.2. Copyright
|
|||
|
|
|||
|
Copyright (C) 2000,2001 Roberto Arcomano. This document is free; you
|
|||
|
can redistribute it and/or modify it under the terms of the GNU
|
|||
|
General Public License as published by the Free Software Foundation;
|
|||
|
either version 2 of the License, or (at your option) any later
|
|||
|
version. This document is distributed in the hope that it will be
|
|||
|
useful, but
|
|||
|
|
|||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
|||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|||
|
General Public License for more details. You can get a copy of the GNU
|
|||
|
GPL here <http://www.gnu.org/copyleft/gpl.html>
|
|||
|
|
|||
|
1.3. Translations
|
|||
|
|
|||
|
If you want to translate this document you are free, you only have to:
|
|||
|
|
|||
|
|
|||
|
1. Check that another version of it doesn't already exist at your
|
|||
|
local LDP
|
|||
|
|
|||
|
2. Maintain all 'Introduction' section (including 'Introduction',
|
|||
|
|
|||
|
Warning! You don't have to translate TXT or HTML file, you have to
|
|||
|
modify LYX file, so that it is possible to convert it all other
|
|||
|
formats (TXT, HTML, RIFF, etc.): to do that you can use "LyX"
|
|||
|
application you download from http://www.lyx.org <http://www.lyx.org>.
|
|||
|
|
|||
|
No need to ask me to translate! You just have to let me know (if you
|
|||
|
want) about your translation.
|
|||
|
|
|||
|
Thank you for your translation!
|
|||
|
|
|||
|
1.4. Credits
|
|||
|
|
|||
|
Thanks to Fatamorgana Computers <http://www.fatamorgana.com> for
|
|||
|
hardware equipment and experimental opportunity.
|
|||
|
Thanks to Linux Documentation Project <http://www.linuxdoc.org> for
|
|||
|
publishing and uploading my document in a very quickly fashion.
|
|||
|
|
|||
|
Thanks to David Price <mailto:dprice@intercorp.com.au> for his
|
|||
|
support.
|
|||
|
|
|||
|
2. Background
|
|||
|
|
|||
|
2.1. The past
|
|||
|
|
|||
|
More than 30 years ago Internet didn't exist. Interactive
|
|||
|
communications were only made by telephone at PSTN line cost.
|
|||
|
|
|||
|
Data exchange was expansive (for a long distance) and no one had been
|
|||
|
thinking to video interactions (there was only television that is not
|
|||
|
interactive, as known).
|
|||
|
|
|||
|
2.2. Yesterday
|
|||
|
|
|||
|
Few years ago we saw appearing some interesting things: PCs to large
|
|||
|
masses, new technologies to communicate like cellular phones and
|
|||
|
finally the great net: Internet; people begun to communicate with new
|
|||
|
services like email, chat, etc. and business reborned with the web
|
|||
|
allowing people buy with a "click".
|
|||
|
|
|||
|
2.3. Today
|
|||
|
|
|||
|
Today we can see a real revolution in communication world: everybody
|
|||
|
begins to use PCs and Internet for job and free time to communicate
|
|||
|
each other, to exchange data (like images, sounds, documents) and,
|
|||
|
sometimes, to talk each other using applications like Netmeeting or
|
|||
|
Internet Phone. Particularly starts to diffusing a common idea that
|
|||
|
could be the future and that can allow real-time vocal communication:
|
|||
|
VoIP.
|
|||
|
|
|||
|
2.4. The future
|
|||
|
|
|||
|
We cannot know what is the future, but we can try to image it with
|
|||
|
many computers, Internet almost everywhere at high speed and people
|
|||
|
talking (audio and video) in a real time fashion. We only need to know
|
|||
|
what will be the means to do this: UMTS, VoIP (with video extension)
|
|||
|
or other? Anyway we can notice that Internet has grown very much in
|
|||
|
the last years, it is free (at least as international means) and could
|
|||
|
be the right communication media for future.
|
|||
|
|
|||
|
3. Overview
|
|||
|
|
|||
|
3.1. What is VoIP?
|
|||
|
|
|||
|
VoIP stands for 'V'oice 'o'ver 'I'nternet 'P'rotocol. As the term says
|
|||
|
VoIP tries to let go voice (mainly human) through IP packets and, in
|
|||
|
definitive through Internet. VoIP can use accelerating hardware to
|
|||
|
achieve this purpose and can also be used in a PC environment.
|
|||
|
|
|||
|
3.2. How does it work?
|
|||
|
|
|||
|
Many years ago we discovered that sending a signal to a remote
|
|||
|
destination could have be done also in a digital fashion: before
|
|||
|
sending it we have to digitalize it with an ADC (analog to digital
|
|||
|
converter), transmit it, and at the end transform it again in analog
|
|||
|
format with DAC (digital to analog converter) to use it.
|
|||
|
|
|||
|
VoIP works like that, digitalizing voice in data packets, sending them
|
|||
|
and reconverting them in voice at destination.
|
|||
|
|
|||
|
|
|||
|
Digital format can be better controlled: we can compress it, route it,
|
|||
|
convert it to a new better format, and so on; also we saw that digital
|
|||
|
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 to go
|
|||
|
across the network and come to destination.
|
|||
|
|
|||
|
|
|||
|
Voice (source) - - ADC - - - - Internet - - - DAC - - Voice (dest)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
3.3. What is the advantages using VoIP rather PSTN?
|
|||
|
|
|||
|
When you are using PSTN line, you typically pay for time used to a
|
|||
|
PSTN line manager company: more time you stay at phone and more you'll
|
|||
|
pay. In addition you couldn't talk with other that one person at a
|
|||
|
time.
|
|||
|
|
|||
|
In opposite with VoIP mechanism you can talk all the 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 addition, you can talk with many people at the same time.
|
|||
|
|
|||
|
|
|||
|
If you're still not persuaded you can consider that, at the same time,
|
|||
|
you can exchange data with people are you talking with, sending
|
|||
|
images, graphs and videos.
|
|||
|
|
|||
|
3.4. Then, why everybody doesn't use it yet?
|
|||
|
|
|||
|
Unfortunately we have to report some problem with the integration
|
|||
|
between VoIP architecture and Internet. As you can easy imagine, voice
|
|||
|
data communication must be a real time stream (you couldn't speak,
|
|||
|
wait for 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 trip time (RTT), so we need to modify
|
|||
|
something to get it properly working.
|
|||
|
|
|||
|
In next sections we'll try to understand how to solve this great
|
|||
|
problem. In general we know that is very difficult to guarantee a
|
|||
|
bandwidth in Internet for VoIP application.
|
|||
|
|
|||
|
4. Technical info about VoIP
|
|||
|
|
|||
|
Here we see some important info about VoIP, needed to understand it.
|
|||
|
|
|||
|
4.1. Overview on a VoIP connection
|
|||
|
|
|||
|
To setup a VoIP communication we need:
|
|||
|
|
|||
|
|
|||
|
1. First the ADC to convert analog voice to digital signals (bits)
|
|||
|
|
|||
|
2. Now the bits have to be compressed in a good format for
|
|||
|
transmission: there is a number of protocols we'll 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 that must be done in a real time fashion cause we cannot
|
|||
|
waiting for too long for a vocal answer! (see QoS section)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Base architecture
|
|||
|
|
|||
|
Voice )) ADC - Compression Algorithm - Assembling RTP in TCP/IP -----
|
|||
|
----> |
|
|||
|
<---- |
|
|||
|
Voice (( DAC - Decompress. Algorithm - Disass. RTP from TCP/IP -----
|
|||
|
|
|||
|
|
|||
|
|
|||
|
4.2. 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 (for 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 such a throughput (176kBytes/s) to send voice
|
|||
|
packet: next we'll see other coding used for it.
|
|||
|
|
|||
|
4.3. Compression Algorithms
|
|||
|
|
|||
|
Now that we have digital data we may convert it to a standard format
|
|||
|
that could be quickly transmitted.
|
|||
|
|
|||
|
|
|||
|
PCM, Pulse Code Modulation, Standard ITU-T G.711
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<20> Voice bandwidth is 4 kHz, so sampling bandwidth has to be 8 kHz
|
|||
|
(for Nyquist).
|
|||
|
|
|||
|
<20> We represent each sample with 8 bit (having 256 possible values).
|
|||
|
|
|||
|
<20> Throughput is 8000 Hz *8 bit = 64 kbit/s, as a typical digital
|
|||
|
phone line.
|
|||
|
|
|||
|
<20> 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 differential PCM, Standard ITU-T G.726
|
|||
|
|
|||
|
|
|||
|
|
|||
|
It converts only the difference 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, Truespeech
|
|||
|
ACELP, Standard ITU-T G.723.1, 5.3kbps, Truespeech
|
|||
|
LPC-10, able to reach 2.5 kbps!!
|
|||
|
|
|||
|
|
|||
|
|
|||
|
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 fidelity) but
|
|||
|
attention to elaboration performance required by them, up to 26 MIPS!
|
|||
|
|
|||
|
4.4. RTP Real Time Transport Protocol
|
|||
|
|
|||
|
Now we have the raw data and we want to encapsulate it into 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.
|
|||
|
|
|||
|
Firstly, VoIP doesn't use TCP because it is too heavy for real time
|
|||
|
applications, so instead a UDP (datagram) is used.
|
|||
|
|
|||
|
Secondly, UDP has no control over the order in which packets arrive at
|
|||
|
the destination or how long it takes them to get there (datagram
|
|||
|
concept). Both of these are very important to overall voice quality
|
|||
|
(how well you can understand what the other person is saying) and
|
|||
|
conversation quality (how easy it is to carry out a conversation).
|
|||
|
RTP solves the problem enabling the receiver to put the packets back
|
|||
|
into the correct order and not wait too long for packets that have
|
|||
|
either lost their way or are taking too long to arrive (we don't need
|
|||
|
every single voice packet, but we need a continuous flow of many of
|
|||
|
them and ordered).
|
|||
|
|
|||
|
|
|||
|
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:
|
|||
|
|
|||
|
|
|||
|
<20> V indicates the version of RTP used
|
|||
|
|
|||
|
<20> P indicates the padding, a byte not used at bottom packet to reach
|
|||
|
the parity packet dimension
|
|||
|
|
|||
|
<20> X is the presence of the header extension
|
|||
|
|
|||
|
<20> CC field is the number of CSRC identifiers following the fixed
|
|||
|
header. CSRC field are used, for example, in conference case.
|
|||
|
<20> M is a marker bit
|
|||
|
|
|||
|
<20> PT payload type
|
|||
|
|
|||
|
For a complete description of RTP protocol and all its applications
|
|||
|
see relative RFCs1889 <http://www.ietf.org/rfc/rfc1889.txt> and 1890
|
|||
|
<http://www.ietf.org/rfc/rfc1890.txt>.
|
|||
|
|
|||
|
4.5. RSVP
|
|||
|
|
|||
|
There are also other protocols used in VoIP, like RSVP, that can
|
|||
|
manage Quality of Service (QoS).
|
|||
|
|
|||
|
RSVP is a signaling protocol that requests a certain amount of
|
|||
|
bandwidth and latency in every network hop that supports it.
|
|||
|
|
|||
|
For detailed info about RSVP see theRFC 2205
|
|||
|
<http://www.ietf.org/rfc/rfc2205.txt?number=2205>
|
|||
|
|
|||
|
4.6. Quality of Service (QoS)
|
|||
|
|
|||
|
We said many times that VoIP applications require a real-time data
|
|||
|
streaming cause we expect an interactive data voice exchange.
|
|||
|
|
|||
|
|
|||
|
Unfortunately, TCP/IP cannot guarantee this kind of purpose, it just
|
|||
|
make a "best effort" to do it. So we need to introduce tricks and
|
|||
|
policies that could manage the packet flow in EVERY router we cross.
|
|||
|
|
|||
|
So here are:
|
|||
|
|
|||
|
|
|||
|
1. TOS field 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:
|
|||
|
|
|||
|
a. FIFO (First in First Out), the more stupid method that allows
|
|||
|
passing packets in arrive order.
|
|||
|
|
|||
|
b. WFQ (Weighted Fair Queuing), consisting in a fair passing of
|
|||
|
packets (for example, FTP cannot consume all available
|
|||
|
bandwidth), depending on kind of data flow, typically one packet
|
|||
|
for UDP and one for TCP in a fair fashion.
|
|||
|
|
|||
|
c. CQ (Custom Queuing), users can decide priority.
|
|||
|
|
|||
|
d. PQ (Priority Queuing), there is a number (typically 4) of queues
|
|||
|
with a priority level each one: first, packets in the first
|
|||
|
queue are sent, then (when first queue is empty) starts sending
|
|||
|
from the second one and so on.
|
|||
|
|
|||
|
e. CB-WFQ (Class Based Weighted Fair Queuing), like WFQ but, in
|
|||
|
addition, we have classes concept (up to 64) and the bandwidth
|
|||
|
value associated for each one.
|
|||
|
|
|||
|
3. Shaping capability, that allows to limit the source to a fixed
|
|||
|
bandwidth in:
|
|||
|
|
|||
|
a. download
|
|||
|
|
|||
|
b. upload
|
|||
|
|
|||
|
4. Congestion Avoidance, like RED (Random Early Detection).
|
|||
|
|
|||
|
For an exhaustive information about QoS see Differentiated Services
|
|||
|
<http://www.ietf.org/html.charters/diffserv-charter.html> at IETF.
|
|||
|
|
|||
|
4.7. H323 Signaling Protocol
|
|||
|
|
|||
|
H323 protocol is used, for example, by Microsoft Netmeeting to make
|
|||
|
VoIP calls.
|
|||
|
|
|||
|
This protocol allow a variety of elements talking each other:
|
|||
|
|
|||
|
|
|||
|
1. Terminals, clients that initialize VoIP connection. Although
|
|||
|
terminals could talk together without anyone else, we need some
|
|||
|
additional elements for a scalable vision.
|
|||
|
|
|||
|
2. Gatekeepers, that essentially operate:
|
|||
|
|
|||
|
a. address translation service, to use names instead IP addresses
|
|||
|
|
|||
|
b. admission control, to allow or deny some hosts or some users
|
|||
|
|
|||
|
c. bandwidth management
|
|||
|
|
|||
|
3. Gateways, points of reference for conversion TCP/IP - PSTN.
|
|||
|
|
|||
|
4. Multipoint Control Units (MCUs) to provide conference.
|
|||
|
|
|||
|
5. Proxies Server also are 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 while for video it supports h261 and h263.
|
|||
|
|
|||
|
More info about h323 is available at Openh323 Standards
|
|||
|
<http://www.openh323.org/standards.html>, at this h323 web site
|
|||
|
<http://www.cs.columbia.edu/~hgs/rtp/h323.html> and at its standard
|
|||
|
description: ITU H-series Recommendations
|
|||
|
<http://www.itu.int/itudoc/itu-t/rec/h/>.
|
|||
|
|
|||
|
You can find it implemented in various application software like
|
|||
|
Microsoft Netmeeting <http://www.microsoft.com>, Net2Phone
|
|||
|
<http://www.net2phone.com>, DialPad <http://www.dialpad.com>, ... and
|
|||
|
also in freeware products you can find at Openh323 Web Site
|
|||
|
<http://www.openh323.org>.
|
|||
|
|
|||
|
5. Requirement
|
|||
|
|
|||
|
5.1. Hardware requirement
|
|||
|
|
|||
|
To create a little VoIP system you need the following hardware:
|
|||
|
|
|||
|
|
|||
|
1. PC 386 or more
|
|||
|
|
|||
|
2. Sound card, full duplex capable
|
|||
|
|
|||
|
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'll 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 while
|
|||
|
speaking!
|
|||
|
|
|||
|
As additional you can use hardware cards (see next) able to manage
|
|||
|
data stream in a compressed format (see Par 4.3).
|
|||
|
|
|||
|
5.2. Hardware accelerating cards
|
|||
|
|
|||
|
We can use special cards with hardware accelerating capability. 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
|
|||
|
|
|||
|
3. VoiceTronix V4PCI
|
|||
|
|
|||
|
4. VoiceTronix VPB4
|
|||
|
|
|||
|
5. VoiceTronix VPB8L
|
|||
|
|
|||
|
Quicknet PhoneJack is a sound card that can use standard algorithms to
|
|||
|
compress audio stream like G723.1 (section 4.3) down to 4.1 Kbps rate.
|
|||
|
|
|||
|
It can be connected directly to 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).
|
|||
|
|
|||
|
VoiceTronix V4PCI is a PCI card pretty like Quicknet LineJack but with
|
|||
|
4 phone ports
|
|||
|
|
|||
|
VoiceTronix VPB4 is a ISA card equivalent to V4PCI.
|
|||
|
|
|||
|
VoiceTronix VPB8L is a logging card with 8 ports.
|
|||
|
|
|||
|
For more info see Quicknet web site <http://www.quicknet.net> and
|
|||
|
VoiceTronix web site <http://www.voicetronix.com.au>
|
|||
|
|
|||
|
5.3. Hardware gateway cards
|
|||
|
|
|||
|
Quicknet LineJack and VoiceTronix cards can be connected to a PSTN
|
|||
|
line allowing VoIP gateway feature.
|
|||
|
|
|||
|
Then you'll need a software to manage it (see after).
|
|||
|
|
|||
|
5.4. 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
|
|||
|
<http://www.quicknet.net>) for Quicknet cards.
|
|||
|
|
|||
|
Warning!!: Latest Quicknet cards using Swithboard (older version too)
|
|||
|
NEED to be connected to Internet to get working for managing
|
|||
|
Microtelco account (not free of charge), so if you plan to remain
|
|||
|
isolated from Internet you need to install OpenH323 software
|
|||
|
<http://www.openh323.org>.
|
|||
|
|
|||
|
For VoiceTronix cards you can find software at VoiceTronix web site
|
|||
|
<http://www.voicetronix.com.au>
|
|||
|
|
|||
|
Under Linux we have free software GnomeMeeting
|
|||
|
<http://www.gnomemeeting.org>, a clone of Microsoft Netmeeting, while
|
|||
|
in console mode we use (also free software) applications from OpenH323
|
|||
|
<http://www.openh323.org> web site: 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 is necessary to change some environment
|
|||
|
variable). You are warned that compiling time could be very high and
|
|||
|
you could need a lot of RAM to make it in a decent time.
|
|||
|
|
|||
|
5.5. Gateway software
|
|||
|
|
|||
|
To manage gateway feature (join TCP/IP VoIP to PSTN lines) you need
|
|||
|
some kind of software like this:
|
|||
|
|
|||
|
|
|||
|
<20> Internet SwitchBoard <http://www.quicknet.net> (only when connected
|
|||
|
to Internet) for Windows systems also acting as a h323 terminal;
|
|||
|
|
|||
|
<20> PSTNGw for Linux and Windows systems you download from OpenH323
|
|||
|
<http://www.openh323.org/code.html>.
|
|||
|
|
|||
|
5.6. Gatekeeper software
|
|||
|
|
|||
|
You can choose as gatekeeper:
|
|||
|
|
|||
|
|
|||
|
1. Opengatekeeper, you can download from opengatekeeper web site
|
|||
|
<http://www.opengatekeeper.org> for Linux and Win9x.
|
|||
|
|
|||
|
2. Openh323 Gatekeeper (GK) from here
|
|||
|
<http://www.willamowius.de/openh323gk.html>.
|
|||
|
|
|||
|
5.7. Other software
|
|||
|
|
|||
|
In addition I report some useful software h323 compliant:
|
|||
|
|
|||
|
|
|||
|
<20> Phonepatch, able to solve problems behind a NAT firewall. It simply
|
|||
|
allows users (external or internal) calling from a web page (which
|
|||
|
is reachable from even external and internal users): when web
|
|||
|
application understands the remote host is ready, it calls (h323)
|
|||
|
the source telling it all is ok and communication can be
|
|||
|
established. Phonepatch is a proprietary software (with also a
|
|||
|
demo version for no more than 3 minutes long conversations) you
|
|||
|
download from here <http://www.equival.com/phonepatch>.
|
|||
|
|
|||
|
6. Cards setup
|
|||
|
|
|||
|
Here we see how to configure special hardware card in Linux and
|
|||
|
Windows environment.
|
|||
|
|
|||
|
6.1. Quicknet PhoneJack
|
|||
|
|
|||
|
As we saw, Quicknet Phonejack is a sound card with VoIP accelerating
|
|||
|
capability. It supports:
|
|||
|
|
|||
|
|
|||
|
<20> G.711 normal and mu/A-law, G.728-9, G.723.1 (TrueSpeech) and LPC10.
|
|||
|
|
|||
|
<20> Phone connector (to allow calling directly from your phone) or
|
|||
|
|
|||
|
<20> Mic & speaker jacks.
|
|||
|
|
|||
|
Quicknet PhoneJack is a ISA (or PCI) card to install into your Pc box.
|
|||
|
It can work without an IRQ.
|
|||
|
|
|||
|
6.1.1. Software installation
|
|||
|
|
|||
|
Under Windows you have to install:
|
|||
|
|
|||
|
|
|||
|
1. Card driver
|
|||
|
|
|||
|
2. Internet Switchboard application (working only with Internet, using
|
|||
|
newer Quicknet cards)
|
|||
|
|
|||
|
all downloadable from Quicknet web site <http://www.quicknet.net>
|
|||
|
|
|||
|
After Switchboard has been installed, you need to register to Quicknet
|
|||
|
to obtain full capability of your card.
|
|||
|
|
|||
|
When you pick up the phone Internet Switchboard wakes up and waits for
|
|||
|
your calling number (directly entered from your phone), you can:
|
|||
|
|
|||
|
|
|||
|
1. enter an asterisk, then type an IP number (with asterisks in place
|
|||
|
of dot) with a # in the end
|
|||
|
|
|||
|
2. type directly a PSTN phone number (with international prefix) to
|
|||
|
call a classic phone user. In this case you need a registration to
|
|||
|
a gateway manager to which pay for time.
|
|||
|
|
|||
|
3. enter directly a quick dial number (up to 2 digits) you have
|
|||
|
previously stored which make a call (IP or PSTN).
|
|||
|
|
|||
|
Internet Swichboard is h323 compatible, so if you can use, for
|
|||
|
example, Microsoft Netmeeting at the other end to talk.
|
|||
|
|
|||
|
Warning!! Internet Switchboard NEED to be connected to Internet when
|
|||
|
used with newer Quicknet cards
|
|||
|
|
|||
|
In place of Internet Switchboard you can use openh323 application
|
|||
|
openphone <http://www.openh323.org/code.html> (using GUI) or ohphone
|
|||
|
<http://www.openh323.org/code.html> (command line).
|
|||
|
|
|||
|
Under Linux you have to install:
|
|||
|
|
|||
|
|
|||
|
1. Card driver, from Quicknet web site <http://www.quicknet.net>.
|
|||
|
After downloaded you have to compile it (you must have a
|
|||
|
/usr/src/linux soft or hard link to your Linux source directory):
|
|||
|
type make for instructions.
|
|||
|
|
|||
|
2. Application openphone <http://www.openh323.org/code.html> or
|
|||
|
ohphone <http://www.openh323.org/code.html>.
|
|||
|
|
|||
|
3. If you are a developer you can use SDK
|
|||
|
<ftp://ftp.quicknet.net/Developer/Linux/Docs/> to create your own
|
|||
|
application (also for Windows).
|
|||
|
|
|||
|
|
|||
|
|
|||
|
6.1.2. Settings
|
|||
|
|
|||
|
With Internet Switchboard (and with other application) you can:
|
|||
|
|
|||
|
|
|||
|
1. Change compression algorithm preferred
|
|||
|
|
|||
|
2. Tune jitter delay
|
|||
|
|
|||
|
3. Adjust volume
|
|||
|
|
|||
|
4. Adjust echo cancellation level.
|
|||
|
|
|||
|
6.2. Quicknet LineJack
|
|||
|
|
|||
|
This card is very similar to the previous, it supports also gateway
|
|||
|
feature.
|
|||
|
|
|||
|
We only notice that we have to download
|
|||
|
<http://www.quicknet.net/code.html> PSTNGx application (for Linux and
|
|||
|
Windows) or we use Internet Switchboard to gateway feature.
|
|||
|
|
|||
|
6.3. VoiceTronix products
|
|||
|
|
|||
|
|
|||
|
1. First download software here <http://www.voicetronix.com.au/vpb-
|
|||
|
driver-2.1.8.tar.gz>
|
|||
|
|
|||
|
2. Untar it
|
|||
|
|
|||
|
3. Modify 'src/vpbreglinux.cpp' according to file README
|
|||
|
|
|||
|
4. type 'make'
|
|||
|
|
|||
|
5. type 'make install'
|
|||
|
|
|||
|
6. cd to src
|
|||
|
|
|||
|
7. type 'insmod vpb.o'
|
|||
|
|
|||
|
8. retrieve (from console of from 'dmesg' output command) major
|
|||
|
number, say MAJOR
|
|||
|
|
|||
|
9. type 'mknod /dev/vpb0 c MAJOR 0' where MAJOR is the above number
|
|||
|
|
|||
|
10.
|
|||
|
cd to unittest and type './echo'
|
|||
|
|
|||
|
Follow README file for more help.
|
|||
|
|
|||
|
I personally haven't tested VoiceTronix products so please contact
|
|||
|
VoiceTronix web site <http://www.voicetronix.com.au> for support.
|
|||
|
|
|||
|
7. Setup
|
|||
|
|
|||
|
In this chapter we try to setup VoIP system, simple at first, then
|
|||
|
more and more complex.
|
|||
|
|
|||
|
7.1. Simple communication: IP to IP
|
|||
|
|
|||
|
|
|||
|
|
|||
|
A (Sound card) - - - B (Sound card)
|
|||
|
|
|||
|
192.168.1.1 - - - 192.168.1.2
|
|||
|
|
|||
|
|
|||
|
192.168.1.1 calls 192.168.1.2 and viceversa.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
A and B should have
|
|||
|
|
|||
|
|
|||
|
1. an application like Microsoft Netmeeting, Internet Switchboard,
|
|||
|
Openh323 (under Windows environment) or Ohphone, Gnomemeeting
|
|||
|
(under Linux), installed and properly configured.
|
|||
|
|
|||
|
2. 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 to B (if B has server side
|
|||
|
application active) using B IP address. Then B can answer to it if it
|
|||
|
wants. After accepting call, VoIP data packets start to flow.
|
|||
|
|
|||
|
7.2. Using names
|
|||
|
|
|||
|
Under Microsoft Windows a NetBIOS name can be used instead of an IP
|
|||
|
address.
|
|||
|
|
|||
|
|
|||
|
A - - - B
|
|||
|
|
|||
|
192.168.1.1 - - - 192.168.1.2
|
|||
|
|
|||
|
John - - - Alice
|
|||
|
|
|||
|
|
|||
|
John calls Alice.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
This is possible cause John call request to Alice is converted to IP
|
|||
|
calling 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 is impossible to use direct
|
|||
|
calling cause, usually, the callers 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 .
|
|||
|
|
|||
|
You can also use DNS to solve name in IP address: for example you can
|
|||
|
call ''box.domain.com''.
|
|||
|
|
|||
|
7.3. Internet calling using a WINS server
|
|||
|
|
|||
|
The NetBIOS name calling 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 will be able to make direct calling
|
|||
|
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 different subnets, but they can call each other
|
|||
|
in a NetBIOS name calling fashion. The needed is that all are 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.
|
|||
|
|
|||
|
7.4. ILS server
|
|||
|
|
|||
|
ILS is a kind of server which allows you to solve your name during an
|
|||
|
H323 calling: when you start VoIP application you first register to
|
|||
|
ILS server using a name, then everyone will be able to see you using
|
|||
|
that name (if he uses same Server ILS!).
|
|||
|
|
|||
|
7.5. A big problem: the masquering.
|
|||
|
|
|||
|
A problem of few IPs is commonly solved using the so called masquering
|
|||
|
(also NAT, network address translation): there is only 1 IP public
|
|||
|
address (that Internet can directly "see"), the 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 application level, so the
|
|||
|
answer will never arrive to source (that is using a private IP
|
|||
|
address).
|
|||
|
|
|||
|
Solutions:
|
|||
|
|
|||
|
|
|||
|
<20> there is a Linux module that modifies H323 packets avoiding this
|
|||
|
problem. You can download the module here
|
|||
|
<http://www.coritel.it/coritel/ip/sofia/nat/nat2/nat2.htm>. To
|
|||
|
install it you have to copy it to source directory specified,
|
|||
|
modify Makefile and go compiling and installing 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
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<20> There is a application program that also solves this problem: for
|
|||
|
more see ``Par 5.7''
|
|||
|
|
|||
|
|
|||
|
|
|||
|
A - - -
|
|||
|
|
|||
|
B - - - PhonePatch - - - Internet
|
|||
|
|
|||
|
C - - -
|
|||
|
|
|||
|
|
|||
|
This works
|
|||
|
|
|||
|
|
|||
|
|
|||
|
7.6. Open Source applications
|
|||
|
|
|||
|
7.6.1. Ohphone Sintax
|
|||
|
|
|||
|
Sintax is:
|
|||
|
|
|||
|
"ohphone -l|--listen [options]"
|
|||
|
|
|||
|
"ohphone [options]... address"
|
|||
|
|
|||
|
|
|||
|
<20> "-l", listen to standard port (1720)
|
|||
|
|
|||
|
<20> "address", mean that we don't wait for a call, but we connect to
|
|||
|
"address" host
|
|||
|
|
|||
|
<20> "-n", "--no-gatekeeper", this is ok if we haven't a gatekeeper
|
|||
|
|
|||
|
<20> "-q num", "--quicknet num", it uses Quicknet card, device
|
|||
|
/dev/phone(num)
|
|||
|
|
|||
|
<20> "-s device", "--sound device", it uses /dev/device sound device.
|
|||
|
|
|||
|
<20> "-j delay", "--jitter delay", it change delay buffer to "delay".
|
|||
|
|
|||
|
Also, when you start ohphone, you can give command to the interpreter
|
|||
|
directly (like decrease AEC, Automatic Echo Cancellation).
|
|||
|
|
|||
|
7.6.2. Gnomemeeting
|
|||
|
|
|||
|
Gnomemeeting is an application using GUI interface to make call using
|
|||
|
VoIP. It is very simple to use and allows you to use ILS server, chat
|
|||
|
and other things.
|
|||
|
|
|||
|
7.7. Setting up a gatekeeper
|
|||
|
|
|||
|
You can also experiment gatekeeper feature
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
2. At start time each host tells D own address and own name (also with
|
|||
|
aliases) which could be used by a caller 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 join hosts that aren't reachable each other (at
|
|||
|
IP level), in other words it couldn't act as a NAT router.
|
|||
|
|
|||
|
You can find gatekeeper code here <http://www.opengatekeeper.org>:
|
|||
|
openh323 library <http://www.openh323.org/code.html> is also required.
|
|||
|
|
|||
|
Program has only to be launch with -d (as daemon) or -x (execute)
|
|||
|
parameter.
|
|||
|
|
|||
|
In addition you can use a config file (.ini) you find here
|
|||
|
<http://www.opengatekeeper.org/opengate.ini>.
|
|||
|
|
|||
|
7.8. Setting up a gateway
|
|||
|
|
|||
|
As we said, gateway is an entity that can join VoIP to PSTN lines
|
|||
|
allowing us to made call from 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 <http://www.openh323.org> we download:
|
|||
|
|
|||
|
|
|||
|
1. driver for Linejack
|
|||
|
|
|||
|
2. PSTNGw application to create our gateway.
|
|||
|
|
|||
|
If executable doesn't work you need to download source code and
|
|||
|
openh323 library <http://www.openh323.org/code.html>, then install all
|
|||
|
in a home user directory.
|
|||
|
|
|||
|
After that you only need to launch PSTNGw to start your H323 gateway.
|
|||
|
|
|||
|
7.9. Compatibility Matrix
|
|||
|
|
|||
|
First Matrix refers to:
|
|||
|
|
|||
|
|
|||
|
1. Software intercommunications (i.e. Netmeeting with SwitchBoard)
|
|||
|
|
|||
|
2. Software/Driver/Hardware talking (i.e. Netmeeting can use a
|
|||
|
PhoneJACK card).
|
|||
|
|
|||
|
|
|||
|
|
|||
|
_____________________________________________________________________________________________________________________
|
|||
|
| | Netmeeting |SwitchBoard | Simph323 | OhPhone | LinPhone |Speak-Freely|HW PhoneJACK|HW LineJACK |
|
|||
|
|____________|____________|____________|____________|____________|_____________|____________|____________|____________|
|
|||
|
| Netmeeting | V V V V X X V V
|
|||
|
|____________|____________|____________|____________|____________|_____________|____________|____________|____________|
|
|||
|
|SwitchBoard | V V V V X X V V
|
|||
|
|____________|____________|____________|____________|____________|_____________|____________|____________|____________|
|
|||
|
| Simph323 | V V V V X X X X
|
|||
|
|____________|____________|____________|____________|____________|_____________|____________|____________|____________|
|
|||
|
| OhPhone | V V V V X X V V
|
|||
|
|____________|____________|____________|____________|____________|_____________|____________|____________|____________|
|
|||
|
| LinPhone | X X X X V X X X
|
|||
|
|____________|____________|____________|____________|____________|_____________|____________|____________|____________|
|
|||
|
|SpeakFreely | X X X X X V X X
|
|||
|
|____________|____________|____________|____________|____________|_____________|____________|____________|____________|
|
|||
|
|HW PhoneJACK| V V X V X X _ _
|
|||
|
|____________|____________|____________|____________|____________|_____________|____________|____________|____________|
|
|||
|
|HW LineJACK | V V X V X X _ _
|
|||
|
|____________|____________|____________|____________|____________|_____________|____________|____________|____________|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Second Matrix refers to Gateway softwares that manage LineJACK card.
|
|||
|
|
|||
|
|
|||
|
___________________________________________________________
|
|||
|
| |HW LineJACK GW| SwitchBoard | PSTNGW |
|
|||
|
|______________|______________|______________|______________|
|
|||
|
|HW LineJACK GW| _ | V | V |
|
|||
|
|______________|______________|______________|______________|
|
|||
|
| SwitchBoard | V | _ | _ |
|
|||
|
|______________|______________|______________|______________|
|
|||
|
| PSTNGW | V | _ | _ |
|
|||
|
|______________|______________|______________|______________|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Notation:
|
|||
|
|
|||
|
|
|||
|
<20> V : Works
|
|||
|
|
|||
|
<20> X : Doesn't Work
|
|||
|
|
|||
|
<20> -- : Doesn't care
|
|||
|
|
|||
|
8. Communications using PSTN line
|
|||
|
|
|||
|
8.1. Overview
|
|||
|
|
|||
|
VoIP becomes very interesting when you start to use PSTN lines to call
|
|||
|
other people in the world, directly to their home telephone.
|
|||
|
|
|||
|
8.2. Scenario
|
|||
|
|
|||
|
A typical application is like that:
|
|||
|
|
|||
|
|
|||
|
Home telephone1 -- (PSTN) -- PC1 -- (Internet) -- PC2 -- (PSTN) -- Home telephone2
|
|||
|
|
|||
|
|
|||
|
|
|||
|
1. Home Telephone1 make a calls to PC1 phone number (using PSTN line,
|
|||
|
I mean classic telephone line).
|
|||
|
2. PC1 answer to it.
|
|||
|
|
|||
|
3. Home telephone1 must tell PC1 what gateway use (PC2 in this case)
|
|||
|
by giving the IP address (from DTMF keyboard) and/or what number
|
|||
|
call (in this case Home telephone2).
|
|||
|
|
|||
|
4. After that PC1 will start to make an H323 call to PC2, then it will
|
|||
|
pass Home telephone2 to PC2 to make it call it throught PSTN line.
|
|||
|
|
|||
|
5. Home telephone2 answers to call and communication between Home
|
|||
|
telephone1 and Home telephone2 begins.
|
|||
|
|
|||
|
8.3. What can be changed in this configuration?
|
|||
|
|
|||
|
|
|||
|
1. You may use a PBX to select many lines to access many PC1 gateway
|
|||
|
(for example one to call within your state, one to go accross
|
|||
|
Europe, and so on...): typically you don't have to change this,
|
|||
|
cause cost is always the same.
|
|||
|
|
|||
|
2. You can select (after called your PC1 gateway) every PC2 you want
|
|||
|
(for example a PC2 living in England to call an English person so
|
|||
|
that you'd pay only intra-country costs).
|
|||
|
|
|||
|
So your decision will be taken considering PSTN line costs. In fact
|
|||
|
what VoIP does is the convert this:
|
|||
|
|
|||
|
|
|||
|
Home Telephone1 --- (PSTN) --- Home Telephone2
|
|||
|
PSTN great distance calling cost
|
|||
|
|
|||
|
|
|||
|
|
|||
|
into this:
|
|||
|
|
|||
|
|
|||
|
Home Telephone1 --- (PSTN) --- PC1 +
|
|||
|
PC2 ---- (PSTN) --- Home Telephone2 =
|
|||
|
--------------------------------------
|
|||
|
2 PSTN short distance calling costs
|
|||
|
|
|||
|
|
|||
|
|
|||
|
To save money you need that:
|
|||
|
|
|||
|
|
|||
|
2 PSTN short distance calling costs < PSTN great distance calling cost
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Typically "short distance calling" refers to a "city cal" while "great
|
|||
|
distance calling" can be an "intercontinental call"!
|
|||
|
|
|||
|
9. Bandwidth consideration
|
|||
|
|
|||
|
From all we said before we noticed that we still have not solved
|
|||
|
problems about bandwidth, how to create a real time streaming of data.
|
|||
|
|
|||
|
We know we couldn't find a solution unless we enable a right real-time
|
|||
|
manager protocol in each router we cross, so what do we can do?
|
|||
|
|
|||
|
First we try to use a very (as more as possible) high rate compression
|
|||
|
algorithms (like LPC10 which only consumes a 2.5 kbps bandwidth, about
|
|||
|
313 bytes/s).
|
|||
|
|
|||
|
|
|||
|
Then we starts classify our packets, in TOS field, with the most high
|
|||
|
priority level, so every router help us having urgently.
|
|||
|
|
|||
|
Important: all that is not sufficient to guarantee our conversation
|
|||
|
would always be ok, but without an great infrastructure managing
|
|||
|
shaping, bandwidth reservation and so on, it is not possible to do it,
|
|||
|
TCP/IP is not a real time protocol.
|
|||
|
|
|||
|
A possible solution could be starts with little WAN at guaranteed
|
|||
|
bandwidth and get larger step by step.
|
|||
|
|
|||
|
We finally have to notice a thing: also the so called guaranteed
|
|||
|
services like PSTN line could not manage all clients they have: for
|
|||
|
example a GSM call is not able to manage more that some hundred or
|
|||
|
some thousand of clients.
|
|||
|
|
|||
|
Anyway for a starting service, limited to few users, VoIP can be a
|
|||
|
valid alternative to classic PSTN service.
|
|||
|
|
|||
|
10. Glossary
|
|||
|
|
|||
|
PSTN: Public Switched Telephone Network
|
|||
|
|
|||
|
VoIP: Voice over Internet Protocol
|
|||
|
|
|||
|
LAN: Local Area Network
|
|||
|
|
|||
|
WAN: Wide Area Network
|
|||
|
|
|||
|
TOS: Type Of Service
|
|||
|
|
|||
|
ISP: Internet Service Provider
|
|||
|
|
|||
|
RTP: Real Time Protocol
|
|||
|
|
|||
|
RSVP: ReSerVation Protocol
|
|||
|
|
|||
|
QoS: Quality of Service
|
|||
|
|
|||
|
11. Useful links
|
|||
|
|
|||
|
11.1. Open software link
|
|||
|
|
|||
|
|
|||
|
<20> Voxilla <http://www.voxilla.org>
|
|||
|
|
|||
|
<20> Linux Telephony <http://www.linuxtelephony.org>
|
|||
|
|
|||
|
<20> Open H323 web site <http://www.openh323.org>
|
|||
|
|
|||
|
<20> http://www.gnomemeeting.org/ <http://www.gnomemeeting.org/>
|
|||
|
|
|||
|
<20> Speak Freely <http://www.speakfreely.org>
|
|||
|
|
|||
|
<20> http://www.linphone.org <http://www.linphone.org>
|
|||
|
|
|||
|
<20> http://www.fsf.org/software/osip <http://www.fsf.org/software/osip>
|
|||
|
|
|||
|
<20> http://www.gnu.org/software/bayonne
|
|||
|
<http://www.gnu.org/software/bayonne>
|
|||
|
|
|||
|
11.2. Commercial link
|
|||
|
|
|||
|
|
|||
|
<20> Fatamorgana Computers <http://www.fatamorgana.com>
|
|||
|
|
|||
|
<20> International Communication Union <http://www.itu.org>
|
|||
|
|
|||
|
<20> Voicetronix web site <http://www.voicetronix.com.au>
|
|||
|
|
|||
|
<20> Quicknet Web site <http://www.quicknet.net>
|
|||
|
|
|||
|
<20> Cisco Systems <http://www.cisco.com>
|
|||
|
|
|||
|
<20> www.metropark.com <www.metropark.com>
|
|||
|
|
|||
|
<20> www.nbxsoftware.com <www.nbxsoftware.com>
|
|||
|
|
|||
|
|
|||
|
|