@wazo/sdk 0.37.20 → 0.37.24
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 +6 -6
- package/esm/__tests__/api-client.test.js +91 -21
- package/esm/__tests__/web-rtc-client.test.js +214 -165
- package/esm/api/agentd.js +25 -2
- package/esm/api/amid.js +26 -3
- package/esm/api/application.js +25 -2
- package/esm/api/auth.js +25 -2
- package/esm/api/call-logd.js +34 -4
- package/esm/api/calld.js +35 -2
- package/esm/api/chatd.js +32 -2
- package/esm/api/confd.js +56 -9
- package/esm/api/ctid-ng.js +38 -5
- package/esm/api/dird.js +29 -3
- package/esm/api/webhookd.js +26 -3
- package/esm/api-client.js +91 -21
- package/esm/checker/Checker.js +241 -190
- package/esm/checker/checks/aor.js +91 -21
- package/esm/checker/checks/api.js +91 -21
- package/esm/checker/checks/index.js +231 -180
- package/esm/checker/checks/wazo-websocket.js +42 -17
- package/esm/checker/checks/webrtc-transport.js +214 -165
- package/esm/checker/checks/webrtc.js +214 -165
- package/esm/domain/AdHocAPIConference.js +91 -21
- package/esm/domain/Call.js +3 -0
- package/esm/domain/CallLog.js +8 -1
- package/esm/domain/ChatMessage.js +4 -0
- package/esm/domain/ChatRoom.js +3 -0
- package/esm/domain/Contact.js +4 -1
- package/esm/domain/Features.js +91 -21
- package/esm/domain/Meeting.js +28 -5
- package/esm/domain/Phone/CTIPhone.js +109 -35
- package/esm/domain/Phone/WebRTCPhone.js +159 -102
- package/esm/domain/Recording.js +3 -0
- package/esm/domain/Voicemail.js +3 -0
- package/esm/domain/__tests__/Call.test.js +3 -0
- package/esm/domain/__tests__/CallLog.test.js +8 -1
- package/esm/domain/__tests__/Contact.test.js +4 -1
- package/esm/domain/__tests__/Meeting.test.js +144 -0
- package/esm/domain/__tests__/Voicemail.test.js +3 -0
- package/esm/index.js +509 -414
- package/esm/lib/WazoSessionDescriptionHandler.js +26 -41
- package/esm/service/CallApi.js +91 -21
- package/esm/service/IssueReporter.js +26 -3
- package/esm/service/__tests__/IssueReporter.test.js +26 -3
- package/esm/service/getApiClient.js +91 -21
- package/esm/simple/Auth.js +499 -404
- package/esm/simple/Configuration.js +499 -404
- package/esm/simple/Directory.js +91 -21
- package/esm/simple/Phone.js +499 -404
- package/esm/simple/Websocket.js +45 -19
- package/esm/simple/index.js +503 -408
- package/esm/simple/room/LocalParticipant.js +503 -408
- package/esm/simple/room/Participant.js +503 -408
- package/esm/simple/room/RemoteParticipant.js +503 -408
- package/esm/simple/room/Room.js +504 -409
- package/esm/simple/room/SipRoom.js +503 -408
- package/esm/simple/room/Stream.js +503 -408
- package/esm/simple/room/__tests__/RemoteParticipant.test.js +503 -408
- package/esm/simple/utils.js +503 -408
- package/esm/types/WebSocketMessage.js +1 -1
- package/esm/utils/__tests__/api-requester.test.js +25 -2
- package/esm/utils/api-requester.js +25 -2
- package/esm/web-rtc-client.js +214 -165
- package/esm/websocket-client.js +43 -18
- package/lib/__tests__/api-client.test.js +91 -21
- package/lib/__tests__/web-rtc-client.test.js +214 -165
- package/lib/api/agentd.js +25 -2
- package/lib/api/amid.js +26 -3
- package/lib/api/application.js +25 -2
- package/lib/api/auth.js +25 -2
- package/lib/api/call-logd.js +34 -4
- package/lib/api/calld.js +35 -2
- package/lib/api/chatd.js +32 -2
- package/lib/api/confd.js +56 -9
- package/lib/api/ctid-ng.js +38 -5
- package/lib/api/dird.js +29 -3
- package/lib/api/webhookd.js +26 -3
- package/lib/api-client.js +91 -21
- package/lib/checker/Checker.js +241 -190
- package/lib/checker/checks/aor.js +91 -21
- package/lib/checker/checks/api.js +91 -21
- package/lib/checker/checks/index.js +231 -180
- package/lib/checker/checks/wazo-websocket.js +42 -17
- package/lib/checker/checks/webrtc-transport.js +214 -165
- package/lib/checker/checks/webrtc.js +214 -165
- package/lib/domain/AdHocAPIConference.js +91 -21
- package/lib/domain/Call.js +3 -0
- package/lib/domain/CallLog.js +8 -1
- package/lib/domain/ChatMessage.js +4 -0
- package/lib/domain/ChatRoom.js +3 -0
- package/lib/domain/Contact.js +4 -1
- package/lib/domain/Features.js +91 -21
- package/lib/domain/Meeting.js +32 -5
- package/lib/domain/Phone/CTIPhone.js +109 -35
- package/lib/domain/Phone/WebRTCPhone.js +159 -102
- package/lib/domain/Recording.js +3 -0
- package/lib/domain/Voicemail.js +3 -0
- package/lib/domain/__tests__/Call.test.js +3 -0
- package/lib/domain/__tests__/CallLog.test.js +8 -1
- package/lib/domain/__tests__/Contact.test.js +4 -1
- package/lib/domain/__tests__/Meeting.test.js +150 -0
- package/lib/domain/__tests__/Voicemail.test.js +3 -0
- package/lib/index.js +509 -414
- package/lib/lib/WazoSessionDescriptionHandler.js +26 -41
- package/lib/service/CallApi.js +91 -21
- package/lib/service/IssueReporter.js +26 -3
- package/lib/service/__tests__/IssueReporter.test.js +26 -3
- package/lib/service/getApiClient.js +91 -21
- package/lib/simple/Auth.js +499 -404
- package/lib/simple/Configuration.js +499 -404
- package/lib/simple/Directory.js +91 -21
- package/lib/simple/Phone.js +499 -404
- package/lib/simple/Websocket.js +45 -19
- package/lib/simple/index.js +503 -408
- package/lib/simple/room/LocalParticipant.js +503 -408
- package/lib/simple/room/Participant.js +503 -408
- package/lib/simple/room/RemoteParticipant.js +503 -408
- package/lib/simple/room/Room.js +504 -409
- package/lib/simple/room/SipRoom.js +503 -408
- package/lib/simple/room/Stream.js +503 -408
- package/lib/simple/room/__tests__/RemoteParticipant.test.js +503 -408
- package/lib/simple/utils.js +503 -408
- package/lib/types/WebSocketMessage.js +2 -0
- package/lib/utils/__tests__/api-requester.test.js +25 -2
- package/lib/utils/api-requester.js +25 -2
- package/lib/web-rtc-client.js +214 -165
- package/lib/websocket-client.js +43 -17
- package/package.json +1 -1
- package/src/api/confd.js +5 -2
- package/src/domain/Call.js +3 -0
- package/src/domain/CallLog.js +4 -0
- package/src/domain/ChatMessage.js +4 -0
- package/src/domain/ChatRoom.js +3 -0
- package/src/domain/Contact.js +3 -0
- package/src/domain/Meeting.js +28 -5
- package/src/domain/Phone/CTIPhone.js +4 -0
- package/src/domain/Phone/Phone.js +2 -0
- package/src/domain/Phone/WebRTCPhone.js +49 -15
- package/src/domain/Recording.js +3 -0
- package/src/domain/Voicemail.js +3 -0
- package/src/domain/__tests__/Meeting.test.js +50 -0
- package/src/lib/WazoSessionDescriptionHandler.js +1 -35
- package/src/service/IssueReporter.js +25 -2
- package/src/simple/Phone.js +5 -0
- package/src/types/WebSocketMessage.js +5 -1
- package/src/web-rtc-client.js +41 -24
- package/src/websocket-client.js +2 -0
|
@@ -64,6 +64,7 @@ class IssueReporter {
|
|
|
64
64
|
bufferTimeout: ?TimeoutID;
|
|
65
65
|
_boundProcessBuffer: Function;
|
|
66
66
|
_boundParseLoggerBody: Function;
|
|
67
|
+
_callback: ?Function;
|
|
67
68
|
|
|
68
69
|
constructor() {
|
|
69
70
|
addLevelsTo(this);
|
|
@@ -75,12 +76,17 @@ class IssueReporter {
|
|
|
75
76
|
this.bufferTimeout = null;
|
|
76
77
|
this._boundProcessBuffer = this._processBuffer.bind(this);
|
|
77
78
|
this._boundParseLoggerBody = this._parseLoggerBody.bind(this);
|
|
79
|
+
this._callback = null;
|
|
78
80
|
}
|
|
79
81
|
|
|
80
82
|
init() {
|
|
81
83
|
this._catchConsole();
|
|
82
84
|
}
|
|
83
85
|
|
|
86
|
+
setCallback(cb: Function) {
|
|
87
|
+
this._callback = cb;
|
|
88
|
+
}
|
|
89
|
+
|
|
84
90
|
configureRemoteClient(configuration: Object = { tag: 'wazo-sdk', host: null, port: null, level: null, extra: {} }) {
|
|
85
91
|
this.remoteClientConfiguration = configuration;
|
|
86
92
|
}
|
|
@@ -116,6 +122,7 @@ class IssueReporter {
|
|
|
116
122
|
|
|
117
123
|
// Handle category label
|
|
118
124
|
let category = null;
|
|
125
|
+
let skipSendToRemote = false;
|
|
119
126
|
let extra = {};
|
|
120
127
|
if (args[0].indexOf(CATEGORY_PREFIX) === 0) {
|
|
121
128
|
category = args[0].split('=')[1];
|
|
@@ -131,6 +138,7 @@ class IssueReporter {
|
|
|
131
138
|
errorMessage: lastArg.message,
|
|
132
139
|
errorStack: lastArg.stack,
|
|
133
140
|
errorType: lastArg.constructor.name,
|
|
141
|
+
skipSendToRemote: lastArg.skipSendToRemote,
|
|
134
142
|
};
|
|
135
143
|
} else {
|
|
136
144
|
extra = lastArg;
|
|
@@ -139,6 +147,11 @@ class IssueReporter {
|
|
|
139
147
|
args.splice(1, 1);
|
|
140
148
|
}
|
|
141
149
|
|
|
150
|
+
if (extra.skipSendToRemote) {
|
|
151
|
+
skipSendToRemote = true;
|
|
152
|
+
delete extra.skipSendToRemote;
|
|
153
|
+
}
|
|
154
|
+
|
|
142
155
|
const date = moment().format('YYYY-MM-DD HH:mm:ss.SSS');
|
|
143
156
|
const message = args.join(', ');
|
|
144
157
|
let consoleMessage = message;
|
|
@@ -159,7 +172,13 @@ class IssueReporter {
|
|
|
159
172
|
const oldMethod = this.oldConsoleMethods[consoleLevel] || this.oldConsoleMethods.log;
|
|
160
173
|
oldMethod.apply(oldMethod, [date, consoleMessage]);
|
|
161
174
|
|
|
162
|
-
this.
|
|
175
|
+
if (this._callback) {
|
|
176
|
+
this._callback(level, consoleMessage);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
if (!skipSendToRemote) {
|
|
180
|
+
this._sendToRemoteLogger(level, { date, message, category, ...extra });
|
|
181
|
+
}
|
|
163
182
|
}
|
|
164
183
|
|
|
165
184
|
logRequest(url: string, options: Object, response: Object, start: Date) {
|
|
@@ -304,7 +323,11 @@ class IssueReporter {
|
|
|
304
323
|
},
|
|
305
324
|
// $FlowFixMe
|
|
306
325
|
body,
|
|
307
|
-
}).catch(() => {
|
|
326
|
+
}).catch((e: Error) => {
|
|
327
|
+
// $FlowFixMe
|
|
328
|
+
e.skipSendToRemote = true;
|
|
329
|
+
this.log('error', this._makeCategory('grafana'), 'Sending log to grafana, error', e);
|
|
330
|
+
|
|
308
331
|
setTimeout(() => {
|
|
309
332
|
if (isArray) {
|
|
310
333
|
payload = payload.map(message => {
|
package/src/simple/Phone.js
CHANGED
|
@@ -347,6 +347,11 @@ class Phone extends Emitter {
|
|
|
347
347
|
return this.getRemoteVideoStream(callSession);
|
|
348
348
|
}
|
|
349
349
|
|
|
350
|
+
// Useful in a react-native environment when remoteMediaStream is not updated
|
|
351
|
+
getRemoteVideoStreamFromPc(callSession: CallSession) {
|
|
352
|
+
return this.phone ? this.phone.getRemoteVideoStreamFromPc(callSession) : false;
|
|
353
|
+
}
|
|
354
|
+
|
|
350
355
|
hasVideo(callSession: CallSession): boolean {
|
|
351
356
|
return this.phone ? this.phone.hasVideo(callSession) : false;
|
|
352
357
|
}
|
|
@@ -7,6 +7,7 @@ import type {
|
|
|
7
7
|
} from '../domain/SwitchboardCall';
|
|
8
8
|
import type { ChatMessageResponse } from '../domain/ChatMessage';
|
|
9
9
|
import ChatRoom from '../domain/ChatRoom';
|
|
10
|
+
import Meeting from '../domain/Meeting';
|
|
10
11
|
|
|
11
12
|
type WebSocketBaseMessage = {
|
|
12
13
|
op: string,
|
|
@@ -187,6 +188,8 @@ type AgentStatusUpdate = WebSocketBaseMessage & { data: AgentStatusUpdateEvent,
|
|
|
187
188
|
type AgentPaused = WebSocketBaseMessage & { data: any, name: 'agent_paused' };
|
|
188
189
|
type AgentUnpaused = WebSocketBaseMessage & { data: any, name: 'agent_unpaused' };
|
|
189
190
|
|
|
191
|
+
type MeetingUserProgress = WebSocketBaseMessage & { data: Meeting, name: 'meeting_user_progress' };
|
|
192
|
+
|
|
190
193
|
export type WebSocketMessage =
|
|
191
194
|
| CallCreated
|
|
192
195
|
| CallUpdated
|
|
@@ -219,4 +222,5 @@ export type WebSocketMessage =
|
|
|
219
222
|
| FaxOutboundSucceeded
|
|
220
223
|
| AgentStatusUpdate
|
|
221
224
|
| AgentPaused
|
|
222
|
-
| AgentUnpaused
|
|
225
|
+
| AgentUnpaused
|
|
226
|
+
| MeetingUserProgress;
|
package/src/web-rtc-client.js
CHANGED
|
@@ -478,7 +478,9 @@ export default class WebRTCClient extends Emitter {
|
|
|
478
478
|
const inviteOptions: InviterInviteOptions = {
|
|
479
479
|
requestDelegate: {
|
|
480
480
|
onAccept: (response: IncomingResponse) => {
|
|
481
|
-
session.sessionDescriptionHandler.peerConnection
|
|
481
|
+
if (session.sessionDescriptionHandler.peerConnection) {
|
|
482
|
+
session.sessionDescriptionHandler.peerConnection.sfu = conference;
|
|
483
|
+
}
|
|
482
484
|
this._onAccepted(session, response.session, true);
|
|
483
485
|
},
|
|
484
486
|
onReject: (response: IncomingResponse) => {
|
|
@@ -1350,6 +1352,16 @@ export default class WebRTCClient extends Emitter {
|
|
|
1350
1352
|
return this.hasRemoteVideo(sessionId) ? this.getRemoteStream(sessionId) : null;
|
|
1351
1353
|
}
|
|
1352
1354
|
|
|
1355
|
+
// Useful in a react-native environment when remoteMediaStream is not updated
|
|
1356
|
+
getRemoteVideoStreamFromPc(sessionId: string): ?MediaStream {
|
|
1357
|
+
const pc = this.getPeerConnection(sessionId);
|
|
1358
|
+
if (!pc) {
|
|
1359
|
+
return null;
|
|
1360
|
+
}
|
|
1361
|
+
|
|
1362
|
+
return pc.getRemoteStreams().find(stream => !!stream.getVideoTracks().length);
|
|
1363
|
+
}
|
|
1364
|
+
|
|
1353
1365
|
hasVideo(sessionId: string): boolean {
|
|
1354
1366
|
return this.hasLocalVideo(sessionId) || this.hasRemoteVideo(sessionId);
|
|
1355
1367
|
}
|
|
@@ -1860,6 +1872,7 @@ export default class WebRTCClient extends Emitter {
|
|
|
1860
1872
|
session.sessionDescriptionHandler.remoteMediaStream.onaddtrack = onTrack;
|
|
1861
1873
|
|
|
1862
1874
|
pc.oniceconnectionstatechange = () => {
|
|
1875
|
+
logger.info('on ice connection state changed', { state: pc.iceConnectionState });
|
|
1863
1876
|
if (pc.iceConnectionState === 'disconnected') {
|
|
1864
1877
|
this.eventEmitter.emit(ON_DISCONNECTED);
|
|
1865
1878
|
}
|
|
@@ -2088,25 +2101,25 @@ export default class WebRTCClient extends Emitter {
|
|
|
2088
2101
|
|
|
2089
2102
|
stats.forEach(report => {
|
|
2090
2103
|
if (report.type === 'outbound-rtp' && report.kind === 'audio') {
|
|
2091
|
-
audioBytesSent += report.bytesSent + report.headerBytesSent;
|
|
2104
|
+
audioBytesSent += Number(report.bytesSent) + Number(report.headerBytesSent);
|
|
2092
2105
|
}
|
|
2093
2106
|
if (report.type === 'remote-outbound-rtp' && report.kind === 'audio') {
|
|
2094
|
-
audioBytesSent += report.bytesSent;
|
|
2107
|
+
audioBytesSent += Number(report.bytesSent);
|
|
2095
2108
|
}
|
|
2096
2109
|
if (report.type === 'outbound-rtp' && report.kind === 'video') {
|
|
2097
|
-
videoBytesSent += report.bytesSent + report.headerBytesSent;
|
|
2110
|
+
videoBytesSent += Number(report.bytesSent) + Number(report.headerBytesSent);
|
|
2098
2111
|
}
|
|
2099
2112
|
if (report.type === 'inbound-rtp' && report.kind === 'audio') {
|
|
2100
|
-
packetsLost += report.packetsLost;
|
|
2101
|
-
networkStats.packetsReceived = report.packetsReceived;
|
|
2102
|
-
audioBytesReceived += report.bytesReceived + report.headerBytesReceived;
|
|
2113
|
+
packetsLost += Number(report.packetsLost);
|
|
2114
|
+
networkStats.packetsReceived = Number(report.packetsReceived);
|
|
2115
|
+
audioBytesReceived += Number(report.bytesReceived) + Number(report.headerBytesReceived);
|
|
2103
2116
|
}
|
|
2104
2117
|
if (report.type === 'inbound-rtp' && report.kind === 'video') {
|
|
2105
|
-
videoBytesReceived += report.bytesReceived + report.headerBytesReceived;
|
|
2118
|
+
videoBytesReceived += Number(report.bytesReceived) + Number(report.headerBytesReceived);
|
|
2106
2119
|
}
|
|
2107
2120
|
if (report.type === 'outbound-rtp' && report.kind === 'video') {
|
|
2108
2121
|
if ('framesPerSecond' in report) {
|
|
2109
|
-
networkStats.framesPerSecond = report.framesPerSecond;
|
|
2122
|
+
networkStats.framesPerSecond = Number(report.framesPerSecond);
|
|
2110
2123
|
}
|
|
2111
2124
|
if ('framerateMean' in report) {
|
|
2112
2125
|
// framerateMean is only available in FF
|
|
@@ -2114,32 +2127,36 @@ export default class WebRTCClient extends Emitter {
|
|
|
2114
2127
|
}
|
|
2115
2128
|
}
|
|
2116
2129
|
if (report.type === 'remote-inbound-rtp' && report.kind === 'audio') {
|
|
2117
|
-
packetsLost += report.packetsLost;
|
|
2118
|
-
networkStats.roundTripTime = report.roundTripTime;
|
|
2119
|
-
networkStats.jitter = report.jitter;
|
|
2130
|
+
packetsLost += Number(report.packetsLost);
|
|
2131
|
+
networkStats.roundTripTime = Number(report.roundTripTime);
|
|
2132
|
+
networkStats.jitter = Number(report.jitter);
|
|
2120
2133
|
}
|
|
2121
2134
|
if (report.type === 'remote-inbound-rtp' && report.kind === 'video') {
|
|
2122
|
-
packetsLost += report.packetsLost;
|
|
2135
|
+
packetsLost += Number(report.packetsLost);
|
|
2123
2136
|
}
|
|
2124
2137
|
if (report.type === 'transport') {
|
|
2125
|
-
transportSent += report.bytesSent;
|
|
2126
|
-
transportReceived += report.bytesReceived;
|
|
2138
|
+
transportSent += Number(report.bytesSent);
|
|
2139
|
+
transportReceived += Number(report.bytesReceived);
|
|
2127
2140
|
}
|
|
2128
2141
|
});
|
|
2129
2142
|
|
|
2130
2143
|
networkStats.packetsLost = packetsLost;
|
|
2131
|
-
networkStats.
|
|
2144
|
+
networkStats.totalAudioBytesSent = audioBytesSent;
|
|
2145
|
+
networkStats.audioBytesSent = audioBytesSent - lastAudioSent;
|
|
2146
|
+
networkStats.totalAudioBytesReceived = audioBytesReceived - lastAudioReceived;
|
|
2132
2147
|
networkStats.audioBytesReceived = audioBytesReceived;
|
|
2133
|
-
networkStats.
|
|
2134
|
-
networkStats.
|
|
2148
|
+
networkStats.totalVideoBytesSent = videoBytesSent;
|
|
2149
|
+
networkStats.videoBytesSent = videoBytesSent - lastVideoSent;
|
|
2150
|
+
networkStats.totalVideoBytesReceived = videoBytesReceived;
|
|
2151
|
+
networkStats.videoBytesReceived = videoBytesReceived - lastVideoReceived;
|
|
2152
|
+
networkStats.totalTransportSent = transportSent - lastTransportSent;
|
|
2135
2153
|
networkStats.transportSent = transportSent;
|
|
2136
|
-
networkStats.
|
|
2137
|
-
|
|
2138
|
-
const bandwidth = (networkStats.audioBytesSent - lastAudioSent) + (networkStats.videoBytesSent - lastVideoSent)
|
|
2139
|
-
+ (networkStats.audioBytesReceived - lastAudioReceived) + (networkStats.videoBytesReceived - lastVideoReceived)
|
|
2140
|
-
+ (networkStats.transportReceived - lastTransportReceived) + (networkStats.transportSent - lastTransportSent);
|
|
2154
|
+
networkStats.totalTransportReceived = transportReceived;
|
|
2155
|
+
networkStats.transportReceived = transportReceived - lastTransportReceived;
|
|
2141
2156
|
|
|
2142
|
-
networkStats.bandwidth =
|
|
2157
|
+
networkStats.bandwidth = networkStats.audioBytesSent + networkStats.audioBytesReceived
|
|
2158
|
+
+ networkStats.videoBytesSent + networkStats.videoBytesReceived + networkStats.transportReceived
|
|
2159
|
+
+ networkStats.transportSent;
|
|
2143
2160
|
|
|
2144
2161
|
this.eventEmitter.emit(ON_NETWORK_STATS, session, networkStats, this.sessionNetworkStats[sessionId]);
|
|
2145
2162
|
this.sessionNetworkStats[sessionId].push(networkStats);
|
package/src/websocket-client.js
CHANGED
|
@@ -93,6 +93,7 @@ export const AGENT_PAUSED = 'agent_paused';
|
|
|
93
93
|
export const AGENT_UNPAUSED = 'agent_unpaused';
|
|
94
94
|
export const CONFERENCE_ADHOC_PARTICIPANT_LEFT = 'conference_adhoc_participant_left';
|
|
95
95
|
export const CONFERENCE_ADHOC_DELETED = 'conference_adhoc_deleted';
|
|
96
|
+
export const MEETING_USER_PROGRESS = 'meeting_user_progress';
|
|
96
97
|
|
|
97
98
|
const BLACKLIST_EVENTS = [
|
|
98
99
|
CHAT_MESSAGE_SENT,
|
|
@@ -446,6 +447,7 @@ WebSocketClient.eventLists = [
|
|
|
446
447
|
AGENT_UNPAUSED,
|
|
447
448
|
CONFERENCE_ADHOC_PARTICIPANT_LEFT,
|
|
448
449
|
CONFERENCE_ADHOC_DELETED,
|
|
450
|
+
MEETING_USER_PROGRESS,
|
|
449
451
|
];
|
|
450
452
|
|
|
451
453
|
export default WebSocketClient;
|