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

Блокировка входящих вызовов без callerid?

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

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

Ответить
acp1dmn
Сообщения: 4
Зарегистрирован: 17 дек 2021, 04:42

Блокировка входящих вызовов без callerid?

Сообщение acp1dmn »

Приветствую всех присутствующих! всем!
Не миновала чаша сия, полетели спам-звонки от всяких клиник и прочей нечисти. Пробовал я черный список aka BLACKLIST, не прокатило, не фильтрует.
В логах/консоли входящие звонки отображаются вот так:

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

    -- Accepting call from '9999999999' to '112233' on channel 0/18, span 1
    -- Executing [112233@sevadm_peer:1] Dial("DAHDI/i1/99999999999-1f06", "SIP/23202") in new stack
  == Using SIP RTP CoS mark 5
    -- Called SIP/23202
    -- SIP/23202-000056fe is ringing
    -- Span 1: Channel 0/18 got hangup request, cause 16
  == Spawn extension (sevadm_peer, 112233, 1) exited non-zero on 'DAHDI/i1/9832323481-1f06'
    -- Hungup 'DAHDI/i1/9999999999-1f06'
Где, например, 9999999999 - это номер "вредителя", 112233 - номер мой, городской; 23202 - мой "внутренний" номер (их цифры поменял,остальное без изменений)
Как видно, нету такого параметра как CallerID.

Подскажите, пожалуйста, к чему и каким способом тут прицепиться можно, чтоб хотя бы нежелательные номера просто сбрасывать?
ded
Сообщения: 15621
Зарегистрирован: 26 авг 2010, 19:00

Re: Блокировка входящих вызовов без callerid?

Сообщение ded »

9999999999 - номер "вредителя", это и есть CallerID.
Если у вас freePBX - используйте сервисный код *32
Внести в черный список последнего позвонившего
acp1dmn
Сообщения: 4
Зарегистрирован: 17 дек 2021, 04:42

Re: Блокировка входящих вызовов без callerid?

Сообщение acp1dmn »

ded писал(а):Если у вас freePBX - используйте сервисный код *32
Внести в черный список последнего позвонившего
Да нет, к сожалению, простой "голый" 13ый Астериск.
Благодарю за ответ :)

Тут веселья хватает, я попробовал тестово внутри погонять запреты и все такое, например у меня номер 22222, на втором телефоне 11111 (оба внутренние)

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

exten => 11111/22222,1,Hangup()
Прописываю, рестартую диалплан, набираю с 22222 номер 11111, сразу отлуп. Отлично.
Пробую позвонить уже на городской, в экстеншене оставляю свой краткий, типа

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

exten => 9000011/23202,1,Hangup()
(выход за пределы через девятку), набираю 9****11 - тоже отлуп. Превосходно.
Изменяю маршрут таким образом:

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

exten => 9000011/000022,1,Hangup()
Набираю 9000011, астериск в логе меня видит как 000022 и спокойно пропускает звонок :( Уже печально.

Вот что в логе при этом (последнем правиле)

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

 -- Accepting call from '****22' to '****11' on channel 0/31, span 1
    -- Executing [000011@sevadm_peer:1] Answer("DAHDI/i1/000022-22d3", "") in new stack
    -- Executing [000011@sevadm_peer:2] ExecIf("DAHDI/i1/000022-22d3", "1?Set(CALLERID(num)=9000022)") in new stack
    -- Executing [000011@sevadm_peer:3] ExecIf("DAHDI/i1/000022-22d3", "0?Set(CALLERID(num)=989000022)") in new stack
    -- Executing [0000118@sevadm_peer:4] Dial("DAHDI/i1/000022-22d3", "SIP/11111") in new stack
Как будто Астериск не видит никакие номера, кроме внутренних, как callerid.. Да, они отображаются на экранах телефонов и в логе консоли, но факт фактом (

Буду разбираться... Чего другого остается ))
acp1dmn
Сообщения: 4
Зарегистрирован: 17 дек 2021, 04:42

Re: Блокировка входящих вызовов без callerid?

Сообщение acp1dmn »

Веселый у нас Астериск :) Много чего нет, много чего есть ненужного.
В общем, удалось сделать таким образом... Костыль, конечно, но вдруг чем кому поможет.

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

;blacklist_771111
;exten => 771111/9999999999,1,Hangup()

;blacklist_772222
;exten => 772222/99999999991,1,Hangup()
То есть по каждому номеру правила.
Маски не прокатят, так как есть в диаплане уже явные инструкции типа

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

exten => 772222,1,Dial(SIP/00002)
Понимаю, что костыль и колхоз (извиняюсь, конечно), но времени особо разбираться пока нету, цель - пока прекратить бомюежку спамом хотя бы до праздников; в будущем, надеюсь, додумаюсь до правильного и красивого решения.
А может быть, и вообще прекратится - ответ идет, как будто целевых номеров "не существует", и номера потихоньку уйдут со спам-баз.
Всем благодарность, особенно ded-у, что все-таки показал что callerid как таковой есть (просто в выводе консоли показывается не так).
Аватара пользователя
Wapo
Сообщения: 795
Зарегистрирован: 02 мар 2011, 17:53

Re: Блокировка входящих вызовов без callerid?

Сообщение Wapo »

А не хотите имя канала DAHDI/i1/99999999999-1f06 разобрать функциями в диалплане, выкусив эти 9999999 и именно это сравнивать по черному списку?
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: Блокировка входящих вызовов без callerid?

Сообщение Vlad1983 »

А что так не можно было?

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

same => n,ExecIf($["${CALLERID(num)}"="9999999999"]?Hangup)
ЛС: @rostel
Аватара пользователя
Zavr2008
Сообщения: 2211
Зарегистрирован: 27 янв 2011, 00:35
Контактная информация:

Re: Блокировка входящих вызовов без callerid?

Сообщение Zavr2008 »

Спамеров с каждым днем всё больше и верно хранить эту гадость в БД. Просто лукап делать по их CallerId и делать отлуп если находит.
В диалплан костылить заколебетесь..

Никто кстати еще NumBuster не прикрутил к астеру еще?
https://github.com/DoctorEenot/NumBuster-API
Российские E1 шлюзы Alvis. Модернизация УПАТС с E1,Подключение к ИС "Антифрод" E1 PRI/SS#7 УВР Телестор, Грифин и др..
acp1dmn
Сообщения: 4
Зарегистрирован: 17 дек 2021, 04:42

Re: Блокировка входящих вызовов без callerid?

Сообщение acp1dmn »

Vlad1983 писал(а):А что так не можно было?
Да, скорее всего можно и так :) Но не догадался (
Wapo писал(а):А не хотите имя канала DAHDI/i1/99999999999-1f06 разобрать функциями в диалплане, выкусив эти 9999999 и именно это сравнивать по черному списку?
я пока не настолько "тру" :( еще и разбираюсь с тем, что досталось, скажем так, "в наследство".
Zavr2008 писал(а):Спамеров с каждым днем всё больше и верно хранить эту гадость в БД.
Да, согласен. Без базы никуда.
В нашем случае идеальным вариантом, походу, к каждому правилу (на каждый телефон) в диалплане добавлять одинаковый маршрут со ссылкой на базу, чтоб дергало оттуда записи.
Или с какого-нибудь текстового документа, чтоб построчно пробегало, сравнивало...

Либо вообще одно какое-то глобальное на всех, но тут боюсь не получится, я тут прочитал что маски не срабатывают, если ниже/выше задан явный номер, он будет в приоритете - а у нас это все сделано прямо в диалплане, типа "звонок на городской => звонок на внутренний", ну и там с аргументами типа запись звонка, то да се...

Буду, конечно, дальше разбираться, в таком виде ясно что не оставить - потом замучаюсь добавлять.
Параллельно, конечно, начинаю изучать все с нуля, тут походу проще заново собрать сервер. Я уже много приколов тут нашел, которые вписаны без всякой логики; например, сначала модуль загружаем, потом где-то в конце modules.conf он выгружается.. Несколько тестовых подключений к базе так и остались, никому ненужные.. Ну и т д.
El_Vago
Сообщения: 63
Зарегистрирован: 05 дек 2017, 12:46

Re: Блокировка входящих вызовов без callerid?

Сообщение El_Vago »

Уважаемый Zavr2008 правильно Вам сказал. Зачем такие костыли в диалплане, если намного проще прикрутить проверку по БД, можно даже той же AstDB? Хотя мы уже на более гибкий MySQL перешли, где можно и дату блокировки прикрутить, если блокировка не перманентная, и оператора, который блокировку сделал.
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH