Montando un servidor SIP con Kamailio en Fedora Server 27

eduardo-sanchez-251239.jpg

En este apartado se pretende ser una guía de una instalación básica de un servidor SIP con Kamailio bajo la distribución de Fedora Server 27,  por supuesto que también funciona para la versión Workstation. Si pretendes instalar otra distribución Kamailio ofrece algunos paquetes y el código fuente para usarlo prácticamente el cualquier entorno GNU/Linux y Unix. Dando hincapié de que es Kamailio como se describe en el sitio oficial:

Kamailio is an Open Source SIP Server released under GPL, able to handle thousands of call setups per second. Kamailio can be used to build large platforms for VoIP and realtime communications – presence, WebRTC, Instant messaging and other applications.

Como se había indicado sera una guiá para una instalación básica de Kamailio, este contenido realmente sera una copia descarada de la documentación que ofrece Kamailio para instalarlo en Debian, así que solamente se ha hecho una adaptación para ser instalado en Fedora Server 27.

Comandos de instalación

Comencemos agregando el repositorio oficial, abriremos una terminal y escribiremos lo siguiente:

# dnf config-manager --add-repo=http://download.opensuse.org/repositories/home:/kamailio:/v5.1.x-rpms/Fedora_27/home:kamailio:v5.1.x-rpms.repo

Refrescamos los repositorios:

# dnf check-update

En seguida instalaremos Kamailio y aparte un modulo para trabajar con MariaDB, tipeamos el siguiente comando para instalar los paquetes necesarios:

# sudo dnf install kamailio-websocket kamailio kamailio-ims kamailio-mysql mariadb mariadb-server -y

Vamos ha indicar que el servidor de base de datos MariaDB inicie en cada arranque del sistema pero también lo vamos a iniciar en este momento para trabajar con el:

# systemctl enable mariadb; systemctl start mariadb

Estando en marcha MariaDB ahora iniciamos el asistente:

# mysql_secure_installation

Asignaremos una contraseña para el gestor de base de datos

Set root password? [Y/n] y
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

Archivos de configuración

Los archivos de configuración están ubicados en el directorio /etc/kamailio/.

kamctlrc

El /etc/kamailio/kamctlrc es el archivo de configuración para las herramientas kamctl y kamdbctl. Buscaremos editaremos SIP_DOMAIN donde agregaremos el nombre de dominio o la dirección IP del servidor

Establezca también el DBENGINE el motor de base de datos, en este caso sera MYSQL. Muy importantes son las contraseñas para conectarse MySQL al servidor, respectivamente DBRWPWDBROPW. Por defecto, sus valores son kamailiorwkamailioro. Debe cambiarlos antes de ejecutarlos kamdbctl create(el paso detalla la sección Crear base de datos ).

SIP_DOMAIN=172.24.1.52	#IP del servidor
DBENGINE=MYSQL 		#La base de datos que se trabajara

kamailio.cfg

El /etc/kamailio/kamailio.cfg es el archivo de configuración para kamailio. Edítelo para habilitar algunas de las funciones que se incluyen con él.

Para habilitar el uso del MySQL back-end del servidor, la autenticación del usuario y la ubicación persistente del usuario, agregue después de la primera línea:

#!define WITH_MYSQL
#!define WITH_AUTH
#!define WITH_USRLOCDB

Crear base de datos

Para crear la estructura de la base de datos que necesita Kamailio, ejecute:

# kamdbctl create

El nombre de la base de datos creado en MySQL es kamailio . Se crearon dos usuarios de acceso al servidor MySQL

  • kamailio – (con la contraseña establecida por DBRWPW en kamctlrc) – usuario que tiene plenos derechos de acceso a la base de datos kamailio

  • kamailioro – (con la contraseña establecida por DBROPW en kamctlrc) – usuario que tiene derechos de acceso de solo lectura a la base de datos kamailio

El acceso para los dos usuarios está restringido a localhost , pero como se indicó anteriormente, se recomienda cambiar sus contraseñas predeterminadas.

Scripts de inicio

Primeramente reiniciaremos Fedora Server 27:

# reboot

Iniciamos Kamailio:

# service kamailio start
Redirecting to /bin/systemctl start kamailio.service  

Habilitamos el puerto para que se pueda comunicar fuera del host o de Internet:

# firewall-cmd --permanent --add-service=sip; firewall-cmd --reload

Agregar suscriptores

Para agregar suscriptores (usuarios), puede usar el comando kamctl :

# kamctl add 2018001 secret001

Luego puede configurar su teléfono para que se registre en Kamailio usando el nombre de usuario y la contraseña establecidos en el comando anterior.

Mostrar suscriptores

Puedes ver los suscriptores registrado en Kamailio desplegando la tabla subscriber de la base de datos tipeando el siguiente comando:

# kamctl db show subscriber
which: no gdb in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/)
+----+----------+--------------+-----------+----------------------------------+----------------------------------+---------------+------+
| id | username | domain       | password  | ha1                              | ha1b                             | email_address | rpid |
+----+----------+--------------+-----------+----------------------------------+----------------------------------+---------------+------+
|  1 | 2018001  | 172.24.1.52  | secret001 | 9feb5892a47453494ee3629a4c28dbb0 | bfe55e62718d5964daf72adc42fb2c4a | NULL          | NULL |
+----+----------+--------------+-----------+----------------------------------+----------------------------------+---------------+------+

En el siguiente video se ejemplifica el proceso de registro de usuarios para luego realizar una comunicación VoIP entre dispositivos.

Referencia:

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s