Vous avez peut-être entendu ou lu parler de la fonctionnalité de screening d'appels que Google a lancée pour ses téléphones Pixel aux États-Unis. L'idée est excellente : lorsque vous recevez un appel entrant, l'assistant virtuel commence à communiquer, tandis que vous voyez cette conversation sous forme de chat et pouvez entrer dans la conversation à tout moment. C'est très utile de nos jours, alors que presque , mais vous ne voulez pas manquer d'importants appels de personnes qui ne figurent pas dans votre liste de contacts. Le seul hic est que cette fonctionnalité n'est disponible que sur le téléphone Pixel et uniquement aux États-Unis. Eh bien, les obstacles existent pour être surmontés, n'est-ce pas ? C'est pourquoi nous avons décidé de parler de la manière de créer une solution similaire en utilisant Voximplant et Dialogflow. Je vous invite à lire la suite.
Architecture
Je ne vais pas perdre de temps à expliquer comment fonctionnent Voximplant et Dialogflow, vous trouverez facilement des informations à ce sujet sur Internet. Passons donc à la présentation du concept de notre screening d'appels.
Supposons que vous ayez déjà un numéro de téléphone que vous utilisez quotidiennement et sur lequel vous recevez des appels importants. Dans ce cas, nous aurons besoin d'un deuxième numéro, qui sera indiqué partout : dans vos emails, sur votre carte de visite, lorsque vous remplissez des formulaires en ligne, etc. Ce numéro sera connecté au système de traitement du langage naturel (dans notre cas, c'est Dialogflow) et redirigera les appels vers votre numéro principal, seulement si vous le souhaitez. Cela ressemble à ceci (l'image est cliquable) :
Comprenant l'architecture, nous pouvons nous attaquer à la réalisation, mais avec une précaution : nous ne créerons pas une application mobile pour montrer le dialogue entre Dialogflow et l'appelant entrant, nous allons créer une simple application web- avec un rendu de dialogue, afin de montrer clairement le fonctionnement du screening d'appels. Dans cette application, il y aura un bouton Intervenir, sur lequel Voximplant mettra en relation l'appelant entrant avec l'appelant que vous composez, si ce dernier souhaite parler lui-même.
Mise en œuvre
Connectez-vous à et créez une nouvelle application, par exemple, screening :

Ouvrez et achetez un numéro qui fonctionnera comme intermédiaire :

Ensuite, ouvrez l'application screening, dans la section « Numéros », onglet « Disponibles ». Vous y verrez le numéro nouvellement acheté. Liez-le à l'application en utilisant le bouton « Attacher » – dans la fenêtre qui apparaît, laissez toutes les valeurs par défaut et cliquez sur « Attacher ».
À l'intérieur de l'application, allez dans l'onglet « Scénarios » et créez le scénario myscreening – nous allons y utiliser le code de l'article . Le code sera légèrement modifié, car nous devons « voir » le dialogue entre l'appelant et l'assistant ; tout le code peut être .
ATTENTION : vous devrez changer la valeur de la variable server par le nom de votre serveur ngrok (les détails sur ngrok seront présentés un peu plus bas). Remplacez également vos valeurs à la ligne 31, où votre numéro de téléphone – c'est votre numéro principal (par exemple, un mobile personnel), et le numéro voximplant – le numéro que vous avez récemment acheté.
outbound_call = VoxEngine.callPSTN(“VOTRE NUMÉRO DE TÉLÉPHONE”, “NUMÉRO VOXIMPLANT”)L'appel callPSTN se produira au moment où vous déciderez d'interrompre la conversation et de parler directement avec l'appelant entrant.
Après avoir enregistré le scénario, vous devez le lier au numéro acheté. Pour ce faire, toujours dans votre application, allez dans l'onglet « Routage » pour créer une nouvelle règle – le bouton « Nouvelle règle » dans le coin supérieur droit. Indiquez un nom (par exemple, allcalls), laissez le masque par défaut (.* – ce qui signifie que tous les appels entrants seront traités par les scénarios choisis pour cette règle) et indiquez le scénario myscreening.

Enregistrez la règle.
Désormais, le numéro de téléphone est lié au scénario. La dernière étape consiste à lier le bot à l'application. Pour cela, allez dans l'onglet « Connecteur Dialogflow », cliquez sur le bouton « Ajouter un agent Dialogflow » dans le coin supérieur droit et téléchargez le fichier JSON de votre agent Dialogflow.

Si vous avez besoin d'un agent pour un exemple/test, vous pouvez prendre le nôtre à ce lien : . Ne lui demandez pas trop, c'est juste un exemple que vous pouvez modifier à votre guise et partager vos résultats 🙂
Un backend simple sur NodeJS
Déployons un simple backend sur Node, par exemple, comme celui-ci :
C'est une application ordinaire qui nécessite seulement deux commandes pour démarrer :
npm install
node index.js
Le serveur démarrera sur le port 3000 de votre machine, donc pour le connecter au cloud Voximplant, nous utilisons l'outil ngrok. Lorsque vous l'aurez installé , lancez-le avec la commande :
ngrok http 3000Vous verrez un nom de domaine que ngrok a généré pour votre serveur local – copiez-le et insérez-le dans la variable server.
Client
L'application cliente ressemble à un simple chat que vous pouvez.
Il suffit de copier tous les fichiers dans un répertoire de votre serveur web et cela fonctionnera. Dans le fichier script.js, remplacez la valeur de la variable server par le nom de domaine ngrok et la valeur de la variable callee par le numéro que vous avez acheté. Enregistrez le fichier et lancez l'application dans le navigateur. Si tout va bien, vous verrez une connexion WebSocket dans la console de développement.
Démo
Vous pouvez voir l'application en action dans cette vidéo :

P.S. Si vous appuyez sur le bouton Intervene, l'appelant sera dirigé vers mon numéro de téléphone, et si vous appuyez sur Disconnect – l'appel sera… ? C'est ça, l'appel sera déconnecté.
Source : habr.com
