Корзина
5 отзывов
Бесплатная АТС для бизнеса от 3CX и Google, 50 пользователейСкачать
+380
67
958-68-68
+380
44
392-86-76
УкраинаДнепропетровская областьДнепрул. Вернадского 24 / 449027
Оставить отзывНаличие документов
Знак Наличие документов означает, что компания загрузила свидетельство о государственной регистрации для подтверждения своего юридического статуса компании или физического лица-предпринимателя.
Управление вводом пользователя в 3CX Call Flow Designer

Управление вводом пользователя в 3CX Call Flow Designer

Управление вводом пользователя в 3CX Call Flow Designer

Введение

В этой статье мы рассмотрим создание голосового приложения, которое считывает последовательность цифр, введенных пользователем через номеронабиратель, а затем подтверждает корректность ввода, проигрывая абоненту введенные цифры. Согласитесь, это довольно частая задача в порталах телефонного самообслуживания.   Наше приложение будет выполнять эту задачу, используя 3CX Call Flow Designer. Приложение работает следующим образом:
  1. 3CX CFD сообщает : Введите ваш номер пользователя
  2. Пользователь набирает 1234
  3. 3CX CFD сообщает: Введенный номер пользователя 1234. Для подтверждения нажмите 1, для повторного ввода нажмите 2.

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

Обратите внимание - среда разработки 3CX CFD поставляется бесплатно. Но голосовые приложения будут выполняться только на 3CX редакции Pro и Enterprise. Скачать CFD можно отсюда. Демо-проект этого голосового приложения поставляется вместе с дистрибутивом 3CX CFD и находится в папке Documents\3CX Call Flow Designer Demos. Приступим.

Создание проекта

Для создания проекта CFD перейдите в File → New → Project, укажите папку размещения проекта и его имя, например, "PlayDigitsDemo".

Создание пользовательского компонента

Создаваемый компонент будет получать последовательность цифр от пользователя и последовательно проигрывать их. Для создания компонента в окне Project Explorer кликните правой кнопкой мыши на имени проекта, выберите New Component и назовите его PlayDigits.

Затем кликните на компоненте PlayDigits.comp и в разделе Properties Window нажмите кнопку рядом с коллекцией Variables. Добавьте две переменные - Digits и Index. Переменная Digits - принимает цифры, которые компонент затем проигрывает. Переменная Index - внутренняя, она позволяет компоненту переходить от цифры к цифре.

Для добавления переменных нажмите кнопку Add, чтобы добавить переменную и измените ее имя (свойство Name) на Digits. Переменная Digits должна иметь следующие свойства: Accessibility: ReadWrite, Initial Value: . Такая конструкция позволит последовательно воспроизвести все цифры, введенные пользователем.Index, который будет увеличивать значение переменной Increment Variable добавим компонент Loopдля воспроизведения очередной цифры в последовательности. В этот же компонент Prompt Playback добавим компонент Loop для перебора последовательности цифр (цикла). В компонент Loop. Переменная Index должна иметь следующие свойства: Accessibility: ReadWrite, Initial Value: 0, Scope: Private Теперь займемся архитектурой компонента. Мы будем использовать компонент Index, добавьте новую переменную и измените ее имя на Add, Scope: Public. Еще раз нажмите кнопку

Создание цикла

  1. Перетащите компонент Loop в основное окно среды разработки.
  2. В окне Properties измените имя компонента на digitsLoop
  3. Выберите компонент digitsLoop и в его свойстве Condition укажите строку LESS_THAN(callflow$.Index,LEN(callflow$.Digits)). Это выражение повторяет цикл до тех пор, пока переменная Index (callflow$.Index) меньше количества введенных пользователем цифр LEN(callflow$.Digits).

Воспроизведение сообщений

  1. Прежде всего нам необходимы звуковые файлы, соответствующие каждой цифре. Подготовьте и скопируйте файлы 0.wav, 1.wav и т.д. до 9 в папку Audio вашего проекта.
  2. Перетащите компонент Prompt Playback в основное поле приложения на компонент Loop.
  3. Измените имя компонента на playDigit.
  4. Выберите этот компонент и в окне свойств нажмите на кнопку возле коллекции Prompts, чтобы открыть редактор набора звуковых сообщений Prompt Collection Editor.
  5. Нажмите кнопку Add и измените тип на Dynamic Audio File Prompt
  6. В поле Audio File Expression введите строку CONCATENATE(MID(callflow$.Digits,callflow$.Index,1),".wav"). Выражение использует цифру текущей итерации и объединяет ее с расширением файла (строкой) .wav. Таким образом, абоненту воспроизводится соответствующая цифра.

Компонент увеличения номера переменной

  1. Перетащите компонент Increment Variable на компонент Loop, ниже компонента playDigit
  2. Измените имя компонента на incrementIndex
  3. Для свойства VariableName укажите выражение callflow$.Index

Цикл выполнения будет иметь следующий вид:

Наш компонент готов. Теперь мы будем вызывать его из основного приложения.

Вызов компонента для воспроизведения цифр

После того, как пользовательский компонент готов, задействуем его в нашем приложении:
  1. В окне Project Explorer кликните Main.flow, чтобы открыть основное приложение
  2. Добавьте компонент User Input, который будет запрашивать ввод от пользователя. Переименуйте его в requestInput и добавьте заранее подготовленное сообщение пользователю о необходимости ввода.
  3. В ветвлении Valid Input из окна User Defined Components добавьте созданный пользовательский компонент PlayDigits
  4. Переименуйте его в playEnteredDigits
  5. Выберите его и в свойстве Digits укажите следующее выражение requestInput.Buffer

Запрашиваемые цифры будут сперва помещаться в буфер, а затем проигрываться пользователю. Готовое приложение будет иметь примерно такой вид:

Компиляция и установка приложения на сервер 3CX

Голосовое приложение готово! Теперь его следует скомпилировать и загрузить на сервер 3CX. Для этого:
  • Перейдите в меню Build > Build All, и CFD создаст файл PlayDigitsDemo.tcxvoiceapp.
  • Перейдите в интерфейс управления 3CX, в раздел Очереди вызовов. Создайте новую Очередь вызовов, укажите название и добавочный номер Очереди, а затем установите опцию Голосовые приложения и загрузите скомпилированный файл.
  • Сохраните изменения в Очереди вызовов. Голосовое приложение готово к использованию.

Заключение

Наше приложение решает конкретную задачу, однако важно отметить возможность инкапсулировать определенную логику работы в отдельный пользовательский компонент. Это весьма мощный механизм, предлагающий ряд преимуществ:
  • Ускорение разработки приложения благодаря повторному использованию уже созданных компонентов.
  • Упрощение структуры основного приложения и предотвращение разрастания архитектуры приложения до размера, которым уже будет сложно управлять.
  • Голосовое приложения получается понятным и легко изменяемым.
По этому же принципу мы можем создавать пользовательские компоненты, проигрывающие время и даты, делающие валидацию ввода пользователя и т.п.
Предыдущие статьи