Захист від спаму на 8800 під FreePBX

Вітаю, астерискеры і співчуваючі! Вчора вночі на одному популярному форумі в тематиці asterisk наткнувся на питання: як же можна «по-швидкому» захистити свій номер 8800 від методики, яку нерідко використовують конкуренти — багаторазовому дозвону на номер для спрацьовування тарифікації у власника кімнати?

Оператор номерів 8800, якого я раджу своїм клієнтам, бере 2.42 грн/хвилину з похвилинною тарифікацією, і 2.89 руб/хвилину з посекундною. З посекундною, звичайно, все простіше, але теж неприємно. За одну хвилину можна зробити мінімум 10 дзвінків, які спишуть з балансу власника номера майже 15 рублів. За годину це буде 900 рублів, і це якщо в один потік. Загалом, проблема є і явна.

Рішення було знайдено нескладна, за традицією, все робиться з вебморды FreePBX. Нам знадобиться модуль Smart Routes cis, який я вже згадував попередній публікації, там же його можна скачати.

Логіка проста — шукаємо в CDR останні дзвінки з поточного номера, і якщо їх більше X за 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. Саме у цьому полі налаштовується число дозволених дзвінків з поточного номера за інтервал, зазначений у запиті.

Default Destination також скидання.

Виглядає це так:

image

Залишається направити дзвінки в модуль Smart Routes у вхідних правилах і все!
Удачі і поменше неадекватних людей вам на шляху.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.