问题
don't work example in safari
https://github.com/Kurento/kurento-tutorial-node/tree/master/kurento-one2many-call
In chrome, everything is fine.
Safary does not send ice candidates in view mode. Presenter mode is ok
====================
update
In the Front (index.js)
The event onOfferViewer is always executed
onIceCandidate – never executed
Connection from Front to the node
var ws = new WebSocket('wss://' + location.host + '/one2many');
On KMS a Turn doesn’t turn on, but a Stun is configured. I can broadcasting from Safari, but I cannot watching on it
Look at kurento utils deeper
2 Sturm servers are chosen, before WebRtcPeer initialization
iceServers: Array (2) 0 {username: undefined, credential: undefined, url: "stun:stun.l.google.com:19302", urls: ["stun:stun.l.google.com:19302"]}
1 {username: undefined, credential: undefined, url: "stun:stun.voipbuster.com", urls: ["stun:stun.voipbuster.com"]}
After RTCPeerConnection is created
After Process answer is executed
I think the next step has to be in a function addEventListener
pc.addEventListener('icecandidate', function (event) {…}
In Chrome in the function addEventListener a callback is executed but for Safari never.
I can assume that the candidates come before the subscription is taking place, but there is no evidence, and I don’t understand why the presenter works fine.
detail
I started broadcasting in the presenter mode in the Safari
The Safari version - 13604.3.5 (MacOs - 11.0.1)
The Safari options
Old api - Enabled
Ice restrictions - Disabled
The Bower’s dependencies
"dependencies": {
"adapter.js": "v0.2.9",
"bootstrap": "~3.3.0",
"ekko-lightbox": "~3.3.0",
"demo-console": "1.5.1",
"kurento-utils": "master"
}
The package.json structure
{
"name": "kurento-one2many-call",
"version": "6.7.3-dev",
"private": true,
"scripts": {
"postinstall": "cd static && bower install"
},
"dependencies": {
"express": "~4.12.4",
"minimist": "^1.1.1",
"ws": "~1.0.1",
"kurento-client": "Kurento/kurento-client-js"
},
"devDependencies": {
"bower": "^1.4.1"
}
}
Output of Safari logs
Output of Safari logs
[Log] Browser does not appear to be WebRTC-capable (adapter.js, line 34)
[Debug] constraints: {"offerToReceiveAudio":true,"offerToReceiveVideo":true} (kurento-utils.js, line 268)
[Debug] Created SDP offer (kurento-utils.js, line 270)
[Debug] Local description set – "v=0
↵o=- 5811275597248577793 2 IN IP4 127.0.0.1
↵s=-
↵t=0 0
↵a=msid-semantic: WMS
↵" (kurento-utils.js, line 275)
"v=0
o=- 5811275597248577793 2 IN IP4 127.0.0.1
s=-
t=0 0
a=msid-semantic: WMS
"
[Log] Senging message: {"id":"viewer","sdpOffer":"v=0\r\no=- 5811275597248577793 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=msid-semantic: WMS\r\n"} (index.js, line 70)
[Info] Received message: {"id":"viewerResponse","response":"accepted","sdpAnswer":"v=0\r\no=- 3748169328 3748169328 IN IP4 0.0.0.0\r\ns=Kurento Media Server\r\nc=IN IP4 0.0.0.0\r\nt=0 0\r\na=msid-semantic: WMS\r\n"} (index.js, line 70)
[Debug] SDP answer received, setting remote description (kurento-utils.js, line 320)
[Debug] Remote stream: – undefined (kurento-utils.js, line 294)
How to a node connects to KMS
var argv = minimist(process.argv.slice(2), {
default: {
as_uri: 'https://localhost:8443/',
ws_uri: 'ws://37.228.89.170:8888/kurento'
}
});
回答1:
Two options:
- Safari 12 only - Need to enable the experimental feature "Enable MDNS Ice Candidates" in Safari settings, advanced, experimental features
- Safari 11 - you have to call
getUserMedia({video: true, audio: true})
, and have the user accept the dialog box to allow video and audio on your page. Even though you don't want to use the video or audio, this then causes safari to send ice-candidates during the negotiation
回答2:
This question is vague and does not provide a lot of detail. Please provide more details on the issue you are experiencing and what you have done to try to fix it/debug it.
You might try to disable the ICE candidate restrictions option in the developer menu and restart Safari, as mentioned in this Google Group post. Without knowing more information, I can't help much more than this.
For the future, please provide more thorough and detailed information on the problem and solutions you have attempted.
来源:https://stackoverflow.com/questions/52724194/safari-does-not-send-ice-candidates