Допустим нужно, чтоб определенный список людей попадал сразу в отдел продаж минуя 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