Chi sviluppa su Voximplant conosce il concetto di «applicazioni», che collegano tra loro scenari cloud, numeri di telefono, utenti, regole e code di chiamata. In altre parole, le applicazioni sono la base dello sviluppo sulla nostra piattaforma, il punto di ingresso per qualsiasi soluzione basata su Voximplant, poiché tutto inizia con la creazione di un'applicazione.
In passato, le applicazioni «non ricordavano» né le azioni che eseguivano gli scenari né i risultati dei calcoli, costringendo gli sviluppatori a salvare i valori su servizi esterni o sul proprio backend. Se hai mai lavorato con local storage nel browser, la nostra nuova funzionalità è molto simile a questo, poiché consente alle applicazioni di memorizzare coppie «chiave-valore» uniche per ogni applicazione nel tuo account. Il funzionamento dello storage è reso possibile grazie al nuovo modulo – di seguito troverai una breve guida sul suo utilizzo, benvenuto!
Avrai bisogno di
- un account Voximplant. Se non ne possiedi uno, la ;
- un'applicazione Voximplant, insieme a uno scenario, una regola e un utente. Creeremo tutto questo in questo tutorial;
- un client web per effettuare una chiamata – utilizzeremo il nostro webfono .
Impostazioni Voximplant
Prima di tutto, accedi al tuo account: . Nel menu a sinistra clicca su «Applicazioni», poi su «Nuova applicazione» e crea un'applicazione chiamata storage. Accedi alla nuova applicazione, passa alla scheda «Scenari» per creare uno scenario countingCalls con il seguente codice:
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('Errore durante il recupero del valore di totalCalls');
}
try {
await ApplicationStorage.put('totalCalls', (r.value | 0) + 1);
} catch(e) {
Logger.write('Errore durante l'aggiornamento del valore di totalCalls');
}
e.call.answer();
e.call.say(`Benvenuto. Numero di chiamate precedenti: ${r.value}. `, Language.RU_RUSSIAN_MALE);
e.call.addEventListener(CallEvents.PlaybackFinished, VoxEngine.terminate);
});La prima riga collega il modulo ApplicationStorage, mentre la logica rimanente è inserita nel gestore dell'evento .
Per prima cosa, dichiariamo una variabile per poter confrontare il valore iniziale con il contatore delle chiamate. Poi cerchiamo di ottenere il valore della chiave totalCalls dallo storage. Se tale chiave non esiste, la creiamo:
try {
r = await ApplicationStorage.get('totalCalls');
if (r === null) {
r = await ApplicationStorage.put('totalCalls', 0);
}
}Dopodiché, è necessario incrementare il valore della chiave nello storage:
try {
await ApplicationStorage.put('totalCalls', (r.value | 0) + 1);
}FA ATTENZIONE
Per ogni promessa, è necessario fornire esplicitamente la gestione del fallimento, come mostrato nel listing sopra; altrimenti, l'esecuzione dello script verrà interrotta, e nei log vedrai un errore. Maggiori dettagli .
Dopo aver lavorato con lo storage, lo script risponde alla chiamata in arrivo tramite sintesi vocale e comunica quante volte hai chiamato in precedenza. Dopo questo messaggio, lo script termina la sessione.
Dopo aver salvato lo script, vai alla scheda "Routing" della tua applicazione e fai clic su "Nuova regola". Chiamala startCounting, specifica lo script countingCalls e lascia la maschera predefinita (.*).

Ultimo passo: creare un utente. Per fare questo, vai su "Utenti", fai clic su "Crea utente", specifica un nome (ad esempio, user1) e una password, quindi clicca su "Crea". Questa coppia nome utente-password ci servirà per l'autenticazione nel web phone.
Controlliamo
Apri il web phone al link e accedi utilizzando il nome dell'account, il nome dell'applicazione e la coppia nome utente-password dell'utente dell'applicazione. Dopo un accesso riuscito, inserisci un qualsiasi insieme di caratteri nel campo di input e premi Chiamata. Se tutto è stato fatto correttamente, sentirai il saluto sintetizzato!
Ti auguriamo un'eccellente programmazione su Voximplant e resta sintonizzato per altre novità - ce ne saranno molte di più 😉
Fonte: habr.com
