webex/webex-js-sdk

Safari - Join Meeting with no media input is broken (updated)

WenboL opened this issue · 1 comments

Expected Behavior

Since Mac Safari is supported by Webex JS SDK, user should be able to join meeting with no media enabled.

Current Behavior

During our development on Mac Safari, we noticed with latest Js SDK, when we join meeting with no media input, incoming meeting stream will not be set, 'media:ready' event will never get triggered. Same code works fine on Chrome browser and 'media:ready' event is triggered.

So when we join with no audio input, meeting join progress will 'hang' with no 'media:ready' event and we can not receive incoming mediaStreams to continue the call.

Possible Solution (we welcome any logical suggestion)

I think this issue is related to Safari device permission handling. If we join meeting without grab microphone permission, 'media:ready' will not get triggered.
I have no potential solution but workaround.
Example:
After meetings.join() and setup EventListener, manually grab and release the audio input.

    const [noUseStream] = await this.meeting.getMediaStreams(
        {
          sendAudio: true,
          sendVideo: false,
          sendShare: false,
        },
        {
          audio: null,
        },
      );
      noUseStream.getTracks().forEach((track: MediaStreamTrack): void => {
        track.stop();
      });

Steps to Reproduce

await webex.meetings.register();
this.meeting = await webex.meetings.create(sipUrl);
await webex.meetings.join(); 
this.meeting.on('media:ready', this.handleMediaReady);
await this.meeting.addMedia({
  mediaSettings: {
    receiveVideo: true,
    receiveAudio: true,
    receiveShare: true,
    sendVideo: false,
    sendAudio: false,
    sendShare: false,
  },
  localStream: null,
  localShare: null,
});

"this.handleMediaReady" will never gets triggered in Safari browser. But will get triggered in Chrome.

Environment Details

  • SDK Version: "1.80.217"
  • Environment version: Intel Mac OS X 10_14_6), 13.1 Safari
  • Browser 'navigator.userAgent': Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Safari/605.1.15

Just download and verified on Safari Technology Preview this issue is fixed on it. I guess this is a Safari issue then?
Safari Technology Preview version I used: Release 107 (Safari 13.2, WebKit 14610.1.14.1)