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

Diogenes dos Santos Neto diogenes.santos em intertelco.com.br
Quinta Dezembro 5 16:35:20 BRST 2013


A variável EXTEN é modificada mesmo quando cai em outro contexto, tu poderia usar uma varíavel auxiliar, setando ela com valor da exten antes de sair do contexto, depois só chamar ela


Diógenes dos Santos Neto
Skype: diogenes.santoss
Email: diogenes.neto em outlook.com<mailto:diogenes.neto em outlook.com>
http://www.linkedin.com/profile/view?id=82903025&trk=tab_pro




De: asteriskbrasil-bounces em listas.asteriskbrasil.org [mailto:asteriskbrasil-bounces em listas.asteriskbrasil.org] Em nome de jefaokpta
Enviada em: Thursday, December 05, 2013 4:18 PM
Para: asteriskbrasil em listas.asteriskbrasil.org
Assunto: Re: [AsteriskBrasil] Transferir a variável de um context para outro context

Em algum momento vc vai apagar essa variavel global?
Ou vai ficar alterando ela?


Flws

Em 05-12-2013 16:03, Renata Dias escreveu:
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<mailto: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<mailto: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<mailto: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<http://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<http://www.aligera.com.br>.

_______________________________________________

Para remover seu email desta lista, basta enviar um email em branco para asteriskbrasil-unsubscribe em listas.asteriskbrasil.org<mailto: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<http://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<http://www.aligera.com.br>.
_______________________________________________
Para remover seu email desta lista, basta enviar um email em branco para asteriskbrasil-unsubscribe em listas.asteriskbrasil.org<mailto: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<http://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<http://www.aligera.com.br>.
_______________________________________________
Para remover seu email desta lista, basta enviar um email em branco para asteriskbrasil-unsubscribe em listas.asteriskbrasil.org<mailto: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<http://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<http://www.aligera.com.br>.
_______________________________________________
Para remover seu email desta lista, basta enviar um email em branco para asteriskbrasil-unsubscribe em listas.asteriskbrasil.org<mailto: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<http://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<http://www.aligera.com.br>.

_______________________________________________

Para remover seu email desta lista, basta enviar um email em branco para asteriskbrasil-unsubscribe em listas.asteriskbrasil.org<mailto:asteriskbrasil-unsubscribe em listas.asteriskbrasil.org>

-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20131205/48cac616/attachment-0001.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil