[AsteriskBrasil] script para realizar ligação no asterisk (AGI)

Kim Delevati kim.delevati em gmail.com
Terça Março 31 19:44:36 BRT 2009


Sem o -cli... mas acho que tava assim antes né?

#!usr/bin/php5

Tenta assim também

#!usr/bin/php5-v

Mas você tem certeza que o php5 está nessa pasta né? Eu não lembro
exatamente o que eu fiz (fazem alguns meses) mas demorei uns dias pra
conseguir fazer funcionar o agi, dava problema com o interpretador também.

2009/3/31 Ricardo Guedes de Carvalho <rguedesdecarvalho em gmail.com>

> então, minha versão é a mais recente de php5-cli
> quando chamar o interpretador deve ficar assim #!usr/bin/php5-cli   ?
> mesmo assim o erro persiste
>
>
>
> 2009/3/31 Kim Delevati <kim.delevati em gmail.com>
>
>> 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
>>>
>>
>>
>> _______________________________________________
>> 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
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20090331/ee519c4c/attachment-0001.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil