; Ativa Siga-me incondicional
[sigame-on]
exten => _*71*.,1,NoCDR()exten => _*71*.,2,Set(DB(CF/${CALLERID(num)})=${EXTEN:4})
exten => _*71*.,3,Playback(beep)
exten => _*71*.,4,Playback(vm-saved)
exten => _*71*.,5,Hangup
; Desativa o siga-me incondicional
[sigame-off]
exten => _*72*,1,NoCDR()
exten => _*72*,2,DBdel(CF/${CALLERID(num)})
exten => _*72*,3,Playback(beep)
exten => _*72*,4,Playback(vm-saved)
exten => _*72*,5,Hangup
exten => _*72*,2,DBdel(CF/${CALLERID(num)})
exten => _*72*,3,Playback(beep)
exten => _*72*,4,Playback(vm-saved)
exten => _*72*,5,Hangup
Bom, agora vamos ao pulo do gato, esse passo é muito importante pois é ele quem verifica se existe ou não o siga-me para o ramal.
Vamos ao contexto:
[disca]
exten => _3XXX,1,Noop(CF/${EXTEN})
exten => _3XXX,2,Set(siga=${DB(CF/${EXTEN})})
exten => _3XXX,3,Dial(SIP/${siga},30,Ttw)
exten => _3XXX,4,Dial(SIP/${EXTEN}) ; Unconditional forward
exten => _3XXX,5,Hangup
Neste caso, todas as ligações que forem feitas para qualquer o número 3XXX, ele vai verificar na base de dados do asterisk se existe algum registro CF referente ao ramal de destino e se existe um valor para esse registro, caso haja, ele efetua o siga-me, caso não faz a ligação normal.
Para resumir, se você tem um arquivo de configuração extensions.conf zerado, apenas com o contexto default criado, faça as seguintes alterações conforme abaixo:
[default]
include = > sigame-on
include = > sigame-off
include = > disca
============================================
; LOG DO ASTERISK ATIVANDO O SIGA-ME NO RAMAL
== Using SIP RTP CoS mark 5
== Using SIP VRTP CoS mark 6
== Using UDPTL CoS mark 5
-- Executing [*71*3003@internas:1] NoCDR("SIP/3001-0000000e", "") in new stack
-- Executing [*71*3003@internas:2] Set("SIP/3001-0000000e", "DB(CF/3001)=3003") in new stack
-- Executing [*71*3003@internas:3] Playback("SIP/3001-0000000e", "beep") in new stack
--
-- Executing [*71*3003@internas:4] Playback("SIP/3001-0000000e", "vm-saved") in new stack
--
-- Executing [*71*3003@internas:5] Hangup("SIP/3001-0000000e", "") in new stack
== Spawn extension (internas, *71*3003, 5) exited non-zero on 'SIP/3001-0000000e'
; LOG ASTERISK RETIRANDO O SIGAME DO RAMAL
== Using SIP RTP CoS mark 5== Using SIP VRTP CoS mark 6
== Using UDPTL CoS mark 5
-- Executing [*72*@internas:1] NoCDR("SIP/3001-00000016", "") in new stack
-- Executing [*72*@internas:2] DBdel("SIP/3001-00000016", "CF/3001") in new stack
-- DBdel: family=CF, key=3001
-- Executing [*72*@internas:3] Playback("SIP/3001-00000016", "beep") in new stack
--
-- Executing [*72*@internas:4] Playback("SIP/3001-00000016", "vm-saved") in new stack
--
-- Executing [*72*@internas:5] Hangup("SIP/3001-00000016", "") in new stack
== Spawn extension (internas, *72*, 5) exited non-zero on 'SIP/3001-00000016'
Façam bom proveito, eu testei usando S.O. CentOS 5.4 com asterisk 1.6.2 e funcionou perfeitamente.
Quaisquer dicas dúvidas e sugestões favor postarem pra mim que responderei o mais rápido possível.
Um comentário:
Poderia me ajudar por favor está dando esse erro:
== Using SIP RTP CoS mark 5
[Nov 19 16:37:39] NOTICE[3764]: chan_sip.c:22753 handle_request_invite: Call from '6020' (10.71.0.181:5060) to extension '*71*6020' rejected because extension not found in context 'interno'.
Postar um comentário