Diferencia entre revisiones de «Asterisks federados: Kamailio»

De Guifi.net - Wiki Hispano

(Página creada con '=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 p...')
 
(VPN guifi.net)
 
(No se muestran 4 ediciones intermedias realizadas por un usuario)
Línea 25: Línea 25:
  
 
==Ejemplo de ruta estática==
 
==Ejemplo de ruta estática==
 
+
<pre>
<code>
+
#RUTA a XXXXX
        #RUTA a XXXXX
+
if (uri =~ "^sip:70XXXX[0-9]+@") {
        if (uri =~ "^sip:70XXXX[0-9]+@") {
+
  #Buscamos el contact en la bbdd
          #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)");
          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");
          xlog("L_INFO", "RUTA XXXX $avp(s:micontact) \n");
+
  $ru = $avp(s:micontact);
          $ru = $avp(s:micontact);
+
  route(RELAY);
          route(RELAY);
+
}
        }
+
</pre>
 
+
</code>
+
  
 
=Asterisk en Kamailio=
 
=Asterisk en Kamailio=
Línea 46: Línea 44:
 
La instalación de Asterisk se ha realizado desde los repositorios oficiales
 
La instalación de Asterisk se ha realizado desde los repositorios oficiales
  
<code>
+
<pre>
 
apt-key adv --keyserver pgp.mit.edu --recv-keys 175E41DF
 
apt-key adv --keyserver pgp.mit.edu --recv-keys 175E41DF
 
 
nano /etc/apt/sources.list
 
nano /etc/apt/sources.list
  
Añadir las siguientes líneas a mano en el fichero:
+
#Añadir las siguientes líneas a mano en el fichero:
 
+
 
deb http://packages.asterisk.org/deb squeeze main
 
deb http://packages.asterisk.org/deb squeeze main
 
 
deb-src http://packages.asterisk.org/deb squeeze main
 
deb-src http://packages.asterisk.org/deb squeeze main
  
 
apt-get update
 
apt-get update
 
 
apt-get install asterisk
 
apt-get install asterisk
</code>
+
</pre>
  
 
=VPN guifi.net=
 
=VPN guifi.net=
Línea 66: Línea 60:
 
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.
 
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 wireless y otra pata dentro de guifi.net para que sea accesible sin necesidad de una conexión a Internet.
+
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=
 
=ToDo=

Última revisión de 12:52 15 ago 2013

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