@wazo/sdk 0.37.40 → 0.37.43
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 +3 -3
- package/esm/__tests__/api-client.test.js +45 -22
- package/esm/__tests__/web-rtc-client.test.js +49 -24
- package/esm/api/agentd.js +12 -7
- package/esm/api/amid.js +12 -7
- package/esm/api/application.js +12 -7
- package/esm/api/auth.js +16 -8
- package/esm/api/call-logd.js +12 -7
- package/esm/api/calld.js +12 -7
- package/esm/api/chatd.js +12 -7
- package/esm/api/confd.js +12 -7
- package/esm/api/ctid-ng.js +14 -7
- package/esm/api/dird.js +12 -7
- package/esm/api/webhookd.js +12 -7
- package/esm/api-client.js +45 -22
- package/esm/checker/Checker.js +50 -25
- package/esm/checker/checks/aor.js +45 -22
- package/esm/checker/checks/api.js +45 -22
- package/esm/checker/checks/index.js +50 -25
- package/esm/checker/checks/wazo-websocket.js +13 -8
- package/esm/checker/checks/webrtc-transport.js +49 -24
- package/esm/checker/checks/webrtc.js +49 -24
- package/esm/domain/AdHocAPIConference.js +54 -23
- package/esm/domain/Features.js +54 -23
- package/esm/domain/Phone/CTIPhone.js +54 -23
- package/esm/domain/Phone/WebRTCPhone.js +18 -11
- package/esm/index.js +89 -29
- package/esm/lib/WazoSessionDescriptionHandler.js +12 -7
- package/esm/service/CallApi.js +54 -23
- package/esm/service/IssueReporter.js +12 -7
- package/esm/service/__tests__/IssueReporter.test.js +18 -7
- package/esm/service/getApiClient.js +63 -24
- package/esm/simple/Auth.js +89 -29
- package/esm/simple/Configuration.js +89 -29
- package/esm/simple/Directory.js +54 -23
- package/esm/simple/Phone.js +89 -29
- package/esm/simple/Websocket.js +13 -8
- package/esm/simple/index.js +89 -29
- package/esm/simple/room/LocalParticipant.js +89 -29
- package/esm/simple/room/Participant.js +89 -29
- package/esm/simple/room/RemoteParticipant.js +89 -29
- package/esm/simple/room/Room.js +89 -29
- package/esm/simple/room/SipRoom.js +89 -29
- package/esm/simple/room/Stream.js +89 -29
- package/esm/simple/room/__tests__/RemoteParticipant.test.js +89 -29
- package/esm/simple/utils.js +89 -29
- package/esm/utils/__tests__/api-requester.test.js +12 -7
- package/esm/utils/api-requester.js +12 -7
- package/esm/web-rtc-client.js +49 -24
- package/esm/websocket-client.js +13 -8
- package/lib/__tests__/api-client.test.js +45 -22
- package/lib/__tests__/web-rtc-client.test.js +49 -24
- package/lib/api/agentd.js +12 -7
- package/lib/api/amid.js +12 -7
- package/lib/api/application.js +12 -7
- package/lib/api/auth.js +16 -8
- package/lib/api/call-logd.js +12 -7
- package/lib/api/calld.js +12 -7
- package/lib/api/chatd.js +12 -7
- package/lib/api/confd.js +12 -7
- package/lib/api/ctid-ng.js +14 -7
- package/lib/api/dird.js +12 -7
- package/lib/api/webhookd.js +12 -7
- package/lib/api-client.js +45 -22
- package/lib/checker/Checker.js +50 -25
- package/lib/checker/checks/aor.js +45 -22
- package/lib/checker/checks/api.js +45 -22
- package/lib/checker/checks/index.js +50 -25
- package/lib/checker/checks/wazo-websocket.js +13 -8
- package/lib/checker/checks/webrtc-transport.js +49 -24
- package/lib/checker/checks/webrtc.js +49 -24
- package/lib/domain/AdHocAPIConference.js +54 -23
- package/lib/domain/Features.js +54 -23
- package/lib/domain/Phone/CTIPhone.js +54 -23
- package/lib/domain/Phone/WebRTCPhone.js +18 -11
- package/lib/index.js +89 -29
- package/lib/lib/WazoSessionDescriptionHandler.js +12 -7
- package/lib/service/CallApi.js +54 -23
- package/lib/service/IssueReporter.js +12 -7
- package/lib/service/__tests__/IssueReporter.test.js +18 -7
- package/lib/service/getApiClient.js +64 -23
- package/lib/simple/Auth.js +89 -29
- package/lib/simple/Configuration.js +89 -29
- package/lib/simple/Directory.js +54 -23
- package/lib/simple/Phone.js +89 -29
- package/lib/simple/Websocket.js +13 -8
- package/lib/simple/index.js +89 -29
- package/lib/simple/room/LocalParticipant.js +89 -29
- package/lib/simple/room/Participant.js +89 -29
- package/lib/simple/room/RemoteParticipant.js +89 -29
- package/lib/simple/room/Room.js +89 -29
- package/lib/simple/room/SipRoom.js +89 -29
- package/lib/simple/room/Stream.js +89 -29
- package/lib/simple/room/__tests__/RemoteParticipant.test.js +89 -29
- package/lib/simple/utils.js +89 -29
- package/lib/utils/__tests__/api-requester.test.js +12 -7
- package/lib/utils/api-requester.js +12 -7
- package/lib/web-rtc-client.js +49 -24
- package/lib/websocket-client.js +13 -8
- 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 +4 -4
- package/src/service/IssueReporter.js +12 -7
- package/src/service/__tests__/IssueReporter.test.js +6 -0
- package/src/service/getApiClient.js +19 -1
- package/src/simple/Auth.js +21 -0
- package/src/web-rtc-client.js +4 -2
- package/src/websocket-client.js +1 -1
|
@@ -716,13 +716,9 @@ class IssueReporter {
|
|
|
716
716
|
|
|
717
717
|
setTimeout(() => {
|
|
718
718
|
if (isArray) {
|
|
719
|
-
payload = payload.map(message =>
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
});
|
|
723
|
-
} else {
|
|
724
|
-
// $FlowFixMe
|
|
725
|
-
payload._retry = retry + 1;
|
|
719
|
+
payload = payload.map(message => this._writeRetryCount(message, retry + 1));
|
|
720
|
+
} else if (payload && typeof payload === 'object') {
|
|
721
|
+
payload = this._writeRetryCount(payload, retry + 1);
|
|
726
722
|
}
|
|
727
723
|
|
|
728
724
|
this._sendDebugToGrafana(payload, retry + 1);
|
|
@@ -730,6 +726,15 @@ class IssueReporter {
|
|
|
730
726
|
});
|
|
731
727
|
}
|
|
732
728
|
|
|
729
|
+
_writeRetryCount(message , count ) {
|
|
730
|
+
if (message && typeof message === 'object') {
|
|
731
|
+
// $FlowFixMe
|
|
732
|
+
message._retry = count;
|
|
733
|
+
}
|
|
734
|
+
|
|
735
|
+
return message;
|
|
736
|
+
}
|
|
737
|
+
|
|
733
738
|
_isLevelAbove(level1 , level2 ) {
|
|
734
739
|
const index1 = LOG_LEVELS.indexOf(level1);
|
|
735
740
|
const index2 = LOG_LEVELS.indexOf(level2);
|
|
@@ -2301,9 +2306,12 @@ var authMethods = (client , baseUrl ) => ({
|
|
|
2301
2306
|
expiration: expiration || DETAULT_EXPIRATION,
|
|
2302
2307
|
refresh_token: refreshToken,
|
|
2303
2308
|
client_id: client.clientId,
|
|
2304
|
-
tenant_id: tenantId,
|
|
2305
2309
|
};
|
|
2306
2310
|
|
|
2311
|
+
if (tenantId) {
|
|
2312
|
+
body.tenant_id = tenantId;
|
|
2313
|
+
}
|
|
2314
|
+
|
|
2307
2315
|
const headers = {
|
|
2308
2316
|
'Content-Type': 'application/json',
|
|
2309
2317
|
...(isMobile ? { 'Wazo-Session-Type': 'mobile' } : {}),
|
|
@@ -5425,6 +5433,7 @@ class ApiClient {
|
|
|
5425
5433
|
|
|
5426
5434
|
|
|
5427
5435
|
|
|
5436
|
+
|
|
5428
5437
|
|
|
5429
5438
|
|
|
5430
5439
|
|
|
@@ -5477,23 +5486,31 @@ class ApiClient {
|
|
|
5477
5486
|
return null;
|
|
5478
5487
|
}
|
|
5479
5488
|
|
|
5480
|
-
|
|
5481
|
-
this.refreshToken
|
|
5482
|
-
|
|
5483
|
-
|
|
5484
|
-
|
|
5485
|
-
|
|
5486
|
-
|
|
5489
|
+
try {
|
|
5490
|
+
const session = await this.auth.refreshToken(
|
|
5491
|
+
this.refreshToken,
|
|
5492
|
+
this.refreshBackend,
|
|
5493
|
+
this.refreshExpiration,
|
|
5494
|
+
this.isMobile,
|
|
5495
|
+
this.refreshTenantId,
|
|
5496
|
+
);
|
|
5487
5497
|
|
|
5488
|
-
|
|
5498
|
+
logger$a.info('token refreshed', { token: session.token });
|
|
5489
5499
|
|
|
5490
|
-
|
|
5491
|
-
|
|
5492
|
-
|
|
5500
|
+
if (this.onRefreshToken) {
|
|
5501
|
+
this.onRefreshToken(session.token, session);
|
|
5502
|
+
}
|
|
5493
5503
|
|
|
5494
|
-
|
|
5504
|
+
this.setToken(session.token);
|
|
5495
5505
|
|
|
5496
|
-
|
|
5506
|
+
return session.token;
|
|
5507
|
+
} catch (error) {
|
|
5508
|
+
logger$a.error('token refresh, error', error);
|
|
5509
|
+
|
|
5510
|
+
if (this.onRefreshTokenError) {
|
|
5511
|
+
this.onRefreshTokenError(error);
|
|
5512
|
+
}
|
|
5513
|
+
}
|
|
5497
5514
|
}
|
|
5498
5515
|
|
|
5499
5516
|
setToken(token ) {
|
|
@@ -5516,6 +5533,10 @@ class ApiClient {
|
|
|
5516
5533
|
this.onRefreshToken = onRefreshToken;
|
|
5517
5534
|
}
|
|
5518
5535
|
|
|
5536
|
+
setOnRefreshTokenError(callback ) {
|
|
5537
|
+
this.onRefreshTokenError = callback;
|
|
5538
|
+
}
|
|
5539
|
+
|
|
5519
5540
|
setRefreshExpiration(refreshExpiration ) {
|
|
5520
5541
|
this.refreshExpiration = refreshExpiration;
|
|
5521
5542
|
}
|
|
@@ -5551,7 +5572,9 @@ global.wazoClients = global.wazoClients || {};
|
|
|
5551
5572
|
global.wazoClientId = global.wazoClientId || {};
|
|
5552
5573
|
global.wazoClientToken = global.wazoClientToken || {};
|
|
5553
5574
|
global.wazoRefreshToken = global.wazoRefreshToken || {};
|
|
5575
|
+
global.wazoRefreshTenantId = global.wazoRefreshTenantId || {};
|
|
5554
5576
|
global.wazoOnRefreshToken = global.wazoOnRefreshToken || {};
|
|
5577
|
+
global.wazoOnRefreshTokenError = global.wazoOnRefreshTokenError || {};
|
|
5555
5578
|
global.wazoRefreshExpiration = global.wazoRefreshExpiration || {};
|
|
5556
5579
|
global.wazoRefreshBackend = global.wazoRefreshBackend || {};
|
|
5557
5580
|
global.wazoIsMobile = global.wazoIsMobile || {};
|
|
@@ -5573,10 +5596,18 @@ const setRefreshToken = (newRefreshToken , forServer = null) =>
|
|
|
5573
5596
|
global.wazoRefreshToken[forServer] = newRefreshToken;
|
|
5574
5597
|
};
|
|
5575
5598
|
|
|
5599
|
+
const setRefreshTenantId = (refreshTenantId , forServer = null) => {
|
|
5600
|
+
global.wazoRefreshTenantId[forServer] = refreshTenantId;
|
|
5601
|
+
};
|
|
5602
|
+
|
|
5576
5603
|
const setOnRefreshToken = (onRefreshToken , forServer = null) => {
|
|
5577
5604
|
global.wazoOnRefreshToken[forServer] = onRefreshToken;
|
|
5578
5605
|
};
|
|
5579
5606
|
|
|
5607
|
+
const setOnRefreshTokenError = (callback , forServer = null) => {
|
|
5608
|
+
global.wazoOnRefreshTokenError[forServer] = callback;
|
|
5609
|
+
};
|
|
5610
|
+
|
|
5580
5611
|
const setRefreshExpiration = (refreshExpiration , forServer = null) => {
|
|
5581
5612
|
global.wazoRefreshExpiration[forServer] = refreshExpiration;
|
|
5582
5613
|
};
|
|
@@ -5595,12 +5626,20 @@ const fillClient = (apiClient ) => {
|
|
|
5595
5626
|
|
|
5596
5627
|
apiClient.setRefreshToken(global.wazoRefreshToken[server] || global.wazoRefreshToken[null] || apiClient.refreshToken);
|
|
5597
5628
|
|
|
5629
|
+
apiClient.setRefreshTenantId(
|
|
5630
|
+
global.wazoRefreshTenantId[server] || global.wazoRefreshTenantId[null] || apiClient.refreshTenantId,
|
|
5631
|
+
);
|
|
5632
|
+
|
|
5598
5633
|
apiClient.setFetchOptions(global.wazoFetchOptions[server] || global.wazoFetchOptions[null] || apiClient.fetchOptions);
|
|
5599
5634
|
|
|
5600
5635
|
apiClient.setOnRefreshToken(
|
|
5601
5636
|
global.wazoOnRefreshToken[server] || global.wazoOnRefreshToken[null] || apiClient.onRefreshToken,
|
|
5602
5637
|
);
|
|
5603
5638
|
|
|
5639
|
+
apiClient.setOnRefreshTokenError(
|
|
5640
|
+
global.wazoOnRefreshTokenError[server] || global.wazoOnRefreshTokenError[null] || apiClient.onRefreshTokenError,
|
|
5641
|
+
);
|
|
5642
|
+
|
|
5604
5643
|
apiClient.setRefreshExpiration(
|
|
5605
5644
|
global.wazoRefreshExpiration[server] || global.wazoRefreshExpiration[null] || apiClient.refreshExpiration,
|
|
5606
5645
|
);
|
|
@@ -5614,7 +5653,7 @@ const fillClient = (apiClient ) => {
|
|
|
5614
5653
|
return apiClient;
|
|
5615
5654
|
};
|
|
5616
5655
|
|
|
5617
|
-
var getApiClient = (forServer
|
|
5656
|
+
var getApiClient = (forServer = null) => {
|
|
5618
5657
|
const server = forServer || global.wazoCurrentServer || '';
|
|
5619
5658
|
if (server in global.wazoClients) {
|
|
5620
5659
|
return fillClient(global.wazoClients[server]);
|
|
@@ -5641,6 +5680,7 @@ class Auth {
|
|
|
5641
5680
|
|
|
5642
5681
|
|
|
5643
5682
|
|
|
5683
|
+
|
|
5644
5684
|
|
|
5645
5685
|
|
|
5646
5686
|
|
|
@@ -5678,6 +5718,14 @@ class Auth {
|
|
|
5678
5718
|
this.onRefreshTokenCallback(token, session);
|
|
5679
5719
|
}
|
|
5680
5720
|
});
|
|
5721
|
+
|
|
5722
|
+
setOnRefreshTokenError(error => {
|
|
5723
|
+
logger$9.error('on refresh token error', error);
|
|
5724
|
+
|
|
5725
|
+
if (this.onRefreshTokenCallbackError) {
|
|
5726
|
+
this.onRefreshTokenCallbackError(error);
|
|
5727
|
+
}
|
|
5728
|
+
});
|
|
5681
5729
|
}
|
|
5682
5730
|
|
|
5683
5731
|
setFetchOptions(options ) {
|
|
@@ -5766,6 +5814,10 @@ class Auth {
|
|
|
5766
5814
|
this.onRefreshTokenCallback = callback;
|
|
5767
5815
|
}
|
|
5768
5816
|
|
|
5817
|
+
setOnRefreshTokenError(callback ) {
|
|
5818
|
+
this.onRefreshTokenCallbackError = callback;
|
|
5819
|
+
}
|
|
5820
|
+
|
|
5769
5821
|
checkAuthorizations(session , authorizationName ) {
|
|
5770
5822
|
if (!authorizationName) {
|
|
5771
5823
|
return;
|
|
@@ -5798,6 +5850,12 @@ class Auth {
|
|
|
5798
5850
|
setRefreshToken(refreshToken);
|
|
5799
5851
|
}
|
|
5800
5852
|
|
|
5853
|
+
setRefreshTenantId(refreshTenantId ) {
|
|
5854
|
+
setRefreshTenantId(refreshTenantId);
|
|
5855
|
+
|
|
5856
|
+
getApiClient().setRefreshTenantId(refreshTenantId);
|
|
5857
|
+
}
|
|
5858
|
+
|
|
5801
5859
|
forceRefreshToken() {
|
|
5802
5860
|
getApiClient().forceRefreshToken();
|
|
5803
5861
|
}
|
|
@@ -7432,8 +7490,10 @@ class WebRTCClient extends Emitter {
|
|
|
7432
7490
|
conference: isConference,
|
|
7433
7491
|
};
|
|
7434
7492
|
|
|
7435
|
-
// Avoid sdh to
|
|
7436
|
-
session.sessionDescriptionHandler
|
|
7493
|
+
// Avoid sdh to create a new stream
|
|
7494
|
+
if (session.sessionDescriptionHandler) {
|
|
7495
|
+
session.sessionDescriptionHandler.localMediaStreamConstraints = options.constraints;
|
|
7496
|
+
}
|
|
7437
7497
|
|
|
7438
7498
|
// Send re-INVITE
|
|
7439
7499
|
return session.invite(options);
|
|
@@ -9404,7 +9464,7 @@ class WebRTCPhone extends Emitter {
|
|
|
9404
9464
|
// When stopping screenshare and we had video before that, we have to re-upgrade
|
|
9405
9465
|
// When upgrading directly to screenshare (eg: we don't have a videoLocalStream to replace)
|
|
9406
9466
|
// We have to downgrade to audio.
|
|
9407
|
-
const screenshareStopped = this.currentScreenShare.
|
|
9467
|
+
const screenshareStopped = this.currentScreenShare.hadVideo;
|
|
9408
9468
|
const constraints = { audio: false, video: screenshareStopped };
|
|
9409
9469
|
|
|
9410
9470
|
// We have to remove the video sender to be able to re-upgrade to video in `sendReinvite` below
|
|
@@ -9848,7 +9908,7 @@ class WebRTCPhone extends Emitter {
|
|
|
9848
9908
|
|
|
9849
9909
|
logger$7.info('WebRTC hold sip session', { sipId: sipSession.id, hasVideo });
|
|
9850
9910
|
|
|
9851
|
-
// Stop
|
|
9911
|
+
// Stop screenshare if needed
|
|
9852
9912
|
if (this.currentScreenShare && this.currentScreenShare.sipSessionId === sessionId) {
|
|
9853
9913
|
this.lastScreenShare = this.currentScreenShare;
|
|
9854
9914
|
await this.stopScreenSharing(false, callSession);
|
|
@@ -10424,7 +10484,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10424
10484
|
});
|
|
10425
10485
|
|
|
10426
10486
|
this.client.on(this.client.DISCONNECTED, () => {
|
|
10427
|
-
logger$7.
|
|
10487
|
+
logger$7.info('WebRTC client disconnected');
|
|
10428
10488
|
|
|
10429
10489
|
this.eventEmitter.emit(ON_UNREGISTERED);
|
|
10430
10490
|
|
|
@@ -10610,7 +10670,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10610
10670
|
endTime: fromSession ? fromSession.endTime : null,
|
|
10611
10671
|
answered: state === sessionState.SessionState.Established,
|
|
10612
10672
|
paused: this.client.isCallHeld(sipSession),
|
|
10613
|
-
isCaller: 'incoming' in extra ? !extra.incoming : false,
|
|
10673
|
+
isCaller: fromSession ? fromSession.isCaller : ('incoming' in extra ? !extra.incoming : false),
|
|
10614
10674
|
cameraEnabled: fromSession ? fromSession.isCameraEnabled() : this.client.hasVideo(sessionId),
|
|
10615
10675
|
number,
|
|
10616
10676
|
ringing: false,
|
|
@@ -11444,7 +11504,7 @@ class WebSocketClient extends Emitter {
|
|
|
11444
11504
|
this.close();
|
|
11445
11505
|
}
|
|
11446
11506
|
const url = `wss://${this.host || ''}/api/websocketd/?token=${this.token || ''}&version=${this.version}`;
|
|
11447
|
-
logger$5.
|
|
11507
|
+
logger$5.info('Wazo WS url computed to reconnect', { url });
|
|
11448
11508
|
|
|
11449
11509
|
return url;
|
|
11450
11510
|
}
|
|
@@ -425,13 +425,9 @@ class IssueReporter {
|
|
|
425
425
|
|
|
426
426
|
setTimeout(() => {
|
|
427
427
|
if (isArray) {
|
|
428
|
-
payload = payload.map(message =>
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
});
|
|
432
|
-
} else {
|
|
433
|
-
// $FlowFixMe
|
|
434
|
-
payload._retry = retry + 1;
|
|
428
|
+
payload = payload.map(message => this._writeRetryCount(message, retry + 1));
|
|
429
|
+
} else if (payload && typeof payload === 'object') {
|
|
430
|
+
payload = this._writeRetryCount(payload, retry + 1);
|
|
435
431
|
}
|
|
436
432
|
|
|
437
433
|
this._sendDebugToGrafana(payload, retry + 1);
|
|
@@ -439,6 +435,15 @@ class IssueReporter {
|
|
|
439
435
|
});
|
|
440
436
|
}
|
|
441
437
|
|
|
438
|
+
_writeRetryCount(message , count ) {
|
|
439
|
+
if (message && typeof message === 'object') {
|
|
440
|
+
// $FlowFixMe
|
|
441
|
+
message._retry = count;
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
return message;
|
|
445
|
+
}
|
|
446
|
+
|
|
442
447
|
_isLevelAbove(level1 , level2 ) {
|
|
443
448
|
const index1 = LOG_LEVELS.indexOf(level1);
|
|
444
449
|
const index2 = LOG_LEVELS.indexOf(level2);
|
|
@@ -2275,9 +2280,12 @@ var authMethods = (client , baseUrl ) => ({
|
|
|
2275
2280
|
expiration: expiration || DETAULT_EXPIRATION,
|
|
2276
2281
|
refresh_token: refreshToken,
|
|
2277
2282
|
client_id: client.clientId,
|
|
2278
|
-
tenant_id: tenantId,
|
|
2279
2283
|
};
|
|
2280
2284
|
|
|
2285
|
+
if (tenantId) {
|
|
2286
|
+
body.tenant_id = tenantId;
|
|
2287
|
+
}
|
|
2288
|
+
|
|
2281
2289
|
const headers = {
|
|
2282
2290
|
'Content-Type': 'application/json',
|
|
2283
2291
|
...(isMobile ? { 'Wazo-Session-Type': 'mobile' } : {}),
|
|
@@ -5425,6 +5433,7 @@ class ApiClient {
|
|
|
5425
5433
|
|
|
5426
5434
|
|
|
5427
5435
|
|
|
5436
|
+
|
|
5428
5437
|
|
|
5429
5438
|
|
|
5430
5439
|
|
|
@@ -5477,23 +5486,31 @@ class ApiClient {
|
|
|
5477
5486
|
return null;
|
|
5478
5487
|
}
|
|
5479
5488
|
|
|
5480
|
-
|
|
5481
|
-
this.refreshToken
|
|
5482
|
-
|
|
5483
|
-
|
|
5484
|
-
|
|
5485
|
-
|
|
5486
|
-
|
|
5489
|
+
try {
|
|
5490
|
+
const session = await this.auth.refreshToken(
|
|
5491
|
+
this.refreshToken,
|
|
5492
|
+
this.refreshBackend,
|
|
5493
|
+
this.refreshExpiration,
|
|
5494
|
+
this.isMobile,
|
|
5495
|
+
this.refreshTenantId,
|
|
5496
|
+
);
|
|
5487
5497
|
|
|
5488
|
-
|
|
5498
|
+
logger$a.info('token refreshed', { token: session.token });
|
|
5489
5499
|
|
|
5490
|
-
|
|
5491
|
-
|
|
5492
|
-
|
|
5500
|
+
if (this.onRefreshToken) {
|
|
5501
|
+
this.onRefreshToken(session.token, session);
|
|
5502
|
+
}
|
|
5493
5503
|
|
|
5494
|
-
|
|
5504
|
+
this.setToken(session.token);
|
|
5495
5505
|
|
|
5496
|
-
|
|
5506
|
+
return session.token;
|
|
5507
|
+
} catch (error) {
|
|
5508
|
+
logger$a.error('token refresh, error', error);
|
|
5509
|
+
|
|
5510
|
+
if (this.onRefreshTokenError) {
|
|
5511
|
+
this.onRefreshTokenError(error);
|
|
5512
|
+
}
|
|
5513
|
+
}
|
|
5497
5514
|
}
|
|
5498
5515
|
|
|
5499
5516
|
setToken(token ) {
|
|
@@ -5516,6 +5533,10 @@ class ApiClient {
|
|
|
5516
5533
|
this.onRefreshToken = onRefreshToken;
|
|
5517
5534
|
}
|
|
5518
5535
|
|
|
5536
|
+
setOnRefreshTokenError(callback ) {
|
|
5537
|
+
this.onRefreshTokenError = callback;
|
|
5538
|
+
}
|
|
5539
|
+
|
|
5519
5540
|
setRefreshExpiration(refreshExpiration ) {
|
|
5520
5541
|
this.refreshExpiration = refreshExpiration;
|
|
5521
5542
|
}
|
|
@@ -5551,7 +5572,9 @@ global.wazoClients = global.wazoClients || {};
|
|
|
5551
5572
|
global.wazoClientId = global.wazoClientId || {};
|
|
5552
5573
|
global.wazoClientToken = global.wazoClientToken || {};
|
|
5553
5574
|
global.wazoRefreshToken = global.wazoRefreshToken || {};
|
|
5575
|
+
global.wazoRefreshTenantId = global.wazoRefreshTenantId || {};
|
|
5554
5576
|
global.wazoOnRefreshToken = global.wazoOnRefreshToken || {};
|
|
5577
|
+
global.wazoOnRefreshTokenError = global.wazoOnRefreshTokenError || {};
|
|
5555
5578
|
global.wazoRefreshExpiration = global.wazoRefreshExpiration || {};
|
|
5556
5579
|
global.wazoRefreshBackend = global.wazoRefreshBackend || {};
|
|
5557
5580
|
global.wazoIsMobile = global.wazoIsMobile || {};
|
|
@@ -5573,10 +5596,18 @@ const setRefreshToken = (newRefreshToken , forServer = null) =>
|
|
|
5573
5596
|
global.wazoRefreshToken[forServer] = newRefreshToken;
|
|
5574
5597
|
};
|
|
5575
5598
|
|
|
5599
|
+
const setRefreshTenantId = (refreshTenantId , forServer = null) => {
|
|
5600
|
+
global.wazoRefreshTenantId[forServer] = refreshTenantId;
|
|
5601
|
+
};
|
|
5602
|
+
|
|
5576
5603
|
const setOnRefreshToken = (onRefreshToken , forServer = null) => {
|
|
5577
5604
|
global.wazoOnRefreshToken[forServer] = onRefreshToken;
|
|
5578
5605
|
};
|
|
5579
5606
|
|
|
5607
|
+
const setOnRefreshTokenError = (callback , forServer = null) => {
|
|
5608
|
+
global.wazoOnRefreshTokenError[forServer] = callback;
|
|
5609
|
+
};
|
|
5610
|
+
|
|
5580
5611
|
const setRefreshExpiration = (refreshExpiration , forServer = null) => {
|
|
5581
5612
|
global.wazoRefreshExpiration[forServer] = refreshExpiration;
|
|
5582
5613
|
};
|
|
@@ -5595,12 +5626,20 @@ const fillClient = (apiClient ) => {
|
|
|
5595
5626
|
|
|
5596
5627
|
apiClient.setRefreshToken(global.wazoRefreshToken[server] || global.wazoRefreshToken[null] || apiClient.refreshToken);
|
|
5597
5628
|
|
|
5629
|
+
apiClient.setRefreshTenantId(
|
|
5630
|
+
global.wazoRefreshTenantId[server] || global.wazoRefreshTenantId[null] || apiClient.refreshTenantId,
|
|
5631
|
+
);
|
|
5632
|
+
|
|
5598
5633
|
apiClient.setFetchOptions(global.wazoFetchOptions[server] || global.wazoFetchOptions[null] || apiClient.fetchOptions);
|
|
5599
5634
|
|
|
5600
5635
|
apiClient.setOnRefreshToken(
|
|
5601
5636
|
global.wazoOnRefreshToken[server] || global.wazoOnRefreshToken[null] || apiClient.onRefreshToken,
|
|
5602
5637
|
);
|
|
5603
5638
|
|
|
5639
|
+
apiClient.setOnRefreshTokenError(
|
|
5640
|
+
global.wazoOnRefreshTokenError[server] || global.wazoOnRefreshTokenError[null] || apiClient.onRefreshTokenError,
|
|
5641
|
+
);
|
|
5642
|
+
|
|
5604
5643
|
apiClient.setRefreshExpiration(
|
|
5605
5644
|
global.wazoRefreshExpiration[server] || global.wazoRefreshExpiration[null] || apiClient.refreshExpiration,
|
|
5606
5645
|
);
|
|
@@ -5614,7 +5653,7 @@ const fillClient = (apiClient ) => {
|
|
|
5614
5653
|
return apiClient;
|
|
5615
5654
|
};
|
|
5616
5655
|
|
|
5617
|
-
var getApiClient = (forServer
|
|
5656
|
+
var getApiClient = (forServer = null) => {
|
|
5618
5657
|
const server = forServer || global.wazoCurrentServer || '';
|
|
5619
5658
|
if (server in global.wazoClients) {
|
|
5620
5659
|
return fillClient(global.wazoClients[server]);
|
|
@@ -5641,6 +5680,7 @@ class Auth {
|
|
|
5641
5680
|
|
|
5642
5681
|
|
|
5643
5682
|
|
|
5683
|
+
|
|
5644
5684
|
|
|
5645
5685
|
|
|
5646
5686
|
|
|
@@ -5678,6 +5718,14 @@ class Auth {
|
|
|
5678
5718
|
this.onRefreshTokenCallback(token, session);
|
|
5679
5719
|
}
|
|
5680
5720
|
});
|
|
5721
|
+
|
|
5722
|
+
setOnRefreshTokenError(error => {
|
|
5723
|
+
logger$9.error('on refresh token error', error);
|
|
5724
|
+
|
|
5725
|
+
if (this.onRefreshTokenCallbackError) {
|
|
5726
|
+
this.onRefreshTokenCallbackError(error);
|
|
5727
|
+
}
|
|
5728
|
+
});
|
|
5681
5729
|
}
|
|
5682
5730
|
|
|
5683
5731
|
setFetchOptions(options ) {
|
|
@@ -5766,6 +5814,10 @@ class Auth {
|
|
|
5766
5814
|
this.onRefreshTokenCallback = callback;
|
|
5767
5815
|
}
|
|
5768
5816
|
|
|
5817
|
+
setOnRefreshTokenError(callback ) {
|
|
5818
|
+
this.onRefreshTokenCallbackError = callback;
|
|
5819
|
+
}
|
|
5820
|
+
|
|
5769
5821
|
checkAuthorizations(session , authorizationName ) {
|
|
5770
5822
|
if (!authorizationName) {
|
|
5771
5823
|
return;
|
|
@@ -5798,6 +5850,12 @@ class Auth {
|
|
|
5798
5850
|
setRefreshToken(refreshToken);
|
|
5799
5851
|
}
|
|
5800
5852
|
|
|
5853
|
+
setRefreshTenantId(refreshTenantId ) {
|
|
5854
|
+
setRefreshTenantId(refreshTenantId);
|
|
5855
|
+
|
|
5856
|
+
getApiClient().setRefreshTenantId(refreshTenantId);
|
|
5857
|
+
}
|
|
5858
|
+
|
|
5801
5859
|
forceRefreshToken() {
|
|
5802
5860
|
getApiClient().forceRefreshToken();
|
|
5803
5861
|
}
|
|
@@ -7432,8 +7490,10 @@ class WebRTCClient extends Emitter {
|
|
|
7432
7490
|
conference: isConference,
|
|
7433
7491
|
};
|
|
7434
7492
|
|
|
7435
|
-
// Avoid sdh to
|
|
7436
|
-
session.sessionDescriptionHandler
|
|
7493
|
+
// Avoid sdh to create a new stream
|
|
7494
|
+
if (session.sessionDescriptionHandler) {
|
|
7495
|
+
session.sessionDescriptionHandler.localMediaStreamConstraints = options.constraints;
|
|
7496
|
+
}
|
|
7437
7497
|
|
|
7438
7498
|
// Send re-INVITE
|
|
7439
7499
|
return session.invite(options);
|
|
@@ -9404,7 +9464,7 @@ class WebRTCPhone extends Emitter {
|
|
|
9404
9464
|
// When stopping screenshare and we had video before that, we have to re-upgrade
|
|
9405
9465
|
// When upgrading directly to screenshare (eg: we don't have a videoLocalStream to replace)
|
|
9406
9466
|
// We have to downgrade to audio.
|
|
9407
|
-
const screenshareStopped = this.currentScreenShare.
|
|
9467
|
+
const screenshareStopped = this.currentScreenShare.hadVideo;
|
|
9408
9468
|
const constraints = { audio: false, video: screenshareStopped };
|
|
9409
9469
|
|
|
9410
9470
|
// We have to remove the video sender to be able to re-upgrade to video in `sendReinvite` below
|
|
@@ -9848,7 +9908,7 @@ class WebRTCPhone extends Emitter {
|
|
|
9848
9908
|
|
|
9849
9909
|
logger$7.info('WebRTC hold sip session', { sipId: sipSession.id, hasVideo });
|
|
9850
9910
|
|
|
9851
|
-
// Stop
|
|
9911
|
+
// Stop screenshare if needed
|
|
9852
9912
|
if (this.currentScreenShare && this.currentScreenShare.sipSessionId === sessionId) {
|
|
9853
9913
|
this.lastScreenShare = this.currentScreenShare;
|
|
9854
9914
|
await this.stopScreenSharing(false, callSession);
|
|
@@ -10424,7 +10484,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10424
10484
|
});
|
|
10425
10485
|
|
|
10426
10486
|
this.client.on(this.client.DISCONNECTED, () => {
|
|
10427
|
-
logger$7.
|
|
10487
|
+
logger$7.info('WebRTC client disconnected');
|
|
10428
10488
|
|
|
10429
10489
|
this.eventEmitter.emit(ON_UNREGISTERED);
|
|
10430
10490
|
|
|
@@ -10610,7 +10670,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10610
10670
|
endTime: fromSession ? fromSession.endTime : null,
|
|
10611
10671
|
answered: state === sessionState.SessionState.Established,
|
|
10612
10672
|
paused: this.client.isCallHeld(sipSession),
|
|
10613
|
-
isCaller: 'incoming' in extra ? !extra.incoming : false,
|
|
10673
|
+
isCaller: fromSession ? fromSession.isCaller : ('incoming' in extra ? !extra.incoming : false),
|
|
10614
10674
|
cameraEnabled: fromSession ? fromSession.isCameraEnabled() : this.client.hasVideo(sessionId),
|
|
10615
10675
|
number,
|
|
10616
10676
|
ringing: false,
|
|
@@ -11444,7 +11504,7 @@ class WebSocketClient extends Emitter {
|
|
|
11444
11504
|
this.close();
|
|
11445
11505
|
}
|
|
11446
11506
|
const url = `wss://${this.host || ''}/api/websocketd/?token=${this.token || ''}&version=${this.version}`;
|
|
11447
|
-
logger$5.
|
|
11507
|
+
logger$5.info('Wazo WS url computed to reconnect', { url });
|
|
11448
11508
|
|
|
11449
11509
|
return url;
|
|
11450
11510
|
}
|