[AsteriskBrasil] Res: exportar variável de uma macro para um contexto

Thiago Bruni Tawil stomaz.fei em gmail.com
Quarta Março 30 15:20:17 BRT 2011


Vagner,
Muito obrigado pela atenção!

Eu consegui ontem utilizar o SHARED. Tudo funcionou e ficou lindo!! heheheh

Desculpa não ter postado antes que eu consegui.. tmb estou correndo
muito..(faculdade + estágio + TCC + semana de provas).
Obrigado mais uma vez.. se precisar de alguma coisa e eu puder ajudar...
estou por aqui!!

Abraços...

Em 30 de março de 2011 15:03, Vagner Menezes <vagmenezes em yahoo.com.br>escreveu:

> Boa tarde Thiago
>
> Primeiramente desculpe a demora na resposta a coisa ta corrida aqui estamos
> em fase de finalização de um PBX-IP focado em GSM...
>
> Bom então segue exemplo solicitado.
>
> Pelo que vi nos e-mails seus anteriores vc Liga de A para B, deixa B
> "onHold" e após A liga para C conversam entre eles e se C aceitar A digita
> algum DTMF e volta com B + Chanspy de C, correto?
>
> Bom tentando repassar ao teu contexto...
>
> A -> Dial(B)
> A pressiona feature ou dtmf exemplo *1 para iniciar a operação e *2 para
> juntar as 3 partes;
> ChannelRedirect de B para um contexto onHold, mais ou menos assim -
> ChannelRedirect(${BRIDGEPEER},espera,s,1)
>
> Goto A para o canal solicitando numero destino - Goto(digite,s,1)
> Após ler a extensão a ser discada e tocar o audio em A faz o dial para
> aquela extensão (contexto "digite" extensão "XXXX")
> B está on Hold...
>
>
> [espera]
> exten => s,1,NoOp(Canal em espera ${CHANNEL})
> exten => s,n,MusicOnHold()
>
> [digite]
> exten => s,1,NoOp(Buscando numero destino)
> exten => s,n,Set(InWait=${BRIDGEPEER})
> /Com SHARED  no canal
> ;exten => s,n,Set(SHARED(InWait)=${BRIDGEPEER}) //seta uma variavel
> chamada InWait compartilhada neste canal;
>
> /Setando Variavel no cana em espera
> ;exten => s,n,Set(SHARED(Variavel,${BRIDGEPEER})=ABC)  //Setando a variavel
> compartilhada no canal que esta em espera
>
> exten => s,n,BackGround(arquivodeAudioPedindoDestino)
> exten => s,n,WaitExten()
>
>
> exten => XXXX,1,NoOp(Destino será ${EXTEN})
> exten => XXXX,n,Dial(${EXTEN},timeout,tTgF(junta-B-C^s^1))
> exten => XXXX,n,NoOp(Destino desligou... voltando para B)
> exten => XXXX,n,Bridge(${InWait))
>
> exten =>  *1,1,NoOp(Junta os 3)
> exten =>  *1,n,Aqui vai o restante do codigo... chanspy... etc
>
> [junta-B-C]
> exten => s,1,NoOp(A desligou... juntando B e C)
> exten => s,n,Set(InWait=${IMPORT(${BRIDGEPEER},InWait)}) definindo a
> variavel inWait para este canal
> exten => s,n,Bridge(${InWait})
>
> /Visualizando a variavel compartilhada que estava no canal em espera "B"
> ;exten => s,n,NoOp( Compartilhada em espera é
> ${SHARED(Variavel,${InWait})}) deverá retornar ABC
>
>
> /Recuperando com SHARED variavel compartilhada que estava no canal A
> ;exten => s,n,Bridge(${SHARED(InWait,${BRIDGEPEER})})
>
>
> Deste modo, Caso C deseja falar com B, basta A desligar; e se C desligar, A
> volta a falar com B.
> Caso seja pressionado *1 juntará os 3 (a implementar)...
>
> O uso do Import e do Shared são quase iguais, os cuidados que tens que
> tomar é que a sintaxe eh diferente
> setando = IMPORT(CANAL,NOME_DA_VAR) / recuperando =
> ${IMPORT(CANAL,NOME_DA_VAR)}
> setando = SHARED(NOME_DA_VAR,CANAL) / recuperando =
> ${SHARED(NOME_DA_VAR,CANAL)}
>  o legal do Shared que você pode setar uma variavel compartilhada em outro
> canal fora do contexto, mas que esteja em execução por exemplo, e retornar a
> mesma quando quiser via SHARED também... variaveis que são setadas via
> SHARED só retornam por ele
>
> Set(Teste=123) é diferente de Set(SHARED(Teste)=123).
>
> O interessante é não utilizar variaveis globais "__Teste" pois em um
> cenário com muitas chamadas elas irão mudar constantemente... diferente das
> variaveis de canal que são dinâmicas e quando desligado são "apagadas"...
>
> Não testei os contextos no asterisk... é só para Ilustrar... provavelmente
> se copiar e colar não funcionará.
>
> Espero que tenha conseguido sanar sua duvida... qqr coisa to aqui =)
>
>
> Abraço
> Att
> Vagner de Menezes
>
> ------------------------------
> *De:* Thiago Bruni Tawil <stomaz.fei em gmail.com>
> *Para:* asteriskbrasil em listas.asteriskbrasil.org
> *Enviadas:* Terça-feira, 29 de Março de 2011 16:35:31
> *Assunto:* Re: [AsteriskBrasil] exportar variável de uma macro para um
> contexto
>
> Vagner, Você poderia me dar algum exemplo de sucesso usando o SHARED???
> EU não consigo fazer funcionar.. dove estar errando alguma coisa!
>
> Valeu!
>
> Em 24 de março de 2011 18:02, Thiago Bruni Tawil <stomaz.fei em gmail.com>escreveu:
>
>> Kras.. eu fiz.pro trampo... acho que pega mal eu passar tudo.. agora to
>> no metro indo pra casa... amanha eu dou uma explicada... a dica eh...
>> colocaros 3 canais em contextos separados.. depois juntar dois deles com
>> brige, e o 3o por chanspy... boa sorte!!!
>>
>> Em 24/03/2011 16:12, "alexandre - aldeia digital" <alepaes em ad2.com.br>
>> escreveu:
>>
>> Perguntinhas:
>> --não precisa mostrar o "peixe" se não quiser... :P --
>>
>> 1) Você está usando o Channel Redirect para um meetme quando disca *3 ?
>> 2)  O que acontece se o C não quiser participar? Você entra no meetme
>> direto?
>>
>>
>> Alexandre
>> Aldeia Digital
>>
>> Em 24-03-2011 15:47, Thiago Bruni Tawil escreveu:
>>
>> > Rodrigo Valeu pela preocupação.... mas já consegui fazer o que eu
>> queria!
>> > Deu trabalho.. mas val...
>>
>> > <mailto:stomaz.fei em gmail.com>> escreveu:
>> >
>>
>> > A função SHARED e IMPORT são perfeitas!!
>> >
>> > Valeu Vagner!!
>> > Ogribado Pessoal pela aj...
>> >     <stomaz.fei em gmail.com <mailto:stomaz.fei em gmail.com>> escreveu:
>>
>> >
>> > Na verdade eu precisaria exportar uma variável de um canal para
>> > outro..
>> > ...
>> >         <alepaes em ad2.com.br <mailto:alepaes em ad2.com.br>> escreveu:
>>
>> >
>> > E se usar 2 undescores ?
>> >
>> > exten => s,1,Set(__ABC=10)
>> >
>> >
>> >
>> > ...
>> >             <mailto:stomaz.fei em gmail.com <mailto:stomaz.fei em gmail.com
>> >>>
>>
>> > escreveu:
>> > >
>> > > Acontece que eu estou separando os...
>> >             <mailto:sylvio.sdr em gmail.com <mailto:sylvio.sdr em gmail.com
>> >>>
>>
>> > escreveu:
>> > >
>> > > As variaveis criadas so deixam...
>> >              > <mailto:rodrigoferreiralang em gmail.com
>>
>> > <mailto:rodrigoferreiralang em gmail.com>>> escreveu:
>> > >
>> > > ...
>> >             <mailto:stomaz.fei em gmail.com <mailto:stomaz.fei em gmail.com
>> >>>
>>
>> > > escreveu:
>> > >
>> > > Olá...
>>
>> > <mailto:asteriskbrasil-unsubscribe em listas.asteriskbrasil.org>>
>> > >
>> > ...
>>
>> > <http://www.khomp.com.br>
>> > > _______________________________...
>>  >             <http://www.voipmania.com.br> <http://www.voipmania.com.br
>> >
>>
>> > > VOIPMANIA STORE
>> > > ________
>> > > ...
>>
>> > <mailto:asteriskbrasil-unsubscribe em listas.asteriskbrasil.org>>
>> > >
>> > ...
>>
>>
>
>
>
> _______________________________________________
> KHOMP: qualidade em placas de E1, GSM, FXS e FXO para Asterisk.
> - Hardware com alta disponibilidade de recursos e qualidade KHOMP
> - Suporte técnico local qualificado e gratuito
> Conheça a linha completa de produtos KHOMP em www.khomp.com.br
> _______________________________________________
> Headsets Plantronics com o melhor preço do Brasil.
> Acesse agora www.voipmania.com.br
> VOIPMANIA STORE
> ________
> Lista de discussões AsteriskBrasil.org
> AsteriskBrasil em listas.asteriskbrasil.org
> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
> ______________________________________________
> Para remover seu email desta lista, basta enviar um email em branco para
> asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20110330/8aed0b8f/attachment.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil