Asterisks federados: Kamailio

De Guifi.net - Wiki Hispano

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.

Documentacion

Herramientas personales