Черный список в Asterisk

Приведу пример блокировки входящих вызовов по номеру телефона либо можно выполнить другие действия для номеров телефонов указанных в списке.

Подключимся к Asterisk:

asterisk -rvv

Просмотр информации о функции BLACKLIST (в очень старых версиях Asterisk ее может не быть):

core show function BLACKLIST

Пример добавления номера телефона в черный список (номер нужно указывать в том формате, в котором он приходит при входящем вызове):

database put blacklist +380661234567 1

Пример просмотра содержимого всех списков и списка blacklist:

database show
database show blacklist

Пример удаления номера телефона из указанного списка:

database del blacklist +380661234567

Допустим у вас есть план набора в файле /etc/asterisk/extensions.conf (приведу очень простой пример):

[ixnfocom]
exten => s,1,DIAL(SIP/201,60)
exten => s,n,Hangup()

Теперь добавим в его начало проверку номера телефона в списке blacklist:

[ixnfocom]
exten => s,1,GotoIf($[${BLACKLIST()}=1]?blacklist)
exten => s,n,GoTo(ixnfocom,s,4)
exten => s,n(blacklist),Hangup()
exten => s,n,DIAL(SIP/201,60)
exten => s,n,Hangup()

Первая строка выполняет поиск номера телефона в списке со значением 1, если находит и его значение равно 1, то возвращает 1.
Вторая строка переводит на 4 строку все остальные номера телефонов которых нет в списке, то есть выполняет обычный вызов как раньше.
Третья строка кладет трубку для номеров которые есть в списке.

Смотрите также другие мои статьи про Asterisk.

Оставьте комментарий

Добавить комментарий