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

Черный список не срабатывает

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

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

Черный список не срабатывает

Сообщение andrystepa » 11 дек 2017, 19:50

Настройка черного списка сделана так:
Код: выделить все
exten = mi,1,GotoIf($["${BLACKLIST()}"=1]?blacklist)
exteb = mi,n,Dial(SIP/101)
....
exten = mi, n(blacklist), Playback(privacy-unident)
Hangup()

Добавил свой номер в базу командой
Код: выделить все
database put blacklist 89032285568 1

Звоню со своего телефона, а blacklist не срабатывает. В логах пишет:
Код: выделить все
Executing [mi@incoming_calls:1] GotoIf("SIP/asterisk-gw-000013ed", "0?blacklist") in new stack
8:34:08] VERBOSE[7254][C-00000aa6] pbx.c:     -- Executing [mi@incoming_calls:2] Set("SIP/asterisk-gw-000013ed", "CALLFILENAME=IN_11122017_18-34
8:34:08] VERBOSE[7254][C-00000aa6] pbx.c:     -- Executing [mi@incoming_calls:3] MixMonitor("SIP/asterisk-gw-000013ed", "/var/spool/asterisk/mon
8:34:08] VERBOSE[7254][C-00000aa6] pbx.c:     -- Executing [mi@incoming_calls:4] Set("SIP/asterisk-gw-000013ed", "CDR(recordingpath)=/var/spool/
8:34:08] VERBOSE[7255][C-00000aa6] app_mixmonitor.c:   == Begin MixMonitor Recording SIP/asterisk-gw-000013ed
.........

Видно, что функция возвращает 0, т.е. номера в базе нет. А на самом деле есть. В чем проблема?
andrystepa
 
Сообщений: 17
Зарегистрирован: 03 апр 2014, 09:57

Re: Черный список не срабатывает

Сообщение awsswa » 11 дек 2017, 19:58

а вот и нечего не видно
может от провайдера не с 8 начале прилетает а с 7, или вообще сразу с 9 начало
платный суппорт по мере возможностей
awsswa
 
Сообщений: 2390
Зарегистрирован: 09 июн 2012, 10:52
Откуда: Россия, Пермь skype: yarick_perm

Re: Черный список не срабатывает

Сообщение andrystepa » 11 дек 2017, 20:12

Там одну строчку не до конца скопировал:
Код: выделить все
MixMonitor("SIP/asterisk-gw-000013eb", "/var/spool/asterisk/monitor/IN_11122017_18-33_79032285568.wav,b") in new stack

так что все правильно в базе данных. Более того, для чистоты, я добавил туда и 79032285568 и 89032285568. Так что все должно работать, но не работает.
andrystepa
 
Сообщений: 17
Зарегистрирован: 03 апр 2014, 09:57

Re: Черный список не срабатывает

Сообщение ded » 11 дек 2017, 21:55

Нет, не должно всё работать. Хотя и в базе всё правильно
exten = mi,1,GotoIf($["${BLACKLIST()}"=1]?blacklist) - это Вы проверяете не базу, а содержимое переменной BLACKLIST()

Смотрите использование базы данных - синтаксис:
CLI> show function DB_EXISTS

Вот хороший пример для blacklist:
https://www.voip-info.org/wiki/view/Ast ... +db_exists
ded
 
Сообщений: 15803
Зарегистрирован: 26 авг 2010, 19:00

Re: Черный список не срабатывает

Сообщение zzuz » 11 дек 2017, 23:37

Есть такая функция

Код: выделить все
[Description]
Uses astdb to check if the Caller*ID is in family 'blacklist'. Returns '1'
or '0'.
[Syntax]
BLACKLIST()


Вот только в примере автора он сравнивает строку с цифрой.
Линия24 - Системы Массового Телефонного Обслуживания
Аватар пользователя
zzuz
 
Сообщений: 1658
Зарегистрирован: 21 сен 2010, 13:33

Re: Черный список не срабатывает

Сообщение fecyt » 12 дек 2017, 11:05

Смотрите, в ссылке, что я кидал описание экземпла:
Код: выделить все
exten => s,1,GotoIf(${BLACKLIST()}?blacklisted)
exten => s,n,Dial(SIP/123)
exten => s,n(blacklisted),Hangup()

Т.е. сравнивать ни с чем по идее не надо, он сам должен чекнуть используя функцию, попробуйте как в примере.
fecyt
 
Сообщений: 148
Зарегистрирован: 17 янв 2017, 18:51

Re: Черный список не срабатывает

Сообщение andrystepa » 12 дек 2017, 12:21

А вот в такой конфигурации:
Код: выделить все
exten => s,1,GotoIf(${BLACKLIST()}?blacklisted)
exten => s,n,Dial(SIP/123)
exten => s,n(blacklisted),Hangup()

Черный список срабатывает на все звонки подряд!
andrystepa
 
Сообщений: 17
Зарегистрирован: 03 апр 2014, 09:57

Re: Черный список не срабатывает

Сообщение shader » 12 дек 2017, 13:31

Дед Вам правильно подсказал:
Записать переменную в базу (из диалплана)
Код: выделить все
1,Set(DB(avaria/status)=0)

Вычитать переменную из базы:
(кусок моего диалплана, для наглядности):
Код: выделить все
same => n,Set(avaria_status=${DB(avaria/status)})
same => n,GotoIf($["1${avaria_status}"= "11"]?avaria:ok)

А вообще, такие вещи, ИМХО, лучше выносить в AGI.
shader
 
Сообщений: 117
Зарегистрирован: 09 авг 2013, 10:33

Re: Черный список не срабатывает

Сообщение fecyt » 12 дек 2017, 16:21

Ну не знаю, у меня все получилось.
[Показать] Спойлер:
localhost*CLI> database show
/blacklist/101 : blacklist test
1 results found.

== Using SIP RTP CoS mark 5
-- Executing [100@test:1] GotoIf("SIP/101-00000004", "1?blacklisted") in new stack
-- Goto (test,100,3)
-- Executing [100@test:3] Hangup("SIP/101-00000004", "") in new stack


На счет AGI, если пару номеров надо чекнуть, зачем писать сторонний скрипт, вызывать его и тратить на это ресурсы и время? Вопрос риторический.
fecyt
 
Сообщений: 148
Зарегистрирован: 17 янв 2017, 18:51

Re: Черный список не срабатывает

Сообщение andrystepa » 12 дек 2017, 16:29

А для чего тогда нужна функция blacklist()?
Согласно описанию она возвращает 1 если номер есть в черном списке, и 0 если нет.
andrystepa
 
Сообщений: 17
Зарегистрирован: 03 апр 2014, 09:57

След.

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

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

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 21

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