Los archivo AGI se deben subir a la siguiente ruta: var/lib/asterisk/agi-bin y darle permisos 0777,
Ejm Agi
#!/usr/bin/php -q
<?php
set_time_limit(60);
require_once "phpagi.php";
error_reporting(E_ALL);
$agi = new AGI();
$agi->Answer();
//Variables de conexion
.....
//Variables internas
$bandera1=1;
$bandera2=1;
$preg1=0;
$preg2=0;
//Conexion a MYSQL
$conexion = mysql_connect($host,$user,$pw) or die("Error: El servidor no puede conectar con la base de datos");
//Comprobacion de conexion a MYSQL
if ($conexion->connect_error) {
die("Conexion Fallida: " . $conn->connect_error);
$agi->verbose('-Malo, conectando con: '.$host);
}else{
$agi->verbose('-Bien, conectado con '.$host);
}
//Seleccion de base de datos
mysql_select_db($db,$conexion) or die("Error: No puede conectar con la base de datos");
$agi->verbose('-SELECCIONO LA BD: '.$db);
//Programa
$telefono=$argv[1];
$agi->verbose('El telefono es: '. $telefono);
$hoy = date('d-m-Y H:i:s');
$agi->verbose('la encuesta se realizo a la hora y fecha: '.$hoy);
//PREGUNTA 1
$marcacion1 = $agi->get_data("custom/Pregunta1", 6000,1);
$resultado1 = $marcacion1['result'];
for($invalido1=1;$invalido1<=2;$invalido1++){
if($resultado1>=1 and $resultado1<=5)
{
$preg1=1;
$invalido1=4;
}
else{
$agi->exec('playback',"custom/Int_invalido");
$agi->verbose('Respuesta Invalida');
$marcacion1 = $agi->get_data("custom/Pregunta1", 6000,1);
$resultado1 = $marcacion1['result'];
$agi->exec('Wait',"1");
}
$agi->verbose('Intento Invalido ='.$invalido1);
$bandera1++;
while($bandera1==3)
{
$agi->exec('playback',"custom/Rta_invalida");
$bandera1++;
}
}
$agi->exec('Wait',"1");
$agi->verbose('usted ha ingresado pregunta 1: '.$resultado1);
//PREGUNTA 2
$marcacion2 = $agi->get_data("custom/Pregunta2", 6000,1);
$resultado2 = $marcacion2['result'];
for($invalido2=1;$invalido2<=2;$invalido2++)
{
if($resultado2>=1 and $resultado2<=3)
{
$preg2=1;
$invalido2=4;
}
else{
$agi->exec('playback',"custom/Int_invalido");
$agi->verbose('Respuesta Invalida');
$marcacion2 = $agi->get_data("custom/Pregunta2", 6000,1);
$resultado2 = $marcacion2['result'];
$agi->exec('Wait',"1");
}
$agi->verbose('Intento Invalido ='.$invalido2);
$bandera2++;
while($bandera2==3)
{
$agi->exec('playback',"custom/Rta_invalida");
$bandera2++;
}
}
$agi->exec('Wait',"1");
$agi->verbose('usted ha ingresado pregunta 2: '.$resultado2);
//vALIDACION E INSERCION EN BASE DE DATOS
................
?>
Adiccional debes crear tu Base de datos o Usar las de Asterisk que requieras.