Networking 星号12.6//TURN//WebRTC//无音频
WebRTC安装程序正在本地网络上运行。它已经被转移到主机,不再工作了。我正在研究SDP,但我对网络和SIP的了解还不足以完全理解错误的发生 日志:Networking 星号12.6//TURN//WebRTC//无音频,networking,webrtc,asterisk,rtp,Networking,Webrtc,Asterisk,Rtp,WebRTC安装程序正在本地网络上运行。它已经被转移到主机,不再工作了。我正在研究SDP,但我对网络和SIP的了解还不足以完全理解错误的发生 日志: 完整的星号日志: (sip和rtp调试打开) reTURNServer.log: 架构: 星号PBX 12.6。 公共IP:213.xxx.xxx.178 私有IP:192.168.xxx.99 不在纳特后面。SIP为5060。它是实时启用、WebRTC配置、WebSockets on:8088/ws、TLS和SRTP启用和配置的。RTP从49
- 星号PBX 12.6。
- 公共IP:213.xxx.xxx.178
- 私有IP:192.168.xxx.99
- 不在纳特后面。SIP为5060。它是实时启用、WebRTC配置、WebSockets on:8088/ws、TLS和SRTP启用和配置的。RTP从49152到65535
- reTURNServer安装在同一Debian实例上,打开:3478,TLS打开:5349,STUN打开:5355
- 来自Dialogic的HMP 3运行良好。
- 不在纳特后面。与星号在同一网络上
- 公共IP:与此处通信无关,因为它使用内部网络与Asterisk通信
- 私有IP:192.168.xxx.100
- SIP为5060。RTP从49152到65535
- 我用这个PBX从很多SIP电话打了成功的电话
- WebRTC客户端是来自其演示站点的sipML5。
- 在纳特后面。与星号或HMP不在同一网络上
- 公共IP:213.xxx.xxx.210
- 私有IP:10.xxx.xxx.118
- 用户是“mySIPUser”,已成功注册到ws://213.xxx.xxx.178:8088/ws
- 浏览器是最新的Chrome浏览器(38)
TurnPort = 3478
TlsTurnPort = 5349
AltStunPort = 5355
TurnAddress = 213.xxx.xxx.178
AltStunAddress = 213.xxx.xxx.178
AuthenticationMode = 2
AuthenticationRealm = AsteriskREALM
NonceLifetime = 3600
AllocationPortRangeMin = 49152
AllocationPortRangeMax = 65535
DefaultAllocationLifetime = 600
MaxAllocationLifetime = 3600
MaxAllocationsPerUser = 0
TlsServerCertificateFilename = /etc/asterisk/keys/asterisk.pem
TlsTempDhFilename =
# leave blank if key is not encrypted
TlsPrivateKeyPassword = ********
# Logging Type: syslog|cerr|cout|file
LoggingType = file
# Logging level: NONE|CRIT|ERR|WARNING|INFO|DEBUG|STACK
LoggingLevel = DEBUG
LogFilename = /var/log/reTurnServer.log
LogFileMaxLines = 50000
# It is highly recommended that these values are NOT left at their
# default setting
LongTermAuthUsername = MyTURNLogin
LongTermAuthPassword = MyTURNPassword
# Must be true or false, default = false, not supported on Windows
Daemonize = true
# On UNIX it is normal to create a PID file
# if unspecified, no attempt will be made to create a PID file
#PidFile = /var/run/reTurnServer/reTurnServer.pid
防火墙:
*sudo iptables -L*
Chain INPUT (policy ACCEPT)
target prot opt source destination
fail2ban-ssh tcp -- anywhere anywhere multiport dports ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:sip
ACCEPT udp -- anywhere anywhere udp dpt:sip
ACCEPT tcp -- anywhere anywhere tcp dpt:sip-tls
ACCEPT udp -- anywhere anywhere udp dpt:sip-tls
ACCEPT tcp -- anywhere anywhere tcp dpt:omniorb
ACCEPT tcp -- anywhere anywhere tcp dpt:3478
ACCEPT udp -- anywhere anywhere udp dpt:3478
ACCEPT tcp -- anywhere anywhere tcp dpt:5349
ACCEPT tcp -- anywhere anywhere tcp dpt:hostmon
ACCEPT udp -- anywhere anywhere udp dpt:hostmon
ACCEPT tcp -- anywhere anywhere multiport dports webmin:20000
ACCEPT udp -- anywhere anywhere multiport dports 10000:20000
ACCEPT udp -- anywhere anywhere multiport dports 49152:65535
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain fail2ban-ssh (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
任何帮助都将不胜感激 上的200的SDP部分是OK的,您将看到一堆候选人。现在涉及到STUN/ICE协商,其中每一条路径都由呼叫的每一方进行测试。双方能够相互交谈的途径是确保RTP能够通过的途径 在网络路径的某个地方,数据包没有被适当地映射。您需要获取网络流量并检查STUN数据包以识别数据包流 检查企业防火墙他们的防火墙规则是什么。通常,企业需要开放,以接受转弯处的交通。尝试为WebRTC使用一些公共的google TURN服务器,看看它是否能让事情变得更好。所以我最终解决了这个问题。 TURN服务器需要有2个公共IP。
TurnAddress
和AltStunAddress
必须是两个不同的IP。
因此,reTURNServer.config的正确配置为:
TurnAddress = 213.xxx.xxx.178
AltStunAddress = 213.xxx.xxx.179
当然,客户端脚本必须通过
sip_服务器(“turn:turnuser@turnip,凭据:“turnpassword”
)如果您使用JsSIP或Sipml5。感谢Rapan的回答,我将对此进行投票,因为这是使用Wireshark(例如)放置跟踪的正确方法,并使用密集日志分析在正确的网络路径之前构建实际网络路径的映射。但这涉及到认真的网络理解。