[AsteriskBrasil] Executando um script e recebendo o retorno dele

Nivaldo Junior junior em remoto.com.br
Quinta Dezembro 1 17:43:29 BRT 2005


Olá Caio!

Deixa eu te explica melhor.
Na ura o usuário vai digitar uma data tipo: 011205
Eu quero pegar esse valor, converter para Unix Time Stamp e depois executar:
SayUnixTime(valor_retornado_pelo_script)
Por que essa função SayUnixTime só fala a data se eu colocar a data nesse 
formato.
O script é em perl, ele vai receber como parâmetros os valores digitados pelo 
usuário e retornar o valor da data em time stamp.
Por exemplo: o usuário vai digitar 011205
Vou executar: timestamp.pl 011205
e ele vai me retornar: 1133492400
que é o valor da data em timestamp, entendeu? :)
Depois eu executo: SayUnixTime(1133492400)
e o asterisk fala a data para confirmar para o usuário se a data que ele 
digitou está certa.

Eu dei uma lida nos tutoriais que têm lá no voip-info, mas nenhum me explica 
como capturar o retorno do script.

Como que eu faço pra gravar a saída em uma variável do asterisk?

Valeu pela ajuda!

Abraço,

-- 
Nivaldo Júnior
Nexus Consultoria 
www.nexusconsult.com.br

Em Quinta 01 Dezembro 2005 15:12, Caio Begotti escreveu:
> 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.


Mais detalhes sobre a lista de discussão AsteriskBrasil