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

Sylvio Carlos Jollenbeck sylvio.sdr em gmail.com
Segunda Novembro 30 00:29:40 BRST 2009


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


Mais detalhes sobre a lista de discussão AsteriskBrasil