我正在使用Flask编写一个Web客户端,并集成Twilio让我从浏览器拨打电话。一切都很好,它主要是工作,但我有一些状态信息,我想要在接听电话时更新。
connection.status()方法似乎没有帮助,因为“打开”似乎意味着呼叫正在尝试通过,并且状态保持打开状态直到我在呼叫结束时“关闭”。 / p>
有没有什么好方法(通过浏览器或通过注册服务器上的python代码回调)来获取状态更新,以便在呼叫从“振铃”转换为“现场”时进行状态更新?
答案 0 :(得分:7)
对于外拨电话
twilio.js库声明:
Twilio.Device is your main entry point for creating outbound connections, accepting incoming connections, and setting up your connection event handlers.
在Device文档中,它继续声明.status()方法:
Returns the status of the device.
此处的密钥位于代码段中:
Twilio.Device.incoming(function(conn) {
console.log(conn.parameters.From);
conn.status // => "pending"
conn.accept();
conn.status // => "connecting"
});
现在关键是要记住,当您在浏览器中进行出站呼叫时,会使用Device.incoming:
The Device.incoming handler function is called when an incoming event is fired.
This is triggered whenever an incoming connection from an outbound REST call or a TwiML <Dial> to this device is made.
使用上面的代码片段,我能够检查
conn.status
连接&#34;当连接转换到打开状态和&#34;打开&#34;一旦拨打电话就接听了电话。因此,我可以设置一个标志,并在收到外拨电话后记录。这是使用的TwiML:
<Response>
<Dial callerId="+1888XXXXXXX">
{{INSERT PHONE NUMBER HERE}}
</Dial>
</Response>
以下是设备规范和一般twilio.js库的文档:
http://www.twilio.com/docs/client/device
和
http://www.twilio.com/docs/client/twilio-js
如果您有任何其他问题,请与我们联系!
感谢您的时间,