Asterisk 星号+;纳特。要么被叫,要么被叫

Asterisk 星号+;纳特。要么被叫,要么被叫,asterisk,nat,Asterisk,Nat,我的星号设置如下: -我有2部grandstream GXP 2000手机连接到我的路由器 -我的小型linux服务器(带星号)也连接到路由器 我有一个来自isp提供商的动态ip,但我注册了DynDNS 当我开始工作的时候,我可以打电话给别人和他们交谈。如果有人给我打电话,电话就会响,我能听到他们说话。他们听不见我说话。我发现这是因为directmedia/canreinvite设置。因此,我将其设置为: canreinvite=否 directmedia=否 现在,人们可以打电话给我,我可以回

我的星号设置如下: -我有2部grandstream GXP 2000手机连接到我的路由器 -我的小型linux服务器(带星号)也连接到路由器

我有一个来自isp提供商的动态ip,但我注册了DynDNS

当我开始工作的时候,我可以打电话给别人和他们交谈。如果有人给我打电话,电话就会响,我能听到他们说话。他们听不见我说话。我发现这是因为directmedia/canreinvite设置。因此,我将其设置为:

canreinvite=否 directmedia=否

现在,人们可以打电话给我,我可以回答。然而,由于这种变化,我可以给人们打电话,但他们一回答,我就听不到他们的声音,我只听到静电。当我删除我添加的两行时,一切都恢复到以前的状态

可能是什么问题?5060端口被转发到我的服务器,以及1000-2000 udp端口

问候,,
数字

首先,您可能应该阅读带有星号的sip.conf.sample文件。具体来说,请阅读NAT支持部分。canreinvite和directmedia(顺便说一句,它们是相同的设置)试图绕过星号,直接在涉及呼叫的UAs之间设置RTP流。因此,虽然该设置受NAT影响,但它不一定控制与NAT相关的通道驱动程序行为-因此,您仍然存在问题也就不足为奇了

如果不知道相关UAs是否正在发送rport,就很难确定您的设置应该是什么。也就是说,根据您的问题描述,您可能希望将[general]部分中的“nat”参数设置为:

nat = force_rport,comedia
; or, depending your version
nat = yes
请注意,您可以逐个设置nat,但出于安全原因,不鼓励这样做


此外,您可能还需要浏览extern*设置,例如externhost。

好的,为处于相同情况的其他人提供一些信息: -检查编解码器,确保Asterisk CLI(命令行界面)中没有错误。我犯了错误,但它起作用了,所以我不在乎。那是个错误 -升级至星号1.8 -设置directmedia=no -它的upd范围是10000到20000(我错过了一个0)


这一切都解决了这个问题。

我确实设置了nat设置,我正在使用externhost。我使用的编解码器设置为“disallow:all/allow:all”,我使用的是星号1.6Okay。然后,正如我所说的,如果没有看到SIP消息流量和SIP.conf,就没有任何方法可以回答这个问题,而不向您抛出大量随机信息,并看到哪些信息是正确的。您可能应该尝试在星号用户列表或#星号IRC频道上提出这个问题。对于关于系统配置等的多个查询,这些地方往往做得更好(另外,对于Asterisk的1.6.x版本,您还应该包括次要版本号-1.6.0和1.6.2之间有很大的差异)