Nachdem ich nun einige Wochen mit Asterisk für WebRTC zu kämpfen hatte, beschloss ich, mein Problem in dieses Forum zu stellen. Mein Problem ist wie folgt:
Ich bekomme kein Audio von WebRTC zu WebRTC-Clients. Ich arbeite in einer LAN-Umgebung.
Situation - Anruf von JSSIP zu JSSIP (gleicher Client) mit einem eigenständigen Asterisk-Server.
Problem
Bei einem Anruf von 6001 (JSSIP) bis 6002 (JSSIP) ist überhaupt kein Audio zu hören. Nach einer Weile werden einige RTP-Pakete gesendet, aber nicht empfangen. Ungefähr 40 Sekunden nachdem die RTP-Pakete in den Protokolldateien angezeigt werden, wird der Anruf ohne menschliches Handeln beendet.
Beide Clients befinden sich auf demselben Computer, beide auf Google Chrome, auf dem einer im Inkognito-Modus ausgeführt wird. Wir haben auch mit 2 verschiedenen Laptops getestet, aber dies ergibt die gleichen Ergebnisse.
Weiß jemand, was dieses Problem verursacht? Ich bin auch diesem Thread gefolgt: http://forums.digium.com/viewtopic.php?f=1&t=90167 , aber das hat bei mir nicht funktioniert. Unten finden Sie die Protokolldateien und weitere Informationen.
Was ich versucht habe, um dieses Problem zu lösen, aufgrund mehrerer Beiträge über das gleiche Problem.
- Führen Sie Asterisk hinter einem Proxy aus (Oversip)
- Verwendet webrtc2sip mit ein- und ausgeschalteter Mediencodierung
- Verwendet SipML5 mit RTCwebbreaker, deaktiviertes Video
- Setzen Sie das Sternchen public (unter Verwendung der WAN-Adresse und der Portweiterleitung zum Server)
- Führen Sie Asterisk unter CentOS aus
- Gebraucht FireFox
Asterisk-Server:
- Betriebssystem: Ubuntu 14.04
- Version: Asterisk 13.2 und FreePBX 12
- IP-Adresse: 192.168.178.203
- Websocket-Port: 8088
- SIP-Port: 5060
Klient:
- Betriebssystem: Windows 8.1
- Browser: Chrome Version 40.0.2214.115 m
- IP-Adresse: 192.168.178.18
Konfigurationen:
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.conf
[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
extensions.conf
[internal]
exten => 6001,1,Dial(SIP/6001)
exten => 6002,1,Dial(SIP/6002)
Protokollierung
Vollständiges Serverprotokoll hier: http://pastebin.com/qHwzXbbd
Ein Teil der Protokollierung des Servers mit aktiviertem sip- und rtp-Debugging.
<------------>
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
Ich hoffe, jemand kann mich in eine Richtung weisen oder dass jemand auf dasselbe Problem gestoßen ist und bereit ist, sein Wissen zu teilen.
Für weitere Informationen wenden Sie sich bitte an mich.
Vielen Dank im Voraus.
Antworten:
Die Konfiguration und der Anrufaufbau sehen in Ordnung aus. Die 200 OK Antwort wäre sehr wichtig zu sehen. Außerdem sollten Sie webrtc-Protokolle im Browser aktivieren und dies auch überprüfen (oder hier senden), damit wir sehen können, wohin das (DTLS-codierte) SRTP tatsächlich gesendet wird.
Hier finden Sie eine detaillierte Beschreibung des WebRTC-Setups in Asterisk 13 .
Es kann sich auch lohnen, zu versuchen, ein Sternchen für eine öffentliche Adresse auszuführen (oder die gesamte Konfiguration der privaten IP / öffentlichen IP / NAT zu überprüfen), da standardmäßig versucht wird, Ihre öffentliche IP-Adresse in der SIP-Signalisierung zu erkennen und zu verwenden.
quelle