Siguiendo la onda de experimentación veraniega que vengo haciendo, hoy he probado la rama de Asterisk con soporte para SIP sobre TCP/TLS de la que ya hablé.
Para probarlo solo tenéis que descargar el branch correspondiente ejecutando:
#svn co http://svn.digium.com/svn/asterisk/team/bbryant/sip-tcptls asterisk-siptcptls
Una vez descargado:
#cd asterisk-siptcptls
#./configure
#make
#make install
Para hacer las pruebas he utilizado el softphone eyeBeam para Windows y el Twinkle para GNU/LInux. El eyeBeam si tiene soporte para SIP sobre TCP, mientras que Twinkle no.
Las pruebas que hice fueron las siguientes, con el resultado a continuación:
- Prueba de registro. Los dos se registran correctamente.
- Prueba de Playback. Los dos reciben audio correctamente.
- Test de Echo. Los dos envian/reciben audio correctamente.
- Llamadas entre si. Muchos problemas. (Sobre todo error 481 – «Call Transaction does not exist»). Segfault.
Conclusión
O mis pruebas no fueron las adecuadas, o actualmente el soporte de SIP sobre TCP en Asterisk deja bastante que desear. Esperemos que para la 1.6 se pongan las pilas y esto funcione a las mil maravillas. 😉
Si de todas formas alguien lo quiere probar, solo tiene que poner algo así en el sip.conf:
[general]
context=default
bindport=5060
bindaddr=0.0.0.0
tcpenable=yes
tcpbindaddr=0.0.0.0
tcpbindport=5060
pedantic=yes
disallow=all
allow=alaw
alloe=g729
language=es[200]
type=friend
secret=1234
host=dynamic
transport=udp[201]
type=friend
secret=1234
host=dynamic
transport=tcp