Asterisk – блокування номерів-хуліганів з інформуванням.

Передісторія.

Після впровадження схеми прийому дзвінків 112 за багатоканальною схемою та аналізу вхідних дзвінків з’ясувалося, що певні номери здійснюють від 20 до 700 дзвінків на місяць. Прослухавши записи, з’ясувалося, що розмов з боку абонентів не ведеться. Для зменшення навантаження на диспетчерів вирішено «найактивніших» заносити в стоп-лист і при наступних дзвінках інформувати про це абонента.

Завдання.
Зробити максимально простим управління через FreePBX.

Отже, схема роботи буде наступною.
1. Використовуючи штатний модуль BLACKLIST – заносимо в базу необхідні номери.

Screenshot_4Screenshot_52. Штатна функція модуля – перевірка номера на наявність у стоп-листі та відтворення повідомлення про недоступність номера. Необхідно змінити поведінку під наші потреби, а значить перенаправити дзвінок у спеціальну групу «000». Оскільки редагувати безпосередньо контекст у файлі extensions_additional.conf не можна (при перезавантаженні він буде перезаписаний), для цього існує файл extensions_override_freepbx.conf, в який переносимо контекст і замінюємо рядок на відправку дзвінка в чергу.

[app-blacklist-check]
exten => s,1(check),GotoIf($["${BLACKLIST()}"="1"]?blacklisted)
exten => s,n,Set(CALLED_ =1)
exten => s,n,Return()
exten => s,n(blacklisted),Answer
exten => s,n,Wait(1)
exten => s,n,Zapateller()
exten => s,n(dest-ext),Goto(ext-queues,000,1)
exten => s,n,Hangup
;--== end of [app-blacklist-check] ==--;

3. Далі створюємо чергу 000.
Screenshot_1Вкажемо, яке повідомлення відтворюється при попаданні.
Screenshot_2Встановимо дію при «відсутності відповіді» і збережемо.
Screenshot_3Все. Тепер забаненим номерам буде повідомлено про причину блокування та запропоновано спосіб розблокування.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *