Como fazer a triagem de chamadas do Google com base no Voximplant e Dialogflow


Você pode ter ouvido ou lido sobre o recurso de triagem de chamadas lançado pelo Google para seus telefones Pixel nos EUA. A idéia é ótima - quando você recebe uma chamada, o assistente virtual começa a se comunicar, enquanto você vê essa conversa na forma de um bate-papo e a qualquer momento pode começar a falar em vez de um assistente. Isso é muito útil hoje em dia, quando quase metade das chamadas é spam , mas você não deseja perder chamadas importantes de alguém fora da sua lista de contatos. O único problema é que essa funcionalidade está disponível apenas no telefone Pixel e somente nos EUA. Bem, existem obstáculos para superá-los, certo? Portanto, decidimos explicar como tomar essa decisão usando o Voximplant e o Dialogflow. Eu peço gato.

Arquitetura


Sugiro que não perca tempo explicando como o Voximplant e o Dialogflow funcionam, se desejar, você pode encontrar facilmente informações na Internet. Então, vamos nos familiarizar com o próprio conceito de nossa triagem de chamadas.

Suponha que você já tenha um número de telefone que usa todos os dias e para o qual recebe chamadas importantes. Nesse caso, precisamos de um segundo número, que será indicado em qualquer lugar - no correio, em um cartão de visita, quando você preencher formulários on-line etc. Esse número será conectado ao sistema de processamento de linguagem natural (no nosso caso, Dialogflow) e encaminhará as chamadas para o número principal apenas se você desejar. Na forma de um diagrama, fica assim (a imagem é clicável):

Entendendo a arquitetura, podemos assumir a implementação, mas com uma ressalva: não criaremos um aplicativo móvel para mostrar um diálogo entre o Dialogflow e um assinante de entrada, criaremos um aplicativo da web simples com um renderizador de diálogo para mostrar visualmente como funciona a seleção de chamadas. Nesta aplicação, haverá um botão Intervir, pressionando o Voximplant para conectar o assinante recebido ao assinante discado, se este decidir falar por conta própria.

Implementação


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


Abra a seção "Números" e compre um número que funcionará como intermediário:


Em seguida, vá para o aplicativo de triagem, na seção "Números", na guia "Disponível". Aqui você verá o número que você acabou de comprar. Anexe-o ao aplicativo usando o botão "Anexar" - na janela exibida, deixe todos os valores padrão e clique em "Anexar".

Enquanto estiver dentro do aplicativo, vá para a guia Scripts e crie um script myscreening - nele usamos o código do artigo Como usar o Dialogflow Connector . 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 obtido aqui .

ATENÇÃO: você precisará alterar o valor da variável do servidor para o nome do seu servidor ngrok (os detalhes sobre o ngrok serão um pouco mais baixos). Além disso, substitua seus valores na linha 31, em que seu número de telefone é o número principal (por exemplo, seu número de celular pessoal) e voximplant number é o número que você comprou recentemente.

outbound_call = VoxEngine.callPSTN(“YOUR PHONE NUMBER”, “VOXIMPLANT NUMBER”) 

Uma chamadaPSTN acontecerá no momento em que você decidir entrar na conversa e conversar pessoalmente com o assinante recebido.

Depois de salvar o script, é necessário vinculá-lo ao número adquirido. Para fazer isso, enquanto ainda estiver dentro do seu aplicativo, vá para a guia "Roteamento" para criar uma nova regra - o botão "Nova regra" no canto superior direito. Especifique um nome (por exemplo, allcalls), deixe a máscara padrão (. * - o que significa que todas as chamadas recebidas serão processadas pelos scripts selecionados para esta regra) e especifique o script myscreening.


Salve a regra.

A partir de agora, o número de telefone está vinculado ao script. A última coisa a fazer é anexar o bot ao aplicativo. Para fazer isso, vá para a guia “Dialogflow Connector”, clique no botão “Add Dialogflow Agent” no canto superior direito e faça o upload do arquivo JSON do seu agente Dialogflow.


Se você precisar de um agente por exemplo / teste, poderá acessar o nosso neste link: github.com/aylarov/callscreening/tree/master/dialogflow . Só não exija muito dele, este é apenas um exemplo que você pode refazer como quiser e compartilhar com ousadia os resultados :)

Backend simples no NodeJS


Vamos implantar um back-end simples em um nó, por exemplo, isto:
github.com/aylarov/callscreening/tree/master/nodejs

Este é um aplicativo normal que requer apenas dois comandos para ser executado:

 npm install node index.js 

O servidor iniciará na porta 3000 da sua máquina. Portanto, para conectá-lo à nuvem Voximplant, usamos o utilitário ngrok. Quando você instala o ngrok , execute-o com o comando:

 ngrok http 3000 

Você verá o nome de domínio que o ngrok gerou para o servidor local - copie-o e substitua-o na variável do servidor.

Cliente


O aplicativo cliente se parece com um bate-papo simples que você pode captar aqui .

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

Demo


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


PS Se você clicar no botão Intervir, o chamador será direcionado para o meu número de telefone e, se você clicar em Desconectar, será ...? Verdadeiro, a chamada será desconectada.

Source: https://habr.com/ru/post/pt468725/


All Articles