Open ostap0207 opened 3 years ago
How about using feature detection instead of user agent sniffing. All what is needed is try setRemoteDescription with extmap in a test RTCconnection, that much more reliable than user agent sniffing.
Wouldn't this require to always override setRemoteDescription
, while we probably should override it only when needed?
Any updates on this? This breaks media establishing with Safari 12.0 for us.
you can always do that in the meantime on your signaling layer.
// Remove extmap-allow-mixed sdp header
if (desc && desc.sdp && desc.sdp.indexOf('\na=extmap-allow-mixed') !== -1) {
desc = new RTCSessionDescription({
type: desc.type,
sdp: desc.sdp
.split('\n')
.filter((line) => {
return line.trim() !== 'a=extmap-allow-mixed';
})
.join('\n')
});
}
via: https://github.com/cordova-rtc/cordova-plugin-iosrtc/blob/master/js/RTCPeerConnection.js#L316
Thanks for the workaround!
Please read first!
Please use discuss-webrtc for general technical discussions and questions.
Note: If the checkboxes above are not checked (which you do after the issue is posted), the issue will be closed.
Versions affected
Safari 12.0
adapter.js 7.7.0, 7.7.1, 8.0
Description
removeExtmapAllowMixed
shim is not applied to iOS Safari 12. Based on this PR's comments the shim should be applied to Safari < 13.1, however it is not applied in iOS Safari 12.I think the culprit is this check https://github.com/webrtcHacks/adapter/blob/master/src/js/common_shim.js#L327
browserDetails.version
returnsAppleWebKit
version and this version is 605 in both iOS Safari 12 and iOS Safari 13. For example here is UserAgent from iOS Safari 12:Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1
here is UserAgent from iOS Safari 13:Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1
Based on local testing this shim is only needed in Safari 12.0 and below, as all works correctly in Safari 12.1+
Steps to reproduce
https://appr.tc/
does not use the newest version at the moment.Expected results
2-way video is established
Actual results
Error:
setRemoteDescription: OperationError: Expects at least 2 fields.