Contador estandar

02. July 2008

Curso de Asterisk Bootcamp: dia 3

Otro día frenético, si yo he acabado reventado no me quiero ni imaginar como habrán acabado los pobres asistentes del curso.

Dialplan, más dialplan, más dialplan aún y mañana aún más, muchos conceptos y muchos laboratorios donde la gente tiene que aprender para continuar adelante con nuevos conceptos.

Pufff, espero que la gente descanse para mañana que haremos la gran Asterisk Night Party, y el día siguiente más Bootcamp y el examen dCap.


07. June 2008

DialogPallete: Un programador visual de dialplan libre

Bytecoders nos presenta una aplicación bastante curiosa que nos permite programar un dialplan para Asterisk de forma completamente visual como el conocido VisualDialplan pero a diferencia de este último, su código fuente se distribuye bajo licencia GPL: DialogPallete.

Como podeis ver, este tipo de aplicaciones son muy espectaculares a la hora de hacer un dialplan sencillo, aunque dudo bastante de la potencia ante algunas configuraciones más complicadas, no obstante su función la cumple: facilitar la programación y edición de un dialplan a manos de usuarios sin conocimientos avanzados.

DialogPallete funciona bajo Linux y ha sido desarrollado en C++ y Python junto con las librerías QT3.

En el foro de DialogPallete podeis encontrar ayuda sobre cómo instalarlo y configurarlo aunque, como bien indica Bytecoders, el desarrollo parece haber sido suspendido ya que la última versión salió hace más de 2 años.

La verdad es que me llama la atención la similitud de VisualDialplan y DialogPallete, aunque tras echar un rápido vistazo descubro que los autores no son los mismos y de hecho están en diferentes países por lo que puede ser simplemente casualidad el parecido entre estas dos aplicaciones y parece que VisualDialplan lleva la delantera al ser un proyecto activo y con continuas actualizaciones (la última versión soporta Asterisk 1.4) algo muy importante hoy día es mantener este tipo de proyectos bien actualizados. Pero encontrar una versión libre puede hacer renacer este tipo de aplicaciones tanto por el autor como por cualquier otro usuario interesado en continuar el proyecto, esto ratifica el hecho de que el software libre ayuda a evolucionar y a mejorar. :)

Enlace: http://dialogpalette.sourceforge.net/

11. May 2008

Cómo ver tu dialplan gráficamente

Leyendo Asterisk-Java me encuentro que el autor acaba de desarrollar una aplicación de código abierto (cómo no, escrita en Java) que lee nuestro archivo ‘extensions.conf‘ y nos genera un grafo con la estructura de nuestro dialplan.

Desconozco realmente la finalidad de esta aplicación, aunque imagino que puede estar bien para descubrir contextos que no están enlazados y por lo tanto, que “ensucian” y dificultan la lectura.

La aplicación que permite “dibujar” los grafos base se llama Egonet y en la página de Asterisk-Java teneis el código fuente.

22. April 2008

Cómo ejecutar comandos de Asterisk desde la consola

A veces es necesario ejecutar comandos de Asterisk y sacar el resultado por la consola para luego poder procesarlo con un script y poder obtener información útil.

La manera sencilla es mediante la ejecución de Asterisk con la línea:

asterisk -rx 'comando

Cuando ejecutamos esta línea, lo que realmente ocurre es que nos conectamos a Asterisk, ejecutamos el comando y nos salimos obteniendo por la consola de Linux el volcado de lo que queremos conocer.

Esta es, sin duda una de las mejores maneras cuando queremos obtener el resultado de un comando de forma puntual, pero para “monitorizar” un Asterisk, hay quien crea scripts que utilizan esta forma varias veces cada pocos segundos, lo que provoca que cuando alguien se conecta a la consola de forma natural, se encuentre con estos mensajes molestos:

-- Remote UNIX connection
-- Remote UNIX connection disconnected
-- Remote UNIX connection
-- Remote UNIX connection disconnected
-- Remote UNIX connection
-- Remote UNIX connection disconnected
-- Remote UNIX connection
-- Remote UNIX connection disconnected

En cada conexión podemos obtener los usuarios SIP registrados, el número de llamadas actuales, los canales ZAP utilizados, etc, pero claro, este método hace impracticable el hecho de utilizar la consola de Asterisk.

La manera interesante, es realizarlo mediante el AMI (manager), es decir, hacer una aplicación que se conecte al puerto del Manager (5038 por defecto), se autentifique correctamente y envíe los comandos necesarios para obtener los resultados necesarios de una manera transparente para el Asterisk y sin que los usuarios conectados vean el molesto mensaje.

Para evitar esto, Tzafrir Cohen de Xorcom acaba de publicar un parche para evitar estos mensajes y poder ejecutar comandos sin necesidad de que nadie llegue a molestarse.
Este parche está en la versión Trunk y lo podeis descargar de aquí:
http://svn.digium.com/view/asterisk/trunk/contrib/scripts/astcli

Yo por mi parte, tengo un programita en perl muy sencillo que se conecta al manager y con el que obtengo todos los datos necesarios sin tener que molestar a nadie y bastante rápido.

Pese a ser una tontería de script, aquí os lo pongo por si a alguien le interesa:
http://www.sinologic.net/proyectos/asterisk-cmd

11. April 2008

Cómo crear IVR complicados con Asterisk (y con vídeo 3G)

En las empresas pequeñas no suele ser lo habitual tener un IVR, aunque en empresas medianas o grandes es recomendable e incluso muy necesario disponer de un sistema que permita al llamante seleccionar el departamento, la persona o incluso acceder a información personal a través de lo que se llama “IVR” aunque comúnmente también se denomina “menú”. IVR (Interactive Voice Response) en español (Respuesta de voz interactiva).

Asterisk, al disponer de una programación del dialplan totalmente personalizable gracias a la infinidad de métodos disponibles para gestionar una llamada, dispone de un potencial asombroso para crear menús tan sencillo o complicados como uno quiera.

A medida que la empresa va creciendo o dispone de más servicios de cara al cliente, va aumentando el tamaño del menú de entrada de su sistema, así por ejemplo todos conocemos los IVR de las operadoras de telecomunicaciones que interactúan con la voz (ni siquiera es necesario pulsar un dígito) y nos llevan a diferentes menús según la opción elegida.

Cuando programamos en el ‘extensions.conf’ un IVR por lo general suele ser sencillo, ya que más de tres submenús empieza a parecer bastante tedioso hacer modificaciones y si tenemos que añadir una opción al segundo submenú con otro menú incluida las locuciones correspondientes, puede llegar a convertirse en todo un desafío.

A medida que el menú en el dialplan se va complicando, uno empieza a ver con buenos ojos algo que escuchó sobre el VoiceXML que permitía programar menús IVR de una forma bastante más sencilla y segura.

El VoiceXML no únicamente sirve para gestionar menús, también sirve para conectar a un TextToSpeech y a un ASR de manera que pueda hablar y escuchar a la persona que está al otro lado de la línea y poder realizar acciones y comandos en base a lo que diga o haga, pero esto es otro tema del que ya hablaré en otro momento.

Si además de permitirnos menús más serios, disponemos de un Asterisk con soporte de Videollamada 3G conectado a una línea RDSI (Básica o Primaria), entonces los resultados son altamente espectaculares.

Podeis ver más demostraciones en:
http://www.i6net.com/support/video-demos/

y cómo instalarlo y configurarlo con Asterisk, en:
http://www.i6net.com/support/install/

13. March 2008

Visual Dialplan bajo Linux

VisualDialplanUna de los inconvenientes que encontré cuando probé la aplicación Visual Dialplan era que, estando programado en Java, únicamente era compatible con Windows, una fea costumbre de utilizar un lenguaje multiplataforma para crear aplicaciones uniplataforma.

Anoche me llegó un email anunciándome que la empresa Apstel acaba de desarrollar la versión para Linux de su aplicación Visual Dialplan. Esta versión aún se encuentra en fase beta, pero se puede probar y seguro que a más de uno le gusta el sistema para evitar utilizar el editor de textos o un sistema basado en web.

Podeis solicitar ser betatester en su página web:
http://www.apstel.com/products/vdp/

24. December 2007

Cómo ejecutar AGI de forma asíncrona

Lo primero que hay que saber es qué es un AGIqué es el AMI.
Una vez sepamos la diferencia entre estas dos maneras de ejecutar aplicaciones de manera que interactúen con Asterisk, nos daremos cuenta que los AGI deben ejecutarse cuando se realiza una llamada (para consultar un número de teléfono en una base de datos, o similar), mientras que el AMI está contínuamente conectado a Asterisk y puede ejecutar comandos cuando quiera independientemente de cuando haya o no llamadas activas.

El objetivo de esta técnica, consiste en ejecutar AGI cuando se produzca un evento, no cuando se ejecute desde el dialplan.

Combinando las dos técnicas (AGI y AMI), se puede llegar a hacer esto:

# telnet localhost 5038
Action: Login
Username: test
Secret: test

Action: AGI
Channel: SIP/33-blah
Command: EXEC Playback tt-monkeys
CommandID: MyCommandID

En este caso, habremos ejecutado un comando de AGI en el instante que hayamos decidido, no hace falta que lo ejecute el propio dialplan de Asterisk.

Otra idea estupenda sería poder ejecutar comandos AGI incluso desde la consola de Asterisk:

tcore*CLI> agi exec SIP/testing-09a5b960 “EXEC startmusiconhold”
tcore*CLI> agi exec SIP/testing-09a5b960 “EXEC stopmusiconhold”
tcore*CLI> agi exec SIP/testing-09a5b960 “EXEC Dial(Agent/23)”

Para esto, hay un parche que permite utilizar los comandos AGI desde la consola:
http://www.moythreads.com/asterisk-1.4.15-async-agi.patch

Una técnica más para poder llegar a hacer aquello que tenemos en la cabeza. :)

Vía: http://www.moythreads.com/wordpress/2007/12/24/asterisk-asynchronous-agi/
 

28. November 2007

Presentando Visual Dialplan v.1.2

Hace tiempo que desde APSTEL nos avisaron que disponían de una nueva versión compatible con Asterisk 1.4 y Asterisk 1.2 para diseñar dialplans de una forma gráfica y sobre todo bastante intuitiva.

No es que sea muy amigo de los interfaces (los que me conoceis, creo que ya lo sabeis), pero siempre es bueno conocer las alternativas ya que hay casos en los que personalmente los aconsejo, bien porque la programación es muy sencilla o bien porque varía tantas veces que merece la pena que la persona pueda cambiarla a su placer.

Tras ver el aviso en la web de Saúl y recibir un correo me acordé que quedé pendiente de echarle un vistazo y ver cómo funcionaba, algo que requería de un mínimo de tiempo, pero no es precisamente algo de lo que me sobre.

Visual DialplanLa primera crítica constructiva es que únicamente funciona bajo Windows, eso considerando que instala una máquina virtual Java (JRE) creo que es un paso atrás. Creo que por el mismo esfuerzo se podría hacer compatible para más sistemas como Mac o Linux.

El sistema es muy intuitivo, realmente no se hace necesario leer ningún manual para entender cómo funciona, aunque sigue siendo necesario conocer los comandos, algo que generalmente se le suele evitar al usuario final aunque siempre se peca de demasiado completo o demasiado simple.

El diseño es realmente a base de “botonazo de razón” y salvo para escribir algún valor, realmente estamos programando el dialplan de una manera visual, algo que parece evidente llamándose “Visual Dialplan“, pero por lo menos esta aplicación cumple con lo que dice su nombre.

Realmente recomiendo probarlo a todo aquel que tenga windows en alguna máquina para que compruebe lo sencillo que puede llegar a ser.

Por otro lado, he echado de menos funciones para manejar colas y agentes, algo que viene en la versión profesional.

El precio es bastante barato ($69) en la versión básica y $149 la versión profesional que incluye soporte de AGI, Colas, Agentes, soporte de Billing y algunas cosas más avanzadas.
Quizá los que estamos acostumbrados a editar el archivo, esta aplicación nos parezca un poco engorrosa (las aplicaciones visuales suelen serlo) pero para alguien que está empezando, la descripción de cada aplicación y el poder ver todas las opciones de cada aplicación de Asterisk puede serle de gran ayuda.

Enlace: http://www.apstel.com/products/products.jsp

03. November 2007

Cómo configurar restricciones a usuarios SIP en Asterisk

He recibido varios emails con esta pregunta y como es algo tan sumamente sencillo de hacer, que voy a contestarlo por aquí, ya que creo que no merece la pena liarse demasiado.

Esta forma por supuesto, es modificable según la necesidad, he supuesto el caso en que tenemos una tarjeta Digium conectada a la PSTN (Zap/g1) para hacer llamadas nacionales gratis, otra tarjeta para llamadas internacionales (Zap/g2) y un proveedor SIP para llamadas a móviles (SIP/proveedor).

También he recalcado tres parámetros que en mi opinión son muy importantes y poca gente que utiliza FreePBX lo tiene bien configurado lo que da bastantes y muy raros problemas con las extensiones: localnet, externip y realm. Esto DEBE estar configurado siempre.

Aquí la explicación de cómo se puede hacer:

Niveles Asterisk

Para verlo, tan solo hay que hacer clic en la imagen.
Espero que con este ejemplo, queden resueltas las dudas. :)