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

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

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

Модератор: april22

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

Сообщение acp1dmn » 17 дек 2021, 05:54

Приветствую вас, коллеги всем!
Не миновала чаша сия, полетели спам-звонки от всяких клиник и прочей нечисти. Пробовал я черный список 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.

Подскажите, пожалуйста, к чему и каким способом тут прицепиться можно, чтоб хотя бы нежелательные номера просто сбрасывать?
acp1dmn
 
Сообщений: 4
Зарегистрирован: 17 дек 2021, 05:42

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

Сообщение ded » 17 дек 2021, 11:15

9999999999 - номер "вредителя", это и есть CallerID.
Если у вас freePBX - используйте сервисный код *32
Внести в черный список последнего позвонившего
ded
 
Сообщений: 15246
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение acp1dmn » 17 дек 2021, 11:48

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, 05:42

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

Сообщение acp1dmn » 17 дек 2021, 13:20

Веселый у нас Астериск :) Много чего нет, много чего есть ненужного.
В общем, удалось сделать таким образом... Костыль, конечно, но вдруг чем кому поможет.
Код: выделить все
;blacklist_771111
;exten => 771111/9999999999,1,Hangup()

;blacklist_772222
;exten => 772222/99999999991,1,Hangup()

То есть по каждому номеру правила.
Маски не прокатят, так как есть в диаплане уже явные инструкции типа

Код: выделить все
exten => 772222,1,Dial(SIP/00002)


Понимаю, что костыль и колхоз (извиняюсь, конечно), но времени особо разбираться пока нету, цель - пока прекратить бомюежку спамом хотя бы до праздников; в будущем, надеюсь, додумаюсь до правильного и красивого решения.
А может быть, и вообще прекратится - ответ идет, как будто целевых номеров "не существует", и номера потихоньку уйдут со спам-баз.
Всем благодарность, особенно ded-у, что все-таки показал что callerid как таковой есть (просто в выводе консоли показывается не так).
acp1dmn
 
Сообщений: 4
Зарегистрирован: 17 дек 2021, 05:42

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

Сообщение Wapo » 17 дек 2021, 15:28

А не хотите имя канала DAHDI/i1/99999999999-1f06 разобрать функциями в диалплане, выкусив эти 9999999 и именно это сравнивать по черному списку?
Аватар пользователя
Wapo
 
Сообщений: 769
Зарегистрирован: 02 мар 2011, 18:53

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

Сообщение Vlad1983 » 17 дек 2021, 16:43

А что так не можно было?
Код: выделить все
same => n,ExecIf($["${CALLERID(num)}"="9999999999"]?Hangup)
ЛС: @rostel
Vlad1983
 
Сообщений: 4246
Зарегистрирован: 09 авг 2011, 11:51

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

Сообщение Zavr2008 » 19 дек 2021, 02:41

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

Никто кстати еще NumBuster не прикрутил к астеру еще?
https://github.com/DoctorEenot/NumBuster-API
Российские шлюзы E1 Alvis-GW. Voip-Модернизация УПАТС, FreePBX, CRM. Продолжаем работать, импортозамещаем!
Аватар пользователя
Zavr2008
 
Сообщений: 1935
Зарегистрирован: 27 янв 2011, 01:35

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

Сообщение acp1dmn » 20 дек 2021, 09:48

Vlad1983 писал(а):А что так не можно было?

Да, скорее всего можно и так :) Но не догадался (
Wapo писал(а):А не хотите имя канала DAHDI/i1/99999999999-1f06 разобрать функциями в диалплане, выкусив эти 9999999 и именно это сравнивать по черному списку?

я пока не настолько "тру" :( еще и разбираюсь с тем, что досталось, скажем так, "в наследство".
Zavr2008 писал(а):Спамеров с каждым днем всё больше и верно хранить эту гадость в БД.

Да, согласен. Без базы никуда.
В нашем случае идеальным вариантом, походу, к каждому правилу (на каждый телефон) в диалплане добавлять одинаковый маршрут со ссылкой на базу, чтоб дергало оттуда записи.
Или с какого-нибудь текстового документа, чтоб построчно пробегало, сравнивало...

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

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

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

Сообщение El_Vago » 20 дек 2021, 13:37

Уважаемый Zavr2008 правильно Вам сказал. Зачем такие костыли в диалплане, если намного проще прикрутить проверку по БД, можно даже той же AstDB? Хотя мы уже на более гибкий MySQL перешли, где можно и дату блокировки прикрутить, если блокировка не перманентная, и оператора, который блокировку сделал.
El_Vago
 
Сообщений: 54
Зарегистрирован: 05 дек 2017, 13:46


Вернуться в Вопросы новичков

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

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

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