Marcar Extension Personalizada desde IVR

joeljag19

Joined
Jan 13, 2011
Messages
12
Likes
0
Points
0
#1
Soy nuevo en el mundo de Elastix(Asterisk), tengo un problema, estoy montando un IVR que tendrá interacción con un base de datos MySQL mediante AGI-PHP, pero eso ya creo que puede conseguirlo.

En el archivo extensions_custom.conf creo la extension para poder acceder a ella
exten => 101,1,Answer
exten => 101,2,agi(consulbal.php)
exten => 101,3,Hangup

Hasta aqui todo excelente marco desde cualquier extension sip y el script corre perfecto, el problema es que quiero que poder acceder a esa extension desde el IVR, por ejemplo tener en el IVR (Si quiere serificar su saldo marque "2") y esto me direccione a esa extension.

El IVR lo configure mediante la GUI de elastix el problema es que no hay ningun espacio donde pueda poner una extension como esta, si voy a extension y creo una extension tipo custom cuando la llamo desde el IVR no funciona pero como dije anteriormente desde las extensiones SIP se puede acceder correctamente.
 

hgeorge123

Joined
Jul 25, 2010
Messages
193
Likes
0
Points
0
#2

joeljag19

Joined
Jan 13, 2011
Messages
12
Likes
0
Points
0
#3
Gracias, por la ayuda pero encontre una forma mendiante el usao de freepbx

Open up extensions_custom.conf and you should find a section called
[from-internal-custom] - add your code to it:
exten => 500,1,Answer()
exten => 500,2,Authenticate(0000)
exten => 500,3,Background(welcome)
exten => 500,4,System(/usr/local/bin/zbron.sh)
exten => 500,5,Wait(1)
exten => 500,6,Playback(vm-goodbye)
exten => 500,7,Hangup()
Then go to the maint section of the web interface (freepbx) and switch to the tools tab. Add a custom destination to "from-internal-custom,500,1" with a description of your choice. You should then see that destination (with the name you gave it) when you go to IVRs, follow me's etc.

Esto era lo que necesitaba, primero creo mi extesion personal en extensions_custom.conf en la seccion [from-internal-custom]...

Luego con freepbx creo una extension y ya puedo llamarla directamente desde el IVR.
 

yjtrujillo

Joined
Nov 3, 2009
Messages
8
Likes
0
Points
0
#4
Hola.

tengo la siguiente situación: Necesito que una opción del IVR me deje marcar una extención que conosco que existe y me comunique!!


Gracias...


Saludos.
 

edmart777

Joined
Oct 21, 2011
Messages
24
Likes
0
Points
0
#5
Amigo soy nuevo en asterisk y me gustaria que me ayudaras por que hace mucho que no puedo hacer una consulta mediante un AGI para poder que con la funcion SayDigits me confirme la cantidad de un producto y segun tu post se que ya lo tienes. yo tengo algo como esto:

#!/usr/bin/php -q
<?php
ob_implicit_flush(true);
set_time_limit(6);
error_reporting(0);

// Se abren los diferentes archivos (STDIN, STDOUT y un archivo de log del AGI)
$in = fopen("php://stdin","r");
$out = fopen("php://stdout","w");
$stdlog = fopen("/var/log/asterisk/agi.log", "w");

// Habilita modo debugging (mas verbose)en el archivo de log definido
$debug = true;


// Define la funcion read antes de empezar el bucle principal
function read() {
global $in, $debug, $stdlog;
$input = str_replace("\n", "", fgets($in, 4096));
if ($debug) fputs($stdlog, "read: $input\n");
return $input;
}

// Define la funcion write que escribe el output en el STDOUT
function write($line) {
global $debug, $stdlog, $out;
if ($debug) fputs($stdlog, "write: $line\n");
fputs($out,$line."\n");
fflush($out);
echo $line."\n";
}


// Colocamos headers AGI dentro de un array
while ($env=read(){
$s = split(": ",$env);
$agi[str_replace("agi_","",$s[0])] = trim($s[1]);
if (($env == "") || ($env == "\n")) {
break;
}
}

// Funcion que conecta al banco de datos
function connect_db() {
$db_connection = mysql_connect('localhost','root','tectel2011') or die (mysql_error());
$db_select = mysql_select_db('stock') or die (mysql_error());
}

// Programa Principal
connect_db();
// Almacena valor de la variable COD en
write("GET VARIABLE COD");

//lee variable in
$c = fgets($in, 4096);
// reemplaza retorno de carro por espacios
$c = str_replace("\n","",$c);
// quita 14 caracteres a la izquiera y 1 a la derecha
$c = substr($c,14);
$c = substr($c,0,-1);
$query = "SELECT cantidad FROM productos WHERE producto='$c'";
$query_result = @mysql_query($query);
$result = mysql_fetch_row($query_result);
$valor = "$result[0]";
write("EXEC SayDigits \" $valor \"\n");
read();
fclose($in);
fclose($stdlog);
exit;
?>

si aun lo tienes porfavor me lo envias a mi email edmart777@gmail.com desde ya muchas gracias amigo.
 

Members online

No members online now.

Latest posts

Forum statistics

Threads
30,902
Messages
130,886
Members
17,564
Latest member
Mai Tuyen
Top