Criamos nosso Google Call Screening com base no Voximplant e no Dialogflow

Criamos nosso Google Call Screening com base no Voximplant e no Dialogflow
Você pode ter ouvido ou lido sobre a função Call Screening que o Google lançou para seus telefones Pixel nos EUA. A ideia é ótima – quando você recebe uma chamada, o assistente virtual começa a conversar, enquanto você vê essa conversa em forma de chat e pode a qualquer momento começar a falar em vez do assistente. Isso é muito útil hoje em dia, quando quase metade das chamadas são spam, mas mesmo assim você não quer perder chamadas importantes de alguém que não está na sua lista de contatos. A única complicação é que essa funcionalidade está disponível apenas no telefone Pixel e apenas nos EUA. Bem, existem obstáculos para serem superados, certo? Portanto, decidimos contar como fazer uma solução semelhante usando Voximplant e Dialogflow. Continue lendo.

Arquitetura

Não vou perder tempo explicando como funcionam o Voximplant e o Dialogflow, se desejar, você pode facilmente encontrar informações na internet. Então, vamos nos familiarizar com o conceito do nosso Call Screening.

Suponha que você já tenha um número de telefone que usa diariamente e que recebe chamadas importantes. Nesse caso, precisaremos de um segundo número, que será indicado em todos os lugares – no e-mail, no cartão de visita, quando você preenche formulários online, etc. Esse número será conectado ao sistema de processamento de linguagem natural (neste caso, o Dialogflow) e irá redirecionar chamadas para seu número principal, somente se você desejar. Em forma de esquema, isso se parece com isto (imagem clicável):
Criamos nosso Google Call Screening com base no Voximplant e no Dialogflow
Entendendo a arquitetura, podemos começar a implementação, mas com uma ressalva: não vamos criar um aplicativo móvel para mostrar o diálogo entre o Dialogflow e o chamador, vamos criar um simples aplicativo webcom renderização de diálogo, para demonstrar claramente o princípio do funcionamento do Call Screening. Neste aplicativo haverá um botão Intervene, ao qual, ao ser pressionado, o Voximplant conectará o chamador que está ligando ao destinatário, caso este decida falar pessoalmente.

Implementação

Faça login em sua conta Voximplant e crie um novo aplicativo, por exemplo, screening:

Criamos nosso Google Call Screening com base no Voximplant e no Dialogflow
Abra na seção "Números" e compre um número que funcionará como intermediário:

Criamos nosso Google Call Screening com base no Voximplant e no Dialogflow
Em seguida, acesse o aplicativo screening, na seção "Números", aba "Disponíveis". Aqui você verá o número recém-adquirido. Vincule-o ao aplicativo usando o botão "Anexar" – na janela que aparecer, mantenha todas as configurações padrão e clique em "Anexar".

Dentro do aplicativo, vá para a aba "Cenários" e crie um cenário myscreening – nele, usaremos o código do artigo Como usar o Conector Dialogflow. Nesse caso, o código será ligeiramente alterado, porque precisamos "ver" o diálogo entre o chamador e o assistente; todo o código pode ser encontrado aqui.

ATENÇÃO: você precisará mudar o valor da variável server para o nome do seu servidor ngrok (detalhes sobre ngrok estarão um pouco mais abaixo). Também insira seus valores na linha 31, onde your phone number – é seu número principal (por exemplo, um celular pessoal), e voximplant number – é o número que você comprou recentemente.

outbound_call = VoxEngine.callPSTN(“SEU NÚMERO DE TELEFONE”, “NÚMERO VOXIMPLANT”)

A chamada callPSTN ocorrerá no momento em que você decidir intervir na conversa e falar pessoalmente com o chamador.

Depois de salvar o cenário, você precisa vinculá-lo ao número adquirido. Para isso, ainda dentro do seu aplicativo, vá para a aba "Roteamento" para criar uma nova regra – botão "Nova regra" no canto superior direito. Insira um nome (por exemplo, allcalls), mantenha a máscara padrão (.* – que significa que todas as chamadas recebidas serão processadas pelos cenários selecionados para esta regra) e indique o cenário myscreening.

Criamos nosso Google Call Screening com base no Voximplant e no Dialogflow
Salve a regra.

A partir de agora, o número de telefone está vinculado ao cenário. A última coisa que precisa ser feita é vincular o bot ao aplicativo. Para isso, vá para a aba "Conector Dialogflow", clique no botão "Adicionar agente Dialogflow" no canto superior direito e faça o upload do arquivo JSON do seu agente Dialogflow.

Criamos nosso Google Call Screening com base no Voximplant e no Dialogflow
Se você precisa de um agente para exemplo/teste, pode pegar o nosso neste link: github.com/aylarov/callscreening/tree/master/dialogflow. Apenas não espere muito dele, é apenas um exemplo, e você está livre para modificá-lo como desejar e compartilhar os resultados 🙂

Backend simples em NodeJS

Vamos implementar um backend simples em Node, por exemplo, assim:
github.com/aylarov/callscreening/tree/master/nodejs

É um aplicativo comum que requer apenas dois comandos para iniciar:

npm install
node index.js

O servidor será executado na porta 3000 da sua máquina, então, para conectá-lo à nuvem Voximplant, utilizamos a ferramenta ngrok. Quando você instalar ngrok, inicie-o com o comando:

ngrok http 3000

Você verá um nome de domínio que o ngrok gerou para o seu servidor local – copie-o e insira na variável server.

Cliente

O aplicativo cliente se parece com um simples chat que você pode pegar daqui.

Basta copiar todos os arquivos para um diretório no seu servidor web e funcionará. No arquivo script.js, substitua o valor da variável server pelo nome de domínio ngrok e o valor da variável callee pelo número que você comprou. Salve o arquivo e inicie o aplicativo no navegador. Se tudo estiver certo, você verá a conexão WebSocket no painel do desenvolvedor.

Demonstração

Você pode ver o aplicativo em ação neste vídeo:

Por que no hosting comum a administração do PrestaShop é lenta, e no seu não é?

P. S. Se você clicar no botão Intervene, a chamada será direcionada para o meu número de telefone, e se clicar em Disconnect – então…? Correto, a chamada será desconectada.

Fonte: habr.com
Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster