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

Guilherme guilherme em avoicedata.com.br
Sexta Novembro 27 16:00:24 BRST 2009


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


Mais detalhes sobre a lista de discussão AsteriskBrasil