@wazo/sdk 0.37.39 → 0.37.42
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/README.md +2 -1
- package/dist/wazo-sdk.js +2 -2
- package/esm/__tests__/api-client.test.js +33 -15
- package/esm/__tests__/web-rtc-client.test.js +39 -18
- package/esm/api/auth.js +4 -1
- package/esm/api/ctid-ng.js +2 -0
- package/esm/api-client.js +33 -15
- package/esm/checker/Checker.js +39 -18
- package/esm/checker/checks/aor.js +33 -15
- package/esm/checker/checks/api.js +33 -15
- package/esm/checker/checks/index.js +39 -18
- package/esm/checker/checks/webrtc-transport.js +39 -18
- package/esm/checker/checks/webrtc.js +39 -18
- package/esm/domain/AdHocAPIConference.js +42 -16
- package/esm/domain/Features.js +42 -16
- package/esm/domain/Phone/CTIPhone.js +42 -16
- package/esm/domain/Phone/WebRTCPhone.js +5 -3
- package/esm/index.js +77 -21
- package/esm/service/CallApi.js +42 -16
- package/esm/service/getApiClient.js +51 -17
- package/esm/simple/Auth.js +77 -21
- package/esm/simple/Configuration.js +77 -21
- package/esm/simple/Directory.js +42 -16
- package/esm/simple/Phone.js +77 -21
- package/esm/simple/index.js +77 -21
- package/esm/simple/room/LocalParticipant.js +77 -21
- package/esm/simple/room/Participant.js +77 -21
- package/esm/simple/room/RemoteParticipant.js +77 -21
- package/esm/simple/room/Room.js +77 -21
- package/esm/simple/room/SipRoom.js +77 -21
- package/esm/simple/room/Stream.js +77 -21
- package/esm/simple/room/__tests__/RemoteParticipant.test.js +77 -21
- package/esm/simple/utils.js +77 -21
- package/esm/web-rtc-client.js +39 -18
- package/lib/__tests__/api-client.test.js +33 -15
- package/lib/__tests__/web-rtc-client.test.js +39 -18
- package/lib/api/auth.js +4 -1
- package/lib/api/ctid-ng.js +2 -0
- package/lib/api-client.js +33 -15
- package/lib/checker/Checker.js +39 -18
- package/lib/checker/checks/aor.js +33 -15
- package/lib/checker/checks/api.js +33 -15
- package/lib/checker/checks/index.js +39 -18
- package/lib/checker/checks/webrtc-transport.js +39 -18
- package/lib/checker/checks/webrtc.js +39 -18
- package/lib/domain/AdHocAPIConference.js +42 -16
- package/lib/domain/Features.js +42 -16
- package/lib/domain/Phone/CTIPhone.js +42 -16
- package/lib/domain/Phone/WebRTCPhone.js +5 -3
- package/lib/index.js +77 -21
- package/lib/service/CallApi.js +42 -16
- package/lib/service/getApiClient.js +52 -16
- package/lib/simple/Auth.js +77 -21
- package/lib/simple/Configuration.js +77 -21
- package/lib/simple/Directory.js +42 -16
- package/lib/simple/Phone.js +77 -21
- package/lib/simple/index.js +77 -21
- package/lib/simple/room/LocalParticipant.js +77 -21
- package/lib/simple/room/Participant.js +77 -21
- package/lib/simple/room/RemoteParticipant.js +77 -21
- package/lib/simple/room/Room.js +77 -21
- package/lib/simple/room/SipRoom.js +77 -21
- package/lib/simple/room/Stream.js +77 -21
- package/lib/simple/room/__tests__/RemoteParticipant.test.js +77 -21
- package/lib/simple/utils.js +77 -21
- package/lib/web-rtc-client.js +39 -18
- package/package.json +1 -1
- package/src/api/auth.js +4 -1
- package/src/api-client.js +26 -13
- package/src/domain/Phone/WebRTCPhone.js +3 -3
- package/src/service/getApiClient.js +19 -1
- package/src/simple/Auth.js +21 -0
- package/src/web-rtc-client.js +7 -4
package/esm/simple/Auth.js
CHANGED
|
@@ -2265,9 +2265,12 @@ var authMethods = (client , baseUrl ) => ({
|
|
|
2265
2265
|
expiration: expiration || DETAULT_EXPIRATION,
|
|
2266
2266
|
refresh_token: refreshToken,
|
|
2267
2267
|
client_id: client.clientId,
|
|
2268
|
-
tenant_id: tenantId,
|
|
2269
2268
|
};
|
|
2270
2269
|
|
|
2270
|
+
if (tenantId) {
|
|
2271
|
+
body.tenant_id = tenantId;
|
|
2272
|
+
}
|
|
2273
|
+
|
|
2271
2274
|
const headers = {
|
|
2272
2275
|
'Content-Type': 'application/json',
|
|
2273
2276
|
...(isMobile ? { 'Wazo-Session-Type': 'mobile' } : {}),
|
|
@@ -5415,6 +5418,7 @@ class ApiClient {
|
|
|
5415
5418
|
|
|
5416
5419
|
|
|
5417
5420
|
|
|
5421
|
+
|
|
5418
5422
|
|
|
5419
5423
|
|
|
5420
5424
|
|
|
@@ -5467,23 +5471,31 @@ class ApiClient {
|
|
|
5467
5471
|
return null;
|
|
5468
5472
|
}
|
|
5469
5473
|
|
|
5470
|
-
|
|
5471
|
-
this.refreshToken
|
|
5472
|
-
|
|
5473
|
-
|
|
5474
|
-
|
|
5475
|
-
|
|
5476
|
-
|
|
5474
|
+
try {
|
|
5475
|
+
const session = await this.auth.refreshToken(
|
|
5476
|
+
this.refreshToken,
|
|
5477
|
+
this.refreshBackend,
|
|
5478
|
+
this.refreshExpiration,
|
|
5479
|
+
this.isMobile,
|
|
5480
|
+
this.refreshTenantId,
|
|
5481
|
+
);
|
|
5477
5482
|
|
|
5478
|
-
|
|
5483
|
+
logger$a.info('token refreshed', { token: session.token });
|
|
5479
5484
|
|
|
5480
|
-
|
|
5481
|
-
|
|
5482
|
-
|
|
5485
|
+
if (this.onRefreshToken) {
|
|
5486
|
+
this.onRefreshToken(session.token, session);
|
|
5487
|
+
}
|
|
5483
5488
|
|
|
5484
|
-
|
|
5489
|
+
this.setToken(session.token);
|
|
5490
|
+
|
|
5491
|
+
return session.token;
|
|
5492
|
+
} catch (error) {
|
|
5493
|
+
logger$a.error('token refresh, error', error);
|
|
5485
5494
|
|
|
5486
|
-
|
|
5495
|
+
if (this.onRefreshTokenError) {
|
|
5496
|
+
this.onRefreshTokenError(error);
|
|
5497
|
+
}
|
|
5498
|
+
}
|
|
5487
5499
|
}
|
|
5488
5500
|
|
|
5489
5501
|
setToken(token ) {
|
|
@@ -5506,6 +5518,10 @@ class ApiClient {
|
|
|
5506
5518
|
this.onRefreshToken = onRefreshToken;
|
|
5507
5519
|
}
|
|
5508
5520
|
|
|
5521
|
+
setOnRefreshTokenError(callback ) {
|
|
5522
|
+
this.onRefreshTokenError = callback;
|
|
5523
|
+
}
|
|
5524
|
+
|
|
5509
5525
|
setRefreshExpiration(refreshExpiration ) {
|
|
5510
5526
|
this.refreshExpiration = refreshExpiration;
|
|
5511
5527
|
}
|
|
@@ -5541,7 +5557,9 @@ global.wazoClients = global.wazoClients || {};
|
|
|
5541
5557
|
global.wazoClientId = global.wazoClientId || {};
|
|
5542
5558
|
global.wazoClientToken = global.wazoClientToken || {};
|
|
5543
5559
|
global.wazoRefreshToken = global.wazoRefreshToken || {};
|
|
5560
|
+
global.wazoRefreshTenantId = global.wazoRefreshTenantId || {};
|
|
5544
5561
|
global.wazoOnRefreshToken = global.wazoOnRefreshToken || {};
|
|
5562
|
+
global.wazoOnRefreshTokenError = global.wazoOnRefreshTokenError || {};
|
|
5545
5563
|
global.wazoRefreshExpiration = global.wazoRefreshExpiration || {};
|
|
5546
5564
|
global.wazoRefreshBackend = global.wazoRefreshBackend || {};
|
|
5547
5565
|
global.wazoIsMobile = global.wazoIsMobile || {};
|
|
@@ -5563,10 +5581,18 @@ const setRefreshToken = (newRefreshToken , forServer = null) =>
|
|
|
5563
5581
|
global.wazoRefreshToken[forServer] = newRefreshToken;
|
|
5564
5582
|
};
|
|
5565
5583
|
|
|
5584
|
+
const setRefreshTenantId = (refreshTenantId , forServer = null) => {
|
|
5585
|
+
global.wazoRefreshTenantId[forServer] = refreshTenantId;
|
|
5586
|
+
};
|
|
5587
|
+
|
|
5566
5588
|
const setOnRefreshToken = (onRefreshToken , forServer = null) => {
|
|
5567
5589
|
global.wazoOnRefreshToken[forServer] = onRefreshToken;
|
|
5568
5590
|
};
|
|
5569
5591
|
|
|
5592
|
+
const setOnRefreshTokenError = (callback , forServer = null) => {
|
|
5593
|
+
global.wazoOnRefreshTokenError[forServer] = callback;
|
|
5594
|
+
};
|
|
5595
|
+
|
|
5570
5596
|
const setRefreshExpiration = (refreshExpiration , forServer = null) => {
|
|
5571
5597
|
global.wazoRefreshExpiration[forServer] = refreshExpiration;
|
|
5572
5598
|
};
|
|
@@ -5585,12 +5611,20 @@ const fillClient = (apiClient ) => {
|
|
|
5585
5611
|
|
|
5586
5612
|
apiClient.setRefreshToken(global.wazoRefreshToken[server] || global.wazoRefreshToken[null] || apiClient.refreshToken);
|
|
5587
5613
|
|
|
5614
|
+
apiClient.setRefreshTenantId(
|
|
5615
|
+
global.wazoRefreshTenantId[server] || global.wazoRefreshTenantId[null] || apiClient.refreshTenantId,
|
|
5616
|
+
);
|
|
5617
|
+
|
|
5588
5618
|
apiClient.setFetchOptions(global.wazoFetchOptions[server] || global.wazoFetchOptions[null] || apiClient.fetchOptions);
|
|
5589
5619
|
|
|
5590
5620
|
apiClient.setOnRefreshToken(
|
|
5591
5621
|
global.wazoOnRefreshToken[server] || global.wazoOnRefreshToken[null] || apiClient.onRefreshToken,
|
|
5592
5622
|
);
|
|
5593
5623
|
|
|
5624
|
+
apiClient.setOnRefreshTokenError(
|
|
5625
|
+
global.wazoOnRefreshTokenError[server] || global.wazoOnRefreshTokenError[null] || apiClient.onRefreshTokenError,
|
|
5626
|
+
);
|
|
5627
|
+
|
|
5594
5628
|
apiClient.setRefreshExpiration(
|
|
5595
5629
|
global.wazoRefreshExpiration[server] || global.wazoRefreshExpiration[null] || apiClient.refreshExpiration,
|
|
5596
5630
|
);
|
|
@@ -5604,7 +5638,7 @@ const fillClient = (apiClient ) => {
|
|
|
5604
5638
|
return apiClient;
|
|
5605
5639
|
};
|
|
5606
5640
|
|
|
5607
|
-
var getApiClient = (forServer
|
|
5641
|
+
var getApiClient = (forServer = null) => {
|
|
5608
5642
|
const server = forServer || global.wazoCurrentServer || '';
|
|
5609
5643
|
if (server in global.wazoClients) {
|
|
5610
5644
|
return fillClient(global.wazoClients[server]);
|
|
@@ -8453,11 +8487,14 @@ class WebRTCClient extends Emitter {
|
|
|
8453
8487
|
}
|
|
8454
8488
|
|
|
8455
8489
|
async _disconnectTransport(force = false) {
|
|
8456
|
-
if (force) {
|
|
8490
|
+
if (force && this.userAgent && this.userAgent.transport) {
|
|
8457
8491
|
// Bypass sip.js state machine that prevent to close WS with the state `Connecting`
|
|
8458
8492
|
this.userAgent.transport.disconnectResolve = () => {};
|
|
8459
|
-
|
|
8460
|
-
this.userAgent.transport._ws
|
|
8493
|
+
|
|
8494
|
+
if (this.userAgent.transport._ws) {
|
|
8495
|
+
this.userAgent.transport._ws.close(1000);
|
|
8496
|
+
}
|
|
8497
|
+
|
|
8461
8498
|
return;
|
|
8462
8499
|
}
|
|
8463
8500
|
|
|
@@ -9109,7 +9146,7 @@ class WebRTCPhone extends Emitter {
|
|
|
9109
9146
|
// When stopping screenshare and we had video before that, we have to re-upgrade
|
|
9110
9147
|
// When upgrading directly to screenshare (eg: we don't have a videoLocalStream to replace)
|
|
9111
9148
|
// We have to downgrade to audio.
|
|
9112
|
-
const screenshareStopped = this.currentScreenShare.
|
|
9149
|
+
const screenshareStopped = this.currentScreenShare.hadVideo;
|
|
9113
9150
|
const constraints = { audio: false, video: screenshareStopped };
|
|
9114
9151
|
|
|
9115
9152
|
// We have to remove the video sender to be able to re-upgrade to video in `sendReinvite` below
|
|
@@ -9553,7 +9590,7 @@ class WebRTCPhone extends Emitter {
|
|
|
9553
9590
|
|
|
9554
9591
|
logger$8.info('WebRTC hold sip session', { sipId: sipSession.id, hasVideo });
|
|
9555
9592
|
|
|
9556
|
-
// Stop
|
|
9593
|
+
// Stop screenshare if needed
|
|
9557
9594
|
if (this.currentScreenShare && this.currentScreenShare.sipSessionId === sessionId) {
|
|
9558
9595
|
this.lastScreenShare = this.currentScreenShare;
|
|
9559
9596
|
await this.stopScreenSharing(false, callSession);
|
|
@@ -10315,7 +10352,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10315
10352
|
endTime: fromSession ? fromSession.endTime : null,
|
|
10316
10353
|
answered: state === SessionState.Established,
|
|
10317
10354
|
paused: this.client.isCallHeld(sipSession),
|
|
10318
|
-
isCaller: 'incoming' in extra ? !extra.incoming : false,
|
|
10355
|
+
isCaller: fromSession ? fromSession.isCaller : ('incoming' in extra ? !extra.incoming : false),
|
|
10319
10356
|
cameraEnabled: fromSession ? fromSession.isCameraEnabled() : this.client.hasVideo(sessionId),
|
|
10320
10357
|
number,
|
|
10321
10358
|
ringing: false,
|
|
@@ -13715,6 +13752,7 @@ class Auth {
|
|
|
13715
13752
|
|
|
13716
13753
|
|
|
13717
13754
|
|
|
13755
|
+
|
|
13718
13756
|
|
|
13719
13757
|
|
|
13720
13758
|
|
|
@@ -13752,6 +13790,14 @@ class Auth {
|
|
|
13752
13790
|
this.onRefreshTokenCallback(token, session);
|
|
13753
13791
|
}
|
|
13754
13792
|
});
|
|
13793
|
+
|
|
13794
|
+
setOnRefreshTokenError(error => {
|
|
13795
|
+
logger.error('on refresh token error', error);
|
|
13796
|
+
|
|
13797
|
+
if (this.onRefreshTokenCallbackError) {
|
|
13798
|
+
this.onRefreshTokenCallbackError(error);
|
|
13799
|
+
}
|
|
13800
|
+
});
|
|
13755
13801
|
}
|
|
13756
13802
|
|
|
13757
13803
|
setFetchOptions(options ) {
|
|
@@ -13840,6 +13886,10 @@ class Auth {
|
|
|
13840
13886
|
this.onRefreshTokenCallback = callback;
|
|
13841
13887
|
}
|
|
13842
13888
|
|
|
13889
|
+
setOnRefreshTokenError(callback ) {
|
|
13890
|
+
this.onRefreshTokenCallbackError = callback;
|
|
13891
|
+
}
|
|
13892
|
+
|
|
13843
13893
|
checkAuthorizations(session , authorizationName ) {
|
|
13844
13894
|
if (!authorizationName) {
|
|
13845
13895
|
return;
|
|
@@ -13872,6 +13922,12 @@ class Auth {
|
|
|
13872
13922
|
setRefreshToken(refreshToken);
|
|
13873
13923
|
}
|
|
13874
13924
|
|
|
13925
|
+
setRefreshTenantId(refreshTenantId ) {
|
|
13926
|
+
setRefreshTenantId(refreshTenantId);
|
|
13927
|
+
|
|
13928
|
+
getApiClient().setRefreshTenantId(refreshTenantId);
|
|
13929
|
+
}
|
|
13930
|
+
|
|
13875
13931
|
forceRefreshToken() {
|
|
13876
13932
|
getApiClient().forceRefreshToken();
|
|
13877
13933
|
}
|
|
@@ -2265,9 +2265,12 @@ var authMethods = (client , baseUrl ) => ({
|
|
|
2265
2265
|
expiration: expiration || DETAULT_EXPIRATION,
|
|
2266
2266
|
refresh_token: refreshToken,
|
|
2267
2267
|
client_id: client.clientId,
|
|
2268
|
-
tenant_id: tenantId,
|
|
2269
2268
|
};
|
|
2270
2269
|
|
|
2270
|
+
if (tenantId) {
|
|
2271
|
+
body.tenant_id = tenantId;
|
|
2272
|
+
}
|
|
2273
|
+
|
|
2271
2274
|
const headers = {
|
|
2272
2275
|
'Content-Type': 'application/json',
|
|
2273
2276
|
...(isMobile ? { 'Wazo-Session-Type': 'mobile' } : {}),
|
|
@@ -5415,6 +5418,7 @@ class ApiClient {
|
|
|
5415
5418
|
|
|
5416
5419
|
|
|
5417
5420
|
|
|
5421
|
+
|
|
5418
5422
|
|
|
5419
5423
|
|
|
5420
5424
|
|
|
@@ -5467,23 +5471,31 @@ class ApiClient {
|
|
|
5467
5471
|
return null;
|
|
5468
5472
|
}
|
|
5469
5473
|
|
|
5470
|
-
|
|
5471
|
-
this.refreshToken
|
|
5472
|
-
|
|
5473
|
-
|
|
5474
|
-
|
|
5475
|
-
|
|
5476
|
-
|
|
5474
|
+
try {
|
|
5475
|
+
const session = await this.auth.refreshToken(
|
|
5476
|
+
this.refreshToken,
|
|
5477
|
+
this.refreshBackend,
|
|
5478
|
+
this.refreshExpiration,
|
|
5479
|
+
this.isMobile,
|
|
5480
|
+
this.refreshTenantId,
|
|
5481
|
+
);
|
|
5477
5482
|
|
|
5478
|
-
|
|
5483
|
+
logger$a.info('token refreshed', { token: session.token });
|
|
5479
5484
|
|
|
5480
|
-
|
|
5481
|
-
|
|
5482
|
-
|
|
5485
|
+
if (this.onRefreshToken) {
|
|
5486
|
+
this.onRefreshToken(session.token, session);
|
|
5487
|
+
}
|
|
5483
5488
|
|
|
5484
|
-
|
|
5489
|
+
this.setToken(session.token);
|
|
5490
|
+
|
|
5491
|
+
return session.token;
|
|
5492
|
+
} catch (error) {
|
|
5493
|
+
logger$a.error('token refresh, error', error);
|
|
5485
5494
|
|
|
5486
|
-
|
|
5495
|
+
if (this.onRefreshTokenError) {
|
|
5496
|
+
this.onRefreshTokenError(error);
|
|
5497
|
+
}
|
|
5498
|
+
}
|
|
5487
5499
|
}
|
|
5488
5500
|
|
|
5489
5501
|
setToken(token ) {
|
|
@@ -5506,6 +5518,10 @@ class ApiClient {
|
|
|
5506
5518
|
this.onRefreshToken = onRefreshToken;
|
|
5507
5519
|
}
|
|
5508
5520
|
|
|
5521
|
+
setOnRefreshTokenError(callback ) {
|
|
5522
|
+
this.onRefreshTokenError = callback;
|
|
5523
|
+
}
|
|
5524
|
+
|
|
5509
5525
|
setRefreshExpiration(refreshExpiration ) {
|
|
5510
5526
|
this.refreshExpiration = refreshExpiration;
|
|
5511
5527
|
}
|
|
@@ -5541,7 +5557,9 @@ global.wazoClients = global.wazoClients || {};
|
|
|
5541
5557
|
global.wazoClientId = global.wazoClientId || {};
|
|
5542
5558
|
global.wazoClientToken = global.wazoClientToken || {};
|
|
5543
5559
|
global.wazoRefreshToken = global.wazoRefreshToken || {};
|
|
5560
|
+
global.wazoRefreshTenantId = global.wazoRefreshTenantId || {};
|
|
5544
5561
|
global.wazoOnRefreshToken = global.wazoOnRefreshToken || {};
|
|
5562
|
+
global.wazoOnRefreshTokenError = global.wazoOnRefreshTokenError || {};
|
|
5545
5563
|
global.wazoRefreshExpiration = global.wazoRefreshExpiration || {};
|
|
5546
5564
|
global.wazoRefreshBackend = global.wazoRefreshBackend || {};
|
|
5547
5565
|
global.wazoIsMobile = global.wazoIsMobile || {};
|
|
@@ -5563,10 +5581,18 @@ const setRefreshToken = (newRefreshToken , forServer = null) =>
|
|
|
5563
5581
|
global.wazoRefreshToken[forServer] = newRefreshToken;
|
|
5564
5582
|
};
|
|
5565
5583
|
|
|
5584
|
+
const setRefreshTenantId = (refreshTenantId , forServer = null) => {
|
|
5585
|
+
global.wazoRefreshTenantId[forServer] = refreshTenantId;
|
|
5586
|
+
};
|
|
5587
|
+
|
|
5566
5588
|
const setOnRefreshToken = (onRefreshToken , forServer = null) => {
|
|
5567
5589
|
global.wazoOnRefreshToken[forServer] = onRefreshToken;
|
|
5568
5590
|
};
|
|
5569
5591
|
|
|
5592
|
+
const setOnRefreshTokenError = (callback , forServer = null) => {
|
|
5593
|
+
global.wazoOnRefreshTokenError[forServer] = callback;
|
|
5594
|
+
};
|
|
5595
|
+
|
|
5570
5596
|
const setRefreshExpiration = (refreshExpiration , forServer = null) => {
|
|
5571
5597
|
global.wazoRefreshExpiration[forServer] = refreshExpiration;
|
|
5572
5598
|
};
|
|
@@ -5585,12 +5611,20 @@ const fillClient = (apiClient ) => {
|
|
|
5585
5611
|
|
|
5586
5612
|
apiClient.setRefreshToken(global.wazoRefreshToken[server] || global.wazoRefreshToken[null] || apiClient.refreshToken);
|
|
5587
5613
|
|
|
5614
|
+
apiClient.setRefreshTenantId(
|
|
5615
|
+
global.wazoRefreshTenantId[server] || global.wazoRefreshTenantId[null] || apiClient.refreshTenantId,
|
|
5616
|
+
);
|
|
5617
|
+
|
|
5588
5618
|
apiClient.setFetchOptions(global.wazoFetchOptions[server] || global.wazoFetchOptions[null] || apiClient.fetchOptions);
|
|
5589
5619
|
|
|
5590
5620
|
apiClient.setOnRefreshToken(
|
|
5591
5621
|
global.wazoOnRefreshToken[server] || global.wazoOnRefreshToken[null] || apiClient.onRefreshToken,
|
|
5592
5622
|
);
|
|
5593
5623
|
|
|
5624
|
+
apiClient.setOnRefreshTokenError(
|
|
5625
|
+
global.wazoOnRefreshTokenError[server] || global.wazoOnRefreshTokenError[null] || apiClient.onRefreshTokenError,
|
|
5626
|
+
);
|
|
5627
|
+
|
|
5594
5628
|
apiClient.setRefreshExpiration(
|
|
5595
5629
|
global.wazoRefreshExpiration[server] || global.wazoRefreshExpiration[null] || apiClient.refreshExpiration,
|
|
5596
5630
|
);
|
|
@@ -5604,7 +5638,7 @@ const fillClient = (apiClient ) => {
|
|
|
5604
5638
|
return apiClient;
|
|
5605
5639
|
};
|
|
5606
5640
|
|
|
5607
|
-
var getApiClient = (forServer
|
|
5641
|
+
var getApiClient = (forServer = null) => {
|
|
5608
5642
|
const server = forServer || global.wazoCurrentServer || '';
|
|
5609
5643
|
if (server in global.wazoClients) {
|
|
5610
5644
|
return fillClient(global.wazoClients[server]);
|
|
@@ -8453,11 +8487,14 @@ class WebRTCClient extends Emitter {
|
|
|
8453
8487
|
}
|
|
8454
8488
|
|
|
8455
8489
|
async _disconnectTransport(force = false) {
|
|
8456
|
-
if (force) {
|
|
8490
|
+
if (force && this.userAgent && this.userAgent.transport) {
|
|
8457
8491
|
// Bypass sip.js state machine that prevent to close WS with the state `Connecting`
|
|
8458
8492
|
this.userAgent.transport.disconnectResolve = () => {};
|
|
8459
|
-
|
|
8460
|
-
this.userAgent.transport._ws
|
|
8493
|
+
|
|
8494
|
+
if (this.userAgent.transport._ws) {
|
|
8495
|
+
this.userAgent.transport._ws.close(1000);
|
|
8496
|
+
}
|
|
8497
|
+
|
|
8461
8498
|
return;
|
|
8462
8499
|
}
|
|
8463
8500
|
|
|
@@ -9109,7 +9146,7 @@ class WebRTCPhone extends Emitter {
|
|
|
9109
9146
|
// When stopping screenshare and we had video before that, we have to re-upgrade
|
|
9110
9147
|
// When upgrading directly to screenshare (eg: we don't have a videoLocalStream to replace)
|
|
9111
9148
|
// We have to downgrade to audio.
|
|
9112
|
-
const screenshareStopped = this.currentScreenShare.
|
|
9149
|
+
const screenshareStopped = this.currentScreenShare.hadVideo;
|
|
9113
9150
|
const constraints = { audio: false, video: screenshareStopped };
|
|
9114
9151
|
|
|
9115
9152
|
// We have to remove the video sender to be able to re-upgrade to video in `sendReinvite` below
|
|
@@ -9553,7 +9590,7 @@ class WebRTCPhone extends Emitter {
|
|
|
9553
9590
|
|
|
9554
9591
|
logger$8.info('WebRTC hold sip session', { sipId: sipSession.id, hasVideo });
|
|
9555
9592
|
|
|
9556
|
-
// Stop
|
|
9593
|
+
// Stop screenshare if needed
|
|
9557
9594
|
if (this.currentScreenShare && this.currentScreenShare.sipSessionId === sessionId) {
|
|
9558
9595
|
this.lastScreenShare = this.currentScreenShare;
|
|
9559
9596
|
await this.stopScreenSharing(false, callSession);
|
|
@@ -10315,7 +10352,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10315
10352
|
endTime: fromSession ? fromSession.endTime : null,
|
|
10316
10353
|
answered: state === SessionState.Established,
|
|
10317
10354
|
paused: this.client.isCallHeld(sipSession),
|
|
10318
|
-
isCaller: 'incoming' in extra ? !extra.incoming : false,
|
|
10355
|
+
isCaller: fromSession ? fromSession.isCaller : ('incoming' in extra ? !extra.incoming : false),
|
|
10319
10356
|
cameraEnabled: fromSession ? fromSession.isCameraEnabled() : this.client.hasVideo(sessionId),
|
|
10320
10357
|
number,
|
|
10321
10358
|
ringing: false,
|
|
@@ -13698,6 +13735,7 @@ class Auth {
|
|
|
13698
13735
|
|
|
13699
13736
|
|
|
13700
13737
|
|
|
13738
|
+
|
|
13701
13739
|
|
|
13702
13740
|
|
|
13703
13741
|
|
|
@@ -13735,6 +13773,14 @@ class Auth {
|
|
|
13735
13773
|
this.onRefreshTokenCallback(token, session);
|
|
13736
13774
|
}
|
|
13737
13775
|
});
|
|
13776
|
+
|
|
13777
|
+
setOnRefreshTokenError(error => {
|
|
13778
|
+
logger.error('on refresh token error', error);
|
|
13779
|
+
|
|
13780
|
+
if (this.onRefreshTokenCallbackError) {
|
|
13781
|
+
this.onRefreshTokenCallbackError(error);
|
|
13782
|
+
}
|
|
13783
|
+
});
|
|
13738
13784
|
}
|
|
13739
13785
|
|
|
13740
13786
|
setFetchOptions(options ) {
|
|
@@ -13823,6 +13869,10 @@ class Auth {
|
|
|
13823
13869
|
this.onRefreshTokenCallback = callback;
|
|
13824
13870
|
}
|
|
13825
13871
|
|
|
13872
|
+
setOnRefreshTokenError(callback ) {
|
|
13873
|
+
this.onRefreshTokenCallbackError = callback;
|
|
13874
|
+
}
|
|
13875
|
+
|
|
13826
13876
|
checkAuthorizations(session , authorizationName ) {
|
|
13827
13877
|
if (!authorizationName) {
|
|
13828
13878
|
return;
|
|
@@ -13855,6 +13905,12 @@ class Auth {
|
|
|
13855
13905
|
setRefreshToken(refreshToken);
|
|
13856
13906
|
}
|
|
13857
13907
|
|
|
13908
|
+
setRefreshTenantId(refreshTenantId ) {
|
|
13909
|
+
setRefreshTenantId(refreshTenantId);
|
|
13910
|
+
|
|
13911
|
+
getApiClient().setRefreshTenantId(refreshTenantId);
|
|
13912
|
+
}
|
|
13913
|
+
|
|
13858
13914
|
forceRefreshToken() {
|
|
13859
13915
|
getApiClient().forceRefreshToken();
|
|
13860
13916
|
}
|
package/esm/simple/Directory.js
CHANGED
|
@@ -2245,9 +2245,12 @@ var authMethods = (client , baseUrl ) => ({
|
|
|
2245
2245
|
expiration: expiration || DETAULT_EXPIRATION,
|
|
2246
2246
|
refresh_token: refreshToken,
|
|
2247
2247
|
client_id: client.clientId,
|
|
2248
|
-
tenant_id: tenantId,
|
|
2249
2248
|
};
|
|
2250
2249
|
|
|
2250
|
+
if (tenantId) {
|
|
2251
|
+
body.tenant_id = tenantId;
|
|
2252
|
+
}
|
|
2253
|
+
|
|
2251
2254
|
const headers = {
|
|
2252
2255
|
'Content-Type': 'application/json',
|
|
2253
2256
|
...(isMobile ? { 'Wazo-Session-Type': 'mobile' } : {}),
|
|
@@ -4566,6 +4569,7 @@ class ApiClient {
|
|
|
4566
4569
|
|
|
4567
4570
|
|
|
4568
4571
|
|
|
4572
|
+
|
|
4569
4573
|
|
|
4570
4574
|
|
|
4571
4575
|
|
|
@@ -4618,23 +4622,31 @@ class ApiClient {
|
|
|
4618
4622
|
return null;
|
|
4619
4623
|
}
|
|
4620
4624
|
|
|
4621
|
-
|
|
4622
|
-
this.refreshToken
|
|
4623
|
-
|
|
4624
|
-
|
|
4625
|
-
|
|
4626
|
-
|
|
4627
|
-
|
|
4628
|
-
|
|
4629
|
-
|
|
4625
|
+
try {
|
|
4626
|
+
const session = await this.auth.refreshToken(
|
|
4627
|
+
this.refreshToken,
|
|
4628
|
+
this.refreshBackend,
|
|
4629
|
+
this.refreshExpiration,
|
|
4630
|
+
this.isMobile,
|
|
4631
|
+
this.refreshTenantId,
|
|
4632
|
+
);
|
|
4633
|
+
|
|
4634
|
+
logger.info('token refreshed', { token: session.token });
|
|
4635
|
+
|
|
4636
|
+
if (this.onRefreshToken) {
|
|
4637
|
+
this.onRefreshToken(session.token, session);
|
|
4638
|
+
}
|
|
4630
4639
|
|
|
4631
|
-
|
|
4632
|
-
this.onRefreshToken(session.token, session);
|
|
4633
|
-
}
|
|
4640
|
+
this.setToken(session.token);
|
|
4634
4641
|
|
|
4635
|
-
|
|
4642
|
+
return session.token;
|
|
4643
|
+
} catch (error) {
|
|
4644
|
+
logger.error('token refresh, error', error);
|
|
4636
4645
|
|
|
4637
|
-
|
|
4646
|
+
if (this.onRefreshTokenError) {
|
|
4647
|
+
this.onRefreshTokenError(error);
|
|
4648
|
+
}
|
|
4649
|
+
}
|
|
4638
4650
|
}
|
|
4639
4651
|
|
|
4640
4652
|
setToken(token ) {
|
|
@@ -4657,6 +4669,10 @@ class ApiClient {
|
|
|
4657
4669
|
this.onRefreshToken = onRefreshToken;
|
|
4658
4670
|
}
|
|
4659
4671
|
|
|
4672
|
+
setOnRefreshTokenError(callback ) {
|
|
4673
|
+
this.onRefreshTokenError = callback;
|
|
4674
|
+
}
|
|
4675
|
+
|
|
4660
4676
|
setRefreshExpiration(refreshExpiration ) {
|
|
4661
4677
|
this.refreshExpiration = refreshExpiration;
|
|
4662
4678
|
}
|
|
@@ -4692,7 +4708,9 @@ global.wazoClients = global.wazoClients || {};
|
|
|
4692
4708
|
global.wazoClientId = global.wazoClientId || {};
|
|
4693
4709
|
global.wazoClientToken = global.wazoClientToken || {};
|
|
4694
4710
|
global.wazoRefreshToken = global.wazoRefreshToken || {};
|
|
4711
|
+
global.wazoRefreshTenantId = global.wazoRefreshTenantId || {};
|
|
4695
4712
|
global.wazoOnRefreshToken = global.wazoOnRefreshToken || {};
|
|
4713
|
+
global.wazoOnRefreshTokenError = global.wazoOnRefreshTokenError || {};
|
|
4696
4714
|
global.wazoRefreshExpiration = global.wazoRefreshExpiration || {};
|
|
4697
4715
|
global.wazoRefreshBackend = global.wazoRefreshBackend || {};
|
|
4698
4716
|
global.wazoIsMobile = global.wazoIsMobile || {};
|
|
@@ -4708,12 +4726,20 @@ const fillClient = (apiClient ) => {
|
|
|
4708
4726
|
|
|
4709
4727
|
apiClient.setRefreshToken(global.wazoRefreshToken[server] || global.wazoRefreshToken[null] || apiClient.refreshToken);
|
|
4710
4728
|
|
|
4729
|
+
apiClient.setRefreshTenantId(
|
|
4730
|
+
global.wazoRefreshTenantId[server] || global.wazoRefreshTenantId[null] || apiClient.refreshTenantId,
|
|
4731
|
+
);
|
|
4732
|
+
|
|
4711
4733
|
apiClient.setFetchOptions(global.wazoFetchOptions[server] || global.wazoFetchOptions[null] || apiClient.fetchOptions);
|
|
4712
4734
|
|
|
4713
4735
|
apiClient.setOnRefreshToken(
|
|
4714
4736
|
global.wazoOnRefreshToken[server] || global.wazoOnRefreshToken[null] || apiClient.onRefreshToken,
|
|
4715
4737
|
);
|
|
4716
4738
|
|
|
4739
|
+
apiClient.setOnRefreshTokenError(
|
|
4740
|
+
global.wazoOnRefreshTokenError[server] || global.wazoOnRefreshTokenError[null] || apiClient.onRefreshTokenError,
|
|
4741
|
+
);
|
|
4742
|
+
|
|
4717
4743
|
apiClient.setRefreshExpiration(
|
|
4718
4744
|
global.wazoRefreshExpiration[server] || global.wazoRefreshExpiration[null] || apiClient.refreshExpiration,
|
|
4719
4745
|
);
|
|
@@ -4727,7 +4753,7 @@ const fillClient = (apiClient ) => {
|
|
|
4727
4753
|
return apiClient;
|
|
4728
4754
|
};
|
|
4729
4755
|
|
|
4730
|
-
var getApiClient = (forServer
|
|
4756
|
+
var getApiClient = (forServer = null) => {
|
|
4731
4757
|
const server = forServer || global.wazoCurrentServer || '';
|
|
4732
4758
|
if (server in global.wazoClients) {
|
|
4733
4759
|
return fillClient(global.wazoClients[server]);
|