Приветствую вас, звездочки и сочувствующие! Вчера вечером на популярном форуме, посвященном астериску, я столкнулся с вопросом: как можно «быстро» защитить свой номер 8800 от приема, который часто используют конкуренты – многократного звонка на номер для срабатывания тарифа владельца номера? Оператор номера 8800, которого я рекомендую своим клиентам, при поминутной тарификации берет 2,42 руб.
/мин.
, при посекундной тарификации — 2,89 руб.
/мин.
С посекундно, конечно, все проще, но тоже неприятно.
За одну минуту можно совершить не менее 10 звонков, что снимет с баланса владельца номера почти 15 рублей.
За час это будет 900 рублей, и это если в один поток.
В общем, проблема очевидна.
Решение оказалось простым; по традиции все делается из веб-морды FreePBX. Нам понадобится модуль Smart Routes, о котором я уже упоминал в предыдущая публикация , вы можете скачать его там.
Логика проста — ищем в CDR последние звонки с текущего номера, и если за Y минут их больше Х, сбрасываем звонок.
Запрос в модуле простой:
Как видите, интервал указан прямо здесь, в запросе.SELECT count(`calldate`) FROM `cdr` WHERE (`src`='${CALLERID(number)}') AND (`calldate` BETWEEN NOW() - INTERVAL 5 MINUTE AND NOW())
Запрос выберет количество звонков с текущего номера за последние 5 минут и отобразит их в поле результата в одну строку.
Нам нужно поставить Match Type на LESSER, по стечению обстоятельств — переход в нужную нам точку, поставить Failover, например, на Terminate => Hangup. Именно в этом поле настраивается количество разрешенных звонков с текущего номера за указанный в запросе интервал.
Пункт назначения по умолчанию также сбрасывается.
Это выглядит так:
Остаётся только направить вызовы модуля Smart Routes во входящих правилах и всё!
Удачи и поменьше неадекватных людей на вашем пути.
Теги: #asterisk #freepbx #телефония #8800 #информационная безопасность #asterisk
-
Самолет Без Источника Питания
19 Oct, 24 -
Clipardo.com — Поиск По Эскизу
19 Oct, 24 -
Чем Опасны Умные Сети?
19 Oct, 24