Hola,
ojalá alguien me pueda ayudar.
Quiero hacer una de las encuestas en línea como la de los bancos (para análisis de servicio, etc.), cómo califique del 1 al 3 el servicio X... y luego llenar una base de datos, el problema lo tengo en que asterisk reconoce el DTMF pero no puedo capturar la variable.
alguna idea?
Saludos,
Iván Carrasco Q.
:-)
--------
root@Asterisk:/home/ivanx# sed "/;/d;/^$/d" /etc/asterisk/extensions_additional.conf
[micontexto]
exten => 999,1,Macro(survey)
[macro-survey]
exten => s,1,Noop(LLamada entrante a Encuestas)
same => n,AGI(encuestas.php)
..
(saqué la info que considero que no es importante)
--------
root@Asterisk:/home/ivanx# more /var/lib/asterisk/agi-bin/encuestas.php
<?php
set_time_limit(60);
ob_implicit_flush(false);
require("phpagi-2.20/phpagi.php");
require("phpagi-2.20/mkdocs.php");
$db = mysql_connect("10.0.0.1","encuestas","encuestas") or die ("Error: Conexion ");
mysql_select_db("encuestas",$db) or die ("Error: Select DataBase");
$agi = new AGI();
$agi->answer();
$cid = $agi->parse_callerid();
$callerid = "llamada entrante de ".$cid[username];
$agi->verbose($callerid);
$agi->exec('playback','custom/pregunta1');
$agi->verbose('ingresa opcion:');
$agi->exec('Wait',1);
// inicio : linea de codigo con conflicto
$agi->exec('Read', 'preg1,beep,1,,1,3');
$n = $agi->get_variable('preg1');
$num = $n[result];
$texto = "Numero ingresado: ".$num;
$agi->verbose($texto);
// fin : linea de codigo con conflicto
$agi->verbose('fin');
$agi->exec('playback','custom/3_gracias_converted');
$agi->verbose('cuelga llamada');
$agi->hangup();
?>
---------
la consola asterisk -r me arroja:
...
encuestas.php:
-- AGI Script Executing Application: (Wait) Options: (1)
encuestas.php: aun no contesta
encuestas.php: ya toma la llamada
encuestas.php: llamada entrante de 5552650100
encuestas.php: ingrese su codigo:
-- AGI Script Executing Application: (Wait) Options: (2)
encuestas.php: inicio get data-----------------------------------
-- AGI Script Executing Application: (Read) Options: (preg1,beep,1,,1,3)
-- Accepting a maximum of 1 digits.
-- <SIP/525544360008-00000056> Playing 'beep.gsm' (language 'es')
-- User entered '1'
[Sep 4 18:50:24] WARNING[10760][C-00000056]: file.c:701 ast_openstream_full: File preg1 does not exist in any format
[Sep 4 18:50:24] WARNING[10760][C-00000056]: file.c:1017 ast_streamfile: Unable to open preg1 (format (ulaw)): No such file or directory
encuestas.php: fin get data--------------------------------------
encuestas.php: Numero ingresado:
-- AGI Script Executing Application: (Wait) Options: (1)
encuestas.php: EXEC Wait 1 returned -1
encuestas.php: fin consulta
ojalá alguien me pueda ayudar.
Quiero hacer una de las encuestas en línea como la de los bancos (para análisis de servicio, etc.), cómo califique del 1 al 3 el servicio X... y luego llenar una base de datos, el problema lo tengo en que asterisk reconoce el DTMF pero no puedo capturar la variable.
alguna idea?
Saludos,
Iván Carrasco Q.
:-)
--------
root@Asterisk:/home/ivanx# sed "/;/d;/^$/d" /etc/asterisk/extensions_additional.conf
[micontexto]
exten => 999,1,Macro(survey)
[macro-survey]
exten => s,1,Noop(LLamada entrante a Encuestas)
same => n,AGI(encuestas.php)
..
(saqué la info que considero que no es importante)
--------
root@Asterisk:/home/ivanx# more /var/lib/asterisk/agi-bin/encuestas.php
<?php
set_time_limit(60);
ob_implicit_flush(false);
require("phpagi-2.20/phpagi.php");
require("phpagi-2.20/mkdocs.php");
$db = mysql_connect("10.0.0.1","encuestas","encuestas") or die ("Error: Conexion ");
mysql_select_db("encuestas",$db) or die ("Error: Select DataBase");
$agi = new AGI();
$agi->answer();
$cid = $agi->parse_callerid();
$callerid = "llamada entrante de ".$cid[username];
$agi->verbose($callerid);
$agi->exec('playback','custom/pregunta1');
$agi->verbose('ingresa opcion:');
$agi->exec('Wait',1);
// inicio : linea de codigo con conflicto
$agi->exec('Read', 'preg1,beep,1,,1,3');
$n = $agi->get_variable('preg1');
$num = $n[result];
$texto = "Numero ingresado: ".$num;
$agi->verbose($texto);
// fin : linea de codigo con conflicto
$agi->verbose('fin');
$agi->exec('playback','custom/3_gracias_converted');
$agi->verbose('cuelga llamada');
$agi->hangup();
?>
---------
la consola asterisk -r me arroja:
...
encuestas.php:
-- AGI Script Executing Application: (Wait) Options: (1)
encuestas.php: aun no contesta
encuestas.php: ya toma la llamada
encuestas.php: llamada entrante de 5552650100
encuestas.php: ingrese su codigo:
-- AGI Script Executing Application: (Wait) Options: (2)
encuestas.php: inicio get data-----------------------------------
-- AGI Script Executing Application: (Read) Options: (preg1,beep,1,,1,3)
-- Accepting a maximum of 1 digits.
-- <SIP/525544360008-00000056> Playing 'beep.gsm' (language 'es')
-- User entered '1'
[Sep 4 18:50:24] WARNING[10760][C-00000056]: file.c:701 ast_openstream_full: File preg1 does not exist in any format
[Sep 4 18:50:24] WARNING[10760][C-00000056]: file.c:1017 ast_streamfile: Unable to open preg1 (format (ulaw)): No such file or directory
encuestas.php: fin get data--------------------------------------
encuestas.php: Numero ingresado:
-- AGI Script Executing Application: (Wait) Options: (1)
encuestas.php: EXEC Wait 1 returned -1
encuestas.php: fin consulta
Comentario