[AsteriskBrasil] script para realizar ligação no asterisk (AGI)
Kim Delevati
kim.delevati em gmail.com
Terça Março 31 13:48:27 BRT 2009
Tá certo assim.
Presumo que você tenha o php instalado aí. Talvez tenha que instalar outras
versões. Se não me engano, a versão que eu tenho e funciona é a cli, que é a
indicada no voip-info.
# apt-get install php5-cli
Isso deve instalar, e resolver o seu problema.
2009/3/31 Ricardo Guedes de Carvalho <rguedesdecarvalho em gmail.com>
> perdão, o exer esta assim agora:
> $agi->exec("Dial SIP/8000")
>
>
>
> 2009/3/31 Ricardo Guedes de Carvalho <rguedesdecarvalho em gmail.com>
>
>> Então Kim, acho que está certinho o script como vc disse. Ele esta assim:
>>
>>
>> #!usr/bin/php5
>> <?php
>> /* discador usando o AGI - PHPAGI */
>> require 'phpagi.php';
>> $agi = new AGI();
>> /* executar ligacao para o numero 8000 */
>> $agi->exec("Dial".$SIP/8000);
>> /* executar o hungup */
>> $agi->hangup();
>>
>> ?>
>>
>> Porém, o erro de interpretador é o que esta dificultando:
>>
>> -bash: ./discador.php: usr/bin/php5: bad interpreter: No such file or
>> directory
>>
>>
>> 2009/3/31 Kim Delevati <kim.delevati em gmail.com>
>>
>> Deve ser problema nele... tem que procurar o seu php, no manual no
>>> voip-info fala mais sobre isso, tem a opção -d também. Busque o php5, pode
>>> estar em outra pasta.
>>>
>>> /* discador usando o AGI - PHPAGI */
>>>
>>> O require pode ficar sem o endereço (ou deve), como o phpagi está na
>>> mesma pasta. Pode ficar só require 'phpagi.php' daí.
>>>
>>> Essa linha tem que ser retirada acho, o intepretador tem que ser na
>>> primeira linha, e o início de código ( <?php) na segunda, sem espaços entre
>>> eles.
>>>
>>>
>>> Ah, o numero está errado, o $numero seria só pra mostrar como faz, se é
>>> um numero fixo, pode escrever assim:
>>>
>>> $agi->exec("Dial SIP/8000");
>>>
>>> Só falei como numa variável numero, caso tu quisesse buscar de algum
>>> lugar.
>>>
>>> Lembre-se de colocar a opção "pode ser executado como um programa", senão
>>> o Asterisk não consegue rodar o arquivo.
>>>
>>>
>>> 2009/3/31 Ricardo Guedes de Carvalho <rguedesdecarvalho em gmail.com>
>>>
>>>> -bash: ./discador.php: usr/bin/php5: bad interpreter: No such file or
>>>> directory
>>>>
>>>>
>>>> 2009/3/31 Ricardo Guedes de Carvalho <rguedesdecarvalho em gmail.com>
>>>>
>>>> agora coloquei, mas ta dando erro de bad interpreter
>>>>>
>>>>>
>>>>> 2009/3/31 Alan Bernardes <simpleasb em hotmail.com>
>>>>>
>>>>> 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
>>>>>>
>>>>>> ------------------------------
>>>>>> Notícias direto do New York Times, gols do Lance, videocassetadas e
>>>>>> muitos outros vídeos no MSN Videos! Confira já!<http://video.msn.com/?mkt=pt-br>
>>>>>>
>>>>>> _______________________________________________
>>>>>> 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
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> 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
>>
>
>
>
> --
> 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
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20090331/98718960/attachment-0001.htm
Mais detalhes sobre a lista de discussão AsteriskBrasil