Safari does not send ice candidates

核能气质少年 提交于 2020-01-24 05:18:06

问题


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:

  1. Safari 12 only - Need to enable the experimental feature "Enable MDNS Ice Candidates" in Safari settings, advanced, experimental features
  2. 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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!