Blacklist в Asterisk

Автор | 01.09.2010

Допустим нужно, чтоб определенный список людей попадал сразу в отдел продаж минуя IVR.

Реализация такой схемы:

[incoming]
exten => s,1,LookupBlacklist(j) ;проверка на наличие номера в базе, j - переход на приоритет n+101
exten => s,2,Goto(ivr,s,1)
exten => s,102,Dial(SIP/1234,60,tT)
exten => s,103,Hangup

Добавление номера в базу данных происходит таким образом:

asterisk -rx "database put blacklist 0442223344 1"

Если номеров много, можно реализовать скриптом.

В более новых версиях Asterisk (>1.4) нужно использовать функцию Blacklist()

pbx*CLI> core show function BLACKLIST

Пример диалплана:

exten=> s,1,Answer()
exten=> s,n,GotoIf($[${BLACKLIST()}=1]?blacklist)
exten=> s,n,GoTo(incoming,s,1)
exten=> s,n(blacklist),Hangup()

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

pbx*CLI> database put blacklist 0441112233 1

Залишити відповідь