Muchos de vosotros ya tendréis una idea de lo que es la VoIP, pero en este artículo vamos a aclarar ciertos términos que nos ayudarán a comprender en un futuro conceptos mas complejos.
CODECS:
Para empezar la voz se digitaliza mediante cierto algoritmo, este algoritmo es lo que se llama codec, dependiendo del codec elegido obtendremos cierta calidad de audio y cierta compresión, podemos ver el AB utilizado por los codecs mas comunes:
Audio | AB | Video | AB |
---|---|---|---|
GSM | 13 kbps | H261 | Entre 40 Kbits/s y 2 Mbits/s |
G711 | 64 kbps | H263 | Eesde menos de 64 Kbits/s hasta 583.9 Mbits/s sin compresión |
G721 | 32 kbps | H263p | Desde menos de 64 Kbits/s hasta 583.9 Mbits/s sin compresión |
G722 | 64 kbps | H264 | Entre 64 Kbits/s y 960 Mbit/s) |
G722.1 | 24/32 kbps | G723.1 | 5.6/6.3 kbps |
G723 | 24/40 kbps | ||
G726 | 16/24/32/40 kbps | ||
G727 | Variable | ||
G728 | 16 kbps | ||
G729 | 8 kbps | ||
LPC10 | 2.4 kbps | ||
Speex | 8/16/32 kbps | ||
iLBC | 8 kbps | ||
DoD CELP | 4.8 kbps | ||
EVRC | 9.6/4.8/1.2 kbps | ||
DVI | 32 kbps | ||
L16 | 128 kbps | ||
SIP:
SIP(Session Initiation Protocol) es un sistema de señalización, este se emplea en la VoIP para iniciar llamadas, colgar ….
SIP es un protocolo en TXT plano muy parecido a HTTP, gracias a esto podemos “grepear” ciertos patrones en tiempo real mediante ngrep, una herramienta que nos será muy útil mas adelante.
SDP:
SDP(Session Description Protocol) es una parte del mensage SIP donde se indica que codecs se van a emplear y en que orden de preferencia.
RTP:
RTP(Real Time Protocol) es el flujo de datos que contiene la voz digitalizada, mediante SIP hacemos sonar el destino y gestionamos la llamada y mediante RTP hacemos llegar el audio.
Cabe destacar que no es obligatorio que el flujo RTP pase por nuestra centralita ya que se trata de un flujo de datos totalmente aislado del SIP, de este modo el RTP puede fluir directamente entre los dos clientes.
RTCP:
RTCP(Real Time Control Protocol) es un protocolo diseñado para controlar la calidad del flujo RTP, se comprueba jitter, latencias…. mediante tshark seremos capaces de analizar estos parámetros capturando el tráfico RTCP, RTP.
DID o DDI:
Número público al que se puede llamar y la llamada llega a nuestra centralita.
PSTN:
PSTN(Public Switched Telephony Netwrok) la red de telefonía de toda la vida.
FXO:
FXO(Foreign Exchange Office), interfaz de un terminal analógico que espera señalización por parte de la centralita.
FXS:
FXS(Foreing Exchange Station), interfaz de la centralita que proporciona señalización a un terminal analógico.
WARNING!!!!: Si se conecta la interfaz FXS a la PSTN la tarjeta resultará dañada!!!
DTMF:
DTMF(Dual-tone multi-frequency signaling), sistema de tonos utilizado en sistemas telefónicos analógicos para el envío de tonos.
IVR:
IVR(Interactive voice response), sistema atumático de recepción de llamadas el cual mediante la recepción de tonos DTMF es capaz de tomar decisiones
Enrutador SIP:
Dispositivos altamente especializados en el enrutamiento de tráfico SIP.
Multimedia Server:
Aquí debemos hacer una distinción entre enrutadores SIP como Kamailio, OpenSIPS, OpenSER y servidores multimedia como Asterisk, SEMS, los primeros están especializados en enrutar tráfico SIP en base a un fichero de routing mientras que los servidores multimedia ofrecen servicios como contestadores automáticos, IVRs, buzón de voz, etc
Los mensajes básicos enviados en un ambiente SIP son:
- INVITE –> Inicio llamada
- ACK –> Confirmación inicio de la llamada
- BYE –> Fin de la llamada
- CANCEL –> Rechazo inicio de llamada
- REGISTER –> Registro de un cliente en el servidor
- OPTIONS –> Solicitud de las opciones soportadas por el servidor
Respuestas más importantes.
- 1XX mensajes de información (100 Trying, 180 Ringing, 183 In progress).
- 2XX operación realizada con éxito (200 OK).
- 3XX redicrección de la llamada (302 Moved temporarily movido, 305 use proxy).
- 4XX error (403 Prohibido).
- 5XX error de servidor (500 Error interno del servidor, 501 No implementado).
- 6XX fallo global (606 No aceptable).
Latencia:
Tiempo que está el paquete viajando por la red
Jitter:
Varianza de la latencia
Un concepto importante en cuanto al REGISTER es que este solo se utiliza si se van a recibir llamadas, es decir el proceso de REGISTER es totalmente independiente del proceso de INVITE, esto nos permite realizar llamadas SIN estar registrados o recibir llamadas SIN poder iniciarlas, este es un error muy típico en la gente que utiliza Asterisk pero no sabe como funciona el protocolo SIP.
Otro factor muy importante es la QoS, ya que si hay jitter la calidad de la conversación puede verse gravemente afectada, además tendremos que asegurarnos de que los NATs no estén bloqueandonos tráfico, es muy común tener audio en un solo sentido, esto es debido a que quien inició la conversación puede enviar tráfcio pero no recibirlo porque el flujo RTP no está RELATED en las reglas del firewall del router.
Creo que con este artículo queda concluido el capitulo de iniciación a la VoIP.