[AsteriskBrasil] Transferir a variável de um context para outro context

Renata Dias renatchinha em gmail.com
Quinta Dezembro 5 16:03:27 BRST 2013


Carlos, tentei fazer via Macro, mas depois de muito pesquisar, entendi que
a macro serve para que eu leve uma variável do contexto para dentro da
macro e faça uso dela na macro. Não era bem isso que eu precisava.
De qualquer forma, escontrei a solução no site
http://the-asterisk-book.com/1.6/variablen.html

Defining variables with Set()
Set() is used to define a variable inside an
extension.[11<http://the-asterisk-book.com/1.6/variablen.html#ftn.idp59570112>
]
Syntax
Set(<variable1>=<value1>[,<variable2>=<value2>][,<option>])
Setting option *g *makes the variable global; without it, the variable is
treated as a local channel variable.


Só o que fiz foi definir a variável em um contexto com essa opção "g" e
depois pude usá-la normalmente no resto do DialPlan, mesmo após o hungup.

Obrigada.


Em 4 de dezembro de 2013 13:26, Carlos Toguchi
<carlos.toguchi em gmail.com>escreveu:

> Renata,
> Pelo qeu eu li neste link
> https://wiki.asterisk.org/wiki/display/AST/Asterisk+11+Application_Queue
> Você pode chamar a Queue passando como argumento uma marco ou um agi que
> será executado depois que estive conectado aum membro da queue, logo voce
> tem neste momento o numero do ramal, use esta marco para armazenar o numero
> do ramal e do chamador.
> Quando retornar da pesquisa com a nota, recupere o ramal armazenado pela
> macro.
>
> Saudações
> Carlos
>
>
> 2013/12/4 Renata Dias <renatchinha em gmail.com>
>
>>
>> No meu caso não consegui, pois envio a chamada para a fila (queue)
>> através do Dial com a opção "g".
>> Sendo assim, quando o atendente desliga a ligação, a fila (queue) devolve
>> para o Dial e o sistema continua lendo as prioridades abaixo.
>> Ocorre que por este motivo, não consigo pegar o ramal do atendente e
>> armazenar em alguma variável.
>>
>> Fiz um teste conforme DialPlan abaixo e percebi que na linha 10 o Dial
>> (com a opção "g") envia a chamada para o context [pesquisa] na prioridade
>> 1, e entra na fila.
>> Após o atendimento, quando o atendente desliga a ligação, a perna do
>> cliente é encaminhada de volta para o context [principal] dando
>> continuidade na prioridade abaixo do Dial.
>> Dessa forma, as linhas 3 e 4 não foram lidas. Consequentemente a linha 11
>> não exibiu o conteúdo da variável X de teste.
>>
>> 1 [pesquisa]
>> 2 exten => 2,1,queue(suporte,tT)
>> 3 exten => 2,2,NoOp(${CALLERID(num)} - ${EXTEN} - ${X})
>> 4 exten => 2,2,Set(X=111)
>> 5
>> 6 [principal]
>> 7 exten => 00,n,background(provale/8_SUPORTE_TECNICO)
>> 8
>> 9 exten => 8,1,Answer()
>> 10 exten => 8,n,Dial(Local/2 em pesquisa,,gtT)
>> 11 exten => 8,n,NoOp(${X})
>> 12 exten => 8,n,hangup()
>>
>>
>> Alguma idéia?
>>
>>
>> Em 3 de dezembro de 2013 13:10, Mike Tesliuk <mike em tesliuk.com> escreveu:
>>
>>>
>>> voce pode executar uma macro no momento que o agente atende a ligação, e
>>> então la definir os valores que você precisa.
>>>
>>> exemplo:
>>>
>>> exten => 2,1,NoOp(Opcao escolhida 2 - fila 4001)
>>> exten => 2,n,Set(QNAME="4001")
>>> exten => 2,n,Queue(4001,tik,,,300,,records-queues-4001)
>>> exten => 2,n,Goto(s,1)
>>>
>>>
>>> [macro-records-queues-4001]
>>> exten => s,1,Agi(gravacoes-queues.agi,${CALLERID(num)},4001)
>>> exten => s,n,GotoIf($["${DORECORD}" == "0"]?ngrava)
>>> exten => s,n(grava),MixMonitor(${MIXMONITOR_FILENAME})
>>> exten => s,n(ngrava),NoOp(Gravacoes nao executadas)
>>>
>>> No meu caso, a macro chama um AGI
>>>
>>> Dentro deste eu pego as variaveis
>>>
>>> $AGI->exec("NoOp", "QNAME: $queue");
>>> $AGI->exec("NoOp", "CALLERID: $callerid");
>>> $AGI->exec("NoOp", "EXTEN: $destination");
>>>
>>> E seto a variavel para o nome do arquivo.
>>>
>>>
>>> $AGI->set_variable("MIXMONITOR_FILENAME","/var/spool/asterisk/monitor-tmp/$year/$mon/$mday/QUEUE-$queue-ATENDIDO-$callerid"
>>> . "-" . "$hour$min$sec" . ".gsm");
>>>
>>> Que no caso gera o seguinte nome de arquivo.
>>>
>>> QUEUE-4001-ATENDIDO-136-124936.gsm
>>>
>>> onde 136 é o meu ramal da fila
>>>
>>> ou seja, dentro da macro o callerid é quem recebeu a chamada
>>>
>>>
>>>
>>>
>>>
>>>
>>> Em 03/12/13 09:29, Renata Dias escreveu:
>>>
>>>
>>>  Caros,
>>>
>>>  Gostaria de saber se é possível uma ou mais variáveis de um context
>>> para outro context.
>>>
>>>  Para explicar melhor a minha necessidade, vou colocar como está a
>>> minha URA:
>>>
>>>   1 [pesquisa]
>>> 2 exten => 8,1,queue(suporte,tT)
>>>  3
>>> 4 [principal]
>>>  5 exten => 00,n,background(provale/8_SUPORTE_TECNICO)
>>> 6
>>>   7 exten => 8,1,Answer()
>>>  8 exten => 8,n,Dial(Local/8 em pesquisa,5,gtT)
>>>  9 exten =>
>>> 8,n,Playback(provale/pesquisa/RESPONDA&silence/1&provale/pesquisa/ATENDIDA&silence/1)
>>>  10 exten => 8,n,Read(ATENDIDA,,1)
>>>  11exten => 8,n,Playback(provale/pesquisa/NOTA&silence/1)
>>>  12 exten => 8,n,Read(NOTA,,1)
>>>  13 exten =>
>>> 8,n,playback(provale/pesquisa/OBRIGADA&provale/pesquisa/AGRADECEMOS)
>>>  14 exten => 8,n,Set(ODBC_consulta()=${CALLERID(num)}\,${EXTEN}
>>> \,${ATENDIDA}\,${NOTA})
>>> 15 exten => 8,n,hangup()
>>>
>>>  O que preciso é que o ramal do atendente seja gravado no banco de
>>> dados, conforme a linha 14.
>>> Estou utilizando o ${EXTEN}, porém o conteúdo dessa variável é o número
>>> que o cliente digitou quando escolheu a opção de atendimento na URA,
>>> conforme linha 5.
>>>
>>>  Qual a variável que vai me trazer o ramal do atendente que fez o
>>> atendimento na fila (queue) suporte?
>>> Como faço pra transferir esta variavem do context "pesquisa" para o
>>> conext "provale" ?
>>>
>>>  Obrigada.
>>>
>>>  --
>>>   Renata Dias
>>>
>>>
>>> _______________________________________________
>>> KHOMP: completa linha de placas externas FXO, FXS, GSM e E1;
>>> Media Gateways de 1 a 64 E1s para SIP com R2, ISDN e SS7;
>>> Intercomunicadores para acesso remoto via rede IP. Conheça em www.Khomp.com.
>>> _______________________________________________
>>> ALIGERA – Fabricante nacional de Gateways SIP-E1 para R2, ISDN e SS7.
>>> Placas de 1E1, 2E1, 4E1 e 8E1 para PCI ou PCI Express.
>>> Channel Bank – Appliance Asterisk - Acesse www.aligera.com.br.
>>> _______________________________________________
>>> Para remover seu email desta lista, basta enviar um email em branco para asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>>>
>>>
>>>
>>> _______________________________________________
>>> KHOMP: completa linha de placas externas FXO, FXS, GSM e E1;
>>> Media Gateways de 1 a 64 E1s para SIP com R2, ISDN e SS7;
>>> Intercomunicadores para acesso remoto via rede IP. Conheça em
>>> www.Khomp.com.
>>> _______________________________________________
>>> ALIGERA – Fabricante nacional de Gateways SIP-E1 para R2, ISDN e SS7.
>>> Placas de 1E1, 2E1, 4E1 e 8E1 para PCI ou PCI Express.
>>> Channel Bank – Appliance Asterisk - Acesse www.aligera.com.br.
>>> _______________________________________________
>>> Para remover seu email desta lista, basta enviar um email em branco para
>>> asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>>>
>>
>>
>>
>> --
>> Renata Dias
>>
>> _______________________________________________
>> KHOMP: completa linha de placas externas FXO, FXS, GSM e E1;
>> Media Gateways de 1 a 64 E1s para SIP com R2, ISDN e SS7;
>> Intercomunicadores para acesso remoto via rede IP. Conheça em
>> www.Khomp.com.
>> _______________________________________________
>> ALIGERA – Fabricante nacional de Gateways SIP-E1 para R2, ISDN e SS7.
>> Placas de 1E1, 2E1, 4E1 e 8E1 para PCI ou PCI Express.
>> Channel Bank – Appliance Asterisk - Acesse www.aligera.com.br.
>> _______________________________________________
>> Para remover seu email desta lista, basta enviar um email em branco para
>> asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>>
>
>
> _______________________________________________
> KHOMP: completa linha de placas externas FXO, FXS, GSM e E1;
> Media Gateways de 1 a 64 E1s para SIP com R2, ISDN e SS7;
> Intercomunicadores para acesso remoto via rede IP. Conheça em
> www.Khomp.com.
> _______________________________________________
> ALIGERA – Fabricante nacional de Gateways SIP-E1 para R2, ISDN e SS7.
> Placas de 1E1, 2E1, 4E1 e 8E1 para PCI ou PCI Express.
> Channel Bank – Appliance Asterisk - Acesse www.aligera.com.br.
> _______________________________________________
> Para remover seu email desta lista, basta enviar um email em branco para
> asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>



-- 
Renata Dias
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20131205/19aba039/attachment.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil