Quem desenvolve na Voximplant conhece o conceito de "aplicações", que conectam cenários em nuvem, números de telefone, usuários, regras e filas de chamadas. Em termos simples, aplicações são a pedra angular do desenvolvimento em nossa plataforma, o ponto de entrada para qualquer solução baseada na Voximplant, pois é com a criação de uma aplicação que tudo começa.
Anteriormente, as aplicações "não lembravam" as ações que os cenários realizavam, nem os resultados dos cálculos, fazendo com que os desenvolvedores fossem forçados a armazenar valores em serviços externos ou em seu backend. Se você já trabalhou com armazenamento local no navegador, nossa nova funcionalidade é bastante semelhante, pois permite que as aplicações lembrem pares "chave-valor" que são exclusivos para cada aplicação em sua conta. O funcionamento do armazenamento se tornou possível graças ao novo módulo – abaixo você encontrará um guia rápido sobre como usá-lo, bem-vindo!
Você precisará de
- uma conta Voximplant. Se você não tiver uma, ;
- uma aplicação Voximplant, bem como um cenário, uma regra e um usuário. Iremos criar tudo isso neste tutorial;
- um cliente web para fazer a chamada – vamos usar nosso webfone .
Configurações da Voximplant
Primeiro, faça login em sua conta: . No menu à esquerda, clique em "Aplicações", depois em "Nova aplicação" e crie uma aplicação chamada storage. Acesse a nova aplicação, mude para a aba "Cenários" para criar um cenário countingCalls com o seguinte código:
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('Falha ao obter o valor totalCalls');
}
try {
await ApplicationStorage.put('totalCalls', (r.value | 0) + 1);
} catch(e) {
Logger.write('Falha ao atualizar o valor totalCalls');
}
e.call.answer();
e.call.say(`Saudações. Número de chamadas anteriores: ${r.value}.`, Language.RU_RUSSIAN_MALE);
e.call.addEventListener(CallEvents.PlaybackFinished, VoxEngine.terminate);
});A primeira linha conecta o módulo ApplicationStorage, enquanto a lógica restante está posicionada no manipulador de eventos .
Primeiro, declaramos uma variável para que possamos comparar o valor inicial com o contador de chamadas. Em seguida, tentamos obter o valor da chave totalCalls do armazenamento. Se essa chave ainda não existir, iremos criá-la:
try {
r = await ApplicationStorage.get('totalCalls');
if (r === null) {
r = await ApplicationStorage.put('totalCalls', 0);
}
}Em seguida, é necessário aumentar o valor da chave no armazenamento:
try {
await ApplicationStorage.put('totalCalls', (r.value | 0) + 1);
}ATENÇÃO
Para cada promessa, é necessário especificar explicitamente o tratamento de falhas, como mostrado na listagem acima – caso contrário, a execução do script será interrompida e você verá um erro nos logs. Detalhes .
Após trabalhar com o armazenamento, o script responde a uma chamada recebida através da síntese de voz e informa quantas vezes você já ligou antes. Depois dessa mensagem, o script encerra a sessão.
Depois de salvar o script, vá até a aba 'Roteamento' do seu aplicativo e clique em 'Nova regra'. Nomeie-a como startCounting, indique o script countingCalls e mantenha a máscara padrão (.*).

Por último, crie um usuário. Para isso, vá até 'Usuários', clique em 'Criar usuário', informe um nome (por exemplo, user1) e uma senha, e em seguida clique em 'Criar'. Esse par login-senha será necessário para a autenticação no webfone.
Verificamos
Abra o webfone pelo link e faça login usando o nome da conta, o nome do aplicativo e o par login-senha do usuário do aplicativo. Após o login bem-sucedido, insira qualquer conjunto de caracteres no campo de entrada e clique em Chamar. Se tudo estiver correto, você ouvirá uma saudação sintetizada!
Desejamos excelentes desenvolvimentos no Voximplant e fique atento às novidades – teremos muitas ainda 😉
Fonte: habr.com
