Aunque la instalación inicial la voy a realizar sobre un portátil con Ubuntu, los paquetes serán los mismos o reconocibles por los paquetes necesarios para Debian. Lo instalo primero sobre el portátil a modo de práctica para después poder realizar una instalación más límpia en el sistema definitivo. Éste será un servidor en una DMZ accesible permanentemente desde Internet, la red de usuarios y al gateway conectado al PRI.
Instalo los paquetes necesarios con el comando:
sudo apt-get install git-core gcc flex bison make
Para poder compilar los módulos son también necesarios los paquetes:
sudo apt-get install libmysqlclient-dev libpq-dev libexpat1-dev libxml2-dev libradiusclient-ng-dev libcurl4-gnutls-dev libconfuse-dev libpcre3-dev
De estos gcc y make ya se encuentran instalados. Y el resto requiere una serie de paquetes dependientes que se instalan con ellos.
Creo el directorio donde almacenaré el checkout del repositorio GIT:
sudo mkdir -p /usr/local/src/Kamailio
Inicializo el repositorio local y realizo el checkout:
vicente@MBP-lnx:/usr/local/src/sip-router.org$ sudo git clone --depth 1 git://git.sip-router.org/sip-router Kamailio
Initialized empty Git repository in /usr/local/src/sip-router.org/sip-router/.git/
remote: Counting objects: 16343, done.
remote: Compressing objects: 100% (10953/10953), done.
remote: Total 16343 (delta 10858), reused 8503 (delta 5122)
Receiving objects: 100% (16343/16343), 10.78 MiB | 321 KiB/s, done.
Resolving deltas: 100% (10858/10858), done.
vicente@MBP-lnx:/usr/local/src/sip-router.org$ cd Kamailio
vicente@MBP-lnx:/usr/local/src/sip-router.org/sip-router$ sudo git checkout -b kamailio_3.0 origin/kamailio_3.0
Branch kamailio_3.0 set up to track remote branch kamailio_3.0 from origin.
Switched to a new branch 'kamailio_3.0'
Configuro el make y añado el módulo para mysql, RADIUS, postgres, jabber y otros:
vicente@MBP-lnx:/usr/local/src/Kamailio-3.0.0/Kamailio$ sudo make cfg
normal Makefile.defs exec
target architecture
making config...
rm -f modules.lst
make modules.lst
Makefile.defs defs skipped
make[1]: se ingresa al directorio `/usr/local/src/Kamailio-3.0.0/Kamailio'
saving modules list...
make[1]: se sale del directorio `/usr/local/src/Kamailio-3.0.0/Kamailio'
Edito el fichero modules.lst y elimino del listado en la variable exclude_modules mysql, db_mysql, postgres, db_postgres, xml_rpc, lcr, dialplan, peering, carrierroute, auth_radius, misc_radius, acc_radius, jabber. Xml_rpc creo que es necesario para la comunicación con siremis.
make all y make install
Se copian los ejecutables kamailio, kamctl, kamdbctl, sercmd en el directorio /usr/local/sbin.
Para preparar la base de datos MySQL edito el fichero /usr/local/etc/kamailio/kamctlrc y elimino el comentario de la línea DBENGINE=MYSQL. También cambio el dominio y quito el comentario a SIP_DOMAIN=wipzona.es. Una vez creada la base de datos y cambiados los password de los usuarios con permisos de lectura y lectura/escritura, hay que volver a editar este fichero para modificarlos.
Creo la base de datos con el comando /usr/local/sbin/kamdbctl create el script hace una serie de preguntas sobre si crear las tablas para una serie de módulos. Le respondo que "y" a todas.
La base de datos que crea se llama openser por razones históricas. Utilizo PHPmyadmin para cambiar los password de los usuarios openser y openserrw:
Donde cambio los password tanto para el localhost como para el resto %.
Ahora hay que editar el fichero de configuración de Kamailio /usr/local/etc/kamailio/kamailio.cfg para indicarle que utilice MySQL y los módulos de autentificación y localización de usuarios. El soporte para el resto de módulos compilados se irá añadiendo a medida que se avance en la configuración. Añado las líneas siguientes en la sección inicial del fichero:
#!define WITH_MYSQL
#!define WITH_AUTH
#!define WITH_USRLOCDB
También hay que cambiar los password utilizados para los usuarios de la base de datos. Para ello reemplazo en todas las ocurrencias de modparam("acc", "db_url", "mysql://openser:
Se tienen que volver a editar el fichero /usr/local/etc/kamailio/kamctlrc y cambiar las sección:
## database read/write user
DBRWUSER=openser
## password for database read/write user
DBRWPW=
## database read only user
DBROUSER=openserro
## password for database read only user
DBROPW=
Con los nuevos password para que la utilidad kamdbctl pueda crear nuevos usuarios en la base de datos y pueda interrogarla.
El servicio kamailio se ejecuta con el usuario kamailio por lo que hay que crear este usuario y grupo: useradd kamailio
En el repositorio también están los scripts utilizados por Debian para el arranque y parada. Estos sirven para Ubuntu también.
Los script que se proporcionan hay que copiarlos en las hubicaciones correctas y con los permisos de ejecución:
-Copio el fichero /usr/local/src/Kamailio-3.0.0/Kamailio/pkg/kamailio/debian/kamailio.init en el directorio /etc/init.d/ con el nombre kamailio. Le doy permisos de ejecución con chmod 755 kamailio. Y lo edito y modifico la línea DAEMON=/usr/local/sbin/kamailio para que busque el ejecutable en /usr/local en lugar de /usr que tiene por defecto.
También aparece una llamada explicita al fichero de configuración /etc/kamailio/kamailio.cfg en el script de arranque que hay que modificar por /usr/local/etc/kamailio/kamailio.cfg para el que utilice el instalado por esta versión compilada.
-El fichero /usr/local/src/Kamailio-3.0.0/Kamailio/pkg/debian/kamailio.default lo copio en /etc/default/kamailio y modifico RUN_KAMAILIO=yes para que permita lanzarlo con el script y con update-rc.d kamailio defaults 99 se crean las entradas en los niveles de arranque y parada.
No es necesario crear el directorio /var/run/kamailio ya que el script de arranque lo crea si no existe cada vez que arranca Kamailio. Esto es importante porque en Utuntu el directorio /var/run se monta sobre un ramdisk que se borra cada vez que se reinicia el sistema.
En este punto ya se puede arrancar el servidor con:
vicente@MBP-lnx:/usr/local/sbin$ sudo /etc/init.d/kamailio start
Starting kamailio: kamailioloading modules under /usr/local/lib/kamailio/modules_k/:/usr/local/lib/kamailio/modules/
Listening on
udp: 127.0.0.1:5060
udp: 192.168.88.254:5060
tcp: 127.0.0.1:5060
tcp: 192.168.88.254:5060
Aliases:
tcp: MBP-lnx.local:5060
tcp: localhost:5060
udp: MBP-lnx.local:5060
udp: localhost:5060
Y añadir el primer usuario con:
vicente@MBP-lnx:/usr/local/sbin$ sudo kamctl add prueba t3st
new user 'prueba' added
Lo que crea el usuario prueba con el password t3st


No hay comentarios:
Publicar un comentario