ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Отдельный Blacklist для каждой входящей линии

Проблемы и их решения Asterisk как такового

Модераторы: april22, Zavr2008

Отдельный Blacklist для каждой входящей линии

Сообщение venom1_ » 14 янв 2021, 00:40

Как лучше реализовать? И как эта приблуда вообще работает? Помогите разобраться, плиз. Имеется FreePBX 2.11, Asterisk 11.
В Фрипбх вводятся номера для блеклиста, при входящем звонке в контексте [ext-did-0002] для каждой входящей линии вызывается один и тот же подконтекст
Код: выделить все
exten => +380ххххх70,n,Gosub(app-blacklist-check,s,1())
Вот этот подконтекст:
Код: выделить все
[app-blacklist-check]
exten => s,1(check),GotoIf($["${BLACKLIST()}"="1"]?blacklisted)
exten => s,n,Set(CALLED_BLACKLIST=1)
exten => s,n,Return()
exten => s,n(blacklisted),Answer
exten => s,n,Wait(1)
exten => s,n,Zapateller()
exten => s,n,Playback(ss-noservice)
exten => s,n,Hangup

Собсно, непонятно откуда берется переменная ${BLACKLIST()}, она нигде больше в файле конфига не фигурирует. И почему ее сравнивают с 1? Может, это как то связано с тем что в поле Deskription в Фрипбх напротив "черного" номера ставится 1 по умолчанию. И как можно малой кровью реализовать отдельный блеклист для каждой входящей линии?
Аватар пользователя
venom1_
 
Сообщений: 19
Зарегистрирован: 21 окт 2014, 20:01
Откуда: Киев

Re: Отдельный Blacklist для каждой входящей линии

Сообщение ded » 14 янв 2021, 14:21

Посмотрите список сервисных кодов - Feature codes в разделе Администрирование - увидите сервисный код для добавления последнего полученного номера в базу Blacklist. Вот так появляется потом значение в переменной ${BLACKLIST()
Надо будет по этой же логике из одной базы BLACKLIST сделать несколько, разноимённых.

И вам придётся кастомизировать этот сценарий.Принимать каждую входящую линию в отдельный контекст, обработчик, где будет указано, например

exten => +380ххххх70,n,Gosub(app-blacklist-check-Kievstar,s,1())
в другом
exten => +380ххххх70,n,Gosub(app-blacklist-check-Vodafon,s,1()) ; или что там нужно

Далее, в extensions_custom.conf скопируете и размножите сам app-blacklist-check
Код: выделить все
[app-blacklist-check-Kievstar]
exten => s,1(check),GotoIf($["${BLACKLIST-KIEVSTAR()}"="1"]?blacklisted)
exten => s,n,Set(CALLED_BLACKLIST=1)
ded
 
Сообщений: 15902
Зарегистрирован: 26 авг 2010, 19:00

Re: Отдельный Blacklist для каждой входящей линии

Сообщение venom1_ » 16 янв 2021, 00:50

а можно сделать чтобы не прописывать для каждой входящей линии отдельный контекст с блеклистом, а проверять DID прямо в контексте app-blacklist?
Вот этот момент все равно не ясен:
Код: выделить все
exten => s,1(check),GotoIf($["${BLACKLIST()}"="1"]?blacklisted)
Аватар пользователя
venom1_
 
Сообщений: 19
Зарегистрирован: 21 окт 2014, 20:01
Откуда: Киев

Re: Отдельный Blacklist для каждой входящей линии

Сообщение murr » 17 янв 2021, 22:35

venom1_ писал(а):Вот этот момент все равно не ясен:

https://asterisk-pbx.ru/wiki/asterisk/func/blacklist
Код: выделить все
Функция Asterisk: сверяет callerid с черным списком в базе данных Astersik.

Check if the callerid is on the blacklist.

Описание
Использует astdb для проверки не содержит ли family 'blacklist' CallerID вызывающего абонента.
Возвращает '1' или '0', соответственно.
Uses astdb to check if the Caller*ID is in family 'blacklist'. Returns '1' or '0'.

Синтаксис

BLACKLIST()
murr
 
Сообщений: 127
Зарегистрирован: 04 июл 2013, 16:55


Вернуться в Конфигурация и настройка Asterisk

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH