22 de Junio, 2004

Voz sobre IP: probando SIP

Hace mucho mucho tiempo, en una galaxia muy lejana, probábamos H.323 como protocolo para videoconferencia en elxwifi.

No iba del todo mal, aunque era (¡es!) una pesadilla para los cortafuegos, y algunos usamos NAT para entrar en la red inalámbrica. El protocolo resulta inmanejable, la verdad, y eso unido a que la implementación disponible para nuestros sistemas operativos deja un poco que desear, abandonamos la idea.

¿Qué es SIP? SIP es Session Initiation Protocol, otro protocolo para videoconferencia, telefonía, presencia, notificación y mensajería instantananea que se ha trabajado el IETF.

Hay gran cantidad de clientes (también llamados UA, user agent), incluyendo un par de opciones calificables como Software Libre: Linphone y Vovida.

Estoy probando el cliente de Vovida, SIPSet.

Descargamos el fuente (sip-1.5.0), lo desempaquetamos y lo compilamos:

$ tar xvfz sip-1.5.0.tar.gz
$ cd sip-1.5.0
$ make sipset

Podríamos instalarlo. Confieso que no lo he hecho porque el paquete no está excesivamente bien documentado. En su lugar voy a ejecutar la aplicación desde su localización actual. Para ello hacemos:

$ cd sip/gua/gui/src
$ ln -s ../../bin.debug.Linux.i686/gua gua

Así estamos en el directorio donde se encuentra el frontend en GTK y enlazamos el UA 'real', que es gua, en dicho directorio para que todo funcione. Entonces ejecutamos SIPSet con:

$ ./sipset

El modo de funcionamiento de todos los clientes SIP es más o menos el mismo. Podemos hacer/recibir llamadas directamente a nuestra IP, o registrarnos en un proxy que hace las veces de centralita.

iptel tiene un servicio gratuíto de proxy, aunque no lo he probado. Por ahora voy a ver como va el tema en llamadas p2p.

SIPSet tiene un manual bastante claro. En Settings > Basic Configuration solo rellenaremos User Name, dejando el resto en blanco para que no intente conectar a un proxy. En Settings > Advanced Configuration no hay que tocar nada si somos un extremo con IP pública.

Ahora viene la parte traviesa: superar el cortafuegos.

Ahora sí entramos en Settings > Advanced Configuration y miramos los valores de Media. Apuntamos los puertos RTP (máximo y mínimo, 10000-10999 por defecto) e introducimos en NAT IP la IP que tiene nuestro cortafuegos en internet.

Ahora tenemos que redirigir varios puertos de nuestro cortafuegos a la máquina corriendo SIPSet: el puerto 5060 UDP (o el TCP, imagino, si en Settings > Advanced Configuration cambiamos el transporte SIP) y el rango de puertos TCP que hemos anotado de nuestra configuración de Media (habitualmente del 10000 a 10999).

Con esto ya deberíamos poder hacer y recibir llamadas.

Como vemos es bastante sencillo (gracias a que este cliente tiene soporte para NAT), y si alguien ha tratado un poco con H.323 estará completamente de acuerdo :D.

Tendré mi SIPSet funcionando en callme@81.203.204.89. Si alguien quiere probar, ya sabe... que me pegue un toque :P.

He probado a hacer llamadas y funciona. Creo que en los dos sentidos. Solo me falta ver si soy capaz de recibir.

Actualización: Me he registrado una cuenta sip:jjm@iptel.org, pero aun no se si he dado en el clavo con lo de recibir llamadas :(.

Anotación por Juan J. Martínez.

Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.