Em 21-06-2010 10:53, Rodrigo Lang escreveu:
> Bom dia lista.
> Eu necessito fazer um filtro por estado em que o cliente está ligando, 
> isso pelo callerid. Alguem aqui já conseguiu realizar um condicional 
> ou loop com uma máscara de números ou algo do gênero? Por exemplo:
> if ( "${CALLERID(num)}" == "41XXXXXXXX" ){
> }
> Obs> Eu sei que existem maneiras diferentes de se fazer, como por 
> exemplo utilizando Goto().

Olá,

         Comigo funciona bem, veja um exemplo mais abaixo. Quanto à usar 
com if, tem que selecionar partes, isto é, "${CALLERID(num):0:2}" == 
"41" por exemplo. Uma outra possibilidade é verificar se está chegando 
algo condizente no CALLERID.

[]'s
         Junior Polegato




context conditional {
     _XXXXXXXXXX => {
          switch (${EXTEN}) {
               pattern 1XXXXXXXXX:
                    NoOp(====================> Ligou para ** SP ** -> 
${EXTEN} <-);
                    break;
               pattern 2XXXXXXXXX:
                    NoOp(====================> Ligou para ** RJ ** -> 
${EXTEN} <-);
                    break;
               pattern 41XXXXXXXX:
                    NoOp(====================> Ligou para ** 41 ** -> 
${EXTEN} <-);
                    break;
               default:
                    NoOp(====================> Ligou para um local não 
tratado...);
          };
     };
};


*CLI> console dial 4112341...@conditional
   == Console is full duplex
[Jun 21 15:42:26] NOTICE[15206]: console_video.c:133 
console_video_start: voice only, console video support not present
     -- Executing [4112341...@conditional:1] MSet("Console/dsp", 
"~~EXTEN~~=4112341234") in new stack
     -- Executing [4112341...@conditional:2] Goto("Console/dsp", 
"sw-28-4112341234,10") in new stack
     -- Goto (conditional,sw-28-4112341234,10)
     -- Executing [sw-28-4112341...@conditional:10] NoOp("Console/dsp", 
"====================> Ligou para ** 41 ** -> 4112341234 <-") in new stack
     -- Executing [sw-28-4112341...@conditional:11] Goto("Console/dsp", 
"_XXXXXXXXXX,3") in new stack
     -- Goto (conditional,_XXXXXXXXXX,3)
     -- Executing [_xxxxxxx...@conditional:3] NoOp("Console/dsp", 
"Finish switch-conditional-28") in new stack
     -- Auto fallthrough, channel 'Console/dsp' status is 'UNKNOWN'
<< Hangup on console >>

*CLI> console dial 2112341...@conditional
   == Console is full duplex
[Jun 21 15:42:33] NOTICE[15206]: console_video.c:133 
console_video_start: voice only, console video support not present
     -- Executing [2112341...@conditional:1] MSet("Console/dsp", 
"~~EXTEN~~=2112341234") in new stack
     -- Executing [2112341...@conditional:2] Goto("Console/dsp", 
"sw-28-2112341234,10") in new stack
     -- Goto (conditional,sw-28-2112341234,10)
     -- Executing [sw-28-2112341...@conditional:10] NoOp("Console/dsp", 
"====================> Ligou para ** RJ ** -> 2112341234 <-") in new stack
     -- Executing [sw-28-2112341...@conditional:11] Goto("Console/dsp", 
"_XXXXXXXXXX,3") in new stack
     -- Goto (conditional,_XXXXXXXXXX,3)
     -- Executing [_xxxxxxx...@conditional:3] NoOp("Console/dsp", 
"Finish switch-conditional-28") in new stack
     -- Auto fallthrough, channel 'Console/dsp' status is 'UNKNOWN'
<< Hangup on console >>

*CLI> console dial 1112341...@conditional
   == Console is full duplex
[Jun 21 15:42:36] NOTICE[15206]: console_video.c:133 
console_video_start: voice only, console video support not present
     -- Executing [1112341...@conditional:1] MSet("Console/dsp", 
"~~EXTEN~~=1112341234") in new stack
     -- Executing [1112341...@conditional:2] Goto("Console/dsp", 
"sw-28-1112341234,10") in new stack
     -- Goto (conditional,sw-28-1112341234,10)
     -- Executing [sw-28-1112341...@conditional:10] NoOp("Console/dsp", 
"====================> Ligou para ** SP ** -> 1112341234 <-") in new stack
     -- Executing [sw-28-1112341...@conditional:11] Goto("Console/dsp", 
"_XXXXXXXXXX,3") in new stack
     -- Goto (conditional,_XXXXXXXXXX,3)
     -- Executing [_xxxxxxx...@conditional:3] NoOp("Console/dsp", 
"Finish switch-conditional-28") in new stack
     -- Auto fallthrough, channel 'Console/dsp' status is 'UNKNOWN'
<< Hangup on console >>

*CLI> console dial 8112341...@conditional
   == Console is full duplex
[Jun 21 15:42:39] NOTICE[15206]: console_video.c:133 
console_video_start: voice only, console video support not present
     -- Executing [8112341...@conditional:1] MSet("Console/dsp", 
"~~EXTEN~~=8112341234") in new stack
     -- Executing [8112341...@conditional:2] Goto("Console/dsp", 
"sw-28-8112341234,10") in new stack
     -- Goto (conditional,sw-28-8112341234,10)
     -- Executing [sw-28-8112341...@conditional:10] NoOp("Console/dsp", 
"====================> Ligou para um local não tratado...") in new stack
     -- Executing [sw-28-8112341...@conditional:11] Goto("Console/dsp", 
"_XXXXXXXXXX,3") in new stack
     -- Goto (conditional,_XXXXXXXXXX,3)
     -- Executing [_xxxxxxx...@conditional:3] NoOp("Console/dsp", 
"Finish switch-conditional-28") in new stack
     -- Auto fallthrough, channel 'Console/dsp' status is 'UNKNOWN'
<< Hangup on console >>

*CLI>

_______________________________________________
KHOMP: qualidade em placas de E1, GSM, FXS e FXO para Asterisk. 
- Hardware com alta disponibilidade de recursos e qualidade KHOMP
- Suporte técnico local qualificado e gratuito 
Conheça a linha completa de produtos KHOMP em www.khomp.com.br
_______________________________________________
Temos tudo para seu projeto VoIP com Asterisk!
Descontos especiais para assinantes da AsteriskBrasil.org.
Registre-se e receba um cupom exclusivo de desconto!
Acesse agora www.voipmania.com.br
______________________________________________
Lista de discussões AsteriskBrasil.org
[email protected]
http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil

Responder a