Introduction to VoIP, 2nd chapter of "Unified Communications with Elastix" Vol.1
We recommend to read the chapter along with the presentation.
http://elx.ec/chapter2
2. What is VoIP?
Voice over IP or VoIP consists in transmitting voice over an IP
protocol.
This is a very broad concept and there are many protocol
alternatives. It is truly a protocol soup.
Voice is packetized so it can be transmitted over an IP
network.
The IP protocol was not designed specifically for transporting
voice.
4. IP Protocol
One of the most well-known protocols
Its name comes from Internet Protocol.
This protocol offers a service with ”no guarantees” and is also
referred to as ”best effort”.
The packets can arrive out of order, and be reordered at the
destination.
Some packets can even be lost on the way.
This disorder and loss of packets can affect the quality of the
voice.
Despite all of this, intelligent ways have been found to solve
these problems in the best way possible.
5. IP address (1)
It's a unique number that identifies a host connected to an IP
network.
It's made up of 32 bits, or 4 octets. In practice a notation is
used in which each octet is translated into decimal, and
separated with a period. An example of an IP address is
130.5.5.26.
An IP address is composed in two parts: One identifies the
host, and the other identifies the network to which that host
belongs.
To find these parts another parameter is used, called a
network mask.
6. IP address (2)
The network mask is a 32 bit binary number that is also
represented in a notation that is similar to the IP address.
It begins with ones and continues this way until it reaches a
number of ones equal to the portion of the IP address that
corresponds to the network.
7. IP address (3)
Therefore, in the previous example we obtain an IP address
of 130.5.5.26 with a mask of 255.255.255.0 belonging to the
130.5.5.0 network.
The previous mask was a 24 bit mask, since there were 24
”ones”.
Once the network where the host is located is known it is
easier to send the IP packets to their destination.
Routers store tables of routes or rules on how to find other
networks
8. IP Packets (1)
An IP packet contains all the necessary information to arrive
to its destination.
It can be divided into two parts: the header and the payload.
The header contains information that allows the packet to be
delivered to its destination, and the payload retrieved.
This header decreases slightly the quantity of information that
can be transported since it occupies space.
The payload can be used to encapsulate other protocols like
UDP or TCP.
10. IP routing
Routers are necessary to direct packets on its way to a
destination.
Routers are devices with tables of routes.
This “table of routes” is made up of destination networks, and
for each one the IP address of the router to reach them.
The router that provides a route to external networks is called
a gateway.
The IP packet that arrives at the router is examined to see
what network it belongs to, the proper route is chosen, and
the packet it is sent there.
11. TCP Protocol (1)
Transport Control Protocol
It is an IP protocol that allows packet retransmission, packet
order management, and receipt acknowledgement.
To achieve this goal, TCP carries additional information that
adds weight to the packet. That is why it is not recommended
for real time applications like voice.
However, it can work for voice signaling.
12. TCP Protocol (2)
TCP introduces the concept of port.
A port is an abstraction that allows us to relate flows of data
with services on the network.
For example, port 80 corresponds to the Web service, or
HTTP protocol.
13. UDP Protocol
UDP (User Datagram Protocol) is another transport protocol.
It divides information into packets called datagrams.
This protocol doesn't care if the data arrives with errors or if it
doesn´t arrive at all. That is the main difference with TCP.
This is why it introduces little extra weight to the IP packet
which makes it ideal for real-time applications like voice.
14. VoIP Signaling
As in traditional telephony, it's necessary to signalize VoIP
calls.
There are some alternatives in signaling protocols, like SIP,
H.323, MGCP, IAX2, and others.
The most popular protocols on Asterisk are SIP and IAX2.
Regarding SIP or H.323, many people confuse them and think
that voice is transmitted through this protocol, but it is only
used for signaling.
15. VoIP Transport
RTP means Realtime Transport Protocol.
The RTP protocol is the one that really transports encoded
audio.
RTP is transported over UDP.
Using SIP, audio is transmitted over RTP after the network
port between Elastix and the endpoint / telephone is
negotiated.
17. Voice codification
Voice is adequately encoded for transmission.
After encoding, it is transmitted over RTP.
Encoding can serve to reduce the chance of error, as well as
to minimize the amount of bandwidth used.
To encode this data, an algorithm called a codec is used.
There are several different codecs, each has pros and cons.
18. G.711
One of the most widely used codecs of all time.
Comes from the ITU-T standard that was released in 1972.
Comes in two types called μ-Law (or u-law, primarily used in
Europe) and a-Law (used in the USA).
Advantage 1: Good voice quality since it uses 64kbit/s, that is a
sampling of 8 bits at 8kHz.
Advantage 2: It is already enabled in Elastix, it's not necessary to
pay for it.
Disadvantage: It uses a lot of bandwidth. It is not recommended
for connections with low bandwidth.
19. G.729
Also a very popular codec.
Licensed by Intel.
Advantage: It compresses voice very well without a significant
loss of quality.
Disadvantage 1: It is licensed per voice channel,
approximately USD$10 per channel.
Disadvantage 2: Voice quality is lower than than G.711
20. GSM
It is related to the cellular telephony standard GSM (Global
System for Mobile communications), hence its name.
It compresses voice very well, with a quality similar to cell
phones.
It is enabled by default in Elastix.
Good as an alternative to G.729, although its audio quality is
slightly inferior to G.729.
21. Protocol overload (1)
The different protocols increase the total amount of data
transmitted, in addition to the actual voice payload.
Headers are added for Ethernet, IP, TCP/UDP, RTP.
That makes the actual bandwidth for transmitting voice to be
more than just what is required for the codec.
For example, to transmit voice using G.711, in theory we should
use 64Kbps (the payload of the codec), but we are really using
95.2Kbps of BW.
In codecs with more compression, overload is even more
significant (percentage-wise).
23. Protocol overload (3)
– Let's calculate the bandwidth for G.711
• Bytes transmitted every 20ms
– 38 + 20 + 12 + 8 + 160 = 238 bytes
• Bits transmitted every 20ms
– 238 bytes * 8 bits/byte = 1904 bits
• Bits transmitted every second
– 1904 bits/frame * 50 frames/seg. = 95,200 bits/second =
95.2Kbps!
24. Comparing Codecs
Table for the actual bandwidth for common codecs (using
Ethernet):
Codec BW codec BW actual (Ethernet)
G.711 64 Kbps 95.2 Kbps
G.726* 32 Kbps 63.2 Kbps
iLBC* 15.2 Kbps 46.4 Kbps
GSM 13 Kbps 43.7 Kbps
G.729A 8 Kbps 39.2 Kbps
* For these codecs, multiple data rates may be used.