@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
package/lib/simple/Phone.js
CHANGED
|
@@ -122,7 +122,7 @@ class Call {
|
|
|
122
122
|
onHold: plain.on_hold,
|
|
123
123
|
status: plain.status,
|
|
124
124
|
lineId: plain.line_id,
|
|
125
|
-
startingTime: moment__default[
|
|
125
|
+
startingTime: moment__default['default'](plain.creation_time).toDate(),
|
|
126
126
|
talkingToIds: Object.keys(plain.talking_to || {}),
|
|
127
127
|
recording: plain.record_state === RECORD_STATE_ACTIVE,
|
|
128
128
|
});
|
|
@@ -796,7 +796,7 @@ class IssueReporter {
|
|
|
796
796
|
args.splice(1, 1);
|
|
797
797
|
}
|
|
798
798
|
|
|
799
|
-
const date = moment__default[
|
|
799
|
+
const date = moment__default['default']().format('YYYY-MM-DD HH:mm:ss.SSS');
|
|
800
800
|
const message = args.join(', ');
|
|
801
801
|
let consoleMessage = message;
|
|
802
802
|
|
|
@@ -973,7 +973,7 @@ class IssueReporter {
|
|
|
973
973
|
payload._retry = retry + 1;
|
|
974
974
|
}
|
|
975
975
|
|
|
976
|
-
this._sendDebugToGrafana(
|
|
976
|
+
this._sendDebugToGrafana(payload, retry + 1);
|
|
977
977
|
}, 5000 + retry * 1000);
|
|
978
978
|
});
|
|
979
979
|
}
|
|
@@ -3165,7 +3165,8 @@ class ExternalApp {
|
|
|
3165
3165
|
|
|
3166
3166
|
|
|
3167
3167
|
|
|
3168
|
-
|
|
3168
|
+
|
|
3169
|
+
|
|
3169
3170
|
|
|
3170
3171
|
|
|
3171
3172
|
class Meeting {
|
|
@@ -3177,6 +3178,7 @@ class Meeting {
|
|
|
3177
3178
|
|
|
3178
3179
|
|
|
3179
3180
|
|
|
3181
|
+
|
|
3180
3182
|
|
|
3181
3183
|
|
|
3182
3184
|
static parse(plain ) {
|
|
@@ -3188,6 +3190,7 @@ class Meeting {
|
|
|
3188
3190
|
port: plain.port,
|
|
3189
3191
|
uuid: plain.uuid,
|
|
3190
3192
|
number: plain.number,
|
|
3193
|
+
persistent: plain.persistent,
|
|
3191
3194
|
});
|
|
3192
3195
|
}
|
|
3193
3196
|
|
|
@@ -3195,7 +3198,7 @@ class Meeting {
|
|
|
3195
3198
|
return newFrom(meeting, Meeting);
|
|
3196
3199
|
}
|
|
3197
3200
|
|
|
3198
|
-
constructor({ uuid, name, guestSipAuthorization, ownerUuids, port, uri, number } = {}) {
|
|
3201
|
+
constructor({ uuid, name, guestSipAuthorization, ownerUuids, port, uri, number, persistent } = {}) {
|
|
3199
3202
|
this.guestSipAuthorization = guestSipAuthorization;
|
|
3200
3203
|
this.uri = uri;
|
|
3201
3204
|
this.name = name;
|
|
@@ -3203,6 +3206,7 @@ class Meeting {
|
|
|
3203
3206
|
this.port = port;
|
|
3204
3207
|
this.uuid = uuid;
|
|
3205
3208
|
this.number = number;
|
|
3209
|
+
this.persistent = persistent;
|
|
3206
3210
|
|
|
3207
3211
|
// Useful to compare instead of instanceof with minified code
|
|
3208
3212
|
this.type = 'Meeting';
|
|
@@ -3383,7 +3387,7 @@ class ChatMessage {
|
|
|
3383
3387
|
static parse(plain ) {
|
|
3384
3388
|
return new ChatMessage({
|
|
3385
3389
|
uuid: plain.uuid,
|
|
3386
|
-
date: moment__default[
|
|
3390
|
+
date: moment__default['default'](plain.created_at).toDate(),
|
|
3387
3391
|
content: plain.content,
|
|
3388
3392
|
alias: plain.alias,
|
|
3389
3393
|
userUuid: plain.user_uuid,
|
|
@@ -3475,7 +3479,7 @@ class Voicemail {
|
|
|
3475
3479
|
static parse(plain ) {
|
|
3476
3480
|
return new Voicemail({
|
|
3477
3481
|
id: plain.id,
|
|
3478
|
-
date: moment__default[
|
|
3482
|
+
date: moment__default['default'](plain.timestamp * 1000).toDate(),
|
|
3479
3483
|
duration: plain.duration * 1000,
|
|
3480
3484
|
caller: {
|
|
3481
3485
|
name: plain.caller_id_name,
|
|
@@ -3541,7 +3545,7 @@ class Emitter {
|
|
|
3541
3545
|
|
|
3542
3546
|
|
|
3543
3547
|
constructor() {
|
|
3544
|
-
this.eventEmitter = new EventEmitter__default[
|
|
3548
|
+
this.eventEmitter = new EventEmitter__default['default']();
|
|
3545
3549
|
}
|
|
3546
3550
|
|
|
3547
3551
|
on(event , callback ) {
|
|
@@ -3586,7 +3590,7 @@ class Recording {
|
|
|
3586
3590
|
|
|
3587
3591
|
|
|
3588
3592
|
|
|
3589
|
-
static parseMany(recordings
|
|
3593
|
+
static parseMany(recordings = []) {
|
|
3590
3594
|
return recordings.map(item => Recording.parse(item));
|
|
3591
3595
|
}
|
|
3592
3596
|
|
|
@@ -3594,8 +3598,8 @@ class Recording {
|
|
|
3594
3598
|
return new Recording({
|
|
3595
3599
|
deleted: plain.deleted,
|
|
3596
3600
|
fileName: plain.filename,
|
|
3597
|
-
end: plain.end_time ? moment__default[
|
|
3598
|
-
start: moment__default[
|
|
3601
|
+
end: plain.end_time ? moment__default['default'](plain.end_time).toDate() : null,
|
|
3602
|
+
start: moment__default['default'](plain.start_time).toDate(),
|
|
3599
3603
|
uuid: plain.uuid,
|
|
3600
3604
|
});
|
|
3601
3605
|
}
|
|
@@ -3693,7 +3697,7 @@ class CallLog {
|
|
|
3693
3697
|
|
|
3694
3698
|
static parse(plain ) {
|
|
3695
3699
|
return new CallLog({
|
|
3696
|
-
answer: plain.answer ? moment__default[
|
|
3700
|
+
answer: plain.answer ? moment__default['default'](plain.answer).toDate() : null,
|
|
3697
3701
|
answered: plain.answered,
|
|
3698
3702
|
callDirection: plain.call_direction,
|
|
3699
3703
|
destination: {
|
|
@@ -3710,9 +3714,9 @@ class CallLog {
|
|
|
3710
3714
|
},
|
|
3711
3715
|
id: plain.id,
|
|
3712
3716
|
duration: (plain.duration || 0) * 1000, // duration is in seconds
|
|
3713
|
-
start: moment__default[
|
|
3714
|
-
end: plain.end ? moment__default[
|
|
3715
|
-
recordings: Recording.parseMany(plain.recordings),
|
|
3717
|
+
start: moment__default['default'](plain.start).toDate(),
|
|
3718
|
+
end: plain.end ? moment__default['default'](plain.end).toDate() : null,
|
|
3719
|
+
recordings: Recording.parseMany(plain.recordings || []),
|
|
3716
3720
|
});
|
|
3717
3721
|
}
|
|
3718
3722
|
|
|
@@ -5622,7 +5626,7 @@ const parseCandidate$1 = (candidate ) => {
|
|
|
5622
5626
|
if (!candidate) {
|
|
5623
5627
|
return null;
|
|
5624
5628
|
}
|
|
5625
|
-
const result = sdpParser__default[
|
|
5629
|
+
const result = sdpParser__default['default'].parse(candidate.indexOf('a=') === 0 ? candidate : `a=${candidate}`);
|
|
5626
5630
|
|
|
5627
5631
|
return result.candidates ? result.candidates[0] : null;
|
|
5628
5632
|
};
|
|
@@ -5636,7 +5640,7 @@ const areCandidateValid = (candidates ) =>
|
|
|
5636
5640
|
.length > 0;
|
|
5637
5641
|
|
|
5638
5642
|
const getVideoDirection = (sdp ) => {
|
|
5639
|
-
const parsedSdp = sdpParser__default[
|
|
5643
|
+
const parsedSdp = sdpParser__default['default'].parse(sdp);
|
|
5640
5644
|
const videoMedia = parsedSdp.media.find(media => media.type === 'video');
|
|
5641
5645
|
if (!videoMedia) {
|
|
5642
5646
|
return null;
|
|
@@ -5650,14 +5654,14 @@ const hasAnActiveVideo = (sdp ) => {
|
|
|
5650
5654
|
return false;
|
|
5651
5655
|
}
|
|
5652
5656
|
|
|
5653
|
-
const parsedSdp = sdpParser__default[
|
|
5657
|
+
const parsedSdp = sdpParser__default['default'].parse(sdp);
|
|
5654
5658
|
|
|
5655
5659
|
return !!parsedSdp.media.find(media =>
|
|
5656
5660
|
media.type === 'video' && media.port > 10 && (!media.direction || media.direction !== 'inactive'));
|
|
5657
5661
|
};
|
|
5658
5662
|
|
|
5659
5663
|
const fixSdp = (sdp , candidates , forcePort = true) => {
|
|
5660
|
-
const parsedSdp = sdpParser__default[
|
|
5664
|
+
const parsedSdp = sdpParser__default['default'].parse(sdp);
|
|
5661
5665
|
const mainCandidate = getSrflxOrRelay(candidates)[0];
|
|
5662
5666
|
const ip = mainCandidate ? mainCandidate.ip : null;
|
|
5663
5667
|
|
|
@@ -5675,7 +5679,7 @@ const fixSdp = (sdp , candidates , forcePort = true)
|
|
|
5675
5679
|
};
|
|
5676
5680
|
});
|
|
5677
5681
|
|
|
5678
|
-
let fixed = sdpParser__default[
|
|
5682
|
+
let fixed = sdpParser__default['default'].write(parsedSdp);
|
|
5679
5683
|
|
|
5680
5684
|
if (ip) {
|
|
5681
5685
|
fixed = fixed.replace(/IN IP4 0.0.0.0/g, `IN IP4 ${ip}`);
|
|
@@ -5721,7 +5725,7 @@ class WazoSessionDescriptionHandler extends sessionDescriptionHandler.SessionDes
|
|
|
5721
5725
|
) {
|
|
5722
5726
|
super(logger, mediaStreamFactory, sessionDescriptionHandlerConfiguration);
|
|
5723
5727
|
|
|
5724
|
-
this.eventEmitter = new EventEmitter__default[
|
|
5728
|
+
this.eventEmitter = new EventEmitter__default['default']();
|
|
5725
5729
|
this.isWeb = isWeb;
|
|
5726
5730
|
this.session = session;
|
|
5727
5731
|
}
|
|
@@ -7038,7 +7042,7 @@ class WebRTCClient extends Emitter {
|
|
|
7038
7042
|
// We search for the last transceiver without `video-` in the mid (video- means remote transceiver)
|
|
7039
7043
|
const transceivers = pc.getTransceivers();
|
|
7040
7044
|
const transceiverIdx = lastIndexOf(transceivers, transceiver =>
|
|
7041
|
-
transceiver.sender.track === null && transceiver.mid.indexOf('video') === -1);
|
|
7045
|
+
transceiver.sender.track === null && transceiver.mid && transceiver.mid.indexOf('video') === -1);
|
|
7042
7046
|
|
|
7043
7047
|
videoSender = transceiverIdx !== -1 ? transceivers[transceiverIdx].sender : null;
|
|
7044
7048
|
} else {
|
|
@@ -8243,7 +8247,7 @@ class WebRTCClient extends Emitter {
|
|
|
8243
8247
|
}
|
|
8244
8248
|
const sessionId = this.getSipSessionId(session);
|
|
8245
8249
|
|
|
8246
|
-
getStats__default[
|
|
8250
|
+
getStats__default['default'](pc, (result ) => {
|
|
8247
8251
|
const { results, internal, nomore, ...stats } = result;
|
|
8248
8252
|
this.statsIntervals[sessionId] = nomore;
|
|
8249
8253
|
|
|
@@ -10484,7 +10488,7 @@ class WebSocketClient extends Emitter {
|
|
|
10484
10488
|
|
|
10485
10489
|
connect() {
|
|
10486
10490
|
logger$6.info('connect method started', { host: this.host, token: this.token });
|
|
10487
|
-
this.socket = new ReconnectingWebSocket__default[
|
|
10491
|
+
this.socket = new ReconnectingWebSocket__default['default'](this._getUrl.bind(this), [], this.options);
|
|
10488
10492
|
if (this.options.binaryType) {
|
|
10489
10493
|
this.socket.binaryType = this.options.binaryType;
|
|
10490
10494
|
}
|
|
@@ -11737,7 +11741,7 @@ class Room$1 extends Emitter {
|
|
|
11737
11741
|
}
|
|
11738
11742
|
|
|
11739
11743
|
_mapMsid(rawSdp ) {
|
|
11740
|
-
const sdp = sdpParser__default[
|
|
11744
|
+
const sdp = sdpParser__default['default'].parse(rawSdp);
|
|
11741
11745
|
const labelMsidArray = sdp.media.filter(media => !!media.label).map(({ label, msid }) => ({
|
|
11742
11746
|
label: String(label),
|
|
11743
11747
|
streamId: msid.split(' ')[0],
|
package/lib/simple/Websocket.js
CHANGED
|
@@ -17,7 +17,7 @@ class Emitter {
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
constructor() {
|
|
20
|
-
this.eventEmitter = new EventEmitter__default[
|
|
20
|
+
this.eventEmitter = new EventEmitter__default['default']();
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
on(event , callback ) {
|
|
@@ -204,7 +204,7 @@ class IssueReporter {
|
|
|
204
204
|
args.splice(1, 1);
|
|
205
205
|
}
|
|
206
206
|
|
|
207
|
-
const date = moment__default[
|
|
207
|
+
const date = moment__default['default']().format('YYYY-MM-DD HH:mm:ss.SSS');
|
|
208
208
|
const message = args.join(', ');
|
|
209
209
|
let consoleMessage = message;
|
|
210
210
|
|
|
@@ -381,7 +381,7 @@ class IssueReporter {
|
|
|
381
381
|
payload._retry = retry + 1;
|
|
382
382
|
}
|
|
383
383
|
|
|
384
|
-
this._sendDebugToGrafana(
|
|
384
|
+
this._sendDebugToGrafana(payload, retry + 1);
|
|
385
385
|
}, 5000 + retry * 1000);
|
|
386
386
|
});
|
|
387
387
|
}
|
|
@@ -645,7 +645,7 @@ class WebSocketClient extends Emitter {
|
|
|
645
645
|
|
|
646
646
|
connect() {
|
|
647
647
|
logger$1.info('connect method started', { host: this.host, token: this.token });
|
|
648
|
-
this.socket = new ReconnectingWebSocket__default[
|
|
648
|
+
this.socket = new ReconnectingWebSocket__default['default'](this._getUrl.bind(this), [], this.options);
|
|
649
649
|
if (this.options.binaryType) {
|
|
650
650
|
this.socket.binaryType = this.options.binaryType;
|
|
651
651
|
}
|
package/lib/simple/index.js
CHANGED
|
@@ -1719,7 +1719,7 @@ class IssueReporter {
|
|
|
1719
1719
|
args.splice(1, 1);
|
|
1720
1720
|
}
|
|
1721
1721
|
|
|
1722
|
-
const date = moment__default[
|
|
1722
|
+
const date = moment__default['default']().format('YYYY-MM-DD HH:mm:ss.SSS');
|
|
1723
1723
|
const message = args.join(', ');
|
|
1724
1724
|
let consoleMessage = message;
|
|
1725
1725
|
|
|
@@ -1896,7 +1896,7 @@ class IssueReporter {
|
|
|
1896
1896
|
payload._retry = retry + 1;
|
|
1897
1897
|
}
|
|
1898
1898
|
|
|
1899
|
-
this._sendDebugToGrafana(
|
|
1899
|
+
this._sendDebugToGrafana(payload, retry + 1);
|
|
1900
1900
|
}, 5000 + retry * 1000);
|
|
1901
1901
|
});
|
|
1902
1902
|
}
|
|
@@ -2614,7 +2614,8 @@ class ExternalApp {
|
|
|
2614
2614
|
|
|
2615
2615
|
|
|
2616
2616
|
|
|
2617
|
-
|
|
2617
|
+
|
|
2618
|
+
|
|
2618
2619
|
|
|
2619
2620
|
|
|
2620
2621
|
class Meeting {
|
|
@@ -2626,6 +2627,7 @@ class Meeting {
|
|
|
2626
2627
|
|
|
2627
2628
|
|
|
2628
2629
|
|
|
2630
|
+
|
|
2629
2631
|
|
|
2630
2632
|
|
|
2631
2633
|
static parse(plain ) {
|
|
@@ -2637,6 +2639,7 @@ class Meeting {
|
|
|
2637
2639
|
port: plain.port,
|
|
2638
2640
|
uuid: plain.uuid,
|
|
2639
2641
|
number: plain.number,
|
|
2642
|
+
persistent: plain.persistent,
|
|
2640
2643
|
});
|
|
2641
2644
|
}
|
|
2642
2645
|
|
|
@@ -2644,7 +2647,7 @@ class Meeting {
|
|
|
2644
2647
|
return newFrom(meeting, Meeting);
|
|
2645
2648
|
}
|
|
2646
2649
|
|
|
2647
|
-
constructor({ uuid, name, guestSipAuthorization, ownerUuids, port, uri, number } = {}) {
|
|
2650
|
+
constructor({ uuid, name, guestSipAuthorization, ownerUuids, port, uri, number, persistent } = {}) {
|
|
2648
2651
|
this.guestSipAuthorization = guestSipAuthorization;
|
|
2649
2652
|
this.uri = uri;
|
|
2650
2653
|
this.name = name;
|
|
@@ -2652,6 +2655,7 @@ class Meeting {
|
|
|
2652
2655
|
this.port = port;
|
|
2653
2656
|
this.uuid = uuid;
|
|
2654
2657
|
this.number = number;
|
|
2658
|
+
this.persistent = persistent;
|
|
2655
2659
|
|
|
2656
2660
|
// Useful to compare instead of instanceof with minified code
|
|
2657
2661
|
this.type = 'Meeting';
|
|
@@ -2832,7 +2836,7 @@ class ChatMessage {
|
|
|
2832
2836
|
static parse(plain ) {
|
|
2833
2837
|
return new ChatMessage({
|
|
2834
2838
|
uuid: plain.uuid,
|
|
2835
|
-
date: moment__default[
|
|
2839
|
+
date: moment__default['default'](plain.created_at).toDate(),
|
|
2836
2840
|
content: plain.content,
|
|
2837
2841
|
alias: plain.alias,
|
|
2838
2842
|
userUuid: plain.user_uuid,
|
|
@@ -2924,7 +2928,7 @@ class Voicemail {
|
|
|
2924
2928
|
static parse(plain ) {
|
|
2925
2929
|
return new Voicemail({
|
|
2926
2930
|
id: plain.id,
|
|
2927
|
-
date: moment__default[
|
|
2931
|
+
date: moment__default['default'](plain.timestamp * 1000).toDate(),
|
|
2928
2932
|
duration: plain.duration * 1000,
|
|
2929
2933
|
caller: {
|
|
2930
2934
|
name: plain.caller_id_name,
|
|
@@ -3061,7 +3065,7 @@ class Call {
|
|
|
3061
3065
|
onHold: plain.on_hold,
|
|
3062
3066
|
status: plain.status,
|
|
3063
3067
|
lineId: plain.line_id,
|
|
3064
|
-
startingTime: moment__default[
|
|
3068
|
+
startingTime: moment__default['default'](plain.creation_time).toDate(),
|
|
3065
3069
|
talkingToIds: Object.keys(plain.talking_to || {}),
|
|
3066
3070
|
recording: plain.record_state === RECORD_STATE_ACTIVE,
|
|
3067
3071
|
});
|
|
@@ -3541,7 +3545,7 @@ class Emitter {
|
|
|
3541
3545
|
|
|
3542
3546
|
|
|
3543
3547
|
constructor() {
|
|
3544
|
-
this.eventEmitter = new EventEmitter__default[
|
|
3548
|
+
this.eventEmitter = new EventEmitter__default['default']();
|
|
3545
3549
|
}
|
|
3546
3550
|
|
|
3547
3551
|
on(event , callback ) {
|
|
@@ -3586,7 +3590,7 @@ class Recording {
|
|
|
3586
3590
|
|
|
3587
3591
|
|
|
3588
3592
|
|
|
3589
|
-
static parseMany(recordings
|
|
3593
|
+
static parseMany(recordings = []) {
|
|
3590
3594
|
return recordings.map(item => Recording.parse(item));
|
|
3591
3595
|
}
|
|
3592
3596
|
|
|
@@ -3594,8 +3598,8 @@ class Recording {
|
|
|
3594
3598
|
return new Recording({
|
|
3595
3599
|
deleted: plain.deleted,
|
|
3596
3600
|
fileName: plain.filename,
|
|
3597
|
-
end: plain.end_time ? moment__default[
|
|
3598
|
-
start: moment__default[
|
|
3601
|
+
end: plain.end_time ? moment__default['default'](plain.end_time).toDate() : null,
|
|
3602
|
+
start: moment__default['default'](plain.start_time).toDate(),
|
|
3599
3603
|
uuid: plain.uuid,
|
|
3600
3604
|
});
|
|
3601
3605
|
}
|
|
@@ -3693,7 +3697,7 @@ class CallLog {
|
|
|
3693
3697
|
|
|
3694
3698
|
static parse(plain ) {
|
|
3695
3699
|
return new CallLog({
|
|
3696
|
-
answer: plain.answer ? moment__default[
|
|
3700
|
+
answer: plain.answer ? moment__default['default'](plain.answer).toDate() : null,
|
|
3697
3701
|
answered: plain.answered,
|
|
3698
3702
|
callDirection: plain.call_direction,
|
|
3699
3703
|
destination: {
|
|
@@ -3710,9 +3714,9 @@ class CallLog {
|
|
|
3710
3714
|
},
|
|
3711
3715
|
id: plain.id,
|
|
3712
3716
|
duration: (plain.duration || 0) * 1000, // duration is in seconds
|
|
3713
|
-
start: moment__default[
|
|
3714
|
-
end: plain.end ? moment__default[
|
|
3715
|
-
recordings: Recording.parseMany(plain.recordings),
|
|
3717
|
+
start: moment__default['default'](plain.start).toDate(),
|
|
3718
|
+
end: plain.end ? moment__default['default'](plain.end).toDate() : null,
|
|
3719
|
+
recordings: Recording.parseMany(plain.recordings || []),
|
|
3716
3720
|
});
|
|
3717
3721
|
}
|
|
3718
3722
|
|
|
@@ -5886,7 +5890,7 @@ const parseCandidate$1 = (candidate ) => {
|
|
|
5886
5890
|
if (!candidate) {
|
|
5887
5891
|
return null;
|
|
5888
5892
|
}
|
|
5889
|
-
const result = sdpParser__default[
|
|
5893
|
+
const result = sdpParser__default['default'].parse(candidate.indexOf('a=') === 0 ? candidate : `a=${candidate}`);
|
|
5890
5894
|
|
|
5891
5895
|
return result.candidates ? result.candidates[0] : null;
|
|
5892
5896
|
};
|
|
@@ -5900,7 +5904,7 @@ const areCandidateValid = (candidates ) =>
|
|
|
5900
5904
|
.length > 0;
|
|
5901
5905
|
|
|
5902
5906
|
const getVideoDirection = (sdp ) => {
|
|
5903
|
-
const parsedSdp = sdpParser__default[
|
|
5907
|
+
const parsedSdp = sdpParser__default['default'].parse(sdp);
|
|
5904
5908
|
const videoMedia = parsedSdp.media.find(media => media.type === 'video');
|
|
5905
5909
|
if (!videoMedia) {
|
|
5906
5910
|
return null;
|
|
@@ -5914,14 +5918,14 @@ const hasAnActiveVideo = (sdp ) => {
|
|
|
5914
5918
|
return false;
|
|
5915
5919
|
}
|
|
5916
5920
|
|
|
5917
|
-
const parsedSdp = sdpParser__default[
|
|
5921
|
+
const parsedSdp = sdpParser__default['default'].parse(sdp);
|
|
5918
5922
|
|
|
5919
5923
|
return !!parsedSdp.media.find(media =>
|
|
5920
5924
|
media.type === 'video' && media.port > 10 && (!media.direction || media.direction !== 'inactive'));
|
|
5921
5925
|
};
|
|
5922
5926
|
|
|
5923
5927
|
const fixSdp = (sdp , candidates , forcePort = true) => {
|
|
5924
|
-
const parsedSdp = sdpParser__default[
|
|
5928
|
+
const parsedSdp = sdpParser__default['default'].parse(sdp);
|
|
5925
5929
|
const mainCandidate = getSrflxOrRelay(candidates)[0];
|
|
5926
5930
|
const ip = mainCandidate ? mainCandidate.ip : null;
|
|
5927
5931
|
|
|
@@ -5939,7 +5943,7 @@ const fixSdp = (sdp , candidates , forcePort = true)
|
|
|
5939
5943
|
};
|
|
5940
5944
|
});
|
|
5941
5945
|
|
|
5942
|
-
let fixed = sdpParser__default[
|
|
5946
|
+
let fixed = sdpParser__default['default'].write(parsedSdp);
|
|
5943
5947
|
|
|
5944
5948
|
if (ip) {
|
|
5945
5949
|
fixed = fixed.replace(/IN IP4 0.0.0.0/g, `IN IP4 ${ip}`);
|
|
@@ -5985,7 +5989,7 @@ class WazoSessionDescriptionHandler extends sessionDescriptionHandler.SessionDes
|
|
|
5985
5989
|
) {
|
|
5986
5990
|
super(logger, mediaStreamFactory, sessionDescriptionHandlerConfiguration);
|
|
5987
5991
|
|
|
5988
|
-
this.eventEmitter = new EventEmitter__default[
|
|
5992
|
+
this.eventEmitter = new EventEmitter__default['default']();
|
|
5989
5993
|
this.isWeb = isWeb;
|
|
5990
5994
|
this.session = session;
|
|
5991
5995
|
}
|
|
@@ -7302,7 +7306,7 @@ class WebRTCClient extends Emitter {
|
|
|
7302
7306
|
// We search for the last transceiver without `video-` in the mid (video- means remote transceiver)
|
|
7303
7307
|
const transceivers = pc.getTransceivers();
|
|
7304
7308
|
const transceiverIdx = lastIndexOf(transceivers, transceiver =>
|
|
7305
|
-
transceiver.sender.track === null && transceiver.mid.indexOf('video') === -1);
|
|
7309
|
+
transceiver.sender.track === null && transceiver.mid && transceiver.mid.indexOf('video') === -1);
|
|
7306
7310
|
|
|
7307
7311
|
videoSender = transceiverIdx !== -1 ? transceivers[transceiverIdx].sender : null;
|
|
7308
7312
|
} else {
|
|
@@ -8507,7 +8511,7 @@ class WebRTCClient extends Emitter {
|
|
|
8507
8511
|
}
|
|
8508
8512
|
const sessionId = this.getSipSessionId(session);
|
|
8509
8513
|
|
|
8510
|
-
getStats__default[
|
|
8514
|
+
getStats__default['default'](pc, (result ) => {
|
|
8511
8515
|
const { results, internal, nomore, ...stats } = result;
|
|
8512
8516
|
this.statsIntervals[sessionId] = nomore;
|
|
8513
8517
|
|
|
@@ -10889,7 +10893,7 @@ class WebSocketClient extends Emitter {
|
|
|
10889
10893
|
|
|
10890
10894
|
connect() {
|
|
10891
10895
|
logger$5.info('connect method started', { host: this.host, token: this.token });
|
|
10892
|
-
this.socket = new ReconnectingWebSocket__default[
|
|
10896
|
+
this.socket = new ReconnectingWebSocket__default['default'](this._getUrl.bind(this), [], this.options);
|
|
10893
10897
|
if (this.options.binaryType) {
|
|
10894
10898
|
this.socket.binaryType = this.options.binaryType;
|
|
10895
10899
|
}
|
|
@@ -12142,7 +12146,7 @@ class Room$1 extends Emitter {
|
|
|
12142
12146
|
}
|
|
12143
12147
|
|
|
12144
12148
|
_mapMsid(rawSdp ) {
|
|
12145
|
-
const sdp = sdpParser__default[
|
|
12149
|
+
const sdp = sdpParser__default['default'].parse(rawSdp);
|
|
12146
12150
|
const labelMsidArray = sdp.media.filter(media => !!media.label).map(({ label, msid }) => ({
|
|
12147
12151
|
label: String(label),
|
|
12148
12152
|
streamId: msid.split(' ')[0],
|