[AsteriskBrasil] Executando um script e recebendo o retorno dele
Caio Begotti
caio em ueberalles.net
Quinta Dezembro 1 16:12:50 BRT 2005
On Thursday 01 December 2005 12:22, Nivaldo Junior wrote:
> Pessoal,
Opa, Nivaldo :-)
> Como eu executo esse script dentro do extensions?
> Dei uma olhada na Net e só achei os comandos System(comando) e AGI(Exec
> comando), mas o problema é que nenhum dos dois retorna o valor que o
> comando retorna... então eu não consigo pegar o resultado do comando...
Eu não entendi direito o que você vai receber como dados, como isso deverá ser
processado e o que deverá retornar ao Asterisk. Se você puder explicar
melhor, valeu. Entenda a diferença aqui:
http://www.voip-info.org/tiki-index.php?page=Asterisk+AGI
http://www.voip-info.org/tiki-index.php?page=Asterisk+cmd+System
O AGI é mais complicadinho, já que você tem que tratar os códigos de
saída/retorno do Asterisk e do seu AGI (PHP, C, Ruby, Python, Shell Script,
whatever). Depois que você entende da onde a mágica vem, fica mais fácil.
Eu usaria "exten => s,1,AGI(nome_do_seu_agi,${usuario},${digitou})", onde 1 é
a sua prioridade de execução pro AGI mesmo.
E dentro do /var/lib/asterisk/agi-bin/nome_do_seu_agi você bola um Shell
Script mesmo, já serve. Mas aí vai ficar sem toda a boiada que PHP ou Python
te dá, com funçõeszinhas já prontas. Como falou que pegou um script pronto, e
estou supondo que é shell...
No script, faça com que ele grave uma variável qualquer com um valor desejado
e faça o seu dialplan lê-la. Pode ser com "env var" pra ser do ambiente, ou
uma variável do Asterisk mesmo, se souber fazer assim. No Voip-Info.org fala
em detalhes melhor do que este e-mail :-P
> Alguém tem alguma idéia de como faço isso?
Procure por AGI no Google e especialmente no www.voip-info.org. O assunto é
bem profundo e tem várias formas de fazer isso. Vale a pena e é bem legal,
apesar de o seu caso poder ser resolvido com o system() também, à primeira
vista.
--
Caio Begotti (caio1982)
http://caio.ueberalles.net
Mais detalhes sobre a lista de discussão AsteriskBrasil