Sintaxis de colores para archivos .conf en nano

23 Jun

Muchas veces tenemos que editar los archivos .conf de Asterisk desde algún editor no gráfico y seamos honestos: el vim o vi resultan muy complicados para la mayoría de los usuarios, así que en términos de simpleza, nano lleva las de ganar.

Para poder activar una sintaxis de colores que ayude a nano a distinguir las diferencias en el texto de los archivos de Asterisk, inserten en siguiente contenido en su /root/.nanorc

[codesyntax lang=»bash»]

syntax "conf" ".*/*.(conf)$" color brightwhite ".*" color brightcyan ",[a-zA-Z]*(" color yellow "(SIP|IAX|DAHDI|Local)/" color cyan "(#|;).*" color cyan "${.*}" color green "^(exten|include)" color brightgreen "(|)" color brightyellow "($?{|:|}|.|,|=>)" color brightred "'[^']*'" color brightred ""[^"]*"" color brightred "($?[|])"

[/codesyntax]

Esto debe facilitarles mucho la edición de sus archivos siempre que usen este editor.

¡Suerte!… Continuar leyendo

Activar las grabaciones por default para todos los usuarios en Elastix/FreePBX

22 Jun

Algunas veces como profesionales llegamos a un conmutador que ya tiene alguna configuración cargada y se nos pide que hagamos modificaciones. Imaginen que de pronto llegan a un callcenter de 100 posiciones que hace uso de Elastix/FreePBX y les dicen: «Queremos que todas las llamadas de todos los usuarios se graben», pero analizando las extensiones se dan cuenta que todas (o ninguna) tiene la grabación habilitada, y que la mayoría se encuentran en modo de grabación «On Demand», cuando ustedes lo que quieres es que sea «Always»

¿Cómo lo hacen? Espero que no piensen en ir extensión por extensión haciendo el cambio…

Para solucionar esto rápidamente, necesitamos hacer 2 cosas:

Modificar la tabla de MySQL asterisk.users Modificar el Asterisk DB para que coincida con los valores que necesitamos

Y ambas las logramos fácilmente con el siguiente código (desde el Linux CLI):

[codesyntax lang=»bash» tab_width=»3″]

# Primero nos hacemos cargo del… Continuar leyendo

Balanceo de troncales en Elastix (round robin)

21 Jun

Este mini tutorial aplica para FreePBX/Trixbox/Elastix.

La idea tras de esta guía es crear un balanceador de carga. Es decir, tener una sola troncal que automáticamente rote una serie de troncales posibles por las cuales pueden salir las llamadas. Dichas troncales pueden ser DAHDI, IAX2 o SIP, así que esto le agrega flexibilidad.

El código sería algo así (la sintaxis está en AEL para hacer la programación más simple)

[codesyntax lang=»c» tab_width=»3″ blockstate=»expanded»]

// Archivo extensions.ael context roundrobin { _X. => { Set(max=10); Set(n=0); repetir: Set(n=${n}+1); Set(last=$[(${DB(rr/last)}+1)%${max}); Set(DB(rr/last)=${last}); Dial(${DB(rr/trunk${last})}/${EXTEN},30,g); if (${DIALSTATUS}!="ANSWERED") { if (${n}<${max}) { // Repetir ciclo goto repetir; }; }; Hangup; }; }; [/codesyntax]

Nos faltan dos pasos:

Inicializar el AstDB con el valor de la primer troncal. Esto es sencillo ejecutando el comando database put rr last 1 dentro del CLI de Asterisk El paso final es crear una troncal ‘Custom’ dentro de FreePBX/Elastix y agregarla como… 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

Recuperar la contraseña de Elastix/FreePBX

13 Jun

En ocasiones me he enfrentado a la tarea de apoderarme del control de algún servidor Elastix/FreePBX porque el cliente no ha quedado satisfecho con el servicio que su proveedor anterior le ofrecía, así que dado que el cliente no conoce los accesos y los que si lo conocen no me lo van a dar «por la buena», entonces tengo que recuperarlo yo.

Obtener las contraseñas de admin tanto para Elastix como para FreePBX no es complicado, lo único que se requiere es tener acceso de root por SSH (si no tenemos este acceso, podemos obtenerlo siguiendo una de tantas guías para recuperar el password de root que hay en internet). Ya adentro del sistema, podemos hacer lo siguiente desde el CLI de Linux:

echo "UPDATE acl_user SET md5_password='827ccb0eea8a706c4c34a16891f84e7b' WHERE name='admin';" | sqlite3 /var/www/db/acl.db

Con esto cambiamos el password de Elastix a admin/12345. Ahora, para FreePBX:

echo "UPDATE asterisk.ampusers SET password_sha1… Continuar leyendo

Ingeniería social como ataque en Elastix/FreePBX

13 Jun

Hace unos días tuve oportunidad de dar un Curso Asterisk en Guadalajara, y los asistentes preguntaron por la manera en que podríamos hacer una intervención de llamada, con la cual pudiera escucharse la conversación de alguien más sin que esa persona se percatara que la estamos espiando. Esto en Asterisk puede hacerse fácilmente con la aplicación ChanSpy, y en Elastix/FreePBX viene pre-programada para la extensión 555.

Esto significa que cualquiera que esté registrado en nuestro equipo puede marcar 555 y escuchar cualquier conversación que ocurra en ese momento. Pero… ¿y qué hay de aquellos que NO deberían tener acceso a nuestro sistema? ¿Acaso hay algún truco para engañar a los internos y que nos concedan acceso a esta funcionalidad? La respuesta, es SI.

Gracias a la pregunta de @solin182 durante el curso, se me ocurrió algo tan sencillo como esto:

Llamemos al número de teléfono de la víctima (debemos… 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

Cursos Asterisk para mayo y junio en Guadalajara y México

20 Abr

Hay nuevas fechas para nuestros cursos, en esta ocasión en Guadalajara y Ciudad de México. Aquí las fechas y modalidades:

Curso básico – México, DF. 18 y 19 de mayo – Guadalajara, Jal. 8 y 9 de junio – México, DF. 22 y 23 de junio

Curso completo (básico, intermedio e IVR) intensivo – México, DF. 18, 19, 20 y 21 de mayo – Guadalajara, Jal. 8, 9, 10 y 11 de junio – México, DF. 22, 23, 24 y 25 de junio

Para más detalles puedes consultar nuestra página de información general de los cursos. Si tienes alguna duda por favor, utiliza nuestro formulario de contacto.… Continuar leyendo

Curso Asterisk Advanced® oficial, del 23 al 27 de mayo (México, DF)

1 Abr

Después de estarme dedicando por poco más de 4 años a dar cursos de Asterisk, finalmente el año pasado tomé la certificación dCAP. Tras tomarla, entré a la lista de profesionales en la materia autorizados a impartir el curso oficial de Digium, el Asterisk Advanced, así que en mayo se abren las fechas para tomar el curso del 23 al 27 (lunes a viernes). Este curso representa el material oficial para aplicar para el dCAP, de manera que aquellos interesados en aprender las cosas tal cual Digium lo hace deberían tomar este curso.

El costo del curso Asterisk Advanced es de $3,000 USD + IVA por persona (hay un descuento si pagan en abril, quedando en $2,100 USD + IVA). A los interesados en más informes de este curso, les pido utilicen la siguiente forma de contacto.

Recuerden que también imparto cursos que aunque no son el Asterisk Advanced, pero … Continuar leyendo