[asterisk-users] Asterisk Call Forwarding

Phil Reynolds phil-asterisk at tinsleyviaduct.com
Thu Mar 3 04:42:42 CST 2016


On Thu, 3 Mar 2016 08:21:14 +0530
Madushan Geethanga <mgliyanage.rc at gmail.com> wrote:

> Hi
> I have to setup call forwarding. How do we setup Call forwarding in
> asterisk?. Eg. user dials a number and insert some mobile number for
> forwarding and dial another number to cancel the forwarding. thanks a
> lot.

I implemented this like so in my default context:

exten => _*21.,1,Answer()
same => n,GotoIf($["${CALLERID(num)}"="<redacted>"]?divert:void)
same => n(divert),Set(DB(divert/${CALLERID(num):-4})=${EXTEN:3})
same => n,Gosub(divertactive,1)
same => n,Hangup()
same => n(void),Gosub(divertvoid,1)
exten => _#21,1,Answer()
same => n,GotoIf($["${CALLERID(num)}"="<redacted>"]?divert:void)
same => n(divert),Verbose(0,${DB_DELETE(divert/${CALLERID(num):-4})})
same => n,Gosub(divertoff,1)
same => n,Hangup()
same => n(void),Gosub(divertvoid,1)

(note: use whatever you need in the GotoIf to validate that the phone
the call is from is permitted to set up call forwarding - unless you're
allowing it for all that can reach the context)

The divert{off,active,void} subroutines are where I handle the
announcements - but you could probably easily implement your own.

At the top of my [voicemail] context, I do this:

exten=>s,1,GotoIf(${DB_EXISTS(divert/${ARG3})}?outbound-standard,${DB_RESULT},1)

(ARG3 contains the last four digits of the number the call came to in
my case, and a success passes the call via the "outbound-standard"
context which is in my dialplan. Your exact requirements may vary but
this may help.)

-- 
Phil Reynolds
mail: phil-asterisk at tinsleyviaduct.com
Web: http://phil.tinsleyviaduct.com/



More information about the asterisk-users mailing list