@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
|
@@ -130,6 +130,7 @@ class IssueReporter {
|
|
|
130
130
|
|
|
131
131
|
|
|
132
132
|
|
|
133
|
+
|
|
133
134
|
|
|
134
135
|
constructor() {
|
|
135
136
|
addLevelsTo(this);
|
|
@@ -141,12 +142,17 @@ class IssueReporter {
|
|
|
141
142
|
this.bufferTimeout = null;
|
|
142
143
|
this._boundProcessBuffer = this._processBuffer.bind(this);
|
|
143
144
|
this._boundParseLoggerBody = this._parseLoggerBody.bind(this);
|
|
145
|
+
this._callback = null;
|
|
144
146
|
}
|
|
145
147
|
|
|
146
148
|
init() {
|
|
147
149
|
this._catchConsole();
|
|
148
150
|
}
|
|
149
151
|
|
|
152
|
+
setCallback(cb ) {
|
|
153
|
+
this._callback = cb;
|
|
154
|
+
}
|
|
155
|
+
|
|
150
156
|
configureRemoteClient(configuration = { tag: 'wazo-sdk', host: null, port: null, level: null, extra: {} }) {
|
|
151
157
|
this.remoteClientConfiguration = configuration;
|
|
152
158
|
}
|
|
@@ -182,6 +188,7 @@ class IssueReporter {
|
|
|
182
188
|
|
|
183
189
|
// Handle category label
|
|
184
190
|
let category = null;
|
|
191
|
+
let skipSendToRemote = false;
|
|
185
192
|
let extra = {};
|
|
186
193
|
if (args[0].indexOf(CATEGORY_PREFIX) === 0) {
|
|
187
194
|
category = args[0].split('=')[1];
|
|
@@ -197,6 +204,7 @@ class IssueReporter {
|
|
|
197
204
|
errorMessage: lastArg.message,
|
|
198
205
|
errorStack: lastArg.stack,
|
|
199
206
|
errorType: lastArg.constructor.name,
|
|
207
|
+
skipSendToRemote: lastArg.skipSendToRemote,
|
|
200
208
|
};
|
|
201
209
|
} else {
|
|
202
210
|
extra = lastArg;
|
|
@@ -205,6 +213,11 @@ class IssueReporter {
|
|
|
205
213
|
args.splice(1, 1);
|
|
206
214
|
}
|
|
207
215
|
|
|
216
|
+
if (extra.skipSendToRemote) {
|
|
217
|
+
skipSendToRemote = true;
|
|
218
|
+
delete extra.skipSendToRemote;
|
|
219
|
+
}
|
|
220
|
+
|
|
208
221
|
const date = moment().format('YYYY-MM-DD HH:mm:ss.SSS');
|
|
209
222
|
const message = args.join(', ');
|
|
210
223
|
let consoleMessage = message;
|
|
@@ -225,7 +238,13 @@ class IssueReporter {
|
|
|
225
238
|
const oldMethod = this.oldConsoleMethods[consoleLevel] || this.oldConsoleMethods.log;
|
|
226
239
|
oldMethod.apply(oldMethod, [date, consoleMessage]);
|
|
227
240
|
|
|
228
|
-
this.
|
|
241
|
+
if (this._callback) {
|
|
242
|
+
this._callback(level, consoleMessage);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
if (!skipSendToRemote) {
|
|
246
|
+
this._sendToRemoteLogger(level, { date, message, category, ...extra });
|
|
247
|
+
}
|
|
229
248
|
}
|
|
230
249
|
|
|
231
250
|
logRequest(url , options , response , start ) {
|
|
@@ -370,7 +389,11 @@ class IssueReporter {
|
|
|
370
389
|
},
|
|
371
390
|
// $FlowFixMe
|
|
372
391
|
body,
|
|
373
|
-
}).catch(() => {
|
|
392
|
+
}).catch((e ) => {
|
|
393
|
+
// $FlowFixMe
|
|
394
|
+
e.skipSendToRemote = true;
|
|
395
|
+
this.log('error', this._makeCategory('grafana'), 'Sending log to grafana, error', e);
|
|
396
|
+
|
|
374
397
|
setTimeout(() => {
|
|
375
398
|
if (isArray) {
|
|
376
399
|
payload = payload.map(message => {
|
|
@@ -382,7 +405,7 @@ class IssueReporter {
|
|
|
382
405
|
payload._retry = retry + 1;
|
|
383
406
|
}
|
|
384
407
|
|
|
385
|
-
this._sendDebugToGrafana(
|
|
408
|
+
this._sendDebugToGrafana(payload, retry + 1);
|
|
386
409
|
}, 5000 + retry * 1000);
|
|
387
410
|
});
|
|
388
411
|
}
|
|
@@ -2585,7 +2608,8 @@ class ExternalApp {
|
|
|
2585
2608
|
|
|
2586
2609
|
|
|
2587
2610
|
|
|
2588
|
-
|
|
2611
|
+
|
|
2612
|
+
|
|
2589
2613
|
|
|
2590
2614
|
|
|
2591
2615
|
class Meeting {
|
|
@@ -2597,6 +2621,7 @@ class Meeting {
|
|
|
2597
2621
|
|
|
2598
2622
|
|
|
2599
2623
|
|
|
2624
|
+
|
|
2600
2625
|
|
|
2601
2626
|
|
|
2602
2627
|
static parse(plain ) {
|
|
@@ -2608,14 +2633,28 @@ class Meeting {
|
|
|
2608
2633
|
port: plain.port,
|
|
2609
2634
|
uuid: plain.uuid,
|
|
2610
2635
|
number: plain.number,
|
|
2636
|
+
persistent: plain.persistent,
|
|
2611
2637
|
});
|
|
2612
2638
|
}
|
|
2613
2639
|
|
|
2640
|
+
static parseMany(items ) {
|
|
2641
|
+
return items.map(plain => Meeting.parse(plain));
|
|
2642
|
+
}
|
|
2643
|
+
|
|
2614
2644
|
static newFrom(meeting ) {
|
|
2615
2645
|
return newFrom(meeting, Meeting);
|
|
2616
2646
|
}
|
|
2617
2647
|
|
|
2618
|
-
constructor({
|
|
2648
|
+
constructor({
|
|
2649
|
+
uuid,
|
|
2650
|
+
name,
|
|
2651
|
+
guestSipAuthorization,
|
|
2652
|
+
ownerUuids,
|
|
2653
|
+
port,
|
|
2654
|
+
uri,
|
|
2655
|
+
number,
|
|
2656
|
+
persistent,
|
|
2657
|
+
} = {}) {
|
|
2619
2658
|
this.guestSipAuthorization = guestSipAuthorization;
|
|
2620
2659
|
this.uri = uri;
|
|
2621
2660
|
this.name = name;
|
|
@@ -2623,6 +2662,7 @@ class Meeting {
|
|
|
2623
2662
|
this.port = port;
|
|
2624
2663
|
this.uuid = uuid;
|
|
2625
2664
|
this.number = number;
|
|
2665
|
+
this.persistent = persistent;
|
|
2626
2666
|
|
|
2627
2667
|
// Useful to compare instead of instanceof with minified code
|
|
2628
2668
|
this.type = 'Meeting';
|
|
@@ -2700,8 +2740,11 @@ var confdMethods = (client , baseUrl ) => ({
|
|
|
2700
2740
|
}
|
|
2701
2741
|
},
|
|
2702
2742
|
|
|
2703
|
-
|
|
2704
|
-
client.
|
|
2743
|
+
getMyMeetings: () =>
|
|
2744
|
+
client.get(`${baseUrl}/users/me/meetings`).then(response => Meeting.parseMany(response.items)),
|
|
2745
|
+
|
|
2746
|
+
createMyMeeting: (name , persistent ) =>
|
|
2747
|
+
client.post(`${baseUrl}/users/me/meetings`, { name, persistent }).then(Meeting.parse),
|
|
2705
2748
|
|
|
2706
2749
|
deleteMyMeeting: (meetingUuid ) =>
|
|
2707
2750
|
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
|
|
|
@@ -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);
|
package/esm/api/agentd.js
CHANGED
|
@@ -126,6 +126,7 @@ class IssueReporter {
|
|
|
126
126
|
|
|
127
127
|
|
|
128
128
|
|
|
129
|
+
|
|
129
130
|
|
|
130
131
|
constructor() {
|
|
131
132
|
addLevelsTo(this);
|
|
@@ -137,12 +138,17 @@ class IssueReporter {
|
|
|
137
138
|
this.bufferTimeout = null;
|
|
138
139
|
this._boundProcessBuffer = this._processBuffer.bind(this);
|
|
139
140
|
this._boundParseLoggerBody = this._parseLoggerBody.bind(this);
|
|
141
|
+
this._callback = null;
|
|
140
142
|
}
|
|
141
143
|
|
|
142
144
|
init() {
|
|
143
145
|
this._catchConsole();
|
|
144
146
|
}
|
|
145
147
|
|
|
148
|
+
setCallback(cb ) {
|
|
149
|
+
this._callback = cb;
|
|
150
|
+
}
|
|
151
|
+
|
|
146
152
|
configureRemoteClient(configuration = { tag: 'wazo-sdk', host: null, port: null, level: null, extra: {} }) {
|
|
147
153
|
this.remoteClientConfiguration = configuration;
|
|
148
154
|
}
|
|
@@ -178,6 +184,7 @@ class IssueReporter {
|
|
|
178
184
|
|
|
179
185
|
// Handle category label
|
|
180
186
|
let category = null;
|
|
187
|
+
let skipSendToRemote = false;
|
|
181
188
|
let extra = {};
|
|
182
189
|
if (args[0].indexOf(CATEGORY_PREFIX) === 0) {
|
|
183
190
|
category = args[0].split('=')[1];
|
|
@@ -193,6 +200,7 @@ class IssueReporter {
|
|
|
193
200
|
errorMessage: lastArg.message,
|
|
194
201
|
errorStack: lastArg.stack,
|
|
195
202
|
errorType: lastArg.constructor.name,
|
|
203
|
+
skipSendToRemote: lastArg.skipSendToRemote,
|
|
196
204
|
};
|
|
197
205
|
} else {
|
|
198
206
|
extra = lastArg;
|
|
@@ -201,6 +209,11 @@ class IssueReporter {
|
|
|
201
209
|
args.splice(1, 1);
|
|
202
210
|
}
|
|
203
211
|
|
|
212
|
+
if (extra.skipSendToRemote) {
|
|
213
|
+
skipSendToRemote = true;
|
|
214
|
+
delete extra.skipSendToRemote;
|
|
215
|
+
}
|
|
216
|
+
|
|
204
217
|
const date = moment().format('YYYY-MM-DD HH:mm:ss.SSS');
|
|
205
218
|
const message = args.join(', ');
|
|
206
219
|
let consoleMessage = message;
|
|
@@ -221,7 +234,13 @@ class IssueReporter {
|
|
|
221
234
|
const oldMethod = this.oldConsoleMethods[consoleLevel] || this.oldConsoleMethods.log;
|
|
222
235
|
oldMethod.apply(oldMethod, [date, consoleMessage]);
|
|
223
236
|
|
|
224
|
-
this.
|
|
237
|
+
if (this._callback) {
|
|
238
|
+
this._callback(level, consoleMessage);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
if (!skipSendToRemote) {
|
|
242
|
+
this._sendToRemoteLogger(level, { date, message, category, ...extra });
|
|
243
|
+
}
|
|
225
244
|
}
|
|
226
245
|
|
|
227
246
|
logRequest(url , options , response , start ) {
|
|
@@ -366,7 +385,11 @@ class IssueReporter {
|
|
|
366
385
|
},
|
|
367
386
|
// $FlowFixMe
|
|
368
387
|
body,
|
|
369
|
-
}).catch(() => {
|
|
388
|
+
}).catch((e ) => {
|
|
389
|
+
// $FlowFixMe
|
|
390
|
+
e.skipSendToRemote = true;
|
|
391
|
+
this.log('error', this._makeCategory('grafana'), 'Sending log to grafana, error', e);
|
|
392
|
+
|
|
370
393
|
setTimeout(() => {
|
|
371
394
|
if (isArray) {
|
|
372
395
|
payload = payload.map(message => {
|
|
@@ -378,7 +401,7 @@ class IssueReporter {
|
|
|
378
401
|
payload._retry = retry + 1;
|
|
379
402
|
}
|
|
380
403
|
|
|
381
|
-
this._sendDebugToGrafana(
|
|
404
|
+
this._sendDebugToGrafana(payload, retry + 1);
|
|
382
405
|
}, 5000 + retry * 1000);
|
|
383
406
|
});
|
|
384
407
|
}
|
|
@@ -801,4 +824,4 @@ var agentd = (client , baseUrl ) => ({
|
|
|
801
824
|
),
|
|
802
825
|
});
|
|
803
826
|
|
|
804
|
-
export
|
|
827
|
+
export default agentd;
|
package/esm/api/amid.js
CHANGED
|
@@ -65,6 +65,7 @@ class IssueReporter {
|
|
|
65
65
|
|
|
66
66
|
|
|
67
67
|
|
|
68
|
+
|
|
68
69
|
|
|
69
70
|
constructor() {
|
|
70
71
|
addLevelsTo(this);
|
|
@@ -76,12 +77,17 @@ class IssueReporter {
|
|
|
76
77
|
this.bufferTimeout = null;
|
|
77
78
|
this._boundProcessBuffer = this._processBuffer.bind(this);
|
|
78
79
|
this._boundParseLoggerBody = this._parseLoggerBody.bind(this);
|
|
80
|
+
this._callback = null;
|
|
79
81
|
}
|
|
80
82
|
|
|
81
83
|
init() {
|
|
82
84
|
this._catchConsole();
|
|
83
85
|
}
|
|
84
86
|
|
|
87
|
+
setCallback(cb ) {
|
|
88
|
+
this._callback = cb;
|
|
89
|
+
}
|
|
90
|
+
|
|
85
91
|
configureRemoteClient(configuration = { tag: 'wazo-sdk', host: null, port: null, level: null, extra: {} }) {
|
|
86
92
|
this.remoteClientConfiguration = configuration;
|
|
87
93
|
}
|
|
@@ -117,6 +123,7 @@ class IssueReporter {
|
|
|
117
123
|
|
|
118
124
|
// Handle category label
|
|
119
125
|
let category = null;
|
|
126
|
+
let skipSendToRemote = false;
|
|
120
127
|
let extra = {};
|
|
121
128
|
if (args[0].indexOf(CATEGORY_PREFIX) === 0) {
|
|
122
129
|
category = args[0].split('=')[1];
|
|
@@ -132,6 +139,7 @@ class IssueReporter {
|
|
|
132
139
|
errorMessage: lastArg.message,
|
|
133
140
|
errorStack: lastArg.stack,
|
|
134
141
|
errorType: lastArg.constructor.name,
|
|
142
|
+
skipSendToRemote: lastArg.skipSendToRemote,
|
|
135
143
|
};
|
|
136
144
|
} else {
|
|
137
145
|
extra = lastArg;
|
|
@@ -140,6 +148,11 @@ class IssueReporter {
|
|
|
140
148
|
args.splice(1, 1);
|
|
141
149
|
}
|
|
142
150
|
|
|
151
|
+
if (extra.skipSendToRemote) {
|
|
152
|
+
skipSendToRemote = true;
|
|
153
|
+
delete extra.skipSendToRemote;
|
|
154
|
+
}
|
|
155
|
+
|
|
143
156
|
const date = moment().format('YYYY-MM-DD HH:mm:ss.SSS');
|
|
144
157
|
const message = args.join(', ');
|
|
145
158
|
let consoleMessage = message;
|
|
@@ -160,7 +173,13 @@ class IssueReporter {
|
|
|
160
173
|
const oldMethod = this.oldConsoleMethods[consoleLevel] || this.oldConsoleMethods.log;
|
|
161
174
|
oldMethod.apply(oldMethod, [date, consoleMessage]);
|
|
162
175
|
|
|
163
|
-
this.
|
|
176
|
+
if (this._callback) {
|
|
177
|
+
this._callback(level, consoleMessage);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
if (!skipSendToRemote) {
|
|
181
|
+
this._sendToRemoteLogger(level, { date, message, category, ...extra });
|
|
182
|
+
}
|
|
164
183
|
}
|
|
165
184
|
|
|
166
185
|
logRequest(url , options , response , start ) {
|
|
@@ -305,7 +324,11 @@ class IssueReporter {
|
|
|
305
324
|
},
|
|
306
325
|
// $FlowFixMe
|
|
307
326
|
body,
|
|
308
|
-
}).catch(() => {
|
|
327
|
+
}).catch((e ) => {
|
|
328
|
+
// $FlowFixMe
|
|
329
|
+
e.skipSendToRemote = true;
|
|
330
|
+
this.log('error', this._makeCategory('grafana'), 'Sending log to grafana, error', e);
|
|
331
|
+
|
|
309
332
|
setTimeout(() => {
|
|
310
333
|
if (isArray) {
|
|
311
334
|
payload = payload.map(message => {
|
|
@@ -317,7 +340,7 @@ class IssueReporter {
|
|
|
317
340
|
payload._retry = retry + 1;
|
|
318
341
|
}
|
|
319
342
|
|
|
320
|
-
this._sendDebugToGrafana(
|
|
343
|
+
this._sendDebugToGrafana(payload, retry + 1);
|
|
321
344
|
}, 5000 + retry * 1000);
|
|
322
345
|
});
|
|
323
346
|
}
|
|
@@ -380,4 +403,4 @@ var amid = (client , baseUrl ) => ({
|
|
|
380
403
|
},
|
|
381
404
|
});
|
|
382
405
|
|
|
383
|
-
export
|
|
406
|
+
export default amid;
|