Comunicación entre dos localidades remotas con Elastix + IAX2

Supongamos que tenemos dos localidades y en cada una un Asterisk. Podemos interconectar estas a través de Internet con este sencillo procedimiento.

Voy a llamar al servidor de la LocalidadA como ServidorA y al de la LocalidadB ServidorB.

De igual manera, voy a asumir el siguiente esquema de extensiones:

Servidor          IP            Extensiones
ServidorA         192.168.0.1   100 a 199
ServidorB         192.168.1.1   200 a 299

Creamos una nueva troncal IAX2 desde el menú PBX / Troncales:

En ServidorA:
TRUNK NAME:  servidorb
host=192.168.1.1
username=servidora
secret=123456
encryption=aes128
auth=md5
type=friend
context=from-internal
trunk=yes
requirecalltoken=no

En ServidorB:
TRUNK NAME: servidora
host=192.168.0.1
username=servidorb
secret=123456
encryption=aes128
auth=md5
type=friend
context=from-internal
trunk=yes
requirecalltoken=no

Creamos las rutas salientes en ServidorA:
<code>
Route Name: LocalidadB
Dial Patterns: 2XX
Trunk Sequence: IAX2/servidorb
</code>

Creamos las rutas salientes en ServidorB:
<code>
Route Name: LocalidadA
Dial Patterns: 1XX
Trunk Sequence: IAX2/servidora
</code>

Ahora podemos llamar desde LocalidadA hacia LocalidadB y viceversa :)

Si queremos ahorrar ancho de banda se pueden agregar estas dos líneas en la configuración de cada troncal estos parámetros para permitir el uso de codecs de bajo consumo de ancho de banda:

disallow=all
allow=gsm&ilbc

  • Share/Bookmark

Fiesta Bug Squash de Elastix

Queremos invitar a la comunidad de Elastix este día viernes al nuestra primera fiesta bug squash. Los desarrolladores de Elastix estarán presentes en el canal de chat de desarrolladores de Elastix (#elastix-dev) en la red de freenode. El objetivo de esta fiesta bug squash es para resolver la mayor cantidad de bugs de Elastix 2.0 y 1.6.x. Todos están invitados: desarrolladores, beta-testers y usuarios!

Date: Friday June 25, 2010
Time: 10:00 – 17:00 GMT -5 (15:00 – 21:00 GMT 0)
IRC Channel: #elastix-dev
Network: irc.freenode.net

  • Share/Bookmark

Elastix redundante, método fácil

Este manual describe como armar un cluster con dos elastix para tener redundancia en caso de que el principal falle. La operación nos dará mas disponibilidad del servicio, en condiciones normales si nuestra centralita falla el tiempo que estaremos sin comunicación será el que nos tome copiar las configuraciones en otro servidor, ó si ya lo tenemos listo, el tiempo que sea necesario para encenderlo y conectarlo.
La ventaja del sistema que se plantea en este manual es que las configuraciones se respaldan por red cada minuto, así en caso de fallas tendremos en un par de minutos un sistema casi idéntico al que estaba en producción antes del fallo.
El servidor Maestro copiará cada minuto sus archivos de configuración hacia el Esclavo. Read the rest of this entry »

  • Share/Bookmark

Tips desconocidos y que todos tenemos al alcance de la mano: Actualizar el firmware de una tarjeta Sangoma de 1 enlace primario

Siguiendo con una línea de tocar temas raros y a veces desconocidos para muchos hoy les voy a mostrar en este sencillo tutorial una opción super interesante y poco comentada que tienen todas las tarjetas SANGOMA, la opción de actualizar su firmware y programación interna, por ejemplo si tuvieramos el caso de que no funcionan por una incompatibilidad con x o y fabricantes de hardware.

Requisito inicial de este tutorial: Tener una tarjeta Sangoma instalada y detectada en el sistema y los drivers perfectamente compilados.

El proceso comienza simplemente observando con el siguiente comando desde consola de linux o Windows(r) la versión de firmware y las tarjetas Sangoma que poseemos (en este caso una Sangoma a101 de 1 conexión E1/T1):

[root@voip2 ~]# wanrouter hwprobe

——————————-
| Wanpipe Hardware Probe Info |
——————————-
1 . AFT-A101-SH : SLOT=4 : BUS=4 : IRQ=10 : CPU=A : PORT=1 : HWEC=0 : V=34

Card Cnt: A101-2=1

[root@voip2 ~]#

Como podemos ver al final de la línea que marca la tarjeta 1 dice v34 lo cual es la versión de firmware actual que posee dicha tarjeta…Ahora para saber si debemos actualizar o no miraremos en la siguiente página que posee Sangoma para estos upgrades de sus tarjetas AFT…

http://wiki.sangoma.com/sangoma-hardware#aft_firmware

Read the rest of this entry »

  • Share/Bookmark

PPTP en Centos y Tunneles con SSH

Es común que una vez que tenemos un PBX instalado requiramos de accesar via remota a algún equipo telefónico para realizar algún cambio o incluso al router para realizar algún redireccionamiento de puertos, a continuación veremos 3 soluciones distintas para lograr esto.

La primera opción y a mi gusto la mas práctica es instalar un servidor PPTP en nuestro servidor Elastix, para ellos debemos de seguir los siguientes pasos: Read the rest of this entry »

  • Share/Bookmark

Nueva Publicación “Elastix a Ritmo de Merengue”

Seguramente muchos de ustedes ya se habrán enterado, ya sea por el portal de elastix.org, alguna lista de distribución de Elastix o por el portal de Sinologic de la nueva Publicación de Alfio Muñoz, sin embargo no podiamos dejar de publicar una nota sobre esta gran publicación dentro del Blog de Elastix, de lo contrario seria como tener azadón de palo en casa de herrero.

Hace algunos dias me platico Alfio que se encontraba en Ecuador para hacer la presentación de este libro , y fue hasta el día viernes que se hizo de forma oficial en las oficinas de Palosanto. En cuanto converse con Alfio me di a la tarea de descargar el libro pero por azares del destino no fue sino hasta el fin de semana que pude darme el tiempo para leerlo. Read the rest of this entry »

  • Share/Bookmark

Llamadas automatizadas con Call Center

Estimados, ésta es mi primera aparición en el blog, como una pequeña introducción les comento que mi nombre es Juan Pablo Bustos, escribo desde la provincia de Mendoza – Argentina, soy analista de sistemas y también cuento con la certificación ECT.
El objetivo de ésta implementación es la utilización del dialer de Elastix para llamar a una lista de clientes, reproducir un mensaje, y a su vez, no perder la funcionalidad de call center con agentes “reales”, además tener la posibilidad de utilizar un script mediante AGI para guardar las respuestas (en caso de una encuesta o pregunta) en una base de datos una vez que llamada fue completada.
Para comenzar, es necesario que creemos:

  1. Algunos “agentes virtuales”, que en principio son creados desde la interfaz de call center.
  2. Un custom context para “loguearlos” mediante el comando AgentCallbackLogin (que lamentablemente no estará disponible desde Asterix 1.5, pero ya existen formas de implementarlo de otra manera).
  3. Otro custom context para “desloguearlos” (básicamente con el proposito de debugging, pero en ciertas ocasiones resulta útil).
  4. Un custom context para redireccionar las a llamadas hacia un último custom context que se encargará de manipular inalmente las llamadas. Read the rest of this entry »
  • Share/Bookmark

Instalación de Fail2Ban

En el primer post sobre políticas de seguridad mencionamos un programa llamado Fail2Ban, ahora en este post hablaremos de como instalarlo y configurarlo para proteger nuestros equipos contra robots y ataques de diccionario hacia nuestra consola.

Fail2Ban es un analizador de logs , que busca intentos fallidos de registro y bloquea las IP’s de donde provienen estos intentos.

Instalación y Configuración

Paso #1:Debemos de Instalar python en nuestro servidor , para ello ejecutamos
[root@elastix]# yum install python*

Paso #2:Descargamos Fail2ban en la carpeta /usr/src desde su pagina en sourceforge

[root@elastix]# cd /usr/src
[root@elastix src]# wget http://downloads.sourceforge.net/project/fail2ban/fail2ban-stable/fail2ban-0.8.4/fail2ban-0.8.4.tar.bz2?use_mirror=hivelocity

Paso #3 Descomprimimos e instalamos Fail2Ban
[root@elastix src]# tar xvfj fail2ban-0.8.4.tar.bz2
[root@elastix src]# cd fail2ban-0.8.4
[root@elastix fail2ban-0.8.4]# python setup.py install

Con esto tendremos instalado Fail2Ban en /usr/share/fail2ban. Los scripts los encontramos en /usr/bin.

Ahora debemos de configurar Fail2Ban para que analice los logs que deseamos y bloque IP,s y nos sean enviadas notificaciones vía e-mail.para ello modificaremos el archivo jail.conf que encontramos en /etc/fail2ban

[root@elastix src]# cd /etc/fail2ban
[root@elastix fail2ban]# vi jail.conf

Lo primero a modificar es el valor bantime, este valor determina el tiempo en segundos que quedará bloqueada la ip que esta atacándonos , por defecto el valor viene en 600.

Después buscamos el valor maxretry que serán el número de veces que una IP puede tener una autenticación fallida antes de ser bloqueada.

Para que busque intentos fallidos de logueo por ssh buscamos la siguiente parte:
[ssh-iptables]
enabled = false
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, dest=you@mail.com, sender=fail2ban@mail.com]
logpath = /var/log/sshd.log
maxretry = 5

Y la dejamos así:

[ssh-iptables]
enabled = true
filter = sshd
action = iptables-allports[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, dest=tu@correo.com, sender=fail2ban@correo.com]
logpath = /var/log/secure
maxretry = 3

Modificando estos valores podemos buscar los errores que queramos en el log que queramos , se podría bloquear por ejemplo , intentos fallidos de registro SIP modificando otras líneas.

Para iniciar el cliente de Fail2ban utilizamos el comando fail2ban-client start

  • Share/Bookmark

Ingreso sin contraseña a servidor Elastix por consola

Con colaboración de Frank Cristino.

Cuando tenemos un gran número de conmutadores implementados y queremos ingresar por ssh, aún y cuando tengamos una metodología para asignar las contraseñas de root, es dificil recordar todas ellas o simplemente nos da flojera estar ingresando las contraseñas y mas aún cuando estamos trabajando en más de un equipo a la vez, para ello existe una forma muy sencilla de ingresar a nuestros equipos sin la necesidad de estar ingresando una y otra vez la contraseña, usando keys.

Primero que nada abrimos una consola dentro de nuestra máquina y ejecutamos el siguiente comando:
ssh-keygen -t rsa

Nos hara algunas preguntas en las cuales solo daremos “Enter” sin escribir nada mas.

Con esto generaremos 2 archivos de forma automática id_rsa y id_rsa.pub (normalmente los encontramos dentro de la carpeta del usuario que estamos utilizando dentro de la carpeta /.ssh ej. /home/usuario/.ssh/ )

Abrimos el archivo id_rsa.pub y copiamos el contenido. (ej. vi /home/usuario/.ssh/id_rsa.pub)

Posteriormente ingresamos a nuestro servidor elastix por consola como lo hacemos normalmente y editamos el archivo:
/root/.ssh/authorized_keys y pegamos el contenido que copiamos del archivo id_rsa.pub de nuestra máquina.

Todo listo, ahora bastara con ingresar en nuestra consola “ssh root@direlastix.org” como normalmente ingresamos a nuestro equipo elastix, pero ahora veran que no les solicita contraseña y que ingresaran automáticamente.

  • Share/Bookmark

Usuarios y extensiones en Elastix/freebpx

Por defecto en freepbx la forma de manejar es AMPEXTENSIONS=extensions, con esta forma que es la que todos conocemos las extensiones son creadas y ahí mismo es asignado un usuario que en este caso es nuestro numero de extensión, ( no se compliquen mucho esta es la forma que todos conocemos asi que no pongan cara de que no saben de que les soy hablando), pero que sucede, también hay otra forma de hacerlo y es cambiando el parámetro AMPEXTENSIONS=deviceanduser, con esta forma se nos agregara una pestaña nueva en freepbx que dirá Device.

Estos parámetros están el archivo amportal.conf, ubicado en /etc.

Read the rest of this entry »

  • Share/Bookmark