瀏覽代碼

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.
tags/v0.0.2
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
     logger.info(`${this} creating remote track[endpoint=${ownerEndpointId},ssrc=${trackSsrc},`
952
     logger.info(`${this} creating remote track[endpoint=${ownerEndpointId},ssrc=${trackSsrc},`
953
         + `type=${mediaType},sourceName=${sourceName}]`);
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
     if (!peerMediaInfo) {
957
     if (!peerMediaInfo) {
960
         GlobalOnErrorHandler.callErrorHandler(
958
         GlobalOnErrorHandler.callErrorHandler(

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

296
     /**
296
     /**
297
      * @inheritDoc
297
      * @inheritDoc
298
      */
298
      */
299
-    getPeerMediaInfo(owner, mediaType) {
299
+    getPeerMediaInfo(owner, mediaType, sourceName) {
300
         const legacyGetPeerMediaInfo = () => {
300
         const legacyGetPeerMediaInfo = () => {
301
             if (this.chatRoom) {
301
             if (this.chatRoom) {
302
                 return this.chatRoom.getMediaPresenceInfo(owner, mediaType);
302
                 return this.chatRoom.getMediaPresenceInfo(owner, mediaType);
303
             }
303
             }
304
             logger.error('Requested peer media info, before room was set');
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
             if (!this._doesEndpointSendNewSourceInfo(owner)) {
313
             if (!this._doesEndpointSendNewSourceInfo(owner)) {
315
                 return legacyGetPeerMediaInfo();
314
                 return legacyGetPeerMediaInfo();
316
             }
315
             }
317
 
316
 
317
+            if (sourceName) {
318
+                return this.getPeerSourceInfo(owner, sourceName);
319
+            }
320
+
318
             /**
321
             /**
319
              * @type {PeerMediaInfo}
322
              * @type {PeerMediaInfo}
320
              */
323
              */

Loading…
取消
儲存