Esta pagina se ve mejor con JavaScript habilitado

Introducción a VoIP

 ·  🎃 kr0m

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.

Si te ha gustado el artículo puedes invitarme a un RedBull aquí