[AsteriskBrasil] AGI - Shell Script

Carlos Eduardo B. Rovaris carlosrovaris em gmail.com
Terça Maio 29 23:15:24 BRT 2012


Deivison,

Estou tentando desenvolver em Shell Script, pois tenho mais facilidade 
de trabalhar com ele do que o PHP.

Se puderes, posta sua AGI, assim dou uma olhada e tento seguir a mesma 
linha para implementar em shell.

Obg.


Em 29/05/2012 22:48, Deivison Moraes escreveu:
> Boa noite !
>
> Eu tenho um AGI parecido com o que você necessita porem em PHP, alguma
> preferência por usar shell script ?
>
> Mandei há um tempo atrás um tópico relacionado a AGI + PHP, tomei uns
> "tocos" mas consegui aprender mais ou menos. O meu eu uso para consulta
> de portabilidade, junto ao serviço da telein, está funcionando muito
> bem. Se quiser posso postar aqui.
>
> Em 29-05-2012 22:13, Carlos Eduardo B. Rovaris escreveu:
>> Boa noite,
>>
>>
>> Gostaria de saber se alguém tem AGI em desenvolvida em Shell Script que
>> poderia me auxiliar em alguns pontos que estou com dificuldades de resolver.
>>
>>
>> Segue minha configuração:
>>
>> ->>>>   Extensions.conf
>>
>> exten =>   500,1,agi(2test.sh)
>> exten =>   500,n,NoOP(${consulta})
>>
>> ############################################################
>>
>> ->>>>   Script Shell:
>>
>> #!/bin/bash
>>
>> numero=48xxxxxxxx
>>
>> consulta=  ## procedimento de consulta do valor armazenado na variavel
>> numero ##
>>
>> echo "SET VARIABLE consulta $consulta "
>>
>> ############################################################
>>
>> ->>>>   Debug Asterisk console:
>>
>> Verbosity is at least 20
>>      == Using SIP RTP CoS mark 5
>>        -- Executing [500 em external:1] AGI("SIP/1600-00000038", "2test.sh")
>> in new stack
>>        -- Launched AGI Script /var/lib/asterisk/agi-bin/2test.sh
>> <SIP/1600-00000038>AGI Tx>>   agi_request: 2test.sh
>> <SIP/1600-00000038>AGI Tx>>   agi_channel: SIP/1600-00000038
>> <SIP/1600-00000038>AGI Tx>>   agi_language: en
>> <SIP/1600-00000038>AGI Tx>>   agi_type: SIP
>> <SIP/1600-00000038>AGI Tx>>   agi_uniqueid: 1338338846.56
>> <SIP/1600-00000038>AGI Tx>>   agi_version: 1.8.12.0
>> <SIP/1600-00000038>AGI Tx>>   agi_callerid: 1600
>> <SIP/1600-00000038>AGI Tx>>   agi_calleridname: CEBR2
>> <SIP/1600-00000038>AGI Tx>>   agi_callingpres: 0
>> <SIP/1600-00000038>AGI Tx>>   agi_callingani2: 0
>> <SIP/1600-00000038>AGI Tx>>   agi_callington: 0
>> <SIP/1600-00000038>AGI Tx>>   agi_callingtns: 0
>> <SIP/1600-00000038>AGI Tx>>   agi_dnid: 500
>> <SIP/1600-00000038>AGI Tx>>   agi_rdnis: unknown
>> <SIP/1600-00000038>AGI Tx>>   agi_context: external
>> <SIP/1600-00000038>AGI Tx>>   agi_extension: 500
>> <SIP/1600-00000038>AGI Tx>>   agi_priority: 1
>> <SIP/1600-00000038>AGI Tx>>   agi_enhanced: 0.0
>> <SIP/1600-00000038>AGI Tx>>   agi_accountcode:
>> <SIP/1600-00000038>AGI Tx>>   agi_threadid: 1095186752
>> <SIP/1600-00000038>AGI Tx>>
>> <SIP/1600-00000038>AGI Rx<<   SET VARIABLE consulta 5
>> <SIP/1600-00000038>AGI Tx>>   200 result=1
>> [May 30 04:47:28] ERROR[14217]: utils.c:1164 ast_carefulwrite: write()
>> returned error: Broken pipe
>>        --<SIP/1600-00000038>AGI Script 2test.sh completed, returning 0
>>        -- Executing [500 em external:2] NoOp("SIP/1600-00000038", "5") in new
>> stack
>>        -- Auto fallthrough, channel 'SIP/1600-00000038' status is 'UNKNOWN'
>> server*CLI>
>>
>> ############################################################
>>
>> Basicamente o que estou precisando resolver:
>> - como armazenar o valor da "agi_extension" na variavel "numero" do
>> Shell Script ?
>>
>> - Como faço para encaminhar a chamada de acordo com o valor de retorno
>> da AGI ?
>>
>> ex: No exemplo do log, disquei 500, e através da AGI retornou o valor "5".
>>
>> Assim gostaria de fazer:
>>
>> Caso o valor seja "4", encaminha para Trunk1
>> Caso o valor seja "5", encaminha para Trunk2
>> Caso o valor seja "6", encaminha para Trunk3
>>
>>
>> Agradeço toda e qualquer ajuda.
>>
>> _______________________________________________
>> KHOMP Inovação: External Board Series
>> Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e FreeSWITCH.
>> Tenha a External Series Experience na sua aplicação. Visite www.khomp.com
>> _______________________________________________
>> DIGIVOICE  Fabricante de Placas de Voz e Channel Bank
>> 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM
>> Centro Treinamento - Curso de PABX IP -  Asterisk  - Site  www.digivoice.com.br
>> ________
>> YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do mercado.
>> email: yealink em commlogik.com.br | www.commlogik.com.br | (11) 5503-1011
>> ______________________________________________
>> Para remover seu email desta lista, basta enviar um email em branco para asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
> _______________________________________________
> KHOMP Inovação: External Board Series
> Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e FreeSWITCH.
> Tenha a External Series Experience na sua aplicação. Visite www.khomp.com
> _______________________________________________
> DIGIVOICE  Fabricante de Placas de Voz e Channel Bank
> 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM
> Centro Treinamento - Curso de PABX IP -  Asterisk  - Site  www.digivoice.com.br
> ________
> YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do mercado.
> email: yealink em commlogik.com.br | www.commlogik.com.br | (11) 5503-1011
> ______________________________________________
> Para remover seu email desta lista, basta enviar um email em branco para asteriskbrasil-unsubscribe em listas.asteriskbrasil.org


Mais detalhes sobre a lista de discussão AsteriskBrasil