Terminado el curso de Vicidial

12 Sep

Durante los últimos 4 días estuve en Tampa, FL tomando un curso acerca de Vicidial, una suite open source con marcador predictivo para call centers basados en Asterisk. El curso fue impartido por Matt Florell, el creador del software, y durante las horas que estuvimos en el salón de clases pude aprender y corroborar muchos detalles interesantes sobre este sistema que aunque lleva varios años en el mercado, pocos se han dado a la tarea de conocerlo.

El curso se divide en 2 partes: el Manager y el Admin. Durante el curso de Manager se da una explicación a detalle de como utilizar la interfaz web de Vicidial: como se crean campañas de entrada y salida, como se cargan registros, como se configuran carriers para enviar las llamadas, como podemos controlar la distribución de llamadas entre los agentes, etc. Todas y cada una de las opciones de las más de … Continuar leyendo

Como eliminar el eco en llamadas: instalando OSLEC y usando fxotune

7 Sep

El eco en una señal de telefonía ocurre cuando tenemos 2 conductores a diferentes impedancias. El desacople de las mismas ocasiona que la señal se refleje y se perciba por nuestro cerebro como 2 señales diferentes. Si el eco es superior a 150ms, comienza a volverse molesto ya que como humanos nos distrae de la conversación que estamos teniendo.

En un sistema 100% VoIP el eco no existe. Definitivo: no existe. Sin embargo, dado que aún ocupamos medios analógicos para poder nosotros enviar o recibir el audio (micrófonos y altavoces), es en estos dispositivos donde el eco puede ocurrir. El punto más común donde se produce el eco es en el medio que ocupemos para conectarnos con medios 100% analógicos, como la línea telefónica, así que es responsabilidad de nuestras tarjetas o gateways, hacerse cargo de cancelar este eco, ya sea mediante hardware o software (recuerden que en VoIP, la … Continuar leyendo

Elastix hack: Usar los Cisco SPA5XX con el endpoint configurator de Elastix

19 Jul

En numerosas ocasiones he usado el Endpoint Configurator de Elastix para facilitar la configuración de múltiples teléfonos de manera rápida y sencilla. Sin embargo, recientemente que empecé a ocupar los teléfonos Cisco SPA502G y SPA504G me topé con que Elastix no los reconoce (o al menos, no directamente), así que no podía usar el configurador automático con ellos.

Los teléfonos de la serie SPA provienen de Linksys, el fabricante de equipo de red para SoHo que Cisco adquirió, pero estos a su vez provienen de Sipura, que es un fabricante que pocos conocen y que hace mucho tiempo, Linksys compró. La configuración entre los diferentes modelos no ha cambiado mucho a pesar de los años, así que un Cisco SPA504G se configura prácticamente igual que un Linksys SPA942, y esos SI son detectados por el configurador de Elastix.

Entonces… ¿Cómo hacemos para que Elastix detecte estos nuevos modelos?

Una forma … Continuar leyendo

Protege tu Asterisk de ataques usando fail2ban

7 Jul

En ocasiones anteriores he hecho la mención de fail2ban, una herramienta escrita en Python que analiza logs del sistema y responde en caso de que ciertas condiciones se cumplan, por ejemplo, 5 intentos de contraseña SSH equivocada en un periodo de 10 minutos. Dada la proliferación de ataques a equipos Asterisk para tratar de hacer llamadas de larga distancia, tiene sentido que ocupemos esta herramienta para protegernos de los amantes de lo ajeno.

Ahora bien, ¿cómo configuramos esta herramienta para que nos evite los cargos de miles de dólares en llamadas fantasmas?

Primero, lo instalamos. En Debian podemos usar el mundialmente reconocido apt-get:

apt-get install fail2ban

O, si tenemos Centos, primero asegurémonos de que tengamos EPEL (un repositorio que nos da acceso a mucho software útil) y luego instalamos fail2ban:

rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm yum -y install fail2ban

Fail2Ban se configura en 2 partes básicas:

/etc/fail2ban/jail.conf – Define que logs monitorear… Continuar leyendo

Mantente actualizado con los cambios en Asterisk

7 Jul

Si alguno de ustedes es como yo, muy probablemente les guste batallar con los betas. Suelo ser de aquellos que en cuanto sale una nueva versión corro a adoptarla, no importándome los problemas de estabilidad o soporte extra que esto conlleva. Sin embargo, hay algunos casos en los que definitivamente no es posible sacrificar la confiabilidad de un sistema, aunque esto nos traiga nuevas funcionalidades.

En sus inicios yo literalmente brinqué de Asterisk 1.0 a 1.2 sin pensarlo, lo mismo 1.2 a 1.4, y esto es hablando en entornos en producción (mala idea, yo sé, afortunadamente funcionó bien), pero cuando quise hacer lo mismo para 1.6 me paré en seco: mis sistemas se caían sin razón aparente, muchas cosas cambiaron, el AgentCallbackLogin dejó de existir y en general fue una experiencia poco placentera, al grado que decidí quedarme con 1.4 (y hasta la fecha) lo he seguido haciendo.

Con la … Continuar leyendo

Como convertir archivos de sonido y musica en espera para Asterisk

6 Jul

Muchas veces me han pregunado si Asterisk soporta MP3 como música en espera: la respuesta es si y no. Debo decir que si porque en efecto, con el módulo format_mp3 se pueden reproducir MP3, pero debo decir no porque solamente se soportan los de bitrate constante (y hoy en día, prácticamente todos son de bitrate variable, o VBR), además de que el consumo de CPU causado por el transcoding realmente puede afectar al sistema.

Entonces, ¿cómo podemos hacer para convertir nuestra colección favorita de audio MP3 a wav, gsm, ulaw o cualquier otro de los formatos que Asterisk soporte? El mecanismo es más sencillo de lo que se cree, siempre y cuando se tengan los conocimientos mínimos de Linux para hacerlo.

Si tu música origen es MP3, necesitas instalar SoX con soporte para MP3. Aquí un tutorial (en inglés) de como hacerlo. Si tienes Debian, es tan sencillo como… Continuar leyendo

Respaldando la base de datos de configuración de Elastix/FreePBX por SSH

27 Jun

Una gran ventaja que tenemos en Linux es la facilidad de crear procesos automatizados que nos ayuden a ejecutar tareas cotidianas. Para nuestros usos comunes como administrador de equipos basados en Asterisk/Elastix/FreePBX, puede ser una labor cotidiana respaldar la configuración alojada en bases de datos de MySQL.

SSH nos permite ejecutar comandos en servidores Linux remotos y traernos el resultado al mismo tiempo, por lo que resulta ideal para realizar un respaldo en un equpo distante y almacenarlo en nuestro equipo Linux loca. El comando para hacerlo sería el siguiente (asumiendo que usamos la contraseña default de MySQL en nuestro equipo remoto):

[codesyntax lang=”bash”]

ssh 192.168.1.100 "mysqldump -peLaStIx.2oo7 --databases asterisk | gzip -9" > respaldo.sql.gz

[/codesyntax]

El comando de arriba se encargará de hacer un dump de la BD asterisk. Si quisiéramos traernos también el CDR, hariamos lo siguiente:

[codesyntax lang=”bash”]

ssh 192.168.1.100 "mysqldump -peLaStIx.2oo7 --databases asterisk cdr | gzip… Continuar leyendo

Una posible solución al “No service” de los teléfonos Aastra (y como mejorar el rendimiento de los reportes de llamadas)

17 Jun

Para los que nunca han hecho uso de, Aastra es una marca de telefonía con base en Ontario, Canadá. Últimamente, su crecimiento se ha dado fuertemente gracias a la prevalencia de sistemas como Elastix que se integran muy bien con sus teléfonos. Mi percepción personal de la marca desde el punto de vista del valor del producto es intermedio: no es una marca tan barata como Grandstream o Yealink, pero tampoco es una tan cara como Polycom o Cisco. Es una marca que está a muy buenos medios términos en cuanto a calidad y funcionalidades se refiere.

Un “inconveniente” que tienen sus teléfonos es que son extremadamente sensibles al retraso de paquetes cuando están en modo de stand by. Esto quiere decir que constantemente los teléfonos están enviando paquetes a Asterisk para medir el estado del servicio, y si el servidor por un momento se retrasa con la respuesta, … Continuar leyendo

Versión mejorada del mensaje “all circuits are busy” de Elastix (v3)

31 May

Este código se encuentra desactualizado. Hay una versión más reciente disponible en http://asteriskmx.com/2013/04/version-mejorada-del-mensaje-all-circuits-are-busy-de-elastix-v4/

En muchas ocasiones hemos oido el mensaje de “all circuits are busy” (“todos los circuitos se encuentran ocupados” si es que tenemos los sonidos en Español) de Elastix. El problema con este mensaje es que es reproducido ante cualquier falla de nuestro enlace. Esto incluye a números que no existen, números desconectados y cualquier otra causa de error que no siempre es culpa de nuestro conmutador, pero que el usuario final siempre le achaca al sistema que le configuramos.

Con la intención de abrir un poco el panorama y dar más información sobre la causa del error, escribí este código para ayudar a distinguir cual es la verdadera causa del problema. Para ello, es necesario modificar 2 archivos, dentro de /etc/asterisk

// Archivo extensions.ael macro outmessage(HC) { switch(${HC}) { case 1: // Unnalocated or unnasigned number //… Continuar leyendo

La emoción de convertirse en dCAP

27 May

Habemos quienes nos dedicamos a Asterisk día y noche: es nuestro hobby, nuestro sustento, nuestra herramienta, en algunos casos hasta nuestra ideología. Quizá el hecho de tomar una certificación basada en lo que vemos va más allá del conocimiento y entra un poco en lo personal: creemos que eso nos define como profesionales, sentimos alguna decepción si acaso no la obtenemos. Ya no lo hacemos por decir que sabemos, lo hacemos por nosotros.

Hace poco más de 6 meses tomé la certificación como parte de sentir que tenía derechos para decir que sé (al final de cuentas, vivo de enseñar a otras personas y me sentiría muy mal conmigo mismo si no tuviera la garantía que no solo sé, sino que la máxima autoridad al respecto también opina lo mismo). En aquel día, con todo y 6 años dedicándome a Asterisk, llegué a presentar el examen con los típicos nervios:… Continuar leyendo