Nyckel-värde lagring, eller hur våra applikationer har blivit mer bekväma
Alla som utvecklar på Voximplant känner till konceptet med "appar" som kopplar molnskript, telefonnummer, användare, regler och samtalsköer till varandra. Enkelt uttryckt är applikationer hörnstenen i utvecklingen på vår plattform, ingången till alla Voximplant-baserade lösningar, eftersom att skapa en applikation är där allt börjar.
Tidigare "kom inte applikationer ihåg" vare sig åtgärderna som skript utförde eller resultaten av beräkningar, så utvecklare var tvungna att lagra värden i tredjepartstjänster eller på deras backend. Om du någonsin har arbetat med lokal lagring i en webbläsare, så är vår nya funktionalitet ganska lik denna, eftersom Tillåter att appar kommer ihåg nyckel-värdepar som är unika för varje app i ditt konto. Driften av lagringen blev möjlig tack vare den nya modulen ApplicationStorage – under snittet hittar du en kort guide om hur du använder den, välkommen!
Voximplant-applikation, samt ett script, en regel och en användare. Vi kommer att skapa allt detta i denna handledning;
webbklient för att ringa ett samtal - använd vår webbtelefon phone.voximplant.com.
Voximplantatinställningar
Logga först in på ditt konto: manage.voximplant.com/auth. I menyn till vänster klickar du på "Applications", sedan "New Application" och skapar en applikation som heter lagring. Gå till den nya applikationen, växla till fliken Skript för att skapa ett countingCalls-skript med följande kod:
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);
});
Den första raden ansluter ApplicationStorage-modulen, resten av logiken placeras i händelsehanteraren CallAlerting.
Först deklarerar vi en variabel så att vi kan jämföra startvärdet med samtalsräknaren. Sedan försöker vi få värdet på totalCalls-nyckeln från butiken. Om en sådan nyckel inte finns ännu skapar vi den:
try {
r = await ApplicationStorage.get('totalCalls');
if (r === null) {
r = await ApplicationStorage.put('totalCalls', 0);
}
}
För varje löfte måste du uttryckligen ange felhantering, som visas i listan ovan - annars slutar skriptet att köras och du kommer att se ett fel i loggarna. Detaljer här.
Efter att ha arbetat med förvaret svarar skriptet på det inkommande samtalet med röstsyntes och berättar hur många gånger du ringt tidigare. Efter detta meddelande avslutar skriptet sessionen.
När du har sparat skriptet, gå till fliken Routing i din applikation och klicka på Ny regel. Kalla det startCounting, ange countingCalls-skriptet och lämna standardmasken (.*).
Det sista är att skapa en användare. För att göra detta, gå till "Användare", klicka på "Skapa en användare", ange ett namn (till exempel användare1) och lösenord och klicka sedan på "Skapa". Vi kommer att behöva detta inloggningslösenordspar för autentisering i webbtelefonen.
Kontroll
Öppna webbtelefonen med länken phone.voximplant.com och logga in med ditt kontonamn, applikationsnamn och användarnamn-lösenord från applikationen. Efter lyckad inloggning anger du valfri uppsättning tecken i inmatningsfältet och klickar på Ring. Om allt gjordes korrekt kommer du att höra en syntetiserad hälsning!
Vi önskar dig en bra utveckling på Voximplant och håll utkik efter fler nyheter - vi kommer att ha mycket mer 😉