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

Материал из support.qbpro.ru

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

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