Blacklist для входящих

Автор: GAMER вкл. .

Начальство сказало: "Нужно заблокировать входящие звонки с номеров".

Блокируем :)

Для организации черного списка номеров в asterisk есть специальная функция BLACKLIST, функция появилась в версии 1.4. Смотрим с чем ее едят.

CLI>core show function BLACKLIST

 

В диалплане, например пишем так:

exten => 56XXXXXXX,1,Set(CALLERID(all)=$[CALLERID(num)])
exten => 56XXXXXXX,2,Set(CHANNEL(language)=ru)
exten => 56XXXXXXX,n,Answer()
exten => 56XXXXXXX,n,GotoIf($[${BLACKLIST()}=1]?blacklist)
exten => 56XXXXXXX,n,Goto(ivr-main,s,1)
exten => 56XXXXXXX,n(blacklist),Hangup()

 

 BLACKLIST() проверяет в базе данных AstDB в семействе blacklist ключ, равный Caller*ID, со значением 1. Если ключ есть и значение равно единице, то BLACKLIST() возвращает 1. Что проверяется вот этой строчкой:

exten=>7495XXXXXXX,n,GotoIf($[${BLACKLIST()}=1]?blacklist)

Если условие выполняется, то вызывается extension с пометкой blacklist.

Для управления черным списком можно использовать CLI:
CLI> database put blacklist 561231232 1
CLI> database del blacklist 561231232

По материалам из сайта: http://mysyslog.ru/posts/175