IVRTask - автономна система автоматичного повідомлення абонентів, яка може працювати на більшості телефонних ліній за допомогою комп'ютера, VOICE-модемів, керуючої програми та СУБД. Система має такі основні можливості:
Система складається з апаратної і програмної частин. Апаратна частина - IBM/PC сумісний комп'ютер з підключеною до нього відповідною кількістю VOICE-модемів. Програмна частина - СУБД, підсистема керування модемами та підсистема обробки завдань оператора. Для віддаленого керування системою їй необхідний обмежений доступ до інтернет.
Схема підключення системи до телефонної мережі така:
Кількість модемів визначає кількість одночасних оповіщень. Всі модеми виконують завдання з однієї черги незалежно один від одного. Вихід з ладу будь-якого модему або будь-якої абонентської лінії не призводить до втрати працездатності системи. Зменшується лише швидкість оповіщення.
Для забезпечення можливості роботи через NAT, а також в цілях безпеки мережі операторів телефонного зв'язку і керуючого оператора керування здійснюється по протоколу SMTP/POP3 з використанням будь-якої доступної поштової скриньки. Обмін командами керування і відповідями сервера здійснюється лише через цю електронну поштову скриньку і лише за допомогою визначених команд керування. Всі невідомі команди ігноруються.
Схема взаємодії оператора керування та сервера IVRTask виглядає таким чином:
Взаємодія відбувається за таким алгоритмом:
Загальна структура команди:
Очистка всіх встановлених графіків запуску. Ця команда не потребує додаткових параметрів. Вона очищає всі графіки, включаючи ті, які встановлені попередніми командами цього ж листа. Приклад:
SHEDULE_FLUSH
Додавання нового проміжку запуску оповіщення. Команда повинна містити два параметри: день тижня від нуля до шести (0 - неділя, 6 - субота) і часовий проміжок, для якого дозволений запуск оповіщення (наприклад 12:00-14:00). Для одного й того ж дня тижня дозволяється встановити кілька проміжків запуску. Робиться це окремими командами SCHEDULE Приклад:
SHEDULE 1 09:00-10:00 SHEDULE 1 18:00-20:00 SHEDULE 0 09:00-20:00
Очистка всіх встановлених завдань оповіщення. Стираються також всі попередні завдання, визначені в цьому ж листі до команди FLUSH Приклад:
FLUSH
Додавання одного завдання для оповіщення. Команда потребує два обов'язкові параметри - номер оповіщення і сума заборгованості в гривнях, а також один необов'язковий параметр - коментар. Сума може бути рівна нулю. В такому випадку вона не буде формуватися, але основна фраза все одно повідомлятиметься. Номер оповіщення в місцевому форматі. Коментар повинен починатися з символа #
(драбинка).
Приклад:
ADD 51000 123.13 ADD 61000 1200.00 ADD 23300 0.00 #абонент ПІБ (адреса)
Видалення всіх завдань, встановлених певному абонентові. Команда містить один параметр - номер абонента. Приклад:
DELETE 61000
Команда запиту статистичної інформації. Виконується без параметрів. В результаті на електронну адресу прийде відповідь з переліком встановлених графіків запуску і встановлених завдань. До кожного завдання буде додано по два лічильники - лічильник спроб оповіщення з датою останньої спроби і лічильник успішних оповіщень з датою останнього успішного оповіщення. Приклад:
GET_STATISTICS
Результат буде приблизно такого формату:
Schedule: 1 09:00:00 10:00:00 Schedule: 1 18:00:00 20:00:00 Schedule: 0 09:00:00 20:00:00 Task: 51000 123.13 12 10 2012-04-26 13:45:59.91005 2012-04-26 13:46:51.783399 Task: 23300 0.00 10 10 2012-04-26 13:46:51.91815 2012-04-26 13:47:50.132477 # Абонент ПІБ (адреса)
Команда запиту детальної інформації про кожну спробу виклику (лише останні 10000). Виконується без параметрів. В результаті на електронну адресу прийде відповідь з переліком спроб здійснення викликів із вказанням їх успішності. Приклад:
GET_DETAILED_LOG
Результат буде приблизно такого формату:
LOG: 30000 2012-04-26 13:45:59.91005 2012-04-26 13:46:51.783399 1
Вивід має такі поля:
Команда очистки детальної інформації. Виконується перед видачею інформацїі по команді GET_DETAILED_LOG. Тому одночасне використання не має змісту. Приклад:
DELETE_LOG