@wazo/sdk 0.37.23 → 0.37.24
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 +6 -6
- package/esm/__tests__/api-client.test.js +22 -17
- package/esm/__tests__/web-rtc-client.test.js +105 -100
- package/esm/api/amid.js +1 -1
- package/esm/api/call-logd.js +2 -2
- package/esm/api/confd.js +10 -5
- package/esm/api/ctid-ng.js +3 -3
- package/esm/api/dird.js +1 -1
- package/esm/api/webhookd.js +1 -1
- package/esm/api-client.js +22 -17
- package/esm/checker/Checker.js +130 -125
- package/esm/checker/checks/aor.js +22 -17
- package/esm/checker/checks/api.js +22 -17
- package/esm/checker/checks/index.js +120 -115
- package/esm/checker/checks/wazo-websocket.js +15 -15
- package/esm/checker/checks/webrtc-transport.js +105 -100
- package/esm/checker/checks/webrtc.js +105 -100
- package/esm/domain/AdHocAPIConference.js +22 -17
- package/esm/domain/CallLog.js +1 -1
- package/esm/domain/Contact.js +1 -1
- package/esm/domain/Features.js +22 -17
- package/esm/domain/Meeting.js +12 -5
- package/esm/domain/Phone/CTIPhone.js +36 -31
- package/esm/domain/Phone/WebRTCPhone.js +110 -87
- package/esm/domain/__tests__/CallLog.test.js +1 -1
- package/esm/domain/__tests__/Contact.test.js +1 -1
- package/esm/domain/__tests__/Meeting.test.js +144 -0
- package/esm/index.js +365 -337
- package/esm/lib/WazoSessionDescriptionHandler.js +1 -1
- package/esm/service/CallApi.js +22 -17
- package/esm/service/IssueReporter.js +1 -1
- package/esm/service/__tests__/IssueReporter.test.js +1 -1
- package/esm/service/getApiClient.js +22 -17
- package/esm/simple/Auth.js +355 -327
- package/esm/simple/Configuration.js +355 -327
- package/esm/simple/Directory.js +22 -17
- package/esm/simple/Phone.js +355 -327
- package/esm/simple/Websocket.js +17 -17
- package/esm/simple/index.js +359 -331
- package/esm/simple/room/LocalParticipant.js +359 -331
- package/esm/simple/room/Participant.js +359 -331
- package/esm/simple/room/RemoteParticipant.js +359 -331
- package/esm/simple/room/Room.js +360 -332
- package/esm/simple/room/SipRoom.js +359 -331
- package/esm/simple/room/Stream.js +359 -331
- package/esm/simple/room/__tests__/RemoteParticipant.test.js +359 -331
- package/esm/simple/utils.js +359 -331
- package/esm/types/WebSocketMessage.js +1 -1
- package/esm/web-rtc-client.js +105 -100
- package/esm/websocket-client.js +15 -15
- package/lib/__tests__/api-client.test.js +22 -17
- package/lib/__tests__/web-rtc-client.test.js +105 -100
- package/lib/api/amid.js +1 -1
- package/lib/api/call-logd.js +2 -2
- package/lib/api/confd.js +10 -5
- package/lib/api/ctid-ng.js +3 -3
- package/lib/api/dird.js +1 -1
- package/lib/api/webhookd.js +1 -1
- package/lib/api-client.js +22 -17
- package/lib/checker/Checker.js +130 -125
- package/lib/checker/checks/aor.js +22 -17
- package/lib/checker/checks/api.js +22 -17
- package/lib/checker/checks/index.js +120 -115
- package/lib/checker/checks/wazo-websocket.js +15 -15
- package/lib/checker/checks/webrtc-transport.js +105 -100
- package/lib/checker/checks/webrtc.js +105 -100
- package/lib/domain/AdHocAPIConference.js +22 -17
- package/lib/domain/CallLog.js +1 -1
- package/lib/domain/Contact.js +1 -1
- package/lib/domain/Features.js +22 -17
- package/lib/domain/Meeting.js +16 -5
- package/lib/domain/Phone/CTIPhone.js +36 -31
- package/lib/domain/Phone/WebRTCPhone.js +110 -87
- package/lib/domain/__tests__/CallLog.test.js +1 -1
- package/lib/domain/__tests__/Contact.test.js +1 -1
- package/lib/domain/__tests__/Meeting.test.js +150 -0
- package/lib/index.js +365 -337
- package/lib/lib/WazoSessionDescriptionHandler.js +1 -1
- package/lib/service/CallApi.js +22 -17
- package/lib/service/IssueReporter.js +1 -1
- package/lib/service/__tests__/IssueReporter.test.js +1 -1
- package/lib/service/getApiClient.js +22 -17
- package/lib/simple/Auth.js +355 -327
- package/lib/simple/Configuration.js +355 -327
- package/lib/simple/Directory.js +22 -17
- package/lib/simple/Phone.js +355 -327
- package/lib/simple/Websocket.js +17 -17
- package/lib/simple/index.js +359 -331
- package/lib/simple/room/LocalParticipant.js +359 -331
- package/lib/simple/room/Participant.js +359 -331
- package/lib/simple/room/RemoteParticipant.js +359 -331
- package/lib/simple/room/Room.js +360 -332
- package/lib/simple/room/SipRoom.js +359 -331
- package/lib/simple/room/Stream.js +359 -331
- package/lib/simple/room/__tests__/RemoteParticipant.test.js +359 -331
- package/lib/simple/utils.js +359 -331
- package/lib/types/WebSocketMessage.js +2 -0
- package/lib/web-rtc-client.js +105 -100
- package/lib/websocket-client.js +15 -15
- package/package.json +1 -1
- package/src/domain/Meeting.js +12 -5
- package/src/domain/Phone/WebRTCPhone.js +24 -1
- package/src/domain/__tests__/Meeting.test.js +50 -0
|
@@ -666,7 +666,7 @@ var IssueReporter$1 = new IssueReporter();
|
|
|
666
666
|
|
|
667
667
|
const methods = ['head', 'get', 'post', 'put', 'delete'];
|
|
668
668
|
|
|
669
|
-
const logger
|
|
669
|
+
const logger = IssueReporter$1 ? IssueReporter$1.loggerFor('api') : console;
|
|
670
670
|
|
|
671
671
|
// Use a function here to be able to mock it in tests
|
|
672
672
|
const realFetch = () => {
|
|
@@ -805,7 +805,7 @@ class ApiRequester {
|
|
|
805
805
|
};
|
|
806
806
|
|
|
807
807
|
if (this.refreshTokenPromise) {
|
|
808
|
-
logger
|
|
808
|
+
logger.info('A token is already refreshing, waiting ...', { url });
|
|
809
809
|
await this.refreshTokenPromise;
|
|
810
810
|
}
|
|
811
811
|
|
|
@@ -825,7 +825,7 @@ class ApiRequester {
|
|
|
825
825
|
return promise.then(async (err ) => {
|
|
826
826
|
// Check if the token is still valid
|
|
827
827
|
if (firstCall && this._checkTokenExpired(response, err)) {
|
|
828
|
-
logger
|
|
828
|
+
logger.warn('token expired', { error: err.reason });
|
|
829
829
|
// Replay the call after refreshing the token
|
|
830
830
|
return this._replayWithNewToken(err, path, method, body, headers, parse);
|
|
831
831
|
}
|
|
@@ -835,7 +835,7 @@ class ApiRequester {
|
|
|
835
835
|
: exceptionClass.fromResponse(err, response.status);
|
|
836
836
|
|
|
837
837
|
if (this.shouldLogErrors) {
|
|
838
|
-
logger
|
|
838
|
+
logger.error('API error', error);
|
|
839
839
|
}
|
|
840
840
|
|
|
841
841
|
throw error;
|
|
@@ -845,7 +845,7 @@ class ApiRequester {
|
|
|
845
845
|
return newParse(response, isJson);
|
|
846
846
|
}).catch(error => {
|
|
847
847
|
if (this.shouldLogErrors) {
|
|
848
|
-
logger
|
|
848
|
+
logger.error('Fetch failed', { url, options, message: error.message, stack: error.stack });
|
|
849
849
|
}
|
|
850
850
|
|
|
851
851
|
throw error;
|
|
@@ -873,13 +873,13 @@ class ApiRequester {
|
|
|
873
873
|
) {
|
|
874
874
|
const isTokenNotFound = this._isTokenNotFound(err);
|
|
875
875
|
let newPath = path;
|
|
876
|
-
logger
|
|
876
|
+
logger.info('refreshing token', { inProgress: !!this.refreshTokenPromise });
|
|
877
877
|
|
|
878
878
|
this.refreshTokenPromise = this.refreshTokenPromise || this.refreshTokenCallback();
|
|
879
879
|
|
|
880
880
|
return this.refreshTokenPromise.then(() => {
|
|
881
881
|
this.refreshTokenPromise = null;
|
|
882
|
-
logger
|
|
882
|
+
logger.info('token refreshed', { isTokenNotFound });
|
|
883
883
|
if (isTokenNotFound) {
|
|
884
884
|
const pathParts = path.split('/');
|
|
885
885
|
pathParts.pop();
|
|
@@ -2826,8 +2826,9 @@ class ExternalApp {
|
|
|
2826
2826
|
|
|
2827
2827
|
|
|
2828
2828
|
|
|
2829
|
-
|
|
2829
|
+
|
|
2830
2830
|
|
|
2831
|
+
|
|
2831
2832
|
|
|
2832
2833
|
|
|
2833
2834
|
class Meeting {
|
|
@@ -2838,9 +2839,10 @@ class Meeting {
|
|
|
2838
2839
|
|
|
2839
2840
|
|
|
2840
2841
|
|
|
2841
|
-
|
|
2842
|
+
|
|
2842
2843
|
|
|
2843
2844
|
|
|
2845
|
+
|
|
2844
2846
|
|
|
2845
2847
|
static parse(plain ) {
|
|
2846
2848
|
return new Meeting({
|
|
@@ -2850,8 +2852,9 @@ class Meeting {
|
|
|
2850
2852
|
ownerUuids: plain.owner_uuids,
|
|
2851
2853
|
port: plain.port,
|
|
2852
2854
|
uuid: plain.uuid,
|
|
2853
|
-
|
|
2855
|
+
extension: plain.exten,
|
|
2854
2856
|
persistent: plain.persistent,
|
|
2857
|
+
creationTime: moment__default['default'](plain.creation_time).toDate(),
|
|
2855
2858
|
});
|
|
2856
2859
|
}
|
|
2857
2860
|
|
|
@@ -2873,8 +2876,9 @@ class Meeting {
|
|
|
2873
2876
|
ownerUuids,
|
|
2874
2877
|
port,
|
|
2875
2878
|
uri,
|
|
2876
|
-
|
|
2879
|
+
extension,
|
|
2877
2880
|
persistent,
|
|
2881
|
+
creationTime,
|
|
2878
2882
|
} = {}) {
|
|
2879
2883
|
this.guestSipAuthorization = guestSipAuthorization;
|
|
2880
2884
|
this.uri = uri;
|
|
@@ -2882,8 +2886,9 @@ class Meeting {
|
|
|
2882
2886
|
this.ownerUuids = ownerUuids;
|
|
2883
2887
|
this.port = port;
|
|
2884
2888
|
this.uuid = uuid;
|
|
2885
|
-
this.
|
|
2889
|
+
this.extension = extension;
|
|
2886
2890
|
this.persistent = persistent;
|
|
2891
|
+
this.creationTime = creationTime;
|
|
2887
2892
|
|
|
2888
2893
|
// Useful to compare instead of instanceof with minified code
|
|
2889
2894
|
this.type = 'Meeting';
|
|
@@ -3581,7 +3586,7 @@ const TRANSFER_FLOW_BLIND = 'blind';
|
|
|
3581
3586
|
|
|
3582
3587
|
// const MINIMUM_WAZO_ENGINE_VERSION_FOR_CTI_HOLD = '20.11';
|
|
3583
3588
|
|
|
3584
|
-
IssueReporter$1 ? IssueReporter$1.loggerFor('cti-phone') : console;
|
|
3589
|
+
const logger$1 = IssueReporter$1 ? IssueReporter$1.loggerFor('cti-phone') : console;
|
|
3585
3590
|
|
|
3586
3591
|
/* */
|
|
3587
3592
|
|
|
@@ -4500,7 +4505,7 @@ const AGENTD_VERSION = '1.0';
|
|
|
4500
4505
|
const WEBHOOKD_VERSION = '1.0';
|
|
4501
4506
|
const AMID_VERSION = '1.0';
|
|
4502
4507
|
|
|
4503
|
-
const logger = IssueReporter$1 ? IssueReporter$1.loggerFor('api') : console;
|
|
4508
|
+
const logger$2 = IssueReporter$1 ? IssueReporter$1.loggerFor('api') : console;
|
|
4504
4509
|
|
|
4505
4510
|
class ApiClient {
|
|
4506
4511
|
|
|
@@ -4552,12 +4557,12 @@ class ApiClient {
|
|
|
4552
4557
|
}
|
|
4553
4558
|
|
|
4554
4559
|
async forceRefreshToken() {
|
|
4555
|
-
logger.info('forcing refresh token, calling callback');
|
|
4560
|
+
logger$2.info('forcing refresh token, calling callback');
|
|
4556
4561
|
return this.refreshTokenCallback();
|
|
4557
4562
|
}
|
|
4558
4563
|
|
|
4559
4564
|
async refreshTokenCallback() {
|
|
4560
|
-
logger.info('refresh token callback called', {
|
|
4565
|
+
logger$2.info('refresh token callback called', {
|
|
4561
4566
|
refreshToken: this.refreshToken,
|
|
4562
4567
|
refreshBackend: this.refreshBackend,
|
|
4563
4568
|
refreshExpiration: this.refreshExpiration,
|
|
@@ -4575,7 +4580,7 @@ class ApiClient {
|
|
|
4575
4580
|
this.isMobile,
|
|
4576
4581
|
);
|
|
4577
4582
|
|
|
4578
|
-
logger.info('token refreshed', { token: session.token });
|
|
4583
|
+
logger$2.info('token refreshed', { token: session.token });
|
|
4579
4584
|
|
|
4580
4585
|
if (this.onRefreshToken) {
|
|
4581
4586
|
this.onRefreshToken(session.token, session);
|
package/lib/domain/CallLog.js
CHANGED
package/lib/domain/Contact.js
CHANGED
package/lib/domain/Features.js
CHANGED
|
@@ -448,7 +448,7 @@ var IssueReporter$1 = new IssueReporter();
|
|
|
448
448
|
|
|
449
449
|
const methods = ['head', 'get', 'post', 'put', 'delete'];
|
|
450
450
|
|
|
451
|
-
const logger
|
|
451
|
+
const logger = IssueReporter$1 ? IssueReporter$1.loggerFor('api') : console;
|
|
452
452
|
|
|
453
453
|
// Use a function here to be able to mock it in tests
|
|
454
454
|
const realFetch = () => {
|
|
@@ -587,7 +587,7 @@ class ApiRequester {
|
|
|
587
587
|
};
|
|
588
588
|
|
|
589
589
|
if (this.refreshTokenPromise) {
|
|
590
|
-
logger
|
|
590
|
+
logger.info('A token is already refreshing, waiting ...', { url });
|
|
591
591
|
await this.refreshTokenPromise;
|
|
592
592
|
}
|
|
593
593
|
|
|
@@ -607,7 +607,7 @@ class ApiRequester {
|
|
|
607
607
|
return promise.then(async (err ) => {
|
|
608
608
|
// Check if the token is still valid
|
|
609
609
|
if (firstCall && this._checkTokenExpired(response, err)) {
|
|
610
|
-
logger
|
|
610
|
+
logger.warn('token expired', { error: err.reason });
|
|
611
611
|
// Replay the call after refreshing the token
|
|
612
612
|
return this._replayWithNewToken(err, path, method, body, headers, parse);
|
|
613
613
|
}
|
|
@@ -617,7 +617,7 @@ class ApiRequester {
|
|
|
617
617
|
: exceptionClass.fromResponse(err, response.status);
|
|
618
618
|
|
|
619
619
|
if (this.shouldLogErrors) {
|
|
620
|
-
logger
|
|
620
|
+
logger.error('API error', error);
|
|
621
621
|
}
|
|
622
622
|
|
|
623
623
|
throw error;
|
|
@@ -627,7 +627,7 @@ class ApiRequester {
|
|
|
627
627
|
return newParse(response, isJson);
|
|
628
628
|
}).catch(error => {
|
|
629
629
|
if (this.shouldLogErrors) {
|
|
630
|
-
logger
|
|
630
|
+
logger.error('Fetch failed', { url, options, message: error.message, stack: error.stack });
|
|
631
631
|
}
|
|
632
632
|
|
|
633
633
|
throw error;
|
|
@@ -655,13 +655,13 @@ class ApiRequester {
|
|
|
655
655
|
) {
|
|
656
656
|
const isTokenNotFound = this._isTokenNotFound(err);
|
|
657
657
|
let newPath = path;
|
|
658
|
-
logger
|
|
658
|
+
logger.info('refreshing token', { inProgress: !!this.refreshTokenPromise });
|
|
659
659
|
|
|
660
660
|
this.refreshTokenPromise = this.refreshTokenPromise || this.refreshTokenCallback();
|
|
661
661
|
|
|
662
662
|
return this.refreshTokenPromise.then(() => {
|
|
663
663
|
this.refreshTokenPromise = null;
|
|
664
|
-
logger
|
|
664
|
+
logger.info('token refreshed', { isTokenNotFound });
|
|
665
665
|
if (isTokenNotFound) {
|
|
666
666
|
const pathParts = path.split('/');
|
|
667
667
|
pathParts.pop();
|
|
@@ -2619,8 +2619,9 @@ class ExternalApp {
|
|
|
2619
2619
|
|
|
2620
2620
|
|
|
2621
2621
|
|
|
2622
|
-
|
|
2622
|
+
|
|
2623
2623
|
|
|
2624
|
+
|
|
2624
2625
|
|
|
2625
2626
|
|
|
2626
2627
|
class Meeting {
|
|
@@ -2631,9 +2632,10 @@ class Meeting {
|
|
|
2631
2632
|
|
|
2632
2633
|
|
|
2633
2634
|
|
|
2634
|
-
|
|
2635
|
+
|
|
2635
2636
|
|
|
2636
2637
|
|
|
2638
|
+
|
|
2637
2639
|
|
|
2638
2640
|
static parse(plain ) {
|
|
2639
2641
|
return new Meeting({
|
|
@@ -2643,8 +2645,9 @@ class Meeting {
|
|
|
2643
2645
|
ownerUuids: plain.owner_uuids,
|
|
2644
2646
|
port: plain.port,
|
|
2645
2647
|
uuid: plain.uuid,
|
|
2646
|
-
|
|
2648
|
+
extension: plain.exten,
|
|
2647
2649
|
persistent: plain.persistent,
|
|
2650
|
+
creationTime: moment__default['default'](plain.creation_time).toDate(),
|
|
2648
2651
|
});
|
|
2649
2652
|
}
|
|
2650
2653
|
|
|
@@ -2666,8 +2669,9 @@ class Meeting {
|
|
|
2666
2669
|
ownerUuids,
|
|
2667
2670
|
port,
|
|
2668
2671
|
uri,
|
|
2669
|
-
|
|
2672
|
+
extension,
|
|
2670
2673
|
persistent,
|
|
2674
|
+
creationTime,
|
|
2671
2675
|
} = {}) {
|
|
2672
2676
|
this.guestSipAuthorization = guestSipAuthorization;
|
|
2673
2677
|
this.uri = uri;
|
|
@@ -2675,8 +2679,9 @@ class Meeting {
|
|
|
2675
2679
|
this.ownerUuids = ownerUuids;
|
|
2676
2680
|
this.port = port;
|
|
2677
2681
|
this.uuid = uuid;
|
|
2678
|
-
this.
|
|
2682
|
+
this.extension = extension;
|
|
2679
2683
|
this.persistent = persistent;
|
|
2684
|
+
this.creationTime = creationTime;
|
|
2680
2685
|
|
|
2681
2686
|
// Useful to compare instead of instanceof with minified code
|
|
2682
2687
|
this.type = 'Meeting';
|
|
@@ -3583,7 +3588,7 @@ const TRANSFER_FLOW_BLIND = 'blind';
|
|
|
3583
3588
|
|
|
3584
3589
|
// const MINIMUM_WAZO_ENGINE_VERSION_FOR_CTI_HOLD = '20.11';
|
|
3585
3590
|
|
|
3586
|
-
IssueReporter$1 ? IssueReporter$1.loggerFor('cti-phone') : console;
|
|
3591
|
+
const logger$1 = IssueReporter$1 ? IssueReporter$1.loggerFor('cti-phone') : console;
|
|
3587
3592
|
|
|
3588
3593
|
/* */
|
|
3589
3594
|
|
|
@@ -4502,7 +4507,7 @@ const AGENTD_VERSION = '1.0';
|
|
|
4502
4507
|
const WEBHOOKD_VERSION = '1.0';
|
|
4503
4508
|
const AMID_VERSION = '1.0';
|
|
4504
4509
|
|
|
4505
|
-
const logger = IssueReporter$1 ? IssueReporter$1.loggerFor('api') : console;
|
|
4510
|
+
const logger$2 = IssueReporter$1 ? IssueReporter$1.loggerFor('api') : console;
|
|
4506
4511
|
|
|
4507
4512
|
class ApiClient {
|
|
4508
4513
|
|
|
@@ -4554,12 +4559,12 @@ class ApiClient {
|
|
|
4554
4559
|
}
|
|
4555
4560
|
|
|
4556
4561
|
async forceRefreshToken() {
|
|
4557
|
-
logger.info('forcing refresh token, calling callback');
|
|
4562
|
+
logger$2.info('forcing refresh token, calling callback');
|
|
4558
4563
|
return this.refreshTokenCallback();
|
|
4559
4564
|
}
|
|
4560
4565
|
|
|
4561
4566
|
async refreshTokenCallback() {
|
|
4562
|
-
logger.info('refresh token callback called', {
|
|
4567
|
+
logger$2.info('refresh token callback called', {
|
|
4563
4568
|
refreshToken: this.refreshToken,
|
|
4564
4569
|
refreshBackend: this.refreshBackend,
|
|
4565
4570
|
refreshExpiration: this.refreshExpiration,
|
|
@@ -4577,7 +4582,7 @@ class ApiClient {
|
|
|
4577
4582
|
this.isMobile,
|
|
4578
4583
|
);
|
|
4579
4584
|
|
|
4580
|
-
logger.info('token refreshed', { token: session.token });
|
|
4585
|
+
logger$2.info('token refreshed', { token: session.token });
|
|
4581
4586
|
|
|
4582
4587
|
if (this.onRefreshToken) {
|
|
4583
4588
|
this.onRefreshToken(session.token, session);
|
package/lib/domain/Meeting.js
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var moment = require('moment');
|
|
4
|
+
|
|
5
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
6
|
+
|
|
7
|
+
var moment__default = /*#__PURE__*/_interopDefaultLegacy(moment);
|
|
8
|
+
|
|
3
9
|
//
|
|
4
10
|
|
|
5
11
|
var newFrom = (instance , ToClass ) => {
|
|
@@ -20,8 +26,9 @@ var newFrom = (instance , ToClass ) => {
|
|
|
20
26
|
|
|
21
27
|
|
|
22
28
|
|
|
23
|
-
|
|
29
|
+
|
|
24
30
|
|
|
31
|
+
|
|
25
32
|
|
|
26
33
|
|
|
27
34
|
class Meeting {
|
|
@@ -32,9 +39,10 @@ class Meeting {
|
|
|
32
39
|
|
|
33
40
|
|
|
34
41
|
|
|
35
|
-
|
|
42
|
+
|
|
36
43
|
|
|
37
44
|
|
|
45
|
+
|
|
38
46
|
|
|
39
47
|
static parse(plain ) {
|
|
40
48
|
return new Meeting({
|
|
@@ -44,8 +52,9 @@ class Meeting {
|
|
|
44
52
|
ownerUuids: plain.owner_uuids,
|
|
45
53
|
port: plain.port,
|
|
46
54
|
uuid: plain.uuid,
|
|
47
|
-
|
|
55
|
+
extension: plain.exten,
|
|
48
56
|
persistent: plain.persistent,
|
|
57
|
+
creationTime: moment__default['default'](plain.creation_time).toDate(),
|
|
49
58
|
});
|
|
50
59
|
}
|
|
51
60
|
|
|
@@ -67,8 +76,9 @@ class Meeting {
|
|
|
67
76
|
ownerUuids,
|
|
68
77
|
port,
|
|
69
78
|
uri,
|
|
70
|
-
|
|
79
|
+
extension,
|
|
71
80
|
persistent,
|
|
81
|
+
creationTime,
|
|
72
82
|
} = {}) {
|
|
73
83
|
this.guestSipAuthorization = guestSipAuthorization;
|
|
74
84
|
this.uri = uri;
|
|
@@ -76,8 +86,9 @@ class Meeting {
|
|
|
76
86
|
this.ownerUuids = ownerUuids;
|
|
77
87
|
this.port = port;
|
|
78
88
|
this.uuid = uuid;
|
|
79
|
-
this.
|
|
89
|
+
this.extension = extension;
|
|
80
90
|
this.persistent = persistent;
|
|
91
|
+
this.creationTime = creationTime;
|
|
81
92
|
|
|
82
93
|
// Useful to compare instead of instanceof with minified code
|
|
83
94
|
this.type = 'Meeting';
|
|
@@ -2842,7 +2842,7 @@ var IssueReporter$1 = new IssueReporter();
|
|
|
2842
2842
|
|
|
2843
2843
|
const methods = ['head', 'get', 'post', 'put', 'delete'];
|
|
2844
2844
|
|
|
2845
|
-
const logger
|
|
2845
|
+
const logger = IssueReporter$1 ? IssueReporter$1.loggerFor('api') : console;
|
|
2846
2846
|
|
|
2847
2847
|
// Use a function here to be able to mock it in tests
|
|
2848
2848
|
const realFetch = () => {
|
|
@@ -2981,7 +2981,7 @@ class ApiRequester {
|
|
|
2981
2981
|
};
|
|
2982
2982
|
|
|
2983
2983
|
if (this.refreshTokenPromise) {
|
|
2984
|
-
logger
|
|
2984
|
+
logger.info('A token is already refreshing, waiting ...', { url });
|
|
2985
2985
|
await this.refreshTokenPromise;
|
|
2986
2986
|
}
|
|
2987
2987
|
|
|
@@ -3001,7 +3001,7 @@ class ApiRequester {
|
|
|
3001
3001
|
return promise.then(async (err ) => {
|
|
3002
3002
|
// Check if the token is still valid
|
|
3003
3003
|
if (firstCall && this._checkTokenExpired(response, err)) {
|
|
3004
|
-
logger
|
|
3004
|
+
logger.warn('token expired', { error: err.reason });
|
|
3005
3005
|
// Replay the call after refreshing the token
|
|
3006
3006
|
return this._replayWithNewToken(err, path, method, body, headers, parse);
|
|
3007
3007
|
}
|
|
@@ -3011,7 +3011,7 @@ class ApiRequester {
|
|
|
3011
3011
|
: exceptionClass.fromResponse(err, response.status);
|
|
3012
3012
|
|
|
3013
3013
|
if (this.shouldLogErrors) {
|
|
3014
|
-
logger
|
|
3014
|
+
logger.error('API error', error);
|
|
3015
3015
|
}
|
|
3016
3016
|
|
|
3017
3017
|
throw error;
|
|
@@ -3021,7 +3021,7 @@ class ApiRequester {
|
|
|
3021
3021
|
return newParse(response, isJson);
|
|
3022
3022
|
}).catch(error => {
|
|
3023
3023
|
if (this.shouldLogErrors) {
|
|
3024
|
-
logger
|
|
3024
|
+
logger.error('Fetch failed', { url, options, message: error.message, stack: error.stack });
|
|
3025
3025
|
}
|
|
3026
3026
|
|
|
3027
3027
|
throw error;
|
|
@@ -3049,13 +3049,13 @@ class ApiRequester {
|
|
|
3049
3049
|
) {
|
|
3050
3050
|
const isTokenNotFound = this._isTokenNotFound(err);
|
|
3051
3051
|
let newPath = path;
|
|
3052
|
-
logger
|
|
3052
|
+
logger.info('refreshing token', { inProgress: !!this.refreshTokenPromise });
|
|
3053
3053
|
|
|
3054
3054
|
this.refreshTokenPromise = this.refreshTokenPromise || this.refreshTokenCallback();
|
|
3055
3055
|
|
|
3056
3056
|
return this.refreshTokenPromise.then(() => {
|
|
3057
3057
|
this.refreshTokenPromise = null;
|
|
3058
|
-
logger
|
|
3058
|
+
logger.info('token refreshed', { isTokenNotFound });
|
|
3059
3059
|
if (isTokenNotFound) {
|
|
3060
3060
|
const pathParts = path.split('/');
|
|
3061
3061
|
pathParts.pop();
|
|
@@ -3525,8 +3525,9 @@ class ExternalApp {
|
|
|
3525
3525
|
|
|
3526
3526
|
|
|
3527
3527
|
|
|
3528
|
-
|
|
3528
|
+
|
|
3529
3529
|
|
|
3530
|
+
|
|
3530
3531
|
|
|
3531
3532
|
|
|
3532
3533
|
class Meeting {
|
|
@@ -3537,9 +3538,10 @@ class Meeting {
|
|
|
3537
3538
|
|
|
3538
3539
|
|
|
3539
3540
|
|
|
3540
|
-
|
|
3541
|
+
|
|
3541
3542
|
|
|
3542
3543
|
|
|
3544
|
+
|
|
3543
3545
|
|
|
3544
3546
|
static parse(plain ) {
|
|
3545
3547
|
return new Meeting({
|
|
@@ -3549,8 +3551,9 @@ class Meeting {
|
|
|
3549
3551
|
ownerUuids: plain.owner_uuids,
|
|
3550
3552
|
port: plain.port,
|
|
3551
3553
|
uuid: plain.uuid,
|
|
3552
|
-
|
|
3554
|
+
extension: plain.exten,
|
|
3553
3555
|
persistent: plain.persistent,
|
|
3556
|
+
creationTime: moment__default['default'](plain.creation_time).toDate(),
|
|
3554
3557
|
});
|
|
3555
3558
|
}
|
|
3556
3559
|
|
|
@@ -3572,8 +3575,9 @@ class Meeting {
|
|
|
3572
3575
|
ownerUuids,
|
|
3573
3576
|
port,
|
|
3574
3577
|
uri,
|
|
3575
|
-
|
|
3578
|
+
extension,
|
|
3576
3579
|
persistent,
|
|
3580
|
+
creationTime,
|
|
3577
3581
|
} = {}) {
|
|
3578
3582
|
this.guestSipAuthorization = guestSipAuthorization;
|
|
3579
3583
|
this.uri = uri;
|
|
@@ -3581,8 +3585,9 @@ class Meeting {
|
|
|
3581
3585
|
this.ownerUuids = ownerUuids;
|
|
3582
3586
|
this.port = port;
|
|
3583
3587
|
this.uuid = uuid;
|
|
3584
|
-
this.
|
|
3588
|
+
this.extension = extension;
|
|
3585
3589
|
this.persistent = persistent;
|
|
3590
|
+
this.creationTime = creationTime;
|
|
3586
3591
|
|
|
3587
3592
|
// Useful to compare instead of instanceof with minified code
|
|
3588
3593
|
this.type = 'Meeting';
|
|
@@ -5138,7 +5143,7 @@ const TRANSFER_FLOW_BLIND = 'blind';
|
|
|
5138
5143
|
|
|
5139
5144
|
// const MINIMUM_WAZO_ENGINE_VERSION_FOR_CTI_HOLD = '20.11';
|
|
5140
5145
|
|
|
5141
|
-
const logger = IssueReporter$1 ? IssueReporter$1.loggerFor('cti-phone') : console;
|
|
5146
|
+
const logger$2 = IssueReporter$1 ? IssueReporter$1.loggerFor('cti-phone') : console;
|
|
5142
5147
|
|
|
5143
5148
|
class CTIPhone extends Emitter {
|
|
5144
5149
|
|
|
@@ -5151,7 +5156,7 @@ class CTIPhone extends Emitter {
|
|
|
5151
5156
|
|
|
5152
5157
|
constructor(session , isMobile = false, callbackAllLines = false) {
|
|
5153
5158
|
super();
|
|
5154
|
-
logger.info('CTI Phone created');
|
|
5159
|
+
logger$2.info('CTI Phone created');
|
|
5155
5160
|
this.session = session;
|
|
5156
5161
|
this.isMobile = isMobile;
|
|
5157
5162
|
this.callbackAllLines = callbackAllLines;
|
|
@@ -5212,7 +5217,7 @@ class CTIPhone extends Emitter {
|
|
|
5212
5217
|
}
|
|
5213
5218
|
|
|
5214
5219
|
async makeCall(number , line ) {
|
|
5215
|
-
logger.info('make CTI call', { number });
|
|
5220
|
+
logger$2.info('make CTI call', { number });
|
|
5216
5221
|
|
|
5217
5222
|
if (!number) {
|
|
5218
5223
|
return null;
|
|
@@ -5235,7 +5240,7 @@ class CTIPhone extends Emitter {
|
|
|
5235
5240
|
if (!callSession) {
|
|
5236
5241
|
return Promise.resolve(null);
|
|
5237
5242
|
}
|
|
5238
|
-
logger.info('accept CTI call', { callId: callSession.getId(), number: callSession.number });
|
|
5243
|
+
logger$2.info('accept CTI call', { callId: callSession.getId(), number: callSession.number });
|
|
5239
5244
|
|
|
5240
5245
|
if (!this.currentCall) {
|
|
5241
5246
|
this.currentCall = callSession.call;
|
|
@@ -5248,7 +5253,7 @@ class CTIPhone extends Emitter {
|
|
|
5248
5253
|
if (!callSession) {
|
|
5249
5254
|
return;
|
|
5250
5255
|
}
|
|
5251
|
-
logger.info('end current CTI call', { callId: callSession.getId(), number: callSession.number });
|
|
5256
|
+
logger$2.info('end current CTI call', { callId: callSession.getId(), number: callSession.number });
|
|
5252
5257
|
|
|
5253
5258
|
this.currentCall = undefined;
|
|
5254
5259
|
this.eventEmitter.emit('onCallEnded', callSession);
|
|
@@ -5258,7 +5263,7 @@ class CTIPhone extends Emitter {
|
|
|
5258
5263
|
if (!callSession) {
|
|
5259
5264
|
return Promise.resolve(false);
|
|
5260
5265
|
}
|
|
5261
|
-
logger.info('hangup CTI call', { callId: callSession.getId(), number: callSession.number });
|
|
5266
|
+
logger$2.info('hangup CTI call', { callId: callSession.getId(), number: callSession.number });
|
|
5262
5267
|
|
|
5263
5268
|
try {
|
|
5264
5269
|
await CallApi.cancelCall(callSession);
|
|
@@ -5269,7 +5274,7 @@ class CTIPhone extends Emitter {
|
|
|
5269
5274
|
this.eventEmitter.emit('onCallEnded', callSession);
|
|
5270
5275
|
return true;
|
|
5271
5276
|
} catch (e) {
|
|
5272
|
-
logger.error('hangup CTI call, error', e);
|
|
5277
|
+
logger$2.error('hangup CTI call, error', e);
|
|
5273
5278
|
|
|
5274
5279
|
this.eventEmitter.emit('onCallFailed', callSession);
|
|
5275
5280
|
return false;
|
|
@@ -5282,7 +5287,7 @@ class CTIPhone extends Emitter {
|
|
|
5282
5287
|
if (!callSession) {
|
|
5283
5288
|
return;
|
|
5284
5289
|
}
|
|
5285
|
-
logger.info('reject CTI call', { callId: callSession.getId(), number: callSession.number });
|
|
5290
|
+
logger$2.info('reject CTI call', { callId: callSession.getId(), number: callSession.number });
|
|
5286
5291
|
|
|
5287
5292
|
await CallApi.cancelCall(callSession);
|
|
5288
5293
|
this.eventEmitter.emit('onCallEnded', callSession);
|
|
@@ -5292,7 +5297,7 @@ class CTIPhone extends Emitter {
|
|
|
5292
5297
|
if (!callSession) {
|
|
5293
5298
|
return;
|
|
5294
5299
|
}
|
|
5295
|
-
logger.info('transfer CTI call', { callId: callSession.getId(), number: callSession.number, to: number });
|
|
5300
|
+
logger$2.info('transfer CTI call', { callId: callSession.getId(), number: callSession.number, to: number });
|
|
5296
5301
|
|
|
5297
5302
|
await CallApi.transferCall(callSession.callId, number, TRANSFER_FLOW_BLIND);
|
|
5298
5303
|
}
|
|
@@ -5305,19 +5310,19 @@ class CTIPhone extends Emitter {
|
|
|
5305
5310
|
if (!callSession) {
|
|
5306
5311
|
return;
|
|
5307
5312
|
}
|
|
5308
|
-
logger.info('indirect CTI transfer', { callId: callSession.getId(), number: callSession.number, to: number });
|
|
5313
|
+
logger$2.info('indirect CTI transfer', { callId: callSession.getId(), number: callSession.number, to: number });
|
|
5309
5314
|
|
|
5310
5315
|
return CallApi.transferCall(callSession.callId, number, TRANSFER_FLOW_ATTENDED);
|
|
5311
5316
|
}
|
|
5312
5317
|
|
|
5313
5318
|
async cancelCTIIndirectTransfer(transferId ) {
|
|
5314
|
-
logger.info('cancel CTI transfer', { transferId });
|
|
5319
|
+
logger$2.info('cancel CTI transfer', { transferId });
|
|
5315
5320
|
|
|
5316
5321
|
return CallApi.cancelCallTransfer(transferId);
|
|
5317
5322
|
}
|
|
5318
5323
|
|
|
5319
5324
|
async confirmCTIIndirectTransfer(transferId ) {
|
|
5320
|
-
logger.info('confirm CTI transfer', { transferId });
|
|
5325
|
+
logger$2.info('confirm CTI transfer', { transferId });
|
|
5321
5326
|
|
|
5322
5327
|
return CallApi.confirmCallTransfer(transferId);
|
|
5323
5328
|
}
|
|
@@ -5326,19 +5331,19 @@ class CTIPhone extends Emitter {
|
|
|
5326
5331
|
if (!callSession) {
|
|
5327
5332
|
return;
|
|
5328
5333
|
}
|
|
5329
|
-
logger.info('send CTI key', { callId: callSession.getId(), number: callSession.number, digits });
|
|
5334
|
+
logger$2.info('send CTI key', { callId: callSession.getId(), number: callSession.number, digits });
|
|
5330
5335
|
|
|
5331
5336
|
return CallApi.sendDTMF(callSession.callId, digits);
|
|
5332
5337
|
}
|
|
5333
5338
|
|
|
5334
5339
|
onConnectionMade() {
|
|
5335
|
-
logger.info('on CTI connection made');
|
|
5340
|
+
logger$2.info('on CTI connection made');
|
|
5336
5341
|
|
|
5337
5342
|
this.eventEmitter.emit('onCallAccepted');
|
|
5338
5343
|
}
|
|
5339
5344
|
|
|
5340
5345
|
async close() {
|
|
5341
|
-
logger.info('CTI close');
|
|
5346
|
+
logger$2.info('CTI close');
|
|
5342
5347
|
|
|
5343
5348
|
return Promise.resolve();
|
|
5344
5349
|
}
|
|
@@ -5347,7 +5352,7 @@ class CTIPhone extends Emitter {
|
|
|
5347
5352
|
if (!callSession) {
|
|
5348
5353
|
return;
|
|
5349
5354
|
}
|
|
5350
|
-
logger.info('CTI hold', { callId: callSession.getId(), number: callSession.number });
|
|
5355
|
+
logger$2.info('CTI hold', { callId: callSession.getId(), number: callSession.number });
|
|
5351
5356
|
|
|
5352
5357
|
return CallApi.hold(callSession.callId);
|
|
5353
5358
|
}
|
|
@@ -5356,7 +5361,7 @@ class CTIPhone extends Emitter {
|
|
|
5356
5361
|
if (!callSession) {
|
|
5357
5362
|
return;
|
|
5358
5363
|
}
|
|
5359
|
-
logger.info('CTI resume', { callId: callSession.getId(), number: callSession.number });
|
|
5364
|
+
logger$2.info('CTI resume', { callId: callSession.getId(), number: callSession.number });
|
|
5360
5365
|
|
|
5361
5366
|
return CallApi.resume(callSession.callId);
|
|
5362
5367
|
}
|
|
@@ -5365,7 +5370,7 @@ class CTIPhone extends Emitter {
|
|
|
5365
5370
|
if (!callSession) {
|
|
5366
5371
|
return;
|
|
5367
5372
|
}
|
|
5368
|
-
logger.info('CTI mute', { callId: callSession.getId(), number: callSession.number });
|
|
5373
|
+
logger$2.info('CTI mute', { callId: callSession.getId(), number: callSession.number });
|
|
5369
5374
|
|
|
5370
5375
|
return CallApi.mute(callSession.callId);
|
|
5371
5376
|
}
|
|
@@ -5374,7 +5379,7 @@ class CTIPhone extends Emitter {
|
|
|
5374
5379
|
if (!callSession) {
|
|
5375
5380
|
return;
|
|
5376
5381
|
}
|
|
5377
|
-
logger.info('CTI unmute', { callId: callSession.getId(), number: callSession.number });
|
|
5382
|
+
logger$2.info('CTI unmute', { callId: callSession.getId(), number: callSession.number });
|
|
5378
5383
|
|
|
5379
5384
|
return CallApi.unmute(callSession.callId);
|
|
5380
5385
|
}
|