@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
package/esm/simple/Websocket.js
CHANGED
|
@@ -35,7 +35,7 @@ const isMobile = () => typeof navigator !== 'undefined' && navigator.product ===
|
|
|
35
35
|
|
|
36
36
|
/* */
|
|
37
37
|
|
|
38
|
-
IssueReporter$1 ? IssueReporter$1.loggerFor('api') : console;
|
|
38
|
+
const logger = IssueReporter$1 ? IssueReporter$1.loggerFor('api') : console;
|
|
39
39
|
|
|
40
40
|
// Use a function here to be able to mock it in tests
|
|
41
41
|
const realFetch = () => {
|
|
@@ -121,6 +121,7 @@ class IssueReporter {
|
|
|
121
121
|
|
|
122
122
|
|
|
123
123
|
|
|
124
|
+
|
|
124
125
|
|
|
125
126
|
constructor() {
|
|
126
127
|
addLevelsTo(this);
|
|
@@ -132,12 +133,17 @@ class IssueReporter {
|
|
|
132
133
|
this.bufferTimeout = null;
|
|
133
134
|
this._boundProcessBuffer = this._processBuffer.bind(this);
|
|
134
135
|
this._boundParseLoggerBody = this._parseLoggerBody.bind(this);
|
|
136
|
+
this._callback = null;
|
|
135
137
|
}
|
|
136
138
|
|
|
137
139
|
init() {
|
|
138
140
|
this._catchConsole();
|
|
139
141
|
}
|
|
140
142
|
|
|
143
|
+
setCallback(cb ) {
|
|
144
|
+
this._callback = cb;
|
|
145
|
+
}
|
|
146
|
+
|
|
141
147
|
configureRemoteClient(configuration = { tag: 'wazo-sdk', host: null, port: null, level: null, extra: {} }) {
|
|
142
148
|
this.remoteClientConfiguration = configuration;
|
|
143
149
|
}
|
|
@@ -173,6 +179,7 @@ class IssueReporter {
|
|
|
173
179
|
|
|
174
180
|
// Handle category label
|
|
175
181
|
let category = null;
|
|
182
|
+
let skipSendToRemote = false;
|
|
176
183
|
let extra = {};
|
|
177
184
|
if (args[0].indexOf(CATEGORY_PREFIX) === 0) {
|
|
178
185
|
category = args[0].split('=')[1];
|
|
@@ -188,6 +195,7 @@ class IssueReporter {
|
|
|
188
195
|
errorMessage: lastArg.message,
|
|
189
196
|
errorStack: lastArg.stack,
|
|
190
197
|
errorType: lastArg.constructor.name,
|
|
198
|
+
skipSendToRemote: lastArg.skipSendToRemote,
|
|
191
199
|
};
|
|
192
200
|
} else {
|
|
193
201
|
extra = lastArg;
|
|
@@ -196,6 +204,11 @@ class IssueReporter {
|
|
|
196
204
|
args.splice(1, 1);
|
|
197
205
|
}
|
|
198
206
|
|
|
207
|
+
if (extra.skipSendToRemote) {
|
|
208
|
+
skipSendToRemote = true;
|
|
209
|
+
delete extra.skipSendToRemote;
|
|
210
|
+
}
|
|
211
|
+
|
|
199
212
|
const date = moment().format('YYYY-MM-DD HH:mm:ss.SSS');
|
|
200
213
|
const message = args.join(', ');
|
|
201
214
|
let consoleMessage = message;
|
|
@@ -216,7 +229,13 @@ class IssueReporter {
|
|
|
216
229
|
const oldMethod = this.oldConsoleMethods[consoleLevel] || this.oldConsoleMethods.log;
|
|
217
230
|
oldMethod.apply(oldMethod, [date, consoleMessage]);
|
|
218
231
|
|
|
219
|
-
this.
|
|
232
|
+
if (this._callback) {
|
|
233
|
+
this._callback(level, consoleMessage);
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
if (!skipSendToRemote) {
|
|
237
|
+
this._sendToRemoteLogger(level, { date, message, category, ...extra });
|
|
238
|
+
}
|
|
220
239
|
}
|
|
221
240
|
|
|
222
241
|
logRequest(url , options , response , start ) {
|
|
@@ -361,7 +380,11 @@ class IssueReporter {
|
|
|
361
380
|
},
|
|
362
381
|
// $FlowFixMe
|
|
363
382
|
body,
|
|
364
|
-
}).catch(() => {
|
|
383
|
+
}).catch((e ) => {
|
|
384
|
+
// $FlowFixMe
|
|
385
|
+
e.skipSendToRemote = true;
|
|
386
|
+
this.log('error', this._makeCategory('grafana'), 'Sending log to grafana, error', e);
|
|
387
|
+
|
|
365
388
|
setTimeout(() => {
|
|
366
389
|
if (isArray) {
|
|
367
390
|
payload = payload.map(message => {
|
|
@@ -492,7 +515,7 @@ class Heartbeat {
|
|
|
492
515
|
|
|
493
516
|
//
|
|
494
517
|
|
|
495
|
-
const SOCKET_EVENTS
|
|
518
|
+
const SOCKET_EVENTS = {
|
|
496
519
|
ON_OPEN: 'onopen',
|
|
497
520
|
ON_MESSAGE: 'onmessage',
|
|
498
521
|
ON_ERROR: 'onerror',
|
|
@@ -578,6 +601,7 @@ const AGENT_PAUSED = 'agent_paused';
|
|
|
578
601
|
const AGENT_UNPAUSED = 'agent_unpaused';
|
|
579
602
|
const CONFERENCE_ADHOC_PARTICIPANT_LEFT = 'conference_adhoc_participant_left';
|
|
580
603
|
const CONFERENCE_ADHOC_DELETED = 'conference_adhoc_deleted';
|
|
604
|
+
const MEETING_USER_PROGRESS = 'meeting_user_progress';
|
|
581
605
|
|
|
582
606
|
const BLACKLIST_EVENTS = [
|
|
583
607
|
CHAT_MESSAGE_SENT,
|
|
@@ -644,16 +668,16 @@ class WebSocketClient extends Emitter {
|
|
|
644
668
|
|
|
645
669
|
this.socket.onopen = () => {
|
|
646
670
|
logger$1.info('on Wazo WS open', { method: 'connect', host: this.host });
|
|
647
|
-
this.eventEmitter.emit(SOCKET_EVENTS
|
|
671
|
+
this.eventEmitter.emit(SOCKET_EVENTS.ON_OPEN);
|
|
648
672
|
};
|
|
649
673
|
|
|
650
674
|
this.socket.onerror = event => {
|
|
651
675
|
logger$1.error('on Wazo WS error', event.target);
|
|
652
|
-
this.eventEmitter.emit(SOCKET_EVENTS
|
|
676
|
+
this.eventEmitter.emit(SOCKET_EVENTS.ON_ERROR, event);
|
|
653
677
|
};
|
|
654
678
|
|
|
655
679
|
this.socket.onmessage = (event ) => {
|
|
656
|
-
this.eventEmitter.emit(SOCKET_EVENTS
|
|
680
|
+
this.eventEmitter.emit(SOCKET_EVENTS.ON_MESSAGE, event.data);
|
|
657
681
|
|
|
658
682
|
const message = JSON.parse(typeof event.data === 'string' ? event.data : '{}');
|
|
659
683
|
let { name } = message;
|
|
@@ -686,11 +710,11 @@ class WebSocketClient extends Emitter {
|
|
|
686
710
|
token: this.token,
|
|
687
711
|
});
|
|
688
712
|
this.initialized = false;
|
|
689
|
-
this.eventEmitter.emit(SOCKET_EVENTS
|
|
713
|
+
this.eventEmitter.emit(SOCKET_EVENTS.ON_CLOSE, event);
|
|
690
714
|
|
|
691
715
|
switch (event.code) {
|
|
692
716
|
case 4002:
|
|
693
|
-
this.eventEmitter.emit(SOCKET_EVENTS
|
|
717
|
+
this.eventEmitter.emit(SOCKET_EVENTS.ON_AUTH_FAILED);
|
|
694
718
|
break;
|
|
695
719
|
}
|
|
696
720
|
};
|
|
@@ -806,7 +830,7 @@ class WebSocketClient extends Emitter {
|
|
|
806
830
|
break;
|
|
807
831
|
case 'start':
|
|
808
832
|
this.initialized = true;
|
|
809
|
-
this.eventEmitter.emit(SOCKET_EVENTS
|
|
833
|
+
this.eventEmitter.emit(SOCKET_EVENTS.INITIALIZED);
|
|
810
834
|
break;
|
|
811
835
|
default:
|
|
812
836
|
this.eventEmitter.emit('message', message);
|
|
@@ -853,7 +877,7 @@ class WebSocketClient extends Emitter {
|
|
|
853
877
|
logger$1.log('heartbeat timed out', { host: this.host, token: this.token });
|
|
854
878
|
|
|
855
879
|
this.close();
|
|
856
|
-
this.eventEmitter.emit(SOCKET_EVENTS
|
|
880
|
+
this.eventEmitter.emit(SOCKET_EVENTS.ON_CLOSE, new Error('Websocket ping failure.'));
|
|
857
881
|
|
|
858
882
|
if (this.onHeartBeatTimeout) {
|
|
859
883
|
this.onHeartBeatTimeout();
|
|
@@ -928,11 +952,12 @@ WebSocketClient.eventLists = [
|
|
|
928
952
|
AGENT_UNPAUSED,
|
|
929
953
|
CONFERENCE_ADHOC_PARTICIPANT_LEFT,
|
|
930
954
|
CONFERENCE_ADHOC_DELETED,
|
|
955
|
+
MEETING_USER_PROGRESS,
|
|
931
956
|
];
|
|
932
957
|
|
|
933
958
|
var WebSocketClient$1 = /*#__PURE__*/Object.freeze({
|
|
934
959
|
__proto__: null,
|
|
935
|
-
SOCKET_EVENTS: SOCKET_EVENTS
|
|
960
|
+
SOCKET_EVENTS: SOCKET_EVENTS,
|
|
936
961
|
AUTH_SESSION_EXPIRE_SOON: AUTH_SESSION_EXPIRE_SOON,
|
|
937
962
|
FAVORITE_ADDED: FAVORITE_ADDED,
|
|
938
963
|
FAVORITE_DELETED: FAVORITE_DELETED,
|
|
@@ -998,16 +1023,17 @@ var WebSocketClient$1 = /*#__PURE__*/Object.freeze({
|
|
|
998
1023
|
AGENT_UNPAUSED: AGENT_UNPAUSED,
|
|
999
1024
|
CONFERENCE_ADHOC_PARTICIPANT_LEFT: CONFERENCE_ADHOC_PARTICIPANT_LEFT,
|
|
1000
1025
|
CONFERENCE_ADHOC_DELETED: CONFERENCE_ADHOC_DELETED,
|
|
1026
|
+
MEETING_USER_PROGRESS: MEETING_USER_PROGRESS,
|
|
1001
1027
|
HEARTBEAT_ENGINE_VERSION: HEARTBEAT_ENGINE_VERSION,
|
|
1002
1028
|
'default': WebSocketClient
|
|
1003
1029
|
});
|
|
1004
1030
|
|
|
1005
1031
|
//
|
|
1006
1032
|
|
|
1007
|
-
const { SOCKET_EVENTS, ...OTHER_EVENTS } = WebSocketClient$1;
|
|
1008
|
-
const ALL_EVENTS = [...Object.values(SOCKET_EVENTS), ...Object.values(OTHER_EVENTS)];
|
|
1033
|
+
const { SOCKET_EVENTS: SOCKET_EVENTS$1, ...OTHER_EVENTS } = WebSocketClient$1;
|
|
1034
|
+
const ALL_EVENTS = [...Object.values(SOCKET_EVENTS$1), ...Object.values(OTHER_EVENTS)];
|
|
1009
1035
|
|
|
1010
|
-
const logger = IssueReporter$1.loggerFor('simple-ws-client');
|
|
1036
|
+
const logger$2 = IssueReporter$1.loggerFor('simple-ws-client');
|
|
1011
1037
|
|
|
1012
1038
|
class Websocket extends Emitter {
|
|
1013
1039
|
|
|
@@ -1021,9 +1047,9 @@ class Websocket extends Emitter {
|
|
|
1021
1047
|
// $FlowFixMe
|
|
1022
1048
|
this[key] = OTHER_EVENTS[key];
|
|
1023
1049
|
});
|
|
1024
|
-
Object.keys(SOCKET_EVENTS).forEach(key => {
|
|
1050
|
+
Object.keys(SOCKET_EVENTS$1).forEach(key => {
|
|
1025
1051
|
// $FlowFixMe
|
|
1026
|
-
this[key] = SOCKET_EVENTS[key];
|
|
1052
|
+
this[key] = SOCKET_EVENTS$1[key];
|
|
1027
1053
|
});
|
|
1028
1054
|
this.eventLists = WebSocketClient.eventLists;
|
|
1029
1055
|
|
|
@@ -1031,7 +1057,7 @@ class Websocket extends Emitter {
|
|
|
1031
1057
|
}
|
|
1032
1058
|
|
|
1033
1059
|
open(host , session ) {
|
|
1034
|
-
logger.info('open simple WebSocket', { host, token: session.token });
|
|
1060
|
+
logger$2.info('open simple WebSocket', { host, token: session.token });
|
|
1035
1061
|
this.ws = new WebSocketClient(
|
|
1036
1062
|
{
|
|
1037
1063
|
host,
|
|
@@ -1059,7 +1085,7 @@ class Websocket extends Emitter {
|
|
|
1059
1085
|
}
|
|
1060
1086
|
|
|
1061
1087
|
updateToken(token ) {
|
|
1062
|
-
logger.info('update token via simple Websocket', { token, ws: !!this.ws });
|
|
1088
|
+
logger$2.info('update token via simple Websocket', { token, ws: !!this.ws });
|
|
1063
1089
|
|
|
1064
1090
|
if (!this.ws) {
|
|
1065
1091
|
return;
|