[AsteriskBrasil] AGI
Alexandre Cavalcante Alencar
alexandre.alencar em gmail.com
Domingo Março 18 01:04:59 BRT 2007
Olá,
Você pode usar o
GET DATA <audiofile> <timeout> <maxdigits>
Para obter as informações. Lhe será retornado algo como
200 result=<digitos informados pelo usuário>
Se precisar passar instruções, use o
STREAM FILE <audiofile> <escape>
Você pode usar a PHP AGI [0] para agilizar seu trabalho. Recomendo antes
ler a documentação dos comandos AGI [1].
Nas minhas horas vagas estou fazendo uma classe em C++ para abstração do
AGI, futuramente FastAGI, falta acertar alguns métodos e documentação.
Quando estiver usável, disponibilizo.
--- este código não vai funcionar como está ---
#!/usr/local/bin/php -q
<?php
set_time_limit(30);
require('phpagi.php');
error_reporting(E_ALL);
$agi = new AGI();
$identificacao = $agi->parse_callerid();
$resultado = $agi->get_data('beep', 3000, 20);
$cliente = $resultado['result'];
?>
--- este código não vai funcionar como está ---
[0] http://phpagi.sf.net
[1] http://www.google.com.br/search?q=AGI
+Docs&ie=utf-8&oe=utf-8&aq=t&rls=org.debian:en-US:unofficial&client=firefox-a
Em Wed, 2007-03-14 às 13:05 -0300, Ma escreveu:
> Pessoal,
>
> Existe alguma forma de resgatar o que foi digitado na URA, e jogar em
> uma variavel em PHP (Agi)???
> Alguem conhece algum exemplo de sintaxe ou algo do tipo?
>
> Eu tenho uma rota, e dentro dela, ao digitar 5 eu chamo o phpagi.
> Dentro do script eu executo um SOM, STREAM FILE menu, e apos isso, eu
> queria receber o que a pessoa digitou, jogando em uma variavel em php.
>
> Colo abaixo o script.
> #!/usr/bin/php -q
> <?
> //--------------
> //usar um depurador mais detalhando
> ob_implicit_flush(true);
> set_time_limit(6);
> $in=fopen("php://stdin","r");
> $stdlog=fopen("/var/lib/asterisk/agi-bin/log/meu_agi.log","w");
>
> $num = 37;
> $dig = 123;
> $som = "z6-digite";
> $debug = false;
> //definir a funcao antes de iniciar o ciclo principal
> function read(){
> global $in, $debug, $stdlog;
> $input = str_replace("\n","",fgets($in,4096));
> if ($debug) fputs($stdlog,"read: $input\n");
> return $input;
> }
>
> function errlog($line){
> global $err;
> echo "VERBOSE \"$line\"\n";
> }
>
> function write($line){
> global $debug, $stdlog;
> if ($debug) fputs($stdlog,"write: $line\n");
> echo $line."\n";
> }
>
> while ($env=read()){
> $s = split(": ",$env);
> $agi[str_replace("agi_","",$s[(0)])] = trim($s[1]);
> if (($env == "") || ($env == "\n")){
> break;
> }
> }
>
> //main program
> echo "VERBOSE \"Aqui vamos nos!\" \n";
> read();
> errlog("Call from ".$agi['channel']." - Chamando o telefone.");
> read();
> write("STREAM FILE $som X");
> read();
> write("SAY DIGITS $s X");
> read();
> //write("SAY DIGITS $dig X");
> //read();
> //write("SAY NUMBER $num X");
> //read();
>
> fclose($in);
> fclose($stdlog);
>
> exit;
> ?>
>
>
> Abraco
> Marcio
> ----------------------------------------
> Estação VoIP 2006
> 5 e 6 Dezembro
> Curitiba PR
> http://www.estacaovoip.com.br
>
> _______________________________________________
> LIsta de discussões AsteriskBrasil.org
> AsteriskBrasil em listas.asteriskbrasil.org
> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>
> _______________________________________________
> Acesse o wiki AsteriskBrasil.org:
> http://www.asteriskbrasil.org
--
+-----------------------------------------+
| Alexandre Cavalcante Alencar (Skarmeth) |
| http://people.debian-ce.org/skarmeth/ |
| GNU/Linux User #260571 GNUPG 0x77EA9FF8 |
| Debian-BR-CE PSL-CE SABUGOSA SCYLLA |
| Fortaleza CE Brazil |
+-----------------------------------------+
Mais detalhes sobre a lista de discussão AsteriskBrasil