Instalación de OpenSIPS 1.6.3 en CentOS 5.5

Actualizado el 09 de Septiembre 2011

Paralelamente a los artículos relacionados con la versión 1.8 de Asterisk, con este articulo abrimos un nuevo hilo dedicado a la instalación y configuración de un Proxy SIP. En este caso OpenSIPS. Un Proxy SIP gestiona toda la señalización SIP entre usuarios (UAC) para que estos puedan establecer una comunicación audio/video y, en general, comunicarse entre ellos. Como Guía seguiré este libro y algunos artículos encontrados en Internet.

Aunque Asterisk PBX es una buena herramienta para gestionar llamadas, troncales y servicios, en algunos escenarios en los que se necesite enrutar un alto numero de llamadas, balanceo de carga, mensajería instantánea, alta disponibilidad y escalabilidad), tendremos que pensar en instalar un Server Proxy SIP. En este articulo veremos como instalar OpenSIPS en un servidor Linux CentOS 5.5

OpenSIPS es un Proxy SIP (open source) completamente conforme a la recomendaciones definidas en la RFC3261 (Protocolo SIP).

Principales características de OpenSIPS:

  • velocidad: puede manejar miles de llamadas al segundo
  • extrema flexibilidad: puedes ser configurado para cualquier tipo de escenario
  • el núcleo es extremamente ligero y permite añadir funcionalidades a través de módulos adicionales

Además como Proxy, OpenSIPS se utiliza para:

- Balanceo de carga
- Mensajería instantánea (XMMP Gateway)
- Servidor de presencia
- Junto a Media Proxy o RTP Proxy, gestiona el NAT

Instalaremos OpenSIPS desde las fuentes. Para hacerlo necesitamos instalar unos paquetes requeridos:

yum install mysql mysql-devel mysql-server gcc gcc-c++ bison bison-devel flex make expat expat-devel unixODBC-devel net-snmp-devel

yum install subversion libxml2 libxml2-devel openssl-devel xmlrpc lynx pcre pcre-devel

Instalamos desde las fuentes un cliente Radius:

cd /usr/src
wget http://ftp.iptel.org/pub/radiusclient-ng/radiusclient-ng-0.5.5.tar.gz
tar -xf radiusclient-ng-0.5.5.tar.gz
cd radiusclient-ng-0.5.5
./configure --prefix=/usr
make
make install

Ahora podemos descargar la versión 1.6.3 de  OpenSIPS y compilar:

cd /usr/src

svn co https://opensips.svn.sourceforge.net/svnroot/opensips/branches/1.6 opensips_1_6

Entramos en la carpeta:

cd opensips_1_6

Modificamos las lista de módulos que instalaremos:

nano Makefile

modificando estas líneas:

exclude_modules?= b2b_logic jabber cpl-c xmpp rls mi_xmlrpc xcap_client \
        db_mysql db_postgres db_unixodbc db_oracle db_berkeley aaa_radius \
        osp perl snmpstats perlvdb carrierroute mmgeoip \
        presence presence_xml presence_mwi presence_dialoginfo \
        pua pua_bla pua_mi pua_usrloc pua_xmpp pua_dialoginfo \
        ldap h350 identity regex memcached db_http json

Para que queden:

exclude_modules?= b2b_logic cpl-c rls mi_xmlrpc xcap_client \
        db_postgres db_oracle db_berkeley \
        osp perl perlvdb carrierroute mmgeoip \
        pua pua_bla pua_mi pua_usrloc pua_xmpp pua_dialoginfo \
        ldap h350 identity regex memcached db_http json

Guardamos los cambios y compilamos:

make prefix=/ all
make prefix=/ install

Ahora configuramos OpenSIPS para que arranque en automático:

cd packaging/fedora

nano opensips.init

Cambiamos esta línea

oser=/usr/sbin/opensips

para que quede

oser=/sbin/opensips

Guardamos los cambios

chmod 755 opensips.init

cp opensips.init /etc/init.d/opensips

chkconfig --add opensips

chkconfig opensips on

Averiguamos:

chkconfig --list | grep opensips
opensips        0:off   1:off   2:on    3:on    4:on    5:on    6:off

Terminada la instalación encontraremos unas carpetas nuevas en nuestro sistema:

/etc/opensips - contiene los archivos de configuración de OpenSIPS

/lib/opensips/modules - contiene todos los módulos instalados

/sbin - contienes los programas de OpenSIPS

De manera predefinida OpenSIPS guarda los registros de actividad en el archivo /var/log/messages. Para que los registros se guarden en un archivo dedicado tenemos que seguir estos pasos:

instalar syslog:

yum install syslog

modificar el archivo de configuración de syslog:

nano /etc/syslog.conf

añadiendo al final del archivo esta línea:

local0.*                                           -/var/log/opensips.log

Entre local0.* y /var/log/opensips.log para movernos utilizar la tecla tabulador

Guardamos los cambios y creamos el archivo opensips.log

touch /var/log/opensips.log

Arrancamos syslog

/etc/init.d/syslog start

Luego OpenSIPS

/etc/init.d/opensips start

Miramos si los registros efectivamente están en ese archivo:

tail -f /var/log/opensips.log
Aug 29 12:32:00 opensips /sbin/opensips[18044]: INFO:core:main: using 1 Mb private memory per process
Aug 29 12:32:00 opensips /sbin/opensips[18044]: NOTICE:signaling:mod_init: initializing module ...
Aug 29 12:32:00 opensips /sbin/opensips[18044]: INFO:sl:mod_init: Initializing StateLess engine
Aug 29 12:32:00 opensips /sbin/opensips[18044]: INFO:tm:mod_init: TM - initializing...
Aug 29 12:32:00 opensips /sbin/opensips[18044]: INFO:maxfwd:mod_init: initializing...
Aug 29 12:32:00 opensips /sbin/opensips[18044]: INFO:usrloc:ul_init_locks: locks array size 512
Aug 29 12:32:00 opensips /sbin/opensips[18044]: INFO:registrar:mod_init: initializing...
Aug 29 12:32:00 opensips /sbin/opensips[18044]: INFO:textops:mod_init: initializing...
Aug 29 12:32:00 opensips /sbin/opensips[18044]: INFO:acc:mod_init: initializing...
Aug 29 12:32:00 opensips /sbin/opensips[18044]: INFO:core:probe_max_receive_buffer: using a UDP receive buffer of 255 kb

"Por defecto OpenSIPS viene con dos extensiones configuradas" - Desafortunadamente esta frase es totalmente falsa. Opensips por defecto acepta el registro de cualquier tipo de extensión con cualquier tipo de contraseña.

- 1000 con contraseña 1000
- 1001 con contraseña 1001

Podemos configurar dos cliente sip y conectarnos a OpenSIPS. Luego en el monitor ver los resultados:

opensipsctl monitor

UsrLoc Stats:
usrloc:registered_users = 2
usrloc:location-users = 2
usrloc:location-contacts = 3
usrloc:location-expires = 0

Podremos llamar de un cliente a otro pero, si están detrás de un NAT no escucharemos nada.

En el próximo articulo empezaremos a "jugar" con el archivo de configuración de OpenSIPS

Vota el Articulo: 

Sin votos (todavía)
Evalúa la calidad del articulo

5 comentarios

Muchas Gracias

Hola, muchas gracias por esta guia de instalación, no se si podrias ayudarme con un problema despues de  modificar el archivo makefile del openSIPs  y ejecutar make prefix=/ all la consola me lanza un mensaje recursivo y se queda con el siguiente mesaje.

make: Atención: El archivo `Makefile' tiene una hora de modificación 1,3e+04 en el futuro
bison -d -b cfg cfg.y
cfg.y: conflictos: 1 desplazamiento(s)/reducción(ones)
bison -d -b cfg cfg.y
cfg.y: conflictos: 1 desplazamiento(s)/reducción(ones)
flex cfg.lex

Como ya dije se lanza una y otra vez y no puedo pasar de ese punto de la instalación, te agradezco de nuevo por tu ayuda.

Saludos,

Victor.

Re: Muchas gracias

Hola,

el problema parece ser este:

make: Atención: El archivo `Makefile' tiene una hora de modificación 1,3e+04 en el futuro

Parece que tu servidor cuando modifica el Makefile le asigna una fecha y hora puesta en el futuro.

Yo haría dos pruebas:

  • compilar sin modificar el archivo Makefile
  • Si la primera funciona modificar el archivo Makefile y volver a compilar

Si te sale nuevamente el error modificar la fecha del archivo Makefile con el comando touch

Saludos

Pregunta básica

Hola como estas

He leído tu posteo y me ha parecido bien instructivo. Apenas voy leyendo cosas sobre Opensips y aun aprendo con asterisk pero tengo algunas dudas que quizás son bastante básicas, las enumero adelante.

1-. Asumiendo que tengo un asterisk instalado deberia instalar opensips en el mismo servidor asterisk o seria recomendable dedicar un servidor solo para opensips.

2-. En el caso de estar separados, las placas E1 o FXO/FXS deberían estar en que servidor.

3-. Como deberia ser la configuracion adecuada de un asterisk con opensips si tengo una central analogica una digital.

De ante mano muchas gracias

Duda sobre opensips y a2billing

Hola amigo, gracias por tu blog. Tu libro sobre instalacion de A2B me sirvio mucho. Ahora veo que publicaste tambien sobre opensips. Mi pregunta es ... abordaras en algun momento en la instalacion de A2B con opensips en tu libro ??? hay muy poca informacion sobre esta implementacion.
Agradezco tu tiempo y tu blog.
Saludos

Re: Duda sobre opensips y a2billing

Hola,

estoy trabajando en organizar un curso de OpenSIPs pero será dentro de 6-7 meses.

En ese curso se verá también la parte de integración de OpenSIPs con A2Billing.

Si la cosa es urgente, le podemos brindar asesoría para ese tipo de integración ya que la tenemos implementada desde algunos meses en nuestros servidores.

Saludos

Suscribirse a Comentarios de "Instalación de OpenSIPS 1.6.3 en CentOS 5.5" Suscribirse a VozToVoice - Todos los comentarios