Instalación del RTPEngine en CentOS 7

RTPEngine, desarrollado por la empresa SIPWise, es un servidor Proxy Media que utiliza OpenSIPs (desde la versión 2.2) y Kamailio (desde la versión 4.X)

Parece que se está volviendo el Proxy Media más utilizado, debido a su amplio abanico de opciones, entre ellas:

  • Trafico media sobre IPv4 y IPv6
  • reenvío de paquetes a nivel de nucleo con bajo consumo de CPU y baja latencia
  • Total parseo e reescritura de paquetes SDP
  • Soporte para ICE
  • Soporte para flujo media cifrado (SRTP, SDES, DTLS)

En este articulo veremos como instalarlo en CentOS 7. Primero unas dependencias y paquetes para la compilación:

yum install mysql mariadb-devel mariadb-server gcc gcc-c++ bison bison-devel flex make expat -y

yum install expat-devel net-snmp-devel  libxml2 libxml2-devel openssl-devel -y

yum install 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

yum install iptables-devel iptables-services xmlrpc-c-devel libpcap-devel -y

yum install glib2-devel json-glib-devel hiredis-devel libevent-devel –y

Descargamos la ultima versión disponible:

cd /usr/usr

git clone https://github.com/sipwise/rtpengine.git

Empezamos la compilación:

cd /usr/src/rtpengine/daemon

Se copia, el programa compilado:

cp rtpengine /usr/local/bin/

Se compila e instala el modulo del Kernel requerido para reenviar los paquetes a nivel de núcleo del Kernel:

cd /usr/src/rtpengine/kernel-module
make
insmod xt_RTPENGINE.ko

Se compila e instala el modulo de IPtables requerido par reenviar los paquetes a nivel de nucleo del Kernel:

cd /usr/src/rtpengine/iptables-extension
make
cp libxt_RTPENGINE.so /lib64/xtables/

Se continua con el script de arranque de RTPEngine para CentOS 7:

cd /usr/src
git clone https://github.com/etamme/federated-sip.git
cd federated-sip/scripts
cp rtpengine.sysconfig /etc/sysconfig/rtpengine

nano /etc/sysconfig/rtpengine

Se modifica esta linea:

OPTIONS="--interface xxx.xxx.xxx.xxx --listen-ng xxx.xxx.xxx.xxx:60000 -m 50000 -M 55000 -E -L 7"

para que quede:

OPTIONS="-i IPPublica -n 127.0.0.1:60000 -m 20000 -M 30000 -L 7 --log-facility=local1"

Las distintas opciones:

  • -i direcciones IP versión 4/6 donde se pondrá a la escucha el programa. Si se indican 2 separadas por un / RTPengine trabajará en modo puente, es decir que enviará el flujo media de una IP a otra y viceversa.
  • -n dirección ip y puerto donde RTPEngine se pondrá a la escucha de comandos enviados desde otros programas (OpenSIPs/Kamailio)
  • -m puerto UDP inicial del rango de puertos que RTPEngine utilizará para el flujo media
  • -M puerto UDP final del rango de puertos que RTPEngine utilizará para el flujo media
  • -L el nivel de DEBUG que se configurará en el programa
  • --log-facility salida de LOG que luego se configurará en rsyslog

Antes de guardar los cambios, modificar IPPublica con la IP publica de su servidor. Se continua modificando nuevamente rsyslog para guardar los datos de LOG de RTPProxy en un archivo dedicado:

nano /etc/rsyslog.conf

Antes de esta linea:

local7.*                                                /var/log/boot.log

se añade:

local1.*                                                -/var/log/rtpengine.log

Se crea el archivo donde se guardará el LOG de RTPEngine:

touch /var/log/rtpengine.log

Se reinicia rsyslog:

systemctl restart rsyslog

Se copia el script de arranque y se activa para que inicie con el sistema:

cp rtpengine.service /etc/systemd/system/

systemctl enable rtpengine.service
Created symlink from /etc/systemd/system/multi-user.target.wants/rtpengine.service to /etc/systemd/system/rtpengine.service.

Se crea la carpeta donde se guardarán las grabaciones del flujo media (si activadas):

mkdir -p /var/spool/rtpengine

Se inicia:

systemctl start rtpengine

Si todo sale bien en el archivo de LOG de RTPEngine:

nano /var/log/rtpengine.log

Mar  8 11:24:36 sip10 rtpengine[27751]: INFO: Generating new DTLS certificate
Mar  8 11:24:36 sip10 rtpengine[27751]: DEBUG: Dump of DTLS certificate:
Mar  8 11:24:36 sip10 rtpengine[27751]: DEBUG: --- -----BEGIN CERTIFICATE-----
Mar  8 11:24:36 sip10 rtpengine[27751]: DEBUG: --- MIIBpDCCAQ2gAwIBAAIJAL/v3jMOK9v4MA0GCSqGSIb3DQEBBQUAMBQxEjAQBgNV
Mar  8 11:24:36 sip10 rtpengine[27751]: DEBUG: --- BAMTCXJ0cGVuZ2luZTAeFw0xNzAzMDcxNjI0MzZaFw0xNzA0MDcxNjI0MzZaMBQx
Mar  8 11:24:36 sip10 rtpengine[27751]: DEBUG: --- EjAQBgNVBAMTCXJ0cGVuZ2luZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
Mar  8 11:24:36 sip10 rtpengine[27751]: DEBUG: --- 4C3zkxuyaxiCvOsE3PYbnf6dHMP76H3L1Hk9tWlyrq+De3ef0G/0yPNY3qGWc8gh
Mar  8 11:24:36 sip10 rtpengine[27751]: DEBUG: --- F65i7DWcuKz+mtbsxskV6nayAZ4cgDYWDrqZirVtsxdZ3xDTHezw6BJE1wAb3GLY
Mar  8 11:24:36 sip10 rtpengine[27751]: DEBUG: --- rjLSSclNo2nCfdQeIcHvo8bA5LzDFN5qUD0kBHMxDwcCAwEAATANBgkqhkiG9w0B
Mar  8 11:24:36 sip10 rtpengine[27751]: DEBUG: --- AQUFAAOBgQBZSH0EuYA2t2H9lyh8kVX9QBhQMK1WuCKxyUp2RgcElfq+IgBOVK7e
Mar  8 11:24:36 sip10 rtpengine[27751]: DEBUG: --- syqToTBCrfmDSI/WF5OI8/5NkH85fMSxqy6ck+48PiJtyg1J26TWNVSznSJ4cZ7O
Mar  8 11:24:36 sip10 rtpengine[27751]: DEBUG: --- jQUHpmfz+6Y9KeuSbGl0hEDtVym9RYqIQQd/R8X3M4LOcANC4yFwkA==
Mar  8 11:24:36 sip10 rtpengine[27751]: DEBUG: --- -----END CERTIFICATE-----
Mar  8 11:24:36 sip10 rtpengine[27751]: DEBUG: Dump of DTLS private key:
Mar  8 11:24:36 sip10 rtpengine[27751]: DEBUG: --- -----BEGIN PRIVATE KEY-----
Mar  8 11:24:36 sip10 rtpengine[27751]: DEBUG: --- MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAOAt85MbsmsYgrzr
Mar  8 11:24:36 sip10 rtpengine[27751]: DEBUG: --- BNz2G53+nRzD++h9y9R5PbVpcq6vg3t3n9Bv9MjzWN6hlnPIIReuYuw1nLis/prW
Mar  8 11:24:36 sip10 rtpengine[27751]: DEBUG: --- 7MbJFep2sgGeHIA2Fg66mYq1bbMXWd8Q0x3s8OgSRNcAG9xi2K4y0knJTaNpwn3U
Mar  8 11:24:36 sip10 rtpengine[27751]: DEBUG: --- HiHB76PGwOS8wxTealA9JARzMQ8HAgMBAAECgYBDsBw3cslwZLo06JFTVkwIbHRr
Mar  8 11:24:36 sip10 rtpengine[27751]: DEBUG: --- 1xEcpb8BrInhWLFz5TLB+OCcQvGaKz/OGOQgmXDEgbcEszta14EYp4RekSC4Vcgt
Mar  8 11:24:36 sip10 rtpengine[27751]: DEBUG: --- 3MgPmvjbsU/XBFs33kTpJnbc51ORa849N2qfRgLV7KALG/MxHDDbtmV79A2eif63
Mar  8 11:24:36 sip10 rtpengine[27751]: DEBUG: --- VYT9Xf5ucFakyFsGIQJBAPpHnFQDZTcapkYV/h9V/9JXDvs6tI0usmFecOEkEbyr
Mar  8 11:24:36 sip10 rtpengine[27751]: DEBUG: --- IZ2qnx+Yg2bv5L8HwMv1TaBdrrgoSZmW7sLFMl9gV60CQQDlTaDJr2DROvj18Wg0
Mar  8 11:24:36 sip10 rtpengine[27751]: DEBUG: --- XMga4KqTIxsaGVg3I9zqCAF+kCGFmtzBbioBqKGUKpT//yrXZy2u9OcSKp+KWMBk
Mar  8 11:24:36 sip10 rtpengine[27751]: DEBUG: --- cSgDAkEAou0RKGPZdOjFSySv/Gg4lA4Wc5eAx9OZTedz5ixb240v4fqbga8AA3ex
Mar  8 11:24:36 sip10 rtpengine[27751]: DEBUG: --- WmZKrLtwoC+8OKgJWZG2tlY29325NQJBAL6SNLZKJnndvDmTB5q1Ha2Q2NLuU0Du
Mar  8 11:24:36 sip10 rtpengine[27751]: DEBUG: --- nW0+RgTO4IcSPHnwidXMu+ajAp7EgQ79P9rDqqkEauKjP/LX7hXMIYcCQDPHUxqd
Mar  8 11:24:36 sip10 rtpengine[27751]: DEBUG: --- XkQw+QIRUeHSWjxOjCYOojACBUibb+P1N/HEy1zfZ7luxLAAoF/by71RY6HAs/gv
Mar  8 11:24:36 sip10 rtpengine[27751]: DEBUG: --- hs8Ea3l+9UztJFY=
Mar  8 11:24:36 sip10 rtpengine[27751]: DEBUG: --- -----END PRIVATE KEY-----
Mar  8 11:24:36 sip10 rtpengine[27752]: INFO: Startup complete, version git-master-d513c6d

Me cuentan…

Vota el Articulo: 

Sin votos (todavía)
Evalúa la calidad del articulo
Suscribirse a Comentarios de "Instalación del RTPEngine en CentOS 7" Suscribirse a VozToVoice - Todos los comentarios