@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
package/esm/index.js
CHANGED
|
@@ -12722,9 +12722,11 @@ class Room extends Emitter {
|
|
|
12722
12722
|
_onParticipantTrackUpdate(oldParticipant , update ) {
|
|
12723
12723
|
const newParticipant = oldParticipant;
|
|
12724
12724
|
|
|
12725
|
-
const { trackId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
12725
|
+
const { trackId, streamId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
12726
12726
|
const pc = Wazo.Phone.phone.currentSipSession.sessionDescriptionHandler.peerConnection;
|
|
12727
|
-
|
|
12727
|
+
// Can't use `getReceivers` here because on FF we make the mapping based on the streamId
|
|
12728
|
+
const stream = pc.getRemoteStreams().find(someStream =>
|
|
12729
|
+
someStream.id === streamId || someStream.getTracks().some(track => track.id === trackId));
|
|
12728
12730
|
|
|
12729
12731
|
if (update === 'downgrade') {
|
|
12730
12732
|
newParticipant.streams = [];
|
|
@@ -12754,15 +12756,41 @@ class Room extends Emitter {
|
|
|
12754
12756
|
return;
|
|
12755
12757
|
}
|
|
12756
12758
|
|
|
12757
|
-
|
|
12759
|
+
const streamId = this._getStreamIdFrTrackId(trackId);
|
|
12760
|
+
const key = this._getUnassociatedMapIdFromTrackIdOrStreamId(trackId, streamId);
|
|
12761
|
+
const stream = this._unassociatedVideoStreams[key];
|
|
12762
|
+
|
|
12763
|
+
if (stream) {
|
|
12758
12764
|
// Try to associate stream
|
|
12759
|
-
this._associateStreamTo(
|
|
12765
|
+
this._associateStreamTo(stream, participant);
|
|
12760
12766
|
|
|
12761
|
-
delete this._unassociatedVideoStreams[
|
|
12767
|
+
delete this._unassociatedVideoStreams[key];
|
|
12762
12768
|
delete this._unassociatedParticipants[participant.callId];
|
|
12763
12769
|
}
|
|
12764
12770
|
}
|
|
12765
12771
|
|
|
12772
|
+
_getUnassociatedMapIdFromTrackIdOrStreamId(trackId , streamId ) {
|
|
12773
|
+
// Find by trackId
|
|
12774
|
+
if (trackId in this._unassociatedVideoStreams) {
|
|
12775
|
+
return trackId;
|
|
12776
|
+
}
|
|
12777
|
+
|
|
12778
|
+
// Find by streamId
|
|
12779
|
+
if (streamId && streamId in this._unassociatedVideoStreams) {
|
|
12780
|
+
return streamId;
|
|
12781
|
+
}
|
|
12782
|
+
|
|
12783
|
+
// Find in all the streams by streamId (used on FF where we can't map by trackId)
|
|
12784
|
+
const idx = Object.values(this._unassociatedVideoStreams).findIndex((stream ) => stream.id === streamId);
|
|
12785
|
+
return idx === -1 ? null : Object.keys(this._unassociatedVideoStreams)[idx];
|
|
12786
|
+
}
|
|
12787
|
+
|
|
12788
|
+
_getStreamIdFrTrackId(trackId ) {
|
|
12789
|
+
const mapping = Object.values(this._callIdStreamIdMap).find((map ) => map.trackId === trackId);
|
|
12790
|
+
|
|
12791
|
+
return mapping ? mapping.streamId : null;
|
|
12792
|
+
}
|
|
12793
|
+
|
|
12766
12794
|
_associateStreamTo(rawStream , participant ) {
|
|
12767
12795
|
const stream = new Wazo.Stream(rawStream, participant);
|
|
12768
12796
|
participant.streams.push(stream);
|
package/esm/simple/Auth.js
CHANGED
|
@@ -11485,9 +11485,11 @@ class Room$1 extends Emitter {
|
|
|
11485
11485
|
_onParticipantTrackUpdate(oldParticipant , update ) {
|
|
11486
11486
|
const newParticipant = oldParticipant;
|
|
11487
11487
|
|
|
11488
|
-
const { trackId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
11488
|
+
const { trackId, streamId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
11489
11489
|
const pc = Wazo.Phone.phone.currentSipSession.sessionDescriptionHandler.peerConnection;
|
|
11490
|
-
|
|
11490
|
+
// Can't use `getReceivers` here because on FF we make the mapping based on the streamId
|
|
11491
|
+
const stream = pc.getRemoteStreams().find(someStream =>
|
|
11492
|
+
someStream.id === streamId || someStream.getTracks().some(track => track.id === trackId));
|
|
11491
11493
|
|
|
11492
11494
|
if (update === 'downgrade') {
|
|
11493
11495
|
newParticipant.streams = [];
|
|
@@ -11517,15 +11519,41 @@ class Room$1 extends Emitter {
|
|
|
11517
11519
|
return;
|
|
11518
11520
|
}
|
|
11519
11521
|
|
|
11520
|
-
|
|
11522
|
+
const streamId = this._getStreamIdFrTrackId(trackId);
|
|
11523
|
+
const key = this._getUnassociatedMapIdFromTrackIdOrStreamId(trackId, streamId);
|
|
11524
|
+
const stream = this._unassociatedVideoStreams[key];
|
|
11525
|
+
|
|
11526
|
+
if (stream) {
|
|
11521
11527
|
// Try to associate stream
|
|
11522
|
-
this._associateStreamTo(
|
|
11528
|
+
this._associateStreamTo(stream, participant);
|
|
11523
11529
|
|
|
11524
|
-
delete this._unassociatedVideoStreams[
|
|
11530
|
+
delete this._unassociatedVideoStreams[key];
|
|
11525
11531
|
delete this._unassociatedParticipants[participant.callId];
|
|
11526
11532
|
}
|
|
11527
11533
|
}
|
|
11528
11534
|
|
|
11535
|
+
_getUnassociatedMapIdFromTrackIdOrStreamId(trackId , streamId ) {
|
|
11536
|
+
// Find by trackId
|
|
11537
|
+
if (trackId in this._unassociatedVideoStreams) {
|
|
11538
|
+
return trackId;
|
|
11539
|
+
}
|
|
11540
|
+
|
|
11541
|
+
// Find by streamId
|
|
11542
|
+
if (streamId && streamId in this._unassociatedVideoStreams) {
|
|
11543
|
+
return streamId;
|
|
11544
|
+
}
|
|
11545
|
+
|
|
11546
|
+
// Find in all the streams by streamId (used on FF where we can't map by trackId)
|
|
11547
|
+
const idx = Object.values(this._unassociatedVideoStreams).findIndex((stream ) => stream.id === streamId);
|
|
11548
|
+
return idx === -1 ? null : Object.keys(this._unassociatedVideoStreams)[idx];
|
|
11549
|
+
}
|
|
11550
|
+
|
|
11551
|
+
_getStreamIdFrTrackId(trackId ) {
|
|
11552
|
+
const mapping = Object.values(this._callIdStreamIdMap).find((map ) => map.trackId === trackId);
|
|
11553
|
+
|
|
11554
|
+
return mapping ? mapping.streamId : null;
|
|
11555
|
+
}
|
|
11556
|
+
|
|
11529
11557
|
_associateStreamTo(rawStream , participant ) {
|
|
11530
11558
|
const stream = new Wazo.Stream(rawStream, participant);
|
|
11531
11559
|
participant.streams.push(stream);
|
|
@@ -11485,9 +11485,11 @@ class Room$1 extends Emitter {
|
|
|
11485
11485
|
_onParticipantTrackUpdate(oldParticipant , update ) {
|
|
11486
11486
|
const newParticipant = oldParticipant;
|
|
11487
11487
|
|
|
11488
|
-
const { trackId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
11488
|
+
const { trackId, streamId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
11489
11489
|
const pc = Wazo.Phone.phone.currentSipSession.sessionDescriptionHandler.peerConnection;
|
|
11490
|
-
|
|
11490
|
+
// Can't use `getReceivers` here because on FF we make the mapping based on the streamId
|
|
11491
|
+
const stream = pc.getRemoteStreams().find(someStream =>
|
|
11492
|
+
someStream.id === streamId || someStream.getTracks().some(track => track.id === trackId));
|
|
11491
11493
|
|
|
11492
11494
|
if (update === 'downgrade') {
|
|
11493
11495
|
newParticipant.streams = [];
|
|
@@ -11517,15 +11519,41 @@ class Room$1 extends Emitter {
|
|
|
11517
11519
|
return;
|
|
11518
11520
|
}
|
|
11519
11521
|
|
|
11520
|
-
|
|
11522
|
+
const streamId = this._getStreamIdFrTrackId(trackId);
|
|
11523
|
+
const key = this._getUnassociatedMapIdFromTrackIdOrStreamId(trackId, streamId);
|
|
11524
|
+
const stream = this._unassociatedVideoStreams[key];
|
|
11525
|
+
|
|
11526
|
+
if (stream) {
|
|
11521
11527
|
// Try to associate stream
|
|
11522
|
-
this._associateStreamTo(
|
|
11528
|
+
this._associateStreamTo(stream, participant);
|
|
11523
11529
|
|
|
11524
|
-
delete this._unassociatedVideoStreams[
|
|
11530
|
+
delete this._unassociatedVideoStreams[key];
|
|
11525
11531
|
delete this._unassociatedParticipants[participant.callId];
|
|
11526
11532
|
}
|
|
11527
11533
|
}
|
|
11528
11534
|
|
|
11535
|
+
_getUnassociatedMapIdFromTrackIdOrStreamId(trackId , streamId ) {
|
|
11536
|
+
// Find by trackId
|
|
11537
|
+
if (trackId in this._unassociatedVideoStreams) {
|
|
11538
|
+
return trackId;
|
|
11539
|
+
}
|
|
11540
|
+
|
|
11541
|
+
// Find by streamId
|
|
11542
|
+
if (streamId && streamId in this._unassociatedVideoStreams) {
|
|
11543
|
+
return streamId;
|
|
11544
|
+
}
|
|
11545
|
+
|
|
11546
|
+
// Find in all the streams by streamId (used on FF where we can't map by trackId)
|
|
11547
|
+
const idx = Object.values(this._unassociatedVideoStreams).findIndex((stream ) => stream.id === streamId);
|
|
11548
|
+
return idx === -1 ? null : Object.keys(this._unassociatedVideoStreams)[idx];
|
|
11549
|
+
}
|
|
11550
|
+
|
|
11551
|
+
_getStreamIdFrTrackId(trackId ) {
|
|
11552
|
+
const mapping = Object.values(this._callIdStreamIdMap).find((map ) => map.trackId === trackId);
|
|
11553
|
+
|
|
11554
|
+
return mapping ? mapping.streamId : null;
|
|
11555
|
+
}
|
|
11556
|
+
|
|
11529
11557
|
_associateStreamTo(rawStream , participant ) {
|
|
11530
11558
|
const stream = new Wazo.Stream(rawStream, participant);
|
|
11531
11559
|
participant.streams.push(stream);
|
package/esm/simple/Phone.js
CHANGED
|
@@ -11358,9 +11358,11 @@ class Room$1 extends Emitter {
|
|
|
11358
11358
|
_onParticipantTrackUpdate(oldParticipant , update ) {
|
|
11359
11359
|
const newParticipant = oldParticipant;
|
|
11360
11360
|
|
|
11361
|
-
const { trackId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
11361
|
+
const { trackId, streamId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
11362
11362
|
const pc = Wazo.Phone.phone.currentSipSession.sessionDescriptionHandler.peerConnection;
|
|
11363
|
-
|
|
11363
|
+
// Can't use `getReceivers` here because on FF we make the mapping based on the streamId
|
|
11364
|
+
const stream = pc.getRemoteStreams().find(someStream =>
|
|
11365
|
+
someStream.id === streamId || someStream.getTracks().some(track => track.id === trackId));
|
|
11364
11366
|
|
|
11365
11367
|
if (update === 'downgrade') {
|
|
11366
11368
|
newParticipant.streams = [];
|
|
@@ -11390,15 +11392,41 @@ class Room$1 extends Emitter {
|
|
|
11390
11392
|
return;
|
|
11391
11393
|
}
|
|
11392
11394
|
|
|
11393
|
-
|
|
11395
|
+
const streamId = this._getStreamIdFrTrackId(trackId);
|
|
11396
|
+
const key = this._getUnassociatedMapIdFromTrackIdOrStreamId(trackId, streamId);
|
|
11397
|
+
const stream = this._unassociatedVideoStreams[key];
|
|
11398
|
+
|
|
11399
|
+
if (stream) {
|
|
11394
11400
|
// Try to associate stream
|
|
11395
|
-
this._associateStreamTo(
|
|
11401
|
+
this._associateStreamTo(stream, participant);
|
|
11396
11402
|
|
|
11397
|
-
delete this._unassociatedVideoStreams[
|
|
11403
|
+
delete this._unassociatedVideoStreams[key];
|
|
11398
11404
|
delete this._unassociatedParticipants[participant.callId];
|
|
11399
11405
|
}
|
|
11400
11406
|
}
|
|
11401
11407
|
|
|
11408
|
+
_getUnassociatedMapIdFromTrackIdOrStreamId(trackId , streamId ) {
|
|
11409
|
+
// Find by trackId
|
|
11410
|
+
if (trackId in this._unassociatedVideoStreams) {
|
|
11411
|
+
return trackId;
|
|
11412
|
+
}
|
|
11413
|
+
|
|
11414
|
+
// Find by streamId
|
|
11415
|
+
if (streamId && streamId in this._unassociatedVideoStreams) {
|
|
11416
|
+
return streamId;
|
|
11417
|
+
}
|
|
11418
|
+
|
|
11419
|
+
// Find in all the streams by streamId (used on FF where we can't map by trackId)
|
|
11420
|
+
const idx = Object.values(this._unassociatedVideoStreams).findIndex((stream ) => stream.id === streamId);
|
|
11421
|
+
return idx === -1 ? null : Object.keys(this._unassociatedVideoStreams)[idx];
|
|
11422
|
+
}
|
|
11423
|
+
|
|
11424
|
+
_getStreamIdFrTrackId(trackId ) {
|
|
11425
|
+
const mapping = Object.values(this._callIdStreamIdMap).find((map ) => map.trackId === trackId);
|
|
11426
|
+
|
|
11427
|
+
return mapping ? mapping.streamId : null;
|
|
11428
|
+
}
|
|
11429
|
+
|
|
11402
11430
|
_associateStreamTo(rawStream , participant ) {
|
|
11403
11431
|
const stream = new Wazo.Stream(rawStream, participant);
|
|
11404
11432
|
participant.streams.push(stream);
|
package/esm/simple/index.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);
|
|
@@ -12613,9 +12613,11 @@ class Room extends Emitter {
|
|
|
12613
12613
|
_onParticipantTrackUpdate(oldParticipant , update ) {
|
|
12614
12614
|
const newParticipant = oldParticipant;
|
|
12615
12615
|
|
|
12616
|
-
const { trackId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
12616
|
+
const { trackId, streamId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
12617
12617
|
const pc = Wazo.Phone.phone.currentSipSession.sessionDescriptionHandler.peerConnection;
|
|
12618
|
-
|
|
12618
|
+
// Can't use `getReceivers` here because on FF we make the mapping based on the streamId
|
|
12619
|
+
const stream = pc.getRemoteStreams().find(someStream =>
|
|
12620
|
+
someStream.id === streamId || someStream.getTracks().some(track => track.id === trackId));
|
|
12619
12621
|
|
|
12620
12622
|
if (update === 'downgrade') {
|
|
12621
12623
|
newParticipant.streams = [];
|
|
@@ -12645,15 +12647,41 @@ class Room extends Emitter {
|
|
|
12645
12647
|
return;
|
|
12646
12648
|
}
|
|
12647
12649
|
|
|
12648
|
-
|
|
12650
|
+
const streamId = this._getStreamIdFrTrackId(trackId);
|
|
12651
|
+
const key = this._getUnassociatedMapIdFromTrackIdOrStreamId(trackId, streamId);
|
|
12652
|
+
const stream = this._unassociatedVideoStreams[key];
|
|
12653
|
+
|
|
12654
|
+
if (stream) {
|
|
12649
12655
|
// Try to associate stream
|
|
12650
|
-
this._associateStreamTo(
|
|
12656
|
+
this._associateStreamTo(stream, participant);
|
|
12651
12657
|
|
|
12652
|
-
delete this._unassociatedVideoStreams[
|
|
12658
|
+
delete this._unassociatedVideoStreams[key];
|
|
12653
12659
|
delete this._unassociatedParticipants[participant.callId];
|
|
12654
12660
|
}
|
|
12655
12661
|
}
|
|
12656
12662
|
|
|
12663
|
+
_getUnassociatedMapIdFromTrackIdOrStreamId(trackId , streamId ) {
|
|
12664
|
+
// Find by trackId
|
|
12665
|
+
if (trackId in this._unassociatedVideoStreams) {
|
|
12666
|
+
return trackId;
|
|
12667
|
+
}
|
|
12668
|
+
|
|
12669
|
+
// Find by streamId
|
|
12670
|
+
if (streamId && streamId in this._unassociatedVideoStreams) {
|
|
12671
|
+
return streamId;
|
|
12672
|
+
}
|
|
12673
|
+
|
|
12674
|
+
// Find in all the streams by streamId (used on FF where we can't map by trackId)
|
|
12675
|
+
const idx = Object.values(this._unassociatedVideoStreams).findIndex((stream ) => stream.id === streamId);
|
|
12676
|
+
return idx === -1 ? null : Object.keys(this._unassociatedVideoStreams)[idx];
|
|
12677
|
+
}
|
|
12678
|
+
|
|
12679
|
+
_getStreamIdFrTrackId(trackId ) {
|
|
12680
|
+
const mapping = Object.values(this._callIdStreamIdMap).find((map ) => map.trackId === trackId);
|
|
12681
|
+
|
|
12682
|
+
return mapping ? mapping.streamId : null;
|
|
12683
|
+
}
|
|
12684
|
+
|
|
12657
12685
|
_associateStreamTo(rawStream , participant ) {
|
|
12658
12686
|
const stream = new Wazo.Stream(rawStream, participant);
|
|
12659
12687
|
participant.streams.push(stream);
|
|
@@ -12618,9 +12618,11 @@ class Room extends Emitter {
|
|
|
12618
12618
|
_onParticipantTrackUpdate(oldParticipant , update ) {
|
|
12619
12619
|
const newParticipant = oldParticipant;
|
|
12620
12620
|
|
|
12621
|
-
const { trackId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
12621
|
+
const { trackId, streamId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
12622
12622
|
const pc = Wazo.Phone.phone.currentSipSession.sessionDescriptionHandler.peerConnection;
|
|
12623
|
-
|
|
12623
|
+
// Can't use `getReceivers` here because on FF we make the mapping based on the streamId
|
|
12624
|
+
const stream = pc.getRemoteStreams().find(someStream =>
|
|
12625
|
+
someStream.id === streamId || someStream.getTracks().some(track => track.id === trackId));
|
|
12624
12626
|
|
|
12625
12627
|
if (update === 'downgrade') {
|
|
12626
12628
|
newParticipant.streams = [];
|
|
@@ -12650,15 +12652,41 @@ class Room extends Emitter {
|
|
|
12650
12652
|
return;
|
|
12651
12653
|
}
|
|
12652
12654
|
|
|
12653
|
-
|
|
12655
|
+
const streamId = this._getStreamIdFrTrackId(trackId);
|
|
12656
|
+
const key = this._getUnassociatedMapIdFromTrackIdOrStreamId(trackId, streamId);
|
|
12657
|
+
const stream = this._unassociatedVideoStreams[key];
|
|
12658
|
+
|
|
12659
|
+
if (stream) {
|
|
12654
12660
|
// Try to associate stream
|
|
12655
|
-
this._associateStreamTo(
|
|
12661
|
+
this._associateStreamTo(stream, participant);
|
|
12656
12662
|
|
|
12657
|
-
delete this._unassociatedVideoStreams[
|
|
12663
|
+
delete this._unassociatedVideoStreams[key];
|
|
12658
12664
|
delete this._unassociatedParticipants[participant.callId];
|
|
12659
12665
|
}
|
|
12660
12666
|
}
|
|
12661
12667
|
|
|
12668
|
+
_getUnassociatedMapIdFromTrackIdOrStreamId(trackId , streamId ) {
|
|
12669
|
+
// Find by trackId
|
|
12670
|
+
if (trackId in this._unassociatedVideoStreams) {
|
|
12671
|
+
return trackId;
|
|
12672
|
+
}
|
|
12673
|
+
|
|
12674
|
+
// Find by streamId
|
|
12675
|
+
if (streamId && streamId in this._unassociatedVideoStreams) {
|
|
12676
|
+
return streamId;
|
|
12677
|
+
}
|
|
12678
|
+
|
|
12679
|
+
// Find in all the streams by streamId (used on FF where we can't map by trackId)
|
|
12680
|
+
const idx = Object.values(this._unassociatedVideoStreams).findIndex((stream ) => stream.id === streamId);
|
|
12681
|
+
return idx === -1 ? null : Object.keys(this._unassociatedVideoStreams)[idx];
|
|
12682
|
+
}
|
|
12683
|
+
|
|
12684
|
+
_getStreamIdFrTrackId(trackId ) {
|
|
12685
|
+
const mapping = Object.values(this._callIdStreamIdMap).find((map ) => map.trackId === trackId);
|
|
12686
|
+
|
|
12687
|
+
return mapping ? mapping.streamId : null;
|
|
12688
|
+
}
|
|
12689
|
+
|
|
12662
12690
|
_associateStreamTo(rawStream , participant ) {
|
|
12663
12691
|
const stream = new Wazo.Stream(rawStream, participant);
|
|
12664
12692
|
participant.streams.push(stream);
|
|
@@ -12892,9 +12892,11 @@ class Room extends Emitter {
|
|
|
12892
12892
|
_onParticipantTrackUpdate(oldParticipant , update ) {
|
|
12893
12893
|
const newParticipant = oldParticipant;
|
|
12894
12894
|
|
|
12895
|
-
const { trackId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
12895
|
+
const { trackId, streamId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
12896
12896
|
const pc = Wazo.Phone.phone.currentSipSession.sessionDescriptionHandler.peerConnection;
|
|
12897
|
-
|
|
12897
|
+
// Can't use `getReceivers` here because on FF we make the mapping based on the streamId
|
|
12898
|
+
const stream = pc.getRemoteStreams().find(someStream =>
|
|
12899
|
+
someStream.id === streamId || someStream.getTracks().some(track => track.id === trackId));
|
|
12898
12900
|
|
|
12899
12901
|
if (update === 'downgrade') {
|
|
12900
12902
|
newParticipant.streams = [];
|
|
@@ -12924,15 +12926,41 @@ class Room extends Emitter {
|
|
|
12924
12926
|
return;
|
|
12925
12927
|
}
|
|
12926
12928
|
|
|
12927
|
-
|
|
12929
|
+
const streamId = this._getStreamIdFrTrackId(trackId);
|
|
12930
|
+
const key = this._getUnassociatedMapIdFromTrackIdOrStreamId(trackId, streamId);
|
|
12931
|
+
const stream = this._unassociatedVideoStreams[key];
|
|
12932
|
+
|
|
12933
|
+
if (stream) {
|
|
12928
12934
|
// Try to associate stream
|
|
12929
|
-
this._associateStreamTo(
|
|
12935
|
+
this._associateStreamTo(stream, participant);
|
|
12930
12936
|
|
|
12931
|
-
delete this._unassociatedVideoStreams[
|
|
12937
|
+
delete this._unassociatedVideoStreams[key];
|
|
12932
12938
|
delete this._unassociatedParticipants[participant.callId];
|
|
12933
12939
|
}
|
|
12934
12940
|
}
|
|
12935
12941
|
|
|
12942
|
+
_getUnassociatedMapIdFromTrackIdOrStreamId(trackId , streamId ) {
|
|
12943
|
+
// Find by trackId
|
|
12944
|
+
if (trackId in this._unassociatedVideoStreams) {
|
|
12945
|
+
return trackId;
|
|
12946
|
+
}
|
|
12947
|
+
|
|
12948
|
+
// Find by streamId
|
|
12949
|
+
if (streamId && streamId in this._unassociatedVideoStreams) {
|
|
12950
|
+
return streamId;
|
|
12951
|
+
}
|
|
12952
|
+
|
|
12953
|
+
// Find in all the streams by streamId (used on FF where we can't map by trackId)
|
|
12954
|
+
const idx = Object.values(this._unassociatedVideoStreams).findIndex((stream ) => stream.id === streamId);
|
|
12955
|
+
return idx === -1 ? null : Object.keys(this._unassociatedVideoStreams)[idx];
|
|
12956
|
+
}
|
|
12957
|
+
|
|
12958
|
+
_getStreamIdFrTrackId(trackId ) {
|
|
12959
|
+
const mapping = Object.values(this._callIdStreamIdMap).find((map ) => map.trackId === trackId);
|
|
12960
|
+
|
|
12961
|
+
return mapping ? mapping.streamId : null;
|
|
12962
|
+
}
|
|
12963
|
+
|
|
12936
12964
|
_associateStreamTo(rawStream , participant ) {
|
|
12937
12965
|
const stream = new Wazo.Stream(rawStream, participant);
|
|
12938
12966
|
participant.streams.push(stream);
|
package/esm/simple/room/Room.js
CHANGED
|
@@ -12903,9 +12903,11 @@ class Room extends Emitter {
|
|
|
12903
12903
|
_onParticipantTrackUpdate(oldParticipant , update ) {
|
|
12904
12904
|
const newParticipant = oldParticipant;
|
|
12905
12905
|
|
|
12906
|
-
const { trackId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
12906
|
+
const { trackId, streamId } = this._callIdStreamIdMap[newParticipant.callId] || {};
|
|
12907
12907
|
const pc = Wazo.Phone.phone.currentSipSession.sessionDescriptionHandler.peerConnection;
|
|
12908
|
-
|
|
12908
|
+
// Can't use `getReceivers` here because on FF we make the mapping based on the streamId
|
|
12909
|
+
const stream = pc.getRemoteStreams().find(someStream =>
|
|
12910
|
+
someStream.id === streamId || someStream.getTracks().some(track => track.id === trackId));
|
|
12909
12911
|
|
|
12910
12912
|
if (update === 'downgrade') {
|
|
12911
12913
|
newParticipant.streams = [];
|
|
@@ -12935,15 +12937,41 @@ class Room extends Emitter {
|
|
|
12935
12937
|
return;
|
|
12936
12938
|
}
|
|
12937
12939
|
|
|
12938
|
-
|
|
12940
|
+
const streamId = this._getStreamIdFrTrackId(trackId);
|
|
12941
|
+
const key = this._getUnassociatedMapIdFromTrackIdOrStreamId(trackId, streamId);
|
|
12942
|
+
const stream = this._unassociatedVideoStreams[key];
|
|
12943
|
+
|
|
12944
|
+
if (stream) {
|
|
12939
12945
|
// Try to associate stream
|
|
12940
|
-
this._associateStreamTo(
|
|
12946
|
+
this._associateStreamTo(stream, participant);
|
|
12941
12947
|
|
|
12942
|
-
delete this._unassociatedVideoStreams[
|
|
12948
|
+
delete this._unassociatedVideoStreams[key];
|
|
12943
12949
|
delete this._unassociatedParticipants[participant.callId];
|
|
12944
12950
|
}
|
|
12945
12951
|
}
|
|
12946
12952
|
|
|
12953
|
+
_getUnassociatedMapIdFromTrackIdOrStreamId(trackId , streamId ) {
|
|
12954
|
+
// Find by trackId
|
|
12955
|
+
if (trackId in this._unassociatedVideoStreams) {
|
|
12956
|
+
return trackId;
|
|
12957
|
+
}
|
|
12958
|
+
|
|
12959
|
+
// Find by streamId
|
|
12960
|
+
if (streamId && streamId in this._unassociatedVideoStreams) {
|
|
12961
|
+
return streamId;
|
|
12962
|
+
}
|
|
12963
|
+
|
|
12964
|
+
// Find in all the streams by streamId (used on FF where we can't map by trackId)
|
|
12965
|
+
const idx = Object.values(this._unassociatedVideoStreams).findIndex((stream ) => stream.id === streamId);
|
|
12966
|
+
return idx === -1 ? null : Object.keys(this._unassociatedVideoStreams)[idx];
|
|
12967
|
+
}
|
|
12968
|
+
|
|
12969
|
+
_getStreamIdFrTrackId(trackId ) {
|
|
12970
|
+
const mapping = Object.values(this._callIdStreamIdMap).find((map ) => map.trackId === trackId);
|
|
12971
|
+
|
|
12972
|
+
return mapping ? mapping.streamId : null;
|
|
12973
|
+
}
|
|
12974
|
+
|
|
12947
12975
|
_associateStreamTo(rawStream , participant ) {
|
|
12948
12976
|
const stream = new Wazo.Stream(rawStream, participant);
|
|
12949
12977
|
participant.streams.push(stream);
|
|
@@ -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);
|
|
@@ -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);
|