[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