[AsteriskBrasil] Condicional com máscara.
Junior Polegato - Asterisk
asterisk em juniorpolegato.com.br
Segunda Junho 21 15:54:54 BRT 2010
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 4112341234 em 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 [4112341234 em conditional:1] MSet("Console/dsp",
"~~EXTEN~~=4112341234") in new stack
-- Executing [4112341234 em conditional:2] Goto("Console/dsp",
"sw-28-4112341234,10") in new stack
-- Goto (conditional,sw-28-4112341234,10)
-- Executing [sw-28-4112341234 em conditional:10] NoOp("Console/dsp",
"====================> Ligou para ** 41 ** -> 4112341234 <-") in new stack
-- Executing [sw-28-4112341234 em conditional:11] Goto("Console/dsp",
"_XXXXXXXXXX,3") in new stack
-- Goto (conditional,_XXXXXXXXXX,3)
-- Executing [_XXXXXXXXXX em 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 2112341234 em 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 [2112341234 em conditional:1] MSet("Console/dsp",
"~~EXTEN~~=2112341234") in new stack
-- Executing [2112341234 em conditional:2] Goto("Console/dsp",
"sw-28-2112341234,10") in new stack
-- Goto (conditional,sw-28-2112341234,10)
-- Executing [sw-28-2112341234 em conditional:10] NoOp("Console/dsp",
"====================> Ligou para ** RJ ** -> 2112341234 <-") in new stack
-- Executing [sw-28-2112341234 em conditional:11] Goto("Console/dsp",
"_XXXXXXXXXX,3") in new stack
-- Goto (conditional,_XXXXXXXXXX,3)
-- Executing [_XXXXXXXXXX em 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 1112341234 em 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 [1112341234 em conditional:1] MSet("Console/dsp",
"~~EXTEN~~=1112341234") in new stack
-- Executing [1112341234 em conditional:2] Goto("Console/dsp",
"sw-28-1112341234,10") in new stack
-- Goto (conditional,sw-28-1112341234,10)
-- Executing [sw-28-1112341234 em conditional:10] NoOp("Console/dsp",
"====================> Ligou para ** SP ** -> 1112341234 <-") in new stack
-- Executing [sw-28-1112341234 em conditional:11] Goto("Console/dsp",
"_XXXXXXXXXX,3") in new stack
-- Goto (conditional,_XXXXXXXXXX,3)
-- Executing [_XXXXXXXXXX em 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 8112341234 em 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 [8112341234 em conditional:1] MSet("Console/dsp",
"~~EXTEN~~=8112341234") in new stack
-- Executing [8112341234 em conditional:2] Goto("Console/dsp",
"sw-28-8112341234,10") in new stack
-- Goto (conditional,sw-28-8112341234,10)
-- Executing [sw-28-8112341234 em conditional:10] NoOp("Console/dsp",
"====================> Ligou para um local não tratado...") in new stack
-- Executing [sw-28-8112341234 em conditional:11] Goto("Console/dsp",
"_XXXXXXXXXX,3") in new stack
-- Goto (conditional,_XXXXXXXXXX,3)
-- Executing [_XXXXXXXXXX em conditional:3] NoOp("Console/dsp",
"Finish switch-conditional-28") in new stack
-- Auto fallthrough, channel 'Console/dsp' status is 'UNKNOWN'
<< Hangup on console >>
*CLI>
Mais detalhes sobre a lista de discussão AsteriskBrasil