[AsteriskBrasil] Variavel Goto

Tiago Durante tiagodurante em gmail.com
Terça Julho 1 16:18:19 BRT 2008


UPDATE:

exten => t,1,Set(foo=romario94,g)

Com isso a variavel pode ser usada em qquer parte, fica global.

Veja: http://www.voip-info.org/wiki/index.php?page=Asterisk+cmd+Set


[]s


-- 
Tiago Durante

,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,
Perseverance is the hard work you do after you
get tired of doing the hard work you already did.
-- Newt Gingrich


2008/7/1 Tiago Durante <tiagodurante em gmail.com>:
> Oi Gilberto,
>
> Não entendi exatamente o que você está fazendo na sua URA, mas isso
> não tem importancia.
>
> O comando Goto não leva nenhum parametro junto, mas, desde que você
> esteja no mesmo contexto (se eu estiver errado me falem! rs), você
> pode setar a variavel com SET e usa-la depois em qquer lugar.
>
> Exemplo, vamos dizer que sua URA fez toda a mágica que tinha que fazer
> e ai caiu em um momento que vai fazer um GOTO pro começo dela e vc
> precisa levar uma variavel junto...
>
> exten => t,1,Set(foo=romario94)
> exten => t,n,GoTo(_*XXXXX,1)
>
> Eu não sei se a variável declarada com SET vai ser carregada para
> outro contexto, teste.
>
> Outra coisa que vc pode fazer é trocar esse GOTO por uma MACRO..
> Sacou? Assim você passa a variavel pra macro que tem o contexto do
> GOTO...
>
> Não sei se ajudei, mas qquer coisa posta ae!
>
> =)
>
> --
> Tiago Durante
>
> ,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,
> Perseverance is the hard work you do after you
> get tired of doing the hard work you already did.
> -- Newt Gingrich
>
>
>
> 2008/7/1 Gilberto Nunes <gilberto em bitmix.com.br>:
>> Desculpem
>> Acabei escrevendo Postgrey e não PostgreSQL... rsrsrs
>> É que estava fazendo outra coisa com servidor de E-mail... Aí embanou aqui...
>> Desculpem...
>>
>>
>> Em Ter, Julho 1, 2008 4:03 pm, Gilberto Nunes escreveu:
>>> Ok
>>>
>>> vamos lá
>>>
>>> Eu tenho uma URA personalizada aqui...
>>> Eu mesmo a fiz e está horrivel eu sei...
>>> Por isso tenho que melhorá-la, principalmente no quesito 'logica'.
>>>
>>> Acontece que temos aqui um DB com Postgrey que é parte do nosso CRM.
>>> Então criei uma URA pra quando a pessoa digitar o numero certo de caracteres, no caso
>>> *XXXXXX (X = 0-9), ele captura essa sequencia, dentro da URA:
>>>
>>> exten => 1, 3, Goto(consulta,_*XXXXXX,1)
>>>
>>> E como pode perceber, "joga" o fluxo da ligação para o contexto [consulta].
>>> Dentro deste contexto temos o seguinte:
>>>
>>> exten => _*XXXXXX, 1, Answer()
>>> exten => _*XXXXXX, 2, WaitExten()
>>> exten => _*XXXXXX, 3, Set(CHANNEL(language)=pt_BR)
>>> exten => _*XXXXXX, 4, Set(OS=/etc/asterisk/OS)
>>> exten => _*XXXXXX, 5, System(/bin/mkdir ${OS}/${EXTEN:1})
>>> exten => _*XXXXXX, 6, System(psql -U postgres -h IP -d BANCO -c "SELECT * FROM tabela where
>>> ord_cod=${EXTEN:1} order by situacao asc" > ${OS}/${EXTEN:1}/os_${EXTEN:1})
>>> exten => _*XXXXXX, 7, System(cat ${OS}/${EXTEN:1}/os_${EXTEN:1} | grep "|" | cut -d"|" -f3 |
>>> grep -v sta_cod | tail -n -1 > ${OS}/${EXTEN:1}/sit_final_${EXTEN:1})
>>> exten => i,1,Playback(invalid)
>>> exten => i,2,Wait,1
>>> exten => i,3,Goto(_*XXXXXX,1)
>>>
>>> ;;;                  Set(foo=${SHELL(echo \"bar\")})\n");
>>> exten => _*XXXXXX,8,Set(SITUACAO=${SHELL(cat "${OS}/${EXTEN:1}/sit_final_${EXTEN:1}")})
>>>
>>> ;;;;; GotoIf($["${ALLERIDNUM}" = "303"]?3)
>>> ; Executa uma macr para OS na Bancada
>>> exten => _*XXXXXX,9,Gotoif($[${SITUACAO} = 101]?12)
>>> ; Executa uma macr para OS Concluida
>>> exten => _*XXXXXX,10,Gotoif($[${SITUACAO} = 2]?13)
>>> ; Executa uma macr para OS Concluida
>>> exten => _*XXXXXX,11,Gotoif($[${SITUACAO} = 104]?13)
>>>
>>>
>>> ; Vai para macro bancada
>>> exten => _*XXXXXX,12,Macro(bancada,${EXTEN:1})
>>> ; Vai para macro O Concluida
>>> exten => _*XXXXXX,13,Goto(concluido,s,1)
>>>
>>> Como dá pra perceber, ele faz uma consulta ao PostgreSQL, via System, usando o comando psql
>>> do Linux.
>>>
>>> Perceba mais aqui em baixo, que tem uma desvio, um usando Macro e outro o Goto.
>>> Na Macro consigo passar argumentos, porém no Goto não...
>>>
>>> Como fazer?
>>>
>>> Obrigado
>>>
>>> P.S.: Sei que esse código tá horrivel! Se houver alguma maneira mais fácil de interfacear com
>>> o PostgreySQL e tirar dados de lá, por favor me avisem! :)
>>>
>>>
>>>
>>>
>>> Em Ter, Julho 1, 2008 3:46 pm, Tiago Durante escreveu:
>>>> Gilberto,
>>>>
>>>> Dê um exemplo simples do que vc quer fazer, acho que nao ficou muito claro...
>>>>
>>>>
>>>> Abraços!
>>>>
>>>> --
>>>> Tiago Durante
>>>>
>>>> ,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,
>>>> Perseverance is the hard work you do after you
>>>> get tired of doing the hard work you already did.
>>>> -- Newt Gingrich
>>>>
>>>>
>>>>
>>>>
>>>> On Tue, Jul 1, 2008 at 3:33 PM, Gilberto Nunes <gilberto em bitmix.com.br> wrote:
>>>>> Boa tarde
>>>>>
>>>>> Sei que quando usamod Macros, podemos passar argumentos dentro do DialPlan.
>>>>> Por exemplo:
>>>>>
>>>>> exten => _*XXXXXX,12,Macro(teste,${EXTEN:1}
>>>>>
>>>>> Isso faz que seja executada a Macro teste, passando como argumento o ${EXTEN:1}, ou seja,
>>>>> a
>>>>> sequencia _*XXXXXX.
>>>>>
>>>>> Existe alguma maneira de fazer isso com o Goto ou outra variavel?
>>>>>
>>>>> Obrigado
>>>>>
>>>>>
>>>>> --
>>>>> Atenciosamente
>>>>>
>>>>> ---
>>>>> Gilberto Nunes
>>>>> MSN: gilberto em bitmix.com.br
>>>>> Fones: 47-3348-8020
>>> --
>>> Atenciosamente
>>>
>>> ---
>>> Gilberto Nunes
>>> MSN: gilberto em bitmix.com.br
>>> Fones: 47-3348-8020
>>
>> --
>> Atenciosamente
>>
>> ---
>> Gilberto Nunes
>> MSN: gilberto em bitmix.com.br
>> Fones: 47-3348-8020
>


More information about the AsteriskBrasil mailing list