Приведу пример блокировки входящих вызовов по номеру телефона либо можно выполнить другие действия для номеров телефонов указанных в списке.
Подключимся к 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.