2

各位开发者好...

我们已经对 Kamailio 进行了一周的测试,它运行良好...但是我们的一些朋友报告说他们无法使用他们的移动互联网连接到我们的服务器...并且似乎默认 SIP 端口被服务提供商阻止...

所以我们决定更改端口...我打开 kamailio.cfg 并添加了以下几行:

listen=tcp:_PUBLIC_IP_:32850
listen=udp:_PUBLIC_IP_:32850
listen=tls:_PUBLIC_IP_:32851
listen=tcp:127.0.0.1:32850
listen=udp:127.0.0.1:32850
listen=tls:127.0.0.1:32851
listen=tcp:10.19.0.5:32850
listen=udp:10.19.0.5:32850
listen=tls:10.19.0.5:32851

port=32850
port=32851

现在客户端抛出错误“403 Not relaying”...我尝试启用调试以查看 cfgtrace...未检测到错误但是当我注释掉上面的行时,(使用默认 cfg)一切正常

我在哪里做错了什么?

提前致谢 :)

4

2 回答 2

3

我已发送有关此问题的电子邮件,并收到了此问题的解决方案..

很可能 r-uri 没有端口,被认为是 5060,但是,如果 kamailio 没有在端口 5060 上侦听,它不会认为没有端口的域/ips 是针对它的,所以它会尝试将其转发到端口 5060 .

你最终可以同时监听 5060 端口和另一个更高的端口。或者添加 alias=ip:5060 参数。

干杯,
丹尼尔

于 2015-12-17T07:31:02.023 回答
2

如果您出于安全原因更改默认端口,那么配置 kamailio 以侦听 2 个端口(包括默认端口)是没有意义的,正如他们在解决方案中提到的那样。我通过在 REGISTER 部分添加以下行来解决这个问题。我的 kamailio 充当代理,我的 sip 客户端正在发送没有端口号的注册消息。所以kamailio发回“403不中继”。

我关闭了 5060 端口,因此任何不知道我的新端口号的外部客户端都无法将 SIP 消息发送到默认端口。如果 SIP 消息中存在空白端口或 5060 端口并在新端口上接收,那么我将更改 $ru,如下所示。

if (($ru = "sip:$rU@my_kamailio_IP:5060" )||($ru = "sip:$rU@my_kamailio_IP"))
{
  $ru = "sip:$rU@my_kamailio_IP:NewPort";
}
于 2018-02-13T18:03:25.240 回答