Chi sviluppa su Voximplant conosce il concetto di "applicazioni" che collegano tra loro script cloud, numeri di telefono, utenti, regole e code di chiamata. In poche parole, le applicazioni sono la pietra angolare dello sviluppo sulla nostra piattaforma, il punto di accesso a qualsiasi soluzione basata su Voximplant, poiché tutto inizia con la creazione di un'applicazione.
In precedenza, le applicazioni "ricordavano" né le azioni eseguite dagli script né i risultati dei calcoli, quindi gli sviluppatori erano costretti a memorizzare valori in servizi di terze parti o nel loro backend. Se hai mai lavorato con l'archiviazione locale in un browser, la nostra nuova funzionalità è molto simile a questa, perché. Consente alle app di ricordare coppie chiave-valore univoche per ciascuna app nel tuo account. L'operazione di archiviazione è diventata possibile grazie al nuovo modulo - sotto il taglio troverai una breve guida su come usarlo, benvenuto!
Avrai bisogno
- Conto Voximplant. Se non ce l'hai, allora ;
- l'applicazione Voximplant, nonché uno script, una regola e un singolo utente. Creeremo tutto questo in questo tutorial;
- client web per effettuare una chiamata: utilizza il nostro webphone .
Impostazioni Voximplant
Primo accesso al tuo account: . Nel menu a sinistra, fai clic su "Applicazioni", quindi su "Nuova applicazione" e crea un'applicazione denominata storage. Vai alla nuova applicazione, passa alla scheda Script per creare uno script 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('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);
});La prima riga collega il modulo ApplicationStorage, il resto della logica viene inserito nel gestore eventi .
Per prima cosa dichiariamo una variabile in modo da poter confrontare il valore iniziale con il conteggio delle chiamate. Proviamo quindi a ottenere il valore della chiave totalCalls dallo store. Se non esiste ancora una chiave del genere, la creiamo:
try {
r = await ApplicationStorage.get('totalCalls');
if (r === null) {
r = await ApplicationStorage.put('totalCalls', 0);
}
}Successivamente, è necessario aumentare il valore della chiave nello spazio di archiviazione:
try {
await ApplicationStorage.put('totalCalls', (r.value | 0) + 1);
}NOTA BENE
Per ogni promessa, devi specificare esplicitamente il failover, come mostrato nell'elenco sopra, altrimenti lo script interromperà l'esecuzione e verrà visualizzato un errore nei log. Dettagli .
Dopo aver lavorato con il repository, lo script risponde alla chiamata in arrivo utilizzando la sintesi vocale e ti dice quante volte hai chiamato prima. Dopo questo messaggio, lo script termina la sessione.
Una volta salvato lo script, vai alla scheda Routing della tua applicazione e fai clic su Nuova regola. Chiamalo startCounting, specifica lo script countingCalls e lascia la maschera predefinita (.*).

L'ultimo è creare un utente. Per fare ciò, vai su "Utenti", fai clic su "Crea utente", inserisci un nome (ad esempio, utente1) e una password, quindi fai clic su "Crea". Avremo bisogno di questa coppia login-password per l'autenticazione nel webphone.
controllare la
Aprire il webphone dal collegamento e accedi utilizzando il nome account, il nome dell'app e la coppia nome utente/password dell'app. Dopo aver effettuato con successo l'accesso, inserire qualsiasi set di caratteri nel campo di immissione e fare clic su Chiama. Se tutto è stato fatto correttamente, sentirai un saluto sintetizzato!
Ti auguriamo un grande sviluppo in Voximplant e resta sintonizzato: ne avremo molti altri 😉
Fonte: habr.com
