Tengo un asterisk 1.2 con centos 4.4 funcionando bien, ahora configure
un IVR de la siguiente forma.
[cola-horario]
include => ivr
include => cola
exten => 170,1,Answer
exten => 170,2,Set(TIMEOUT(digit)=1)
exten => 170,3,Set(TIMEOUT(response)=40)
exten => 170,4,GotoIfTime(8:00-18:00|mon-fri|*|*?ivr,s,1)
exten => 170,5,Wait(1)
exten => 170,6,Background(/var/lib/asterisk/sounds/ivr/
fuera_de_horario)
exten => 170,7,Background(/var/lib/asterisk/sounds/ivr/volver_menu)
exten => 170,8,Wait(5)
exten => s,1,ANSWER
exten => s,2,Dial(SIP/170,120,Tt)
exten => s,3,HangUp
exten => 0,1,Answer
exten => 0,2,Goto(cola-horario,170,1)
exten => 3,1,Dial(ZAP/g1/4846888,,Ttr)
exten => 4,1,Background(/var/lib/asterisk/sounds/ivr/buzon_voz)
exten => 4,3,Voicemail(206,s)
exten => 5,1,Background(/var/lib/asterisk/sounds/ivr/buzon_voz)
exten => 5,3,Voicemail(206,s)
[ivr]
include => cola-horario
include => cola
exten => s,1,ANSWER
exten => s,2,Wait(1)
exten => s,3,Set(TIMEOUT(digit)=1)
exten => s,4,Set(TIMEOUT(response)=40)
exten => s,5,Background(/var/lib/asterisk/sounds/ivr/bienvenida)
exten => s,6,Background(/var/lib/asterisk/sounds/ivr/volver_menu)
exten => s,7,Wait(5)
exten => s,8,Goto(ivr,s,1)
exten => 0,1,Answer
exten => 0,2,Goto(ivr,s,1)
exten => 1,1,Answer
exten => 1,2,Mixmonitor(/var/spool/asterisk/monitor/cola-cola/entr-$
{TIMESTAMP}-${CALLERIDNUM}-${EXTEN}-${UNIQUEID}.wav)
exten => 1,3,Ringing
exten => 1,4,Wait(1)
exten => 1,5,Queue(cola-cola|wWTt|||100)
exten => 1,6,Queue(cola-cola-proceso|wWTt|||100)
exten => 1,7,Hangup
exten => 2,1,Answer
exten => 2,2,Mixmonitor(/var/spool/asterisk/monitor/cola-cola-proceso/
entr-${TIMESTAMP}-${CALLERIDNUM}-${EXTEN}-${UNIQUEID}.wav)
exten => 2,3,Ringing
exten => 2,4,Wait(1)
exten => 2,5,Queue(cola-cola-proceso|wWTt|||100)
exten => 2,6,Queue(cola-cola|wWTt|||100)
exten => 2,7,Hangup
exten => 3,1,Dial(ZAP/g1/4846888,,Ttr)
exten => 4,1,Background(/var/lib/asterisk/sounds/ivr/buzon_voz)
exten => 4,2,Wait(1)
exten => 4,3,Voicemail(206,s)
[cola]
include => cola-horario
include => cola-proceso
include => ivr
include => salida-cola
exten => s,1,ANSWER
exten => s,2,Dial(SIP/1887,120,Tt)
exten => s,4,HangUp
exten => s,1,ANSWER
exten => s,2,Dial(SIP/4002,120,Tt)
exten => s,3,Voicemail(206,s)
exten => s,4,HangUp
exten => s,1,ANSWER
exten => s,2,Dial(SIP/4003,120,Tt)
exten => s,3,Voicemail(206,s)
exten => s,4,HangUp
exten => 1887,1,Dial(SIP/170,120,Tt)
exten => 1887,103,hangup
exten => 4002,1,Dial(SIP/4002,120,Tt)
exten => 4002,2,Voicemail(206,s)
exten => 4002,103,hangup
exten => 4003,1,Dial(SIP/4003,120,Tt)
exten => 4003,2,Voicemail(206,s)
exten => 4003,103,hangup
[cola-proceso]
include => cola-horario
include => ivr
include => cola
include => salida-cola-proceso
exten => s,1,ANSWER
exten => s,2,Dial(SIP/4004,120,Tt)
exten => s,3,Voicemail(206,s)
exten => s,4,HangUp
exten => s,1,ANSWER
exten => s,2,Dial(SIP/4005,120,Tt)
exten => s,3,Voicemail(206,s)
exten => s,4,HangUp
exten => s,1,ANSWER
exten => s,2,Dial(SIP/206,120,Tt)
exten => s,4,HangUp
exten => 4004,1,Dial(SIP/4004,120,Tt)
exten => 4004,2,Voicemail(206,s)
exten => 4004,103,hangup
exten => 4005,1,Dial(SIP/4005,120,Tt)
exten => 4005,2,Voicemail(206,s)
exten => 4005,103,hangup
exten => 206,1,Answer
exten => 206,2,Wait(0)
exten => 206,3,Playback(/var/lib/asterisk/sounds/ivr/buzon_voz)
exten => 206,4,Wait(0)
exten => 206,5,Voicemail(206,s)
Todo esto me funciona bien pero el drama es que en la parte del buzon
de voz luego de que el mensaje se termine de grabar este se envia a
una cuenta de correo que tengo definida ahora el verdadero problema es
que tengo que hacer que antes que de la opcion de grabar el mensaje
que envie a un nivel donde diga ingrese el codigo o cualquier wea
luego de que ingreso el codigo no me interesa validar ni nada solo
capturar ese digito que la persona ingreso en el telefono y enviarlo
por correo a la misma cuenta de el mensaje de voz ya sea en el mismo
correo o en otro aparte con no se pos el mismo id para poder
identificar de que llamada corresponde los digitos enviados.
Solo quiero saber si alguien me puede guiar no estoy pidiendo que lo
hagan por mi pero si alguien ya tiene echo algo parecido haber si me
puede dar una manito..
Saludos cordiales.
Pablo J.
Lo primero que te recomiendo que hagas es revisar tu dialplan, porque o lo he
leído muy rápido o te funciona porque dios es grande, porque tienes un par de
bucles harto preocupantes, amén de que los includes que haces me parecen del
todo caóticos, incluyes contextos que vuelven a incluir al contexto
original .. buff un buen lío.
--
Saludos.
Raúl Alexis Betancor Santana
Dimensión Virtual S.L.
__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
Regístrate ya - http://correo.espanol.yahoo.com/
Helppppp...
> "Pablo J." <octubr...@gmail.com> escribió:
Si lo de los contextos lo tengo claro que tengo la crema nu mas pero
asi funciona y rebien ahora lo que me dices danilo probe y incluso lo
modifique pero no me funca de echo lo que tu haces en ese agi es mas
complejo de lo que necesito pero veo que no voy por buen camino.
Helppppp...
On 23 mayo, 15:34, Danilo Reyes wrote:
> Hola
>
> dentro del dialplan hay un comando que te permite pedir variables,pero norecuerdo cual es,lootroseria quellamaras a un php desde el dialplan.
>
> aqui hay un ejemploqueenalgunladoencontre y midifique un poquito para pedir el rut. sicorres un asterisk -rvvvvvv cuando lo ejecutes veras que la variable queda con loqueingresas por teclado.
>
> este arcivo deberia quedar en el /var/lib/asterisk/agi-bin con propiedades 777
> y lo llamas del dialplan
>
> #!/usr/bin/php -q
> > set_time_limit(30);
> require('phpagi.php');
> error_reporting(E_ALL);
> $agi = new AGI();
> $agi->answer();
> sleep(2);
> // Pide el Caller id.
> $cid = $agi->parse_callerid();
> $cid= $cid[username];
> $agi->stream_file('access-code');
> // beep es el archivo que contendrá los 10 dígitos y se asignan a callnumber
> $result = $agi->get_data('beep', 3000, 10);
> $rut= $result['result'];
> $agi->verbose("Number to call:".$rut);
> // Disca
> $agi->exec("Dial SIP/5001");
> ?>
>
> Danilo
>
> "Pablo J." escribió:
El 25/05/07, Danilo Reyes <danilo_...@yahoo.com> escribió:
--
Saúl -- "Some people say why, other just say, why not."
----------------------------------------------------------------
http://www.saghul.net/
Uffff toy al tope.....
y ademas quiero dar las gracias a las personas que contestan en la
lista ya que lo hacen sin ninguna mala intencion, de antemano muchas
gracias por la ayuda.
On 25 mayo, 15:08, "Saúl Ibarra" <sag...@gmail.com> wrote:
> Danilo, le has pasado la clase AGI? Por otro lado.como dice Raúl
> deberías rehacer tu dialplan Pablo, ya que es un auténtico caos.
>
> El 25/05/07, Danilo Reyes <danilo_reye...@yahoo.com> escribió:
>
>
>
>
>
> > pablo
> > ese script que te pase sifunciona
>
> > cuentame lo que hiciste y lo
> > vemos
>
> > danilo
> > "Pablo J." <octubr...@gmail.com> escribió:
> > Regístrate ya -http://correo.espanol.yahoo.com/
>
> --
> Saúl -- "Some people say why, other just say, why not."
> ----------------------------------------------------------------http://www.saghul.net/- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -
El 25/05/07, Pablo J. <octu...@gmail.com> escribió:
[prueba]
exten => 195,1,Answer
exten => 195,2,Background(/var/lib/asterisk/sounds/ivr/Disque_codigo)
exten => 195,3,AGI(digit.php)
exten => 195,103,hangup
exten => s,1,ANSWER
exten => s,2,Dial(SIP/192,120,Tt)
exten => s,3,Voicemail(206,s)
exten => s,4,HangUp
Use el AGI que envio danilo y si funciona solo que el esta usando
autenticacion de usuario y yo no necesitaba eso asi que lo saque
dejando la siguiente forma.
#!/usr/bin/php -q
<?
set_time_limit(30);
require('phpagi.php');
error_reporting(E_ALL);
$agi = new AGI();
$agi->answer();
sleep(2);
// Pide el Caller id.
$cid = $agi->parse_callerid();
//$cid= $cid[username];
//$agi->stream_file('access-code');
// beep es el archivo que contendráos 10 dÃtos y se asignan a
callnumber
$result = $agi->get_data('beep', 3000, 10);
$rut= $result['result'];
$agi->verbose("Number to call:".$rut);
// Disca
$agi->exec("Dial SIP/400");
?>
De esta forma cuando se hace una llamada el agi debug me arroja lo
siguiente.
-- Zap/2-1 answered SIP/140-09141f88
-- Accepting call from '23459400' to '195' on channel 0/31, span 1
-- Executing Answer("Zap/31-1", "") in new stack
-- Executing BackGround("Zap/31-1", "/var/lib/asterisk/sounds/ivr/
Disque_codigo") in new stack
-- Playing '/var/lib/asterisk/sounds/ivr/volver_menu' (language
'en')
-- Executing AGI("Zap/31-1", "digit.php") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/digit.php
AGI Tx >> agi_request: digit.php
AGI Tx >> agi_channel: Zap/31-1
AGI Tx >> agi_language: en
AGI Tx >> agi_type: Zap
AGI Tx >> agi_uniqueid: 1180447108.66445
AGI Tx >> agi_callerid: 23459400
AGI Tx >> agi_calleridname: unknown
AGI Tx >> agi_callingpres: 3
AGI Tx >> agi_callingani2: 0
AGI Tx >> agi_callington: 33
AGI Tx >> agi_callingtns: 0
AGI Tx >> agi_dnid: 195
AGI Tx >> agi_rdnis: unknown
AGI Tx >> agi_context: default
AGI Tx >> agi_extension: 195
AGI Tx >> agi_priority: 3
AGI Tx >> agi_enhanced: 0.0
AGI Tx >> agi_accountcode:
AGI Tx >>
AGI Rx << ANSWER
AGI Tx >> 200 result=0
-- Hungup 'Zap/2-1'
== Spawn extension (telefonica-dgn, 92080301, 3) exited non-zero on
'SIP/140-09141f88'
== End MixMonitor Recording SIP/140-09141f88
AGI Rx << GET DATA beep 3000 10
-- Playing 'beep' (language 'en')
AGI Tx >> 200 result=123456789 (timeout)
AGI Rx << VERBOSE "Number to call:123456789" 1
digit.php: Number to call:123456789
AGI Tx >> 200 result=1
AGI Rx << EXEC Dial SIP/400
-- AGI Script Executing Application: (Dial) Options: (SIP/400)
-- Called 400
-- SIP/400-0933cae8 is ringing
Se supone que me tira la grabacion que tengo luego me suena un beep y
digitos lo que necesito, ahi por ejemplo ahi presione 123456789, y
luego llama a la extencion 400 pero donde quedan esos numeros ya que
necesito que siga un dial donde va a pasar a un buzon de voz en el
cual se va a enviar por correo pero me causa la duda de como dejarlo
no se pos setear ese codigo como callerid + el numero del llamante.
haber si me pegan una manito.
On 25 mayo, 16:23, "Saúl Ibarra" <sag...@gmail.com> wrote:
> No te preocupes, ordena un poco eso, para centrar el asunto y cuando
> lo tengas le echamos un vistazo! :P
>
> El 25/05/07, Pablo J. <octubr...@gmail.com> escribió:
> > > > > unIVRde la siguiente forma.
Bueno retomando el drama con el que estaba reduci todo el contexto a
una sola extencion
[prueba]
exten => 195,1,Answer
exten => 195,2,Background(/var/lib/asterisk/sounds/ivr/Disque_codigo)
exten => 195,3,AGI(digit.php)
exten => 195,103,hangup
exten => s,1,ANSWER
exten => s,2,Dial(SIP/192,120,Tt)
exten => s,3,Voicemail(206,s)
exten => s,4,HangUp
Use el AGI que envio danilo y si funciona solo que el esta usando
autenticacion de usuario y yo no necesitaba eso asi que lo saque
dejando la siguiente forma.
#!/usr/bin/php -q
set_time_limit(30);
require('phpagi.php');
error_reporting(E_ALL);
$agi = new AGI();
$agi->answer();
sleep(2);
// Pide el Caller id.
$cid = $agi->parse_callerid();
//$cid= $cid[username];
//$agi->stream_file('access-code');
// beep es el archivo que contendráos 10 dÃ-tos y se asignan a
> El 25/05/07, Pablo J. escribió:
>
>
>
>
>
>
>
> > Voy a ordenar mi dialplan y hacerlo mas corto para efecto de pruebas
> > ya que solo necesito la parte en que sale la voz diciendo digite
> > blablabla despues toka el beep por ejempl. y la persona digita el
> > numero y este quedara guardado en una base de datos o si es posible se
> > envie por correo...
>
> > Uffff toy al tope.....
>
> > y ademas quiero dar las gracias a las personas que contestan en la
> > lista ya que lo hacen sin ninguna mala intencion, de antemano muchas
> > gracias por la ayuda.
>
> > On 25 mayo, 15:08, "Saúl Ibarra" wrote:
> > > Danilo, le has pasado la clase AGI? Por otro lado.como dice Raúl
> > > deberías rehacer tu dialplan Pablo, ya que es un auténtico caos.
>
> > > El 25/05/07, Danilo Reyes escribió:
>
> > > > pablo
> > > > ese script que te pase sifunciona
>
> > > > cuentame lo que hiciste y lo
> > > > vemos
>
> > > > danilo
> > > > "Pablo J." escribió:
On 29 mayo, 18:23, Danilo Reyes <danilo_reye...@yahoo.com> wrote:
> hola
> que bueno que te sirvio
> elnumero que ingresaste 123456789
> queda en la variable $rut...
>
> leer más »
>
> aqui
> $agi->verbose("Number to call:".$rut);
> ...
>
> en la consola del asterisk, si haces un asterisk -rv
> te aparece Number to call: 123456789
>
> asi es queesa deberia ser la variable
> prueba hace run dial (sip/$rut) "no se si es asi el fromato porsiacaso..."ç
> ydeberia discar
> cuentame como te va
> si yoadelanto algo te cuento
> chau
> Danilo
>
> "Pablo J." <octubr...@gmail.com> escribió:
> > > > > > include => cola-horario- Ocultar texto de la cita -
Te entiendo pero mi idea no es discar el numero que ingresen si no que
ese numero quede en la variable o me da lo mismo y pase como callerid
del numero llamante y luego que capture los digitos se vuelva al
dialplan para ejecutar otras sentencias ya con "captura de
digitos", ahora no se si se podra o estare hablando
tonteras.
On 29 mayo, 18:23, Danilo Reyes wrote:
> hola
> que bueno que te sirvio
> elnumero que ingresaste 123456789
> queda en la variable $rut...
>
> leer más >>
>
> aqui
> $agi->verbose("Number to call:".$rut);
> ...
>
> en la consola del asterisk, si haces un asterisk -rv
> te aparece Number to call: 123456789
>
> asi es queesa deberia ser la variable
> prueba hace run dial (sip/$rut) "no se si es asi el fromato porsiacaso..."ç
> ydeberia discar
> cuentame como te va
> si yoadelanto algo te cuento
> chau
> Danilo
>
> "Pablo J." escribió:
Me entiendes????
uta es que es medio complicado explicarlo ...
On 30 mayo, 09:17, Danilo Reyes <danilo_reye...@yahoo.com> wrote:
> quieres hacer algo asi como spoofing...
>
> leer más »
>
> ?
>
> Danilo
>
> "Pablo J." <octubr...@gmail.com> escribió:
> > > > > > > include- Ocultar texto de la cita -
Se entiende lo que pretendes, pero ¿te queda claro a ti lo inútil que es?, lo
digo porque ningún operador de PSTN te va a permitir cambiar el callerid y
hay muy pocos operadores VoIP que te lo permitan, lo cual restringe la
utilidad de tu macro a las comunicaciones IP-IP y siempre y cuando el
receptor no tenga activado screening del callerid.
la idea es que despues que en el dialplan pase al AGI tome los digitos
que se presiones por el telefono luego vuelva al dialplan y lo mando a
un buzon de voz y se va por correo los digitos que se capturaron mas
el numero de telefono de la persona que llamo y la grabacion de
audio...
On 30 mayo, 14:04, Raúl Alexis Betancor Santana <r...@dimension-
Skype. dpizarro
Web. www.infobox-peru.com
A ver si lo pillo ... quieres que cuando se envíe al mailbox lo haga con el
callerid "trucado" que ha introducido el usuario ¿correcto? ... ¿no sería más
fácil no tocar nada y enviar al buzón de voz el callerid que te llega?
Es que sigo sin entender la utilidad del objetivo que pretendes. Porque si es
para mostrarle al usuario del softphone el "nombre" del que llama, pues vale
una consulta a una BD para buscar el nombre de un número concreto, pero más
allá de eso .. no veo la utilidad, a lo mejor me lo puedes aclarar.
De todas formas técnicamente, lo único que has de hacer desde el AGI es
un "SET VARIABLE CDR(name) 'valor'"
On 30 mayo, 17:25, Raúl Alexis Betancor Santana <r...@dimension-
lo que hice fue lo siguiente..
#!/usr/bin/php -q
<?
set_time_limit(30);
require('phpagi.php');
error_reporting(E_ALL);
$agi = new AGI();
$agi->answer();
sleep(2);
// Pide el Caller id.
$cid = $agi->parse_callerid();
// beep es el archivo que contendra los 10 datos y se asignan a
callnumber
$result = $agi->get_data('beep', 3000, 10);
$digit= $result['result'];
$agi->verbose("Number to call:".$digit);
// Disca
$agi->exec("Set CALLERID(name)=$digit");
$agi->exec(Voicemail,s206);
?>
De esta forma una ves que cae en el buzon de voz llegan los digitos
mas el callerid
Estimado loko:
Alguien te ha dejado un correo de voz de 0:14 de
duracion, numero (72)
en tu buzon 206 de "123456" <23459400>, el dia Thursday, May 31, 2007
at 03:25:15 PM asi que tal ves
desees verlo cuando tengas tiempo. Gracias!
> > Dimensión Virtual S.L.- Ocultar texto de la cita -
Lo logreeee muchas gracias por fin pude ententer de forma basica los
agi asi que ahora a programar se a dicho, alomejor lo que hice puede
que no sea la mejor forma pero me funciono como queria, y muchas
gracias a todos los que me me ayudaron muchas pero muchas gracias a
danilo por compartir ese script que fue el inicio de mi aprendisaje
graciasssss...
lo que hice fue lo siguiente..
#!/usr/bin/php -q