2. ¿Qué es VoIP?
La voz sobre IP o VoIP consiste en transmitir voz sobre protocolo IP.
El concepto es muy amplio y existen muchas alternativas de
protocolos. Es una verdadera sopa de protocolos.
La voz se paquetiza para poder ser transmitida en una red IP.
El protocolo IP no fue diseñado específicamente para transportar voz.
4. Protocolo IP
Uno de los protocolos más conocidos.
Su nombre viene de Internet Protocol.
Este protocolo ofrece un servicio “sin garantías” también
llamado del “mejor esfuerzo”.
Los paquetes pueden llegar en desorden y son reordenados en
destino.
5. Protocolo IP
Inclusive paquetes se pueden perder en el viaje.
Este desorden y pérdida de paquetes puede afectar la calidad
de voz.
Pese a todo se han encontrado maneras inteligentes de
resolver estos problemas lo mejor posible.
6. Dirección IP (1)
Es un número único que identifica a un host conectado a una red IP.
Consta de 32 bits o 4 octetos. En la práctica se usa una notación
donde cada octeto se traduce a decimal y se separa con un punto. Un
ejemplo de dirección IP es 130.5.5.26
Una dirección IP está compuesta por dos partes, una identifica al host
y la otra identifica a la red a la cual pertenece dicho host.
Para encontrar estas partes se utiliza otro parámetro llamado
máscara de red.
7. Dirección IP (2)
La máscara de red es un número binario de 32 bits que también se
representa en una notación similar a una dirección IP.
Empieza con unos y continúa así hasta alcanzar un número de unos
igual a la porción de la dirección IP que corresponde a la red.
8. Dirección IP (3)
Por tanto en el ejemplo anterior obtenemos que la dirección IP
130.5.5.26 con máscara 255.255.255.0 pertenece a la red
130.5.5.0
La máscara anterior fue una máscara de 24 bits, ya que habían 24
”unos”.
Una vez conocida la red donde se encuentra el host que
queremos ubicar ya es más fácil encaminar los paquetes IP a su
destino.
Los ruteadores almacenan tablas de rutas o reglas de cómo ubicar
a otras redes.
9. Paquetes IP (1)
Un paquete IP contiene toda la información necesaria para llegar a
destino.
Se podría dividir en dos partes: cabecera y carga útil.
La cabecera es la que contiene la información referente al paquete.
Esta cabecera disminuye ligeramente la cantidad de información que
se puede transportar ya que ocupa espacio.
La carga útil puede encapsular a su vez otros protocolos como por
ejemplo UDP o TCP.
11. Direccionamiento IP
Para que los paquetes lleguen a destino es necesario de enrutadores
o ruteadores.
Los ruteadores son dispositivos con tablas de rutas.
La tabla de rutas consta de redes destino y para cada una la
dirección IP del ruteador que permite alcanzarlas.
El ruteador que nos permite salida a otras redes se denomina
gateway.
El paquete IP que llega al ruteador se examina para ver a qué red
pertenece, se elije la ruta adecuada y se lo envía para allá.
12. Protocolo TCP (1)
Es un protocolo de transporte.
Se monta sobre protocolo IP para controlar errores en la
transmisión y que los paquetes sean recibidos por las aplicaciones
en el mismo orden en que fueron enviados.
Para llevar a cabo su misión TCP necesita acarrear información
adicional que agrega peso al paquete.
Por eso no es muy recomendado para aplicaciones de tiempo real
como la voz.
13. Protocolo TCP (2)
Sin embargo sí puede servir para la señalización de voz.
TCP introduce el concepto de puerto.
Un puerto es una abstracción que nos permite relacionar flujos de
datos con servicios de red.
Por ejemplo, el puerto 80 corresponde al servicio de Web o
protocolo HTTP.
14. Protocolo UDP
UDP (User Datagram Protocol) es otro protocolo de transporte.
Divide la información en paquetes llamados datagramas.
Se diferencia con TCP en que a este protocolo no le importa si los
datos llegan con errores o inclusive si llegan o no.
Por lo mismo introduce poco peso extra al paquete IP por lo que lo
hace más idóneo para aplicaciones de tiempo real como la voz.
15. Señalización de VoIP
Al igual que con la telefonía tradicional es necesario señalizar las
llamadas VoIP.
Existen algunas alternativas aquí de protocolos de señalización como
SIP, H323, MGCP, IAX2, entre otros.
Los más populares sobre Asterisk son SIP e IAX.
Con respecto a SIP o H323, muchas personas se confunden y
piensan que la voz se transmite por este protocolo pero es sólo la
señalización.
16. Transporte de VoIP
El transporte de la voz se lleva a cabo por el protocolo RTP.
RTP significa Realtime Transport Protocol.
El protocolo RTP es quien realmente transporta el audio codificado.
RTP se transporta sobre UDP.
En SIP el audio se transmite por RTP una vez que se haya negociado
el puerto de red entre Elastix y el endpoint o teléfono.
18. Codificación de la voz
Para transmitir la voz adecuadamente se la codifica.
Luego de codificarla que se la monta sobre RTP.
La codificación puede servir para disminuir la probabilidad de error o
también para minimizar el ancho de banda utilizado.
Para codificar se utiliza un codec, que es un algoritmo.
Existen diferentes codecs. Cada uno con sus pros y contras.
19. G.711
Uno de los codecs más usados de todos los tiempos.
Proviene de un estándar ITU-T que fue liberado en 1972.
Viene en dos sabores llamados μ-Law (usado en Europa) y a-Law
(usado en USA).
Ventaja 1: Buena calidad de voz ya que usa 64kbit/s, es decir un
muestreo de 8 bits a 8kHz.
Ventaja 2: Ya viene habilitado en Elastix, no hay que pagar por él.
Desventaja: Ocupa mucho ancho de banda. No es recomendable
para conexiones con poco BW.
20. G.729
También un codec muy popular.
Licenciado por Intel.
Ventajas: Una muy grande y es que comprime muy bien la voz sin
deterioro significativo de la calidad.
Desventaja 1: Se licencia por canal de voz. Aproximadamente
USD$10 por canal.
Desventaja 2: Pese a que no deteriora significativamente la voz la
calidad es menor que si se usa G.711.
21. GSM
También bueno comprimiendo voz.
Está relacionado con el estándar de telefonía celular GSM(Global
System for Mobile communications), de allí su nombre.
Comprime muy bien la voz con una calidad similar a celular.
Viene habilitado por defecto en Elastix.
Bueno como alternativa a G.729 aunque su calidad de audio es
ligeramente inferior a G.729.
22. Sobrecarga de protocolos (1)
Los diversos protocolos envian data adicional a la voz.
Tenemos a Ethernet, IP, UDP, RTP.
Eso hace que el ancho de banda real para transmitir voz sea mayor al
del codec.
Por ejemplo, para transmitir voz usando G.711 en teoría deberíamos
usar 64Kbps (peso del codec) pero en realidad usamos 95.2Kbps de
BW.
En otros codecs más compresores la sobrecarga es incluso más
significativa (porcentualmente hablando).
24. Sobrecarga de protocolos (3)
Calculemos el ancho de banda para G.711
Bytes transmitidos cada 20ms
38 + 20 + 12 + 8 + 160 = 238 bytes
Bits transmitidos cada 20ms
238 bytes * 8 bits/byte = 1904 bits
Bits transmitidos cada segundo
1904 bits/frame * 50 frames/seg. = 95,200 bits/segundo = 95.2Kbps!
25. Comparativa Codecs
Tabla de ancho de banda real para algunos codecs (usando
Ethernet):
Codec BW codec BW real (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
* Para estos códec, otros anchos de banda también pueden ser usados.