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

Rodrigo Lang rodrigoferreiralang em gmail.com
Segunda Novembro 30 11:06:24 BRST 2009


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


Mais detalhes sobre a lista de discussão AsteriskBrasil