@wazo/sdk 0.37.24 → 0.37.25
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 +12 -12
- package/esm/__tests__/web-rtc-client.test.js +120 -103
- package/esm/api/amid.js +1 -1
- package/esm/api/call-logd.js +2 -2
- 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 +12 -12
- package/esm/checker/Checker.js +145 -128
- package/esm/checker/checks/aor.js +12 -12
- package/esm/checker/checks/api.js +12 -12
- package/esm/checker/checks/index.js +135 -118
- package/esm/checker/checks/wazo-websocket.js +15 -15
- package/esm/checker/checks/webrtc-transport.js +120 -103
- package/esm/checker/checks/webrtc.js +120 -103
- package/esm/domain/AdHocAPIConference.js +12 -12
- package/esm/domain/CallLog.js +1 -1
- package/esm/domain/Contact.js +1 -1
- package/esm/domain/Features.js +12 -12
- package/esm/domain/Phone/CTIPhone.js +26 -26
- package/esm/domain/Phone/WebRTCPhone.js +87 -86
- package/esm/domain/__tests__/CallLog.test.js +1 -1
- package/esm/domain/__tests__/Contact.test.js +1 -1
- package/esm/index.js +356 -338
- package/esm/lib/WazoSessionDescriptionHandler.js +1 -1
- package/esm/service/CallApi.js +12 -12
- package/esm/service/IssueReporter.js +1 -1
- package/esm/service/__tests__/IssueReporter.test.js +1 -1
- package/esm/service/getApiClient.js +12 -12
- package/esm/simple/Auth.js +346 -328
- package/esm/simple/Configuration.js +346 -328
- package/esm/simple/Directory.js +12 -12
- package/esm/simple/Phone.js +346 -328
- package/esm/simple/Websocket.js +17 -17
- package/esm/simple/index.js +350 -332
- package/esm/simple/room/LocalParticipant.js +350 -332
- package/esm/simple/room/Participant.js +350 -332
- package/esm/simple/room/RemoteParticipant.js +350 -332
- package/esm/simple/room/Room.js +351 -333
- package/esm/simple/room/SipRoom.js +350 -332
- package/esm/simple/room/Stream.js +350 -332
- package/esm/simple/room/__tests__/RemoteParticipant.test.js +350 -332
- package/esm/simple/utils.js +350 -332
- package/esm/web-rtc-client.js +120 -103
- package/esm/websocket-client.js +15 -15
- package/lib/__tests__/api-client.test.js +12 -12
- package/lib/__tests__/web-rtc-client.test.js +120 -103
- package/lib/api/amid.js +1 -1
- package/lib/api/call-logd.js +2 -2
- 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 +12 -12
- package/lib/checker/Checker.js +145 -128
- package/lib/checker/checks/aor.js +12 -12
- package/lib/checker/checks/api.js +12 -12
- package/lib/checker/checks/index.js +135 -118
- package/lib/checker/checks/wazo-websocket.js +15 -15
- package/lib/checker/checks/webrtc-transport.js +120 -103
- package/lib/checker/checks/webrtc.js +120 -103
- package/lib/domain/AdHocAPIConference.js +12 -12
- package/lib/domain/CallLog.js +1 -1
- package/lib/domain/Contact.js +1 -1
- package/lib/domain/Features.js +12 -12
- package/lib/domain/Phone/CTIPhone.js +26 -26
- package/lib/domain/Phone/WebRTCPhone.js +87 -86
- package/lib/domain/__tests__/CallLog.test.js +1 -1
- package/lib/domain/__tests__/Contact.test.js +1 -1
- package/lib/index.js +356 -338
- package/lib/lib/WazoSessionDescriptionHandler.js +1 -1
- package/lib/service/CallApi.js +12 -12
- package/lib/service/IssueReporter.js +1 -1
- package/lib/service/__tests__/IssueReporter.test.js +1 -1
- package/lib/service/getApiClient.js +12 -12
- package/lib/simple/Auth.js +346 -328
- package/lib/simple/Configuration.js +346 -328
- package/lib/simple/Directory.js +12 -12
- package/lib/simple/Phone.js +346 -328
- package/lib/simple/Websocket.js +17 -17
- package/lib/simple/index.js +350 -332
- package/lib/simple/room/LocalParticipant.js +350 -332
- package/lib/simple/room/Participant.js +350 -332
- package/lib/simple/room/RemoteParticipant.js +350 -332
- package/lib/simple/room/Room.js +351 -333
- package/lib/simple/room/SipRoom.js +350 -332
- package/lib/simple/room/Stream.js +350 -332
- package/lib/simple/room/__tests__/RemoteParticipant.test.js +350 -332
- package/lib/simple/utils.js +350 -332
- package/lib/web-rtc-client.js +120 -103
- package/lib/websocket-client.js +15 -15
- package/package.json +1 -1
- package/src/domain/Phone/WebRTCPhone.js +3 -2
- package/src/web-rtc-client.js +27 -10
|
@@ -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 = IssueReporter$1 ? IssueReporter$1.loggerFor('api') : console;
|
|
669
|
+
const logger$1 = 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.info('A token is already refreshing, waiting ...', { url });
|
|
808
|
+
logger$1.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.warn('token expired', { error: err.reason });
|
|
828
|
+
logger$1.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.error('API error', error);
|
|
838
|
+
logger$1.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.error('Fetch failed', { url, options, message: error.message, stack: error.stack });
|
|
848
|
+
logger$1.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.info('refreshing token', { inProgress: !!this.refreshTokenPromise });
|
|
876
|
+
logger$1.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.info('token refreshed', { isTokenNotFound });
|
|
882
|
+
logger$1.info('token refreshed', { isTokenNotFound });
|
|
883
883
|
if (isTokenNotFound) {
|
|
884
884
|
const pathParts = path.split('/');
|
|
885
885
|
pathParts.pop();
|
|
@@ -3586,7 +3586,7 @@ const TRANSFER_FLOW_BLIND = 'blind';
|
|
|
3586
3586
|
|
|
3587
3587
|
// const MINIMUM_WAZO_ENGINE_VERSION_FOR_CTI_HOLD = '20.11';
|
|
3588
3588
|
|
|
3589
|
-
|
|
3589
|
+
IssueReporter$1 ? IssueReporter$1.loggerFor('cti-phone') : console;
|
|
3590
3590
|
|
|
3591
3591
|
/* */
|
|
3592
3592
|
|
|
@@ -4505,7 +4505,7 @@ const AGENTD_VERSION = '1.0';
|
|
|
4505
4505
|
const WEBHOOKD_VERSION = '1.0';
|
|
4506
4506
|
const AMID_VERSION = '1.0';
|
|
4507
4507
|
|
|
4508
|
-
const logger
|
|
4508
|
+
const logger = IssueReporter$1 ? IssueReporter$1.loggerFor('api') : console;
|
|
4509
4509
|
|
|
4510
4510
|
class ApiClient {
|
|
4511
4511
|
|
|
@@ -4557,12 +4557,12 @@ class ApiClient {
|
|
|
4557
4557
|
}
|
|
4558
4558
|
|
|
4559
4559
|
async forceRefreshToken() {
|
|
4560
|
-
logger
|
|
4560
|
+
logger.info('forcing refresh token, calling callback');
|
|
4561
4561
|
return this.refreshTokenCallback();
|
|
4562
4562
|
}
|
|
4563
4563
|
|
|
4564
4564
|
async refreshTokenCallback() {
|
|
4565
|
-
logger
|
|
4565
|
+
logger.info('refresh token callback called', {
|
|
4566
4566
|
refreshToken: this.refreshToken,
|
|
4567
4567
|
refreshBackend: this.refreshBackend,
|
|
4568
4568
|
refreshExpiration: this.refreshExpiration,
|
|
@@ -4580,7 +4580,7 @@ class ApiClient {
|
|
|
4580
4580
|
this.isMobile,
|
|
4581
4581
|
);
|
|
4582
4582
|
|
|
4583
|
-
logger
|
|
4583
|
+
logger.info('token refreshed', { token: session.token });
|
|
4584
4584
|
|
|
4585
4585
|
if (this.onRefreshToken) {
|
|
4586
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 = IssueReporter$1 ? IssueReporter$1.loggerFor('api') : console;
|
|
451
|
+
const logger$1 = 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.info('A token is already refreshing, waiting ...', { url });
|
|
590
|
+
logger$1.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.warn('token expired', { error: err.reason });
|
|
610
|
+
logger$1.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.error('API error', error);
|
|
620
|
+
logger$1.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.error('Fetch failed', { url, options, message: error.message, stack: error.stack });
|
|
630
|
+
logger$1.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.info('refreshing token', { inProgress: !!this.refreshTokenPromise });
|
|
658
|
+
logger$1.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.info('token refreshed', { isTokenNotFound });
|
|
664
|
+
logger$1.info('token refreshed', { isTokenNotFound });
|
|
665
665
|
if (isTokenNotFound) {
|
|
666
666
|
const pathParts = path.split('/');
|
|
667
667
|
pathParts.pop();
|
|
@@ -3588,7 +3588,7 @@ const TRANSFER_FLOW_BLIND = 'blind';
|
|
|
3588
3588
|
|
|
3589
3589
|
// const MINIMUM_WAZO_ENGINE_VERSION_FOR_CTI_HOLD = '20.11';
|
|
3590
3590
|
|
|
3591
|
-
|
|
3591
|
+
IssueReporter$1 ? IssueReporter$1.loggerFor('cti-phone') : console;
|
|
3592
3592
|
|
|
3593
3593
|
/* */
|
|
3594
3594
|
|
|
@@ -4507,7 +4507,7 @@ const AGENTD_VERSION = '1.0';
|
|
|
4507
4507
|
const WEBHOOKD_VERSION = '1.0';
|
|
4508
4508
|
const AMID_VERSION = '1.0';
|
|
4509
4509
|
|
|
4510
|
-
const logger
|
|
4510
|
+
const logger = IssueReporter$1 ? IssueReporter$1.loggerFor('api') : console;
|
|
4511
4511
|
|
|
4512
4512
|
class ApiClient {
|
|
4513
4513
|
|
|
@@ -4559,12 +4559,12 @@ class ApiClient {
|
|
|
4559
4559
|
}
|
|
4560
4560
|
|
|
4561
4561
|
async forceRefreshToken() {
|
|
4562
|
-
logger
|
|
4562
|
+
logger.info('forcing refresh token, calling callback');
|
|
4563
4563
|
return this.refreshTokenCallback();
|
|
4564
4564
|
}
|
|
4565
4565
|
|
|
4566
4566
|
async refreshTokenCallback() {
|
|
4567
|
-
logger
|
|
4567
|
+
logger.info('refresh token callback called', {
|
|
4568
4568
|
refreshToken: this.refreshToken,
|
|
4569
4569
|
refreshBackend: this.refreshBackend,
|
|
4570
4570
|
refreshExpiration: this.refreshExpiration,
|
|
@@ -4582,7 +4582,7 @@ class ApiClient {
|
|
|
4582
4582
|
this.isMobile,
|
|
4583
4583
|
);
|
|
4584
4584
|
|
|
4585
|
-
logger
|
|
4585
|
+
logger.info('token refreshed', { token: session.token });
|
|
4586
4586
|
|
|
4587
4587
|
if (this.onRefreshToken) {
|
|
4588
4588
|
this.onRefreshToken(session.token, session);
|
|
@@ -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 = IssueReporter$1 ? IssueReporter$1.loggerFor('api') : console;
|
|
2845
|
+
const logger$2 = 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.info('A token is already refreshing, waiting ...', { url });
|
|
2984
|
+
logger$2.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.warn('token expired', { error: err.reason });
|
|
3004
|
+
logger$2.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.error('API error', error);
|
|
3014
|
+
logger$2.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.error('Fetch failed', { url, options, message: error.message, stack: error.stack });
|
|
3024
|
+
logger$2.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.info('refreshing token', { inProgress: !!this.refreshTokenPromise });
|
|
3052
|
+
logger$2.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.info('token refreshed', { isTokenNotFound });
|
|
3058
|
+
logger$2.info('token refreshed', { isTokenNotFound });
|
|
3059
3059
|
if (isTokenNotFound) {
|
|
3060
3060
|
const pathParts = path.split('/');
|
|
3061
3061
|
pathParts.pop();
|
|
@@ -5143,7 +5143,7 @@ const TRANSFER_FLOW_BLIND = 'blind';
|
|
|
5143
5143
|
|
|
5144
5144
|
// const MINIMUM_WAZO_ENGINE_VERSION_FOR_CTI_HOLD = '20.11';
|
|
5145
5145
|
|
|
5146
|
-
const logger
|
|
5146
|
+
const logger = IssueReporter$1 ? IssueReporter$1.loggerFor('cti-phone') : console;
|
|
5147
5147
|
|
|
5148
5148
|
class CTIPhone extends Emitter {
|
|
5149
5149
|
|
|
@@ -5156,7 +5156,7 @@ class CTIPhone extends Emitter {
|
|
|
5156
5156
|
|
|
5157
5157
|
constructor(session , isMobile = false, callbackAllLines = false) {
|
|
5158
5158
|
super();
|
|
5159
|
-
logger
|
|
5159
|
+
logger.info('CTI Phone created');
|
|
5160
5160
|
this.session = session;
|
|
5161
5161
|
this.isMobile = isMobile;
|
|
5162
5162
|
this.callbackAllLines = callbackAllLines;
|
|
@@ -5217,7 +5217,7 @@ class CTIPhone extends Emitter {
|
|
|
5217
5217
|
}
|
|
5218
5218
|
|
|
5219
5219
|
async makeCall(number , line ) {
|
|
5220
|
-
logger
|
|
5220
|
+
logger.info('make CTI call', { number });
|
|
5221
5221
|
|
|
5222
5222
|
if (!number) {
|
|
5223
5223
|
return null;
|
|
@@ -5240,7 +5240,7 @@ class CTIPhone extends Emitter {
|
|
|
5240
5240
|
if (!callSession) {
|
|
5241
5241
|
return Promise.resolve(null);
|
|
5242
5242
|
}
|
|
5243
|
-
logger
|
|
5243
|
+
logger.info('accept CTI call', { callId: callSession.getId(), number: callSession.number });
|
|
5244
5244
|
|
|
5245
5245
|
if (!this.currentCall) {
|
|
5246
5246
|
this.currentCall = callSession.call;
|
|
@@ -5253,7 +5253,7 @@ class CTIPhone extends Emitter {
|
|
|
5253
5253
|
if (!callSession) {
|
|
5254
5254
|
return;
|
|
5255
5255
|
}
|
|
5256
|
-
logger
|
|
5256
|
+
logger.info('end current CTI call', { callId: callSession.getId(), number: callSession.number });
|
|
5257
5257
|
|
|
5258
5258
|
this.currentCall = undefined;
|
|
5259
5259
|
this.eventEmitter.emit('onCallEnded', callSession);
|
|
@@ -5263,7 +5263,7 @@ class CTIPhone extends Emitter {
|
|
|
5263
5263
|
if (!callSession) {
|
|
5264
5264
|
return Promise.resolve(false);
|
|
5265
5265
|
}
|
|
5266
|
-
logger
|
|
5266
|
+
logger.info('hangup CTI call', { callId: callSession.getId(), number: callSession.number });
|
|
5267
5267
|
|
|
5268
5268
|
try {
|
|
5269
5269
|
await CallApi.cancelCall(callSession);
|
|
@@ -5274,7 +5274,7 @@ class CTIPhone extends Emitter {
|
|
|
5274
5274
|
this.eventEmitter.emit('onCallEnded', callSession);
|
|
5275
5275
|
return true;
|
|
5276
5276
|
} catch (e) {
|
|
5277
|
-
logger
|
|
5277
|
+
logger.error('hangup CTI call, error', e);
|
|
5278
5278
|
|
|
5279
5279
|
this.eventEmitter.emit('onCallFailed', callSession);
|
|
5280
5280
|
return false;
|
|
@@ -5287,7 +5287,7 @@ class CTIPhone extends Emitter {
|
|
|
5287
5287
|
if (!callSession) {
|
|
5288
5288
|
return;
|
|
5289
5289
|
}
|
|
5290
|
-
logger
|
|
5290
|
+
logger.info('reject CTI call', { callId: callSession.getId(), number: callSession.number });
|
|
5291
5291
|
|
|
5292
5292
|
await CallApi.cancelCall(callSession);
|
|
5293
5293
|
this.eventEmitter.emit('onCallEnded', callSession);
|
|
@@ -5297,7 +5297,7 @@ class CTIPhone extends Emitter {
|
|
|
5297
5297
|
if (!callSession) {
|
|
5298
5298
|
return;
|
|
5299
5299
|
}
|
|
5300
|
-
logger
|
|
5300
|
+
logger.info('transfer CTI call', { callId: callSession.getId(), number: callSession.number, to: number });
|
|
5301
5301
|
|
|
5302
5302
|
await CallApi.transferCall(callSession.callId, number, TRANSFER_FLOW_BLIND);
|
|
5303
5303
|
}
|
|
@@ -5310,19 +5310,19 @@ class CTIPhone extends Emitter {
|
|
|
5310
5310
|
if (!callSession) {
|
|
5311
5311
|
return;
|
|
5312
5312
|
}
|
|
5313
|
-
logger
|
|
5313
|
+
logger.info('indirect CTI transfer', { callId: callSession.getId(), number: callSession.number, to: number });
|
|
5314
5314
|
|
|
5315
5315
|
return CallApi.transferCall(callSession.callId, number, TRANSFER_FLOW_ATTENDED);
|
|
5316
5316
|
}
|
|
5317
5317
|
|
|
5318
5318
|
async cancelCTIIndirectTransfer(transferId ) {
|
|
5319
|
-
logger
|
|
5319
|
+
logger.info('cancel CTI transfer', { transferId });
|
|
5320
5320
|
|
|
5321
5321
|
return CallApi.cancelCallTransfer(transferId);
|
|
5322
5322
|
}
|
|
5323
5323
|
|
|
5324
5324
|
async confirmCTIIndirectTransfer(transferId ) {
|
|
5325
|
-
logger
|
|
5325
|
+
logger.info('confirm CTI transfer', { transferId });
|
|
5326
5326
|
|
|
5327
5327
|
return CallApi.confirmCallTransfer(transferId);
|
|
5328
5328
|
}
|
|
@@ -5331,19 +5331,19 @@ class CTIPhone extends Emitter {
|
|
|
5331
5331
|
if (!callSession) {
|
|
5332
5332
|
return;
|
|
5333
5333
|
}
|
|
5334
|
-
logger
|
|
5334
|
+
logger.info('send CTI key', { callId: callSession.getId(), number: callSession.number, digits });
|
|
5335
5335
|
|
|
5336
5336
|
return CallApi.sendDTMF(callSession.callId, digits);
|
|
5337
5337
|
}
|
|
5338
5338
|
|
|
5339
5339
|
onConnectionMade() {
|
|
5340
|
-
logger
|
|
5340
|
+
logger.info('on CTI connection made');
|
|
5341
5341
|
|
|
5342
5342
|
this.eventEmitter.emit('onCallAccepted');
|
|
5343
5343
|
}
|
|
5344
5344
|
|
|
5345
5345
|
async close() {
|
|
5346
|
-
logger
|
|
5346
|
+
logger.info('CTI close');
|
|
5347
5347
|
|
|
5348
5348
|
return Promise.resolve();
|
|
5349
5349
|
}
|
|
@@ -5352,7 +5352,7 @@ class CTIPhone extends Emitter {
|
|
|
5352
5352
|
if (!callSession) {
|
|
5353
5353
|
return;
|
|
5354
5354
|
}
|
|
5355
|
-
logger
|
|
5355
|
+
logger.info('CTI hold', { callId: callSession.getId(), number: callSession.number });
|
|
5356
5356
|
|
|
5357
5357
|
return CallApi.hold(callSession.callId);
|
|
5358
5358
|
}
|
|
@@ -5361,7 +5361,7 @@ class CTIPhone extends Emitter {
|
|
|
5361
5361
|
if (!callSession) {
|
|
5362
5362
|
return;
|
|
5363
5363
|
}
|
|
5364
|
-
logger
|
|
5364
|
+
logger.info('CTI resume', { callId: callSession.getId(), number: callSession.number });
|
|
5365
5365
|
|
|
5366
5366
|
return CallApi.resume(callSession.callId);
|
|
5367
5367
|
}
|
|
@@ -5370,7 +5370,7 @@ class CTIPhone extends Emitter {
|
|
|
5370
5370
|
if (!callSession) {
|
|
5371
5371
|
return;
|
|
5372
5372
|
}
|
|
5373
|
-
logger
|
|
5373
|
+
logger.info('CTI mute', { callId: callSession.getId(), number: callSession.number });
|
|
5374
5374
|
|
|
5375
5375
|
return CallApi.mute(callSession.callId);
|
|
5376
5376
|
}
|
|
@@ -5379,7 +5379,7 @@ class CTIPhone extends Emitter {
|
|
|
5379
5379
|
if (!callSession) {
|
|
5380
5380
|
return;
|
|
5381
5381
|
}
|
|
5382
|
-
logger
|
|
5382
|
+
logger.info('CTI unmute', { callId: callSession.getId(), number: callSession.number });
|
|
5383
5383
|
|
|
5384
5384
|
return CallApi.unmute(callSession.callId);
|
|
5385
5385
|
}
|