@webex/plugin-meetings 3.8.0-next.57 → 3.8.0-next.59
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/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/constants.js +1 -120
- package/dist/constants.js.map +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/selfUtils.js +405 -418
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/meeting/index.js +15 -13
- package/dist/meeting/index.js.map +1 -1
- package/dist/types/constants.d.ts +0 -85
- package/dist/types/locus-info/selfUtils.d.ts +247 -1
- package/dist/webinar/index.js +1 -1
- package/package.json +5 -5
- package/src/constants.ts +0 -90
- package/src/locus-info/selfUtils.ts +451 -447
- package/src/meeting/index.ts +14 -15
- package/test/unit/spec/meeting/index.js +22 -25
package/src/meeting/index.ts
CHANGED
@@ -100,7 +100,6 @@ import {
|
|
100
100
|
MEETING_STATE_MACHINE,
|
101
101
|
MEETING_STATE,
|
102
102
|
MEETINGS,
|
103
|
-
MQA_STATS,
|
104
103
|
NETWORK_STATUS,
|
105
104
|
ONLINE,
|
106
105
|
OFFLINE,
|
@@ -6822,20 +6821,20 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
6822
6821
|
* @memberof Meetings
|
6823
6822
|
*/
|
6824
6823
|
setupStatsAnalyzerEventHandlers = () => {
|
6825
|
-
this.statsAnalyzer.on(StatsAnalyzerEventNames.MEDIA_QUALITY, (
|
6826
|
-
//
|
6827
|
-
|
6828
|
-
|
6829
|
-
|
6830
|
-
|
6831
|
-
|
6832
|
-
|
6833
|
-
|
6824
|
+
this.statsAnalyzer.on(StatsAnalyzerEventNames.MEDIA_QUALITY, (event) => {
|
6825
|
+
// Add IP address from geoHintInfo if missing.
|
6826
|
+
if (event.data.intervalMetadata.maskedPeerReflexiveIP === '0.0.0.0') {
|
6827
|
+
// @ts-ignore fix type
|
6828
|
+
const clientAddressFromGeoHint = this.webex.meetings.geoHintInfo?.clientAddress;
|
6829
|
+
if (clientAddressFromGeoHint) {
|
6830
|
+
event.data.intervalMetadata.maskedPeerReflexiveIP =
|
6831
|
+
CallDiagnosticUtils.anonymizeIPAddress(clientAddressFromGeoHint);
|
6832
|
+
}
|
6833
|
+
}
|
6834
6834
|
|
6835
|
+
// Count members that are in the meeting.
|
6835
6836
|
const {members} = this.getMembers().membersCollection;
|
6836
|
-
|
6837
|
-
// Count members that are in the meeting
|
6838
|
-
options.data.intervalMetadata.meetingUserCount = Object.values(members).filter(
|
6837
|
+
event.data.intervalMetadata.meetingUserCount = Object.values(members).filter(
|
6839
6838
|
(member: Member) => member.isInMeeting
|
6840
6839
|
).length;
|
6841
6840
|
|
@@ -6844,10 +6843,10 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
6844
6843
|
name: 'client.mediaquality.event',
|
6845
6844
|
options: {
|
6846
6845
|
meetingId: this.id,
|
6847
|
-
networkType:
|
6846
|
+
networkType: this.statsAnalyzer.getNetworkType(),
|
6848
6847
|
},
|
6849
6848
|
payload: {
|
6850
|
-
intervals: [
|
6849
|
+
intervals: [event.data],
|
6851
6850
|
},
|
6852
6851
|
});
|
6853
6852
|
});
|
@@ -2762,7 +2762,7 @@ describe('plugin-meetings', () => {
|
|
2762
2762
|
turnDiscoverySkippedReason: undefined,
|
2763
2763
|
});
|
2764
2764
|
meeting.meetingState = 'ACTIVE';
|
2765
|
-
const error = {iceConnected: false}
|
2765
|
+
const error = {iceConnected: false};
|
2766
2766
|
meeting.mediaProperties.waitForMediaConnectionConnected.rejects(error);
|
2767
2767
|
|
2768
2768
|
const forceRtcMetricsSend = sinon.stub().resolves();
|
@@ -3435,28 +3435,23 @@ describe('plugin-meetings', () => {
|
|
3435
3435
|
on: sinon.stub(),
|
3436
3436
|
});
|
3437
3437
|
|
3438
|
-
await meeting
|
3439
|
-
|
3440
|
-
|
3441
|
-
});
|
3438
|
+
await meeting.addMedia({
|
3439
|
+
mediaSettings: {},
|
3440
|
+
});
|
3442
3441
|
|
3443
|
-
assert.calledWith(
|
3444
|
-
|
3445
|
-
|
3446
|
-
|
3447
|
-
|
3448
|
-
|
3449
|
-
|
3450
|
-
|
3451
|
-
|
3452
|
-
|
3453
|
-
|
3454
|
-
|
3455
|
-
|
3456
|
-
reachability_public_udp_success: 5,
|
3457
|
-
isSubnetReachable: false,
|
3458
|
-
}
|
3459
|
-
);
|
3442
|
+
assert.calledWith(Metrics.sendBehavioralMetric, BEHAVIORAL_METRICS.ADD_MEDIA_SUCCESS, {
|
3443
|
+
correlation_id: meeting.correlationId,
|
3444
|
+
locus_id: meeting.locusUrl.split('/').pop(),
|
3445
|
+
connectionType: 'udp',
|
3446
|
+
selectedCandidatePairChanges: 2,
|
3447
|
+
numTransports: 1,
|
3448
|
+
isMultistream: false,
|
3449
|
+
retriedWithTurnServer: false,
|
3450
|
+
isJoinWithMediaRetry: false,
|
3451
|
+
iceCandidatesCount: 0,
|
3452
|
+
reachability_public_udp_success: 5,
|
3453
|
+
isSubnetReachable: false,
|
3454
|
+
});
|
3460
3455
|
});
|
3461
3456
|
|
3462
3457
|
it('should send valid isSubnetReachability if media connection fails', async () => {
|
@@ -3536,6 +3531,8 @@ describe('plugin-meetings', () => {
|
|
3536
3531
|
meeting.config.stats.enableStatsAnalyzer = true;
|
3537
3532
|
|
3538
3533
|
statsAnalyzerStub = new EventsScope();
|
3534
|
+
statsAnalyzerStub.getNetworkType = sinon.stub().returns('wifi');
|
3535
|
+
|
3539
3536
|
// mock the StatsAnalyzer constructor
|
3540
3537
|
sinon.stub(InternalMediaCoreModule, 'StatsAnalyzer').returns(statsAnalyzerStub);
|
3541
3538
|
|
@@ -3830,7 +3827,7 @@ describe('plugin-meetings', () => {
|
|
3830
3827
|
},
|
3831
3828
|
};
|
3832
3829
|
sinon.stub(meeting, 'getMembers').returns({membersCollection: fakeMembersCollection});
|
3833
|
-
const fakeData = {intervalMetadata: {}
|
3830
|
+
const fakeData = {intervalMetadata: {}};
|
3834
3831
|
|
3835
3832
|
statsAnalyzerStub.emit(
|
3836
3833
|
{file: 'test', function: 'test'},
|
@@ -3871,7 +3868,7 @@ describe('plugin-meetings', () => {
|
|
3871
3868
|
});
|
3872
3869
|
|
3873
3870
|
it('calls submitMQE correctly', async () => {
|
3874
|
-
const fakeData = {intervalMetadata: {bla: 'bla'}
|
3871
|
+
const fakeData = {intervalMetadata: {bla: 'bla'}};
|
3875
3872
|
|
3876
3873
|
statsAnalyzerStub.emit(
|
3877
3874
|
{file: 'test', function: 'test'},
|
@@ -4081,7 +4078,7 @@ describe('plugin-meetings', () => {
|
|
4081
4078
|
meetingId: meeting.id,
|
4082
4079
|
rawError: {
|
4083
4080
|
iceConnected: false,
|
4084
|
-
}
|
4081
|
+
},
|
4085
4082
|
},
|
4086
4083
|
},
|
4087
4084
|
]);
|