浏览代码

fix(presence) Parse peer presence in legacy format correctly.

When source-name signaling is enabled, get correct peermedia info when the peer sends presence in the legacy format. This fixes an issue where Jigasi users cannot be heard by endpoints that have source-name signaling enabled.
dev1
Jaya Allamsetty 3 年前
父节点
当前提交
6d8060a4c6
共有 2 个文件被更改,包括 11 次插入10 次删除
  1. 1
    3
      modules/RTC/TraceablePeerConnection.js
  2. 10
    7
      modules/xmpp/SignalingLayerImpl.js

+ 1
- 3
modules/RTC/TraceablePeerConnection.js 查看文件

@@ -952,9 +952,7 @@ TraceablePeerConnection.prototype._remoteTrackAdded = function(stream, track, tr
952 952
     logger.info(`${this} creating remote track[endpoint=${ownerEndpointId},ssrc=${trackSsrc},`
953 953
         + `type=${mediaType},sourceName=${sourceName}]`);
954 954
 
955
-    const peerMediaInfo = FeatureFlags.isSourceNameSignalingEnabled()
956
-        ? this.signalingLayer.getPeerSourceInfo(ownerEndpointId, sourceName)
957
-        : this.signalingLayer.getPeerMediaInfo(ownerEndpointId, mediaType);
955
+    const peerMediaInfo = this.signalingLayer.getPeerMediaInfo(ownerEndpointId, mediaType, sourceName);
958 956
 
959 957
     if (!peerMediaInfo) {
960 958
         GlobalOnErrorHandler.callErrorHandler(

+ 10
- 7
modules/xmpp/SignalingLayerImpl.js 查看文件

@@ -296,25 +296,28 @@ export default class SignalingLayerImpl extends SignalingLayer {
296 296
     /**
297 297
      * @inheritDoc
298 298
      */
299
-    getPeerMediaInfo(owner, mediaType) {
299
+    getPeerMediaInfo(owner, mediaType, sourceName) {
300 300
         const legacyGetPeerMediaInfo = () => {
301 301
             if (this.chatRoom) {
302 302
                 return this.chatRoom.getMediaPresenceInfo(owner, mediaType);
303 303
             }
304 304
             logger.error('Requested peer media info, before room was set');
305 305
         };
306
+        const lastPresence = this.chatRoom.getLastPresence(owner);
306 307
 
307
-        if (FeatureFlags.isSourceNameSignalingEnabled()) {
308
-            const lastPresence = this.chatRoom.getLastPresence(owner);
309
-
310
-            if (!lastPresence) {
311
-                throw new Error(`getPeerMediaInfo - no presence stored for: ${owner}`);
312
-            }
308
+        if (!lastPresence) {
309
+            throw new Error(`getPeerMediaInfo - no presence stored for: ${owner}`);
310
+        }
313 311
 
312
+        if (FeatureFlags.isSourceNameSignalingEnabled()) {
314 313
             if (!this._doesEndpointSendNewSourceInfo(owner)) {
315 314
                 return legacyGetPeerMediaInfo();
316 315
             }
317 316
 
317
+            if (sourceName) {
318
+                return this.getPeerSourceInfo(owner, sourceName);
319
+            }
320
+
318 321
             /**
319 322
              * @type {PeerMediaInfo}
320 323
              */

正在加载...
取消
保存