Корзина
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, в раздел Очереди вызовов. Создайте новую Очередь вызовов, укажите название и добавочный номер Очереди, а затем установите опцию Голосовые приложения и загрузите скомпилированный файл.
  • Сохраните изменения в Очереди вызовов. Голосовое приложение готово к использованию.

Заключение

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