[AsteriskBrasil] Expressões regulares com resultado estranho em GotoIf()

Rodrigo Lang rodrigoferreiralang em gmail.com
Segunda Novembro 30 14:24:32 BRST 2009


Não funfou, me fodi! Hhahaahahah! Vou trocar a versão do Asterisk, porque eu
tenho certeza que a expressão está certa...

-- Executing [s em fila:2] NoOp("SIP/4130938555-b6e5a8a0", "4") in new stack
    -- Executing [s em fila:3] GotoIf("SIP/4130938555-b6e5a8a0", "0?4:11") in
new stack
    -- Goto (fila,s,11)
    -- Executing [s em fila:11] Set("SIP/4130938555-b6e5a8a0",
"CDR(fluxo)=Transbordo") in new stack


2009/11/30 Rodrigo Lang <rodrigoferreiralang em gmail.com>

> Opa, modifiquei para o AEL. Agora só falta ter fluxo para testar... Achei
> interessante o AEL, procurei a documentação dele e só achei uma básica no
> voip-info! Você sabe me dizer onde acho alguma mais completa ou algum livro
> para comprar? Por que, pelo que notei, ele possui bastantes detalhes! Segue
> como ficou meu contexto em AEL.
>
> macro fila() {
>         Answer();
>         NoOp(${QUEUE_WAITING_COUNT(atendimento)});
>         if ( "${QUEUE_WAITING_COUNT(atendimento)}" < "30" )
>         {
>                 Set(CDR(fluxo)=Entrada);
>                 Set(MONITOR_FILENAME=${UNIQUEID});
>                 Wait(3);
>                 PlayBack(obrigado);
>                 Queue(atendimento,t,,,300,);
>                 Hangup();
>         }
>         else
>         {
>                 Set(CDR(fluxo)=Transbordo);
>                 Wait(3);
>                 Playback(fila-cheia);
>                 Hangup();
>         }
> };
>
>
>
> Obrigado,
> Rodrigo Lang.
>
>
> 2009/11/30 Rodrigo Lang <rodrigoferreiralang em gmail.com>
>
> Opa Sylvio, o meu gotoif() está certo sim... Na condição dele não é
>> necessário utilizar o "=" como no caso que você mostrou e a ordem das labels
>> também estão certas. Foi a primeira coisa que eu conferi, além disso ele já
>> estava funcionando e parou do nada. Mas obrigado do mesmo jeito. Vou jogar
>> essa macro no ael para ver se funfa. Volto a postar com os resultados.
>>
>>
>> Obrigado,
>> Rodrigo Lang.
>>
>> 2009/11/30 Sylvio Carlos Jollenbeck <sylvio.sdr em gmail.com>
>>
>>> Rodrigo, olhando com carinho para seu conf, note um erro:
>>>
>>>
>>> [macro-fila]
>>> exten => s,1,Answer()
>>> exten => s,2,NoOp(${QUEUE_WAITING_
>>> COUNT(atendimento)})
>>> exten => s,3*,GotoIf($[ "${QUEUE_WAITING_COUNT(**atendimento)}" < "30"
>>> ]?4:fila-ocupada,s,1)*
>>> exten => s,n,Set(CDR(fluxo)=Entrada)
>>>
>>> Referencia:
>>> http://www.voip-info.org/wiki/view/Asterisk+cmd+GotoIf
>>>
>>> Description    GotoIf(condition?label1[:label2])
>>>
>>> Go to *label1* if *condition* is true or to next step (or *label2* if
>>> defined) if *condition* is false, or
>>>
>>>
>>> Logo:
>>>
>>> [macro-fila]
>>> exten => s,1,Answer()
>>> exten => s,n,NoOp(${QUEUE_WAITING_COUNT(atendimento)});
>>> exten => s,n,GotoIf($[ "${QUEUE_WAITING_COUNT(atendimento)}" *<=* "30"
>>> ]?MENOR:MAIOR);
>>> exten => s,n,Set(CDR(fluxo)=Entrada);
>>> exten => s,n(MENOR),Queue(atendimento|tT);
>>> exten => s,n,Hangup();
>>> exten => s,n(MAIOR),Goto(fila-ocupada,s,1);
>>>
>>> Acho que é isso ai....
>>>
>>>
>>> abs
>>>
>>> Sylvio Carlos Jollenbeck Borin.
>>>
>>>
>>>
>>>
>>> 2009/11/30 Sylvio Carlos Jollenbeck <sylvio.sdr em gmail.com>
>>>
>>> Rodrigo,
>>>>
>>>>           Voce pode trabalhar com os dois ao mesmo tempo.....
>>>> exemplo:
>>>>
>>>> no conf:
>>>>
>>>> [default]
>>>> exten => _XXXX,1,Goto(mandaparaoAEL,s,1)
>>>>
>>>> no AEL
>>>>
>>>> context mandaparaoAEL {
>>>>                   s => {
>>>>                            /* Faça algo */
>>>>                            Hangup();
>>>>                    }
>>>> }
>>>>
>>>> qq coisa posta ai..... abs
>>>>
>>>> Sylvio Carlos Jollenbeck Borin
>>>>
>>>>
>>>>
>>>> 2009/11/29 Rodrigo Lang <rodrigoferreiralang em gmail.com>
>>>>
>>>> Sylvio, estava pensando nesta opção. Só me veio uma duvida agora, é
>>>>> possível utilizar o conf comum junto com o ael, com os dois trabalhando em
>>>>> paralelo? Pois se não, teria muito trabalho para modificar todo meu conf
>>>>> para ael...
>>>>>
>>>>>
>>>>> Obrigado,
>>>>> Rodrigo Lang.
>>>>>
>>>>> 2009/11/28 Sylvio Carlos Jollenbeck <sylvio.sdr em gmail.com>
>>>>>
>>>>> Rodrigo,
>>>>>>
>>>>>>            Tente o seguinte, mas em AEL (vamos para de usar o conf,
>>>>>> morte ao conf (eheheh)):
>>>>>>
>>>>>>             Criar uma variavel com o tamanho da sua fila:
>>>>>>                   Set(QWC=${QUEUE_WAITING_COUNT(atendimento)});
>>>>>>
>>>>>>              Verificar o tamanho da variavel ${QWC}:
>>>>>>                    if ("${QWC}"<="30") {
>>>>>>                                Noop(O TAMANHO DA FILA EH MENOR DE 30);
>>>>>>                                /* Faca algo */
>>>>>>                                Hangup();
>>>>>>                    }
>>>>>>                    else {
>>>>>>                              Noop(O TAMANHO DA FILA EH MAIOR DE 30);
>>>>>>                              /* Faca algo */
>>>>>>                              Hangup();
>>>>>>                    }
>>>>>>
>>>>>> Abs.
>>>>>>
>>>>>> Sylvio Carlos Jollenbeck Borin
>>>>>>
>>>>>> 2009/11/28 Rodrigo Lang <rodrigoferreiralang em gmail.com>
>>>>>>
>>>>>> Boa noite Guilherme. também tentei da forma abaixo, porém não obtive
>>>>>>> sucesso.
>>>>>>>
>>>>>>>
>>>>>>> Ats,
>>>>>>> Rodrigo Lang.
>>>>>>>
>>>>>>> 2009/11/27 Guilherme <guilherme em avoicedata.com.br>
>>>>>>>
>>>>>>>  E se vc inverter a condição?
>>>>>>>>
>>>>>>>> exten => s,3,GotoIf($["30" < "${QUEUE_WAITING_COUNT(atendimento)}"
>>>>>>>> ]?fila-ocupada,s,1:macro-fila,s,4)
>>>>>>>>
>>>>>>>> ----- Original Message -----
>>>>>>>>  *From:* Rodrigo Lang <rodrigoferreiralang em gmail.com>
>>>>>>>> *To:* asteriskbrasil em listas.asteriskbrasil.org
>>>>>>>> *Sent:* Friday, November 27, 2009 2:37 PM
>>>>>>>> *Subject:* Re: [AsteriskBrasil]Expressões regulares com resultado
>>>>>>>> estranho em GotoIf()
>>>>>>>>
>>>>>>>> Imaginei que pudesse ser isso, mas o estranho é que estava
>>>>>>>> funcionando certo e da noite para o dia parou de funcionar. Mas teoricamente
>>>>>>>> a expressão regular fica entre os colchetes (exemplo: $[
>>>>>>>> "${QUEUE_WAITING_COUNT(atendimento)}" < "30" ]) e o ponto de interrogação
>>>>>>>> serve para justamente separar as labels da condição.
>>>>>>>>
>>>>>>>> Eu tentei mu dar já colocando assim:
>>>>>>>> exten => s,3,GotoIf($[ "${QUEUE_WAITING_COUNT(atendimento)}" < "30"
>>>>>>>> ]?macro-fila,s,4:fila-ocupada,s,1)
>>>>>>>>
>>>>>>>> Porém continua se comportando da mesma forma.
>>>>>>>>
>>>>>>>>
>>>>>>>> Obrigado,
>>>>>>>> Rodrigo Lang
>>>>>>>>
>>>>>>>> 2009/11/27 Eder Souza <eder.souza em bsd.com.br>
>>>>>>>>
>>>>>>>>> To achando q ele ta confundindo essa linha aqui olha
>>>>>>>>>
>>>>>>>>> exten => s,3,GotoIf($[ "${QUEUE_WAITING_COUNT(atendimento)}" < "30"
>>>>>>>>> ]?4:fila-ocupada,s,1)
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> "?4:fila-ocupada,s,1)"
>>>>>>>>> essa prioridade "4" ele deve estar entendendo que é para comparar
>>>>>>>>> com ela e nao com o 30 !!!
>>>>>>>>>
>>>>>>>>> Eng Eder de Souza
>>>>>>>>>
>>>>>>>>> 2009/11/26 Rodrigo Lang <rodrigoferreiralang em gmail.com>
>>>>>>>>>
>>>>>>>>>>  Bom dia pessoal, estou com um servidor que está com um problema
>>>>>>>>>> no GotoIf(). O que acontece é que eu pego o valor que de
>>>>>>>>>> ${QUEUE_WAITING_COUNT(atendimento)} e vejo se ele é menor que trinta. Até ai
>>>>>>>>>> tudo bem, porém o Asterisk quando este valor chega em quatro ele
>>>>>>>>>> simplesmente diz que 4 é maior que 30 e encaminha as ligações para o lugar
>>>>>>>>>> errado. Alguém já passou por isso ou algo parecido? Eu imaginei que era erro
>>>>>>>>>> de sintaxe da expressão regular, porém tenho certeza que não é, pois estava
>>>>>>>>>> funcionando até um tempo atrás. Segue abaixo o contexto, uma ligação que
>>>>>>>>>> funcionou normal e outra que funcionou errado.
>>>>>>>>>>
>>>>>>>>>> [macro-fila]
>>>>>>>>>> exten => s,1,Answer()
>>>>>>>>>> exten => s,2,NoOp(${QUEUE_WAITING_COUNT(atendimento)})
>>>>>>>>>> exten => s,3,GotoIf($[ "${QUEUE_WAITING_COUNT(atendimento)}" <
>>>>>>>>>> "30" ]?4:fila-ocupada,s,1)
>>>>>>>>>> exten => s,n,Set(CDR(fluxo)=Entrada)
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Funcionando certo (com três chamadores em espera na fila):
>>>>>>>>>>
>>>>>>>>>>     -- Executing [s em macro-fila:1] Answer("Khomp/B0C31-1", "") in
>>>>>>>>>> new stack
>>>>>>>>>>     -- Executing [s em macro-fila:2] NoOp("Khomp/B0C31-1", "3") in
>>>>>>>>>> new stack
>>>>>>>>>>         -- Executing [s em macro-fila:3] GotoIf("Khomp/B0C31-1",
>>>>>>>>>> "1?4:fila-ocupada,s,1") in new stack
>>>>>>>>>>         -- Goto (macro-fila,s,4)
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Funcionando errado (com quatro chamadores em espera na fila):
>>>>>>>>>>
>>>>>>>>>>     -- Executing [s em macro-fila:1] Answer("Khomp/B0C1-1", "") in
>>>>>>>>>> new stack
>>>>>>>>>>     -- Executing [s em macro-fila:2] NoOp("Khomp/B0C1-1", "4") in
>>>>>>>>>> new stack
>>>>>>>>>>     -- Executing [s em macro-fila:3] GotoIf("Khomp/B0C1-1",
>>>>>>>>>> "0?4:fila-ocupada,s,1") in new stack
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Agradeço desde já,
>>>>>>>>>> --
>>>>>>>>>> Rodrigo F. Lang
>>>>>>>>>> Amd. de Redes em Telecom
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> A Redfone é líder no fornecimento de bridges TDMoE &lt;-> E1
>>>>>>>>>> - Valor similar ao de placas E1 PCI;
>>>>>>>>>> - Não há problemas de compatibilidade com barramento PCI;
>>>>>>>>>> - Possibilitam a construção de soluções de alta
>>>>>>>>>> disponibilidade(dois
>>>>>>>>>> servidores compartilham o mesmo E1)
>>>>>>>>>> Conheça mais sobre este produto em www.red-fone.com
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Lista de discussões AsteriskBrasil.org
>>>>>>>>>> AsteriskBrasil em listas.asteriskbrasil.org
>>>>>>>>>> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> A Redfone é líder no fornecimento de bridges TDMoE &lt;-> E1
>>>>>>>>> - Valor similar ao de placas E1 PCI;
>>>>>>>>> - Não há problemas de compatibilidade com barramento PCI;
>>>>>>>>> - Possibilitam a construção de soluções de alta
>>>>>>>>> disponibilidade(dois
>>>>>>>>> servidores compartilham o mesmo E1)
>>>>>>>>> Conheça mais sobre este produto em www.red-fone.com
>>>>>>>>> _______________________________________________
>>>>>>>>> Lista de discussões AsteriskBrasil.org
>>>>>>>>> AsteriskBrasil em listas.asteriskbrasil.org
>>>>>>>>> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Rodrigo F. Lang
>>>>>>>> Amd. de Redes em Telecom
>>>>>>>>
>>>>>>>> ------------------------------
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> A Redfone é líder no fornecimento de bridges TDMoE &lt;-> E1
>>>>>>>> - Valor similar ao de placas E1 PCI;
>>>>>>>> - Não há problemas de compatibilidade com barramento PCI;
>>>>>>>> - Possibilitam a construção de soluções de alta
>>>>>>>> disponibilidade(dois
>>>>>>>> servidores compartilham o mesmo E1)
>>>>>>>> Conheça mais sobre este produto em www.red-fone.com
>>>>>>>> _______________________________________________
>>>>>>>> Lista de discussões AsteriskBrasil.org
>>>>>>>> AsteriskBrasil em listas.asteriskbrasil.org
>>>>>>>> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> A Redfone é líder no fornecimento de bridges TDMoE &lt;-> E1
>>>>>>>> - Valor similar ao de placas E1 PCI;
>>>>>>>> - Não há problemas de compatibilidade com barramento PCI;
>>>>>>>> - Possibilitam a construção de soluções de alta disponibilidade(dois
>>>>>>>> servidores compartilham o mesmo E1)
>>>>>>>> Conheça mais sobre este produto em www.red-fone.com
>>>>>>>> _______________________________________________
>>>>>>>> Lista de discussões AsteriskBrasil.org
>>>>>>>> AsteriskBrasil em listas.asteriskbrasil.org
>>>>>>>> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Rodrigo F. Lang
>>>>>>> Amd. de Redes em Telecom
>>>>>>> http://langtechnologies.blogspot.com/
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> A Redfone é líder no fornecimento de bridges TDMoE &lt;-> E1
>>>>>>> - Valor similar ao de placas E1 PCI;
>>>>>>> - Não há problemas de compatibilidade com barramento PCI;
>>>>>>> - Possibilitam a construção de soluções de alta disponibilidade(dois
>>>>>>> servidores compartilham o mesmo E1)
>>>>>>> Conheça mais sobre este produto em www.red-fone.com
>>>>>>> _______________________________________________
>>>>>>> Lista de discussões AsteriskBrasil.org
>>>>>>> AsteriskBrasil em listas.asteriskbrasil.org
>>>>>>> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Sylvio Carlos Jollenbeck Borin
>>>>>>
>>>>>> _______________________________________________
>>>>>> A Redfone é líder no fornecimento de bridges TDMoE &lt;-> E1
>>>>>> - Valor similar ao de placas E1 PCI;
>>>>>> - Não há problemas de compatibilidade com barramento PCI;
>>>>>> - Possibilitam a construção de soluções de alta disponibilidade(dois
>>>>>> servidores compartilham o mesmo E1)
>>>>>> Conheça mais sobre este produto em www.red-fone.com
>>>>>> _______________________________________________
>>>>>> Lista de discussões AsteriskBrasil.org
>>>>>> AsteriskBrasil em listas.asteriskbrasil.org
>>>>>> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Rodrigo F. Lang
>>>>> Amd. de Redes em Telecom
>>>>> http://langtechnologies.blogspot.com/
>>>>>
>>>>> _______________________________________________
>>>>> A Redfone é líder no fornecimento de bridges TDMoE &lt;-> E1
>>>>> - Valor similar ao de placas E1 PCI;
>>>>> - Não há problemas de compatibilidade com barramento PCI;
>>>>> - Possibilitam a construção de soluções de alta disponibilidade(dois
>>>>> servidores compartilham o mesmo E1)
>>>>> Conheça mais sobre este produto em www.red-fone.com
>>>>> _______________________________________________
>>>>> Lista de discussões AsteriskBrasil.org
>>>>> AsteriskBrasil em listas.asteriskbrasil.org
>>>>> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Sylvio Carlos Jollenbeck Borin
>>>>
>>>
>>>
>>>
>>> --
>>> Sylvio Carlos Jollenbeck Borin
>>>
>>> _______________________________________________
>>> A Redfone é líder no fornecimento de bridges TDMoE &lt;-> E1
>>> - Valor similar ao de placas E1 PCI;
>>> - Não há problemas de compatibilidade com barramento PCI;
>>> - Possibilitam a construção de soluções de alta disponibilidade(dois
>>> servidores compartilham o mesmo E1)
>>> Conheça mais sobre este produto em www.red-fone.com
>>> _______________________________________________
>>> Lista de discussões AsteriskBrasil.org
>>> AsteriskBrasil em listas.asteriskbrasil.org
>>> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>>
>>
>>
>>
>> --
>> Rodrigo F. Lang
>> Amd. de Redes em Telecom
>>
>
>
>
> --
> Rodrigo F. Lang
> Amd. de Redes em Telecom
>



-- 
Rodrigo F. Lang
Amd. de Redes em Telecom
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20091130/6d4fe0ce/attachment-0001.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil