[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