VoIP
VoIP, puerto 5062, (esta en capa aplicación) se divide en dos partes, en protocolos (protocolos son capa transporte):
Establecimiento de llamada con protocolos H.323 o SIP (Session Initiation Protocol), esto se hace mediante TCP ya que nos intresa que sea segura la llamada.
Combersación con los protocolos RTP (Real-Time Protocol) RTCP (Real-Time Control Protocol) estos llegan por UDP ya que lo que queremos es que sea rápida y no importa que se pueda perder algo de información.
WIRESHARK
Vamos a ver (sniffear) la llamada con wireshark
Aquí podemos ver la gráfica de la llamada y la podríamos reproducir para escuchar que hemos dicho
CUENTA, solución
De momento solo nos hemos llamado de forma simple y "sin sentido" poniendo directamente las IPs de cada uno, lo cual no es muy práctico ya que no hay nada que regule las llamadas y nos tendríamos que acordar siempre de las IPs (un caos). La solución a esto es una PBX en la cual nos registraremos con una cuenta SIP que nos pedirá unos dato (como una cuenta de gmail): Dominio (la IP de nuestra PBX) Numero de usuario (el numero de teléfono que tendríamos) una Clave (la que queramos es nuestra clave de la cuenta) y un Usuario (el nombre que nos pongamos, el que saldrá cunado llamamos). Esta cuenta será la que introduzcamos en la PBX (como puede ser elastix por ejemplo) y nos registrará en la misma y ya podremos llamar y que nos llamen.
Seria algo así, dependiendo de la página cambia la interfaz pero el concepto es lo mismo.
Aqui podemos ver una llamada con PBX (centralita), cada uno tiene su dirección IP, en rojo vemos el establecimiento de llamada el cual se realiza con el protocolo SIP (session iniciation protocol) donde en ningún momento entran en contacto directo los shoftphones, y en amarillo representamos la combersación realizada mediante el protocolo RTP (real time protocol) en el cual también estarán los codecs (co-dificar dec-odificar) que se encargarán de codificar las voces en paquetes digitales que se embiarán y decodificar esos mismos para que podamos escucharlos.
En este caso la cuenta seria así:
NOMBRE-pepito(ejemplo)
DOMINIO-192.168.0.55
NUMERO-213(ejemplo)
USUARIO-pepito(ejemplo)
CLAVE-***(la que sea)
LLAMADA
1 El teléfono llamánte envía un "INVITE"
2 El teléfono al que se llama envia una respuesta informatica "100-TRYING"
3 Cuando el teléfono al que se llama empieza a sonar una respuesta "180-RUNNING"
4 Cuándo el receptor levanta el teléfono el teléfono al que se llama envía una respuesta "200-OK"
5 El teléfono llamante responde con un "ACK" confirmado
6 Ahora la conversación es transmitida como datos envía RTP
7 Cuándo la persona a la que se llama cuelga, se envía un "BYE"
8 El teléfono llamante confirma el cuelgue de la llamada
UA (usuari agent)
Cuando conectamos un softphone el Agente Usuario SIP que está en el terminal envia una petición REGISTER a un Servidor de Registro, informando A QUE DIRECIÓN FÍSICA TIENE QUE RELACIONAR LA DIRECCIÓN LÓGICA (esto se denomina Binding)
Binding: relacionar la dirección lógica (sera un usuario y dominio usuario@dominio) con la física (seria la IP que tengamos en ese momento, no tiene que ser fija, aunque podría serlo, dependerá de la red en la que estemos conectados.
PROXY: servidor intermediario, en este caso la PBX estaría en el proxy y este es el que se encargaría del binding
Establecimiento de llamada con protocolos H.323 o SIP (Session Initiation Protocol), esto se hace mediante TCP ya que nos intresa que sea segura la llamada.
Combersación con los protocolos RTP (Real-Time Protocol) RTCP (Real-Time Control Protocol) estos llegan por UDP ya que lo que queremos es que sea rápida y no importa que se pueda perder algo de información.
WIRESHARK
Vamos a ver (sniffear) la llamada con wireshark
Vemos los paquetes TCP y UDP, ahora pondremos el filtro para ver claramente RTP
CUENTA, solución
De momento solo nos hemos llamado de forma simple y "sin sentido" poniendo directamente las IPs de cada uno, lo cual no es muy práctico ya que no hay nada que regule las llamadas y nos tendríamos que acordar siempre de las IPs (un caos). La solución a esto es una PBX en la cual nos registraremos con una cuenta SIP que nos pedirá unos dato (como una cuenta de gmail): Dominio (la IP de nuestra PBX) Numero de usuario (el numero de teléfono que tendríamos) una Clave (la que queramos es nuestra clave de la cuenta) y un Usuario (el nombre que nos pongamos, el que saldrá cunado llamamos). Esta cuenta será la que introduzcamos en la PBX (como puede ser elastix por ejemplo) y nos registrará en la misma y ya podremos llamar y que nos llamen.
Seria algo así, dependiendo de la página cambia la interfaz pero el concepto es lo mismo.
Aqui podemos ver una llamada con PBX (centralita), cada uno tiene su dirección IP, en rojo vemos el establecimiento de llamada el cual se realiza con el protocolo SIP (session iniciation protocol) donde en ningún momento entran en contacto directo los shoftphones, y en amarillo representamos la combersación realizada mediante el protocolo RTP (real time protocol) en el cual también estarán los codecs (co-dificar dec-odificar) que se encargarán de codificar las voces en paquetes digitales que se embiarán y decodificar esos mismos para que podamos escucharlos.
En este caso la cuenta seria así:
NOMBRE-pepito(ejemplo)
DOMINIO-192.168.0.55
NUMERO-213(ejemplo)
USUARIO-pepito(ejemplo)
CLAVE-***(la que sea)
LLAMADA
1 El teléfono llamánte envía un "INVITE"
2 El teléfono al que se llama envia una respuesta informatica "100-TRYING"
3 Cuando el teléfono al que se llama empieza a sonar una respuesta "180-RUNNING"
4 Cuándo el receptor levanta el teléfono el teléfono al que se llama envía una respuesta "200-OK"
5 El teléfono llamante responde con un "ACK" confirmado
6 Ahora la conversación es transmitida como datos envía RTP
7 Cuándo la persona a la que se llama cuelga, se envía un "BYE"
8 El teléfono llamante confirma el cuelgue de la llamada
UA (usuari agent)
Cuando conectamos un softphone el Agente Usuario SIP que está en el terminal envia una petición REGISTER a un Servidor de Registro, informando A QUE DIRECIÓN FÍSICA TIENE QUE RELACIONAR LA DIRECCIÓN LÓGICA (esto se denomina Binding)
Binding: relacionar la dirección lógica (sera un usuario y dominio usuario@dominio) con la física (seria la IP que tengamos en ese momento, no tiene que ser fija, aunque podría serlo, dependerá de la red en la que estemos conectados.
PROXY: servidor intermediario, en este caso la PBX estaría en el proxy y este es el que se encargaría del binding

Comentarios
Publicar un comentario