VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

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

Проблемы Asterisk без вэб-оболочек и их решения

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

andrystepa
Сообщения: 17
Зарегистрирован: 03 апр 2014, 09:57

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

Сообщение andrystepa »

Настройка черного списка сделана так:

Код: Выделить всё

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, т.е. номера в базе нет. А на самом деле есть. В чем проблема?
awsswa
Сообщения: 2390
Зарегистрирован: 09 июн 2012, 10:52
Откуда: Россия, Пермь skype: yarick_perm

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

Сообщение awsswa »

а вот и нечего не видно
может от провайдера не с 8 начале прилетает а с 7, или вообще сразу с 9 начало
платный суппорт по мере возможностей
andrystepa
Сообщения: 17
Зарегистрирован: 03 апр 2014, 09:57

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

Сообщение andrystepa »

Там одну строчку не до конца скопировал:

Код: Выделить всё

MixMonitor("SIP/asterisk-gw-000013eb", "/var/spool/asterisk/monitor/IN_11122017_18-33_79032285568.wav,b") in new stack
так что все правильно в базе данных. Более того, для чистоты, я добавил туда и 79032285568 и 89032285568. Так что все должно работать, но не работает.
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение ded »

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

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

Вот хороший пример для blacklist:
https://www.voip-info.org/wiki/view/Ast ... +db_exists
Аватара пользователя
zzuz
Сообщения: 1658
Зарегистрирован: 21 сен 2010, 13:33
Контактная информация:

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

Сообщение zzuz »

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

Код: Выделить всё

[Description]
Uses astdb to check if the Caller*ID is in family 'blacklist'. Returns '1'
or '0'.
[Syntax]
BLACKLIST()
Вот только в примере автора он сравнивает строку с цифрой.
Линия24 - Системы Массового Телефонного Обслуживания
fecyt
Сообщения: 148
Зарегистрирован: 17 янв 2017, 17:51

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

Сообщение fecyt »

Смотрите, в ссылке, что я кидал описание экземпла:

Код: Выделить всё

exten => s,1,GotoIf(${BLACKLIST()}?blacklisted)
exten => s,n,Dial(SIP/123)
exten => s,n(blacklisted),Hangup()
Т.е. сравнивать ни с чем по идее не надо, он сам должен чекнуть используя функцию, попробуйте как в примере.
andrystepa
Сообщения: 17
Зарегистрирован: 03 апр 2014, 09:57

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

Сообщение andrystepa »

А вот в такой конфигурации:

Код: Выделить всё

exten => s,1,GotoIf(${BLACKLIST()}?blacklisted)
exten => s,n,Dial(SIP/123)
exten => s,n(blacklisted),Hangup()
Черный список срабатывает на все звонки подряд!
shader
Сообщения: 117
Зарегистрирован: 09 авг 2013, 10:33

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

Сообщение shader »

Дед Вам правильно подсказал:
Записать переменную в базу (из диалплана)

Код: Выделить всё

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

Код: Выделить всё

same => n,Set(avaria_status=${DB(avaria/status)})
 same => n,GotoIf($["1${avaria_status}"= "11"]?avaria:ok)
А вообще, такие вещи, ИМХО, лучше выносить в AGI.
fecyt
Сообщения: 148
Зарегистрирован: 17 янв 2017, 17:51

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

Сообщение fecyt »

Ну не знаю, у меня все получилось.
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
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, если пару номеров надо чекнуть, зачем писать сторонний скрипт, вызывать его и тратить на это ресурсы и время? Вопрос риторический.
andrystepa
Сообщения: 17
Зарегистрирован: 03 апр 2014, 09:57

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

Сообщение andrystepa »

А для чего тогда нужна функция blacklist()?
Согласно описанию она возвращает 1 если номер есть в черном списке, и 0 если нет.
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH