@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
|
@@ -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]);
|
|
@@ -5631,6 +5665,7 @@ class Auth {
|
|
|
5631
5665
|
|
|
5632
5666
|
|
|
5633
5667
|
|
|
5668
|
+
|
|
5634
5669
|
|
|
5635
5670
|
|
|
5636
5671
|
|
|
@@ -5668,6 +5703,14 @@ class Auth {
|
|
|
5668
5703
|
this.onRefreshTokenCallback(token, session);
|
|
5669
5704
|
}
|
|
5670
5705
|
});
|
|
5706
|
+
|
|
5707
|
+
setOnRefreshTokenError(error => {
|
|
5708
|
+
logger$9.error('on refresh token error', error);
|
|
5709
|
+
|
|
5710
|
+
if (this.onRefreshTokenCallbackError) {
|
|
5711
|
+
this.onRefreshTokenCallbackError(error);
|
|
5712
|
+
}
|
|
5713
|
+
});
|
|
5671
5714
|
}
|
|
5672
5715
|
|
|
5673
5716
|
setFetchOptions(options ) {
|
|
@@ -5756,6 +5799,10 @@ class Auth {
|
|
|
5756
5799
|
this.onRefreshTokenCallback = callback;
|
|
5757
5800
|
}
|
|
5758
5801
|
|
|
5802
|
+
setOnRefreshTokenError(callback ) {
|
|
5803
|
+
this.onRefreshTokenCallbackError = callback;
|
|
5804
|
+
}
|
|
5805
|
+
|
|
5759
5806
|
checkAuthorizations(session , authorizationName ) {
|
|
5760
5807
|
if (!authorizationName) {
|
|
5761
5808
|
return;
|
|
@@ -5788,6 +5835,12 @@ class Auth {
|
|
|
5788
5835
|
setRefreshToken(refreshToken);
|
|
5789
5836
|
}
|
|
5790
5837
|
|
|
5838
|
+
setRefreshTenantId(refreshTenantId ) {
|
|
5839
|
+
setRefreshTenantId(refreshTenantId);
|
|
5840
|
+
|
|
5841
|
+
getApiClient().setRefreshTenantId(refreshTenantId);
|
|
5842
|
+
}
|
|
5843
|
+
|
|
5791
5844
|
forceRefreshToken() {
|
|
5792
5845
|
getApiClient().forceRefreshToken();
|
|
5793
5846
|
}
|
|
@@ -8735,11 +8788,14 @@ class WebRTCClient extends Emitter {
|
|
|
8735
8788
|
}
|
|
8736
8789
|
|
|
8737
8790
|
async _disconnectTransport(force = false) {
|
|
8738
|
-
if (force) {
|
|
8791
|
+
if (force && this.userAgent && this.userAgent.transport) {
|
|
8739
8792
|
// Bypass sip.js state machine that prevent to close WS with the state `Connecting`
|
|
8740
8793
|
this.userAgent.transport.disconnectResolve = () => {};
|
|
8741
|
-
|
|
8742
|
-
this.userAgent.transport._ws
|
|
8794
|
+
|
|
8795
|
+
if (this.userAgent.transport._ws) {
|
|
8796
|
+
this.userAgent.transport._ws.close(1000);
|
|
8797
|
+
}
|
|
8798
|
+
|
|
8743
8799
|
return;
|
|
8744
8800
|
}
|
|
8745
8801
|
|
|
@@ -9391,7 +9447,7 @@ class WebRTCPhone extends Emitter {
|
|
|
9391
9447
|
// When stopping screenshare and we had video before that, we have to re-upgrade
|
|
9392
9448
|
// When upgrading directly to screenshare (eg: we don't have a videoLocalStream to replace)
|
|
9393
9449
|
// We have to downgrade to audio.
|
|
9394
|
-
const screenshareStopped = this.currentScreenShare.
|
|
9450
|
+
const screenshareStopped = this.currentScreenShare.hadVideo;
|
|
9395
9451
|
const constraints = { audio: false, video: screenshareStopped };
|
|
9396
9452
|
|
|
9397
9453
|
// We have to remove the video sender to be able to re-upgrade to video in `sendReinvite` below
|
|
@@ -9835,7 +9891,7 @@ class WebRTCPhone extends Emitter {
|
|
|
9835
9891
|
|
|
9836
9892
|
logger$7.info('WebRTC hold sip session', { sipId: sipSession.id, hasVideo });
|
|
9837
9893
|
|
|
9838
|
-
// Stop
|
|
9894
|
+
// Stop screenshare if needed
|
|
9839
9895
|
if (this.currentScreenShare && this.currentScreenShare.sipSessionId === sessionId) {
|
|
9840
9896
|
this.lastScreenShare = this.currentScreenShare;
|
|
9841
9897
|
await this.stopScreenSharing(false, callSession);
|
|
@@ -10597,7 +10653,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10597
10653
|
endTime: fromSession ? fromSession.endTime : null,
|
|
10598
10654
|
answered: state === SessionState.Established,
|
|
10599
10655
|
paused: this.client.isCallHeld(sipSession),
|
|
10600
|
-
isCaller: 'incoming' in extra ? !extra.incoming : false,
|
|
10656
|
+
isCaller: fromSession ? fromSession.isCaller : ('incoming' in extra ? !extra.incoming : false),
|
|
10601
10657
|
cameraEnabled: fromSession ? fromSession.isCameraEnabled() : this.client.hasVideo(sessionId),
|
|
10602
10658
|
number,
|
|
10603
10659
|
ringing: false,
|
|
@@ -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]);
|
|
@@ -5631,6 +5665,7 @@ class Auth {
|
|
|
5631
5665
|
|
|
5632
5666
|
|
|
5633
5667
|
|
|
5668
|
+
|
|
5634
5669
|
|
|
5635
5670
|
|
|
5636
5671
|
|
|
@@ -5668,6 +5703,14 @@ class Auth {
|
|
|
5668
5703
|
this.onRefreshTokenCallback(token, session);
|
|
5669
5704
|
}
|
|
5670
5705
|
});
|
|
5706
|
+
|
|
5707
|
+
setOnRefreshTokenError(error => {
|
|
5708
|
+
logger$9.error('on refresh token error', error);
|
|
5709
|
+
|
|
5710
|
+
if (this.onRefreshTokenCallbackError) {
|
|
5711
|
+
this.onRefreshTokenCallbackError(error);
|
|
5712
|
+
}
|
|
5713
|
+
});
|
|
5671
5714
|
}
|
|
5672
5715
|
|
|
5673
5716
|
setFetchOptions(options ) {
|
|
@@ -5756,6 +5799,10 @@ class Auth {
|
|
|
5756
5799
|
this.onRefreshTokenCallback = callback;
|
|
5757
5800
|
}
|
|
5758
5801
|
|
|
5802
|
+
setOnRefreshTokenError(callback ) {
|
|
5803
|
+
this.onRefreshTokenCallbackError = callback;
|
|
5804
|
+
}
|
|
5805
|
+
|
|
5759
5806
|
checkAuthorizations(session , authorizationName ) {
|
|
5760
5807
|
if (!authorizationName) {
|
|
5761
5808
|
return;
|
|
@@ -5788,6 +5835,12 @@ class Auth {
|
|
|
5788
5835
|
setRefreshToken(refreshToken);
|
|
5789
5836
|
}
|
|
5790
5837
|
|
|
5838
|
+
setRefreshTenantId(refreshTenantId ) {
|
|
5839
|
+
setRefreshTenantId(refreshTenantId);
|
|
5840
|
+
|
|
5841
|
+
getApiClient().setRefreshTenantId(refreshTenantId);
|
|
5842
|
+
}
|
|
5843
|
+
|
|
5791
5844
|
forceRefreshToken() {
|
|
5792
5845
|
getApiClient().forceRefreshToken();
|
|
5793
5846
|
}
|
|
@@ -8735,11 +8788,14 @@ class WebRTCClient extends Emitter {
|
|
|
8735
8788
|
}
|
|
8736
8789
|
|
|
8737
8790
|
async _disconnectTransport(force = false) {
|
|
8738
|
-
if (force) {
|
|
8791
|
+
if (force && this.userAgent && this.userAgent.transport) {
|
|
8739
8792
|
// Bypass sip.js state machine that prevent to close WS with the state `Connecting`
|
|
8740
8793
|
this.userAgent.transport.disconnectResolve = () => {};
|
|
8741
|
-
|
|
8742
|
-
this.userAgent.transport._ws
|
|
8794
|
+
|
|
8795
|
+
if (this.userAgent.transport._ws) {
|
|
8796
|
+
this.userAgent.transport._ws.close(1000);
|
|
8797
|
+
}
|
|
8798
|
+
|
|
8743
8799
|
return;
|
|
8744
8800
|
}
|
|
8745
8801
|
|
|
@@ -9391,7 +9447,7 @@ class WebRTCPhone extends Emitter {
|
|
|
9391
9447
|
// When stopping screenshare and we had video before that, we have to re-upgrade
|
|
9392
9448
|
// When upgrading directly to screenshare (eg: we don't have a videoLocalStream to replace)
|
|
9393
9449
|
// We have to downgrade to audio.
|
|
9394
|
-
const screenshareStopped = this.currentScreenShare.
|
|
9450
|
+
const screenshareStopped = this.currentScreenShare.hadVideo;
|
|
9395
9451
|
const constraints = { audio: false, video: screenshareStopped };
|
|
9396
9452
|
|
|
9397
9453
|
// We have to remove the video sender to be able to re-upgrade to video in `sendReinvite` below
|
|
@@ -9835,7 +9891,7 @@ class WebRTCPhone extends Emitter {
|
|
|
9835
9891
|
|
|
9836
9892
|
logger$7.info('WebRTC hold sip session', { sipId: sipSession.id, hasVideo });
|
|
9837
9893
|
|
|
9838
|
-
// Stop
|
|
9894
|
+
// Stop screenshare if needed
|
|
9839
9895
|
if (this.currentScreenShare && this.currentScreenShare.sipSessionId === sessionId) {
|
|
9840
9896
|
this.lastScreenShare = this.currentScreenShare;
|
|
9841
9897
|
await this.stopScreenSharing(false, callSession);
|
|
@@ -10597,7 +10653,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10597
10653
|
endTime: fromSession ? fromSession.endTime : null,
|
|
10598
10654
|
answered: state === SessionState.Established,
|
|
10599
10655
|
paused: this.client.isCallHeld(sipSession),
|
|
10600
|
-
isCaller: 'incoming' in extra ? !extra.incoming : false,
|
|
10656
|
+
isCaller: fromSession ? fromSession.isCaller : ('incoming' in extra ? !extra.incoming : false),
|
|
10601
10657
|
cameraEnabled: fromSession ? fromSession.isCameraEnabled() : this.client.hasVideo(sessionId),
|
|
10602
10658
|
number,
|
|
10603
10659
|
ringing: false,
|
|
@@ -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]);
|
|
@@ -5631,6 +5665,7 @@ class Auth {
|
|
|
5631
5665
|
|
|
5632
5666
|
|
|
5633
5667
|
|
|
5668
|
+
|
|
5634
5669
|
|
|
5635
5670
|
|
|
5636
5671
|
|
|
@@ -5668,6 +5703,14 @@ class Auth {
|
|
|
5668
5703
|
this.onRefreshTokenCallback(token, session);
|
|
5669
5704
|
}
|
|
5670
5705
|
});
|
|
5706
|
+
|
|
5707
|
+
setOnRefreshTokenError(error => {
|
|
5708
|
+
logger$9.error('on refresh token error', error);
|
|
5709
|
+
|
|
5710
|
+
if (this.onRefreshTokenCallbackError) {
|
|
5711
|
+
this.onRefreshTokenCallbackError(error);
|
|
5712
|
+
}
|
|
5713
|
+
});
|
|
5671
5714
|
}
|
|
5672
5715
|
|
|
5673
5716
|
setFetchOptions(options ) {
|
|
@@ -5756,6 +5799,10 @@ class Auth {
|
|
|
5756
5799
|
this.onRefreshTokenCallback = callback;
|
|
5757
5800
|
}
|
|
5758
5801
|
|
|
5802
|
+
setOnRefreshTokenError(callback ) {
|
|
5803
|
+
this.onRefreshTokenCallbackError = callback;
|
|
5804
|
+
}
|
|
5805
|
+
|
|
5759
5806
|
checkAuthorizations(session , authorizationName ) {
|
|
5760
5807
|
if (!authorizationName) {
|
|
5761
5808
|
return;
|
|
@@ -5788,6 +5835,12 @@ class Auth {
|
|
|
5788
5835
|
setRefreshToken(refreshToken);
|
|
5789
5836
|
}
|
|
5790
5837
|
|
|
5838
|
+
setRefreshTenantId(refreshTenantId ) {
|
|
5839
|
+
setRefreshTenantId(refreshTenantId);
|
|
5840
|
+
|
|
5841
|
+
getApiClient().setRefreshTenantId(refreshTenantId);
|
|
5842
|
+
}
|
|
5843
|
+
|
|
5791
5844
|
forceRefreshToken() {
|
|
5792
5845
|
getApiClient().forceRefreshToken();
|
|
5793
5846
|
}
|
|
@@ -8735,11 +8788,14 @@ class WebRTCClient extends Emitter {
|
|
|
8735
8788
|
}
|
|
8736
8789
|
|
|
8737
8790
|
async _disconnectTransport(force = false) {
|
|
8738
|
-
if (force) {
|
|
8791
|
+
if (force && this.userAgent && this.userAgent.transport) {
|
|
8739
8792
|
// Bypass sip.js state machine that prevent to close WS with the state `Connecting`
|
|
8740
8793
|
this.userAgent.transport.disconnectResolve = () => {};
|
|
8741
|
-
|
|
8742
|
-
this.userAgent.transport._ws
|
|
8794
|
+
|
|
8795
|
+
if (this.userAgent.transport._ws) {
|
|
8796
|
+
this.userAgent.transport._ws.close(1000);
|
|
8797
|
+
}
|
|
8798
|
+
|
|
8743
8799
|
return;
|
|
8744
8800
|
}
|
|
8745
8801
|
|
|
@@ -9391,7 +9447,7 @@ class WebRTCPhone extends Emitter {
|
|
|
9391
9447
|
// When stopping screenshare and we had video before that, we have to re-upgrade
|
|
9392
9448
|
// When upgrading directly to screenshare (eg: we don't have a videoLocalStream to replace)
|
|
9393
9449
|
// We have to downgrade to audio.
|
|
9394
|
-
const screenshareStopped = this.currentScreenShare.
|
|
9450
|
+
const screenshareStopped = this.currentScreenShare.hadVideo;
|
|
9395
9451
|
const constraints = { audio: false, video: screenshareStopped };
|
|
9396
9452
|
|
|
9397
9453
|
// We have to remove the video sender to be able to re-upgrade to video in `sendReinvite` below
|
|
@@ -9835,7 +9891,7 @@ class WebRTCPhone extends Emitter {
|
|
|
9835
9891
|
|
|
9836
9892
|
logger$7.info('WebRTC hold sip session', { sipId: sipSession.id, hasVideo });
|
|
9837
9893
|
|
|
9838
|
-
// Stop
|
|
9894
|
+
// Stop screenshare if needed
|
|
9839
9895
|
if (this.currentScreenShare && this.currentScreenShare.sipSessionId === sessionId) {
|
|
9840
9896
|
this.lastScreenShare = this.currentScreenShare;
|
|
9841
9897
|
await this.stopScreenSharing(false, callSession);
|
|
@@ -10597,7 +10653,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10597
10653
|
endTime: fromSession ? fromSession.endTime : null,
|
|
10598
10654
|
answered: state === SessionState.Established,
|
|
10599
10655
|
paused: this.client.isCallHeld(sipSession),
|
|
10600
|
-
isCaller: 'incoming' in extra ? !extra.incoming : false,
|
|
10656
|
+
isCaller: fromSession ? fromSession.isCaller : ('incoming' in extra ? !extra.incoming : false),
|
|
10601
10657
|
cameraEnabled: fromSession ? fromSession.isCameraEnabled() : this.client.hasVideo(sessionId),
|
|
10602
10658
|
number,
|
|
10603
10659
|
ringing: false,
|