Есть форма заказа обратного звонка на сайте. Механика классическая: когда пользователь заполняет форму, создается .call-файл для asterisk, тот соединяет клиента с колл-центром.
Какие-то малолетние... кхм, "пользователи" повадились спамить своих учителей звонками во время уроков.
Необходимо на стороне Asterisk сделать возможность "забанить" номер клиента, чтоб PBX на него не звонил в течение какого-то настраиваемого времени (сутки по-умолчанию).
Предполагаю такую логику:
1. CRM сохраняет в файл список номеров, которые нужно забанить. Каждый номер хранится там сутки (или больше?).
2. На сервере asterisk'a скрипт по расписанию обновляет файл и номера сохраняет в локальный файл (чтобы не ходить за списком в интернет при каждом звонке). Нужна ли доп. проверка длительности хранения?
3. На входе в контекст [from-callback] добавить макрос, который проверяет наличие номера в локальном файле. Если номер есть в списке - завершаем звонок.
Список номеров для бана будет лежать в TXT-файле по ссылке в формате:
время_добавления; номер_телефона
ГГГГ.ММ.ДД ЧЧ.ММ.СС; ХХХХХХХХХХ
Предложения по логике работы готов обсудить.