Lets add blacklist feature to our Asterisk. We will use AstDB (CFIM/blacklist).
First of all lets add ability to add and remove numbers to our blacklist.
Open /etc/asterisk/extensions.conf via your favorite editor (nano, huh?)
Add code to our outgoing (in may case [internal]) context:
;blacklist
exten => _*1*X.,1,Goto(add-to-blacklist,${EXTEN:3},1)
exten => _*2*X.,1,Goto(del-from-blacklist,${EXTEN:3},1)
To the end of extensions.conf lets add two additional contexts:
[add-to-blacklist]
exten => _X.,1,Set(DB(blacklist/${EXTEN})=1)
exten => _X.,n,background(demo-thanks)
exten => _X.,n,Wait(1)
exten => _X.,n,Hangup()
exten => t,1,Hangup()
exten => h,1,Hangup()
exten => i,1,Hangup()
[del-from-blacklist]
exten => _X.,1,NoOp(${DB_DELETE(blacklist/${EXTEN})})
exten => _X.,n,background(demo-thanks)
exten => _X.,n,Wait(1)
exten => _X.,n,Hangup()
exten => t,1,Hangup()
exten => h,1,Hangup()
exten => i,1,Hangup()
Now lets add feature blacklist to our incoming context. In each context we should add two strings. First we will check is caller number blacklisted?
exten => s,n,GotoIf($[${BLACKLIST()}=1]?blacklist)
And if it blacklisted go to label blacklist:
exten => s,n(blacklist),Hangup()
So in that case we will just hangup when blacklisted number calls to us.
Now how to use:
Just call from your IP-phone to *1*NUM2BLOCK, for example *1*8006886086. To remove number from blacklist *2*NUM2UNBLOCK, for example *1*8006886086.
Be careful: you should add number in that format which asterisk operates in ${CALLERID(num)}
. If number recognizes as +18006886086 just make some edits in [add-from-blacklist]/[del-from-blacklist]:
(DB(blacklist/+1${EXTEN})=1)