在为 WebRTC 苦苦挣扎了几周后,我决定将我的问题发布到这个论坛上。我的问题如下:
我无法将音频从 WebRTC 传输到 WebRTC 客户端。我在 LAN 环境中工作。
情况 - 使用独立的 Asterisk 服务器从 JSSIP 呼叫到 JSSIP(同一客户端)。
问题
从 6001(JSSIP) 拨打 6002(JSSIP) 时,根本没有音频。过了一会儿,一些 RTP 数据包被发送,但没有被接收。在日志文件中显示 RTP 数据包后约 40 秒,通话被终止,没有任何人为操作。
两个客户端都在同一台计算机上,都使用 Google Chrome,其中一个以隐身模式运行。我们还用两台不同的笔记本电脑进行了测试,但结果相同。
有人知道是什么原因导致了这个问题吗? 我也关注了这个帖子:http://forums.digium.com/viewtopic.php?f=1&t=90167,但这对我不起作用。您可以在下面找到日志文件和更多信息。
我尝试解决这个问题,因为关于同一问题有多个帖子。
- 在代理后面运行 Asterisk(oversip)
- 使用 webrtc2sip,开启和关闭媒体编码
- 使用带有 RTCwebbreaker 的 SipML5,禁用视频
- 设置星号公共(使用 WAN 地址和端口转发到服务器
- 在 CentOS 上运行 Asterisk
- 使用过 FireFox
星号服务器:
- 操作系统:Ubuntu 14.04
- 版本:Asterisk 13.2 和 FreePBX 12
- IP地址:192.168.178.203
- Websocket 端口:8088
- SIP 端口:5060
客户:
- 操作系统:Windows 8.1
- 浏览器:Chrome 版本 40.0.2214.115 m
- IP地址:192.168.178.18
配置:
rtp配置文件
[general]
rtpstart=10000
rtpend=20000
icesupport=yes
stunaddr=74.125.132.127:19302
http配置文件
[general]
enabled=yes
enablestatic=no
bindaddr=0.0.0.0
bindport=8088
配置文件
[general]
port=5060
bindaddr=192.168.178.203
transport=ws,wss,udp
[6001]
host=dynamic
secret=6001
context=internal
type=friend
transport=ws,wss,udp
encryption=yes
avpf=yes
force_avp=yes
icesupport=yes
directmedia=outgoing
disallow=all
allow=opus,ulaw,vp8
dtlsenable=yes
dtlsverify=fingerprint
dtlscertfile=/etc/asterisk/keys/default.pem
dtlscafile=/etc/asterisk/keys/ca.crt
dtlssetup=actpass
nat=no
[6002]
host=dynamic
secret=6002
context=internal
type=friend
transport=ws,wss,udp
encryption=yes
avpf=yes
force_avp=yes
icesupport=yes
directmedia=outgoing
disallow=all
allow=opus,ulaw,vp8
dtlsenable=yes
dtlsverify=fingerprint
dtlscertfile=/etc/asterisk/keys/default.pem
dtlscafile=/etc/asterisk/keys/ca.crt
dtlssetup=actpass
nat=no
扩展配置文件
[internal]
exten => 6001,1,Dial(SIP/6001)
exten => 6002,1,Dial(SIP/6002)
日志记录
完整服务器日志在此:http://pastebin.com/qHwzXbbd
开启 sip 和 rtp 调试的服务器部分日志记录。
<------------>
Scheduling destruction of SIP dialog '0vreoff3cjblcgubthf1df' in 32000 ms (Method: REGISTER)
<--- SIP read from WS:192.168.178.18:55387 --->
INVITE sip:[email protected]:5060 SIP/2.0
Via: SIP/2.0/WS 1t4mt0723j5t.invalid;branch=z9hG4bK7239492
Max-Forwards: 69
To: <sip:[email protected]:5060>
From: "6001" <sip:[email protected]:5060>;tag=lq9ascrlba
Call-ID: sf6m6uln2amn2lhuuvia
CSeq: 7253 INVITE
X-Can-Renegotiate: undefined
Contact: <sip:[email protected];transport=ws;ob>
Content-Type: application/sdp
Session-Expires: 90
Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS
Supported: timer,ice,outbound
User-Agent: JsSIP 0.6.18
Content-Length: 4710
v=0
o=- 5530171873894353207 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS bEWKeIMVkeE6PTP0lgDPhtJoGfmy7MeXYx0v
m=audio 62227 RTP/SAVPF 111 103 104 9 0 8 106 105 13 126
c=IN IP4 192.168.12.1
a=rtcp:62227 IN IP4 192.168.12.1
a=candidate:3708951358 1 udp 2122129151 192.168.12.1 62227 typ host generation 0
a=candidate:3708951358 2 udp 2122129151 192.168.12.1 62227 typ host generation 0
a=candidate:3242410012 1 udp 2122063615 25.124.74.215 62228 typ host generation 0
a=candidate:3242410012 2 udp 2122063615 25.124.74.215 62228 typ host generation 0
a=candidate:1867667642 1 udp 2121998079 192.168.254.1 62229 typ host generation 0
a=candidate:1867667642 2 udp 2121998079 192.168.254.1 62229 typ host generation 0
a=candidate:1340102981 1 udp 2121932543 192.168.178.18 62230 typ host generation 0
a=candidate:1340102981 2 udp 2121932543 192.168.178.18 62230 typ host generation 0
a=candidate:2475812814 1 tcp 1518149375 192.168.12.1 0 typ host tcptype active generation 0
a=candidate:2475812814 2 tcp 1518149375 192.168.12.1 0 typ host tcptype active generation 0
a=candidate:2411773164 1 tcp 1518083839 25.124.74.215 0 typ host tcptype active generation 0
a=candidate:2411773164 2 tcp 1518083839 25.124.74.215 0 typ host tcptype active generation 0
a=candidate:567387210 1 tcp 1518018303 192.168.254.1 0 typ host tcptype active generation 0
a=candidate:567387210 2 tcp 1518018303 192.168.254.1 0 typ host tcptype active generation 0
a=candidate:23307701 1 tcp 1517952767 192.168.178.18 0 typ host tcptype active generation 0
a=candidate:23307701 2 tcp 1517952767 192.168.178.18 0 typ host tcptype active generation 0
a=ice-ufrag:KUz2P70p6fRKTNhU
a=ice-pwd:uSSZZuV537KDmpbtSzusDKLK
a=ice-options:google-ice
a=fingerprint:sha-256 E8:85:6A:27:CF:E0:50:A7:4B:E5:4D:25:70:76:D4:F1:5D:8D:79:93:40:4B:2E:6B:40:1D:F0:35:B9:38:56:E3
a=setup:actpass
a=mid:audio
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=sendrecv
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=fmtp:111 minptime=10
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
a=rtpmap:9 G722/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:106 CN/32000
a=rtpmap:105 CN/16000
a=rtpmap:13 CN/8000
a=rtpmap:126 telephone-event/8000
a=maxptime:60
a=ssrc:831281522 cname:+qS2XmtyXWZX3uFI
a=ssrc:831281522 msid:bEWKeIMVkeE6PTP0lgDPhtJoGfmy7MeXYx0v dc973b27-9b15-4cdd-bbf8-80807c4d3b1d
a=ssrc:831281522 mslabel:bEWKeIMVkeE6PTP0lgDPhtJoGfmy7MeXYx0v
a=ssrc:831281522 label:dc973b27-9b15-4cdd-bbf8-80807c4d3b1d
m=video 62227 RTP/SAVPF 100 116 117 96
c=IN IP4 192.168.12.1
a=rtcp:62227 IN IP4 192.168.12.1
a=candidate:3708951358 1 udp 2122129151 192.168.12.1 62227 typ host generation 0
a=candidate:3708951358 2 udp 2122129151 192.168.12.1 62227 typ host generation 0
a=candidate:3242410012 1 udp 2122063615 25.124.74.215 62228 typ host generation 0
a=candidate:3242410012 2 udp 2122063615 25.124.74.215 62228 typ host generation 0
a=candidate:1867667642 1 udp 2121998079 192.168.254.1 62229 typ host generation 0
a=candidate:1867667642 2 udp 2121998079 192.168.254.1 62229 typ host generation 0
a=candidate:1340102981 1 udp 2121932543 192.168.178.18 62230 typ host generation 0
a=candidate:1340102981 2 udp 2121932543 192.168.178.18 62230 typ host generation 0
a=candidate:2475812814 1 tcp 1518149375 192.168.12.1 0 typ host tcptype active generation 0
a=candidate:2475812814 2 tcp 1518149375 192.168.12.1 0 typ host tcptype active generation 0
a=candidate:2411773164 1 tcp 1518083839 25.124.74.215 0 typ host tcptype active generation 0
a=candidate:2411773164 2 tcp 1518083839 25.124.74.215 0 typ host tcptype active generation 0
a=candidate:567387210 1 tcp 1518018303 192.168.254.1 0 typ host tcptype active generation 0
a=candidate:567387210 2 tcp 1518018303 192.168.254.1 0 typ host tcptype active generation 0
a=candidate:23307701 1 tcp 1517952767 192.168.178.18 0 typ host tcptype active generation 0
a=candidate:23307701 2 tcp 1517952767 192.168.178.18 0 typ host tcptype active generation 0
a=ice-ufrag:KUz2P70p6fRKTNhU
a=ice-pwd:uSSZZuV537KDmpbtSzusDKLK
a=ice-options:google-ice
a=fingerprint:sha-256 E8:85:6A:27:CF:E0:50:A7:4B:E5:4D:25:70:76:D4:F1:5D:8D:79:93:40:4B:2E:6B:40:1D:F0:35:B9:38:56:E3
a=setup:actpass
a=mid:video
a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=recvonly
a=rtcp-mux
a=rtpmap:100 VP8/90000
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=rtcp-fb:100 goog-remb
a=rtpmap:116 red/90000
a=rtpmap:117 ulpfec/90000
a=rtpmap:96 rtx/90000
a=fmtp:96 apt=100
<------------->
--- (15 headers 89 lines) ---
Using INVITE request as basis request - sf6m6uln2amn2lhuuvia
Found peer '6001' for '6001' from 192.168.178.18:55387
<--- Reliably Transmitting (no NAT) to 192.168.178.18:5060 --->
SIP/2.0 401 Unauthorized
Via: SIP/2.0/WS 1t4mt0723j5t.invalid;branch=z9hG4bK7239492;received=192.168.178.18
From: "6001" <sip:[email protected]:5060>;tag=lq9ascrlba
To: <sip:[email protected]:5060>;tag=as6ed0dbe4
Call-ID: sf6m6uln2amn2lhuuvia
CSeq: 7253 INVITE
Server: FPBX-12.0.37(13.431072M)
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="263201da"
Content-Length: 0
<------------>
10:57:50.828 utsx0x7f967800 ...STUN client transaction created
10:57:50.828 utsx0x7f967800 ...STUN sending message (transmit count=1)
10:57:50.828 icess0x7f970c0 ..Check 7: [2] 192.168.178.203:18141-->192.168.178.18:62230: state changed from Frozen to In Progress
10:57:50.839 utsx0x7f967800 STUN sending message (transmit count=2)
10:57:50.839 utsx0x7f967800 STUN sending message (transmit count=2)
10:57:50.850 icess0x7f970c0 Starting checklist periodic check
10:57:50.851 icess0x7f970c0 Starting checklist periodic check
10:57:50.861 utsx0x7f967800 STUN sending message (transmit count=2)
10:57:50.862 utsx0x7f967800 STUN sending message (transmit count=2)
10:57:53.770 stuse0x7f96fc0 ..TX 80 bytes STUN message to 192.168.178.18:62261:
--- begin STUN message ---
STUN Binding success response
Hdr: length=60, magic=2112a442, tsx_id=6d4d564652372f537652314a
Attributes:
XOR-MAPPED-ADDRESS: length=8, IPv4 addr=192.168.178.18:62261
SOFTWARE: length=12, value="pjnath-2.3.0"
MESSAGE-INTEGRITY: length=20, data=0204b9b98f375d27e045e50bd034f1ce99288e06
FINGERPRINT: length=4, value=1908015627 (0x71ba020b)
--- end of STUN message ---
10:57:55.586 utsx0x7f96f800 .....STUN client transaction created
10:57:55.586 utsx0x7f96f800 .....STUN sending message (transmit count=1)
10:57:55.586 icess0x7f96fc0 ....Check 7: [2] 192.168.178.203:13265-->192.168.178.18:62253: state changed from Frozen to In Progress
10:57:55.586 icess0x7f96fc0 .Performing delayed triggerred check for component 1
10:57:55.586 icess0x7f96fc0 ..Triggered check for check 6 not performed because it's in progress. Retransmitting
10:57:55.586 utsx0x7f96f801 ...STUN sending message (transmit count=1)
10:57:55.586 icess0x7f96fc0 .Performing delayed triggerred check for component 2
10:57:55.586 icess0x7f96fc0 ..Triggered check for check 7 not performed because it's in progress. Retransmitting
10:58:41.301 icess0x7f96fc0 .Triggered check for check 7 not performed because it's completed
10:58:41.301 icess0x7f96fc0 ..Check 7 is successful and nominated
Sent RTP packet to 192.168.178.18:62249 (via ICE) (type 00, seq 020194, ts 004320, len 000160)
Sent RTP packet to 192.168.178.18:62249 (via ICE) (type 00, seq 020195, ts 004480, len 000160)
10:58:41.509 stuse0x7f970c0 !Response cache deleted
10:58:41.509 stun_session.c tdata 0x7f96fc02cac8 destroy request, force=0, tsx=(nil)
Sent RTP packet to 192.168.178.18:62249 (via ICE) (type 00, seq 020204, ts 005920, len 000160)
10:58:41.519 stuse0x7f970c0 Response cache deleted
我希望有人能给我指明方向,或者有人遇到了同样的问题并愿意分享他们的知识。
欲了解更多信息,请随时询问我。
先感谢您。
答案1
配置和呼叫设置看起来不错。200 OK 响应非常重要。此外,您还应该在浏览器中启用 webrtc 日志并检查(或在此处提交),以便我们可以看到它实际发送(DTLS 编码)SRTP 的位置。
以下是关于Asterisk 13 中的 WebRTC 设置。
另外,尝试在公共地址上运行星号也可能值得(或仔细检查它的所有私有 IP/公共 IP/NAT 配置),因为默认情况下它会尝试在 SIP 信令中检测并使用您的公共 IP。