Система телеголосования "Infinity"

Детальное описание

Для организации телеголосования
необходимо решить три задачи:
  • Прием звонков.
  • Сохранение результатов звонков в базу данных.
  • Отображение результатов голосования на устройстве вывода видеоинформации в режиме реального времени.
Прием звонков

В первую очередь необходимо определить варианты ответа по тематике голосования. В зависимости от технических условий применяют один из двух вариантов:
  • каждому варианту ответа присваивается отдельный городской номер
  • выделяется единый групповой номер, клиент при звонке попадает в IVR (голосовое меню), где ему предлагается выбрать вариант ответа нажатием на соответствующую кнопку.
Для описания логики приема звонков необходимо создать сценарий IVR. В Infinity построение сценариев осуществляется в графическом редакторе сценариев.

Рассмотрим первый случай, когда аудитории предлагается несколько городских номеров. Пусть вариантов ответа голосования будет три, номера телефонов 222-22-22, 333-33-33, 444-44-44. В этом случае мы должны понять, на какой номер звонит клиент. В зависимости от набранного номера произвести запрос в базу данных (БД) по увеличению счетчика голосов, отданных за данный вариант ответа.

1. Создаем новый сценарий:

 Система телеголосования Infinity


2. Добавляем компонент "Меню":

 Система телеголосования Infinity


3. Указываем, с чем сравниваем:

 Система телеголосования Infinity


4. Функция "Набранный номер (CalledID)" вернет нам номер, на который позвонил клиент. Задаем возможные варианты:

 Система телеголосования Infinity


5. Добавляем в сценарий три компонента "Запрос в БД". В зависимости от номера, на который позвонил клиент, делаем переход на соответствующий компонент.

 Система телеголосования Infinity


6. После записи информации в базу данных клиента желательно проинформировать о том, что его голос принят. Пусть это будет фраза "Ваш голос учтен, спасибо за звонок". Для этого нужно записать звуковой файл либо через микрофон, либо через телефонный аппарат. Затем добавляем компонент "Проиграть звуковой файл" и выбираем в свойстве "Звуковой файл" записанный файл.

 Система телеголосования Infinity


7. Соединяем стрелками компоненты "Запрос в БД" с компонентом "Проиграть звуковой файл" (Название компонента: "Спасибо за звонок"). Для завершения сценария помещаем компонент "Положить трубку".

 Система телеголосования Infinity

Наш сценарий готов к работе!


Второй вариант голосования отличается от первого только настройкой компонента "Меню" и дополнительным компонентом "Проиграть звуковой файл" с ожиданием ввода значения. Записываем звуковой файл с текстом "Пожалуйста, выберите один из трех вариант ответа". Результат ввода будет помещен в переменную "Ввод" (Предварительно нужно создать переменную). Компонент "Меню" перестроим таким образом, чтобы сравнить переменную "Ввод" с возможными значениями ("1", "2", "3"):

 Система телеголосования Infinity



Сохранение результатов звонков в базу данных

Для работы с базами данных необходимы базовые знания языка SQL.

В первую очередь, необходимо определить, в какую базу данных будет сохраняться результат. В качестве базы данных может использоваться:

  • база данных Infinity;
  • внешняя база данных любого формата, в том числе удаленная (связь через Internet);
  • таблица Excel.
В разделе принять звонок мы не рассмотрели настройку компонента "Запрос в БД". При настройке компонента "Запрос в БД" мы должны выбрать базу данных и написать текст SQL-запроса.

Допустим, будет использоваться внутренняя БД Infinity. Создаем таблицу "Voting" с тремя полями, где будут располагаться счетчики:

Error. Page cannot be displayed. Please contact your service provider for more details. (6)



    CREATE TABLE VOTING
    ( P1 INTEGER, P2 INTEGER, P3 INTEGER );

    INSERT INTO VOTING ( P1, P2, P3 )
    VALUES ( 0, 0, 0 );
В свойстве "Запрос" компонента "Запрос в БД1" пишем текст запроса:

    UPDATE VOTING
    SET P1=P1+1
По аналогии, для "Запрос в БД2":

    UPDATE VOTING
    SET P2=P2+1
И так далее.

Более подробное описание редактора сценариев IVR, а также способов работы с запросами в БД содержится в документации к комплексу Infinity.



Отображение результатов голосования
на устройстве вывода видеоинформации
в режиме реального времени


Для вывода результатов необходимо внешнее приложение. Внешнее приложение подключается к БД, в которой в режиме реального времени сохраняется результат голосования. Внешнее приложение обновляет результат голосования с необходимой частотой, к примеру, 2 секунды. Таким образом, в режиме реального времени можно наблюдать процесс голосования. Внешнее приложение может подключаться к БД как локально, так и удаленно, через сеть Internet.

Пример модуля отображения хода голосования:

 Система телеголосования Infinity