Conceptos Clave de Asterisk: SIP e IAX2 - Configuración y Funcionamiento
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 7,76 KB
Peers, Users y Friends en Asterisk
- Asterisk hace una llamada a un peer.
- Asterisk recibe una llamada de un user.
- Un friend es ambas cosas.
El concepto de user está en desuso. Se utilizan peers y friends.
Proceso de Registro en Asterisk
Un dispositivo informa a Asterisk sobre su ubicación (dirección IP y puerto). Solo es necesario registrarse con Asterisk si este no sabe dónde está el dispositivo (host=dynamic
).
Autenticación en Asterisk
Es necesaria para realizar una llamada. Pueden realizarse llamadas sin registrarse, pero no sin autenticarse.
Puertos y Protocolos en Asterisk
- En IAX2, todo viaja por el mismo puerto: 4569 UDP.
- En SIP, la señalización va por el puerto 5060 UDP y los streams de audio y video con el protocolo RTP por puertos aleatorios (definidos en
rtp.conf
) UDP.
Protocolo SIP (Session Initiation Protocol)
Es un protocolo de señalización legible por el ser humano, similar a HTTP.
Principales Elementos de SIP
- User Agent (Usuario)
- Registrar
- SIP Proxy
Capacidades de SIP
- Localización del usuario.
- Disponibilidad del usuario: determinación de la voluntad del receptor de la llamada de participar en las comunicaciones.
- Capacidad del usuario: determinación del medio y de sus parámetros.
Proxy Server en SIP
Aplicación intermedia que actúa tanto como servidor y cliente, generando mensajes SIP a nombre del cliente que generó el mensaje original. Los mensajes pueden ser respondidos o encaminados a otros servidores.
Inbound Proxy
Permite independizar al usuario del dispositivo que utiliza y de su localización.
Outbound Proxy
Simplifica la administración de los usuarios de un dominio, aplica políticas, tarifica, etc.
Registrar Server en SIP
Es un servidor que acepta mensajes de tipo REGISTER
.
Direcciones SIP
Para llamadas entre teléfonos IP o softphones. Utiliza registros SRV en servidores DNS. Similar a las direcciones de correo: sip:[email protected]
Protocolo IAX2 (Inter Asterisk eXchange v2)
Protocolo exclusivo para enlaces entre Asterisk, aunque hay algunos hardphones IAX2 (Atcom). Los streams de audio y la señalización viajan por el mismo puerto: 4569 UDP.
Fases de una Llamada IAX2
- Establecimiento de la llamada: El terminal A inicia una conexión y manda un mensaje new. El terminal llamado responde con un accept y el llamante le responde con un Ack. A continuación, el terminal llamado da las señales de ringing y el llamante contesta con un ack para confirmar la recepción del mensaje. Por último, el llamado acepta la llamada con un answer y el llamante confirma ese mensaje.
- Flujo de datos o flujo de audio: Se mandan los frames M y F en ambos sentidos con la información vocal. Los frames M son mini-frames que contienen solo una cabecera de 4 bytes para reducir el uso en el ancho de banda. Los frames F son frames completos que incluyen información de sincronización. En IAX, este flujo utiliza el mismo protocolo UDP que usan los mensajes de señalización, evitando problemas de NAT.
- Liberación de la llamada o desconexión: La liberación de la conexión es tan sencilla como enviar un mensaje de hangup y confirmar dicho mensaje.
IAX2 Trunking
Es posible enviar varias conversaciones por el mismo flujo, lo cual supone un importante ahorro de ancho de banda (overhead de la capas IP y transporte UDP).
Encriptación en IAX2
AES 128.
Autenticación en IAX2
- MD5
- Texto en claro (plaintext)
- RSA
Diferencias Principales entre IAX2 y SIP
Ancho de Banda
IAX2 utiliza un menor ancho de banda que SIP, ya que los mensajes son codificados de forma binaria, mientras que en SIP son mensajes de texto. Asimismo, IAX2 intenta reducir al máximo la información de las cabeceras de los mensajes, reduciendo también el ancho de banda.
NAT
En IAX2, la señalización y los datos viajan conjuntamente, con lo cual se evitan los problemas de NAT que frecuentemente aparecen en SIP.
Estandarización y Uso
IAX2 es un protocolo pensado para VoIP y transmisión de video, y presenta funcionalidades interesantes como la posibilidad de enviar o recibir planes de marcado (dialplans) que resultan muy interesantes al usarlo conjuntamente con servidores Asterisk. SIP es un protocolo de propósito general y podría transmitir sin dificultad cualquier información, no solo audio o video.
Utilización de Puertos
IAX2 utiliza un único puerto (4569 UDP) para señalización y datos, mientras que SIP utiliza el puerto 5060 UDP para señalización y puertos aleatorios para RTP (audio y video).
Flujo de Audio al Utilizar un Servidor
IAX2 multiplexa la señalización y el flujo de media de múltiples canales sobre una asociación única en UDP, optimizando el uso del ancho de banda.
Otras Funcionalidades
IAX2 ofrece funcionalidades específicas para VoIP como el envío de dialplans, mientras que SIP es un protocolo más general.
Operación IAX2
IAX2 es un protocolo para medios y señalización peer to peer. Multiplexa la señalización y el flujo de media de múltiples canales sobre una asociación única en UDP entre 2 hosts en internet.
Ancho de Banda en IAX2
El uso de ancho de banda es influenciado por muchas variables, como el número de llamadas simultáneas, tipo de protocolo de capa 2, ser half o full dúplex.
NAT (Network Address Translation)
El auténtico enemigo de SIP es el NAT. El supuesto agotamiento de los rangos de direcciones IP utilizables en Internet ha obligado a utilizar direcciones IP privadas dentro de las redes de las empresas y usuarios domésticos.
Tipos de NAT
- Full Cone NAT: Todas las peticiones de la misma IP y puerto internas son mapeadas a la misma IP y puerto externas. Una máquina externa puede mandar un paquete a una interna haciéndolo a la dirección externa mapeada.
- Restricted Cone NAT: Todas las peticiones de la misma IP y puerto internas son mapeadas a la misma IP y puerto externas.
- NAT Simétrico: Todas las peticiones de la misma dirección IP interna y puerto a un destino específico son mapeados a una IP externa y puerto único.
Soluciones para Problemas de NAT
En el Servidor
- NAT Helpers.
- Keep-alives.
- Media Proxies.
En los Equipos de Comunicación IP
- VPN.
- Mapeo de puertos.
En el Cliente
- Keep-alives.
- STUN.
STUN (Simple Traversal of UDP through NAT)
Permite a clientes detrás de NAT averiguar su IP pública, tipo de NAT y puerto externo.
Funcionamiento de STUN
Protocolo de red que permite a clientes detrás de NAT averiguar su IP pública, tipo de NAT y puerto exterior.
Comprobación de Errores en la Configuración de Asterisk
- Verificar la dirección IP del Servidor Asterisk.
- Comprobar que los clientes realizan ping al Servidor Asterisk.