[AsteriskBrasil] script para realizar ligação no asterisk (AGI)
Alan Bernardes
simpleasb em hotmail.com
Terça Março 31 11:39:27 BRT 2009
Voce declarou o Interpretador????
#!usr/bin/php5
Alan Bernardes
simpleasb em hotmail.com
55 11 9666-1475
Date: Tue, 31 Mar 2009 11:26:04 -0300
From: rguedesdecarvalho em gmail.com
To: asteriskbrasil em listas.asteriskbrasil.org
Subject: Re: [AsteriskBrasil] script para realizar ligação no asterisk (AGI)
Oi Kim, sou eu de novo, mudei tudo pra pasta /var/lib/asterisk/agi-bin/
lá estão os arquivos phpagi.php e o meu criado discador.php com as seguintes linhas de comando:
/* discador usando o AGI - PHPAGI */
<?php
require ' /var/lib/asterisk/agi-bin/phpagi.php';
$agi = new AGI();
/* executar ligacao para o numero 8000 */
$agi->exec("Dial".$SIP/8000);
/* executar o hungup */
$agi->hangup();
?>
Porém ainda ao executar ./discador.php os erros abaixo persistem:
./discador.php: line 1: /bin: is a directory
./discador.php: line 2: ?php: No such file or directory
./discador.php: line 4: require: command not found
./discador.php: line 6: syntax error near unexpected token `('
./discador.php: line 6: `$agi = new AGI(); '
Salva eeeuuu...rs
2009/3/30 Kim Delevati <kim.delevati em gmail.com>
Qualquer coisa só perguntar, desenvolvi várias coisas em AGI aqui.
2009/3/30 Ricardo Guedes de Carvalho <rguedesdecarvalho em gmail.com>
ops, não li tbm esse primeiro, hehe
vou testar aqui e tentar rodar, valew pela dica, mto obrigado Kim.
;)
2009/3/30 Kim Delevati <kim.delevati em gmail.com>
Ops, respondi no outro, sem ter visto esse antes.
Então, o que você falou é bem simples, depois que você pega o jeito do AGI.
http://www.voip-info.org/wiki/view/Asterisk+AGI+php
Aqui basicamente tem tudo, algumas dicas minhas:
Recomendo baixar a classe phpagi:
http://phpagi.sourceforge.net/
Ela torna bem mais fáceis as funções.
Primeiras linhas do Script tem que ser isso:
#!/usr/bin/php5
<?
require 'phpagi.php';
ob_implicit_flush(false);
set_time_limit(3000);
$stdin = fopen( 'php://stdin', 'r' );
$stdout = fopen('php://stdout', 'w');
Na primeira, tem que modificar, coloque o caminho, e a versão do seu php. A segunda é aquilo, lembre-se que não pode ter NENHUM espaço em branco entre a primeira e a segunda, só a nova linha mesmo.
A terceira linha é opcional, caso você queira usar a classe phpagi. Caso queira, delete todas as linhas seguintes. Caso não queira, delete só ela.
Após isso, se escolheu usar o phpagi, você declara:
$agi = new AGI();
E faz o dial:
$agi->exec("Dial ".$numero."|op1|op2|opetc");
O número seria que nem um normal de Asterisk, ex SIP/02135674670 em servidorvoip, SIP/2001, ZAP/1/05534500940, etc... nas ops você pode colocar opções normais do dial, tipo timeoout, etc... qualquer coisa.
Depois o hangup:
$agi->hangup();
Caso seja sem o phpagi, fica mais ou menos assim:
fwrite($stdout," exec dial ".$numero."|op1|op2|\n");
fflush($stdout);
Mesma coisa o negócio do numero e ops, mas lembre-se que mandando um comando desse jeito, no final da string é OBRIGATÓRIO o uso do \n, se não o asterisk se perde.
Depois o hangup:
fwrite($stdout," exec Hangup \n");
fflush($stdout);
Só tenho uma ressalva, esse Hangup aí as vezes não funciona direito... recomendo usar um exit mesmo.
E pra finalizar, acaba o script:
?>
Era isso, taí um script simples de dial, aí só coloca o numero e liga. Caso queira que o numero seja passado pelo Asterisk quando chama o AGI, tem que mandar como opção (pode passar várias), ex:
exten->100,1,AGI(dial.php|numero qualquer|timeout)
depois você pega dentro do script, com argv[1], argv[2], etc:
$numero=$argv[1];
$timeout=$argv[2];
Dá pra pegar muitas variáveis que o Asterisk passa também, e tem um comando de pegar variáveis de diaplan. Digamos que as opções são quase ilimitadas.
Ficou meio extenso, mas taí.
2009/3/30 Ricardo Guedes de Carvalho <rguedesdecarvalho em gmail.com>
Boa tarde pessoal,
Estou com algumas dificuldades ao tentar fazer um script em php o qual tem a finalidade de ao executá-lo, uma ligação é feita para um
determinado número configurado em meu sistema asterisk. Na verdade não tenho muito idéia de como seria feito isso, sei que o script interage com
o sistema através do AGI. Não tenho muita familiaridade com desenvolvimento de programa, script,etc. Não sei qual seria a linguagem apropriada para esse tipo de script, qual seria mais fácil,etc.
Fico grato com a atenção de quem puder me ajudar.
No aguardo e ancioso.
Att,
--
Ricardo Guedes
Suporte Telefonia Voz sobre IP
IGNISCOM (19) 3119-2445
_______________________________________________
Openmoko Freerunner, primeiro telefone open source, disponível no Brasil rodando o Android da Google.
http://www.neodroid.com
Compre uma camiseta da AsteriskBrasil.org!
http://www.voipmania.com.br
Acesse o canal IRC de discussão sobre Asterisk em Português Brasileiro na rede Freenode.net: #asterisk-br
_______________________________________________
Lista de discussões AsteriskBrasil.org
AsteriskBrasil em listas.asteriskbrasil.org
http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
_______________________________________________
Openmoko Freerunner, primeiro telefone open source, disponível no Brasil rodando o Android da Google.
http://www.neodroid.com
Compre uma camiseta da AsteriskBrasil.org!
http://www.voipmania.com.br
Acesse o canal IRC de discussão sobre Asterisk em Português Brasileiro na rede Freenode.net: #asterisk-br
_______________________________________________
Lista de discussões AsteriskBrasil.org
AsteriskBrasil em listas.asteriskbrasil.org
http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
--
Ricardo Guedes
Suporte Telefonia Voz sobre IP
IGNISCOM (19) 3119-2445
_______________________________________________
Openmoko Freerunner, primeiro telefone open source, disponível no Brasil rodando o Android da Google.
http://www.neodroid.com
Compre uma camiseta da AsteriskBrasil.org!
http://www.voipmania.com.br
Acesse o canal IRC de discussão sobre Asterisk em Português Brasileiro na rede Freenode.net: #asterisk-br
_______________________________________________
Lista de discussões AsteriskBrasil.org
AsteriskBrasil em listas.asteriskbrasil.org
http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
_______________________________________________
Openmoko Freerunner, primeiro telefone open source, disponível no Brasil rodando o Android da Google.
http://www.neodroid.com
Compre uma camiseta da AsteriskBrasil.org!
http://www.voipmania.com.br
Acesse o canal IRC de discussão sobre Asterisk em Português Brasileiro na rede Freenode.net: #asterisk-br
_______________________________________________
Lista de discussões AsteriskBrasil.org
AsteriskBrasil em listas.asteriskbrasil.org
http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
--
Ricardo Guedes
Suporte Telefonia Voz sobre IP
IGNISCOM (19) 3119-2445
_________________________________________________________________
Confira vídeos com notícias do NY Times, gols direto do Lance, videocassetadas e muito mais no MSN Video!
http://video.msn.com/?mkt=pt-br
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20090331/e97ab99a/attachment-0001.htm
Mais detalhes sobre a lista de discussão AsteriskBrasil