Asterisk - sip_parse_nat_option:nat = yes已弃用,请使用nat = force_rport,comedia

时间:2014-04-16 02:43:53

标签: asterisk

我安装了Asterisk 11并收到此错误。我更改了sip.conf并仍然看到星号调试模式的错误日志。

星号日志

[Apr 16 20:43:05] WARNING[18538]: sip/config_parser.c:812 sip_parse_nat_option: nat=yes is deprecated, use nat=force_rport,comedia instead
[Apr 16 20:43:11] WARNING[18538]: sip/config_parser.c:812 sip_parse_nat_option: nat=yes is deprecated, use nat=force_rport,comedia instead
[Apr 16 20:43:11] WARNING[18538]: sip/config_parser.c:812 sip_parse_nat_option: nat=yes is deprecated, use nat=force_rport,comedia instead
[Apr 16 20:43:11] WARNING[18538]: sip/config_parser.c:812 sip_parse_nat_option: nat=yes is deprecated, use nat=force_rport,comedia instead
[Apr 16 20:43:11] WARNING[18538]: sip/config_parser.c:812 sip_parse_nat_option: nat=yes is deprecated, use nat=force_rport,comedia instead

sip.conf

nat=force_rport

但是,我需要使用 nat = yes 选项。有没有办法删除此错误消息?

2 个答案:

答案 0 :(得分:6)

nat = yes适用于星号版本10或更早版本。从星号11开始,nat = yes被删除。他们说nat = yes和nat = force_rport,comedia是相同的。但我认为两者都不同。

如果我们改为nat = force_rport,comedia的行为似乎没问题,除了NAT背后的外部用户。我们的服务器也支持NAT。

当外部NAT:ed用户呼入网络时,一切都按预期工作,但是当呼叫外部用户时,或当两个外部NAT:ed用户互相呼叫时,音频只有一种方式没有显示任何错误控制台。当改回nat = yes时,一切都会再次起作用。

通过查看sip / config_parser.c的源代码,似乎差异的原因是当使用sip = yes时,auto_force_rport和auto_comedia被清除。但是,使用force_rport,comedia时,不会清除自动等效项。

nat = yes在新的Asterisk中已弃用,因此请使用nat = force_rport,comedia。 nat = yes或nat = force_rport,comedia是相同的。

答案 1 :(得分:1)

在这个星号版本中,这似乎是bug

如果您从源代码编译asterisk,那么好消息是有一个patch可以修复它。