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

Este año soy ponente en la Astricon : La feria por excelencia de Asterisk

1 jul

Captura de pantalla 2015-07-05 a las 12.05.41

 

Mi ponencia sobre Home Automation with Asterisk ha sido aceptada para la Astricon 2015 que este año se celebra del 13 al 15 de Octubre en Orlando.

Mi charla será el día 14 de Octubre de 11:00 a 11:35 AM hora local.

Podéis consultar la agenda completa aquí

Estoy buscando patrocinadores que me ayuden a sufragar parte de los gastos de traslado al evento , así que si estáis interesados por favor poneros en contacto conmigo en el apartado de contacto o bien por twitter @albersag.

Gracias por vuestra colaboración

Curso Asterisk Advanced en Chile de la mano de USA VOIP

24 jun

Cabecera-SC-Agst

De la mano de USA VOIP se celebrará un Asterisk Advanced los días 24 al 28 de Agosto en Chile.

En esta ocasión he sido invitado para impartir dicha formación , será una de las ocasiones únicas y esperemos que repetidas en el futuro para recibir formación de Asterisk al otro lado del atlántico.

Captura de pantalla 2015-06-24 a las 10.02.46

El precio del curso es de 2000 dólares sin material y 2300 con material, y si formalizáis la reserva hasta finales de Julio tenéis un descuento de 300 dólares adicional.

El materíal incluído en el curso (Opción con material) es :

– 1 tarjeta Digium PRI TE133 o similar

– 1 tarjeta Digium analógica TDMP410 o AEX410

– 1 Modulo FXS 1S110M y 1 Módulo FXO 1XM100M

– 1 Teléfono IP Digium D40

– Documentación curso y prácticas formato papel

Si estáis interesados podéis contactar conmigo o bien hacerlo directamente aquí

Nos vemos en Chile!

Oferta Empleo Asterisk Alicante

28 abr

Si estáis interesados en trabajar con Asterisk y residis en Alicante o planteáis hacerlo, tenéis una oferta interesante de la empresa Fabergroup cuyos requisitos os dejo a continuación:

Ingeniero VoIP con conocimientos de Asterisk, 3CX, gateways, protocolo SIP, administración de sistemas Linux y redes. Las tareas a realizar comprenderán la instalación y configuración de centralitas y el mantenimiento de la infraestructura de operador. Persona con iniciativa, capacidad de trabajo en equipo y dotes de organización y liderazgo.
 
Se valorará certificación dCap, certificaciones 3CX así como experiencia en algún lenguaje de programación.
Podéis contactar con ellos en comercial@fabergroup.es.
Mucha suerte!

Orange lanza su servicio de centralita IP

15 abr

Los operadores tradicionales mueven ficha y empiezan a lanzar un todo en uno para empresas que incluye la conexión a Internet,  servicio de centralita Ip y teléfonos fijos.

Centralita IP integra en un único equipo internet, wifi y servicios de telefonía IP, así como todas las llamadas a fijos y móviles nacionales en una única cuota al mes de 75,95€

Entre los servicios de centralita IP figuran: plan privado de numeración, operadora automática con locuciones personalizables por el cliente, supervisión de estado de usuarios, transferencias, conferencias, buzón de voz entre otros.

Centralita IP facilita dispone de un acceso web para realizar todos los cambios y reconfiguraciones necesarias en tiempo real. Tambien puede  conectar el equipamiento actual de cliente, como teléfonos analógicos, fax o alarma.

 Existen dos teléfonos disponibles

Teléfono IP Premium: Con display LCD de 3 líneas, hasta 9 líneas simultáneas, teclas LED configurables por el usuario, manos libres “full duplex”, calidad de audio HiQ y  switch integrado para conexión del PC.

Teléfono IP Avanzado: Con display LCD, hasta 2 líneas simultáneas, teclas de función, manos libres “full duplex”, calidad de audio HiQ y  switch integrado para conexión del PC.

Más información en http://m.orange.es/empresas/solo-para-pymes/fijo/conecta-pymes/

Priorizar la VozIP usando Mikrotik

29 mar

Si dispones de un router Mikrotik quizá te interese priorizar la Voz IP de tal modo que aunque hagas un uso intensivo del (upload) no afecte a la calidad del audio.

Con fibra la verdad es que salvo casos muy extraños es complicado que te encuentres con ese problema , que era más habituales con conexiones de upload reducido, como adsl o similares.

No obstante la configuración es bastante sencilla y solventará este problema si se presentara.

Tenemos dos opciones, si bien conoces la ip fija del dispositivo o centralita IP puedes marcar los paquetes de dichas ips, o bien usando el etiquetado DSCP , y configurando el terminal para que etiquete los paquetes, usaremos esa opción para aquellos terminales que dispongan de dicha funcionalidad. En el ejemplo usaremos el DSCP 48 para SIP y RTP. Hay dispositivos que marcan con DSCP distinto SIP o RTP , y realmente para la voz lo que nos preocupa es RTP, pero bueno por simplicidad considero el mismo etiquetado para ambos protocolos.

Primero crearemos unas reglas para marcar los paquetes como comentaba:

/ip firewall mangle

add action=mark-packet chain=prerouting comment=VOIP new-packet-mark=voip-mark passthrough=no protocol=udp src-address=10.0.0.2

add action=mark-packet chain=prerouting comment=VOIP dst-address=10.0.0.2 new-packet-mark=voip-mark  protocol=udp

add action=mark-packet chain=prerouting comment=VOIP dscp=48 new-packet-mark=voip-mark

add action=mark-packet chain=prerouting comment=VOIP new-packet-mark=bulk packet-mark=!voip-mark passthrough=no

Posteriormente crearemos las colas correspondientes para que una vez marcados los paquetes se encolen con las consideraciones de que VOIP será mas prioritario que el resto de tráfico (bulk)

/queue tree

add name=Cola_Principal parent=PPOE_CASA priority=1

add limit-at=1M max-limit=2M name=Trafico_VOIP packet-mark=voip-mark parent=Cola_Principal priority=1 queue=ethernet-default

add limit-at=8M max-limit=10M name=Trafico_Bulk packet-mark=bulk parent=Cola_Principal queue=ethernet-default

Si todo va bien veremos matches en las colas como os muestro:

Captura de pantalla 2015-03-29 a las 18.14.49

Cómo configurar un Mikrotik para usar la vlan3 de voip de Movistar FFTH

26 feb

Para los que la vozip es una pasión, lo de usar la voz mediante el puerto FXS de la ONT se nos queda pobre, mucha gente para integrar líneas de FFTH en centralitas suele usar un adaptador FXO conectado al FXS, como Grandstream HT503 o similar , y de esta forma integrarlo en la centralita IP.

Pero esto aunque funciona no es lo óptimo, porque gastarse más dinero en gateway cuando podemos atacar directamente a la plataforma de Movistar a nivel SIP.

Para ello podemos hacer dos cosas, conseguir migrar de alguna forma a sbc.ngn.rima-tde.net nuestra cuenta de fijo, por ejemplo una de las vías es apuntarse a la beta de Mi Fijo 2.0 que conté hace unos días y solicitar el poderla usar fuera de la conexión de fibra. Nos proporcionarán un usuario y en un post posterior mostraré como configurarlo con una centralita Grandstream por ejemplo.

La segunda sería sustituir el router de Movistar y atacar directamente con un Mikrotik. Para ello debemos crear dos vlanes (6 Datos y 3 Voz) , si dispusiéramos de Movistar TV haría falta configurar la vlan2 también, pero eso es otro asunto.

Os muestro la configuración necesaria a continuación.

Creamos las dos vlanes:

add interface=ether1-ont-casa l2mtu=1594 mtu=1594 name=vlan3 vlan-id=3

add arp=proxy-arp interface=ether1-ont-casa l2mtu=1594 mtu=1594 name=vlan6 \
vlan-id=6

Habilitar cliente DHCP por la vlan3

add add-default-route=no dhcp-options=hostname,clientid disabled=no \

interface=vlan3 use-peer-dns=no use-peer-ntp=no

Permitir tráfico vlan3 por el firewall y realizar NATeado

/ip firewall filter

add chain=input in-interface=vlan3

add chain=output out-interface=vlan3

add action=masquerade chain=srcnat out-interface=vlan3

Habilitar los SIP ports

/ip firewall service-port

set sip ports=5060,5061,5070

Y añadir las reglas de rutado por la vlan3

/ip route

add distance=1 dst-address=10.31.255.128/27 gateway=10.22.0.1%vlan3 \
routing-mark=to_vlan3

/routing rip interface

add interface=vlan3 passive=yes receive=v2

/ip firewall mangle

add action=mark-connection chain=prerouting dst-address=10.31.255.128/27 \

in-interface=bridge-local new-connection-mark=voip_vlan3 src-address=\

10.0.1.8 (Aquí la 10.0.1.8 es una centralita IP o teléfono IP)

add action=mark-routing chain=prerouting connection-mark=voip_vlan3 \

in-interface=bridge-local new-routing-mark=to_vlan3

add action=mark-routing chain=output connection-mark=voip_vlan3 \

new-routing-mark=to_vlan3

y luego las rutas corresponidentes

/ip route

add distance=1 dst-address=10.31.255.128/27 gateway=10.22.0.1%vlan3 \

routing-mark=to_vlan3

Con esto cuando vayamos a registrar un teléfono IP o centralita, usaremos los datos

IP de registro: telefonica.net:5060

Proxy: 10.31.255.134:5070

Usuario: 9XXXXXXXX

Password : 9XXXXXXXX ( El mismo número)

Codecs Soportados: G722, G711 , G729 ,H264,H263 y H263p

Cualquier duda, dejarla en comentarios

Webinars sobre Voz IP

24 feb

Avanzada7 ha publicado los vídeos de los webinars que viene realizando desde 2012, lo que es una interesante fuente de conocimiento para conocer fabricantes, productos y tecnología de la mano de unos de los distribuidores con más experiencia en España y Europa.

Podéis encontrar los vídeos aquí y tenéis organizado por años los vídeos en el siguiente enlace.

Barcelona WebRTC Meetup

30 ene

global_432745515.jpeg

Para todos aquellos que andáis interesados en WebRTC y/o fascinados por esta nueva tecnología que lleva las comunicaciones unificadas al navegador, tenéis un evento que no os podéis perder el día 4 de Marzo de 2015 en Barcelona.

El evento tendrá lugar en :

Poblenou campus Auditorium – Universitat Pompeu Fabra (UPF)

y la agenda del evento completa la podéis localizar en este enlace

Un evento imprescindible. No os lo perdáis!. Para apuntaros podéis hacerlo en el link del evento

Llamadas de Voz Fija en Móvil: MiFijo 2.0 en Fibra Movistar FFTH

26 ene

Los que sois un poco más avezados ya habréis configurado vuestra cuenta de teléfono en un softphone o centralita IP.

Para los que esto se os escapa un poco , que sepáis que Movistar tiene una aplicación llamada Fijo 2.0, aunque todavía está en beta, para hacer esto .

En mis pruebas es necesario hacerlo con el router comtrend y conectándose a su wifi, yo uso un mikrotik y no he conseguido echar a andar la famosa “vlan3″ fuera del router que provee Telefónica.

En las capturas de la señalización SIP que lanza el programa para android se puede ver que es un LinphoneAndroid/0.4-46-g93fb3bb (belle-sip/1.3.3) :)

Para aquellos que queráis ampliar información os dejo el siguiente enlace.

 

Sangoma apuesta fuerte y compra FreePBX

2 ene

logo

 

Movimiento  importante en el panorama VOIP como es la compra del interfaz web por excelencia , FreePBX por parte de sangoma.

El coste de la operación ronda los 4 millones de dólares, 1 millón en acciones de Sangoma y millón y medio en un variable si ciertos objetivos son alcanzados.

Con una empresa importante como sangoma apostando por FreePBX, ahora que Elastix se independiza del uso de FreePBX en las últimas versiones de Elastix , es un movimiento importante que sólo el tiempo aclarará quien se lleva el gato al agua.

De igual forma adquiere la empresa RockBochs que ofrece servicios en la nube de FoIP (Fax over IP).

Sin duda la noticia de finales de 2014. Qué más nos traerá este 2015?

Más información Nota de Prensa

Feliz 2015

31 dic

Unas palabras antes de que termine este año.  Cierto es que he perdido un poco de fuelle bloguero, el trabajo,  la familia y todas esas excusas que se suelen poner me han tenido bastante ocupado.

Gracias por estar ahí como años anteriores y a voz.com por su apoyo incondicional este tiempo.

Un fuerte abrazo

Alberto