@wazo/sdk 0.37.3 → 0.37.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/wazo-sdk.js +1 -1
- package/esm/index.js +33 -5
- package/esm/simple/Auth.js +33 -5
- package/esm/simple/Configuration.js +33 -5
- package/esm/simple/Phone.js +33 -5
- package/esm/simple/index.js +33 -5
- package/esm/simple/room/LocalParticipant.js +33 -5
- package/esm/simple/room/Participant.js +33 -5
- package/esm/simple/room/RemoteParticipant.js +33 -5
- package/esm/simple/room/Room.js +33 -5
- package/esm/simple/room/SipRoom.js +33 -5
- package/esm/simple/room/Stream.js +33 -5
- package/esm/simple/room/__tests__/RemoteParticipant.test.js +33 -5
- package/esm/simple/utils.js +33 -5
- package/lib/index.js +33 -5
- package/lib/simple/Auth.js +33 -5
- package/lib/simple/Configuration.js +33 -5
- package/lib/simple/Phone.js +33 -5
- package/lib/simple/index.js +33 -5
- package/lib/simple/room/LocalParticipant.js +33 -5
- package/lib/simple/room/Participant.js +33 -5
- package/lib/simple/room/RemoteParticipant.js +33 -5
- package/lib/simple/room/Room.js +33 -5
- package/lib/simple/room/SipRoom.js +33 -5
- package/lib/simple/room/Stream.js +33 -5
- package/lib/simple/room/__tests__/RemoteParticipant.test.js +33 -5
- package/lib/simple/utils.js +33 -5
- package/package.json +1 -1
- package/src/simple/room/Room.js +33 -5
|
@@ -11747,9 +11747,11 @@ class Room$1 extends Emitter {
|
|
|
11747
11747
|
_onParticipantTrackUpdate(oldParticipant , update ) {
|
|
11748
11748
|
const newParticipant = oldParticipant;
|
|
11749
11749
|
|
|
11750
|
-
const { trackId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
11750
|
+
const { trackId, streamId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
11751
11751
|
const pc = Wazo.Phone.phone.currentSipSession.sessionDescriptionHandler.peerConnection;
|
|
11752
|
-
|
|
11752
|
+
// Can't use `getReceivers` here because on FF we make the mapping based on the streamId
|
|
11753
|
+
const stream = pc.getRemoteStreams().find(someStream =>
|
|
11754
|
+
someStream.id === streamId || someStream.getTracks().some(track => track.id === trackId));
|
|
11753
11755
|
|
|
11754
11756
|
if (update === 'downgrade') {
|
|
11755
11757
|
newParticipant.streams = [];
|
|
@@ -11779,15 +11781,41 @@ class Room$1 extends Emitter {
|
|
|
11779
11781
|
return;
|
|
11780
11782
|
}
|
|
11781
11783
|
|
|
11782
|
-
|
|
11784
|
+
const streamId = this._getStreamIdFrTrackId(trackId);
|
|
11785
|
+
const key = this._getUnassociatedMapIdFromTrackIdOrStreamId(trackId, streamId);
|
|
11786
|
+
const stream = this._unassociatedVideoStreams[key];
|
|
11787
|
+
|
|
11788
|
+
if (stream) {
|
|
11783
11789
|
// Try to associate stream
|
|
11784
|
-
this._associateStreamTo(
|
|
11790
|
+
this._associateStreamTo(stream, participant);
|
|
11785
11791
|
|
|
11786
|
-
delete this._unassociatedVideoStreams[
|
|
11792
|
+
delete this._unassociatedVideoStreams[key];
|
|
11787
11793
|
delete this._unassociatedParticipants[participant.callId];
|
|
11788
11794
|
}
|
|
11789
11795
|
}
|
|
11790
11796
|
|
|
11797
|
+
_getUnassociatedMapIdFromTrackIdOrStreamId(trackId , streamId ) {
|
|
11798
|
+
// Find by trackId
|
|
11799
|
+
if (trackId in this._unassociatedVideoStreams) {
|
|
11800
|
+
return trackId;
|
|
11801
|
+
}
|
|
11802
|
+
|
|
11803
|
+
// Find by streamId
|
|
11804
|
+
if (streamId && streamId in this._unassociatedVideoStreams) {
|
|
11805
|
+
return streamId;
|
|
11806
|
+
}
|
|
11807
|
+
|
|
11808
|
+
// Find in all the streams by streamId (used on FF where we can't map by trackId)
|
|
11809
|
+
const idx = Object.values(this._unassociatedVideoStreams).findIndex((stream ) => stream.id === streamId);
|
|
11810
|
+
return idx === -1 ? null : Object.keys(this._unassociatedVideoStreams)[idx];
|
|
11811
|
+
}
|
|
11812
|
+
|
|
11813
|
+
_getStreamIdFrTrackId(trackId ) {
|
|
11814
|
+
const mapping = Object.values(this._callIdStreamIdMap).find((map ) => map.trackId === trackId);
|
|
11815
|
+
|
|
11816
|
+
return mapping ? mapping.streamId : null;
|
|
11817
|
+
}
|
|
11818
|
+
|
|
11791
11819
|
_associateStreamTo(rawStream , participant ) {
|
|
11792
11820
|
const stream = new Wazo.Stream(rawStream, participant);
|
|
11793
11821
|
participant.streams.push(stream);
|
package/esm/simple/utils.js
CHANGED
|
@@ -11747,9 +11747,11 @@ class Room$1 extends Emitter {
|
|
|
11747
11747
|
_onParticipantTrackUpdate(oldParticipant , update ) {
|
|
11748
11748
|
const newParticipant = oldParticipant;
|
|
11749
11749
|
|
|
11750
|
-
const { trackId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
11750
|
+
const { trackId, streamId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
11751
11751
|
const pc = Wazo.Phone.phone.currentSipSession.sessionDescriptionHandler.peerConnection;
|
|
11752
|
-
|
|
11752
|
+
// Can't use `getReceivers` here because on FF we make the mapping based on the streamId
|
|
11753
|
+
const stream = pc.getRemoteStreams().find(someStream =>
|
|
11754
|
+
someStream.id === streamId || someStream.getTracks().some(track => track.id === trackId));
|
|
11753
11755
|
|
|
11754
11756
|
if (update === 'downgrade') {
|
|
11755
11757
|
newParticipant.streams = [];
|
|
@@ -11779,15 +11781,41 @@ class Room$1 extends Emitter {
|
|
|
11779
11781
|
return;
|
|
11780
11782
|
}
|
|
11781
11783
|
|
|
11782
|
-
|
|
11784
|
+
const streamId = this._getStreamIdFrTrackId(trackId);
|
|
11785
|
+
const key = this._getUnassociatedMapIdFromTrackIdOrStreamId(trackId, streamId);
|
|
11786
|
+
const stream = this._unassociatedVideoStreams[key];
|
|
11787
|
+
|
|
11788
|
+
if (stream) {
|
|
11783
11789
|
// Try to associate stream
|
|
11784
|
-
this._associateStreamTo(
|
|
11790
|
+
this._associateStreamTo(stream, participant);
|
|
11785
11791
|
|
|
11786
|
-
delete this._unassociatedVideoStreams[
|
|
11792
|
+
delete this._unassociatedVideoStreams[key];
|
|
11787
11793
|
delete this._unassociatedParticipants[participant.callId];
|
|
11788
11794
|
}
|
|
11789
11795
|
}
|
|
11790
11796
|
|
|
11797
|
+
_getUnassociatedMapIdFromTrackIdOrStreamId(trackId , streamId ) {
|
|
11798
|
+
// Find by trackId
|
|
11799
|
+
if (trackId in this._unassociatedVideoStreams) {
|
|
11800
|
+
return trackId;
|
|
11801
|
+
}
|
|
11802
|
+
|
|
11803
|
+
// Find by streamId
|
|
11804
|
+
if (streamId && streamId in this._unassociatedVideoStreams) {
|
|
11805
|
+
return streamId;
|
|
11806
|
+
}
|
|
11807
|
+
|
|
11808
|
+
// Find in all the streams by streamId (used on FF where we can't map by trackId)
|
|
11809
|
+
const idx = Object.values(this._unassociatedVideoStreams).findIndex((stream ) => stream.id === streamId);
|
|
11810
|
+
return idx === -1 ? null : Object.keys(this._unassociatedVideoStreams)[idx];
|
|
11811
|
+
}
|
|
11812
|
+
|
|
11813
|
+
_getStreamIdFrTrackId(trackId ) {
|
|
11814
|
+
const mapping = Object.values(this._callIdStreamIdMap).find((map ) => map.trackId === trackId);
|
|
11815
|
+
|
|
11816
|
+
return mapping ? mapping.streamId : null;
|
|
11817
|
+
}
|
|
11818
|
+
|
|
11791
11819
|
_associateStreamTo(rawStream , participant ) {
|
|
11792
11820
|
const stream = new Wazo.Stream(rawStream, participant);
|
|
11793
11821
|
participant.streams.push(stream);
|
package/lib/index.js
CHANGED
|
@@ -12733,9 +12733,11 @@ class Room extends Emitter {
|
|
|
12733
12733
|
_onParticipantTrackUpdate(oldParticipant , update ) {
|
|
12734
12734
|
const newParticipant = oldParticipant;
|
|
12735
12735
|
|
|
12736
|
-
const { trackId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
12736
|
+
const { trackId, streamId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
12737
12737
|
const pc = Wazo.Phone.phone.currentSipSession.sessionDescriptionHandler.peerConnection;
|
|
12738
|
-
|
|
12738
|
+
// Can't use `getReceivers` here because on FF we make the mapping based on the streamId
|
|
12739
|
+
const stream = pc.getRemoteStreams().find(someStream =>
|
|
12740
|
+
someStream.id === streamId || someStream.getTracks().some(track => track.id === trackId));
|
|
12739
12741
|
|
|
12740
12742
|
if (update === 'downgrade') {
|
|
12741
12743
|
newParticipant.streams = [];
|
|
@@ -12765,15 +12767,41 @@ class Room extends Emitter {
|
|
|
12765
12767
|
return;
|
|
12766
12768
|
}
|
|
12767
12769
|
|
|
12768
|
-
|
|
12770
|
+
const streamId = this._getStreamIdFrTrackId(trackId);
|
|
12771
|
+
const key = this._getUnassociatedMapIdFromTrackIdOrStreamId(trackId, streamId);
|
|
12772
|
+
const stream = this._unassociatedVideoStreams[key];
|
|
12773
|
+
|
|
12774
|
+
if (stream) {
|
|
12769
12775
|
// Try to associate stream
|
|
12770
|
-
this._associateStreamTo(
|
|
12776
|
+
this._associateStreamTo(stream, participant);
|
|
12771
12777
|
|
|
12772
|
-
delete this._unassociatedVideoStreams[
|
|
12778
|
+
delete this._unassociatedVideoStreams[key];
|
|
12773
12779
|
delete this._unassociatedParticipants[participant.callId];
|
|
12774
12780
|
}
|
|
12775
12781
|
}
|
|
12776
12782
|
|
|
12783
|
+
_getUnassociatedMapIdFromTrackIdOrStreamId(trackId , streamId ) {
|
|
12784
|
+
// Find by trackId
|
|
12785
|
+
if (trackId in this._unassociatedVideoStreams) {
|
|
12786
|
+
return trackId;
|
|
12787
|
+
}
|
|
12788
|
+
|
|
12789
|
+
// Find by streamId
|
|
12790
|
+
if (streamId && streamId in this._unassociatedVideoStreams) {
|
|
12791
|
+
return streamId;
|
|
12792
|
+
}
|
|
12793
|
+
|
|
12794
|
+
// Find in all the streams by streamId (used on FF where we can't map by trackId)
|
|
12795
|
+
const idx = Object.values(this._unassociatedVideoStreams).findIndex((stream ) => stream.id === streamId);
|
|
12796
|
+
return idx === -1 ? null : Object.keys(this._unassociatedVideoStreams)[idx];
|
|
12797
|
+
}
|
|
12798
|
+
|
|
12799
|
+
_getStreamIdFrTrackId(trackId ) {
|
|
12800
|
+
const mapping = Object.values(this._callIdStreamIdMap).find((map ) => map.trackId === trackId);
|
|
12801
|
+
|
|
12802
|
+
return mapping ? mapping.streamId : null;
|
|
12803
|
+
}
|
|
12804
|
+
|
|
12777
12805
|
_associateStreamTo(rawStream , participant ) {
|
|
12778
12806
|
const stream = new Wazo.Stream(rawStream, participant);
|
|
12779
12807
|
participant.streams.push(stream);
|
package/lib/simple/Auth.js
CHANGED
|
@@ -11497,9 +11497,11 @@ class Room$1 extends Emitter {
|
|
|
11497
11497
|
_onParticipantTrackUpdate(oldParticipant , update ) {
|
|
11498
11498
|
const newParticipant = oldParticipant;
|
|
11499
11499
|
|
|
11500
|
-
const { trackId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
11500
|
+
const { trackId, streamId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
11501
11501
|
const pc = Wazo.Phone.phone.currentSipSession.sessionDescriptionHandler.peerConnection;
|
|
11502
|
-
|
|
11502
|
+
// Can't use `getReceivers` here because on FF we make the mapping based on the streamId
|
|
11503
|
+
const stream = pc.getRemoteStreams().find(someStream =>
|
|
11504
|
+
someStream.id === streamId || someStream.getTracks().some(track => track.id === trackId));
|
|
11503
11505
|
|
|
11504
11506
|
if (update === 'downgrade') {
|
|
11505
11507
|
newParticipant.streams = [];
|
|
@@ -11529,15 +11531,41 @@ class Room$1 extends Emitter {
|
|
|
11529
11531
|
return;
|
|
11530
11532
|
}
|
|
11531
11533
|
|
|
11532
|
-
|
|
11534
|
+
const streamId = this._getStreamIdFrTrackId(trackId);
|
|
11535
|
+
const key = this._getUnassociatedMapIdFromTrackIdOrStreamId(trackId, streamId);
|
|
11536
|
+
const stream = this._unassociatedVideoStreams[key];
|
|
11537
|
+
|
|
11538
|
+
if (stream) {
|
|
11533
11539
|
// Try to associate stream
|
|
11534
|
-
this._associateStreamTo(
|
|
11540
|
+
this._associateStreamTo(stream, participant);
|
|
11535
11541
|
|
|
11536
|
-
delete this._unassociatedVideoStreams[
|
|
11542
|
+
delete this._unassociatedVideoStreams[key];
|
|
11537
11543
|
delete this._unassociatedParticipants[participant.callId];
|
|
11538
11544
|
}
|
|
11539
11545
|
}
|
|
11540
11546
|
|
|
11547
|
+
_getUnassociatedMapIdFromTrackIdOrStreamId(trackId , streamId ) {
|
|
11548
|
+
// Find by trackId
|
|
11549
|
+
if (trackId in this._unassociatedVideoStreams) {
|
|
11550
|
+
return trackId;
|
|
11551
|
+
}
|
|
11552
|
+
|
|
11553
|
+
// Find by streamId
|
|
11554
|
+
if (streamId && streamId in this._unassociatedVideoStreams) {
|
|
11555
|
+
return streamId;
|
|
11556
|
+
}
|
|
11557
|
+
|
|
11558
|
+
// Find in all the streams by streamId (used on FF where we can't map by trackId)
|
|
11559
|
+
const idx = Object.values(this._unassociatedVideoStreams).findIndex((stream ) => stream.id === streamId);
|
|
11560
|
+
return idx === -1 ? null : Object.keys(this._unassociatedVideoStreams)[idx];
|
|
11561
|
+
}
|
|
11562
|
+
|
|
11563
|
+
_getStreamIdFrTrackId(trackId ) {
|
|
11564
|
+
const mapping = Object.values(this._callIdStreamIdMap).find((map ) => map.trackId === trackId);
|
|
11565
|
+
|
|
11566
|
+
return mapping ? mapping.streamId : null;
|
|
11567
|
+
}
|
|
11568
|
+
|
|
11541
11569
|
_associateStreamTo(rawStream , participant ) {
|
|
11542
11570
|
const stream = new Wazo.Stream(rawStream, participant);
|
|
11543
11571
|
participant.streams.push(stream);
|
|
@@ -11495,9 +11495,11 @@ class Room$1 extends Emitter {
|
|
|
11495
11495
|
_onParticipantTrackUpdate(oldParticipant , update ) {
|
|
11496
11496
|
const newParticipant = oldParticipant;
|
|
11497
11497
|
|
|
11498
|
-
const { trackId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
11498
|
+
const { trackId, streamId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
11499
11499
|
const pc = Wazo.Phone.phone.currentSipSession.sessionDescriptionHandler.peerConnection;
|
|
11500
|
-
|
|
11500
|
+
// Can't use `getReceivers` here because on FF we make the mapping based on the streamId
|
|
11501
|
+
const stream = pc.getRemoteStreams().find(someStream =>
|
|
11502
|
+
someStream.id === streamId || someStream.getTracks().some(track => track.id === trackId));
|
|
11501
11503
|
|
|
11502
11504
|
if (update === 'downgrade') {
|
|
11503
11505
|
newParticipant.streams = [];
|
|
@@ -11527,15 +11529,41 @@ class Room$1 extends Emitter {
|
|
|
11527
11529
|
return;
|
|
11528
11530
|
}
|
|
11529
11531
|
|
|
11530
|
-
|
|
11532
|
+
const streamId = this._getStreamIdFrTrackId(trackId);
|
|
11533
|
+
const key = this._getUnassociatedMapIdFromTrackIdOrStreamId(trackId, streamId);
|
|
11534
|
+
const stream = this._unassociatedVideoStreams[key];
|
|
11535
|
+
|
|
11536
|
+
if (stream) {
|
|
11531
11537
|
// Try to associate stream
|
|
11532
|
-
this._associateStreamTo(
|
|
11538
|
+
this._associateStreamTo(stream, participant);
|
|
11533
11539
|
|
|
11534
|
-
delete this._unassociatedVideoStreams[
|
|
11540
|
+
delete this._unassociatedVideoStreams[key];
|
|
11535
11541
|
delete this._unassociatedParticipants[participant.callId];
|
|
11536
11542
|
}
|
|
11537
11543
|
}
|
|
11538
11544
|
|
|
11545
|
+
_getUnassociatedMapIdFromTrackIdOrStreamId(trackId , streamId ) {
|
|
11546
|
+
// Find by trackId
|
|
11547
|
+
if (trackId in this._unassociatedVideoStreams) {
|
|
11548
|
+
return trackId;
|
|
11549
|
+
}
|
|
11550
|
+
|
|
11551
|
+
// Find by streamId
|
|
11552
|
+
if (streamId && streamId in this._unassociatedVideoStreams) {
|
|
11553
|
+
return streamId;
|
|
11554
|
+
}
|
|
11555
|
+
|
|
11556
|
+
// Find in all the streams by streamId (used on FF where we can't map by trackId)
|
|
11557
|
+
const idx = Object.values(this._unassociatedVideoStreams).findIndex((stream ) => stream.id === streamId);
|
|
11558
|
+
return idx === -1 ? null : Object.keys(this._unassociatedVideoStreams)[idx];
|
|
11559
|
+
}
|
|
11560
|
+
|
|
11561
|
+
_getStreamIdFrTrackId(trackId ) {
|
|
11562
|
+
const mapping = Object.values(this._callIdStreamIdMap).find((map ) => map.trackId === trackId);
|
|
11563
|
+
|
|
11564
|
+
return mapping ? mapping.streamId : null;
|
|
11565
|
+
}
|
|
11566
|
+
|
|
11539
11567
|
_associateStreamTo(rawStream , participant ) {
|
|
11540
11568
|
const stream = new Wazo.Stream(rawStream, participant);
|
|
11541
11569
|
participant.streams.push(stream);
|
package/lib/simple/Phone.js
CHANGED
|
@@ -11368,9 +11368,11 @@ class Room$1 extends Emitter {
|
|
|
11368
11368
|
_onParticipantTrackUpdate(oldParticipant , update ) {
|
|
11369
11369
|
const newParticipant = oldParticipant;
|
|
11370
11370
|
|
|
11371
|
-
const { trackId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
11371
|
+
const { trackId, streamId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
11372
11372
|
const pc = Wazo.Phone.phone.currentSipSession.sessionDescriptionHandler.peerConnection;
|
|
11373
|
-
|
|
11373
|
+
// Can't use `getReceivers` here because on FF we make the mapping based on the streamId
|
|
11374
|
+
const stream = pc.getRemoteStreams().find(someStream =>
|
|
11375
|
+
someStream.id === streamId || someStream.getTracks().some(track => track.id === trackId));
|
|
11374
11376
|
|
|
11375
11377
|
if (update === 'downgrade') {
|
|
11376
11378
|
newParticipant.streams = [];
|
|
@@ -11400,15 +11402,41 @@ class Room$1 extends Emitter {
|
|
|
11400
11402
|
return;
|
|
11401
11403
|
}
|
|
11402
11404
|
|
|
11403
|
-
|
|
11405
|
+
const streamId = this._getStreamIdFrTrackId(trackId);
|
|
11406
|
+
const key = this._getUnassociatedMapIdFromTrackIdOrStreamId(trackId, streamId);
|
|
11407
|
+
const stream = this._unassociatedVideoStreams[key];
|
|
11408
|
+
|
|
11409
|
+
if (stream) {
|
|
11404
11410
|
// Try to associate stream
|
|
11405
|
-
this._associateStreamTo(
|
|
11411
|
+
this._associateStreamTo(stream, participant);
|
|
11406
11412
|
|
|
11407
|
-
delete this._unassociatedVideoStreams[
|
|
11413
|
+
delete this._unassociatedVideoStreams[key];
|
|
11408
11414
|
delete this._unassociatedParticipants[participant.callId];
|
|
11409
11415
|
}
|
|
11410
11416
|
}
|
|
11411
11417
|
|
|
11418
|
+
_getUnassociatedMapIdFromTrackIdOrStreamId(trackId , streamId ) {
|
|
11419
|
+
// Find by trackId
|
|
11420
|
+
if (trackId in this._unassociatedVideoStreams) {
|
|
11421
|
+
return trackId;
|
|
11422
|
+
}
|
|
11423
|
+
|
|
11424
|
+
// Find by streamId
|
|
11425
|
+
if (streamId && streamId in this._unassociatedVideoStreams) {
|
|
11426
|
+
return streamId;
|
|
11427
|
+
}
|
|
11428
|
+
|
|
11429
|
+
// Find in all the streams by streamId (used on FF where we can't map by trackId)
|
|
11430
|
+
const idx = Object.values(this._unassociatedVideoStreams).findIndex((stream ) => stream.id === streamId);
|
|
11431
|
+
return idx === -1 ? null : Object.keys(this._unassociatedVideoStreams)[idx];
|
|
11432
|
+
}
|
|
11433
|
+
|
|
11434
|
+
_getStreamIdFrTrackId(trackId ) {
|
|
11435
|
+
const mapping = Object.values(this._callIdStreamIdMap).find((map ) => map.trackId === trackId);
|
|
11436
|
+
|
|
11437
|
+
return mapping ? mapping.streamId : null;
|
|
11438
|
+
}
|
|
11439
|
+
|
|
11412
11440
|
_associateStreamTo(rawStream , participant ) {
|
|
11413
11441
|
const stream = new Wazo.Stream(rawStream, participant);
|
|
11414
11442
|
participant.streams.push(stream);
|
package/lib/simple/index.js
CHANGED
|
@@ -11757,9 +11757,11 @@ class Room$1 extends Emitter {
|
|
|
11757
11757
|
_onParticipantTrackUpdate(oldParticipant , update ) {
|
|
11758
11758
|
const newParticipant = oldParticipant;
|
|
11759
11759
|
|
|
11760
|
-
const { trackId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
11760
|
+
const { trackId, streamId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
11761
11761
|
const pc = Wazo.Phone.phone.currentSipSession.sessionDescriptionHandler.peerConnection;
|
|
11762
|
-
|
|
11762
|
+
// Can't use `getReceivers` here because on FF we make the mapping based on the streamId
|
|
11763
|
+
const stream = pc.getRemoteStreams().find(someStream =>
|
|
11764
|
+
someStream.id === streamId || someStream.getTracks().some(track => track.id === trackId));
|
|
11763
11765
|
|
|
11764
11766
|
if (update === 'downgrade') {
|
|
11765
11767
|
newParticipant.streams = [];
|
|
@@ -11789,15 +11791,41 @@ class Room$1 extends Emitter {
|
|
|
11789
11791
|
return;
|
|
11790
11792
|
}
|
|
11791
11793
|
|
|
11792
|
-
|
|
11794
|
+
const streamId = this._getStreamIdFrTrackId(trackId);
|
|
11795
|
+
const key = this._getUnassociatedMapIdFromTrackIdOrStreamId(trackId, streamId);
|
|
11796
|
+
const stream = this._unassociatedVideoStreams[key];
|
|
11797
|
+
|
|
11798
|
+
if (stream) {
|
|
11793
11799
|
// Try to associate stream
|
|
11794
|
-
this._associateStreamTo(
|
|
11800
|
+
this._associateStreamTo(stream, participant);
|
|
11795
11801
|
|
|
11796
|
-
delete this._unassociatedVideoStreams[
|
|
11802
|
+
delete this._unassociatedVideoStreams[key];
|
|
11797
11803
|
delete this._unassociatedParticipants[participant.callId];
|
|
11798
11804
|
}
|
|
11799
11805
|
}
|
|
11800
11806
|
|
|
11807
|
+
_getUnassociatedMapIdFromTrackIdOrStreamId(trackId , streamId ) {
|
|
11808
|
+
// Find by trackId
|
|
11809
|
+
if (trackId in this._unassociatedVideoStreams) {
|
|
11810
|
+
return trackId;
|
|
11811
|
+
}
|
|
11812
|
+
|
|
11813
|
+
// Find by streamId
|
|
11814
|
+
if (streamId && streamId in this._unassociatedVideoStreams) {
|
|
11815
|
+
return streamId;
|
|
11816
|
+
}
|
|
11817
|
+
|
|
11818
|
+
// Find in all the streams by streamId (used on FF where we can't map by trackId)
|
|
11819
|
+
const idx = Object.values(this._unassociatedVideoStreams).findIndex((stream ) => stream.id === streamId);
|
|
11820
|
+
return idx === -1 ? null : Object.keys(this._unassociatedVideoStreams)[idx];
|
|
11821
|
+
}
|
|
11822
|
+
|
|
11823
|
+
_getStreamIdFrTrackId(trackId ) {
|
|
11824
|
+
const mapping = Object.values(this._callIdStreamIdMap).find((map ) => map.trackId === trackId);
|
|
11825
|
+
|
|
11826
|
+
return mapping ? mapping.streamId : null;
|
|
11827
|
+
}
|
|
11828
|
+
|
|
11801
11829
|
_associateStreamTo(rawStream , participant ) {
|
|
11802
11830
|
const stream = new Wazo.Stream(rawStream, participant);
|
|
11803
11831
|
participant.streams.push(stream);
|
|
@@ -12623,9 +12623,11 @@ class Room extends Emitter {
|
|
|
12623
12623
|
_onParticipantTrackUpdate(oldParticipant , update ) {
|
|
12624
12624
|
const newParticipant = oldParticipant;
|
|
12625
12625
|
|
|
12626
|
-
const { trackId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
12626
|
+
const { trackId, streamId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
12627
12627
|
const pc = Wazo.Phone.phone.currentSipSession.sessionDescriptionHandler.peerConnection;
|
|
12628
|
-
|
|
12628
|
+
// Can't use `getReceivers` here because on FF we make the mapping based on the streamId
|
|
12629
|
+
const stream = pc.getRemoteStreams().find(someStream =>
|
|
12630
|
+
someStream.id === streamId || someStream.getTracks().some(track => track.id === trackId));
|
|
12629
12631
|
|
|
12630
12632
|
if (update === 'downgrade') {
|
|
12631
12633
|
newParticipant.streams = [];
|
|
@@ -12655,15 +12657,41 @@ class Room extends Emitter {
|
|
|
12655
12657
|
return;
|
|
12656
12658
|
}
|
|
12657
12659
|
|
|
12658
|
-
|
|
12660
|
+
const streamId = this._getStreamIdFrTrackId(trackId);
|
|
12661
|
+
const key = this._getUnassociatedMapIdFromTrackIdOrStreamId(trackId, streamId);
|
|
12662
|
+
const stream = this._unassociatedVideoStreams[key];
|
|
12663
|
+
|
|
12664
|
+
if (stream) {
|
|
12659
12665
|
// Try to associate stream
|
|
12660
|
-
this._associateStreamTo(
|
|
12666
|
+
this._associateStreamTo(stream, participant);
|
|
12661
12667
|
|
|
12662
|
-
delete this._unassociatedVideoStreams[
|
|
12668
|
+
delete this._unassociatedVideoStreams[key];
|
|
12663
12669
|
delete this._unassociatedParticipants[participant.callId];
|
|
12664
12670
|
}
|
|
12665
12671
|
}
|
|
12666
12672
|
|
|
12673
|
+
_getUnassociatedMapIdFromTrackIdOrStreamId(trackId , streamId ) {
|
|
12674
|
+
// Find by trackId
|
|
12675
|
+
if (trackId in this._unassociatedVideoStreams) {
|
|
12676
|
+
return trackId;
|
|
12677
|
+
}
|
|
12678
|
+
|
|
12679
|
+
// Find by streamId
|
|
12680
|
+
if (streamId && streamId in this._unassociatedVideoStreams) {
|
|
12681
|
+
return streamId;
|
|
12682
|
+
}
|
|
12683
|
+
|
|
12684
|
+
// Find in all the streams by streamId (used on FF where we can't map by trackId)
|
|
12685
|
+
const idx = Object.values(this._unassociatedVideoStreams).findIndex((stream ) => stream.id === streamId);
|
|
12686
|
+
return idx === -1 ? null : Object.keys(this._unassociatedVideoStreams)[idx];
|
|
12687
|
+
}
|
|
12688
|
+
|
|
12689
|
+
_getStreamIdFrTrackId(trackId ) {
|
|
12690
|
+
const mapping = Object.values(this._callIdStreamIdMap).find((map ) => map.trackId === trackId);
|
|
12691
|
+
|
|
12692
|
+
return mapping ? mapping.streamId : null;
|
|
12693
|
+
}
|
|
12694
|
+
|
|
12667
12695
|
_associateStreamTo(rawStream , participant ) {
|
|
12668
12696
|
const stream = new Wazo.Stream(rawStream, participant);
|
|
12669
12697
|
participant.streams.push(stream);
|
|
@@ -12628,9 +12628,11 @@ class Room extends Emitter {
|
|
|
12628
12628
|
_onParticipantTrackUpdate(oldParticipant , update ) {
|
|
12629
12629
|
const newParticipant = oldParticipant;
|
|
12630
12630
|
|
|
12631
|
-
const { trackId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
12631
|
+
const { trackId, streamId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
12632
12632
|
const pc = Wazo.Phone.phone.currentSipSession.sessionDescriptionHandler.peerConnection;
|
|
12633
|
-
|
|
12633
|
+
// Can't use `getReceivers` here because on FF we make the mapping based on the streamId
|
|
12634
|
+
const stream = pc.getRemoteStreams().find(someStream =>
|
|
12635
|
+
someStream.id === streamId || someStream.getTracks().some(track => track.id === trackId));
|
|
12634
12636
|
|
|
12635
12637
|
if (update === 'downgrade') {
|
|
12636
12638
|
newParticipant.streams = [];
|
|
@@ -12660,15 +12662,41 @@ class Room extends Emitter {
|
|
|
12660
12662
|
return;
|
|
12661
12663
|
}
|
|
12662
12664
|
|
|
12663
|
-
|
|
12665
|
+
const streamId = this._getStreamIdFrTrackId(trackId);
|
|
12666
|
+
const key = this._getUnassociatedMapIdFromTrackIdOrStreamId(trackId, streamId);
|
|
12667
|
+
const stream = this._unassociatedVideoStreams[key];
|
|
12668
|
+
|
|
12669
|
+
if (stream) {
|
|
12664
12670
|
// Try to associate stream
|
|
12665
|
-
this._associateStreamTo(
|
|
12671
|
+
this._associateStreamTo(stream, participant);
|
|
12666
12672
|
|
|
12667
|
-
delete this._unassociatedVideoStreams[
|
|
12673
|
+
delete this._unassociatedVideoStreams[key];
|
|
12668
12674
|
delete this._unassociatedParticipants[participant.callId];
|
|
12669
12675
|
}
|
|
12670
12676
|
}
|
|
12671
12677
|
|
|
12678
|
+
_getUnassociatedMapIdFromTrackIdOrStreamId(trackId , streamId ) {
|
|
12679
|
+
// Find by trackId
|
|
12680
|
+
if (trackId in this._unassociatedVideoStreams) {
|
|
12681
|
+
return trackId;
|
|
12682
|
+
}
|
|
12683
|
+
|
|
12684
|
+
// Find by streamId
|
|
12685
|
+
if (streamId && streamId in this._unassociatedVideoStreams) {
|
|
12686
|
+
return streamId;
|
|
12687
|
+
}
|
|
12688
|
+
|
|
12689
|
+
// Find in all the streams by streamId (used on FF where we can't map by trackId)
|
|
12690
|
+
const idx = Object.values(this._unassociatedVideoStreams).findIndex((stream ) => stream.id === streamId);
|
|
12691
|
+
return idx === -1 ? null : Object.keys(this._unassociatedVideoStreams)[idx];
|
|
12692
|
+
}
|
|
12693
|
+
|
|
12694
|
+
_getStreamIdFrTrackId(trackId ) {
|
|
12695
|
+
const mapping = Object.values(this._callIdStreamIdMap).find((map ) => map.trackId === trackId);
|
|
12696
|
+
|
|
12697
|
+
return mapping ? mapping.streamId : null;
|
|
12698
|
+
}
|
|
12699
|
+
|
|
12672
12700
|
_associateStreamTo(rawStream , participant ) {
|
|
12673
12701
|
const stream = new Wazo.Stream(rawStream, participant);
|
|
12674
12702
|
participant.streams.push(stream);
|
|
@@ -12902,9 +12902,11 @@ class Room extends Emitter {
|
|
|
12902
12902
|
_onParticipantTrackUpdate(oldParticipant , update ) {
|
|
12903
12903
|
const newParticipant = oldParticipant;
|
|
12904
12904
|
|
|
12905
|
-
const { trackId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
12905
|
+
const { trackId, streamId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
12906
12906
|
const pc = Wazo.Phone.phone.currentSipSession.sessionDescriptionHandler.peerConnection;
|
|
12907
|
-
|
|
12907
|
+
// Can't use `getReceivers` here because on FF we make the mapping based on the streamId
|
|
12908
|
+
const stream = pc.getRemoteStreams().find(someStream =>
|
|
12909
|
+
someStream.id === streamId || someStream.getTracks().some(track => track.id === trackId));
|
|
12908
12910
|
|
|
12909
12911
|
if (update === 'downgrade') {
|
|
12910
12912
|
newParticipant.streams = [];
|
|
@@ -12934,15 +12936,41 @@ class Room extends Emitter {
|
|
|
12934
12936
|
return;
|
|
12935
12937
|
}
|
|
12936
12938
|
|
|
12937
|
-
|
|
12939
|
+
const streamId = this._getStreamIdFrTrackId(trackId);
|
|
12940
|
+
const key = this._getUnassociatedMapIdFromTrackIdOrStreamId(trackId, streamId);
|
|
12941
|
+
const stream = this._unassociatedVideoStreams[key];
|
|
12942
|
+
|
|
12943
|
+
if (stream) {
|
|
12938
12944
|
// Try to associate stream
|
|
12939
|
-
this._associateStreamTo(
|
|
12945
|
+
this._associateStreamTo(stream, participant);
|
|
12940
12946
|
|
|
12941
|
-
delete this._unassociatedVideoStreams[
|
|
12947
|
+
delete this._unassociatedVideoStreams[key];
|
|
12942
12948
|
delete this._unassociatedParticipants[participant.callId];
|
|
12943
12949
|
}
|
|
12944
12950
|
}
|
|
12945
12951
|
|
|
12952
|
+
_getUnassociatedMapIdFromTrackIdOrStreamId(trackId , streamId ) {
|
|
12953
|
+
// Find by trackId
|
|
12954
|
+
if (trackId in this._unassociatedVideoStreams) {
|
|
12955
|
+
return trackId;
|
|
12956
|
+
}
|
|
12957
|
+
|
|
12958
|
+
// Find by streamId
|
|
12959
|
+
if (streamId && streamId in this._unassociatedVideoStreams) {
|
|
12960
|
+
return streamId;
|
|
12961
|
+
}
|
|
12962
|
+
|
|
12963
|
+
// Find in all the streams by streamId (used on FF where we can't map by trackId)
|
|
12964
|
+
const idx = Object.values(this._unassociatedVideoStreams).findIndex((stream ) => stream.id === streamId);
|
|
12965
|
+
return idx === -1 ? null : Object.keys(this._unassociatedVideoStreams)[idx];
|
|
12966
|
+
}
|
|
12967
|
+
|
|
12968
|
+
_getStreamIdFrTrackId(trackId ) {
|
|
12969
|
+
const mapping = Object.values(this._callIdStreamIdMap).find((map ) => map.trackId === trackId);
|
|
12970
|
+
|
|
12971
|
+
return mapping ? mapping.streamId : null;
|
|
12972
|
+
}
|
|
12973
|
+
|
|
12946
12974
|
_associateStreamTo(rawStream , participant ) {
|
|
12947
12975
|
const stream = new Wazo.Stream(rawStream, participant);
|
|
12948
12976
|
participant.streams.push(stream);
|
package/lib/simple/room/Room.js
CHANGED
|
@@ -12915,9 +12915,11 @@ class Room extends Emitter {
|
|
|
12915
12915
|
_onParticipantTrackUpdate(oldParticipant , update ) {
|
|
12916
12916
|
const newParticipant = oldParticipant;
|
|
12917
12917
|
|
|
12918
|
-
const { trackId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
12918
|
+
const { trackId, streamId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
12919
12919
|
const pc = Wazo.Phone.phone.currentSipSession.sessionDescriptionHandler.peerConnection;
|
|
12920
|
-
|
|
12920
|
+
// Can't use `getReceivers` here because on FF we make the mapping based on the streamId
|
|
12921
|
+
const stream = pc.getRemoteStreams().find(someStream =>
|
|
12922
|
+
someStream.id === streamId || someStream.getTracks().some(track => track.id === trackId));
|
|
12921
12923
|
|
|
12922
12924
|
if (update === 'downgrade') {
|
|
12923
12925
|
newParticipant.streams = [];
|
|
@@ -12947,15 +12949,41 @@ class Room extends Emitter {
|
|
|
12947
12949
|
return;
|
|
12948
12950
|
}
|
|
12949
12951
|
|
|
12950
|
-
|
|
12952
|
+
const streamId = this._getStreamIdFrTrackId(trackId);
|
|
12953
|
+
const key = this._getUnassociatedMapIdFromTrackIdOrStreamId(trackId, streamId);
|
|
12954
|
+
const stream = this._unassociatedVideoStreams[key];
|
|
12955
|
+
|
|
12956
|
+
if (stream) {
|
|
12951
12957
|
// Try to associate stream
|
|
12952
|
-
this._associateStreamTo(
|
|
12958
|
+
this._associateStreamTo(stream, participant);
|
|
12953
12959
|
|
|
12954
|
-
delete this._unassociatedVideoStreams[
|
|
12960
|
+
delete this._unassociatedVideoStreams[key];
|
|
12955
12961
|
delete this._unassociatedParticipants[participant.callId];
|
|
12956
12962
|
}
|
|
12957
12963
|
}
|
|
12958
12964
|
|
|
12965
|
+
_getUnassociatedMapIdFromTrackIdOrStreamId(trackId , streamId ) {
|
|
12966
|
+
// Find by trackId
|
|
12967
|
+
if (trackId in this._unassociatedVideoStreams) {
|
|
12968
|
+
return trackId;
|
|
12969
|
+
}
|
|
12970
|
+
|
|
12971
|
+
// Find by streamId
|
|
12972
|
+
if (streamId && streamId in this._unassociatedVideoStreams) {
|
|
12973
|
+
return streamId;
|
|
12974
|
+
}
|
|
12975
|
+
|
|
12976
|
+
// Find in all the streams by streamId (used on FF where we can't map by trackId)
|
|
12977
|
+
const idx = Object.values(this._unassociatedVideoStreams).findIndex((stream ) => stream.id === streamId);
|
|
12978
|
+
return idx === -1 ? null : Object.keys(this._unassociatedVideoStreams)[idx];
|
|
12979
|
+
}
|
|
12980
|
+
|
|
12981
|
+
_getStreamIdFrTrackId(trackId ) {
|
|
12982
|
+
const mapping = Object.values(this._callIdStreamIdMap).find((map ) => map.trackId === trackId);
|
|
12983
|
+
|
|
12984
|
+
return mapping ? mapping.streamId : null;
|
|
12985
|
+
}
|
|
12986
|
+
|
|
12959
12987
|
_associateStreamTo(rawStream , participant ) {
|
|
12960
12988
|
const stream = new Wazo.Stream(rawStream, participant);
|
|
12961
12989
|
participant.streams.push(stream);
|