根据Voximplant和Dialogflow进行Google通话筛选


您可能已经听说过Google的Pixel手机在美国推出的“呼叫筛选”功能。 这个主意很棒-当您接到来电时,虚拟助手开始交流,同时您以聊天的形式看到此对话,并且随时可以代替助手来讲话。 如今 ,当几乎一半的电话都是垃圾邮件时 ,这非常有用,但是您不想错过联系人列表之外的其他人的重要电话。 唯一要注意的是,此功能仅在Pixel手机上和仅在美国可用。 好吧,存在克服障碍的权利,对吧? 因此,我们决定讲述如何使用Voximplant和Dialogflow做出这样的决定。 我要猫。

建筑学


我建议不要浪费时间解释Voximplant和Dialogflow的工作原理,如果您愿意,可以在Internet上轻松找到信息。 因此,让我们熟悉我们的呼叫筛选的概念。

假设您已经拥有每天使用的电话号码,并且可以收到重要电话。 在这种情况下,我们需要第二个数字,该数字将在各处显示-在邮件中,在名片上,在您填写在线表格时,等等。 该号码将连接到自然语言处理系统(在本例中为Dialogflow),并且仅在需要时才将呼叫转接到您的主号码。 以图表的形式,看起来像这样(图片是可点击的):

了解了体系结构之后,我们可以进行实现了,但有一个警告:我们不会制作一个移动应用程序来显示Dialogflow与传入订阅者之间的对话,而是创建一个带有对话渲染器的简单Web应用程序以可视化地显示呼叫筛选的工作原理。 在此应用程序中,将有一个“介入”按钮,如果后者决定自己通话,则按下该按钮,Voximplant会将传入的用户连接到已拨出的用户。

实作


登录到您的Voximplant帐户并创建一个新应用程序,例如,筛选:


打开“数字”部分 ,购买一个将用作中介的数字:


接下来,转到筛选应用程序,在“数字”部分的“可用”选项卡中。 在这里,您会看到刚购买的号码。 使用“附加”按钮将其附加到应用程序-在出现的窗口中,保留所有默认值,然后单击“附加”。

在应用程序内部,转到Scripts选项卡并创建一个myscreening脚本-在其中,我们使用文章How to use Dialogflow Connector中的代码。 在这种情况下,代码将略有更改,因为我们需要“查看”呼叫者和助手之间的对话; 所有代码都可以在这里获取

注意:您需要将服务器变量的值更改为您的ngrok服务器的名称(有关ngrok的细节会稍低一些)。 另外,在第31行中替换您的值,其中电话号码是您的主号码(例如您的个人手机号码),而voximplant号码是您最近购买的号码。

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

当您决定打断对话并亲自与来话用户聊天时,将发生callPSTN呼叫。

保存脚本后,需要将其绑定到购买的号码。 为此,即使仍在应用程序内部,请转到“路由”选项卡以创建新规则-右上角的“新规则”按钮。 指定一个名称(例如,allcalls),保留默认掩码(。*-表示所有传入呼叫将由为此规则选择的脚本处理)并指定myscreening脚本。


保存规则。

从现在开始,电话号码将绑定到脚本。 最后要做的是将bot附加到应用程序。 为此,请转到“ Dialogflow连接器”选项卡,单击右上角的“添加Dialogflow代理”按钮,然后上载Dialogflow代理的JSON文件。


如果您需要代理进行示例/测试,可以通过以下链接获取我们的代理: github.com/aylarov/callscreening/tree/master/dialogflow 。 只是对他的要求不高,这只是一个示例,您可以随意重做并大胆地分享结果:)

NodeJS上的简单后端


让我们在节点上部署一个简单的后端,例如:
github.com/aylarov/callscreening/tree/master/nodejs

这是一个普通的应用程序,仅需要两个命令即可运行:

 npm install node index.js 

该服务器将在您计算机的端口3000上启动,因此要使用ngrok实用程序将其连接到Voximplant云。 安装ngrok时 ,使用以下命令运行它:

 ngrok http 3000 

您将看到ngrok为您的本地服务器生成的域名-将其复制并将其替换为服务器变量。

顾客


客户端应用程序看起来像一个简单的聊天,您可以从此处进行接听

只需将所有文件复制到Web服务器上的目录中,它将起作用。 在script.js文件中,将服务器变量替换为ngrok域名,并将被调用者变量替换为您购买的号码。 保存文件并在浏览器中启动应用程序。 如果一切正常,那么您将在开发人员面板中看到一个WebSocket连接。

演示版


您可以在此视频上看到正在运行的应用程序:


PS:如果您单击“介入”按钮,则呼叫者将被定向到我的电话号码;如果您单击“断开连接”,它将是...? 是的,呼叫将被断开。

Source: https://habr.com/ru/post/zh-CN468725/


All Articles