Según la web: http://voip.megawan.com.ar/doku.php/sip
“El protocolo de iniciación de sesión (SIP) es un protocolo de señalización para crear, modificar, y terminar sesiones con unos o más participantes. Estas sesiones incluyen llamadas telefónicas por Internet, distribución de datos multimedia, y conferencias multimedia.”
Este protocolo es el comúnmente utilizado en las comunicaciones VoIP pero presenta problemas con el NAT.
Según la web: http://es.wikipedia.org/wiki/NAT
“NAT (Network Address Translation - Traducción de Dirección de Red) es un mecanismo utilizado por routers IP para intercambiar paquetes entre dos redes que se asignan mutuamente direcciones incompatibles. Consiste en convertir en tiempo real las direcciones utilizadas en los paquetes transportados. También es necesario editar los paquetes para permitir la operación de protocolos que incluyen información de direcciones dentro de la conversación del protocolo.”
En una conversación realizada el día 2 de septiembre de 2008 con Roberto de Oliveira, Tutor profesional, explico que el problema que presenta el protocolo SIP se debe a que a la hora de hacer la conexión con otra entidad (teléfono IP, softphone o servidor asterisk) envía cada conversación por puertos distintos.
Si el servidor y los clientes están en una misma red, este problema no es de mucha importancia debido a que los datos no tendrían que pasar por un router ni por un firewall, en cambio, si por el contrario la llamada tiene que salir hacia otra red es justamente ahí donde se presenta el problema, ya que por lo general nos topamos con un firewall, el cual un filtro que controla todas las comunicaciones que pasan de una red a la otra y en función de lo que sean permite o deniega su paso, y como el SIP envía las conversaciones por distintos puertos lo mas seguro es que nos podamos conseguir con un puerto bloqueado.
Al buscar la solución para este problema nos encontramos con el protocolo IAX.
Según la web http://es.wikipedia.org/wiki/IAX2
“IAX2 utiliza un único puerto UDP, generalmente el 4569, para comunicaciones entre puntos finales (terminales VoIP) para señalización y datos. El tráfico de voz es transmitido in-band, lo que hace a IAX2 un protocolo casi transparente a los cortafuegos y realmente eficaz para trabajar dentro de redes internas. En esto se diferencia de SIP, que utiliza una cadena RTP out-of-band para entregar la información.”
Al utilizar un único puerto y transmitir el trafico de voz in-band hace del protocolo IAX la mejor vía para realizar las transmisiones de VoIP, tanto en conexiones Servidor-Servidor como en conexiones Servidor-Cliente. La gran desventaja es que la mayoría de los teléfonos IP utilizan protocolo SIP, en estos momentos son pocos los equipos que usan IAX.