@wazo/sdk 0.37.0 → 0.37.4
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 +5 -5
- package/esm/__tests__/api-client.test.js +91 -23
- package/esm/__tests__/web-rtc-client.test.js +165 -56
- package/esm/api/agentd.js +7 -1
- package/esm/api/amid.js +7 -1
- package/esm/api/application.js +7 -1
- package/esm/api/auth.js +7 -1
- package/esm/api/call-logd.js +17 -23
- package/esm/api/calld.js +10 -18
- package/esm/api/chatd.js +7 -1
- package/esm/api/confd.js +78 -1
- package/esm/api/ctid-ng.js +7 -1
- package/esm/api/dird.js +7 -1
- package/esm/api/webhookd.js +7 -1
- package/esm/api-client.js +91 -23
- package/esm/checker/Checker.js +169 -56
- package/esm/checker/checks/aor.js +91 -23
- package/esm/checker/checks/api.js +91 -23
- package/esm/checker/checks/index.js +169 -56
- package/esm/checker/checks/wazo-websocket.js +11 -1
- package/esm/checker/checks/webrtc-transport.js +165 -56
- package/esm/checker/checks/webrtc.js +165 -56
- package/esm/domain/AdHocAPIConference.js +1722 -1654
- package/esm/domain/CallLog.js +10 -22
- package/esm/domain/CallSession.js +1 -18
- package/esm/domain/Features.js +91 -23
- package/esm/domain/IndirectTransfer.js +0 -17
- package/esm/domain/Meeting.js +71 -0
- package/esm/domain/Phone/CTIPhone.js +98 -26
- package/esm/domain/Phone/Phone.js +0 -17
- package/esm/domain/Phone/WebRTCPhone.js +47 -27
- package/esm/domain/Room.js +0 -17
- package/esm/domain/SwitchboardCall.js +0 -17
- package/esm/domain/__tests__/CallLog.test.js +10 -22
- package/esm/domain/__tests__/CallSession.test.js +1 -18
- package/esm/domain/__tests__/IndirectTransfer.test.js +1 -18
- package/esm/domain/__tests__/Room.test.js +1 -18
- package/esm/index.js +3880 -3111
- package/esm/lib/WazoSessionDescriptionHandler.js +24 -10
- package/esm/service/CallApi.js +91 -23
- package/esm/service/IssueReporter.js +7 -1
- package/esm/service/__tests__/IssueReporter.test.js +9 -1
- package/esm/service/getApiClient.js +91 -23
- package/esm/simple/Auth.js +1126 -360
- package/esm/simple/Configuration.js +1126 -360
- package/esm/simple/Directory.js +91 -23
- package/esm/simple/Phone.js +3724 -2958
- package/esm/simple/Websocket.js +13 -1
- package/esm/simple/index.js +1128 -362
- package/esm/simple/room/LocalParticipant.js +1097 -331
- package/esm/simple/room/Participant.js +1097 -331
- package/esm/simple/room/RemoteParticipant.js +1097 -331
- package/esm/simple/room/Room.js +1097 -331
- package/esm/simple/room/SipRoom.js +12996 -0
- package/esm/simple/room/Stream.js +1128 -362
- package/esm/simple/room/__tests__/RemoteParticipant.test.js +5157 -4389
- package/esm/simple/utils.js +1128 -362
- package/esm/utils/__tests__/api-requester.test.js +7 -1
- package/esm/utils/api-requester.js +7 -1
- package/esm/web-rtc-client.js +165 -56
- package/esm/websocket-client.js +12 -2
- package/lib/__tests__/api-client.test.js +91 -23
- package/lib/__tests__/web-rtc-client.test.js +165 -56
- package/lib/api/agentd.js +7 -1
- package/lib/api/amid.js +7 -1
- package/lib/api/application.js +7 -1
- package/lib/api/auth.js +7 -1
- package/lib/api/call-logd.js +17 -23
- package/lib/api/calld.js +10 -18
- package/lib/api/chatd.js +7 -1
- package/lib/api/confd.js +78 -1
- package/lib/api/ctid-ng.js +7 -1
- package/lib/api/dird.js +7 -1
- package/lib/api/webhookd.js +7 -1
- package/lib/api-client.js +91 -23
- package/lib/checker/Checker.js +169 -56
- package/lib/checker/checks/aor.js +91 -23
- package/lib/checker/checks/api.js +91 -23
- package/lib/checker/checks/index.js +169 -56
- package/lib/checker/checks/wazo-websocket.js +11 -1
- package/lib/checker/checks/webrtc-transport.js +165 -56
- package/lib/checker/checks/webrtc.js +165 -56
- package/lib/domain/AdHocAPIConference.js +1722 -1654
- package/lib/domain/CallLog.js +10 -22
- package/lib/domain/CallSession.js +1 -18
- package/lib/domain/Features.js +91 -23
- package/lib/domain/IndirectTransfer.js +0 -17
- package/lib/domain/Meeting.js +73 -0
- package/lib/domain/Phone/CTIPhone.js +98 -26
- package/lib/domain/Phone/Phone.js +0 -16
- package/lib/domain/Phone/WebRTCPhone.js +47 -27
- package/lib/domain/Room.js +0 -17
- package/lib/domain/SwitchboardCall.js +0 -17
- package/lib/domain/__tests__/CallLog.test.js +10 -22
- package/lib/domain/__tests__/CallSession.test.js +1 -18
- package/lib/domain/__tests__/IndirectTransfer.test.js +1 -18
- package/lib/domain/__tests__/Room.test.js +1 -18
- package/lib/index.js +3880 -3111
- package/lib/lib/WazoSessionDescriptionHandler.js +24 -10
- package/lib/service/CallApi.js +91 -23
- package/lib/service/IssueReporter.js +7 -1
- package/lib/service/__tests__/IssueReporter.test.js +9 -1
- package/lib/service/getApiClient.js +91 -23
- package/lib/simple/Auth.js +1126 -360
- package/lib/simple/Configuration.js +1126 -360
- package/lib/simple/Directory.js +91 -23
- package/lib/simple/Phone.js +3724 -2958
- package/lib/simple/Websocket.js +13 -1
- package/lib/simple/index.js +1128 -362
- package/lib/simple/room/LocalParticipant.js +1097 -331
- package/lib/simple/room/Participant.js +1097 -331
- package/lib/simple/room/RemoteParticipant.js +1097 -331
- package/lib/simple/room/Room.js +1097 -331
- package/lib/simple/room/SipRoom.js +13006 -0
- package/lib/simple/room/Stream.js +1128 -362
- package/lib/simple/room/__tests__/RemoteParticipant.test.js +5157 -4389
- package/lib/simple/utils.js +1128 -362
- package/lib/utils/__tests__/api-requester.test.js +7 -1
- package/lib/utils/api-requester.js +7 -1
- package/lib/web-rtc-client.js +165 -56
- package/lib/websocket-client.js +13 -1
- package/package.json +1 -1
- package/src/api/calld.js +3 -0
- package/src/api/confd.js +13 -0
- package/src/domain/CallLog.js +10 -22
- package/src/domain/CallSession.js +1 -2
- package/src/domain/Meeting.js +59 -0
- package/src/domain/Phone/CTIPhone.js +6 -2
- package/src/domain/Phone/Phone.js +2 -0
- package/src/domain/Phone/WebRTCPhone.js +22 -8
- package/src/index.js +6 -0
- package/src/lib/WazoSessionDescriptionHandler.js +17 -9
- package/src/service/IssueReporter.js +7 -1
- package/src/service/__tests__/IssueReporter.test.js +2 -0
- package/src/simple/Phone.js +13 -4
- package/src/simple/index.js +8 -0
- package/src/simple/room/Participant.js +7 -0
- package/src/simple/room/Room.js +157 -79
- package/src/simple/room/SipRoom.js +147 -0
- package/src/simple/room/Stream.js +1 -3
- package/src/simple/room/__tests__/RemoteParticipant.test.js +3 -2
- package/src/types/WebSocketMessage.js +21 -0
- package/src/web-rtc-client.js +57 -24
- package/src/websocket-client.js +4 -0
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Invitation } from 'sip.js/lib/api/invitation';
|
|
2
2
|
import { SessionState } from 'sip.js/lib/api/session-state';
|
|
3
3
|
import moment from 'moment';
|
|
4
|
-
import { KEYUTIL } from 'jsrsasign';
|
|
5
4
|
import 'webrtc-adapter';
|
|
6
5
|
import 'sip.js/lib/api/user-agent-state';
|
|
7
6
|
import 'sip.js/lib/core/messages/parser';
|
|
@@ -21,6 +20,7 @@ import 'sip.js/lib/platform/web/session-description-handler/session-description-
|
|
|
21
20
|
import 'sip.js/lib/platform/web/session-description-handler/session-description-handler-options';
|
|
22
21
|
import 'js-base64';
|
|
23
22
|
import 'sdp-transform';
|
|
23
|
+
import { KEYUTIL } from 'jsrsasign';
|
|
24
24
|
import 'json-to-graphql-query/lib/jsonToGraphQLQuery';
|
|
25
25
|
|
|
26
26
|
//
|
|
@@ -34,22 +34,6 @@ var newFrom = (instance , ToClass ) => {
|
|
|
34
34
|
return new ToClass(args);
|
|
35
35
|
};
|
|
36
36
|
|
|
37
|
-
//
|
|
38
|
-
|
|
39
|
-
const swarmPublicKey = `-----BEGIN PUBLIC KEY-----
|
|
40
|
-
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmkXOuNfY8u5xoTiIhkb8
|
|
41
|
-
djnbIwG/Wrz3vpo8BZir8L5e1a1nSy740qBjP7ZINBQoALDhFfmdOfJnCyEGiHuz
|
|
42
|
-
ZW6jbG6C3PryE3Bu6GKwqSmD6k3q4Zk27fpwYAnNl+rWhYYM563rJZBda/INyHNN
|
|
43
|
-
pK7M1mixWi7gNdjjXwoEXSSBx+VpYMkY6LiAB2mvHXTY9M1qI14dvgGoQISZQoKi
|
|
44
|
-
NMTRCg5UP2ic0Dd9nSz/XpcOxGfa+0fwIl1F7RC1tJXOqvkGGPTOV4LLfg/Yta3h
|
|
45
|
-
nUPX9EZZDIX6vO/0IBV1LzjSl2A1bYFYAjJfowv3i1CpvONBOClHjSY5t9Y8MH6p
|
|
46
|
-
BwIDAQAB
|
|
47
|
-
-----END PUBLIC KEY-----`;
|
|
48
|
-
|
|
49
|
-
//
|
|
50
|
-
|
|
51
|
-
KEYUTIL.getKey(swarmPublicKey);
|
|
52
|
-
|
|
53
37
|
//
|
|
54
38
|
/* eslint-disable no-param-reassign */
|
|
55
39
|
|
|
@@ -373,7 +357,7 @@ class CallSession {
|
|
|
373
357
|
return newFrom(callSession, CallSession);
|
|
374
358
|
}
|
|
375
359
|
|
|
376
|
-
static parseCall(
|
|
360
|
+
static parseCall(call ) {
|
|
377
361
|
return new CallSession({
|
|
378
362
|
callId: call.id,
|
|
379
363
|
sipCallId: call.sipCallId,
|
|
@@ -669,7 +653,13 @@ class IssueReporter {
|
|
|
669
653
|
}
|
|
670
654
|
|
|
671
655
|
_isLevelAbove(level1 , level2 ) {
|
|
672
|
-
|
|
656
|
+
const index1 = LOG_LEVELS.indexOf(level1);
|
|
657
|
+
const index2 = LOG_LEVELS.indexOf(level2);
|
|
658
|
+
if (index1 === -1 || index2 === -1) {
|
|
659
|
+
return false;
|
|
660
|
+
}
|
|
661
|
+
|
|
662
|
+
return index1 > index2;
|
|
673
663
|
}
|
|
674
664
|
|
|
675
665
|
_makeCategory(category ) {
|
|
@@ -728,6 +718,22 @@ class Emitter {
|
|
|
728
718
|
}
|
|
729
719
|
}
|
|
730
720
|
|
|
721
|
+
//
|
|
722
|
+
|
|
723
|
+
const swarmPublicKey = `-----BEGIN PUBLIC KEY-----
|
|
724
|
+
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmkXOuNfY8u5xoTiIhkb8
|
|
725
|
+
djnbIwG/Wrz3vpo8BZir8L5e1a1nSy740qBjP7ZINBQoALDhFfmdOfJnCyEGiHuz
|
|
726
|
+
ZW6jbG6C3PryE3Bu6GKwqSmD6k3q4Zk27fpwYAnNl+rWhYYM563rJZBda/INyHNN
|
|
727
|
+
pK7M1mixWi7gNdjjXwoEXSSBx+VpYMkY6LiAB2mvHXTY9M1qI14dvgGoQISZQoKi
|
|
728
|
+
NMTRCg5UP2ic0Dd9nSz/XpcOxGfa+0fwIl1F7RC1tJXOqvkGGPTOV4LLfg/Yta3h
|
|
729
|
+
nUPX9EZZDIX6vO/0IBV1LzjSl2A1bYFYAjJfowv3i1CpvONBOClHjSY5t9Y8MH6p
|
|
730
|
+
BwIDAQAB
|
|
731
|
+
-----END PUBLIC KEY-----`;
|
|
732
|
+
|
|
733
|
+
//
|
|
734
|
+
|
|
735
|
+
KEYUTIL.getKey(swarmPublicKey);
|
|
736
|
+
|
|
731
737
|
/* eslint-disable dot-notation */
|
|
732
738
|
|
|
733
739
|
// Can't use node cache mechanism here because when requiring lib/CallApi.js
|
|
@@ -945,7 +951,7 @@ class WebRTCPhone extends Emitter {
|
|
|
945
951
|
});
|
|
946
952
|
|
|
947
953
|
if (!sipSession) {
|
|
948
|
-
return
|
|
954
|
+
return false;
|
|
949
955
|
}
|
|
950
956
|
|
|
951
957
|
// $FlowFixMe
|
|
@@ -955,19 +961,17 @@ class WebRTCPhone extends Emitter {
|
|
|
955
961
|
// Downgrade
|
|
956
962
|
if (constraints && !isUpgrade) {
|
|
957
963
|
// No reinvite needed
|
|
958
|
-
|
|
964
|
+
this._downgradeToAudio(callSession);
|
|
965
|
+
return false;
|
|
959
966
|
}
|
|
960
967
|
|
|
961
968
|
if (isUpgrade) {
|
|
962
969
|
const shouldReinvite = await this._upgradeToVideo(callSession, constraints, conference);
|
|
963
970
|
if (!shouldReinvite) {
|
|
964
|
-
return;
|
|
971
|
+
return false;
|
|
965
972
|
}
|
|
966
973
|
}
|
|
967
974
|
|
|
968
|
-
// Force reinvite in SDH
|
|
969
|
-
sipSession.sessionDescriptionHandler.localMediaStreamConstraints = null;
|
|
970
|
-
|
|
971
975
|
return this.client.reinvite(sipSession, constraints, conference, audioOnly);
|
|
972
976
|
}
|
|
973
977
|
|
|
@@ -1040,7 +1044,7 @@ class WebRTCPhone extends Emitter {
|
|
|
1040
1044
|
_downgradeToAudio(callSession ) {
|
|
1041
1045
|
const sipSession = this.findSipSession(callSession);
|
|
1042
1046
|
if (!sipSession) {
|
|
1043
|
-
return;
|
|
1047
|
+
return false;
|
|
1044
1048
|
}
|
|
1045
1049
|
|
|
1046
1050
|
// Release local video stream when downgrading to audio
|
|
@@ -1242,6 +1246,10 @@ class WebRTCPhone extends Emitter {
|
|
|
1242
1246
|
localStream.removeTrack(videoTrack);
|
|
1243
1247
|
}
|
|
1244
1248
|
|
|
1249
|
+
if (localStream) {
|
|
1250
|
+
localStream.addTrack(screenTrack);
|
|
1251
|
+
}
|
|
1252
|
+
|
|
1245
1253
|
if (sender) {
|
|
1246
1254
|
sender.replaceTrack(screenTrack);
|
|
1247
1255
|
}
|
|
@@ -1257,6 +1265,7 @@ class WebRTCPhone extends Emitter {
|
|
|
1257
1265
|
}
|
|
1258
1266
|
|
|
1259
1267
|
logger.info('WebRTC phone - stop screen sharing');
|
|
1268
|
+
let reinvited = false;
|
|
1260
1269
|
|
|
1261
1270
|
try {
|
|
1262
1271
|
if (this.currentScreenShare.stream) {
|
|
@@ -1271,7 +1280,8 @@ class WebRTCPhone extends Emitter {
|
|
|
1271
1280
|
// When upgrading directly to screenshare (eg: we don't have a videoLocalStream to replace)
|
|
1272
1281
|
// We have to downgrade to audio.
|
|
1273
1282
|
const screenshareStopped = this.currentScreenShare.sender && this.currentScreenShare.hadVideo;
|
|
1274
|
-
|
|
1283
|
+
const constraints = { audio: false, video: screenshareStopped };
|
|
1284
|
+
reinvited = await this.sendReinvite(targetCallSession, constraints, conference);
|
|
1275
1285
|
}
|
|
1276
1286
|
} catch (e) {
|
|
1277
1287
|
console.warn(e);
|
|
@@ -1285,6 +1295,8 @@ class WebRTCPhone extends Emitter {
|
|
|
1285
1295
|
);
|
|
1286
1296
|
|
|
1287
1297
|
this.currentScreenShare = null;
|
|
1298
|
+
|
|
1299
|
+
return reinvited;
|
|
1288
1300
|
}
|
|
1289
1301
|
|
|
1290
1302
|
async _getStreamFromConstraints(constraints , conference = false) {
|
|
@@ -1345,6 +1357,10 @@ class WebRTCPhone extends Emitter {
|
|
|
1345
1357
|
this.client.changeAudioOutputDevice(id);
|
|
1346
1358
|
}
|
|
1347
1359
|
|
|
1360
|
+
createAudioElementFor(sessionId ) {
|
|
1361
|
+
return this.client.createAudioElementFor(sessionId);
|
|
1362
|
+
}
|
|
1363
|
+
|
|
1348
1364
|
changeRingDevice(id ) {
|
|
1349
1365
|
this.audioRingDeviceId = id;
|
|
1350
1366
|
}
|
|
@@ -1992,6 +2008,10 @@ class WebRTCPhone extends Emitter {
|
|
|
1992
2008
|
return callSession ? this.client.hasLocalVideo(callSession.sipCallId) : null;
|
|
1993
2009
|
}
|
|
1994
2010
|
|
|
2011
|
+
hasALocalVideoTrack(callSession ) {
|
|
2012
|
+
return callSession ? this.client.hasALocalVideoTrack(callSession.sipCallId) : null;
|
|
2013
|
+
}
|
|
2014
|
+
|
|
1995
2015
|
getRemoteStream(callSession ) {
|
|
1996
2016
|
return callSession ? this.client.getRemoteStream(callSession.sipCallId) : null;
|
|
1997
2017
|
}
|
package/esm/domain/Room.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import 'sip.js/lib/api/session-state';
|
|
2
2
|
import 'moment';
|
|
3
|
-
import { KEYUTIL } from 'jsrsasign';
|
|
4
3
|
|
|
5
4
|
//
|
|
6
5
|
|
|
@@ -13,22 +12,6 @@ var newFrom = (instance , ToClass ) => {
|
|
|
13
12
|
return new ToClass(args);
|
|
14
13
|
};
|
|
15
14
|
|
|
16
|
-
//
|
|
17
|
-
|
|
18
|
-
const swarmPublicKey = `-----BEGIN PUBLIC KEY-----
|
|
19
|
-
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmkXOuNfY8u5xoTiIhkb8
|
|
20
|
-
djnbIwG/Wrz3vpo8BZir8L5e1a1nSy740qBjP7ZINBQoALDhFfmdOfJnCyEGiHuz
|
|
21
|
-
ZW6jbG6C3PryE3Bu6GKwqSmD6k3q4Zk27fpwYAnNl+rWhYYM563rJZBda/INyHNN
|
|
22
|
-
pK7M1mixWi7gNdjjXwoEXSSBx+VpYMkY6LiAB2mvHXTY9M1qI14dvgGoQISZQoKi
|
|
23
|
-
NMTRCg5UP2ic0Dd9nSz/XpcOxGfa+0fwIl1F7RC1tJXOqvkGGPTOV4LLfg/Yta3h
|
|
24
|
-
nUPX9EZZDIX6vO/0IBV1LzjSl2A1bYFYAjJfowv3i1CpvONBOClHjSY5t9Y8MH6p
|
|
25
|
-
BwIDAQAB
|
|
26
|
-
-----END PUBLIC KEY-----`;
|
|
27
|
-
|
|
28
|
-
//
|
|
29
|
-
|
|
30
|
-
KEYUTIL.getKey(swarmPublicKey);
|
|
31
|
-
|
|
32
15
|
//
|
|
33
16
|
/* eslint-disable no-param-reassign */
|
|
34
17
|
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import 'sip.js/lib/api/session-state';
|
|
2
2
|
import 'moment';
|
|
3
|
-
import { KEYUTIL } from 'jsrsasign';
|
|
4
3
|
|
|
5
4
|
//
|
|
6
5
|
|
|
@@ -13,22 +12,6 @@ var newFrom = (instance , ToClass ) => {
|
|
|
13
12
|
return new ToClass(args);
|
|
14
13
|
};
|
|
15
14
|
|
|
16
|
-
//
|
|
17
|
-
|
|
18
|
-
const swarmPublicKey = `-----BEGIN PUBLIC KEY-----
|
|
19
|
-
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmkXOuNfY8u5xoTiIhkb8
|
|
20
|
-
djnbIwG/Wrz3vpo8BZir8L5e1a1nSy740qBjP7ZINBQoALDhFfmdOfJnCyEGiHuz
|
|
21
|
-
ZW6jbG6C3PryE3Bu6GKwqSmD6k3q4Zk27fpwYAnNl+rWhYYM563rJZBda/INyHNN
|
|
22
|
-
pK7M1mixWi7gNdjjXwoEXSSBx+VpYMkY6LiAB2mvHXTY9M1qI14dvgGoQISZQoKi
|
|
23
|
-
NMTRCg5UP2ic0Dd9nSz/XpcOxGfa+0fwIl1F7RC1tJXOqvkGGPTOV4LLfg/Yta3h
|
|
24
|
-
nUPX9EZZDIX6vO/0IBV1LzjSl2A1bYFYAjJfowv3i1CpvONBOClHjSY5t9Y8MH6p
|
|
25
|
-
BwIDAQAB
|
|
26
|
-
-----END PUBLIC KEY-----`;
|
|
27
|
-
|
|
28
|
-
//
|
|
29
|
-
|
|
30
|
-
KEYUTIL.getKey(swarmPublicKey);
|
|
31
|
-
|
|
32
15
|
//
|
|
33
16
|
/* eslint-disable no-param-reassign */
|
|
34
17
|
|
|
@@ -162,7 +162,11 @@ class CallLog {
|
|
|
162
162
|
answered: plain.answered,
|
|
163
163
|
callDirection: plain.call_direction,
|
|
164
164
|
destination: {
|
|
165
|
-
|
|
165
|
+
// @TEMP: Temporarily assuming empty numbers are meetings
|
|
166
|
+
// which is admittedly a very dangerous assumption. Did i mention it was temporary?
|
|
167
|
+
extension: plain.requested_extension
|
|
168
|
+
|| plain.destination_extension
|
|
169
|
+
|| `meeting-${plain.requested_name || plain.destination_name || ''}`,
|
|
166
170
|
name: plain.requested_name || plain.destination_name || '',
|
|
167
171
|
},
|
|
168
172
|
source: {
|
|
@@ -178,27 +182,11 @@ class CallLog {
|
|
|
178
182
|
}
|
|
179
183
|
|
|
180
184
|
static parseNew(plain , session ) {
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
extension: plain.requested_extension || plain.destination_extension,
|
|
187
|
-
name: plain.requested_name || plain.destination_name || '',
|
|
188
|
-
},
|
|
189
|
-
source: {
|
|
190
|
-
extension: plain.source_extension,
|
|
191
|
-
name: plain.source_name,
|
|
192
|
-
},
|
|
193
|
-
id: plain.id,
|
|
194
|
-
duration: (plain.duration || 0) * 1000, // duration is in seconds
|
|
195
|
-
start: moment(plain.start).toDate(),
|
|
196
|
-
end: plain.end ? moment(plain.end).toDate() : null,
|
|
197
|
-
recordings: Recording.parseMany(plain.recordings),
|
|
198
|
-
// @TODO: FIXME add verification declined vs missed call
|
|
199
|
-
newMissedCall: session
|
|
200
|
-
&& session.hasExtension(plain.requested_extension || plain.destination_extension) && !plain.answered,
|
|
201
|
-
});
|
|
185
|
+
const callLog = CallLog.parse(plain);
|
|
186
|
+
// @TODO: FIXME add verification declined vs missed call
|
|
187
|
+
callLog.newMissedCall = session
|
|
188
|
+
&& session.hasExtension(plain.requested_extension || plain.destination_extension) && !plain.answered;
|
|
189
|
+
return callLog;
|
|
202
190
|
}
|
|
203
191
|
|
|
204
192
|
static newFrom(profile ) {
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { SessionState } from 'sip.js/lib/api/session-state';
|
|
2
2
|
import 'moment';
|
|
3
|
-
import { KEYUTIL } from 'jsrsasign';
|
|
4
3
|
|
|
5
4
|
//
|
|
6
5
|
|
|
@@ -13,22 +12,6 @@ var newFrom = (instance , ToClass ) => {
|
|
|
13
12
|
return new ToClass(args);
|
|
14
13
|
};
|
|
15
14
|
|
|
16
|
-
//
|
|
17
|
-
|
|
18
|
-
const swarmPublicKey = `-----BEGIN PUBLIC KEY-----
|
|
19
|
-
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmkXOuNfY8u5xoTiIhkb8
|
|
20
|
-
djnbIwG/Wrz3vpo8BZir8L5e1a1nSy740qBjP7ZINBQoALDhFfmdOfJnCyEGiHuz
|
|
21
|
-
ZW6jbG6C3PryE3Bu6GKwqSmD6k3q4Zk27fpwYAnNl+rWhYYM563rJZBda/INyHNN
|
|
22
|
-
pK7M1mixWi7gNdjjXwoEXSSBx+VpYMkY6LiAB2mvHXTY9M1qI14dvgGoQISZQoKi
|
|
23
|
-
NMTRCg5UP2ic0Dd9nSz/XpcOxGfa+0fwIl1F7RC1tJXOqvkGGPTOV4LLfg/Yta3h
|
|
24
|
-
nUPX9EZZDIX6vO/0IBV1LzjSl2A1bYFYAjJfowv3i1CpvONBOClHjSY5t9Y8MH6p
|
|
25
|
-
BwIDAQAB
|
|
26
|
-
-----END PUBLIC KEY-----`;
|
|
27
|
-
|
|
28
|
-
//
|
|
29
|
-
|
|
30
|
-
KEYUTIL.getKey(swarmPublicKey);
|
|
31
|
-
|
|
32
15
|
//
|
|
33
16
|
/* eslint-disable no-param-reassign */
|
|
34
17
|
|
|
@@ -352,7 +335,7 @@ class CallSession {
|
|
|
352
335
|
return newFrom(callSession, CallSession);
|
|
353
336
|
}
|
|
354
337
|
|
|
355
|
-
static parseCall(
|
|
338
|
+
static parseCall(call ) {
|
|
356
339
|
return new CallSession({
|
|
357
340
|
callId: call.id,
|
|
358
341
|
sipCallId: call.sipCallId,
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { SessionState } from 'sip.js/lib/api/session-state';
|
|
2
2
|
import 'moment';
|
|
3
|
-
import { KEYUTIL } from 'jsrsasign';
|
|
4
3
|
|
|
5
4
|
//
|
|
6
5
|
|
|
@@ -13,22 +12,6 @@ var newFrom = (instance , ToClass ) => {
|
|
|
13
12
|
return new ToClass(args);
|
|
14
13
|
};
|
|
15
14
|
|
|
16
|
-
//
|
|
17
|
-
|
|
18
|
-
const swarmPublicKey = `-----BEGIN PUBLIC KEY-----
|
|
19
|
-
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmkXOuNfY8u5xoTiIhkb8
|
|
20
|
-
djnbIwG/Wrz3vpo8BZir8L5e1a1nSy740qBjP7ZINBQoALDhFfmdOfJnCyEGiHuz
|
|
21
|
-
ZW6jbG6C3PryE3Bu6GKwqSmD6k3q4Zk27fpwYAnNl+rWhYYM563rJZBda/INyHNN
|
|
22
|
-
pK7M1mixWi7gNdjjXwoEXSSBx+VpYMkY6LiAB2mvHXTY9M1qI14dvgGoQISZQoKi
|
|
23
|
-
NMTRCg5UP2ic0Dd9nSz/XpcOxGfa+0fwIl1F7RC1tJXOqvkGGPTOV4LLfg/Yta3h
|
|
24
|
-
nUPX9EZZDIX6vO/0IBV1LzjSl2A1bYFYAjJfowv3i1CpvONBOClHjSY5t9Y8MH6p
|
|
25
|
-
BwIDAQAB
|
|
26
|
-
-----END PUBLIC KEY-----`;
|
|
27
|
-
|
|
28
|
-
//
|
|
29
|
-
|
|
30
|
-
KEYUTIL.getKey(swarmPublicKey);
|
|
31
|
-
|
|
32
15
|
//
|
|
33
16
|
/* eslint-disable no-param-reassign */
|
|
34
17
|
|
|
@@ -352,7 +335,7 @@ class CallSession {
|
|
|
352
335
|
return newFrom(callSession, CallSession);
|
|
353
336
|
}
|
|
354
337
|
|
|
355
|
-
static parseCall(
|
|
338
|
+
static parseCall(call ) {
|
|
356
339
|
return new CallSession({
|
|
357
340
|
callId: call.id,
|
|
358
341
|
sipCallId: call.sipCallId,
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { SessionState } from 'sip.js/lib/api/session-state';
|
|
2
2
|
import 'moment';
|
|
3
|
-
import { KEYUTIL } from 'jsrsasign';
|
|
4
3
|
|
|
5
4
|
//
|
|
6
5
|
|
|
@@ -13,22 +12,6 @@ var newFrom = (instance , ToClass ) => {
|
|
|
13
12
|
return new ToClass(args);
|
|
14
13
|
};
|
|
15
14
|
|
|
16
|
-
//
|
|
17
|
-
|
|
18
|
-
const swarmPublicKey = `-----BEGIN PUBLIC KEY-----
|
|
19
|
-
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmkXOuNfY8u5xoTiIhkb8
|
|
20
|
-
djnbIwG/Wrz3vpo8BZir8L5e1a1nSy740qBjP7ZINBQoALDhFfmdOfJnCyEGiHuz
|
|
21
|
-
ZW6jbG6C3PryE3Bu6GKwqSmD6k3q4Zk27fpwYAnNl+rWhYYM563rJZBda/INyHNN
|
|
22
|
-
pK7M1mixWi7gNdjjXwoEXSSBx+VpYMkY6LiAB2mvHXTY9M1qI14dvgGoQISZQoKi
|
|
23
|
-
NMTRCg5UP2ic0Dd9nSz/XpcOxGfa+0fwIl1F7RC1tJXOqvkGGPTOV4LLfg/Yta3h
|
|
24
|
-
nUPX9EZZDIX6vO/0IBV1LzjSl2A1bYFYAjJfowv3i1CpvONBOClHjSY5t9Y8MH6p
|
|
25
|
-
BwIDAQAB
|
|
26
|
-
-----END PUBLIC KEY-----`;
|
|
27
|
-
|
|
28
|
-
//
|
|
29
|
-
|
|
30
|
-
KEYUTIL.getKey(swarmPublicKey);
|
|
31
|
-
|
|
32
15
|
//
|
|
33
16
|
/* eslint-disable no-param-reassign */
|
|
34
17
|
|
|
@@ -352,7 +335,7 @@ class CallSession {
|
|
|
352
335
|
return newFrom(callSession, CallSession);
|
|
353
336
|
}
|
|
354
337
|
|
|
355
|
-
static parseCall(
|
|
338
|
+
static parseCall(call ) {
|
|
356
339
|
return new CallSession({
|
|
357
340
|
callId: call.id,
|
|
358
341
|
sipCallId: call.sipCallId,
|