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

Hudson Cardoso hudsoncardoso em hotmail.com
Quinta Dezembro 5 18:17:33 BRST 2013


Acionar um DB, não seria mais facil ?

Hudson 
(048) 8413-7000
Para quem nao cre, nenhuma prova converte,Para aquele que cre, nenhuma prova precisa. 

Date: Thu, 5 Dec 2013 16:17:47 -0200
From: jefaokpta em hotmail.com
To: asteriskbrasil em listas.asteriskbrasil.org
Subject: 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]
          
            
              
                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

        
      
      

      
      

      _______________________________________________
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 		 	   		  
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20131205/25bf5b10/attachment-0001.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil