@wazo/sdk 0.37.18 → 0.37.22
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 +13 -5
- package/esm/__tests__/api-client.test.js +52 -9
- package/esm/__tests__/web-rtc-client.test.js +80 -20
- package/esm/api/agentd.js +27 -4
- package/esm/api/amid.js +27 -4
- package/esm/api/application.js +27 -4
- package/esm/api/auth.js +29 -5
- package/esm/api/call-logd.js +29 -6
- package/esm/api/calld.js +27 -4
- package/esm/api/chatd.js +27 -4
- package/esm/api/confd.js +51 -8
- package/esm/api/ctid-ng.js +27 -4
- package/esm/api/dird.js +27 -4
- package/esm/api/webhookd.js +27 -4
- package/esm/api-client.js +54 -11
- package/esm/checker/Checker.js +83 -21
- package/esm/checker/checks/aor.js +54 -11
- package/esm/checker/checks/api.js +54 -11
- package/esm/checker/checks/ice-ipv4.js +1 -1
- package/esm/checker/checks/index.js +84 -22
- package/esm/checker/checks/symmetric-nat.js +1 -1
- package/esm/checker/checks/wazo-websocket.js +29 -4
- package/esm/checker/checks/webrtc-transport.js +82 -22
- package/esm/checker/checks/webrtc.js +82 -22
- package/esm/domain/AdHocAPIConference.js +54 -11
- package/esm/domain/Agent.js +1 -1
- package/esm/domain/BadResponse.js +1 -1
- package/esm/domain/Call.js +1 -1
- package/esm/domain/CallLog.js +3 -3
- package/esm/domain/CallSession.js +1 -1
- package/esm/domain/ChatMessage.js +1 -1
- package/esm/domain/ChatRoom.js +1 -1
- package/esm/domain/Contact.js +2 -1
- package/esm/domain/Country.js +1 -1
- package/esm/domain/Device/DebugDevice.js +1 -1
- package/esm/domain/ExternalApp.js +1 -1
- package/esm/domain/Features.js +54 -10
- package/esm/domain/ForwardOption.js +2 -1
- package/esm/domain/IndirectTransfer.js +1 -1
- package/esm/domain/Line.js +1 -1
- package/esm/domain/Meeting.js +20 -3
- package/esm/domain/NotificationOptions.js +1 -1
- package/esm/domain/Phone/CTIPhone.js +55 -11
- package/esm/domain/Phone/WebRTCPhone.js +39 -6
- package/esm/domain/Profile.js +2 -1
- package/esm/domain/Recording.js +2 -2
- package/esm/domain/Relocation.js +1 -1
- package/esm/domain/Room.js +1 -1
- package/esm/domain/ServerError.js +1 -1
- package/esm/domain/Session.js +2 -2
- package/esm/domain/SipLine.js +1 -1
- package/esm/domain/Subscription.js +1 -1
- package/esm/domain/SwitchboardCall.js +1 -1
- package/esm/domain/Voicemail.js +1 -1
- package/esm/domain/__tests__/CallLog.test.js +2 -2
- package/esm/index.js +101 -24
- package/esm/lib/WazoSessionDescriptionHandler.js +28 -4
- package/esm/service/CallApi.js +54 -11
- package/esm/service/IssueReporter.js +27 -4
- package/esm/service/__tests__/IssueReporter.test.js +26 -3
- package/esm/service/getApiClient.js +55 -11
- package/esm/simple/Auth.js +101 -23
- package/esm/simple/Configuration.js +100 -23
- package/esm/simple/Directory.js +53 -10
- package/esm/simple/Phone.js +100 -23
- package/esm/simple/Websocket.js +30 -4
- package/esm/simple/index.js +100 -23
- package/esm/simple/room/LocalParticipant.js +113 -40
- package/esm/simple/room/Participant.js +112 -37
- package/esm/simple/room/RemoteParticipant.js +114 -41
- package/esm/simple/room/Room.js +113 -37
- package/esm/simple/room/SipRoom.js +101 -26
- package/esm/simple/room/Stream.js +101 -26
- package/esm/simple/room/__tests__/RemoteParticipant.test.js +99 -22
- package/esm/simple/utils.js +99 -22
- package/esm/utils/Emitter.js +1 -1
- package/esm/utils/Heartbeat.js +1 -1
- package/esm/utils/__tests__/api-requester.test.js +26 -3
- package/esm/utils/api-requester.js +28 -4
- package/esm/utils/compare-version.js +1 -1
- package/esm/utils/isMobile.js +1 -1
- package/esm/utils/new-from.js +1 -1
- package/esm/utils/once.js +1 -1
- package/esm/utils/update-from.js +1 -1
- package/esm/web-rtc-client.js +83 -22
- package/esm/websocket-client.js +30 -4
- package/lib/__tests__/api-client.test.js +61 -18
- package/lib/__tests__/web-rtc-client.test.js +97 -37
- package/lib/api/agentd.js +27 -4
- package/lib/api/amid.js +27 -4
- package/lib/api/application.js +27 -4
- package/lib/api/auth.js +28 -5
- package/lib/api/call-logd.js +34 -11
- package/lib/api/calld.js +30 -7
- package/lib/api/chatd.js +28 -5
- package/lib/api/confd.js +51 -8
- package/lib/api/ctid-ng.js +30 -7
- package/lib/api/dird.js +27 -4
- package/lib/api/webhookd.js +27 -4
- package/lib/api-client.js +61 -18
- package/lib/checker/Checker.js +100 -38
- package/lib/checker/checks/aor.js +61 -18
- package/lib/checker/checks/api.js +61 -18
- package/lib/checker/checks/index.js +100 -38
- package/lib/checker/checks/wazo-websocket.js +31 -6
- package/lib/checker/checks/webrtc-transport.js +97 -37
- package/lib/checker/checks/webrtc.js +97 -37
- package/lib/domain/AdHocAPIConference.js +61 -18
- package/lib/domain/Call.js +1 -1
- package/lib/domain/CallLog.js +7 -7
- package/lib/domain/ChatMessage.js +1 -1
- package/lib/domain/Contact.js +1 -1
- package/lib/domain/Features.js +62 -19
- package/lib/domain/ForwardOption.js +1 -1
- package/lib/domain/Meeting.js +19 -2
- package/lib/domain/Phone/CTIPhone.js +63 -20
- package/lib/domain/Phone/WebRTCPhone.js +40 -8
- package/lib/domain/Profile.js +1 -1
- package/lib/domain/Recording.js +3 -3
- package/lib/domain/Voicemail.js +1 -1
- package/lib/domain/__tests__/Call.test.js +1 -1
- package/lib/domain/__tests__/CallLog.test.js +13 -13
- package/lib/domain/__tests__/Voicemail.test.js +1 -1
- package/lib/index.js +120 -43
- package/lib/lib/WazoSessionDescriptionHandler.js +32 -9
- package/lib/service/CallApi.js +61 -18
- package/lib/service/IssueReporter.js +27 -4
- package/lib/service/__tests__/IssueReporter.test.js +27 -4
- package/lib/service/getApiClient.js +62 -19
- package/lib/simple/Auth.js +119 -42
- package/lib/simple/Configuration.js +118 -41
- package/lib/simple/Directory.js +61 -18
- package/lib/simple/Phone.js +118 -41
- package/lib/simple/Websocket.js +32 -6
- package/lib/simple/index.js +118 -41
- package/lib/simple/room/LocalParticipant.js +132 -59
- package/lib/simple/room/Participant.js +130 -55
- package/lib/simple/room/RemoteParticipant.js +133 -60
- package/lib/simple/room/Room.js +131 -56
- package/lib/simple/room/SipRoom.js +120 -45
- package/lib/simple/room/Stream.js +120 -45
- package/lib/simple/room/__tests__/RemoteParticipant.test.js +118 -41
- package/lib/simple/utils.js +118 -41
- package/lib/utils/Emitter.js +1 -1
- package/lib/utils/PhoneNumberUtil.js +2 -2
- package/lib/utils/__tests__/PhoneNumberUtil.test.js +2 -2
- package/lib/utils/__tests__/api-requester.test.js +27 -4
- package/lib/utils/__tests__/sdp.test.js +12 -12
- package/lib/utils/api-requester.js +28 -5
- package/lib/utils/sdp.js +10 -10
- package/lib/web-rtc-client.js +98 -38
- package/lib/websocket-client.js +33 -7
- package/package.json +2 -2
- package/src/api/confd.js +5 -2
- package/src/domain/CallLog.js +1 -1
- package/src/domain/Meeting.js +19 -2
- package/src/domain/Phone/WebRTCPhone.js +11 -2
- package/src/domain/Recording.js +1 -1
- package/src/service/IssueReporter.js +26 -3
- package/src/simple/Phone.js +5 -0
- package/src/types/WebSocketMessage.js +5 -1
- package/src/web-rtc-client.js +28 -11
- package/src/websocket-client.js +2 -0
|
@@ -19,7 +19,7 @@ import 'sip.js/lib/platform/web/session-description-handler/session-description-
|
|
|
19
19
|
import moment from 'moment';
|
|
20
20
|
import { Base64 } from 'js-base64';
|
|
21
21
|
import sdpParser from 'sdp-transform';
|
|
22
|
-
import {
|
|
22
|
+
import { jws, b64utoutf8, KEYUTIL } from 'jsrsasign';
|
|
23
23
|
import { jsonToGraphQLQuery } from 'json-to-graphql-query/lib/jsonToGraphQLQuery';
|
|
24
24
|
|
|
25
25
|
/* */
|
|
@@ -412,6 +412,7 @@ class IssueReporter {
|
|
|
412
412
|
|
|
413
413
|
|
|
414
414
|
|
|
415
|
+
|
|
415
416
|
|
|
416
417
|
constructor() {
|
|
417
418
|
addLevelsTo(this);
|
|
@@ -423,12 +424,17 @@ class IssueReporter {
|
|
|
423
424
|
this.bufferTimeout = null;
|
|
424
425
|
this._boundProcessBuffer = this._processBuffer.bind(this);
|
|
425
426
|
this._boundParseLoggerBody = this._parseLoggerBody.bind(this);
|
|
427
|
+
this._callback = null;
|
|
426
428
|
}
|
|
427
429
|
|
|
428
430
|
init() {
|
|
429
431
|
this._catchConsole();
|
|
430
432
|
}
|
|
431
433
|
|
|
434
|
+
setCallback(cb ) {
|
|
435
|
+
this._callback = cb;
|
|
436
|
+
}
|
|
437
|
+
|
|
432
438
|
configureRemoteClient(configuration = { tag: 'wazo-sdk', host: null, port: null, level: null, extra: {} }) {
|
|
433
439
|
this.remoteClientConfiguration = configuration;
|
|
434
440
|
}
|
|
@@ -464,6 +470,7 @@ class IssueReporter {
|
|
|
464
470
|
|
|
465
471
|
// Handle category label
|
|
466
472
|
let category = null;
|
|
473
|
+
let skipSendToRemote = false;
|
|
467
474
|
let extra = {};
|
|
468
475
|
if (args[0].indexOf(CATEGORY_PREFIX) === 0) {
|
|
469
476
|
category = args[0].split('=')[1];
|
|
@@ -479,6 +486,7 @@ class IssueReporter {
|
|
|
479
486
|
errorMessage: lastArg.message,
|
|
480
487
|
errorStack: lastArg.stack,
|
|
481
488
|
errorType: lastArg.constructor.name,
|
|
489
|
+
skipSendToRemote: lastArg.skipSendToRemote,
|
|
482
490
|
};
|
|
483
491
|
} else {
|
|
484
492
|
extra = lastArg;
|
|
@@ -487,6 +495,11 @@ class IssueReporter {
|
|
|
487
495
|
args.splice(1, 1);
|
|
488
496
|
}
|
|
489
497
|
|
|
498
|
+
if (extra.skipSendToRemote) {
|
|
499
|
+
skipSendToRemote = true;
|
|
500
|
+
delete extra.skipSendToRemote;
|
|
501
|
+
}
|
|
502
|
+
|
|
490
503
|
const date = moment().format('YYYY-MM-DD HH:mm:ss.SSS');
|
|
491
504
|
const message = args.join(', ');
|
|
492
505
|
let consoleMessage = message;
|
|
@@ -507,7 +520,13 @@ class IssueReporter {
|
|
|
507
520
|
const oldMethod = this.oldConsoleMethods[consoleLevel] || this.oldConsoleMethods.log;
|
|
508
521
|
oldMethod.apply(oldMethod, [date, consoleMessage]);
|
|
509
522
|
|
|
510
|
-
this.
|
|
523
|
+
if (this._callback) {
|
|
524
|
+
this._callback(level, consoleMessage);
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
if (!skipSendToRemote) {
|
|
528
|
+
this._sendToRemoteLogger(level, { date, message, category, ...extra });
|
|
529
|
+
}
|
|
511
530
|
}
|
|
512
531
|
|
|
513
532
|
logRequest(url , options , response , start ) {
|
|
@@ -652,7 +671,11 @@ class IssueReporter {
|
|
|
652
671
|
},
|
|
653
672
|
// $FlowFixMe
|
|
654
673
|
body,
|
|
655
|
-
}).catch(() => {
|
|
674
|
+
}).catch((e ) => {
|
|
675
|
+
// $FlowFixMe
|
|
676
|
+
e.skipSendToRemote = true;
|
|
677
|
+
this.log('error', this._makeCategory('grafana'), 'Sending log to grafana, error', e);
|
|
678
|
+
|
|
656
679
|
setTimeout(() => {
|
|
657
680
|
if (isArray) {
|
|
658
681
|
payload = payload.map(message => {
|
|
@@ -664,7 +687,7 @@ class IssueReporter {
|
|
|
664
687
|
payload._retry = retry + 1;
|
|
665
688
|
}
|
|
666
689
|
|
|
667
|
-
this._sendDebugToGrafana(
|
|
690
|
+
this._sendDebugToGrafana(payload, retry + 1);
|
|
668
691
|
}, 5000 + retry * 1000);
|
|
669
692
|
});
|
|
670
693
|
}
|
|
@@ -3166,7 +3189,8 @@ class ExternalApp {
|
|
|
3166
3189
|
|
|
3167
3190
|
|
|
3168
3191
|
|
|
3169
|
-
|
|
3192
|
+
|
|
3193
|
+
|
|
3170
3194
|
|
|
3171
3195
|
|
|
3172
3196
|
class Meeting {
|
|
@@ -3178,6 +3202,7 @@ class Meeting {
|
|
|
3178
3202
|
|
|
3179
3203
|
|
|
3180
3204
|
|
|
3205
|
+
|
|
3181
3206
|
|
|
3182
3207
|
|
|
3183
3208
|
static parse(plain ) {
|
|
@@ -3189,14 +3214,28 @@ class Meeting {
|
|
|
3189
3214
|
port: plain.port,
|
|
3190
3215
|
uuid: plain.uuid,
|
|
3191
3216
|
number: plain.number,
|
|
3217
|
+
persistent: plain.persistent,
|
|
3192
3218
|
});
|
|
3193
3219
|
}
|
|
3194
3220
|
|
|
3221
|
+
static parseMany(items ) {
|
|
3222
|
+
return items.map(plain => Meeting.parse(plain));
|
|
3223
|
+
}
|
|
3224
|
+
|
|
3195
3225
|
static newFrom(meeting ) {
|
|
3196
3226
|
return newFrom(meeting, Meeting);
|
|
3197
3227
|
}
|
|
3198
3228
|
|
|
3199
|
-
constructor({
|
|
3229
|
+
constructor({
|
|
3230
|
+
uuid,
|
|
3231
|
+
name,
|
|
3232
|
+
guestSipAuthorization,
|
|
3233
|
+
ownerUuids,
|
|
3234
|
+
port,
|
|
3235
|
+
uri,
|
|
3236
|
+
number,
|
|
3237
|
+
persistent,
|
|
3238
|
+
} = {}) {
|
|
3200
3239
|
this.guestSipAuthorization = guestSipAuthorization;
|
|
3201
3240
|
this.uri = uri;
|
|
3202
3241
|
this.name = name;
|
|
@@ -3204,6 +3243,7 @@ class Meeting {
|
|
|
3204
3243
|
this.port = port;
|
|
3205
3244
|
this.uuid = uuid;
|
|
3206
3245
|
this.number = number;
|
|
3246
|
+
this.persistent = persistent;
|
|
3207
3247
|
|
|
3208
3248
|
// Useful to compare instead of instanceof with minified code
|
|
3209
3249
|
this.type = 'Meeting';
|
|
@@ -3281,8 +3321,11 @@ var confdMethods = (client , baseUrl ) => ({
|
|
|
3281
3321
|
}
|
|
3282
3322
|
},
|
|
3283
3323
|
|
|
3284
|
-
|
|
3285
|
-
client.
|
|
3324
|
+
getMyMeetings: () =>
|
|
3325
|
+
client.get(`${baseUrl}/users/me/meetings`).then(response => Meeting.parseMany(response.items)),
|
|
3326
|
+
|
|
3327
|
+
createMyMeeting: (name , persistent ) =>
|
|
3328
|
+
client.post(`${baseUrl}/users/me/meetings`, { name, persistent }).then(Meeting.parse),
|
|
3286
3329
|
|
|
3287
3330
|
deleteMyMeeting: (meetingUuid ) =>
|
|
3288
3331
|
client.delete(`${baseUrl}/users/me/meetings/${meetingUuid}`, null),
|
|
@@ -3767,7 +3810,7 @@ class Recording {
|
|
|
3767
3810
|
|
|
3768
3811
|
|
|
3769
3812
|
|
|
3770
|
-
static parseMany(recordings
|
|
3813
|
+
static parseMany(recordings = []) {
|
|
3771
3814
|
return recordings.map(item => Recording.parse(item));
|
|
3772
3815
|
}
|
|
3773
3816
|
|
|
@@ -3893,7 +3936,7 @@ class CallLog {
|
|
|
3893
3936
|
duration: (plain.duration || 0) * 1000, // duration is in seconds
|
|
3894
3937
|
start: moment(plain.start).toDate(),
|
|
3895
3938
|
end: plain.end ? moment(plain.end).toDate() : null,
|
|
3896
|
-
recordings: Recording.parseMany(plain.recordings),
|
|
3939
|
+
recordings: Recording.parseMany(plain.recordings || []),
|
|
3897
3940
|
});
|
|
3898
3941
|
}
|
|
3899
3942
|
|
|
@@ -5694,7 +5737,9 @@ class WebRTCClient extends Emitter {
|
|
|
5694
5737
|
const inviteOptions = {
|
|
5695
5738
|
requestDelegate: {
|
|
5696
5739
|
onAccept: (response ) => {
|
|
5697
|
-
session.sessionDescriptionHandler.peerConnection
|
|
5740
|
+
if (session.sessionDescriptionHandler.peerConnection) {
|
|
5741
|
+
session.sessionDescriptionHandler.peerConnection.sfu = conference;
|
|
5742
|
+
}
|
|
5698
5743
|
this._onAccepted(session, response.session, true);
|
|
5699
5744
|
},
|
|
5700
5745
|
onReject: (response ) => {
|
|
@@ -6030,7 +6075,7 @@ class WebRTCClient extends Emitter {
|
|
|
6030
6075
|
// We search for the last transceiver without `video-` in the mid (video- means remote transceiver)
|
|
6031
6076
|
const transceivers = pc.getTransceivers();
|
|
6032
6077
|
const transceiverIdx = lastIndexOf(transceivers, transceiver =>
|
|
6033
|
-
transceiver.sender.track === null && transceiver.mid.indexOf('video') === -1);
|
|
6078
|
+
transceiver.sender.track === null && transceiver.mid && transceiver.mid.indexOf('video') === -1);
|
|
6034
6079
|
|
|
6035
6080
|
videoSender = transceiverIdx !== -1 ? transceivers[transceiverIdx].sender : null;
|
|
6036
6081
|
} else {
|
|
@@ -6566,6 +6611,16 @@ class WebRTCClient extends Emitter {
|
|
|
6566
6611
|
return this.hasRemoteVideo(sessionId) ? this.getRemoteStream(sessionId) : null;
|
|
6567
6612
|
}
|
|
6568
6613
|
|
|
6614
|
+
// Useful in a react-native environment when remoteMediaStream is not updated
|
|
6615
|
+
getRemoteVideoStreamFromPc(sessionId ) {
|
|
6616
|
+
const pc = this.getPeerConnection(sessionId);
|
|
6617
|
+
if (!pc) {
|
|
6618
|
+
return null;
|
|
6619
|
+
}
|
|
6620
|
+
|
|
6621
|
+
return pc.getRemoteStreams().find(stream => !!stream.getVideoTracks().length);
|
|
6622
|
+
}
|
|
6623
|
+
|
|
6569
6624
|
hasVideo(sessionId ) {
|
|
6570
6625
|
return this.hasLocalVideo(sessionId) || this.hasRemoteVideo(sessionId);
|
|
6571
6626
|
}
|
|
@@ -7076,6 +7131,7 @@ class WebRTCClient extends Emitter {
|
|
|
7076
7131
|
session.sessionDescriptionHandler.remoteMediaStream.onaddtrack = onTrack;
|
|
7077
7132
|
|
|
7078
7133
|
pc.oniceconnectionstatechange = () => {
|
|
7134
|
+
logger.info('on ice connection state changed', { state: pc.iceConnectionState });
|
|
7079
7135
|
if (pc.iceConnectionState === 'disconnected') {
|
|
7080
7136
|
this.eventEmitter.emit(ON_DISCONNECTED);
|
|
7081
7137
|
}
|
|
@@ -7344,18 +7400,22 @@ class WebRTCClient extends Emitter {
|
|
|
7344
7400
|
});
|
|
7345
7401
|
|
|
7346
7402
|
networkStats.packetsLost = packetsLost;
|
|
7347
|
-
networkStats.
|
|
7403
|
+
networkStats.totalAudioBytesSent = audioBytesSent;
|
|
7404
|
+
networkStats.audioBytesSent = audioBytesSent - lastAudioSent;
|
|
7405
|
+
networkStats.totalAudioBytesReceived = audioBytesReceived - lastAudioReceived;
|
|
7348
7406
|
networkStats.audioBytesReceived = audioBytesReceived;
|
|
7349
|
-
networkStats.
|
|
7350
|
-
networkStats.
|
|
7407
|
+
networkStats.totalVideoBytesSent = videoBytesSent;
|
|
7408
|
+
networkStats.videoBytesSent = videoBytesSent - lastVideoSent;
|
|
7409
|
+
networkStats.totalVideoBytesReceived = videoBytesReceived;
|
|
7410
|
+
networkStats.videoBytesReceived = videoBytesReceived - lastVideoReceived;
|
|
7411
|
+
networkStats.totalTransportSent = transportSent - lastTransportSent;
|
|
7351
7412
|
networkStats.transportSent = transportSent;
|
|
7352
|
-
networkStats.
|
|
7353
|
-
|
|
7354
|
-
const bandwidth = (networkStats.audioBytesSent - lastAudioSent) + (networkStats.videoBytesSent - lastVideoSent)
|
|
7355
|
-
+ (networkStats.audioBytesReceived - lastAudioReceived) + (networkStats.videoBytesReceived - lastVideoReceived)
|
|
7356
|
-
+ (networkStats.transportReceived - lastTransportReceived) + (networkStats.transportSent - lastTransportSent);
|
|
7413
|
+
networkStats.totalTransportReceived = transportReceived;
|
|
7414
|
+
networkStats.transportReceived = transportReceived - lastTransportReceived;
|
|
7357
7415
|
|
|
7358
|
-
networkStats.bandwidth =
|
|
7416
|
+
networkStats.bandwidth = networkStats.audioBytesSent + networkStats.audioBytesReceived
|
|
7417
|
+
+ networkStats.videoBytesSent + networkStats.videoBytesReceived + networkStats.transportReceived
|
|
7418
|
+
+ networkStats.transportSent;
|
|
7359
7419
|
|
|
7360
7420
|
this.eventEmitter.emit(ON_NETWORK_STATS, session, networkStats, this.sessionNetworkStats[sessionId]);
|
|
7361
7421
|
this.sessionNetworkStats[sessionId].push(networkStats);
|
|
@@ -7409,4 +7469,4 @@ var webrtc = {
|
|
|
7409
7469
|
}),
|
|
7410
7470
|
};
|
|
7411
7471
|
|
|
7412
|
-
export
|
|
7472
|
+
export default webrtc;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import 'sip.js/lib/api/session-state';
|
|
2
2
|
import moment from 'moment';
|
|
3
3
|
import { Base64 } from 'js-base64';
|
|
4
|
-
import {
|
|
4
|
+
import { jws, b64utoutf8, KEYUTIL } from 'jsrsasign';
|
|
5
5
|
import 'events';
|
|
6
6
|
import { jsonToGraphQLQuery } from 'json-to-graphql-query/lib/jsonToGraphQLQuery';
|
|
7
7
|
|
|
@@ -347,6 +347,7 @@ class IssueReporter {
|
|
|
347
347
|
|
|
348
348
|
|
|
349
349
|
|
|
350
|
+
|
|
350
351
|
|
|
351
352
|
constructor() {
|
|
352
353
|
addLevelsTo(this);
|
|
@@ -358,12 +359,17 @@ class IssueReporter {
|
|
|
358
359
|
this.bufferTimeout = null;
|
|
359
360
|
this._boundProcessBuffer = this._processBuffer.bind(this);
|
|
360
361
|
this._boundParseLoggerBody = this._parseLoggerBody.bind(this);
|
|
362
|
+
this._callback = null;
|
|
361
363
|
}
|
|
362
364
|
|
|
363
365
|
init() {
|
|
364
366
|
this._catchConsole();
|
|
365
367
|
}
|
|
366
368
|
|
|
369
|
+
setCallback(cb ) {
|
|
370
|
+
this._callback = cb;
|
|
371
|
+
}
|
|
372
|
+
|
|
367
373
|
configureRemoteClient(configuration = { tag: 'wazo-sdk', host: null, port: null, level: null, extra: {} }) {
|
|
368
374
|
this.remoteClientConfiguration = configuration;
|
|
369
375
|
}
|
|
@@ -399,6 +405,7 @@ class IssueReporter {
|
|
|
399
405
|
|
|
400
406
|
// Handle category label
|
|
401
407
|
let category = null;
|
|
408
|
+
let skipSendToRemote = false;
|
|
402
409
|
let extra = {};
|
|
403
410
|
if (args[0].indexOf(CATEGORY_PREFIX) === 0) {
|
|
404
411
|
category = args[0].split('=')[1];
|
|
@@ -414,6 +421,7 @@ class IssueReporter {
|
|
|
414
421
|
errorMessage: lastArg.message,
|
|
415
422
|
errorStack: lastArg.stack,
|
|
416
423
|
errorType: lastArg.constructor.name,
|
|
424
|
+
skipSendToRemote: lastArg.skipSendToRemote,
|
|
417
425
|
};
|
|
418
426
|
} else {
|
|
419
427
|
extra = lastArg;
|
|
@@ -422,6 +430,11 @@ class IssueReporter {
|
|
|
422
430
|
args.splice(1, 1);
|
|
423
431
|
}
|
|
424
432
|
|
|
433
|
+
if (extra.skipSendToRemote) {
|
|
434
|
+
skipSendToRemote = true;
|
|
435
|
+
delete extra.skipSendToRemote;
|
|
436
|
+
}
|
|
437
|
+
|
|
425
438
|
const date = moment().format('YYYY-MM-DD HH:mm:ss.SSS');
|
|
426
439
|
const message = args.join(', ');
|
|
427
440
|
let consoleMessage = message;
|
|
@@ -442,7 +455,13 @@ class IssueReporter {
|
|
|
442
455
|
const oldMethod = this.oldConsoleMethods[consoleLevel] || this.oldConsoleMethods.log;
|
|
443
456
|
oldMethod.apply(oldMethod, [date, consoleMessage]);
|
|
444
457
|
|
|
445
|
-
this.
|
|
458
|
+
if (this._callback) {
|
|
459
|
+
this._callback(level, consoleMessage);
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
if (!skipSendToRemote) {
|
|
463
|
+
this._sendToRemoteLogger(level, { date, message, category, ...extra });
|
|
464
|
+
}
|
|
446
465
|
}
|
|
447
466
|
|
|
448
467
|
logRequest(url , options , response , start ) {
|
|
@@ -587,7 +606,11 @@ class IssueReporter {
|
|
|
587
606
|
},
|
|
588
607
|
// $FlowFixMe
|
|
589
608
|
body,
|
|
590
|
-
}).catch(() => {
|
|
609
|
+
}).catch((e ) => {
|
|
610
|
+
// $FlowFixMe
|
|
611
|
+
e.skipSendToRemote = true;
|
|
612
|
+
this.log('error', this._makeCategory('grafana'), 'Sending log to grafana, error', e);
|
|
613
|
+
|
|
591
614
|
setTimeout(() => {
|
|
592
615
|
if (isArray) {
|
|
593
616
|
payload = payload.map(message => {
|
|
@@ -599,7 +622,7 @@ class IssueReporter {
|
|
|
599
622
|
payload._retry = retry + 1;
|
|
600
623
|
}
|
|
601
624
|
|
|
602
|
-
this._sendDebugToGrafana(
|
|
625
|
+
this._sendDebugToGrafana(payload, retry + 1);
|
|
603
626
|
}, 5000 + retry * 1000);
|
|
604
627
|
});
|
|
605
628
|
}
|
|
@@ -2791,7 +2814,8 @@ class ExternalApp {
|
|
|
2791
2814
|
|
|
2792
2815
|
|
|
2793
2816
|
|
|
2794
|
-
|
|
2817
|
+
|
|
2818
|
+
|
|
2795
2819
|
|
|
2796
2820
|
|
|
2797
2821
|
class Meeting {
|
|
@@ -2803,6 +2827,7 @@ class Meeting {
|
|
|
2803
2827
|
|
|
2804
2828
|
|
|
2805
2829
|
|
|
2830
|
+
|
|
2806
2831
|
|
|
2807
2832
|
|
|
2808
2833
|
static parse(plain ) {
|
|
@@ -2814,14 +2839,28 @@ class Meeting {
|
|
|
2814
2839
|
port: plain.port,
|
|
2815
2840
|
uuid: plain.uuid,
|
|
2816
2841
|
number: plain.number,
|
|
2842
|
+
persistent: plain.persistent,
|
|
2817
2843
|
});
|
|
2818
2844
|
}
|
|
2819
2845
|
|
|
2846
|
+
static parseMany(items ) {
|
|
2847
|
+
return items.map(plain => Meeting.parse(plain));
|
|
2848
|
+
}
|
|
2849
|
+
|
|
2820
2850
|
static newFrom(meeting ) {
|
|
2821
2851
|
return newFrom(meeting, Meeting);
|
|
2822
2852
|
}
|
|
2823
2853
|
|
|
2824
|
-
constructor({
|
|
2854
|
+
constructor({
|
|
2855
|
+
uuid,
|
|
2856
|
+
name,
|
|
2857
|
+
guestSipAuthorization,
|
|
2858
|
+
ownerUuids,
|
|
2859
|
+
port,
|
|
2860
|
+
uri,
|
|
2861
|
+
number,
|
|
2862
|
+
persistent,
|
|
2863
|
+
} = {}) {
|
|
2825
2864
|
this.guestSipAuthorization = guestSipAuthorization;
|
|
2826
2865
|
this.uri = uri;
|
|
2827
2866
|
this.name = name;
|
|
@@ -2829,6 +2868,7 @@ class Meeting {
|
|
|
2829
2868
|
this.port = port;
|
|
2830
2869
|
this.uuid = uuid;
|
|
2831
2870
|
this.number = number;
|
|
2871
|
+
this.persistent = persistent;
|
|
2832
2872
|
|
|
2833
2873
|
// Useful to compare instead of instanceof with minified code
|
|
2834
2874
|
this.type = 'Meeting';
|
|
@@ -2906,8 +2946,11 @@ var confdMethods = (client , baseUrl ) => ({
|
|
|
2906
2946
|
}
|
|
2907
2947
|
},
|
|
2908
2948
|
|
|
2909
|
-
|
|
2910
|
-
client.
|
|
2949
|
+
getMyMeetings: () =>
|
|
2950
|
+
client.get(`${baseUrl}/users/me/meetings`).then(response => Meeting.parseMany(response.items)),
|
|
2951
|
+
|
|
2952
|
+
createMyMeeting: (name , persistent ) =>
|
|
2953
|
+
client.post(`${baseUrl}/users/me/meetings`, { name, persistent }).then(Meeting.parse),
|
|
2911
2954
|
|
|
2912
2955
|
deleteMyMeeting: (meetingUuid ) =>
|
|
2913
2956
|
client.delete(`${baseUrl}/users/me/meetings/${meetingUuid}`, null),
|
|
@@ -3186,7 +3229,7 @@ class Recording {
|
|
|
3186
3229
|
|
|
3187
3230
|
|
|
3188
3231
|
|
|
3189
|
-
static parseMany(recordings
|
|
3232
|
+
static parseMany(recordings = []) {
|
|
3190
3233
|
return recordings.map(item => Recording.parse(item));
|
|
3191
3234
|
}
|
|
3192
3235
|
|
|
@@ -3312,7 +3355,7 @@ class CallLog {
|
|
|
3312
3355
|
duration: (plain.duration || 0) * 1000, // duration is in seconds
|
|
3313
3356
|
start: moment(plain.start).toDate(),
|
|
3314
3357
|
end: plain.end ? moment(plain.end).toDate() : null,
|
|
3315
|
-
recordings: Recording.parseMany(plain.recordings),
|
|
3358
|
+
recordings: Recording.parseMany(plain.recordings || []),
|
|
3316
3359
|
});
|
|
3317
3360
|
}
|
|
3318
3361
|
|
|
@@ -4783,4 +4826,4 @@ class AdHocAPIConference {
|
|
|
4783
4826
|
}
|
|
4784
4827
|
}
|
|
4785
4828
|
|
|
4786
|
-
export
|
|
4829
|
+
export default AdHocAPIConference;
|
package/esm/domain/Agent.js
CHANGED
package/esm/domain/Call.js
CHANGED
package/esm/domain/CallLog.js
CHANGED
|
@@ -53,7 +53,7 @@ class Recording {
|
|
|
53
53
|
|
|
54
54
|
|
|
55
55
|
|
|
56
|
-
static parseMany(recordings
|
|
56
|
+
static parseMany(recordings = []) {
|
|
57
57
|
return recordings.map(item => Recording.parse(item));
|
|
58
58
|
}
|
|
59
59
|
|
|
@@ -179,7 +179,7 @@ class CallLog {
|
|
|
179
179
|
duration: (plain.duration || 0) * 1000, // duration is in seconds
|
|
180
180
|
start: moment(plain.start).toDate(),
|
|
181
181
|
end: plain.end ? moment(plain.end).toDate() : null,
|
|
182
|
-
recordings: Recording.parseMany(plain.recordings),
|
|
182
|
+
recordings: Recording.parseMany(plain.recordings || []),
|
|
183
183
|
});
|
|
184
184
|
}
|
|
185
185
|
|
|
@@ -303,4 +303,4 @@ class CallLog {
|
|
|
303
303
|
}
|
|
304
304
|
}
|
|
305
305
|
|
|
306
|
-
export
|
|
306
|
+
export default CallLog;
|
package/esm/domain/ChatRoom.js
CHANGED
package/esm/domain/Contact.js
CHANGED
package/esm/domain/Country.js
CHANGED