Ayuda con robot en Asterisk

Hola a todos los cofrades resulta que estoy haciendo un proyecto para mi escuela el cual consiste en un robot que marque a ciertos numeros telefonicos para darle mensajes recordatorios, tengo un pbx con asterisk y tarjetas zap con las cuales salgo a la PSTN, estoy usando archivos .call para esto, el unico problema es que no me detecta cuando la persona descuelga el telefono sino que se ejecuta de corridito, mi contexto es el siguiente:

[robot]
include => default
#exten => 77,1,Answer()
exten => 77,1,Wait(2)
exten => 77,n,Playback(bienvenida)
exten => 77,n,AGI(prueba.agi)
exten => 77,n,Playback(despedida)
exten => 77,n,Wait(2)
exten => 77,n,Hangup

ya probe con Answer al principio y sin el como se ve comentado en el contexto y mi archivo .call es el siguiente

Channel: Zap/1/019XXXXXXXXX
Callerid: Daniel Andrade <999999999>
MaxRetries: 1
RetryTime: 1800
WaitTime: 45
Context: robot
Extension: 77
Priority: 1

espero alguien haya tenido alguna experiencia con esto y me pueda apoyar o indicar el xq y como solucionarlo, de ante mano gracias

Saludos


0 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 50 votes, average: 0.00 out of 5 (0 votes, average: 0.00 out of 5)
You need to be a registered member to rate this post.
Loading...
Asterisk, Pregúntale al gurú, VoIP | RSS 2.0 |     1,524 views

RSS feed

15 Comments »

Comment by El Pop
2009-08-05 09:07:39

Usa AMI: http://www.voip-info.org/wiki/view/Asterisk+manager+API

El uso de los archivos .call no te permite tener mucho control de las cosas.

Comment by dam
2009-08-05 09:10:45

Checando pop gracias.

 
Comment by dam
2009-08-05 09:15:13

Pop AMI me permitira ejecutar mi script cuando contesten el telefono? lo q no detecto es cuando del otro lado descuelgan el telefono, para ejecutar mi contexto de forma adecuada, la bienvenida, el agi y la despedida

Comment by El Pop
2009-08-05 10:27:16

Si. conectas con un “Originate” a laextensión en el dialplan de tu Asterisk.

 
 
 
Comment by ctorres
2009-08-05 10:16:08

amigo revisa mi blog deje un script de despertador podria servirte.

http://voipasinco.wordpress.com

 
Comment by moy
2009-08-05 14:51:27

Si es que entiendo bien tu pregunta, aqui la cuestion en realidad tiene mas que ver con las lineas analogas. Tanto el Originate del manager como los call files usan la misma API interna de Asterisk para originar la llamada y contestarla etc, por lo que no hay diferencia en el manejo interno de la llamada (cuando se decide que ya esta contestada).

El problema es que las lineas analogicas son circuitos bastante simples, cuando Asterisk llama, pone la linea offhook (descuelgas el telefono), manda digitos, y luego que Dios te ayude :), esto debido a que usualmente es un humano el que llama y un humano sabe cuando escucha a otro humano y sabe cuando escucha el tono de marcado u ocupado (tu tu tu tu tu …)

A menos de que uses alguna forma de call progress para detectar cuando hay actividad de voz humana (y no una contestadora, tono de progreso, ocupado etc) Asterisk no tiene forma de saber si el otro lado ya contesto, entonces en cuanto la linea se va offhook, . Tengo entendido que algunos paises mandan un polarity reversal al contestar y al colgar, sin embargo no se si Mexico sea uno de esos paises.

Te sugiero que busques en google call progress analysis para Asterisk. Este post http://www.mail-archive.com/asterisk-users@lists.digium.com/msg144668.html es claro al respecto pero no muy alentador, para ser el 2006, pero puede ser que el estado de las cosas siga siendo el mismo a la fecha.

Comment by El Pop
2009-08-05 15:45:06

Si solo con líneas digitales de tipo ISDN-PRI o SS7 puedes hacer eso, con R2 o análogas es dificil.

 
 
Comment by dam
2009-08-05 15:26:51

Ok gracias a todos por sus comentarios, en conclusion he visto por ahi que en mexico no manejan la reversion de polaridad para detectar cuando la persona ya descolgo osea mandar la polaridad de descolgado, he intentado con callprogress pero no funciona, mi duda es, creen que usando un proveedor de servicio SIP pueda hacer funcionar el sistema? a diferencia de usar la salidas por ZAP ??, mi pregunta tmb es como es que las demas compañias hacen este tipo de sistemas?.

Saludos

Comment by El Pop
2009-08-05 15:43:39

Si usas troncales con ISDN-PRI tienes una señal conocida como “Answer supervision”, en R2 y en análogas no hay esto. en SIP tienes los codigos de contestación, pero no estados de línea (Número no existente, fuera de servicio, etc.) COmo lo tienes en ISDN-PRI o SS7.

Complementando lo que dice Moy, es posible hacer un truco de ingenieria social usando la aplicación “BackgroundDetect”, mandas unos “Bueno bueno” en un archivo de audio y si reconoce algo aproximado a la frecuencia de voz humana te manda a una extensión “talk” y de allí haces tu lógica de control.

Comment by moy
2009-08-05 16:21:46

en realidad solo en analogas no lo tienes, R2 si tiene notificacion de answer.

 
 
 
Comment by moy
2009-08-05 15:38:36

Si usas SIP no tienes ningun problema, los mensajes de progreso y answer estan perfectamente definidos. En realidad, las lineas analogas son una excepcion y no deberias tener problema con ningun otro protocolo sea voip o pstn para lo que quieres hacer.

como sabes que las demas usan lineas analogicas? de ser asi, debe ser mediante cpa.

 
Comment by moy
2009-08-05 15:40:22

otra opcion es mandar la llamada a un menu que simplemente repita, presione uno para escuchar su recordatorio, y lo repita constantemente. De ese modo cuando alguien realmente conteste escuchara el mensaje o parte del mensaje y luego el mensaje completo y ya podra presionar 1 y recuperar su recordatorio.

 
Comment by dam
2009-08-05 23:58:01

Muy buenas opciones por parte de Pop y de moy, actualmente contacte con un carrier SIP estoy esperando su respuesta para no descartar esta opcion, pero lo que ya no deseo es invertir, y estoy haciendo unas pruebas con backgrounddetect si alguien tiene un ejemplo implementado me seria de gran ayuda, mientras sigo leyendo en las wikis, gracias de ante mano

 
Comment by javier
2009-08-10 00:42:42

*CLI> show application BackgroundDetect

-= Info about application ‘BackgroundDetect’ =-

[Synopsis]
Background a file with talk detect

[Description]
BackgroundDetect(filename[|sil[|min|[max]]]): Plays back a given
filename, waiting for interruption from a given digit (the digit must
start the beginning of a valid extension, or it will be ignored).
During the playback of the file, audio is monitored in the receive
direction, and if a period of non-silence which is greater than ‘min’ ms
yet less than ‘max’ ms is followed by silence for at least ‘sil’ ms then
the audio playback is aborted and processing jumps to the ‘talk’ extension
if available. If unspecified, sil, min, and max default to 1000, 100, and
infinity respectively.

 
Comment by phylevn
2009-08-14 15:32:30

Como indica el pop arriba usando el comando originate de ami puedes programar llamadas a realizar, y mediante status channel puedes saber cuál es el estado de canal, también si ejecutas en un php-agi la función dial te devuelve un estado de la llamada realizada como contestada, colgada, ocupada, etc., para saber si una llamada fué contestada requieres un FXO con detección de polaridad inversa olvídate aquí de un SPA3102 o un X100p, si es una troncal SIP o IAX también te puede devolver el estado de una llamada.

 
Name (required)
E-mail (required - never shown publicly)
URI
Your Comment (smaller size | larger size)
You may use <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> in your comment.

Trackback responses to this post