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

Ricardo Guedes de Carvalho rguedesdecarvalho em gmail.com
Terça Março 31 12:58:28 BRT 2009


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
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20090331/37039468/attachment-0001.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil