1

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

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

当我开始时,我可以打电话给人们并与他们交谈。如果有人给我打电话,电话就会响起,我可以听到他们说话。他们听不到我的声音。我发现这是因为 directmedia / canreinvite 设置。所以我把它设置为:

canreinvite=否 直接媒体=否

现在,人们可以打电话给我,我可以接听。但是,由于这种变化,我可以打电话给人们,但只要他们接听,我就听不到他们的声音,我只听到静电。当我删除我添加的两行时,一切都恢复了以前的样子。

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

问候,数字

4

2 回答 2

0

首先,您可能应该阅读 Asterisk 提供的 sip.conf.sample 文件。具体来说,请阅读 NAT 支持部分。canreinvite 和 directmedia(顺便说一下,它们的设置相同)尝试绕过 Asterisk 在涉及呼叫的 UA 之间直接设置 RTP 流。因此,虽然该设置受 NAT 影响,但它并不一定控制通道驱动程序相对于 NAT 的行为 - 因此您仍然遇到问题也就不足为奇了。

在不知道相关 UA 是否正在发送 rport 的情况下,很难确定您的设置应该是什么。话虽如此,根据您的问题描述,您可能希望将 [general] 部分中的 'nat' 参数设置为:

nat = force_rport,comedia
; or, depending your version
nat = yes

请注意,您可以逐个对等地设置 nat,但出于安全原因,不鼓励这样做。

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

于 2012-06-09T15:31:16.083 回答
0

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

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

于 2012-06-19T11:23:23.777 回答