我的星号设置如下: - 我有2台Grandstream GXP 2000手机连接到我的路由器 - 我的小型linux服务器(带星号)也连接到路由器
我的isp提供程序中有动态IP,但我注册了DynDNS
当我开始时,我可以打电话给别人并与他们交谈。如果有人打电话给我,电话会响,我可以听到他们说话。他们听不到我的声音。我发现这是因为directmedia / canreinvite设置。所以我把它设置为:
canreinvite =无 直接媒体=无
现在,人们可以打电话给我,我可以回答。然而,由于这种变化,我可以给人们打电话,但是一旦他们回答,我就听不到他们,我只会听到静电。当我删除我添加的两行时,一切都恢复原状。
可能是什么问题? 5060端口被转发到我的服务器,以及1000 - 2000 udp rang。
此致 数字
答案 0 :(得分:0)
首先,您应该阅读随Asterisk提供的sip.conf.sample文件。具体来说,请阅读NAT SUPPORT部分。 canreinvite和directmedia(顺便说一下,它们是相同的设置)尝试直接在参与呼叫的UA之间建立RTP流,绕过Asterisk。因此,虽然该设置受NAT的影响,但它并不一定能控制关于NAT的通道驱动程序行为 - 因此,您仍然遇到问题并不奇怪。
在不知道有问题的UAs是否正在发送rport的情况下,很难确定您的设置应该是什么。话虽如此,根据您的问题描述,您可能希望将[general]部分中的'nat'参数设置为:
nat = force_rport,comedia
; or, depending your version
nat = yes
请注意,您可以逐个对等地设置nat,但出于安全原因,不鼓励这样做。
此外,您可能还需要浏览extern *设置,例如externhost。
答案 1 :(得分:0)
好的,在相同情况下其他人的一些信息: - 检查您的编解码器,确保在Asterisk CLI(命令行界面)中没有错误。我有错误,但它有效,所以我不在乎。那是个错误 - 升级到星号1.8 - 设置directmedia = no - 它的更新范围是10000到20000(我错过了0)。
这一切都解决了这个问题。