Osoba, która rozwija na Voximplant, zna koncepcję „aplikacji”, które łączą ze sobą chmurowe scenariusze, numery telefonów, użytkowników, zasady i kolejki połączeń. Mówiąc prościej, aplikacje są kamieniem węgielnym rozwoju na naszej platformie, punktem wyjścia do każdego rozwiązania opartego na Voximplant, ponieważ to właśnie od stworzenia aplikacji wszystko się zaczyna.
Wcześniej aplikacje „nie pamiętały” ani działań, które wykonywały scenariusze, ani wyników obliczeń, więc programiści byli zmuszeni do przechowywania wartości w zewnętrznych serwisach lub na własnym backendzie. Jeśli kiedykolwiek pracowałeś z local storage w przeglądarce, to nasza nowa funkcjonalność jest bardzo podobna, ponieważ pozwala aplikacjom zapamiętywać pary „klucz-wartość”, które są unikalne dla każdej aplikacji w twoim koncie. Praca magazynu stała się możliwa dzięki nowemu modułowi – poniżej czeka na Ciebie krótki przewodnik po jego użyciu, witaj!
Będziesz potrzebować
- konta Voximplant. Jeśli go nie masz, to ;
- aplikacji Voximplant oraz scenariusza, zasady i jednego użytkownika. Wszystko to stworzymy w tym samouczku;
- klienta sieciowego, aby zainicjować połączenie – skorzystamy z naszego webfona .
Ustawienia Voximplant
Najpierw zaloguj się na swoje konto: . W menu po lewej kliknij „Aplikacje”, a następnie „Nowa aplikacja” i stwórz aplikację o nazwie storage. Wejdź do nowej aplikacji, przełącz się na zakładkę „Scenariusze”, aby stworzyć scenariusz countingCalls z następującym kodem:
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('Błąd podczas pobierania wartości totalCalls');
}
try {
await ApplicationStorage.put('totalCalls', (r.value | 0) + 1);
} catch(e) {
Logger.write('Błąd podczas aktualizacji wartości totalCalls');
}
e.call.answer();
e.call.say(`Witaj. Liczba ostatnich połączeń: ${r.value}. `, Language.RU_RUSSIAN_MALE);
e.call.addEventListener(CallEvents.PlaybackFinished, VoxEngine.terminate);
});Pierwsza linia podłącza moduł ApplicationStorage, natomiast pozostała logika jest umieszczona w obsłudze zdarzenia .
Najpierw ogłaszamy zmienną, aby porównać wartość początkową z licznikiem połączeń. Następnie próbujemy uzyskać wartość klucza totalCalls z magazynu. Jeśli takiego klucza jeszcze nie ma, to go tworzymy:
try {
r = await ApplicationStorage.get('totalCalls');
if (r === null) {
r = await ApplicationStorage.put('totalCalls', 0);
}
}Następnie musimy zwiększyć wartość klucza w magazynie:
try {
await ApplicationStorage.put('totalCalls', (r.value | 0) + 1);
}ZWRÓĆ UWAGĘ
Dla każdego obietnicy należy jawnie określić obsługę błędów, jak pokazano w powyższym przykładzie – w przeciwnym razie wykonanie skryptu zostanie zatrzymane, a w logach zobaczysz błąd. Szczegóły .
Po pracy z magazynem skrypt odpowiada na przychodzące połączenie za pomocą syntezatora mowy i mówi, ile razy dzwoniłeś wcześniej. Po tym komunikacie skrypt kończy sesję.
Po zapisaniu skryptu przejdź do zakładki "Routing" swojej aplikacji i kliknij "Nowa reguła". Nazwij ją startCounting, wskaź skrypt countingCalls i pozostaw maskę domyślną (.*).

Ostatnia rzecz – stworzenie użytkownika. W tym celu przejdź do "Użytkownicy", kliknij "Utwórz użytkownika", podaj nazwę (na przykład user1) i hasło, a następnie kliknij "Utwórz". Ta para login-hasło będzie potrzebna do autoryzacji w webfonie.
Sprawdzamy
Otwórz webfon pod tym linkiem i zaloguj się, używając nazwy konta, nazwy aplikacji oraz pary login-hasło użytkownika z aplikacji. Po pomyślnym zalogowaniu wpisz dowolny zestaw znaków w polu wprowadzania i naciśnij Call. Jeśli wszystko zostało zrobione poprawnie, usłyszysz wygenerowane powitanie!
Życzymy udanej pracy z Voximplant i zachęcamy do śledzenia nowości – będzie ich u nas jeszcze wiele 😉
Źródło: habr.com
