2014-07-13 126 views
0

我想为我们的应用程序开发浏览器到浏览器的调用函数,但是直到代码发布到生产环境中,所有浏览器都在内部网络上运行mydomain.local地址。我可以拨打电话并获得试用信息,但我认为呼叫没有通过目标浏览器,因为它没有在公共站点上运行。有没有办法解决?我认为这是一种常见的情况。Twilio在开发环境中

UPDATE:详细说明:这是用于在网页A客户服务用户呼叫一个客户网页B1(与Twilio连接代码)和B2(与TwiML如在教程中描述):

A(客户服务侧)

call: function() { 
     var phone = { 'PhoneNumber': ' 444e0d6c161644a6a27a305332a4cbbd') }; 
     Twilio.Device.connect(phone); 
      $(".call").hide(); 
      $(".hang-up").show(); 
     }, 

B1:(客户页) .... capability.AllowClientIncoming( “444e0d6c161644a6a27a305332a4cbbd”); ....

B2:(从客户页推出) 444e0d6c161644a6a27a305332a4cbbd

我VoiceURL被配置为指向B2;

两个A & B都运行Twilio设置代码,调用“ready”函数。

在客户服务端触发呼叫方法时,Twilio演示消息播放并在“按任意键继续”后挂断;

B1永远不会收到来电。同样,拨打我的Twilio电话号码只是播放默认演示信息,似乎并未连接到网页。

该文档相当有用,它确实觉得有一块失踪。

回答

1

Twilio福音传教士在这里。

这可能是因为您的防火墙阻止了入站ports needed for Twilio Client。如果是这种情况,缺少开放它们,我不相信有太多可以做到的事情。

在开始弄乱防火墙之前,我会首先仔细检查Twilio Client的第二个实例是否在连接到Twilio时通过处理error function来加载,并且我还会打开浏览器开发者控制台并使其确保没有报告JavaScript错误。当您调用setup函数让Twilio Client将调试信息记录到浏览器控制台时,您还可以包含'debug'参数。

最后,我将验证用于将呼叫转移到该客户端的TwiML是否正确生成,其中包括第二个客户端正在注册的正确名称的<Client>名词。

希望有所帮助。

+0

谢谢,德文。我没有发现那些端口是什么端口的文档。你是说,如果接收方客户端使用twilio注册并且端口是开放的,那么它应该可以工作,即使在专用网络中也是如此?我在哪里可以找到关于哪些端口需要打开的信息。我一定会先做其他步骤。谢谢! – sydneyos

+0

我已经更新了我的答案,包含一个指向Twilio Client端口详细信息的FAQ的链接 –

+0

非常感谢。还有一个问题,就是让我明白这是否可能。当浏览器在名称X下注册时执行以下操作:AllowClientIncoming(X),即使它在192.168.xx或developername.domain.local上运行,只要端口处于打开状态并且使用生成的令牌进行了设置调用凭借“传入”功能,Twilio应该能够将来电转接到它。正确? – sydneyos