@wazo/sdk 0.37.18 → 0.37.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/wazo-sdk.js +13 -5
- package/esm/__tests__/api-client.test.js +52 -9
- package/esm/__tests__/web-rtc-client.test.js +80 -20
- package/esm/api/agentd.js +27 -4
- package/esm/api/amid.js +27 -4
- package/esm/api/application.js +27 -4
- package/esm/api/auth.js +29 -5
- package/esm/api/call-logd.js +29 -6
- package/esm/api/calld.js +27 -4
- package/esm/api/chatd.js +27 -4
- package/esm/api/confd.js +51 -8
- package/esm/api/ctid-ng.js +27 -4
- package/esm/api/dird.js +27 -4
- package/esm/api/webhookd.js +27 -4
- package/esm/api-client.js +54 -11
- package/esm/checker/Checker.js +83 -21
- package/esm/checker/checks/aor.js +54 -11
- package/esm/checker/checks/api.js +54 -11
- package/esm/checker/checks/ice-ipv4.js +1 -1
- package/esm/checker/checks/index.js +84 -22
- package/esm/checker/checks/symmetric-nat.js +1 -1
- package/esm/checker/checks/wazo-websocket.js +29 -4
- package/esm/checker/checks/webrtc-transport.js +82 -22
- package/esm/checker/checks/webrtc.js +82 -22
- package/esm/domain/AdHocAPIConference.js +54 -11
- package/esm/domain/Agent.js +1 -1
- package/esm/domain/BadResponse.js +1 -1
- package/esm/domain/Call.js +1 -1
- package/esm/domain/CallLog.js +3 -3
- package/esm/domain/CallSession.js +1 -1
- package/esm/domain/ChatMessage.js +1 -1
- package/esm/domain/ChatRoom.js +1 -1
- package/esm/domain/Contact.js +2 -1
- package/esm/domain/Country.js +1 -1
- package/esm/domain/Device/DebugDevice.js +1 -1
- package/esm/domain/ExternalApp.js +1 -1
- package/esm/domain/Features.js +54 -10
- package/esm/domain/ForwardOption.js +2 -1
- package/esm/domain/IndirectTransfer.js +1 -1
- package/esm/domain/Line.js +1 -1
- package/esm/domain/Meeting.js +20 -3
- package/esm/domain/NotificationOptions.js +1 -1
- package/esm/domain/Phone/CTIPhone.js +55 -11
- package/esm/domain/Phone/WebRTCPhone.js +39 -6
- package/esm/domain/Profile.js +2 -1
- package/esm/domain/Recording.js +2 -2
- package/esm/domain/Relocation.js +1 -1
- package/esm/domain/Room.js +1 -1
- package/esm/domain/ServerError.js +1 -1
- package/esm/domain/Session.js +2 -2
- package/esm/domain/SipLine.js +1 -1
- package/esm/domain/Subscription.js +1 -1
- package/esm/domain/SwitchboardCall.js +1 -1
- package/esm/domain/Voicemail.js +1 -1
- package/esm/domain/__tests__/CallLog.test.js +2 -2
- package/esm/index.js +101 -24
- package/esm/lib/WazoSessionDescriptionHandler.js +28 -4
- package/esm/service/CallApi.js +54 -11
- package/esm/service/IssueReporter.js +27 -4
- package/esm/service/__tests__/IssueReporter.test.js +26 -3
- package/esm/service/getApiClient.js +55 -11
- package/esm/simple/Auth.js +101 -23
- package/esm/simple/Configuration.js +100 -23
- package/esm/simple/Directory.js +53 -10
- package/esm/simple/Phone.js +100 -23
- package/esm/simple/Websocket.js +30 -4
- package/esm/simple/index.js +100 -23
- package/esm/simple/room/LocalParticipant.js +113 -40
- package/esm/simple/room/Participant.js +112 -37
- package/esm/simple/room/RemoteParticipant.js +114 -41
- package/esm/simple/room/Room.js +113 -37
- package/esm/simple/room/SipRoom.js +101 -26
- package/esm/simple/room/Stream.js +101 -26
- package/esm/simple/room/__tests__/RemoteParticipant.test.js +99 -22
- package/esm/simple/utils.js +99 -22
- package/esm/utils/Emitter.js +1 -1
- package/esm/utils/Heartbeat.js +1 -1
- package/esm/utils/__tests__/api-requester.test.js +26 -3
- package/esm/utils/api-requester.js +28 -4
- package/esm/utils/compare-version.js +1 -1
- package/esm/utils/isMobile.js +1 -1
- package/esm/utils/new-from.js +1 -1
- package/esm/utils/once.js +1 -1
- package/esm/utils/update-from.js +1 -1
- package/esm/web-rtc-client.js +83 -22
- package/esm/websocket-client.js +30 -4
- package/lib/__tests__/api-client.test.js +61 -18
- package/lib/__tests__/web-rtc-client.test.js +97 -37
- package/lib/api/agentd.js +27 -4
- package/lib/api/amid.js +27 -4
- package/lib/api/application.js +27 -4
- package/lib/api/auth.js +28 -5
- package/lib/api/call-logd.js +34 -11
- package/lib/api/calld.js +30 -7
- package/lib/api/chatd.js +28 -5
- package/lib/api/confd.js +51 -8
- package/lib/api/ctid-ng.js +30 -7
- package/lib/api/dird.js +27 -4
- package/lib/api/webhookd.js +27 -4
- package/lib/api-client.js +61 -18
- package/lib/checker/Checker.js +100 -38
- package/lib/checker/checks/aor.js +61 -18
- package/lib/checker/checks/api.js +61 -18
- package/lib/checker/checks/index.js +100 -38
- package/lib/checker/checks/wazo-websocket.js +31 -6
- package/lib/checker/checks/webrtc-transport.js +97 -37
- package/lib/checker/checks/webrtc.js +97 -37
- package/lib/domain/AdHocAPIConference.js +61 -18
- package/lib/domain/Call.js +1 -1
- package/lib/domain/CallLog.js +7 -7
- package/lib/domain/ChatMessage.js +1 -1
- package/lib/domain/Contact.js +1 -1
- package/lib/domain/Features.js +62 -19
- package/lib/domain/ForwardOption.js +1 -1
- package/lib/domain/Meeting.js +19 -2
- package/lib/domain/Phone/CTIPhone.js +63 -20
- package/lib/domain/Phone/WebRTCPhone.js +40 -8
- package/lib/domain/Profile.js +1 -1
- package/lib/domain/Recording.js +3 -3
- package/lib/domain/Voicemail.js +1 -1
- package/lib/domain/__tests__/Call.test.js +1 -1
- package/lib/domain/__tests__/CallLog.test.js +13 -13
- package/lib/domain/__tests__/Voicemail.test.js +1 -1
- package/lib/index.js +120 -43
- package/lib/lib/WazoSessionDescriptionHandler.js +32 -9
- package/lib/service/CallApi.js +61 -18
- package/lib/service/IssueReporter.js +27 -4
- package/lib/service/__tests__/IssueReporter.test.js +27 -4
- package/lib/service/getApiClient.js +62 -19
- package/lib/simple/Auth.js +119 -42
- package/lib/simple/Configuration.js +118 -41
- package/lib/simple/Directory.js +61 -18
- package/lib/simple/Phone.js +118 -41
- package/lib/simple/Websocket.js +32 -6
- package/lib/simple/index.js +118 -41
- package/lib/simple/room/LocalParticipant.js +132 -59
- package/lib/simple/room/Participant.js +130 -55
- package/lib/simple/room/RemoteParticipant.js +133 -60
- package/lib/simple/room/Room.js +131 -56
- package/lib/simple/room/SipRoom.js +120 -45
- package/lib/simple/room/Stream.js +120 -45
- package/lib/simple/room/__tests__/RemoteParticipant.test.js +118 -41
- package/lib/simple/utils.js +118 -41
- package/lib/utils/Emitter.js +1 -1
- package/lib/utils/PhoneNumberUtil.js +2 -2
- package/lib/utils/__tests__/PhoneNumberUtil.test.js +2 -2
- package/lib/utils/__tests__/api-requester.test.js +27 -4
- package/lib/utils/__tests__/sdp.test.js +12 -12
- package/lib/utils/api-requester.js +28 -5
- package/lib/utils/sdp.js +10 -10
- package/lib/web-rtc-client.js +98 -38
- package/lib/websocket-client.js +33 -7
- package/package.json +2 -2
- package/src/api/confd.js +5 -2
- package/src/domain/CallLog.js +1 -1
- package/src/domain/Meeting.js +19 -2
- package/src/domain/Phone/WebRTCPhone.js +11 -2
- package/src/domain/Recording.js +1 -1
- package/src/service/IssueReporter.js +26 -3
- package/src/simple/Phone.js +5 -0
- package/src/types/WebSocketMessage.js +5 -1
- package/src/web-rtc-client.js +28 -11
- package/src/websocket-client.js +2 -0
package/esm/simple/Phone.js
CHANGED
|
@@ -711,6 +711,7 @@ class IssueReporter {
|
|
|
711
711
|
|
|
712
712
|
|
|
713
713
|
|
|
714
|
+
|
|
714
715
|
|
|
715
716
|
constructor() {
|
|
716
717
|
addLevelsTo(this);
|
|
@@ -722,12 +723,17 @@ class IssueReporter {
|
|
|
722
723
|
this.bufferTimeout = null;
|
|
723
724
|
this._boundProcessBuffer = this._processBuffer.bind(this);
|
|
724
725
|
this._boundParseLoggerBody = this._parseLoggerBody.bind(this);
|
|
726
|
+
this._callback = null;
|
|
725
727
|
}
|
|
726
728
|
|
|
727
729
|
init() {
|
|
728
730
|
this._catchConsole();
|
|
729
731
|
}
|
|
730
732
|
|
|
733
|
+
setCallback(cb ) {
|
|
734
|
+
this._callback = cb;
|
|
735
|
+
}
|
|
736
|
+
|
|
731
737
|
configureRemoteClient(configuration = { tag: 'wazo-sdk', host: null, port: null, level: null, extra: {} }) {
|
|
732
738
|
this.remoteClientConfiguration = configuration;
|
|
733
739
|
}
|
|
@@ -763,6 +769,7 @@ class IssueReporter {
|
|
|
763
769
|
|
|
764
770
|
// Handle category label
|
|
765
771
|
let category = null;
|
|
772
|
+
let skipSendToRemote = false;
|
|
766
773
|
let extra = {};
|
|
767
774
|
if (args[0].indexOf(CATEGORY_PREFIX) === 0) {
|
|
768
775
|
category = args[0].split('=')[1];
|
|
@@ -778,6 +785,7 @@ class IssueReporter {
|
|
|
778
785
|
errorMessage: lastArg.message,
|
|
779
786
|
errorStack: lastArg.stack,
|
|
780
787
|
errorType: lastArg.constructor.name,
|
|
788
|
+
skipSendToRemote: lastArg.skipSendToRemote,
|
|
781
789
|
};
|
|
782
790
|
} else {
|
|
783
791
|
extra = lastArg;
|
|
@@ -786,6 +794,11 @@ class IssueReporter {
|
|
|
786
794
|
args.splice(1, 1);
|
|
787
795
|
}
|
|
788
796
|
|
|
797
|
+
if (extra.skipSendToRemote) {
|
|
798
|
+
skipSendToRemote = true;
|
|
799
|
+
delete extra.skipSendToRemote;
|
|
800
|
+
}
|
|
801
|
+
|
|
789
802
|
const date = moment().format('YYYY-MM-DD HH:mm:ss.SSS');
|
|
790
803
|
const message = args.join(', ');
|
|
791
804
|
let consoleMessage = message;
|
|
@@ -806,7 +819,13 @@ class IssueReporter {
|
|
|
806
819
|
const oldMethod = this.oldConsoleMethods[consoleLevel] || this.oldConsoleMethods.log;
|
|
807
820
|
oldMethod.apply(oldMethod, [date, consoleMessage]);
|
|
808
821
|
|
|
809
|
-
this.
|
|
822
|
+
if (this._callback) {
|
|
823
|
+
this._callback(level, consoleMessage);
|
|
824
|
+
}
|
|
825
|
+
|
|
826
|
+
if (!skipSendToRemote) {
|
|
827
|
+
this._sendToRemoteLogger(level, { date, message, category, ...extra });
|
|
828
|
+
}
|
|
810
829
|
}
|
|
811
830
|
|
|
812
831
|
logRequest(url , options , response , start ) {
|
|
@@ -951,7 +970,11 @@ class IssueReporter {
|
|
|
951
970
|
},
|
|
952
971
|
// $FlowFixMe
|
|
953
972
|
body,
|
|
954
|
-
}).catch(() => {
|
|
973
|
+
}).catch((e ) => {
|
|
974
|
+
// $FlowFixMe
|
|
975
|
+
e.skipSendToRemote = true;
|
|
976
|
+
this.log('error', this._makeCategory('grafana'), 'Sending log to grafana, error', e);
|
|
977
|
+
|
|
955
978
|
setTimeout(() => {
|
|
956
979
|
if (isArray) {
|
|
957
980
|
payload = payload.map(message => {
|
|
@@ -963,7 +986,7 @@ class IssueReporter {
|
|
|
963
986
|
payload._retry = retry + 1;
|
|
964
987
|
}
|
|
965
988
|
|
|
966
|
-
this._sendDebugToGrafana(
|
|
989
|
+
this._sendDebugToGrafana(payload, retry + 1);
|
|
967
990
|
}, 5000 + retry * 1000);
|
|
968
991
|
});
|
|
969
992
|
}
|
|
@@ -3155,7 +3178,8 @@ class ExternalApp {
|
|
|
3155
3178
|
|
|
3156
3179
|
|
|
3157
3180
|
|
|
3158
|
-
|
|
3181
|
+
|
|
3182
|
+
|
|
3159
3183
|
|
|
3160
3184
|
|
|
3161
3185
|
class Meeting {
|
|
@@ -3167,6 +3191,7 @@ class Meeting {
|
|
|
3167
3191
|
|
|
3168
3192
|
|
|
3169
3193
|
|
|
3194
|
+
|
|
3170
3195
|
|
|
3171
3196
|
|
|
3172
3197
|
static parse(plain ) {
|
|
@@ -3178,14 +3203,28 @@ class Meeting {
|
|
|
3178
3203
|
port: plain.port,
|
|
3179
3204
|
uuid: plain.uuid,
|
|
3180
3205
|
number: plain.number,
|
|
3206
|
+
persistent: plain.persistent,
|
|
3181
3207
|
});
|
|
3182
3208
|
}
|
|
3183
3209
|
|
|
3210
|
+
static parseMany(items ) {
|
|
3211
|
+
return items.map(plain => Meeting.parse(plain));
|
|
3212
|
+
}
|
|
3213
|
+
|
|
3184
3214
|
static newFrom(meeting ) {
|
|
3185
3215
|
return newFrom(meeting, Meeting);
|
|
3186
3216
|
}
|
|
3187
3217
|
|
|
3188
|
-
constructor({
|
|
3218
|
+
constructor({
|
|
3219
|
+
uuid,
|
|
3220
|
+
name,
|
|
3221
|
+
guestSipAuthorization,
|
|
3222
|
+
ownerUuids,
|
|
3223
|
+
port,
|
|
3224
|
+
uri,
|
|
3225
|
+
number,
|
|
3226
|
+
persistent,
|
|
3227
|
+
} = {}) {
|
|
3189
3228
|
this.guestSipAuthorization = guestSipAuthorization;
|
|
3190
3229
|
this.uri = uri;
|
|
3191
3230
|
this.name = name;
|
|
@@ -3193,6 +3232,7 @@ class Meeting {
|
|
|
3193
3232
|
this.port = port;
|
|
3194
3233
|
this.uuid = uuid;
|
|
3195
3234
|
this.number = number;
|
|
3235
|
+
this.persistent = persistent;
|
|
3196
3236
|
|
|
3197
3237
|
// Useful to compare instead of instanceof with minified code
|
|
3198
3238
|
this.type = 'Meeting';
|
|
@@ -3270,8 +3310,11 @@ var confdMethods = (client , baseUrl ) => ({
|
|
|
3270
3310
|
}
|
|
3271
3311
|
},
|
|
3272
3312
|
|
|
3273
|
-
|
|
3274
|
-
client.
|
|
3313
|
+
getMyMeetings: () =>
|
|
3314
|
+
client.get(`${baseUrl}/users/me/meetings`).then(response => Meeting.parseMany(response.items)),
|
|
3315
|
+
|
|
3316
|
+
createMyMeeting: (name , persistent ) =>
|
|
3317
|
+
client.post(`${baseUrl}/users/me/meetings`, { name, persistent }).then(Meeting.parse),
|
|
3275
3318
|
|
|
3276
3319
|
deleteMyMeeting: (meetingUuid ) =>
|
|
3277
3320
|
client.delete(`${baseUrl}/users/me/meetings/${meetingUuid}`, null),
|
|
@@ -3576,7 +3619,7 @@ class Recording {
|
|
|
3576
3619
|
|
|
3577
3620
|
|
|
3578
3621
|
|
|
3579
|
-
static parseMany(recordings
|
|
3622
|
+
static parseMany(recordings = []) {
|
|
3580
3623
|
return recordings.map(item => Recording.parse(item));
|
|
3581
3624
|
}
|
|
3582
3625
|
|
|
@@ -3702,7 +3745,7 @@ class CallLog {
|
|
|
3702
3745
|
duration: (plain.duration || 0) * 1000, // duration is in seconds
|
|
3703
3746
|
start: moment(plain.start).toDate(),
|
|
3704
3747
|
end: plain.end ? moment(plain.end).toDate() : null,
|
|
3705
|
-
recordings: Recording.parseMany(plain.recordings),
|
|
3748
|
+
recordings: Recording.parseMany(plain.recordings || []),
|
|
3706
3749
|
});
|
|
3707
3750
|
}
|
|
3708
3751
|
|
|
@@ -6692,7 +6735,9 @@ class WebRTCClient extends Emitter {
|
|
|
6692
6735
|
const inviteOptions = {
|
|
6693
6736
|
requestDelegate: {
|
|
6694
6737
|
onAccept: (response ) => {
|
|
6695
|
-
session.sessionDescriptionHandler.peerConnection
|
|
6738
|
+
if (session.sessionDescriptionHandler.peerConnection) {
|
|
6739
|
+
session.sessionDescriptionHandler.peerConnection.sfu = conference;
|
|
6740
|
+
}
|
|
6696
6741
|
this._onAccepted(session, response.session, true);
|
|
6697
6742
|
},
|
|
6698
6743
|
onReject: (response ) => {
|
|
@@ -7028,7 +7073,7 @@ class WebRTCClient extends Emitter {
|
|
|
7028
7073
|
// We search for the last transceiver without `video-` in the mid (video- means remote transceiver)
|
|
7029
7074
|
const transceivers = pc.getTransceivers();
|
|
7030
7075
|
const transceiverIdx = lastIndexOf(transceivers, transceiver =>
|
|
7031
|
-
transceiver.sender.track === null && transceiver.mid.indexOf('video') === -1);
|
|
7076
|
+
transceiver.sender.track === null && transceiver.mid && transceiver.mid.indexOf('video') === -1);
|
|
7032
7077
|
|
|
7033
7078
|
videoSender = transceiverIdx !== -1 ? transceivers[transceiverIdx].sender : null;
|
|
7034
7079
|
} else {
|
|
@@ -7564,6 +7609,16 @@ class WebRTCClient extends Emitter {
|
|
|
7564
7609
|
return this.hasRemoteVideo(sessionId) ? this.getRemoteStream(sessionId) : null;
|
|
7565
7610
|
}
|
|
7566
7611
|
|
|
7612
|
+
// Useful in a react-native environment when remoteMediaStream is not updated
|
|
7613
|
+
getRemoteVideoStreamFromPc(sessionId ) {
|
|
7614
|
+
const pc = this.getPeerConnection(sessionId);
|
|
7615
|
+
if (!pc) {
|
|
7616
|
+
return null;
|
|
7617
|
+
}
|
|
7618
|
+
|
|
7619
|
+
return pc.getRemoteStreams().find(stream => !!stream.getVideoTracks().length);
|
|
7620
|
+
}
|
|
7621
|
+
|
|
7567
7622
|
hasVideo(sessionId ) {
|
|
7568
7623
|
return this.hasLocalVideo(sessionId) || this.hasRemoteVideo(sessionId);
|
|
7569
7624
|
}
|
|
@@ -8074,6 +8129,7 @@ class WebRTCClient extends Emitter {
|
|
|
8074
8129
|
session.sessionDescriptionHandler.remoteMediaStream.onaddtrack = onTrack;
|
|
8075
8130
|
|
|
8076
8131
|
pc.oniceconnectionstatechange = () => {
|
|
8132
|
+
logger$9.info('on ice connection state changed', { state: pc.iceConnectionState });
|
|
8077
8133
|
if (pc.iceConnectionState === 'disconnected') {
|
|
8078
8134
|
this.eventEmitter.emit(ON_DISCONNECTED$1);
|
|
8079
8135
|
}
|
|
@@ -8342,18 +8398,22 @@ class WebRTCClient extends Emitter {
|
|
|
8342
8398
|
});
|
|
8343
8399
|
|
|
8344
8400
|
networkStats.packetsLost = packetsLost;
|
|
8345
|
-
networkStats.
|
|
8401
|
+
networkStats.totalAudioBytesSent = audioBytesSent;
|
|
8402
|
+
networkStats.audioBytesSent = audioBytesSent - lastAudioSent;
|
|
8403
|
+
networkStats.totalAudioBytesReceived = audioBytesReceived - lastAudioReceived;
|
|
8346
8404
|
networkStats.audioBytesReceived = audioBytesReceived;
|
|
8347
|
-
networkStats.
|
|
8348
|
-
networkStats.
|
|
8405
|
+
networkStats.totalVideoBytesSent = videoBytesSent;
|
|
8406
|
+
networkStats.videoBytesSent = videoBytesSent - lastVideoSent;
|
|
8407
|
+
networkStats.totalVideoBytesReceived = videoBytesReceived;
|
|
8408
|
+
networkStats.videoBytesReceived = videoBytesReceived - lastVideoReceived;
|
|
8409
|
+
networkStats.totalTransportSent = transportSent - lastTransportSent;
|
|
8349
8410
|
networkStats.transportSent = transportSent;
|
|
8350
|
-
networkStats.
|
|
8351
|
-
|
|
8352
|
-
const bandwidth = (networkStats.audioBytesSent - lastAudioSent) + (networkStats.videoBytesSent - lastVideoSent)
|
|
8353
|
-
+ (networkStats.audioBytesReceived - lastAudioReceived) + (networkStats.videoBytesReceived - lastVideoReceived)
|
|
8354
|
-
+ (networkStats.transportReceived - lastTransportReceived) + (networkStats.transportSent - lastTransportSent);
|
|
8411
|
+
networkStats.totalTransportReceived = transportReceived;
|
|
8412
|
+
networkStats.transportReceived = transportReceived - lastTransportReceived;
|
|
8355
8413
|
|
|
8356
|
-
networkStats.bandwidth =
|
|
8414
|
+
networkStats.bandwidth = networkStats.audioBytesSent + networkStats.audioBytesReceived
|
|
8415
|
+
+ networkStats.videoBytesSent + networkStats.videoBytesReceived + networkStats.transportReceived
|
|
8416
|
+
+ networkStats.transportSent;
|
|
8357
8417
|
|
|
8358
8418
|
this.eventEmitter.emit(ON_NETWORK_STATS$1, session, networkStats, this.sessionNetworkStats[sessionId]);
|
|
8359
8419
|
this.sessionNetworkStats[sessionId].push(networkStats);
|
|
@@ -8735,7 +8795,10 @@ class WebRTCPhone extends Emitter {
|
|
|
8735
8795
|
|
|
8736
8796
|
onCancel(message);
|
|
8737
8797
|
const elsewhere = message.data.indexOf('cause=26') !== -1 && message.data.indexOf('completed elsewhere') !== -1;
|
|
8738
|
-
|
|
8798
|
+
const callSession = this._createCallSession(sipSession);
|
|
8799
|
+
delete this.callSessions[callSession.getId()];
|
|
8800
|
+
|
|
8801
|
+
this.eventEmitter.emit(ON_CALL_CANCELED, callSession, elsewhere);
|
|
8739
8802
|
};
|
|
8740
8803
|
} else if (sipSession instanceof Invitation) {
|
|
8741
8804
|
console.warn('sipSession._onCancel not found, please update the wazo SDK accordingly');
|
|
@@ -8764,9 +8827,11 @@ class WebRTCPhone extends Emitter {
|
|
|
8764
8827
|
case SessionState.Terminated: {
|
|
8765
8828
|
logger$8.info('WebRTC phone - call terminated', { sipId: sipSession.id });
|
|
8766
8829
|
|
|
8830
|
+
// Should be called before `_onCallTerminated` or the callCount will not decrement...
|
|
8831
|
+
const callSession = this._createCallSession(sipSession);
|
|
8767
8832
|
const wasCurrentSession = this._onCallTerminated(sipSession);
|
|
8768
8833
|
|
|
8769
|
-
return this.eventEmitter.emit(ON_CALL_ENDED,
|
|
8834
|
+
return this.eventEmitter.emit(ON_CALL_ENDED, callSession, wasCurrentSession);
|
|
8770
8835
|
}
|
|
8771
8836
|
}
|
|
8772
8837
|
});
|
|
@@ -9714,6 +9779,10 @@ class WebRTCPhone extends Emitter {
|
|
|
9714
9779
|
return callSession ? this.client.getRemoteVideoStream(callSession.sipCallId) : null;
|
|
9715
9780
|
}
|
|
9716
9781
|
|
|
9782
|
+
getRemoteVideoStreamFromPc(callSession ) {
|
|
9783
|
+
return callSession ? this.client.getRemoteVideoStreamFromPc(callSession.sipCallId) : null;
|
|
9784
|
+
}
|
|
9785
|
+
|
|
9717
9786
|
hasRemoteVideo(callSession ) {
|
|
9718
9787
|
return callSession ? this.client.hasRemoteVideo(callSession.sipCallId) : false;
|
|
9719
9788
|
}
|
|
@@ -10415,6 +10484,7 @@ const AGENT_PAUSED = 'agent_paused';
|
|
|
10415
10484
|
const AGENT_UNPAUSED = 'agent_unpaused';
|
|
10416
10485
|
const CONFERENCE_ADHOC_PARTICIPANT_LEFT = 'conference_adhoc_participant_left';
|
|
10417
10486
|
const CONFERENCE_ADHOC_DELETED = 'conference_adhoc_deleted';
|
|
10487
|
+
const MEETING_USER_PROGRESS = 'meeting_user_progress';
|
|
10418
10488
|
|
|
10419
10489
|
const BLACKLIST_EVENTS = [
|
|
10420
10490
|
CHAT_MESSAGE_SENT,
|
|
@@ -10765,6 +10835,7 @@ WebSocketClient.eventLists = [
|
|
|
10765
10835
|
AGENT_UNPAUSED,
|
|
10766
10836
|
CONFERENCE_ADHOC_PARTICIPANT_LEFT,
|
|
10767
10837
|
CONFERENCE_ADHOC_DELETED,
|
|
10838
|
+
MEETING_USER_PROGRESS,
|
|
10768
10839
|
];
|
|
10769
10840
|
|
|
10770
10841
|
var WebSocketClient$1 = /*#__PURE__*/Object.freeze({
|
|
@@ -10835,6 +10906,7 @@ var WebSocketClient$1 = /*#__PURE__*/Object.freeze({
|
|
|
10835
10906
|
AGENT_UNPAUSED: AGENT_UNPAUSED,
|
|
10836
10907
|
CONFERENCE_ADHOC_PARTICIPANT_LEFT: CONFERENCE_ADHOC_PARTICIPANT_LEFT,
|
|
10837
10908
|
CONFERENCE_ADHOC_DELETED: CONFERENCE_ADHOC_DELETED,
|
|
10909
|
+
MEETING_USER_PROGRESS: MEETING_USER_PROGRESS,
|
|
10838
10910
|
HEARTBEAT_ENGINE_VERSION: HEARTBEAT_ENGINE_VERSION,
|
|
10839
10911
|
'default': WebSocketClient
|
|
10840
10912
|
});
|
|
@@ -13554,6 +13626,11 @@ class Phone extends Emitter {
|
|
|
13554
13626
|
return this.getRemoteVideoStream(callSession);
|
|
13555
13627
|
}
|
|
13556
13628
|
|
|
13629
|
+
// Useful in a react-native environment when remoteMediaStream is not updated
|
|
13630
|
+
getRemoteVideoStreamFromPc(callSession ) {
|
|
13631
|
+
return this.phone ? this.phone.getRemoteVideoStreamFromPc(callSession) : false;
|
|
13632
|
+
}
|
|
13633
|
+
|
|
13557
13634
|
hasVideo(callSession ) {
|
|
13558
13635
|
return this.phone ? this.phone.hasVideo(callSession) : false;
|
|
13559
13636
|
}
|
|
@@ -13625,4 +13702,4 @@ if (!global.wazoTelephonyInstance) {
|
|
|
13625
13702
|
|
|
13626
13703
|
var Phone$1 = global.wazoTelephonyInstance;
|
|
13627
13704
|
|
|
13628
|
-
export
|
|
13705
|
+
export default Phone$1;
|
package/esm/simple/Websocket.js
CHANGED
|
@@ -121,6 +121,7 @@ class IssueReporter {
|
|
|
121
121
|
|
|
122
122
|
|
|
123
123
|
|
|
124
|
+
|
|
124
125
|
|
|
125
126
|
constructor() {
|
|
126
127
|
addLevelsTo(this);
|
|
@@ -132,12 +133,17 @@ class IssueReporter {
|
|
|
132
133
|
this.bufferTimeout = null;
|
|
133
134
|
this._boundProcessBuffer = this._processBuffer.bind(this);
|
|
134
135
|
this._boundParseLoggerBody = this._parseLoggerBody.bind(this);
|
|
136
|
+
this._callback = null;
|
|
135
137
|
}
|
|
136
138
|
|
|
137
139
|
init() {
|
|
138
140
|
this._catchConsole();
|
|
139
141
|
}
|
|
140
142
|
|
|
143
|
+
setCallback(cb ) {
|
|
144
|
+
this._callback = cb;
|
|
145
|
+
}
|
|
146
|
+
|
|
141
147
|
configureRemoteClient(configuration = { tag: 'wazo-sdk', host: null, port: null, level: null, extra: {} }) {
|
|
142
148
|
this.remoteClientConfiguration = configuration;
|
|
143
149
|
}
|
|
@@ -173,6 +179,7 @@ class IssueReporter {
|
|
|
173
179
|
|
|
174
180
|
// Handle category label
|
|
175
181
|
let category = null;
|
|
182
|
+
let skipSendToRemote = false;
|
|
176
183
|
let extra = {};
|
|
177
184
|
if (args[0].indexOf(CATEGORY_PREFIX) === 0) {
|
|
178
185
|
category = args[0].split('=')[1];
|
|
@@ -188,6 +195,7 @@ class IssueReporter {
|
|
|
188
195
|
errorMessage: lastArg.message,
|
|
189
196
|
errorStack: lastArg.stack,
|
|
190
197
|
errorType: lastArg.constructor.name,
|
|
198
|
+
skipSendToRemote: lastArg.skipSendToRemote,
|
|
191
199
|
};
|
|
192
200
|
} else {
|
|
193
201
|
extra = lastArg;
|
|
@@ -196,6 +204,11 @@ class IssueReporter {
|
|
|
196
204
|
args.splice(1, 1);
|
|
197
205
|
}
|
|
198
206
|
|
|
207
|
+
if (extra.skipSendToRemote) {
|
|
208
|
+
skipSendToRemote = true;
|
|
209
|
+
delete extra.skipSendToRemote;
|
|
210
|
+
}
|
|
211
|
+
|
|
199
212
|
const date = moment().format('YYYY-MM-DD HH:mm:ss.SSS');
|
|
200
213
|
const message = args.join(', ');
|
|
201
214
|
let consoleMessage = message;
|
|
@@ -216,7 +229,13 @@ class IssueReporter {
|
|
|
216
229
|
const oldMethod = this.oldConsoleMethods[consoleLevel] || this.oldConsoleMethods.log;
|
|
217
230
|
oldMethod.apply(oldMethod, [date, consoleMessage]);
|
|
218
231
|
|
|
219
|
-
this.
|
|
232
|
+
if (this._callback) {
|
|
233
|
+
this._callback(level, consoleMessage);
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
if (!skipSendToRemote) {
|
|
237
|
+
this._sendToRemoteLogger(level, { date, message, category, ...extra });
|
|
238
|
+
}
|
|
220
239
|
}
|
|
221
240
|
|
|
222
241
|
logRequest(url , options , response , start ) {
|
|
@@ -361,7 +380,11 @@ class IssueReporter {
|
|
|
361
380
|
},
|
|
362
381
|
// $FlowFixMe
|
|
363
382
|
body,
|
|
364
|
-
}).catch(() => {
|
|
383
|
+
}).catch((e ) => {
|
|
384
|
+
// $FlowFixMe
|
|
385
|
+
e.skipSendToRemote = true;
|
|
386
|
+
this.log('error', this._makeCategory('grafana'), 'Sending log to grafana, error', e);
|
|
387
|
+
|
|
365
388
|
setTimeout(() => {
|
|
366
389
|
if (isArray) {
|
|
367
390
|
payload = payload.map(message => {
|
|
@@ -373,7 +396,7 @@ class IssueReporter {
|
|
|
373
396
|
payload._retry = retry + 1;
|
|
374
397
|
}
|
|
375
398
|
|
|
376
|
-
this._sendDebugToGrafana(
|
|
399
|
+
this._sendDebugToGrafana(payload, retry + 1);
|
|
377
400
|
}, 5000 + retry * 1000);
|
|
378
401
|
});
|
|
379
402
|
}
|
|
@@ -578,6 +601,7 @@ const AGENT_PAUSED = 'agent_paused';
|
|
|
578
601
|
const AGENT_UNPAUSED = 'agent_unpaused';
|
|
579
602
|
const CONFERENCE_ADHOC_PARTICIPANT_LEFT = 'conference_adhoc_participant_left';
|
|
580
603
|
const CONFERENCE_ADHOC_DELETED = 'conference_adhoc_deleted';
|
|
604
|
+
const MEETING_USER_PROGRESS = 'meeting_user_progress';
|
|
581
605
|
|
|
582
606
|
const BLACKLIST_EVENTS = [
|
|
583
607
|
CHAT_MESSAGE_SENT,
|
|
@@ -928,6 +952,7 @@ WebSocketClient.eventLists = [
|
|
|
928
952
|
AGENT_UNPAUSED,
|
|
929
953
|
CONFERENCE_ADHOC_PARTICIPANT_LEFT,
|
|
930
954
|
CONFERENCE_ADHOC_DELETED,
|
|
955
|
+
MEETING_USER_PROGRESS,
|
|
931
956
|
];
|
|
932
957
|
|
|
933
958
|
var WebSocketClient$1 = /*#__PURE__*/Object.freeze({
|
|
@@ -998,6 +1023,7 @@ var WebSocketClient$1 = /*#__PURE__*/Object.freeze({
|
|
|
998
1023
|
AGENT_UNPAUSED: AGENT_UNPAUSED,
|
|
999
1024
|
CONFERENCE_ADHOC_PARTICIPANT_LEFT: CONFERENCE_ADHOC_PARTICIPANT_LEFT,
|
|
1000
1025
|
CONFERENCE_ADHOC_DELETED: CONFERENCE_ADHOC_DELETED,
|
|
1026
|
+
MEETING_USER_PROGRESS: MEETING_USER_PROGRESS,
|
|
1001
1027
|
HEARTBEAT_ENGINE_VERSION: HEARTBEAT_ENGINE_VERSION,
|
|
1002
1028
|
'default': WebSocketClient
|
|
1003
1029
|
});
|
|
@@ -1085,4 +1111,4 @@ if (!global.wazoWebsocketInstance) {
|
|
|
1085
1111
|
|
|
1086
1112
|
var Websocket$1 = global.wazoWebsocketInstance;
|
|
1087
1113
|
|
|
1088
|
-
export
|
|
1114
|
+
export default Websocket$1;
|