Archive for the Asterisk IP-PBX Category

axesstel2.jpg Los últimos días he estado realizando algunas pruebas de integración de este equipo (Axesstel AXW-T800) con Asterisk IP-PBX. Hasta hoy he tenido problemas con la detección del colgado. Cuando el usuario destino cuelga la llamada y el “llamante” queda a la espera(sin colgar), obtiene tono para una nueva llamada. Haciendo imposible una tarificación correcta de la llamada en estos casos.

Características del equipo:
Tecnología CDMA
2 puertos RJ-11 (FAX/TEL)
Opciones para FAX
Capacidad para conectar a la Internet (CDMA 1xTTR).

Dentro de las pruebas que he realizado, he conectado directo al telular un teléfono “analógico”; para determinar si aun así continua regenerándose el tono que permite realizar una nueva llamada. Y en efecto me ha dado el mismo resultado.

He mirado el manual, y no he encontrado alguna función que me corte por completo el canal; cuando el otro extremo cuelga. Así que aparentemente como conclusión este equipo no tendría un buen funcionamiento con Asterisk IP-PBX.

Nota: Las pruebas se han realizado con ayuda de una clona FXO.

No soy muy adepto a este tipo de sistemas integrados con sus webmin y mas monadas para su administración; aunque confieso que en algún momento he llegad a instalar un Tixbox para un cliente. El caso es que apenas hoy me entero de la existencia de este proyecto llamado “PBX in a Flash”, mantenido principalmente por Ward Mundy; que fuera uno de los principales desarrolladores del proyecto Trixbox.

Web Site

A expensas de que existen otros métodos, ahora explicare un método que he utilizado para mis usuarios que estas acostumbrados a aquellos antiguos métodos donde antes de teclear alguna extensión esperan escuchar el tono que les indica que tienen linea(pudiendo ser una agradable grabación que les pida la extensión jeje).

Se me ha ocurrido hacer esto con la ayuda del comando DISA(), teniendo en cuenta que no es uno de los mejores métodos pero hasta hoy me funciona :D.

Ejemplo:

[contexto-0]
exten => _X.,1,Playback(marcando)

[example]
exten => 0,1,DISA(no-password|contexto)
exten => 0,n,Hangup

Aquellos usuarios que pertenezcan al contexto example, al marcar 0 escucharan su clásico tono que les hace entender que tienen tono para marcar, dándoles acceso al contexto-0 donde buscara la extensión que marque el usuario. Así no extrañaran el clásico tono que les hace entender que pueden marcar el numero deseado.

Podemos ayudarnos de Set(TIMEOUT(digit)=10) y Set(TIMEOUT(response)=10)para darle mas tiempo al usuario para teclear el numero.

Para aquellos que por alguna razón ocupen generar determinado tono en su dialplan tenemos el siguiente comando que nos hace el trabajo:

Playtones(tono) Donde tono lo sustituimos por alguno de nuestra lista de indications.conf ya sea por el nombre del tono o especificando la frecuencia del tono que querríamos.

Ejemplo:

[example]
exten => 123,1,Playtones(dial)
exten => 123,n,Wait(5)

Es así como podemos conseguir que la extensión 123 nos genere el tono dial durante 5 segundos.

check_zaptel nagios plugin

Es un plugin de nagios monitor que nos permite checar el estado de nuestros dispositivos zaptel. Como indica en su pagina el plugin hace uso del famoso /proc/zaptel encargado de darnos información de nuestros dispositivos zaptel.

Para aquellos que quieran hacer uso de este plugin aqui les dejo el link del plugin.
http://www.uptime.it/mywiki/CheckZaptel

Normalmente cuando manejamos NAT presente en Asterisk es muy necesario hacer uso de la opción qualify en nuestro sip.conf para nuestros peers que se encuentren en situaciones de NAT, osea detrás de un NAT pues.

¿Y porque es útil?
Al hacer uso de qualify Asterisk enviara periódicamente un comando de SIP OPTIONS(rápidamente digamos que es un tipo de ping) para determinar si el usuario continua online. En caso de no responder dentro del tiempo determinado(sea el default o definido por uno mismo) Asterisk pondrá al usuario ofline para llamadas futuras. Así de esta forma hacemos que Asterisk mantenga abierta la sesión UDP de un usuario(peer) que se encuentra detras de un NAT, de tal manera que es usada en conjunto con la opción nat=yes.

Sintaxis de qualify:
qualify=xxx|no|yes

Esta opción por defecto se encuentra es qualify=no, pero podemos definir en yes donde el timeout manejado es de 2 segundos, o en el ultimo de los casos definir nosotros el timeout en segundos.

Saludos.

If you’re thinking… “How can I kill an active call?” you can try it with: “soft hangup”

asterisk*CLI> help soft
soft hangup Request a hangup on a given channel

Do you know how to see the list of active channels?
asterisk*CLI> core show channels

How to kill an active call?
sasterisk*CLI> soft hangup SIP/54028-0b864c40

¿Espirar las llamadas de tus usuarios SIP?
CLARO!!

/etc/asterisk/extensions.conf

[admin]
exten => _*9.,1,ChanSpy(SIP/${EXTEN:2})

Y ahora si a escuchar!!

exten=>_111XXXXXX,1,Set(USUARIOS=${EXTEN:3})
exten=>_111XXXXXX,2,Set(USUARIO1=${USUARIOS:0:3})
exten=>_111XXXXXX,3,Set(USUARIO2=${USUARIOS:4:3})
exten=>_111XXXXXX,4,Page(SIP/${USUARIO1}&SIP/${USUARIO2},qd)
exten=>_111XXXXXX,5,Hangup()