Cluster para Novatos Parte I : Keepalived + Asterisk / Kamailio

16 Jul

En los siguientes artículos  voy a abordar diferentes aspectos para clusterizar o mejorar el comportamiento en alta disponibilidad con Asterisk y Kamailio.

Tradicionalmente para disponer de una ip de servicio que balancea automáticamente entre dos máquinas, una activa y otra pasiva , o activo-activo, se ha usado pacemaker y corosync, incluso en algunos casos ucarp. Estos proyectos cierto es que han sido empleados mucho en el pasado pero hoy en día , keepalived es un proyecto que está creciendo bastante y merece la pena  empezar a usarlo en estas arquitecturas. Usa el protocolo VRRP empleado en alta disponibilidad en red como routers, mikrotik y similares.

En debian simplemente tenemos que instalar los paquetes con apt-get

apt-get install keepalived

También nos hará falta instalar sipsak que luego veremos para que nos servirá.

apt-get install sipsak

Para el buen funcionamiento deberemos cambiar algunos parámetros de sysctl , algunos relacionados con ARP para que cuando haya un salto se encaminen las peticiones lo antes posible a la máquina activa y otros para permitir bindear Asterisk a ips que no tiene (la activa).

Editaremos /etc/sysctl.conf

net.ipv4.ip_nonlocal_bind = 1

net.ipv4.conf.all.arp_ignore = 3
net.ipv4.conf.all.arp_announce = 2

y aplicaremos los cambios con:

sysctl -p

Una vez hecho esto ya configuraremos el keepalived /etc/keepalived/keepalived.conf de cada uno de los nodos:

vrrp_instance cluster{

state MASTER

interface eth0

virtual_router_id 01

priority 100

nopreempt

advert_int 1

virtual_ipaddress { IP.SER.VI.CIO/24 dev eth0   label eth0:1 }

track_script { comprobar_sip }

notify_master “/etc/keepalived/estado.sh MAESTRO “

notify_backup “/etc/keepalived/estado.sh BACKUP “

}

Para provocar el salto cuando Asterisk o Kamailio no responda usaremos un script comprobar_sip, que empleará el sipsak como antes comentábamos.

vrrp_script comprobar_sip {

script “/etc/keepalived/comprobar_sip.sh”

interval 10 # se comprueba cada 10 segundos

fall 3 # Si falla 3 veces consideramos caído

rise 5 #Exigimos 5 veces para OK

}

El script en cuestión comprobará si responde Asterisk. En el caso de Kamailio hay que tener cuidado y que responda a los OPTIONS y en Asterisk que el contexto entrante por defecto tenga la extensión en cuestión (s)

[entrantes]

exten => s,1,Noop

Para que no tengamos problemas.

Crearemos el script comprobar_sip.sh como sigue:

#!/bin/bash

sipsak -s sip:s@IP_SERVICIO:5060

if [$? -ne 0 ] ; then

exit

else

exit 0

fi

Y crearemos el script estado.sh

#!/bin/bash

STATE=$1

case $STATE in

“MAESTRO”)

service kamailio start || service kamailio restart

exit 0

;;

“BACKUP”)

service kamailio stop

exit 0

;;

esac

En el otro nodo haremos lo mismo pero intercambiando las IPS en el script comprobar_sip.sh y

….

state BACKUP

virtual_router_id 01

priority 99

….

en la configuración de keepalived.conf

Comienza la ElastixWorld 2014 en Santiago de Chile

30 Oct

Si Astricon es la feria Asterisk por antonomasia, Voip2day la feria de la VoIp en Europa, ElastixWorld es la feria más importante del mundo Elastix en el mundo.

En menos de un mes se concentran los tres eventos que hacen saltar de un lado al otro del mundo a los ponentes más solicitados.

Este año tiene lugar en Santiago de Chile con un elenco de ponentes entre los que se encuentran amigos y gente admirada.

Algún año espero tener la suerte de poder participar, este año Voipnovatos se quedó a las puertas 🙂

Durante hoy seguramente será liberada Elastix 3.0 cuya renovación es de las más importantes que ha tenido Elastix. Ya sólo el incorporar un SIP Proxy delante de Asterisk es de total valentía .

(Ya ha sido liberada la 3.0 estable aquí)

Captura de pantalla 2014-10-29 a las 8.14.44

Podéis seguir el evento en sus cuentas de twitter @elastixworld y en el hashtag #elastixworld

SIP Masterclass Madrid del 23 al 27 de Mayo de 2011

3 May

AVISO: Es probable que la feche varí­e , pasándose al mes de Junio. Más información cuando esté disponible

Este año, la SIP Masterclass impartida por Olle Johansson y Daniel-Constantin Mierla se celebrará en Madrid, las sedes anteriores fueron Barcelona Y Málaga.

Durante los 5 dí­as intensos que dura el curso, se analizará SIP tanto en Asterisk como en Kamailio, siendo el curso totalmente orientado a administradores de sistemas basados en ASterisk y Openser , así­ como operadores.

Es una oportunidad única para todos aquellos que trabajéis en un operador, o bien estéis montando uno, y veáis que con Asterisk usado en entornos operador existen limitaciones, viendo en este curso, como se puede complementar Kamailio/Openser para dotar al sistema de muchas más funcionalidades y robustez

El curso se imparte en inglés .

Podéis ver más información del curso en http://avanzada7.com/formacion/sip_masterclass

Kamailio Development Training en BCN (10 y 11 de Febrero)

10 Ene

Daniel-Constantin Mierla dará un curso de 2 dí­as de duración y a un precio interesantí­simo (160 euros), enfocado a desarrollo de código y conocimiento de la estructura con un enfoque de desarrollo de Kamailio.

El temario del curso es el siguiente:

– Internal architecture
– SIP parser
– Memory manager
– Locking manager
– Database API
– Config file language interpreter
– RPC interface
– Pseudo-variables and transformations framework
– Module interface – write your own extensions in C as modules
– Documentation docbook format

Los registros deben hacerse a registration [at] kamailio.org.

El dí­a 10 habrá un evento social, para juntarse gente de la “scene” kamailio :), donde estará Daniel, Jesus (jerocu.net) y Iñaki Baz entre otros.