獨立星號上的 WebRTC - 無音頻

獨立星號上的 WebRTC - 無音頻

在與 Asterisk for WebRTC 鬥爭了幾週後,我決定將我的問題放到這個論壇上。我的問題如下:

我無法從 WebRTC 向 WebRTC 用戶端取得音訊。我在 LAN 環境中工作。

情況 - 使用獨立的 Asterisk 伺服器從 JSSIP 呼叫 JSSIP(同一客戶端)。

問題

從 6001(JSSIP) 撥打 6002(JSSIP) 時完全沒有聲音。一段時間後,一些 RTP 封包已發送,但未收到。 RTP 封包出現在日誌檔案中約 40 秒後,通話將終止,無需任何人為操作。

兩個客戶端都在同一台電腦上,都使用Google瀏覽器,其中一個以隱身模式運作。我們還使用兩台不同的筆記型電腦進行了測試,但這給出了相同的結果。

有人知道導致這個問題的原因嗎?我也關注了這個線程:http://forums.digium.com/viewtopic.php?f=1&t=90167,但這對我不起作用。您可以在下面找到日誌檔案和更多資訊。

我試圖解決這個問題,因為有多個關於同一問題的帖子。

  • 在代理後面執行 Asterisk (oversip)
  • 使用 webrtc2sip,開啟和關閉媒體編碼
  • 使用帶有 RTCwebbreaker 的 SipML5,停用視頻
  • 設定星號公共(使用 WAN 位址和連接埠轉送至伺服器
  • 在 CentOS 上執行 Asterisk
  • 二手火狐瀏覽器

星號伺服器:

  • 作業系統: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.conf

[general]
rtpstart=10000
rtpend=20000
icesupport=yes
stunaddr=74.125.132.127:19302

http.conf

[general]
enabled=yes
enablestatic=no
bindaddr=0.0.0.0
bindport=8088

sip設定檔

[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

擴展.conf

[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 設定

另外,可能值得嘗試在公用位址上執行 asterisk(或仔細檢查其所有私人 ip/公用 ip/NAT 配置),因為預設情況下它會嘗試在 SIP 信令中偵測並使用您的公用 IP。

相關內容