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