【问题标题】:conncetion asterisk from outside network via sip通过 sip 从外部网络连接星号
【发布时间】:2013-11-27 09:46:25
【问题描述】:

我在具有公共 IP 的服务器中有星号。我正在尝试通过 sip 电话(zoipar)从外部网络中添加星号。我已经在我的路由器上打开了端口 5060,这是星号 sip 连接的默认 udp 端口​​,我还为 rtp.conf 中定义的 rtp 打开了 10000-20000 端口。 当我试图从我的网络外部将我的软电话连接到星号服务器时,它显示注册超时,当我检查我的端口 5060 是否有任何命中时,它没有显示任何内容。 在我的服务器上 5060 正在运行

netstat -nlp | grep 5060

udp        0      0 0.0.0.0:5060  0.0.0.0:*  21768/asterisk

顺便说一句,我可以毫无问题地从本地网络连接。

【问题讨论】:

  • 由于您没有收集任何信息,请首先确保使用星号 cli sip debugtcpdump 从外部接收 sip 数据包,然后查看数据包以查看您从哪个 ip 接收,您可能想更改 sip.conf 中的 externipnat 配置
  • 如果您的计算机在 NAT 之后,您可能必须使用 STUN 服务器。启用 STUN 支持并在您的 SIP 电话中指定 STUN 服务器的主机名(或 IP)。
  • @Vahid 感谢您的建议 :),当我尝试使用 tcpdump 捕获 sip 数据包时,我只能看到来自本地机器的数据包,而不是来自外部机器的数据包。我已经根据示例给出了扩展程序。我无法从外部网络获取 sip 数据包可能是什么问题?
  • @pce 是的,我的电脑在 NAT 后面,我会尝试使用 STUN 服务器(我不知道那是什么),但我刚刚在 google 上找到了一些链接,我会尝试让你知道 :) 谢谢

标签: networking asterisk


【解决方案1】:

您需要将路由器上的传入流量从 SIP 和 RTP 转发到您的星号服务器,仅打开这些端口是不够的,您需要说明您的路由器将传入流量发送到这些端口的位置

【讨论】:

  • 谢谢,您能否指导我如何将传入流量转发到这些端口,因为我在过去 3-4 天内已尽我所能,我在 Google 上搜索了很多,但仍然找不到任何解决方案。当我尝试监控端口 5060 上的流量时,该端口没有流量,也没有生成日志或命中,其他端口工作正常,只是 5060 没有。
  • 我的路由器上也开了5060端口。
  • 一般都是在路由器端做的,你需要选择端口转发部分,至少在我的路由器上是这样调用的,输入范围选择5060UDP/10000-20000UDP,至少我能做到召回,并将流量转发到您的 Asterisk 机器 IP
  • 已经完成了,对我不起作用,我在我的机器上看不到任何流量日志..:(
  • 好的,让我们看看,你有什么类型的星号?它是从源代码编译的还是类似于 PIAF 的东西?是Linux服务器吗?我之前给你写了一个调试此类连接问题的常用方法。让我们看看你的星号服务器周围是什么,也许是防火墙?
【解决方案2】:

您需要设置 NAT。

本文将对您的情况有所帮助。

http://www.voip-info.org/wiki/view/Asterisk+sip+nat

【讨论】:

  • 感谢您的回答,但它没有用 :(,我在服务器的 udp 端口​​ 5060 上没有受到任何影响,所以我无法访问星号服务器。
【解决方案3】:

您需要登录到您的路由器并将端口转发到您的星号服务器内部 IP。

您还需要确保服务器上的防火墙设置正确,以允许端口进出您的服务器。

您可以在此处阅读有关 iptables 的更多信息:http://www.cyberciti.biz/tips/linux-iptables-examples.html

【讨论】:

    猜你喜欢
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-20
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    • 2012-02-05
    相关资源
    最近更新 更多