Управління введенням користувача в 3CX Call Flow Designer

Введення
У цій статті ми розглянемо створення голосового програми, яку зчитує послідовність цифр, введених користувачем через номеронабирач, а потім підтверджує коректність введення, програючи абоненту введені цифри. Погодьтеся, це досить часта завдання у порталах телефонного самообслуговування. Наше додаток буде виконувати цю задачу, використовуючи 3CX Call Flow Designer. Програма працює наступним чином:- 3CX CFD повідомляє : Введіть ваш номер користувача
- Користувач набирає 1234
- 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. Ще раз натисніть кнопку
Створення циклу
- Перетягніть компонент Loop в основне вікно середовища розробки.
- У вікні Properties змініть ім'я компонента на digitsLoop
- Виберіть компонент digitsLoop і його властивості Condition вкажіть рядок LESS_THAN(callflow$.Index,LEN(callflow$.Digits)). Це вираз повторює цикл до тих пір, поки змінна Index (callflow$.Index) менше кількості введених користувачем цифр LEN(callflow$.Digits).
Відтворення повідомлень
- Насамперед нам необхідні звукові файли, відповідні кожній цифрі. Підготуйте і скопіюйте файли 0.wav, 1.wav і т. д. до 9 в папку Audio вашого проекту.
- Перетягніть компонент Prompt Playback в основне поле програми на компонент Loop.
- Змініть ім'я компонента на playDigit.
- Виберіть цей компонент і у вікні властивостей натисніть на кнопку біля колекції Prompts, щоб відкрити редактор набору звукових повідомлень Prompt Collection Editor.
- Натисніть кнопку Add і змініть тип на Dynamic Audio File Prompt
- У полі Audio File Expression введіть CONCATENATE(MID(callflow$.Digits,callflow$.Index,1),".wav"). Вираз використовує цифру поточної ітерації і об'єднує її з розширенням файлу (рядком) .wav. Таким чином, абоненту відтворюється відповідна цифра.
Компонент збільшення змінної номери
- Перетягніть компонент Increment Variable на компонент Loop, нижче компонента playDigit
- Змініть ім'я компонента на incrementIndex
- Для властивості VariableName вкажіть вираз callflow$.Index
Цикл виконання буде мати наступний вигляд:
Наш компонент готовий. Тепер ми будемо викликати його з основного додатка.
Виклик компонента для відтворення цифр
Після того, як користувальницький компонент готовий, задіємо її в нашому додатку:- У вікні Project Explorer клацніть Main.flow, щоб відкрити основне додаток
- Додайте компонент User Input, який буде запитувати введення від користувача. Перейменуйте його в requestInput і додайте заздалегідь підготовлене повідомлення користувачу про необхідність введення.
- У розгалуженні Valid Input з вікна User Defined Components додайте створений користувальницький компонент PlayDigits
- Перейменуйте його в playEnteredDigits
- Виберіть його і властивості Digits вкажіть наступне вираз requestInput.Buffer
Запитувані цифри будуть спершу поміщатися в буфер, а потім програватися користувачеві. Готове додаток буде мати приблизно такий вигляд:
Компіляція та встановлення програми на сервер 3CX
Голосове додаток готове! Тепер його слід скомпілювати і завантажити на сервер 3CX. Для цього:- Перейдіть в меню Build > Build All, і CFD створить файл PlayDigitsDemo.tcxvoiceapp.
- Перейдіть в інтерфейс управління 3CX, в розділ Черги дзвінків. Створіть нову Чергу викликів, вкажіть назву і додатковий номер Черги, а потім встановіть опцію Голосові програми і завантажте скомпільований файл.
- Збережіть зміни в Черзі викликів. Голосове додаток готове до використання.
Висновок
Наше додаток вирішує конкретну задачу, однак важливо відзначити можливість инкапсулировать певну логіку роботи в окремий користувальницький компонент. Це дуже потужний механізм, що пропонує ряд переваг:- Прискорення розробки програми завдяки повторному використанню вже створених компонентів.
- Спрощення структури основного додатка і запобігання розростання архітектури додатки до розміру, яким вже буде складно керувати.
- Голосове додатки виходить зрозумілим і легко змінюваним.
- Logitech Tap та Logitech Tap IP – це сенсорні контролери для систем відеоконференцій. Зовні вони виглядають практично однаково та дозволяють легко керувати обладнанням для відеоконференцій Logitech у конференц-залі, але вони мають деякі важливі відмінності.
- Комплекти обладнання Poly Studio Room Kits є готовими рішеннями для підготовки вашого конференц-залу до відеоконференцій у системі Microsoft Teams Rooms. Poly пропонує рішення для кімнат переговорів та конференц-залів різного розміру. Ви зможете підібрати потрібне рішення в залежності від розміру конференц-залу. При цьому у всього обладнання буде однаковий інтерфейс управління та найголовніше - висока якість відео та звуку та фірмові технології Poly.