使用Twilio通过Cisco SPA504G IP电话拨打/接听电话

时间:2016-02-28 18:57:32

标签: twilio sip voip

希望通过Twilio使用我们的思科SPA504G IP电话拨打电话。我们有4条电话线/号码和Twilio,我们希望用它们在实体电话上拨打和接听电话。

编辑问题:

我在这里发现了一篇有趣的帖子:https://ertw.com/blog/2013/11/05/using-an-ip-phone-with-twilio/

这是我的步骤,以便让手机响铃,但我听不到声音:/

  1. 我刚刚买了:http://www.amazon.com/Grandstream-GXP1620-Medium-Business-Device/dp/B00VUU8EZM

  2. 将手机连接到我的路由器。我端口转发10000-20000范围内的所有流量到手机。我也是端口转发端口5060到手机。

  3. enter image description here

    1. 上传以下xml文件:
    2. <Response>
      <Say>Testing</Say>
      <Dial>
          <Sip>
              sip:line1@24.51.221.98
          </Sip>
      </Dial>
      </Response>
      

      可以在http://antnam.com/voip.xml

      找到
      1. 我打电话给我的互联网提供商,现在我有一个静态IP地址,因此24.51.221.98永远不会改变。

      2. 我配置了我的twilio号码(855)804-0420来执行GET @ http://antnam.com/voip.xml

      3. enter image description here

        1. 当我拨打(855)804-0420时,我可以听到连接到我的路由器(voip phone)的手机铃声!好消息我可以拨打我在第1步购买的手机!

        2. 接听电话后,我无法听到声音:/。我可能做错了什么?

        3. 总之,一切都很好,我只是听不到任何声音。好像呼叫是静音的。我错过了打开更多端口吗?

2 个答案:

答案 0 :(得分:3)

听起来这可能只是一个NAT遍历问题;如果是,请移动或删除此问题,因为这只有在您编程此客户端时才有意义。有很多关于这个问题的信息(例如here是一篇很棒的文章,作为我google“voip nat traversal”时的第一个结果,但是这里有一个快速摘要:

为什么NA​​T导致VoIP出现问题

大多数VoIP协议在一个端口上使用数据流(例如在这种情况下为5060)来协商连接信息,其中包括用于接收音频/ RTP流量的套接字(IP地址和端口);有关套接字协商的两件事可能是意料之外的事情:

  1. 它可以是任何IP地址和端口组合,而不仅仅是VoIP设备本身的组合。因此,您可能拥有一个VoIP服务器,该服务器在另一个不属于SIP对话框的主机上协商套接字,并且可能位于NAT后面
  2. 协商在OSI应用层(第7层)完成,因此通常不受NAT流程的影响,该流程在第3层和第4层运行
  3. 如何诊断因NAT而丢失的音频

    如果您能够获取数据包捕获(理想情况下,在WAN和LAN端口上,以便您可以在NAT之前和之后看到您的VoIP设备的流量),您可以看到问题在于:只查找包含SDP的数据包有效载荷(例如,如果您在UDP 5060上进行SIP,只需对该端口进行过滤,您将看到包含SDP有效载荷的INVITE请求和200个OK响应);向下钻取到c(连接信息)和m(媒体描述)行,它们应如下所示:

    c=IN IP4 192.168.1.114
    m=audio 6094 RTP/AVP 0 8 101
    

    如果您看到WAN端口出现类似内容,则表示您的VoIP设备要求在192.168.1.114:6094上发送音频; IP地址是私人地址,不能通过互联网路由;该端口只是我随机挑选的端口,但您看到的端口需要打开并转发到您的设备

    如何解决

    这个问题有各种各样的解决方案,这些解决方案都归结为将您的设备提供的私有IP地址重写为您的设备的流量正在NAT上的公共IP地址,以便在远程设备解析时SDP中的连接信息行,它具有一个有效的,可公共路由的IP地址,用于发送音频流量,以及一个NAT设备NAT端口。有时VoIP设备本身可以处理重写(例如,你可以静态告诉设备在其配置中它的公共IP是什么,或者它可以从像STUN这样的协议发现它),有时重写是由防火墙/路由器完成的。正在做NAT(有各种各样的名称,如SIP ALG或SIP Fixup)。 不幸的是,由于各种路由器和防火墙的NAT实施方式存在差异,因此无法保证100%的解决方案无法正常工作。如果你在同一个防火墙后面有多个设备,那么重写它只适用于其中一个。

    在您的情况下:

    您提到了两种不同的VoIP设备,一种是Cisco SPA504G,另一种是Grandstream GXP1620。两个设备的数据表都说它们支持STUN,所以我开始查看其配置中的STUN设置或其他任何引用NAT遍历的内容。此外,请确保您转发到设备的端口是它使用的端口,这通常只是配置中的另一个项目,称为“RTP基本端口”或“RTP范围”

答案 1 :(得分:1)

我还要确保你使用公共眩晕服务器(例如stun.sipgate.net

)启用stun

注意:STUN在TCP和UDP端口3478上运行。

这是必需的,因为手机需要在sip数据包中发送外部IP。没有击晕它将发送内部IP,远端sip设备将尝试在那里发送数据。