Asterisks federados: Kamailio
De Guifi.net - Wiki Hispano
Contenido
Qué es Kamailio
Instalación de Kamailio
Instalación en una distribución Debian
El paquete kamailio y manuales de instalación para una distribución Debian la podemos encontrar en el siguiente enlace. http://www.kamailio.org/dokuwiki/doku.php/packages:debs
El proceso de instalación es muy similar al que realizaríamos con cualquier paquete de software no distribuido en los repositorios oficiales.
Descargamos y añadimos la clave GPG a nuestra lista de claves de confianza APT:
# wget http://deb.kamailio.org/kamailiodebkey.gpg # apt-key add kamailiodebkey.gpg
Instalamos desde línea de comandos:
# apt-get install kamailio
Rutas en Kamailio
Para que Kamailio pueda saber a dónde encaminar las llamadas cuando salen de un servidor Asterisk se escriben rutas estáticas que le indican qué rangos de numeración existen detrás de cada "contact". De esta forma cuando marcamos un número que está fuera de nuestra PABX Asterisk esta llamada llega a Kamailio y este es quien consultando las rutas de las que dispone encamina la llamada a su terminación en el servidor Asterisk correspondiente.
Ejemplo de ruta estática
#RUTA a XXXXX if (uri =~ "^sip:70XXXX[0-9]+@") { #Buscamos el contact en la bbdd avp_db_query("SELECT IF(received IS NULL, CONCAT('sip:$rU@',MID(contact, INSTR(contact,'@')+1)), CONCAT('sip:$rU@',MID(received,5)) ) contact FROM location WHERE username='kamailiomad1' limit 1", "$avp(s:micontact)"); xlog("L_INFO", "RUTA XXXX $avp(s:micontact) \n"); $ru = $avp(s:micontact); route(RELAY); }
Asterisk en Kamailio
Para la gestión de los media (sonidos, voicemail) se ha instalado un servidor Asterisk v1.8 dentro de Kamailio que será quien gestionará todo el media (locuciones) en caso de que la llamada no se pueda cursa, el número marcado sea incorrecto, etc...
Instalación de Asterisk en Kamailio
La instalación de Asterisk se ha realizado desde los repositorios oficiales
apt-key adv --keyserver pgp.mit.edu --recv-keys 175E41DF nano /etc/apt/sources.list #Añadir las siguientes líneas a mano en el fichero: deb http://packages.asterisk.org/deb squeeze main deb-src http://packages.asterisk.org/deb squeeze main apt-get update apt-get install asterisk
VPN guifi.net
El servidor kamailio (sip.guifi.net) tiene configurado un túnel VPN contra un servidor dentro de guifi.net Castelló para que las llamadas no tengan que salir desde los servidores Asterisk directamente contra Internet, de esta forma los usuarios que sólo tengan configuradas sus PABX Asterisk sin salida a internet podrán salir hacia Kamailio por el túnel VPN.
De la misma forma, se pretende que en un futuro dicha máquina tenga dos "patas" una dentro de Internet para las zonas guifi.net que no tengan conexión con la troncal inalámbrica y otra pata dentro de guifi.net para que sea accesible sin necesidad de una conexión a Internet.
ToDo
- Configurar todas las rutas de Kamailiio en base de datos
- Montar un webservice para que desde la web de guifi.net se pueda dar de alta el usuario del trunk SIP automáticamente al dar de alta una PABX Asterisk en Drupal.
- Posibilidad de marcar por SIP URI
- Mantener en BBDD la dupla <usuario>@guifi.net ==> extensión (70XXYYZZZ) para que podamos recibir llamadas al usuario <usuario>@guifi.net y suene en la extensión de nuestro Asterisk.