@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
|
@@ -499,7 +499,7 @@ class IssueReporter {
|
|
|
499
499
|
args.splice(1, 1);
|
|
500
500
|
}
|
|
501
501
|
|
|
502
|
-
const date = moment__default[
|
|
502
|
+
const date = moment__default['default']().format('YYYY-MM-DD HH:mm:ss.SSS');
|
|
503
503
|
const message = args.join(', ');
|
|
504
504
|
let consoleMessage = message;
|
|
505
505
|
|
|
@@ -676,7 +676,7 @@ class IssueReporter {
|
|
|
676
676
|
payload._retry = retry + 1;
|
|
677
677
|
}
|
|
678
678
|
|
|
679
|
-
this._sendDebugToGrafana(
|
|
679
|
+
this._sendDebugToGrafana(payload, retry + 1);
|
|
680
680
|
}, 5000 + retry * 1000);
|
|
681
681
|
});
|
|
682
682
|
}
|
|
@@ -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],
|
|
@@ -13430,7 +13434,7 @@ const Wazo = {
|
|
|
13430
13434
|
Phone: Phone$1,
|
|
13431
13435
|
Websocket: Websocket$1,
|
|
13432
13436
|
Room: Room$1,
|
|
13433
|
-
SipRoom
|
|
13437
|
+
SipRoom,
|
|
13434
13438
|
RemoteParticipant,
|
|
13435
13439
|
LocalParticipant,
|
|
13436
13440
|
Stream,
|
|
@@ -13635,6 +13639,4 @@ class SipRoom extends Room$1 {
|
|
|
13635
13639
|
|
|
13636
13640
|
}
|
|
13637
13641
|
|
|
13638
|
-
|
|
13639
|
-
|
|
13640
|
-
module.exports = SipRoom$1;
|
|
13642
|
+
module.exports = SipRoom;
|
|
@@ -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],
|
|
@@ -13514,7 +13518,7 @@ const Wazo = {
|
|
|
13514
13518
|
SipRoom,
|
|
13515
13519
|
RemoteParticipant,
|
|
13516
13520
|
LocalParticipant,
|
|
13517
|
-
Stream
|
|
13521
|
+
Stream,
|
|
13518
13522
|
createLocalVideoStream,
|
|
13519
13523
|
createLocalAudioStream,
|
|
13520
13524
|
Configuration: Configuration$1,
|
|
@@ -13635,6 +13639,4 @@ class Stream {
|
|
|
13635
13639
|
}
|
|
13636
13640
|
}
|
|
13637
13641
|
|
|
13638
|
-
|
|
13639
|
-
|
|
13640
|
-
module.exports = Stream$1;
|
|
13642
|
+
module.exports = Stream;
|