@wazo/sdk 0.37.18 → 0.37.19
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 +9 -5
- package/esm/__tests__/web-rtc-client.test.js +10 -6
- package/esm/api/agentd.js +2 -2
- package/esm/api/amid.js +2 -2
- package/esm/api/application.js +2 -2
- package/esm/api/auth.js +4 -3
- package/esm/api/call-logd.js +4 -4
- package/esm/api/calld.js +2 -2
- package/esm/api/chatd.js +2 -2
- package/esm/api/confd.js +8 -4
- package/esm/api/ctid-ng.js +2 -2
- package/esm/api/dird.js +2 -2
- package/esm/api/webhookd.js +2 -2
- package/esm/api-client.js +11 -7
- package/esm/checker/Checker.js +11 -7
- package/esm/checker/checks/aor.js +11 -7
- package/esm/checker/checks/api.js +11 -7
- package/esm/checker/checks/ice-ipv4.js +1 -1
- package/esm/checker/checks/index.js +12 -8
- package/esm/checker/checks/symmetric-nat.js +1 -1
- package/esm/checker/checks/wazo-websocket.js +2 -2
- package/esm/checker/checks/webrtc-transport.js +12 -8
- package/esm/checker/checks/webrtc.js +12 -8
- package/esm/domain/AdHocAPIConference.js +11 -7
- 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 +11 -6
- 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 +7 -3
- package/esm/domain/NotificationOptions.js +1 -1
- package/esm/domain/Phone/CTIPhone.js +12 -7
- package/esm/domain/Phone/WebRTCPhone.js +3 -2
- 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 +12 -8
- package/esm/lib/WazoSessionDescriptionHandler.js +3 -2
- package/esm/service/CallApi.js +11 -7
- package/esm/service/IssueReporter.js +2 -2
- package/esm/service/__tests__/IssueReporter.test.js +1 -1
- package/esm/service/getApiClient.js +12 -7
- package/esm/simple/Auth.js +12 -7
- package/esm/simple/Configuration.js +11 -7
- package/esm/simple/Directory.js +10 -6
- package/esm/simple/Phone.js +11 -7
- package/esm/simple/Websocket.js +2 -2
- package/esm/simple/index.js +11 -7
- package/esm/simple/room/LocalParticipant.js +24 -24
- package/esm/simple/room/Participant.js +23 -21
- package/esm/simple/room/RemoteParticipant.js +25 -25
- package/esm/simple/room/Room.js +24 -21
- package/esm/simple/room/SipRoom.js +12 -10
- package/esm/simple/room/Stream.js +12 -10
- package/esm/simple/room/__tests__/RemoteParticipant.test.js +10 -6
- package/esm/simple/utils.js +10 -6
- package/esm/utils/Emitter.js +1 -1
- package/esm/utils/Heartbeat.js +1 -1
- package/esm/utils/__tests__/api-requester.test.js +1 -1
- package/esm/utils/api-requester.js +3 -2
- 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 +13 -8
- package/esm/websocket-client.js +3 -2
- package/lib/__tests__/api-client.test.js +18 -14
- package/lib/__tests__/web-rtc-client.test.js +27 -23
- package/lib/api/agentd.js +2 -2
- package/lib/api/amid.js +2 -2
- package/lib/api/application.js +2 -2
- package/lib/api/auth.js +3 -3
- package/lib/api/call-logd.js +9 -9
- package/lib/api/calld.js +5 -5
- package/lib/api/chatd.js +3 -3
- package/lib/api/confd.js +8 -4
- package/lib/api/ctid-ng.js +5 -5
- package/lib/api/dird.js +2 -2
- package/lib/api/webhookd.js +2 -2
- package/lib/api-client.js +18 -14
- package/lib/checker/Checker.js +28 -24
- package/lib/checker/checks/aor.js +18 -14
- package/lib/checker/checks/api.js +18 -14
- package/lib/checker/checks/index.js +28 -24
- package/lib/checker/checks/wazo-websocket.js +4 -4
- package/lib/checker/checks/webrtc-transport.js +27 -23
- package/lib/checker/checks/webrtc.js +27 -23
- package/lib/domain/AdHocAPIConference.js +18 -14
- 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 +19 -15
- package/lib/domain/ForwardOption.js +1 -1
- package/lib/domain/Meeting.js +6 -2
- package/lib/domain/Phone/CTIPhone.js +20 -16
- package/lib/domain/Phone/WebRTCPhone.js +4 -4
- 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 +31 -27
- package/lib/lib/WazoSessionDescriptionHandler.js +7 -7
- package/lib/service/CallApi.js +18 -14
- package/lib/service/IssueReporter.js +2 -2
- package/lib/service/__tests__/IssueReporter.test.js +2 -2
- package/lib/service/getApiClient.js +19 -15
- package/lib/simple/Auth.js +30 -26
- package/lib/simple/Configuration.js +29 -25
- package/lib/simple/Directory.js +18 -14
- package/lib/simple/Phone.js +29 -25
- package/lib/simple/Websocket.js +4 -4
- package/lib/simple/index.js +29 -25
- package/lib/simple/room/LocalParticipant.js +43 -43
- package/lib/simple/room/Participant.js +41 -39
- package/lib/simple/room/RemoteParticipant.js +44 -44
- package/lib/simple/room/Room.js +42 -40
- package/lib/simple/room/SipRoom.js +31 -29
- package/lib/simple/room/Stream.js +31 -29
- package/lib/simple/room/__tests__/RemoteParticipant.test.js +29 -25
- package/lib/simple/utils.js +29 -25
- 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 +2 -2
- package/lib/utils/__tests__/sdp.test.js +12 -12
- package/lib/utils/api-requester.js +3 -3
- package/lib/utils/sdp.js +10 -10
- package/lib/web-rtc-client.js +28 -24
- package/lib/websocket-client.js +5 -5
- package/package.json +1 -1
- package/src/domain/CallLog.js +1 -1
- package/src/domain/Meeting.js +6 -2
- package/src/domain/Recording.js +1 -1
- package/src/service/IssueReporter.js +1 -1
- package/src/web-rtc-client.js +1 -1
|
@@ -59,7 +59,7 @@ class Recording {
|
|
|
59
59
|
|
|
60
60
|
|
|
61
61
|
|
|
62
|
-
static parseMany(recordings
|
|
62
|
+
static parseMany(recordings = []) {
|
|
63
63
|
return recordings.map(item => Recording.parse(item));
|
|
64
64
|
}
|
|
65
65
|
|
|
@@ -67,8 +67,8 @@ class Recording {
|
|
|
67
67
|
return new Recording({
|
|
68
68
|
deleted: plain.deleted,
|
|
69
69
|
fileName: plain.filename,
|
|
70
|
-
end: plain.end_time ? moment__default[
|
|
71
|
-
start: moment__default[
|
|
70
|
+
end: plain.end_time ? moment__default['default'](plain.end_time).toDate() : null,
|
|
71
|
+
start: moment__default['default'](plain.start_time).toDate(),
|
|
72
72
|
uuid: plain.uuid,
|
|
73
73
|
});
|
|
74
74
|
}
|
|
@@ -166,7 +166,7 @@ class CallLog {
|
|
|
166
166
|
|
|
167
167
|
static parse(plain ) {
|
|
168
168
|
return new CallLog({
|
|
169
|
-
answer: plain.answer ? moment__default[
|
|
169
|
+
answer: plain.answer ? moment__default['default'](plain.answer).toDate() : null,
|
|
170
170
|
answered: plain.answered,
|
|
171
171
|
callDirection: plain.call_direction,
|
|
172
172
|
destination: {
|
|
@@ -183,9 +183,9 @@ class CallLog {
|
|
|
183
183
|
},
|
|
184
184
|
id: plain.id,
|
|
185
185
|
duration: (plain.duration || 0) * 1000, // duration is in seconds
|
|
186
|
-
start: moment__default[
|
|
187
|
-
end: plain.end ? moment__default[
|
|
188
|
-
recordings: Recording.parseMany(plain.recordings),
|
|
186
|
+
start: moment__default['default'](plain.start).toDate(),
|
|
187
|
+
end: plain.end ? moment__default['default'](plain.end).toDate() : null,
|
|
188
|
+
recordings: Recording.parseMany(plain.recordings || []),
|
|
189
189
|
});
|
|
190
190
|
}
|
|
191
191
|
|
|
@@ -317,7 +317,7 @@ describe('CallLog domain', () => {
|
|
|
317
317
|
filtered: 6,
|
|
318
318
|
items: [
|
|
319
319
|
{
|
|
320
|
-
answer: moment__default[
|
|
320
|
+
answer: moment__default['default']('2017-08-07T13:51:18.892002+00:00').toDate(),
|
|
321
321
|
answered: true,
|
|
322
322
|
call_direction: 'outbound',
|
|
323
323
|
source_extension: '8020',
|
|
@@ -348,7 +348,7 @@ describe('CallLog domain', () => {
|
|
|
348
348
|
|
|
349
349
|
expect(logs).toEqual([
|
|
350
350
|
new CallLog({
|
|
351
|
-
answer: moment__default[
|
|
351
|
+
answer: moment__default['default']('2017-08-07T13:51:18.892002+00:00').toDate(),
|
|
352
352
|
answered: true,
|
|
353
353
|
callDirection: 'outbound',
|
|
354
354
|
destination: {
|
|
@@ -361,14 +361,14 @@ describe('CallLog domain', () => {
|
|
|
361
361
|
},
|
|
362
362
|
id: 215,
|
|
363
363
|
duration: 4000,
|
|
364
|
-
start: moment__default[
|
|
365
|
-
end: moment__default[
|
|
364
|
+
start: moment__default['default']('2017-08-06T13:50:55.819057+00:00').toDate(),
|
|
365
|
+
end: moment__default['default']('2017-08-08T13:51:23.822529+00:00').toDate(),
|
|
366
366
|
recordings: [
|
|
367
367
|
new Recording({
|
|
368
368
|
deleted: false,
|
|
369
|
-
end: moment__default[
|
|
369
|
+
end: moment__default['default']('2021-08-11T13:22:50.519733+00:00').toDate(),
|
|
370
370
|
fileName: '2021-08-11T13_22_45UTC-61886-xxxx-5c72-4072-8503-e3ad9a41c0a0.wav',
|
|
371
|
-
start: moment__default[
|
|
371
|
+
start: moment__default['default']('2021-08-11T13:22:45.161954+00:00').toDate(),
|
|
372
372
|
uuid: '0394ad6f-5c72-4072-8503-e3ad9a41c0a0',
|
|
373
373
|
}),
|
|
374
374
|
],
|
|
@@ -66,7 +66,7 @@ class Voicemail {
|
|
|
66
66
|
static parse(plain ) {
|
|
67
67
|
return new Voicemail({
|
|
68
68
|
id: plain.id,
|
|
69
|
-
date: moment__default[
|
|
69
|
+
date: moment__default['default'](plain.timestamp * 1000).toDate(),
|
|
70
70
|
duration: plain.duration * 1000,
|
|
71
71
|
caller: {
|
|
72
72
|
name: plain.caller_id_name,
|
package/lib/index.js
CHANGED
|
@@ -236,7 +236,7 @@ class IssueReporter {
|
|
|
236
236
|
args.splice(1, 1);
|
|
237
237
|
}
|
|
238
238
|
|
|
239
|
-
const date = moment__default[
|
|
239
|
+
const date = moment__default['default']().format('YYYY-MM-DD HH:mm:ss.SSS');
|
|
240
240
|
const message = args.join(', ');
|
|
241
241
|
let consoleMessage = message;
|
|
242
242
|
|
|
@@ -413,7 +413,7 @@ class IssueReporter {
|
|
|
413
413
|
payload._retry = retry + 1;
|
|
414
414
|
}
|
|
415
415
|
|
|
416
|
-
this._sendDebugToGrafana(
|
|
416
|
+
this._sendDebugToGrafana(payload, retry + 1);
|
|
417
417
|
}, 5000 + retry * 1000);
|
|
418
418
|
});
|
|
419
419
|
}
|
|
@@ -2616,7 +2616,8 @@ class ExternalApp {
|
|
|
2616
2616
|
|
|
2617
2617
|
|
|
2618
2618
|
|
|
2619
|
-
|
|
2619
|
+
|
|
2620
|
+
|
|
2620
2621
|
|
|
2621
2622
|
|
|
2622
2623
|
class Meeting {
|
|
@@ -2628,6 +2629,7 @@ class Meeting {
|
|
|
2628
2629
|
|
|
2629
2630
|
|
|
2630
2631
|
|
|
2632
|
+
|
|
2631
2633
|
|
|
2632
2634
|
|
|
2633
2635
|
static parse(plain ) {
|
|
@@ -2639,6 +2641,7 @@ class Meeting {
|
|
|
2639
2641
|
port: plain.port,
|
|
2640
2642
|
uuid: plain.uuid,
|
|
2641
2643
|
number: plain.number,
|
|
2644
|
+
persistent: plain.persistent,
|
|
2642
2645
|
});
|
|
2643
2646
|
}
|
|
2644
2647
|
|
|
@@ -2646,7 +2649,7 @@ class Meeting {
|
|
|
2646
2649
|
return newFrom(meeting, Meeting);
|
|
2647
2650
|
}
|
|
2648
2651
|
|
|
2649
|
-
constructor({ uuid, name, guestSipAuthorization, ownerUuids, port, uri, number } = {}) {
|
|
2652
|
+
constructor({ uuid, name, guestSipAuthorization, ownerUuids, port, uri, number, persistent } = {}) {
|
|
2650
2653
|
this.guestSipAuthorization = guestSipAuthorization;
|
|
2651
2654
|
this.uri = uri;
|
|
2652
2655
|
this.name = name;
|
|
@@ -2654,6 +2657,7 @@ class Meeting {
|
|
|
2654
2657
|
this.port = port;
|
|
2655
2658
|
this.uuid = uuid;
|
|
2656
2659
|
this.number = number;
|
|
2660
|
+
this.persistent = persistent;
|
|
2657
2661
|
|
|
2658
2662
|
// Useful to compare instead of instanceof with minified code
|
|
2659
2663
|
this.type = 'Meeting';
|
|
@@ -2834,7 +2838,7 @@ class ChatMessage {
|
|
|
2834
2838
|
static parse(plain ) {
|
|
2835
2839
|
return new ChatMessage({
|
|
2836
2840
|
uuid: plain.uuid,
|
|
2837
|
-
date: moment__default[
|
|
2841
|
+
date: moment__default['default'](plain.created_at).toDate(),
|
|
2838
2842
|
content: plain.content,
|
|
2839
2843
|
alias: plain.alias,
|
|
2840
2844
|
userUuid: plain.user_uuid,
|
|
@@ -2926,7 +2930,7 @@ class Voicemail {
|
|
|
2926
2930
|
static parse(plain ) {
|
|
2927
2931
|
return new Voicemail({
|
|
2928
2932
|
id: plain.id,
|
|
2929
|
-
date: moment__default[
|
|
2933
|
+
date: moment__default['default'](plain.timestamp * 1000).toDate(),
|
|
2930
2934
|
duration: plain.duration * 1000,
|
|
2931
2935
|
caller: {
|
|
2932
2936
|
name: plain.caller_id_name,
|
|
@@ -3063,7 +3067,7 @@ class Call {
|
|
|
3063
3067
|
onHold: plain.on_hold,
|
|
3064
3068
|
status: plain.status,
|
|
3065
3069
|
lineId: plain.line_id,
|
|
3066
|
-
startingTime: moment__default[
|
|
3070
|
+
startingTime: moment__default['default'](plain.creation_time).toDate(),
|
|
3067
3071
|
talkingToIds: Object.keys(plain.talking_to || {}),
|
|
3068
3072
|
recording: plain.record_state === RECORD_STATE_ACTIVE,
|
|
3069
3073
|
});
|
|
@@ -3543,7 +3547,7 @@ class Emitter {
|
|
|
3543
3547
|
|
|
3544
3548
|
|
|
3545
3549
|
constructor() {
|
|
3546
|
-
this.eventEmitter = new EventEmitter__default[
|
|
3550
|
+
this.eventEmitter = new EventEmitter__default['default']();
|
|
3547
3551
|
}
|
|
3548
3552
|
|
|
3549
3553
|
on(event , callback ) {
|
|
@@ -3588,7 +3592,7 @@ class Recording {
|
|
|
3588
3592
|
|
|
3589
3593
|
|
|
3590
3594
|
|
|
3591
|
-
static parseMany(recordings
|
|
3595
|
+
static parseMany(recordings = []) {
|
|
3592
3596
|
return recordings.map(item => Recording.parse(item));
|
|
3593
3597
|
}
|
|
3594
3598
|
|
|
@@ -3596,8 +3600,8 @@ class Recording {
|
|
|
3596
3600
|
return new Recording({
|
|
3597
3601
|
deleted: plain.deleted,
|
|
3598
3602
|
fileName: plain.filename,
|
|
3599
|
-
end: plain.end_time ? moment__default[
|
|
3600
|
-
start: moment__default[
|
|
3603
|
+
end: plain.end_time ? moment__default['default'](plain.end_time).toDate() : null,
|
|
3604
|
+
start: moment__default['default'](plain.start_time).toDate(),
|
|
3601
3605
|
uuid: plain.uuid,
|
|
3602
3606
|
});
|
|
3603
3607
|
}
|
|
@@ -3695,7 +3699,7 @@ class CallLog {
|
|
|
3695
3699
|
|
|
3696
3700
|
static parse(plain ) {
|
|
3697
3701
|
return new CallLog({
|
|
3698
|
-
answer: plain.answer ? moment__default[
|
|
3702
|
+
answer: plain.answer ? moment__default['default'](plain.answer).toDate() : null,
|
|
3699
3703
|
answered: plain.answered,
|
|
3700
3704
|
callDirection: plain.call_direction,
|
|
3701
3705
|
destination: {
|
|
@@ -3712,9 +3716,9 @@ class CallLog {
|
|
|
3712
3716
|
},
|
|
3713
3717
|
id: plain.id,
|
|
3714
3718
|
duration: (plain.duration || 0) * 1000, // duration is in seconds
|
|
3715
|
-
start: moment__default[
|
|
3716
|
-
end: plain.end ? moment__default[
|
|
3717
|
-
recordings: Recording.parseMany(plain.recordings),
|
|
3719
|
+
start: moment__default['default'](plain.start).toDate(),
|
|
3720
|
+
end: plain.end ? moment__default['default'](plain.end).toDate() : null,
|
|
3721
|
+
recordings: Recording.parseMany(plain.recordings || []),
|
|
3718
3722
|
});
|
|
3719
3723
|
}
|
|
3720
3724
|
|
|
@@ -5449,7 +5453,7 @@ const parseCandidate$1 = (candidate ) => {
|
|
|
5449
5453
|
if (!candidate) {
|
|
5450
5454
|
return null;
|
|
5451
5455
|
}
|
|
5452
|
-
const result = sdpParser__default[
|
|
5456
|
+
const result = sdpParser__default['default'].parse(candidate.indexOf('a=') === 0 ? candidate : `a=${candidate}`);
|
|
5453
5457
|
|
|
5454
5458
|
return result.candidates ? result.candidates[0] : null;
|
|
5455
5459
|
};
|
|
@@ -5463,7 +5467,7 @@ const areCandidateValid = (candidates ) =>
|
|
|
5463
5467
|
.length > 0;
|
|
5464
5468
|
|
|
5465
5469
|
const getVideoDirection = (sdp ) => {
|
|
5466
|
-
const parsedSdp = sdpParser__default[
|
|
5470
|
+
const parsedSdp = sdpParser__default['default'].parse(sdp);
|
|
5467
5471
|
const videoMedia = parsedSdp.media.find(media => media.type === 'video');
|
|
5468
5472
|
if (!videoMedia) {
|
|
5469
5473
|
return null;
|
|
@@ -5477,14 +5481,14 @@ const hasAnActiveVideo = (sdp ) => {
|
|
|
5477
5481
|
return false;
|
|
5478
5482
|
}
|
|
5479
5483
|
|
|
5480
|
-
const parsedSdp = sdpParser__default[
|
|
5484
|
+
const parsedSdp = sdpParser__default['default'].parse(sdp);
|
|
5481
5485
|
|
|
5482
5486
|
return !!parsedSdp.media.find(media =>
|
|
5483
5487
|
media.type === 'video' && media.port > 10 && (!media.direction || media.direction !== 'inactive'));
|
|
5484
5488
|
};
|
|
5485
5489
|
|
|
5486
5490
|
const fixSdp = (sdp , candidates , forcePort = true) => {
|
|
5487
|
-
const parsedSdp = sdpParser__default[
|
|
5491
|
+
const parsedSdp = sdpParser__default['default'].parse(sdp);
|
|
5488
5492
|
const mainCandidate = getSrflxOrRelay(candidates)[0];
|
|
5489
5493
|
const ip = mainCandidate ? mainCandidate.ip : null;
|
|
5490
5494
|
|
|
@@ -5502,7 +5506,7 @@ const fixSdp = (sdp , candidates , forcePort = true)
|
|
|
5502
5506
|
};
|
|
5503
5507
|
});
|
|
5504
5508
|
|
|
5505
|
-
let fixed = sdpParser__default[
|
|
5509
|
+
let fixed = sdpParser__default['default'].write(parsedSdp);
|
|
5506
5510
|
|
|
5507
5511
|
if (ip) {
|
|
5508
5512
|
fixed = fixed.replace(/IN IP4 0.0.0.0/g, `IN IP4 ${ip}`);
|
|
@@ -5548,7 +5552,7 @@ class WazoSessionDescriptionHandler extends sessionDescriptionHandler.SessionDes
|
|
|
5548
5552
|
) {
|
|
5549
5553
|
super(logger, mediaStreamFactory, sessionDescriptionHandlerConfiguration);
|
|
5550
5554
|
|
|
5551
|
-
this.eventEmitter = new EventEmitter__default[
|
|
5555
|
+
this.eventEmitter = new EventEmitter__default['default']();
|
|
5552
5556
|
this.isWeb = isWeb;
|
|
5553
5557
|
this.session = session;
|
|
5554
5558
|
}
|
|
@@ -6865,7 +6869,7 @@ class WebRTCClient extends Emitter {
|
|
|
6865
6869
|
// We search for the last transceiver without `video-` in the mid (video- means remote transceiver)
|
|
6866
6870
|
const transceivers = pc.getTransceivers();
|
|
6867
6871
|
const transceiverIdx = lastIndexOf(transceivers, transceiver =>
|
|
6868
|
-
transceiver.sender.track === null && transceiver.mid.indexOf('video') === -1);
|
|
6872
|
+
transceiver.sender.track === null && transceiver.mid && transceiver.mid.indexOf('video') === -1);
|
|
6869
6873
|
|
|
6870
6874
|
videoSender = transceiverIdx !== -1 ? transceivers[transceiverIdx].sender : null;
|
|
6871
6875
|
} else {
|
|
@@ -8070,7 +8074,7 @@ class WebRTCClient extends Emitter {
|
|
|
8070
8074
|
}
|
|
8071
8075
|
const sessionId = this.getSipSessionId(session);
|
|
8072
8076
|
|
|
8073
|
-
getStats__default[
|
|
8077
|
+
getStats__default['default'](pc, (result ) => {
|
|
8074
8078
|
const { results, internal, nomore, ...stats } = result;
|
|
8075
8079
|
this.statsIntervals[sessionId] = nomore;
|
|
8076
8080
|
|
|
@@ -8345,7 +8349,7 @@ class WebSocketClient extends Emitter {
|
|
|
8345
8349
|
|
|
8346
8350
|
connect() {
|
|
8347
8351
|
logger$8.info('connect method started', { host: this.host, token: this.token });
|
|
8348
|
-
this.socket = new ReconnectingWebSocket__default[
|
|
8352
|
+
this.socket = new ReconnectingWebSocket__default['default'](this._getUrl.bind(this), [], this.options);
|
|
8349
8353
|
if (this.options.binaryType) {
|
|
8350
8354
|
this.socket.binaryType = this.options.binaryType;
|
|
8351
8355
|
}
|
|
@@ -11317,8 +11321,8 @@ class Checker {
|
|
|
11317
11321
|
|
|
11318
11322
|
//
|
|
11319
11323
|
|
|
11320
|
-
const PhoneNumberUtil = LibPhoneNumber__default[
|
|
11321
|
-
const { PhoneNumberFormat, AsYouTypeFormatter } = LibPhoneNumber__default[
|
|
11324
|
+
const PhoneNumberUtil = LibPhoneNumber__default['default'].PhoneNumberUtil.getInstance();
|
|
11325
|
+
const { PhoneNumberFormat, AsYouTypeFormatter } = LibPhoneNumber__default['default'];
|
|
11322
11326
|
|
|
11323
11327
|
// eslint-disable-next-line
|
|
11324
11328
|
const EXTRA_CHAR_REGEXP = /[^+*\d]/g;
|
|
@@ -13118,7 +13122,7 @@ class Room extends Emitter {
|
|
|
13118
13122
|
}
|
|
13119
13123
|
|
|
13120
13124
|
_mapMsid(rawSdp ) {
|
|
13121
|
-
const sdp = sdpParser__default[
|
|
13125
|
+
const sdp = sdpParser__default['default'].parse(rawSdp);
|
|
13122
13126
|
const labelMsidArray = sdp.media.filter(media => !!media.label).map(({ label, msid }) => ({
|
|
13123
13127
|
label: String(label),
|
|
13124
13128
|
streamId: msid.split(' ')[0],
|
|
@@ -182,7 +182,7 @@ class IssueReporter {
|
|
|
182
182
|
args.splice(1, 1);
|
|
183
183
|
}
|
|
184
184
|
|
|
185
|
-
const date = moment__default[
|
|
185
|
+
const date = moment__default['default']().format('YYYY-MM-DD HH:mm:ss.SSS');
|
|
186
186
|
const message = args.join(', ');
|
|
187
187
|
let consoleMessage = message;
|
|
188
188
|
|
|
@@ -359,7 +359,7 @@ class IssueReporter {
|
|
|
359
359
|
payload._retry = retry + 1;
|
|
360
360
|
}
|
|
361
361
|
|
|
362
|
-
this._sendDebugToGrafana(
|
|
362
|
+
this._sendDebugToGrafana(payload, retry + 1);
|
|
363
363
|
}, 5000 + retry * 1000);
|
|
364
364
|
});
|
|
365
365
|
}
|
|
@@ -387,7 +387,7 @@ const parseCandidate = (candidate ) => {
|
|
|
387
387
|
if (!candidate) {
|
|
388
388
|
return null;
|
|
389
389
|
}
|
|
390
|
-
const result = sdpParser__default[
|
|
390
|
+
const result = sdpParser__default['default'].parse(candidate.indexOf('a=') === 0 ? candidate : `a=${candidate}`);
|
|
391
391
|
|
|
392
392
|
return result.candidates ? result.candidates[0] : null;
|
|
393
393
|
};
|
|
@@ -401,7 +401,7 @@ const areCandidateValid = (candidates ) =>
|
|
|
401
401
|
.length > 0;
|
|
402
402
|
|
|
403
403
|
const fixSdp = (sdp , candidates , forcePort = true) => {
|
|
404
|
-
const parsedSdp = sdpParser__default[
|
|
404
|
+
const parsedSdp = sdpParser__default['default'].parse(sdp);
|
|
405
405
|
const mainCandidate = getSrflxOrRelay(candidates)[0];
|
|
406
406
|
const ip = mainCandidate ? mainCandidate.ip : null;
|
|
407
407
|
|
|
@@ -419,7 +419,7 @@ const fixSdp = (sdp , candidates , forcePort = true)
|
|
|
419
419
|
};
|
|
420
420
|
});
|
|
421
421
|
|
|
422
|
-
let fixed = sdpParser__default[
|
|
422
|
+
let fixed = sdpParser__default['default'].write(parsedSdp);
|
|
423
423
|
|
|
424
424
|
if (ip) {
|
|
425
425
|
fixed = fixed.replace(/IN IP4 0.0.0.0/g, `IN IP4 ${ip}`);
|
|
@@ -465,7 +465,7 @@ class WazoSessionDescriptionHandler extends sessionDescriptionHandler.SessionDes
|
|
|
465
465
|
) {
|
|
466
466
|
super(logger, mediaStreamFactory, sessionDescriptionHandlerConfiguration);
|
|
467
467
|
|
|
468
|
-
this.eventEmitter = new EventEmitter__default[
|
|
468
|
+
this.eventEmitter = new EventEmitter__default['default']();
|
|
469
469
|
this.isWeb = isWeb;
|
|
470
470
|
this.session = session;
|
|
471
471
|
}
|
|
@@ -898,5 +898,5 @@ class WazoSessionDescriptionHandler extends sessionDescriptionHandler.SessionDes
|
|
|
898
898
|
}
|
|
899
899
|
}
|
|
900
900
|
|
|
901
|
-
exports
|
|
901
|
+
exports.default = WazoSessionDescriptionHandler;
|
|
902
902
|
exports.wazoMediaStreamFactory = wazoMediaStreamFactory;
|
package/lib/service/CallApi.js
CHANGED
|
@@ -99,7 +99,7 @@ class Call {
|
|
|
99
99
|
onHold: plain.on_hold,
|
|
100
100
|
status: plain.status,
|
|
101
101
|
lineId: plain.line_id,
|
|
102
|
-
startingTime: moment__default[
|
|
102
|
+
startingTime: moment__default['default'](plain.creation_time).toDate(),
|
|
103
103
|
talkingToIds: Object.keys(plain.talking_to || {}),
|
|
104
104
|
recording: plain.record_state === RECORD_STATE_ACTIVE,
|
|
105
105
|
});
|
|
@@ -1711,7 +1711,7 @@ class Recording {
|
|
|
1711
1711
|
|
|
1712
1712
|
|
|
1713
1713
|
|
|
1714
|
-
static parseMany(recordings
|
|
1714
|
+
static parseMany(recordings = []) {
|
|
1715
1715
|
return recordings.map(item => Recording.parse(item));
|
|
1716
1716
|
}
|
|
1717
1717
|
|
|
@@ -1719,8 +1719,8 @@ class Recording {
|
|
|
1719
1719
|
return new Recording({
|
|
1720
1720
|
deleted: plain.deleted,
|
|
1721
1721
|
fileName: plain.filename,
|
|
1722
|
-
end: plain.end_time ? moment__default[
|
|
1723
|
-
start: moment__default[
|
|
1722
|
+
end: plain.end_time ? moment__default['default'](plain.end_time).toDate() : null,
|
|
1723
|
+
start: moment__default['default'](plain.start_time).toDate(),
|
|
1724
1724
|
uuid: plain.uuid,
|
|
1725
1725
|
});
|
|
1726
1726
|
}
|
|
@@ -1818,7 +1818,7 @@ class CallLog {
|
|
|
1818
1818
|
|
|
1819
1819
|
static parse(plain ) {
|
|
1820
1820
|
return new CallLog({
|
|
1821
|
-
answer: plain.answer ? moment__default[
|
|
1821
|
+
answer: plain.answer ? moment__default['default'](plain.answer).toDate() : null,
|
|
1822
1822
|
answered: plain.answered,
|
|
1823
1823
|
callDirection: plain.call_direction,
|
|
1824
1824
|
destination: {
|
|
@@ -1835,9 +1835,9 @@ class CallLog {
|
|
|
1835
1835
|
},
|
|
1836
1836
|
id: plain.id,
|
|
1837
1837
|
duration: (plain.duration || 0) * 1000, // duration is in seconds
|
|
1838
|
-
start: moment__default[
|
|
1839
|
-
end: plain.end ? moment__default[
|
|
1840
|
-
recordings: Recording.parseMany(plain.recordings),
|
|
1838
|
+
start: moment__default['default'](plain.start).toDate(),
|
|
1839
|
+
end: plain.end ? moment__default['default'](plain.end).toDate() : null,
|
|
1840
|
+
recordings: Recording.parseMany(plain.recordings || []),
|
|
1841
1841
|
});
|
|
1842
1842
|
}
|
|
1843
1843
|
|
|
@@ -2220,7 +2220,7 @@ class IssueReporter {
|
|
|
2220
2220
|
args.splice(1, 1);
|
|
2221
2221
|
}
|
|
2222
2222
|
|
|
2223
|
-
const date = moment__default[
|
|
2223
|
+
const date = moment__default['default']().format('YYYY-MM-DD HH:mm:ss.SSS');
|
|
2224
2224
|
const message = args.join(', ');
|
|
2225
2225
|
let consoleMessage = message;
|
|
2226
2226
|
|
|
@@ -2397,7 +2397,7 @@ class IssueReporter {
|
|
|
2397
2397
|
payload._retry = retry + 1;
|
|
2398
2398
|
}
|
|
2399
2399
|
|
|
2400
|
-
this._sendDebugToGrafana(
|
|
2400
|
+
this._sendDebugToGrafana(payload, retry + 1);
|
|
2401
2401
|
}, 5000 + retry * 1000);
|
|
2402
2402
|
});
|
|
2403
2403
|
}
|
|
@@ -3115,7 +3115,8 @@ class ExternalApp {
|
|
|
3115
3115
|
|
|
3116
3116
|
|
|
3117
3117
|
|
|
3118
|
-
|
|
3118
|
+
|
|
3119
|
+
|
|
3119
3120
|
|
|
3120
3121
|
|
|
3121
3122
|
class Meeting {
|
|
@@ -3127,6 +3128,7 @@ class Meeting {
|
|
|
3127
3128
|
|
|
3128
3129
|
|
|
3129
3130
|
|
|
3131
|
+
|
|
3130
3132
|
|
|
3131
3133
|
|
|
3132
3134
|
static parse(plain ) {
|
|
@@ -3138,6 +3140,7 @@ class Meeting {
|
|
|
3138
3140
|
port: plain.port,
|
|
3139
3141
|
uuid: plain.uuid,
|
|
3140
3142
|
number: plain.number,
|
|
3143
|
+
persistent: plain.persistent,
|
|
3141
3144
|
});
|
|
3142
3145
|
}
|
|
3143
3146
|
|
|
@@ -3145,7 +3148,7 @@ class Meeting {
|
|
|
3145
3148
|
return newFrom(meeting, Meeting);
|
|
3146
3149
|
}
|
|
3147
3150
|
|
|
3148
|
-
constructor({ uuid, name, guestSipAuthorization, ownerUuids, port, uri, number } = {}) {
|
|
3151
|
+
constructor({ uuid, name, guestSipAuthorization, ownerUuids, port, uri, number, persistent } = {}) {
|
|
3149
3152
|
this.guestSipAuthorization = guestSipAuthorization;
|
|
3150
3153
|
this.uri = uri;
|
|
3151
3154
|
this.name = name;
|
|
@@ -3153,6 +3156,7 @@ class Meeting {
|
|
|
3153
3156
|
this.port = port;
|
|
3154
3157
|
this.uuid = uuid;
|
|
3155
3158
|
this.number = number;
|
|
3159
|
+
this.persistent = persistent;
|
|
3156
3160
|
|
|
3157
3161
|
// Useful to compare instead of instanceof with minified code
|
|
3158
3162
|
this.type = 'Meeting';
|
|
@@ -3290,7 +3294,7 @@ class ChatMessage {
|
|
|
3290
3294
|
static parse(plain ) {
|
|
3291
3295
|
return new ChatMessage({
|
|
3292
3296
|
uuid: plain.uuid,
|
|
3293
|
-
date: moment__default[
|
|
3297
|
+
date: moment__default['default'](plain.created_at).toDate(),
|
|
3294
3298
|
content: plain.content,
|
|
3295
3299
|
alias: plain.alias,
|
|
3296
3300
|
userUuid: plain.user_uuid,
|
|
@@ -3382,7 +3386,7 @@ class Voicemail {
|
|
|
3382
3386
|
static parse(plain ) {
|
|
3383
3387
|
return new Voicemail({
|
|
3384
3388
|
id: plain.id,
|
|
3385
|
-
date: moment__default[
|
|
3389
|
+
date: moment__default['default'](plain.timestamp * 1000).toDate(),
|
|
3386
3390
|
duration: plain.duration * 1000,
|
|
3387
3391
|
caller: {
|
|
3388
3392
|
name: plain.caller_id_name,
|
|
@@ -174,7 +174,7 @@ class IssueReporter {
|
|
|
174
174
|
args.splice(1, 1);
|
|
175
175
|
}
|
|
176
176
|
|
|
177
|
-
const date = moment__default[
|
|
177
|
+
const date = moment__default['default']().format('YYYY-MM-DD HH:mm:ss.SSS');
|
|
178
178
|
const message = args.join(', ');
|
|
179
179
|
let consoleMessage = message;
|
|
180
180
|
|
|
@@ -351,7 +351,7 @@ class IssueReporter {
|
|
|
351
351
|
payload._retry = retry + 1;
|
|
352
352
|
}
|
|
353
353
|
|
|
354
|
-
this._sendDebugToGrafana(
|
|
354
|
+
this._sendDebugToGrafana(payload, retry + 1);
|
|
355
355
|
}, 5000 + retry * 1000);
|
|
356
356
|
});
|
|
357
357
|
}
|
|
@@ -174,7 +174,7 @@ class IssueReporter {
|
|
|
174
174
|
args.splice(1, 1);
|
|
175
175
|
}
|
|
176
176
|
|
|
177
|
-
const date = moment__default[
|
|
177
|
+
const date = moment__default['default']().format('YYYY-MM-DD HH:mm:ss.SSS');
|
|
178
178
|
const message = args.join(', ');
|
|
179
179
|
let consoleMessage = message;
|
|
180
180
|
|
|
@@ -351,7 +351,7 @@ class IssueReporter {
|
|
|
351
351
|
payload._retry = retry + 1;
|
|
352
352
|
}
|
|
353
353
|
|
|
354
|
-
this._sendDebugToGrafana(
|
|
354
|
+
this._sendDebugToGrafana(payload, retry + 1);
|
|
355
355
|
}, 5000 + retry * 1000);
|
|
356
356
|
});
|
|
357
357
|
}
|
|
@@ -213,7 +213,7 @@ class IssueReporter {
|
|
|
213
213
|
args.splice(1, 1);
|
|
214
214
|
}
|
|
215
215
|
|
|
216
|
-
const date = moment__default[
|
|
216
|
+
const date = moment__default['default']().format('YYYY-MM-DD HH:mm:ss.SSS');
|
|
217
217
|
const message = args.join(', ');
|
|
218
218
|
let consoleMessage = message;
|
|
219
219
|
|
|
@@ -390,7 +390,7 @@ class IssueReporter {
|
|
|
390
390
|
payload._retry = retry + 1;
|
|
391
391
|
}
|
|
392
392
|
|
|
393
|
-
this._sendDebugToGrafana(
|
|
393
|
+
this._sendDebugToGrafana(payload, retry + 1);
|
|
394
394
|
}, 5000 + retry * 1000);
|
|
395
395
|
});
|
|
396
396
|
}
|
|
@@ -2593,7 +2593,8 @@ class ExternalApp {
|
|
|
2593
2593
|
|
|
2594
2594
|
|
|
2595
2595
|
|
|
2596
|
-
|
|
2596
|
+
|
|
2597
|
+
|
|
2597
2598
|
|
|
2598
2599
|
|
|
2599
2600
|
class Meeting {
|
|
@@ -2605,6 +2606,7 @@ class Meeting {
|
|
|
2605
2606
|
|
|
2606
2607
|
|
|
2607
2608
|
|
|
2609
|
+
|
|
2608
2610
|
|
|
2609
2611
|
|
|
2610
2612
|
static parse(plain ) {
|
|
@@ -2616,6 +2618,7 @@ class Meeting {
|
|
|
2616
2618
|
port: plain.port,
|
|
2617
2619
|
uuid: plain.uuid,
|
|
2618
2620
|
number: plain.number,
|
|
2621
|
+
persistent: plain.persistent,
|
|
2619
2622
|
});
|
|
2620
2623
|
}
|
|
2621
2624
|
|
|
@@ -2623,7 +2626,7 @@ class Meeting {
|
|
|
2623
2626
|
return newFrom(meeting, Meeting);
|
|
2624
2627
|
}
|
|
2625
2628
|
|
|
2626
|
-
constructor({ uuid, name, guestSipAuthorization, ownerUuids, port, uri, number } = {}) {
|
|
2629
|
+
constructor({ uuid, name, guestSipAuthorization, ownerUuids, port, uri, number, persistent } = {}) {
|
|
2627
2630
|
this.guestSipAuthorization = guestSipAuthorization;
|
|
2628
2631
|
this.uri = uri;
|
|
2629
2632
|
this.name = name;
|
|
@@ -2631,6 +2634,7 @@ class Meeting {
|
|
|
2631
2634
|
this.port = port;
|
|
2632
2635
|
this.uuid = uuid;
|
|
2633
2636
|
this.number = number;
|
|
2637
|
+
this.persistent = persistent;
|
|
2634
2638
|
|
|
2635
2639
|
// Useful to compare instead of instanceof with minified code
|
|
2636
2640
|
this.type = 'Meeting';
|
|
@@ -2811,7 +2815,7 @@ class ChatMessage {
|
|
|
2811
2815
|
static parse(plain ) {
|
|
2812
2816
|
return new ChatMessage({
|
|
2813
2817
|
uuid: plain.uuid,
|
|
2814
|
-
date: moment__default[
|
|
2818
|
+
date: moment__default['default'](plain.created_at).toDate(),
|
|
2815
2819
|
content: plain.content,
|
|
2816
2820
|
alias: plain.alias,
|
|
2817
2821
|
userUuid: plain.user_uuid,
|
|
@@ -2903,7 +2907,7 @@ class Voicemail {
|
|
|
2903
2907
|
static parse(plain ) {
|
|
2904
2908
|
return new Voicemail({
|
|
2905
2909
|
id: plain.id,
|
|
2906
|
-
date: moment__default[
|
|
2910
|
+
date: moment__default['default'](plain.timestamp * 1000).toDate(),
|
|
2907
2911
|
duration: plain.duration * 1000,
|
|
2908
2912
|
caller: {
|
|
2909
2913
|
name: plain.caller_id_name,
|
|
@@ -3040,7 +3044,7 @@ class Call {
|
|
|
3040
3044
|
onHold: plain.on_hold,
|
|
3041
3045
|
status: plain.status,
|
|
3042
3046
|
lineId: plain.line_id,
|
|
3043
|
-
startingTime: moment__default[
|
|
3047
|
+
startingTime: moment__default['default'](plain.creation_time).toDate(),
|
|
3044
3048
|
talkingToIds: Object.keys(plain.talking_to || {}),
|
|
3045
3049
|
recording: plain.record_state === RECORD_STATE_ACTIVE,
|
|
3046
3050
|
});
|
|
@@ -3194,7 +3198,7 @@ class Recording {
|
|
|
3194
3198
|
|
|
3195
3199
|
|
|
3196
3200
|
|
|
3197
|
-
static parseMany(recordings
|
|
3201
|
+
static parseMany(recordings = []) {
|
|
3198
3202
|
return recordings.map(item => Recording.parse(item));
|
|
3199
3203
|
}
|
|
3200
3204
|
|
|
@@ -3202,8 +3206,8 @@ class Recording {
|
|
|
3202
3206
|
return new Recording({
|
|
3203
3207
|
deleted: plain.deleted,
|
|
3204
3208
|
fileName: plain.filename,
|
|
3205
|
-
end: plain.end_time ? moment__default[
|
|
3206
|
-
start: moment__default[
|
|
3209
|
+
end: plain.end_time ? moment__default['default'](plain.end_time).toDate() : null,
|
|
3210
|
+
start: moment__default['default'](plain.start_time).toDate(),
|
|
3207
3211
|
uuid: plain.uuid,
|
|
3208
3212
|
});
|
|
3209
3213
|
}
|
|
@@ -3301,7 +3305,7 @@ class CallLog {
|
|
|
3301
3305
|
|
|
3302
3306
|
static parse(plain ) {
|
|
3303
3307
|
return new CallLog({
|
|
3304
|
-
answer: plain.answer ? moment__default[
|
|
3308
|
+
answer: plain.answer ? moment__default['default'](plain.answer).toDate() : null,
|
|
3305
3309
|
answered: plain.answered,
|
|
3306
3310
|
callDirection: plain.call_direction,
|
|
3307
3311
|
destination: {
|
|
@@ -3318,9 +3322,9 @@ class CallLog {
|
|
|
3318
3322
|
},
|
|
3319
3323
|
id: plain.id,
|
|
3320
3324
|
duration: (plain.duration || 0) * 1000, // duration is in seconds
|
|
3321
|
-
start: moment__default[
|
|
3322
|
-
end: plain.end ? moment__default[
|
|
3323
|
-
recordings: Recording.parseMany(plain.recordings),
|
|
3325
|
+
start: moment__default['default'](plain.start).toDate(),
|
|
3326
|
+
end: plain.end ? moment__default['default'](plain.end).toDate() : null,
|
|
3327
|
+
recordings: Recording.parseMany(plain.recordings || []),
|
|
3324
3328
|
});
|
|
3325
3329
|
}
|
|
3326
3330
|
|
|
@@ -4652,7 +4656,7 @@ var getApiClient = (forServer ) => {
|
|
|
4652
4656
|
return fillClient(global.wazoClients[server]);
|
|
4653
4657
|
};
|
|
4654
4658
|
|
|
4655
|
-
exports
|
|
4659
|
+
exports.default = getApiClient;
|
|
4656
4660
|
exports.setApiClientId = setApiClientId;
|
|
4657
4661
|
exports.setApiToken = setApiToken;
|
|
4658
4662
|
exports.setCurrentServer = setCurrentServer;
|