Búsqueda de sitios web

Instale el servidor SIP Kamailio en Rocky Linux 8|AlmaLinux 8


En esta publicación, realizaremos una instalación completa paso a paso del servidor Kamailio SIP en Rocky Linux 8 | AlmaLinux 8. Si eres nuevo en el mundo de los sistemas VoIP y PBX, Kamailio es el sucesor de un proyecto anterior conocido como (OpenSER y SER). Es un servidor SIP de código abierto y de uso gratuito lanzado bajo la licencia GPLv2+. Kamailio es capaz de manejar miles de configuraciones de llamadas por segundo. Kamailio se puede configurar como servidor único o para trabajar en forma agrupada y distribuida.

Características clave del servidor SIP Kamailio

Las principales ventajas de Kamailio para su uso junto con un servidor multimedia como Asterisk son:

  • Servidor SIP (RFC3261) robusto y de alto rendimiento: proxy, servidor de aplicaciones SIP, servidor de registro, servidor de ubicación y servidor de redireccionamiento.
  • Es un servidor SIP flexible, de tamaño reducido y arquitectura modular.
  • Kamailio proporciona sólidas capacidades de enrutamiento SIP
  • En Transporte tiene soporte para los protocolos UDP, TCP, TLS y SCTP.
  • Procesamiento asincrónico
  • Utiliza comunicación segura a través de mecanismos de autenticación, autorización y cifrado.
  • Soporte para Contabilidad y funciones de IP y DNS
  • Kamailio se puede utilizar en plataformas VoIP distribuidas geográficamente
  • El enrutamiento de menor costo de Kamailio escala hasta millones de reglas de enrutamiento
  • Interconexión sencilla con puertas de enlace PSTN
  • Compatibilidad con múltiples backends de bases de datos (MySQL, PostgreSQL, SQLite, UnixODBC, BerkeleyDB, Oracle, archivos de texto) y otros tipos de bases de datos que tienen controladores Unixodbc.
  • API de extensibilidad: admite interfaz Perl, Java, Lua, JavaScript y Python, entre muchos otros lenguajes.

Instale el servidor SIP Kamailio en Rocky Linux 8 | AlmaLinux 8

Con la introducción de Kamailio SIP Server, podemos centrarnos en la instalación real. Los requisitos para esta instalación se muestran a continuación:

  • Linux rocoso 8 | Servidor AlmaLinux 8
  • Se requiere acceso a Internet en el servidor.
  • Acceso terminal al servidor como root o como usuario estándar con sudo powers

Paso 1: actualice el sistema y configure SELinux en permisivo

Actualice su sistema ejecutando los siguientes comandos

sudo dnf update

Una vez realizada la actualización, configure SELinux en modo permisivo o, opcionalmente, desactívelo.

sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

Confirme el estado de SELinux después de la actualización:

$ sestatus 
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: permissive
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31

Paso 2: Agregar el repositorio Kamailio YUM

Todos los paquetes de Kamailio para las últimas versiones se proporcionan en un repositorio RPM. Este repositorio debe agregarse al sistema manualmente.

Agregue el repositorio Kamailio YUM en su sistema usando los siguientes comandos:

sudo yum -y install dnf-plugins-core
sudo yum config-manager --add-repo https://rpm.kamailio.org/centos/kamailio.repo

Verifique la lista actual de repositorios configurados en su sistema para confirmar:

$ sudo dnf -y repolist
repo id                                                                   repo name
appstream                                                                 Rocky Linux 8 - AppStream
baseos                                                                    Rocky Linux 8 - BaseOS
extras                                                                    Rocky Linux 8 - Extras
kamailio                                                                  Kamailio - latest - Packages for the Kamailio latest release

Podemos ver el repositorio de Kamailio en la salida.

Paso 3: Instale el servidor SIP Kamailio en Rocky Linux 8 | AlmaLinux 8

Necesitamos un servidor de base de datos mientras ejecutamos el servidor SIP Kamailio para almacenar datos. La versión de MariaDB disponible en los repositorios del sistema es adecuada para este propósito.

sudo dnf -y install mariadb-server

Inicie y asegure la instalación del servidor MariaDB

sudo systemctl enable --now mariadb
sudo mysql_secure_installation

Asegúrese de que la conexión al shell MariaDB esté funcionando

$ mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 16
Server version: 10.3.28-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> exit

Instale todos los paquetes y dependencias del servidor Kamailio SIP:

sudo yum install vim kamailio kamailio-mysql kamailio-presence kamailio-ldap kamailio-debuginfo kamailio-xmpp kamailio-unixodbc kamailio-utils kamailio-gzcompress kamailio-tls kamailio-outbound

Debería mostrarse el árbol de dependencias y puede presionar la tecla del teclado para comenzar la instalación.

...
Dependencies resolved.
======================================================================================================================================================================================================
 Package                                           Architecture                        Version                                                           Repository                              Size
======================================================================================================================================================================================================
Installing:
 kamailio                                          x86_64                              5.5.2-0.el8.centos                                                kamailio                               6.2 M
 kamailio-debuginfo                                x86_64                              5.5.2-0.el8.centos                                                kamailio                               4.3 M
 kamailio-gzcompress                               x86_64                              5.5.2-0.el8.centos                                                kamailio                                24 k
 kamailio-ldap                                     x86_64                              5.5.2-0.el8.centos                                                kamailio                               109 k
 kamailio-mysql                                    x86_64                              5.5.2-0.el8.centos                                                kamailio                                82 k
 kamailio-outbound                                 x86_64                              5.5.2-0.el8.centos                                                kamailio                                29 k
 kamailio-presence                                 x86_64                              5.5.2-0.el8.centos                                                kamailio                               736 k
 kamailio-tls                                      x86_64                              5.5.2-0.el8.centos                                                kamailio                               195 k
 kamailio-unixodbc                                 x86_64                              5.5.2-0.el8.centos                                                kamailio                                45 k
 kamailio-utils                                    x86_64                              5.5.2-0.el8.centos                                                kamailio                                43 k
 kamailio-xmpp                                     x86_64                              5.5.2-0.el8.centos                                                kamailio                                60 k
Upgrading:
 vim-common                                        x86_64                              2:8.0.1763-16.el8                                                 appstream                              6.3 M
 vim-enhanced                                      x86_64                              2:8.0.1763-16.el8                                                 appstream                              1.4 M
Installing dependencies:
 libtool-ltdl                                      x86_64                              2.4.6-25.el8                                                      baseos                                  57 k
 mysql-common                                      x86_64                              8.0.26-1.module+el8.4.0+652+6de068a7                              appstream                              133 k
 mysql-libs                                        x86_64                              8.0.26-1.module+el8.4.0+652+6de068a7                              appstream                              1.4 M
 unixODBC                                          x86_64                              2.3.7-1.el8                                                       appstream                              453 k
Installing weak dependencies:
 kamailio-debugsource                              x86_64                              5.5.2-0.el8.centos                                                kamailio                               3.9 M
Enabling module streams:
 mysql                                                                                 8.0

Transaction Summary
======================================================================================================================================================================================================
Install  16 Packages
Upgrade   2 Packages

Total download size: 25 M
Is this ok [y/N]: y

La versión de Kamailio instalada se puede verificar con el siguiente comando:

$ kamailio -version
version: kamailio 5.5.2 (x86_64/linux) 55e232
flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLOCKLIST, HAVE_RESOLV_RES, TLS_PTHREAD_MUTEX_SHARED
ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: 55e232
compiled on 14:13:04 Aug 25 2021 with gcc 8.4.1

Paso 5: conecte Kamailio al servidor de base de datos

Necesitamos editar el archivo de configuración principal de Kamailio /etc/kamailio/kamctlrc y configurar DBENGINE

sudo vim /etc/kamailio/kamctlrc

Configure DBENGINE en MySQL y DBHOST en localhost:

DBENGINE=MYSQL
DBHOST=localhost

Cree todas las bases de datos y tablas requeridas por Kamailio:

$ sudo kamdbctl create
MySQL password for root: <INPUT-DATABASE-ROOT-USER-PASSWORD>
INFO: test server charset
INFO: creating database kamailio ...
INFO: granting privileges to database kamailio ...
INFO: creating standard tables into kamailio ...
INFO: Core Kamailio tables successfully created.
Create the presence related tables? (y/n): y
INFO: creating presence tables into kamailio ...
INFO: Presence tables successfully created.
Create the tables for imc cpl siptrace domainpolicy carrierroute
		drouting userblocklist htable purple uac pipelimit mtree sca mohqueue
		rtpproxy rtpengine secfilter? (y/n): y
INFO: creating extra tables into kamailio ...
INFO: Extra tables successfully created.
Create the tables for uid_auth_db uid_avp_db uid_domain uid_gflags
		uid_uri_db? (y/n): y
INFO: creating uid tables into kamailio ...
INFO: UID tables successfully created.

Se crean dos usuarios de base de datos:

  • kamailio: Con la contraseña kamailiorw Tiene permisos de acceso de lectura/escritura a la base de datos de Kamailio.
  • kamailioro: la contraseña de este usuario es kamailioro. Tiene permisos de acceso de solo lectura a la base de datos de Kamailio.

El acceso se puede probar como se muestra a continuación:

$ mysql -u kamailio -p
Enter password: kamailiorw
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 68
Server version: 10.3.28-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> exit
Bye

$ mysql -u kamailioro -p
Enter password: kamailioro
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 69
Server version: 10.3.28-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> exit
Bye

Edite /etc/kamailio/kamailio.cfg para configurar Kamailio:

sudo vi /etc/kamailio/kamailio.cfg

Agregue las siguientes líneas justo debajo de #!KAMAILIO.

#!define WITH_MYSQL
#!define WITH_AUTH
#!define WITH_USRLOCDB
#!define WITH_NAT
#!define WITH_PRESENCE
#!define WITH_ACCDB

Iniciar Kamailio

sudo systemctl restart kamailio

Habilite el servicio para que se inicie al arrancar:

sudo systemctl enable kamailio

Este es el fin. Ahora debería tener un servidor SIP Kamailio en ejecución en su Rocky Linux 8 | AlmaLinux 8 Linux.

$ systemctl status kamailio
 kamailio.service - Kamailio - the Open Source SIP Server
   Loaded: loaded (/usr/lib/systemd/system/kamailio.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2021-12-09 15:56:10 UTC; 10s ago
 Main PID: 10550 (kamailio)
    Tasks: 33 (limit: 49496)
   Memory: 23.5M
   CGroup: /system.slice/kamailio.service
           ├─10550 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10551 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10552 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10553 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10554 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10555 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10556 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10557 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10558 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10559 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10560 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10561 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10562 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10563 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10564 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10565 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10566 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10567 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10568 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10569 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10570 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10571 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10572 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10573 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10574 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10575 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10576 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10577 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10578 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10579 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10580 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           ├─10581 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
           └─10582 /usr/sbin/kamailio --atexit=no -DD -P /run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 8
...

Más guías sobre sistemas SIP /PBX:

  • Cómo instalar FreePBX en CentOS 8/RHEL 8
  • Configuración de IVR en el servidor Asterisk PBX
  • Proteja Asterisk y FreePBX contra fraudes de VoIP y ataques de fuerza bruta