Enviado por admin el
Hoy veremos como instalar el Proxy SIP Kamailio en un servidor CentOS 6.7 64bit. Alguna características:
- Registrar Server
- Location Server
- Proxy Server
- SIP Application Server
- Redirect Server
Empezamos con la preparación del sistema (UN VPS de 1GB de RAM alquilado con DigitalOcean). Se accede vía SSH al VPS y se inicia actualizando el sistema:
yum update -y
Se instalan los repositorios Epel:
yum install epel-release -y
Se guardan los cambios y se continua con la configuración de la zona horaria para Colombia (personalizar según su país):
rm /etc/localtime
ln -s /usr/share/zoneinfo/America/Bogota /etc/localtime
Se instala el editor Nano y wget:
yum install nano wget -y
Se configura el idioma (español):
nano /etc/sysconfig/i18n
se borra el contenido del archivo y se pegan las líneas que siguen:
LANG="es_CO.iso88591"
SYSFONT="latarcyrheb-sun16"
Se guardan los cambios.
Se instala el paquete del network time protocol para tener actualizada la hora del servidor:
yum install ntp -y
Se configura para que arranque en automático:
chkconfig ntpd on
Se inicia:
service ntpd start
Se crea la partición de Swap ya que en los VPS de Digital Ocean no viene por defecto:
dd if=/dev/zero of=/swapfile bs=1024 count=512k
mkswap /swapfile
swapon /swapfile
Se configura la partición de swap para que arranque con el sistema:
nano /etc/fstab
al final del archivo se añade la línea que sigue:
/swapfile swap swap defaults 0 0
Se cambian los permisos del archivo recién creado:
chmod 0600 /swapfile
Se reinicia el sistema:
reboot
Se vuelve a acceder al VPS vía SSH y se instalar algunas dependencias necesarias para la compilación de Kamailio:
yum install mysql mysql-devel mysql-server gcc gcc-c++ bison bison-devel flex make expat expat-devel net-snmp-devel -y
yum install libxml2 libxml2-devel openssl-devel xmlrpc-c-devel lynx pcre pcre-devel ncurses-devel ncurses-libs gdb git -y
yum install net-snmp net-snmp-devel net-snmp-libs net-snmp-utils -y
yum install unixODBC unixODBC-devel mysql-connector-odbc libtool-ltdl-devel –y
Se descarga la ultima versión estable de Kamailio (4.3.4):
cd /usr/src
git clone -b 4.3 git://git.kamailio.org/kamailio kamailio
Se entra en la carpeta credad
cd kamailio
Se prepara la compilación del sistema indicando que el programa se instalará a partir de la carpeta raíz del VPS:
make PREFIX="/" cfg
target architecture <x86_64>, host architecture <x86_64>
making config...
rm -f modules.lst
make --no-print-directory modules.lst
saving modules list...
Se modifica el archivo que sigue:
nano modules.lst
cambiando esta línea:
include_modules=
para que quede:
include_modules= db_mysql
Se guardan los cambios. De esta forma se compilará también el modulo para MySQL. Se continua con la compilación e instalación:
make all
make install
Se instala el archivo de configuración de sistema y el script de inicio de Kamailio para CentOS:
cd pkg/kamailio/centos/6
cp kamailio.sysconfig /etc/sysconfig/kamailio
nano kamailio.init
Se modifica esta línea:
KAM=/usr/sbin/kamailio
para que quede:
KAM=/sbin/kamailio
Se guardan los cambios y se continua con la activación del script de arranque:
cp kamailio.init /etc/init.d/kamailio
chmod +x /etc/init.d/kamailio
chkconfig --add kamailio
chkconfig kamailio on
Luego se crea grupo y usuario Kamailio (como configurado en el archivo /etc/sysconfig/kamailio:
groupadd kamailio
useradd -s /bin/false -g kamailio kamailio
Se crea la carpeta donde Kamailio guardará su identificador de proceso:
mkdir /var/run/kamailio
chown -Rf kamailio:kamailio /var/run/kamailio
Se inicia MySQL y se pone en seguridad:
service mysqld start
mysql_secure_installation
chkconfig mysqld on
Se modifica el archivo de configuración de Kamailio para la creación de la base de datos:
nano /etc/kamailio/kamctlrc
Se modifica esta línea:
# DBENGINE=MYSQL
para que quede:
DBENGINE=MYSQL
Se crea la base de datos kamailio y todas las tablas con el siguiente comando:
/sbin/kamdbctl create
MySQL password for root:
INFO: test server charset
INFO: creating database kamailio ...
INFO: granting privileges to database kamailio ...
INFO: creating standard tables into kamailio ...
INFO: Core Kamailio tables succesfully created.
Install presence related tables? (y/n): y
INFO: creating presence tables into kamailio ...
INFO: Presence tables succesfully created.
Install tables for imc cpl siptrace domainpolicy carrierroute
userblacklist htable purple uac pipelimit mtree sca mohqueue
rtpproxy? (y/n): y
INFO: creating extra tables into kamailio ...
INFO: Extra tables succesfully created.
Install 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 succesfully created.
Para crear un archivo de LOG dedicado:
nano /etc/rsyslog.conf
antes de esta linea:
local7.* /var/log/boot.log
se añade:
local0.* -/var/log/kamailio.log
touch /var/log/kamailio.log
service rsyslog restart
Se abre el archivo de configuración de Kamailio:
nano /etc/kamailio/kamailio.cfg
Se modifica esta linea:
#listen=udp:10.0.0.10:5060
para que quede:
listen=udp:IPPublica:5060
Se corrobora que el archivo de configuración esté bien:
kamailio -c /etc/kamailio/kamailio.cfg
loading modules under config path: //lib64/kamailio/modules/
0(13016) INFO: <core> [sctp_core.c:75]: sctp_core_check_support(): SCTP API not enabled - if you want to use it, load sctp module
Listening on
udp: 159.203.134.45:5060
Aliases:
udp: kamailio.voztovoice.org:5060
config file ok, exiting...
Se inicia:
service kamailio start
Iniciando kamailio: [ OK ]
Si todo sale bien, deberían obtener la respuesta que aparece arriba.
Próximamente otros artículos acerca de Kamailio.
Me comentan.
1 comentario
Excelente, a la espera por
Enviado por andy el
Excelente, a la espera por mas... :-).