Сховище key-value, або як наші програми стали зручнішими

Сховище key-value, або як наші програми стали зручнішими

Той, хто розробляє на Voximplant, знає про концепцію «додатків», які пов'язують один з одним хмарні сценарії, телефонні номери, користувачів, правила та черги дзвінків. Простіше кажучи, додатки – це наріжний камінь розробки на нашій платформі, вхідна точка в будь-яке рішення на основі Voximplant, оскільки саме зі створення програми все й починається.

Раніше програми «не пам'ятали» ні дії, що виконують сценарії, ні результати обчислень, отже розробники змушені були зберігати значення сторонніх сервісах чи своєму бекенде. Якщо ви коли-небудь працювали з local storage в браузері, наша нова функціональність дуже схожа на це, т.к. дозволяє програмам запам'ятовувати пари «ключ-значення», які є унікальними для кожної програми у вашому обліковому записі. Робота сховища стала можливою завдяки новому модулю. ApplicationStorage – під катом на вас чекає короткий посібник з його використання, welcome!

вам знадобляться

  • обліковий запис Voximplant. Якщо у вас його немає, то реєстрація живе тут;
  • додаток Voximplant, а також сценарій, правило та один користувач. Все це ми створимо у цьому туторіалі;
  • веб-клієнт, щоб зробити дзвінок – скористаємося нашим вебфоном phone.voximplant.com.

Установки Voximplant

Спочатку увійдіть до свого облікового запису: manage.voximplant.com/auth. У меню зліва натисніть «Програми», потім «Нова програма» і створіть програму з ім'ям storage. Зайдіть в нову програму, перейдіть на вкладку «Сценарії», щоб створити сценарій countingCalls з таким кодом:

require(Modules.ApplicationStorage);

VoxEngine.addEventListener(AppEvents.CallAlerting, async (e) => {
let r = {value: -1};

    try {
        r = await ApplicationStorage.get('totalCalls');
        if (r === null) {
            r = await ApplicationStorage.put('totalCalls', 0);
        }
    } catch(e) {
        Logger.write('Failure while getting totalCalls value');
    }

    try {
        await ApplicationStorage.put('totalCalls', (r.value | 0) + 1);
    } catch(e) {
        Logger.write('Failure while updating totalCalls value');
    }
    
    e.call.answer();
    e.call.say(`Приветствую.  Количество прошлых звонков: ${r.value}. `, Language.RU_RUSSIAN_MALE);

    e.call.addEventListener(CallEvents.PlaybackFinished, VoxEngine.terminate);

});

Перший рядок підключає модуль ApplicationStorage, решта ж логіки поміщена в обробник події CallAlerting.

Спочатку ми оголошуємо змінну, щоб можна було порівнювати початкове значення із лічильником дзвінків. Потім ми намагаємося отримати значення ключа totalCalls зі сховища. Якщо такого ключа ще немає, ми його створюємо:

try {
    r = await ApplicationStorage.get('totalCalls');
    if (r === null) {
        r = await ApplicationStorage.put('totalCalls', 0);
    }
}

Далі необхідно збільшити значення ключа у сховищі:

try {
        await ApplicationStorage.put('totalCalls', (r.value | 0) + 1);
    }

ЗВЕРНІТЬ УВАГА

Для кожного промісу необхідно явно вказувати обробку відмови, як показано в лістингу вище – інакше виконання сценарію буде зупинено, а у логах ви побачите помилку. Подробиці тут.

Після роботи зі сховищем сценарій відповідає на вхідний дзвінок за допомогою голосового синтезу та каже, скільки разів ви дзвонили до цього. Після цього повідомлення сценарій завершує сесію.

Після того, як ви зберегли сценарій, перейдіть на вкладку «Роутинг» вашої програми та натисніть «Нове правило». Назвіть його startCounting, вкажіть сценарій countingCalls та залиште маску за замовчуванням (.*).

Сховище key-value, або як наші програми стали зручнішими
Останнє – створити користувача. Для цього перейдіть "Користувачі", натисніть "Створити користувача", вкажіть ім'я (наприклад, user1) і пароль, потім натисніть "Створити". Ця пара логін-пароль знадобиться нам для автентифікації у вебфоні.

перевіряємо

Відкрийте вебфон за посиланням phone.voximplant.com і залогіньтесь, використовуючи ім'я облікового запису, назву програми та пару логін-пароль користувача з програми. Після успішного входу введіть будь-який набір символів у полі введення та натисніть Call. Якщо все було зроблено правильно, ви почуєте синтезоване вітання!

Бажаємо вам відмінної розробки на Voximplant та стежте за новинами – їх у нас буде ще багато 😉

Джерело: habr.com

Додати коментар або відгук