@webex/plugin-meetings 2.60.1-next.6 → 2.60.1-next.8
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 +12 -0
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/constants.d.ts +14 -2
- package/dist/constants.js +18 -6
- package/dist/constants.js.map +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/index.d.ts +1 -1
- package/dist/locus-info/index.js +8 -8
- package/dist/locus-info/index.js.map +1 -1
- package/dist/meeting/index.d.ts +63 -19
- package/dist/meeting/index.js +703 -579
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/request.js +25 -18
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/util.d.ts +16 -0
- package/dist/meeting/util.js +71 -0
- package/dist/meeting/util.js.map +1 -1
- package/dist/meetings/index.d.ts +25 -3
- package/dist/meetings/index.js +83 -32
- package/dist/meetings/index.js.map +1 -1
- package/dist/reachability/index.js +11 -6
- package/dist/reachability/index.js.map +1 -1
- package/dist/reconnection-manager/index.js +3 -1
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/roap/index.js +50 -54
- package/dist/roap/index.js.map +1 -1
- package/dist/statsAnalyzer/index.js +1 -1
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +13 -10
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/webinar/index.js +1 -1
- package/package.json +22 -22
- package/src/constants.ts +15 -2
- package/src/locus-info/index.ts +13 -12
- package/src/meeting/index.ts +256 -130
- package/src/meeting/request.ts +7 -0
- package/src/meeting/util.ts +97 -0
- package/src/meetings/index.ts +59 -18
- package/src/reachability/index.ts +7 -4
- package/src/reconnection-manager/index.ts +1 -1
- package/src/roap/index.ts +49 -51
- package/src/statsAnalyzer/index.ts +2 -2
- package/src/statsAnalyzer/mqaUtil.ts +15 -14
- package/test/unit/spec/locus-info/index.js +53 -5
- package/test/unit/spec/meeting/index.js +1792 -1139
- package/test/unit/spec/meeting/request.js +22 -12
- package/test/unit/spec/meeting/utils.js +93 -0
- package/test/unit/spec/meetings/index.js +180 -21
- package/test/unit/spec/reachability/index.ts +2 -1
- package/test/unit/spec/reconnection-manager/index.js +1 -0
- package/test/unit/spec/roap/index.ts +28 -42
- package/test/unit/spec/stats-analyzer/index.js +415 -30
package/README.md
CHANGED
|
@@ -98,6 +98,8 @@ return webex.meetings.create(locusObj, 'LOCUS_ID').then((meeting) ==> {...});
|
|
|
98
98
|
|
|
99
99
|
We want to sync our meetings collection with the server.
|
|
100
100
|
|
|
101
|
+
To keep only Locus meetings with an locus url that is still active:
|
|
102
|
+
|
|
101
103
|
```js
|
|
102
104
|
let existingMeetings;
|
|
103
105
|
// Sync Meetings From Server
|
|
@@ -107,6 +109,16 @@ webex.meetings.syncMeetings().then(() => {
|
|
|
107
109
|
});
|
|
108
110
|
```
|
|
109
111
|
|
|
112
|
+
Or, to keep meetings with an locus url that is still active and any meeting without a locus url:
|
|
113
|
+
```js
|
|
114
|
+
let existingMeetings;
|
|
115
|
+
// Sync Meetings From Server
|
|
116
|
+
webex.meetings.syncMeetings({keepOnlyLocusMeetings: false}).then(() => {
|
|
117
|
+
// Existing meetings live in the meeting collection
|
|
118
|
+
existingMeetings = webex.meetings.getAllMeetings();
|
|
119
|
+
});
|
|
120
|
+
```
|
|
121
|
+
|
|
110
122
|
##### Get a Meeting
|
|
111
123
|
|
|
112
124
|
```js
|
package/dist/breakouts/index.js
CHANGED
|
@@ -1041,7 +1041,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
1041
1041
|
this.trigger(_constants.BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);
|
|
1042
1042
|
}
|
|
1043
1043
|
},
|
|
1044
|
-
version: "2.60.1-next.
|
|
1044
|
+
version: "2.60.1-next.8"
|
|
1045
1045
|
});
|
|
1046
1046
|
var _default = exports.default = Breakouts;
|
|
1047
1047
|
//# sourceMappingURL=index.js.map
|
package/dist/constants.d.ts
CHANGED
|
@@ -266,6 +266,7 @@ export declare const EVENT_TRIGGERS: {
|
|
|
266
266
|
MEETING_CONTROLS_VIDEO_UPDATED: string;
|
|
267
267
|
MEETING_LOCUS_URL_UPDATE: string;
|
|
268
268
|
MEETING_STREAM_PUBLISH_STATE_CHANGED: string;
|
|
269
|
+
MEETING_TRANSCRIPTION_CONNECTED: string;
|
|
269
270
|
MEETING_STARTED_RECEIVING_TRANSCRIPTION: string;
|
|
270
271
|
MEETING_STOPPED_RECEIVING_TRANSCRIPTION: string;
|
|
271
272
|
MEETING_CAPTION_RECEIVED: string;
|
|
@@ -445,6 +446,8 @@ export declare const LOCUS: {
|
|
|
445
446
|
INACTIVE: string;
|
|
446
447
|
ENDED: string;
|
|
447
448
|
INITIALIZING: string;
|
|
449
|
+
ACTIVE: string;
|
|
450
|
+
TERMINATING: string;
|
|
448
451
|
};
|
|
449
452
|
SEQUENCE: {
|
|
450
453
|
UN_DEF: string;
|
|
@@ -525,7 +528,6 @@ export declare const LOCUSINFO: {
|
|
|
525
528
|
CONTROLS_MEETING_CONTAINER_UPDATED: string;
|
|
526
529
|
CONTROLS_MEETING_INTERPRETATION_UPDATED: string;
|
|
527
530
|
CONTROLS_ENTRY_EXIT_TONE_UPDATED: string;
|
|
528
|
-
CONTROLS_JOIN_BREAKOUT_FROM_MAIN: string;
|
|
529
531
|
CONTROLS_MUTE_ON_ENTRY_CHANGED: string;
|
|
530
532
|
CONTROLS_SHARE_CONTROL_CHANGED: string;
|
|
531
533
|
CONTROLS_DISALLOW_UNMUTE_CHANGED: string;
|
|
@@ -774,6 +776,7 @@ export declare const SELF_ROLES: {
|
|
|
774
776
|
COHOST: string;
|
|
775
777
|
MODERATOR: string;
|
|
776
778
|
ATTENDEE: string;
|
|
779
|
+
PRESENTER: string;
|
|
777
780
|
};
|
|
778
781
|
export declare const MEETING_STATE: {
|
|
779
782
|
STATES: {
|
|
@@ -1020,7 +1023,7 @@ export declare const AVAILABLE_RESOLUTIONS: {
|
|
|
1020
1023
|
};
|
|
1021
1024
|
};
|
|
1022
1025
|
};
|
|
1023
|
-
export declare const
|
|
1026
|
+
export declare const MQA_INTERVAL = 60000;
|
|
1024
1027
|
export declare const MEDIA_DEVICES: {
|
|
1025
1028
|
MICROPHONE: string;
|
|
1026
1029
|
SPEAKER: string;
|
|
@@ -1068,6 +1071,15 @@ export declare const IP_VERSION: {
|
|
|
1068
1071
|
readonly only_ipv6: 6;
|
|
1069
1072
|
readonly ipv4_and_ipv6: 1;
|
|
1070
1073
|
};
|
|
1074
|
+
export declare const LOCAL_SHARE_ERRORS: {
|
|
1075
|
+
DEVICE_NOT_JOINED: string;
|
|
1076
|
+
UNDEFINED: string;
|
|
1077
|
+
NO_MEDIA_FOR_DEVICE: string;
|
|
1078
|
+
NO_CONFLUENCE_ID: string;
|
|
1079
|
+
CONTENT_SHARING_DISABLED: string;
|
|
1080
|
+
LOCUS_PARTICIPANT_DNE: string;
|
|
1081
|
+
CONTENT_REQUEST_WHILE_PENDING_WHITEBOARD: string;
|
|
1082
|
+
};
|
|
1071
1083
|
export type IP_VERSION = Enum<typeof IP_VERSION>;
|
|
1072
1084
|
export declare const MEETING_PERMISSION_TOKEN_REFRESH_THRESHOLD_IN_SEC = 30;
|
|
1073
1085
|
export declare const MEETING_PERMISSION_TOKEN_REFRESH_REASON = "ttl-join";
|
package/dist/constants.js
CHANGED
|
@@ -4,8 +4,8 @@ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/defi
|
|
|
4
4
|
_Object$defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.
|
|
8
|
-
exports._WEBEX_MEETING_ = exports._WAIT_ = exports._USER_ = exports._UNKNOWN_ = exports._S_LINE = exports._SLIDES_ = exports._SIP_URI_ = exports._SIP_BRIDGE_ = exports._SEND_RECEIVE_ = exports._SEND_ONLY_ = exports._ROOM_ = exports._RESOURCE_ROOM_ = exports._REQUESTED_ = exports._REMOVE_ = exports._RECEIVE_ONLY_ = exports._PERSONAL_ROOM_ = exports._PEOPLE_ = exports._OBSERVE_ = exports._NOT_IN_MEETING_ = exports._NONE_ = exports._MOVE_MEDIA_ = exports._MOVED_ = exports._MEETING_UUID_ = exports._MEETING_LINK_ = exports._MEETING_ID_ = exports._MEETING_CENTER_ = exports._MEETING_ = exports._LOCUS_ID_ = exports._LEFT_ = exports._JOIN_ = exports._JOINED_ = exports._IN_MEETING_ = exports._IN_LOBBY_ = exports._IN_ = exports._INCOMING_ = exports._INACTIVE_ = exports._ID_ = exports._IDLE_ = exports._FORCED_ = exports._ERROR_ = exports._CREATED_ = exports._CONVERSATION_URL_ = exports._CONFLICT_ = exports._CALL_ = exports._ANSWER_ = exports._ACTIVE_ = exports.WWW_DOT = exports.WHITEBOARD = exports.WEBEX_DOT_COM = exports.WBXAPPAPI_SERVICE = exports.VIDEO_STATUS = exports.VIDEO = exports.VALID_PMR_LINK = exports.VALID_PMR_ADDRESS = exports.VALID_PIN = exports.VALID_EMAIL_ADDRESS = exports.UUID_REG = exports.USE_URI_LOOKUP_FALSE = exports.TYPE = exports.STATS = exports.SIP_URI = exports.SHARE_STOPPED_REASON = exports.SHARE_STATUS = exports.SHARE_PEER_CONNECTION_NAME = exports.SHARE = exports.SEND_DTMF_ENDPOINT = exports.SENDRECV = exports.SELF_ROLES = exports.SELF_POLICY = exports.ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT = exports.ROAP = exports.RETRY_TIMEOUT = exports.RESOURCE = exports.REMOTE = exports.RECORDING_STATE = exports.RECONNECTION = exports.READY = exports.REACHABILITY = exports.QUALITY_LEVELS = exports.PSTN_STATUS = exports.PROVISIONAL_TYPE_DIAL_OUT = exports.PROVISIONAL_TYPE_DIAL_IN = exports.PEER_CONNECTION_STATE = exports.PASSWORD_STATUS = exports.PARTICIPANT_DELTAS = exports.PARTICIPANT = exports.ONLINE = void 0;
|
|
7
|
+
exports.NETWORK_TYPE = exports.NETWORK_STATUS = exports.MediaContent = exports.MQA_STATS = exports.MQA_INTERVAL = exports.MODERATOR_TRUE = exports.MODERATOR_FALSE = exports.MEET_M = exports.MEET_CO = exports.MEET_CISCO = exports.MEETING_VIDEO_STATE_MACHINE = exports.MEETING_STATE_MACHINE = exports.MEETING_STATE = exports.MEETING_REMOVED_REASON = exports.MEETING_PERMISSION_TOKEN_REFRESH_THRESHOLD_IN_SEC = exports.MEETING_PERMISSION_TOKEN_REFRESH_REASON = exports.MEETING_INFO_FAILURE_REASON = exports.MEETING_ERRORS = exports.MEETING_END_REASON = exports.MEETING_AUDIO_STATE_MACHINE = exports.MEETINGS = exports.MEETINGNUMBER = exports.MEETINGINFO = exports.MEET = exports.MEDIA_TRACK_CONSTRAINT = exports.MEDIA_STATE = exports.MEDIA_PEER_CONNECTION_NAME = exports.MEDIA_DEVICES = exports.MEDIA = exports.MAX_RANDOM_DELAY_FOR_MEETING_INFO = exports.LOCUS_URL = exports.LOCUSINFO = exports.LOCUSEVENT = exports.LOCUS = exports.LOCI = exports.LOCAL_SHARE_ERRORS = exports.LOCAL = exports.LIVE = exports.LEAVE = exports.LAYOUT_TYPES = exports.LANGUAGE_ENGLISH = exports.JOIN = exports.IP_VERSION = exports.IPV4_REGEX = exports.INTERSTITIAL_DISPLAY_HINTS = exports.INTERPRETATION = exports.INTENT_TO_JOIN = exports.ICE_TIMEOUT = exports.ICE_STATE = exports.ICE_GATHERING_STATE = exports.ICE_FAIL_TIMEOUT = exports.ICE_AND_DTLS_CONNECTION_TIMEOUT = exports.HTTP_VERBS = exports.HTTPS_PROTOCOL = exports.HOST = exports.HECATE = exports.GATHERING = exports.FULL_STATE = exports.FLOOR_ACTION = exports.EVENT_TYPES = exports.EVENT_TRIGGERS = exports.EVENTS = exports.ERROR_DICTIONARY = exports.ERROR = exports.ENDED = exports.END = exports.EMBEDDED_APP_TYPES = exports.DISPLAY_HINTS = exports.DIALER_REGEX = exports.DEVELOPMENT = exports.DEFAULT_MEETING_INFO_REQUEST_BODY = exports.DEFAULT_GET_STATS_FILTER = exports.DEFAULT_EXCLUDED_STATS = exports.DECLINE = exports.CORRELATION_ID = exports.CONVERSATION_URL = exports.CONVERSATION_SERVICE = exports.CONTROLS = exports.CONTENT = exports.CONNECTION_STATE = exports.COMPLETE = exports.CMR_MEETINGS = exports.CLAIM = exports.CALL_REMOVED_REASON = exports.CALL = exports.CALENDAR_EVENTS_API = exports.CALENDAR_EVENTS = exports.CALENDAR = exports.BREAKOUTS = exports.BNR_STATUS = exports.AVAILABLE_RESOLUTIONS = exports.AUDIO_STATUS = exports.AUDIO = exports.ASSIGN_ROLES_ERROR_CODES = exports.API = exports.ANSWER = exports.ANNOTATION = exports.ALTERNATE_REDIRECT_TRUE = exports.ALIAS = exports.ALERT = void 0;
|
|
8
|
+
exports._WEBEX_MEETING_ = exports._WAIT_ = exports._USER_ = exports._UNKNOWN_ = exports._S_LINE = exports._SLIDES_ = exports._SIP_URI_ = exports._SIP_BRIDGE_ = exports._SEND_RECEIVE_ = exports._SEND_ONLY_ = exports._ROOM_ = exports._RESOURCE_ROOM_ = exports._REQUESTED_ = exports._REMOVE_ = exports._RECEIVE_ONLY_ = exports._PERSONAL_ROOM_ = exports._PEOPLE_ = exports._OBSERVE_ = exports._NOT_IN_MEETING_ = exports._NONE_ = exports._MOVE_MEDIA_ = exports._MOVED_ = exports._MEETING_UUID_ = exports._MEETING_LINK_ = exports._MEETING_ID_ = exports._MEETING_CENTER_ = exports._MEETING_ = exports._LOCUS_ID_ = exports._LEFT_ = exports._JOIN_ = exports._JOINED_ = exports._IN_MEETING_ = exports._IN_LOBBY_ = exports._IN_ = exports._INCOMING_ = exports._INACTIVE_ = exports._ID_ = exports._IDLE_ = exports._FORCED_ = exports._ERROR_ = exports._CREATED_ = exports._CONVERSATION_URL_ = exports._CONFLICT_ = exports._CALL_ = exports._ANSWER_ = exports._ACTIVE_ = exports.WWW_DOT = exports.WHITEBOARD = exports.WEBEX_DOT_COM = exports.WBXAPPAPI_SERVICE = exports.VIDEO_STATUS = exports.VIDEO = exports.VALID_PMR_LINK = exports.VALID_PMR_ADDRESS = exports.VALID_PIN = exports.VALID_EMAIL_ADDRESS = exports.UUID_REG = exports.USE_URI_LOOKUP_FALSE = exports.TYPE = exports.STATS = exports.SIP_URI = exports.SHARE_STOPPED_REASON = exports.SHARE_STATUS = exports.SHARE_PEER_CONNECTION_NAME = exports.SHARE = exports.SEND_DTMF_ENDPOINT = exports.SENDRECV = exports.SELF_ROLES = exports.SELF_POLICY = exports.ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT = exports.ROAP = exports.RETRY_TIMEOUT = exports.RESOURCE = exports.REMOTE = exports.RECORDING_STATE = exports.RECONNECTION = exports.READY = exports.REACHABILITY = exports.QUALITY_LEVELS = exports.PSTN_STATUS = exports.PROVISIONAL_TYPE_DIAL_OUT = exports.PROVISIONAL_TYPE_DIAL_IN = exports.PEER_CONNECTION_STATE = exports.PASSWORD_STATUS = exports.PARTICIPANT_DELTAS = exports.PARTICIPANT = exports.ONLINE = exports.OFFLINE = void 0;
|
|
9
9
|
var _common = require("@webex/common");
|
|
10
10
|
// @ts-ignore
|
|
11
11
|
|
|
@@ -315,6 +315,7 @@ var EVENT_TRIGGERS = exports.EVENT_TRIGGERS = {
|
|
|
315
315
|
// Locus URL changed
|
|
316
316
|
MEETING_LOCUS_URL_UPDATE: 'meeting:locus:locusUrl:update',
|
|
317
317
|
MEETING_STREAM_PUBLISH_STATE_CHANGED: 'meeting:streamPublishStateChanged',
|
|
318
|
+
MEETING_TRANSCRIPTION_CONNECTED: 'meeting:transcription:connected',
|
|
318
319
|
MEETING_STARTED_RECEIVING_TRANSCRIPTION: 'meeting:receiveTranscription:started',
|
|
319
320
|
MEETING_STOPPED_RECEIVING_TRANSCRIPTION: 'meeting:receiveTranscription:stopped',
|
|
320
321
|
MEETING_CAPTION_RECEIVED: 'meeting:caption-received'
|
|
@@ -519,7 +520,9 @@ var LOCUS = exports.LOCUS = {
|
|
|
519
520
|
STATE: {
|
|
520
521
|
INACTIVE: 'INACTIVE',
|
|
521
522
|
ENDED: 'ENDED',
|
|
522
|
-
INITIALIZING: 'INITIALIZING'
|
|
523
|
+
INITIALIZING: 'INITIALIZING',
|
|
524
|
+
ACTIVE: 'ACTIVE',
|
|
525
|
+
TERMINATING: 'TERMINATING'
|
|
523
526
|
},
|
|
524
527
|
SEQUENCE: {
|
|
525
528
|
UN_DEF: 'undef',
|
|
@@ -600,7 +603,6 @@ var LOCUSINFO = exports.LOCUSINFO = {
|
|
|
600
603
|
CONTROLS_MEETING_CONTAINER_UPDATED: 'CONTROLS_MEETING_CONTAINER_UPDATED',
|
|
601
604
|
CONTROLS_MEETING_INTERPRETATION_UPDATED: 'CONTROLS_MEETING_INTERPRETATION_UPDATED',
|
|
602
605
|
CONTROLS_ENTRY_EXIT_TONE_UPDATED: 'CONTROLS_ENTRY_EXIT_TONE_UPDATED',
|
|
603
|
-
CONTROLS_JOIN_BREAKOUT_FROM_MAIN: 'CONTROLS_JOIN_BREAKOUT_FROM_MAIN',
|
|
604
606
|
CONTROLS_MUTE_ON_ENTRY_CHANGED: 'CONTROLS_MUTE_ON_ENTRY_CHANGED',
|
|
605
607
|
CONTROLS_SHARE_CONTROL_CHANGED: 'CONTROLS_SHARE_CONTROL_CHANGED',
|
|
606
608
|
CONTROLS_DISALLOW_UNMUTE_CHANGED: 'CONTROLS_DISALLOW_UNMUTE_CHANGED',
|
|
@@ -864,7 +866,8 @@ var INTERSTITIAL_DISPLAY_HINTS = exports.INTERSTITIAL_DISPLAY_HINTS = [DISPLAY_H
|
|
|
864
866
|
var SELF_ROLES = exports.SELF_ROLES = {
|
|
865
867
|
COHOST: 'COHOST',
|
|
866
868
|
MODERATOR: 'MODERATOR',
|
|
867
|
-
ATTENDEE: 'ATTENDEE'
|
|
869
|
+
ATTENDEE: 'ATTENDEE',
|
|
870
|
+
PRESENTER: 'PRESENTER'
|
|
868
871
|
};
|
|
869
872
|
var MEETING_STATE = exports.MEETING_STATE = {
|
|
870
873
|
STATES: {
|
|
@@ -1150,7 +1153,7 @@ var AVAILABLE_RESOLUTIONS = exports.AVAILABLE_RESOLUTIONS = {
|
|
|
1150
1153
|
* mqa Interval for sending stats metrics
|
|
1151
1154
|
*/
|
|
1152
1155
|
|
|
1153
|
-
var
|
|
1156
|
+
var MQA_INTERVAL = exports.MQA_INTERVAL = 60000; // mqa analyzer interval its fixed to 60000
|
|
1154
1157
|
|
|
1155
1158
|
var MEDIA_DEVICES = exports.MEDIA_DEVICES = {
|
|
1156
1159
|
MICROPHONE: 'microphone',
|
|
@@ -1217,6 +1220,15 @@ var IP_VERSION = exports.IP_VERSION = {
|
|
|
1217
1220
|
// we know we have ipv6, we don't know or we don't have ipv4
|
|
1218
1221
|
ipv4_and_ipv6: 1
|
|
1219
1222
|
};
|
|
1223
|
+
var LOCAL_SHARE_ERRORS = exports.LOCAL_SHARE_ERRORS = {
|
|
1224
|
+
DEVICE_NOT_JOINED: 'Floor requested but device not yet joined',
|
|
1225
|
+
UNDEFINED: 'undefined PUT',
|
|
1226
|
+
NO_MEDIA_FOR_DEVICE: 'No media session found for device',
|
|
1227
|
+
NO_CONFLUENCE_ID: 'Failed to request floor: 404 (null) could not find confluence id',
|
|
1228
|
+
CONTENT_SHARING_DISABLED: 'Content share policies are disabled',
|
|
1229
|
+
LOCUS_PARTICIPANT_DNE: 'does not exist in Locus',
|
|
1230
|
+
CONTENT_REQUEST_WHILE_PENDING_WHITEBOARD: 'Content share request is not allowed while whiteboard floor request is pending'
|
|
1231
|
+
};
|
|
1220
1232
|
// constant for if the permissionToken is about to expire in the next 30 seconds, refresh it
|
|
1221
1233
|
var MEETING_PERMISSION_TOKEN_REFRESH_THRESHOLD_IN_SEC = exports.MEETING_PERMISSION_TOKEN_REFRESH_THRESHOLD_IN_SEC = 30;
|
|
1222
1234
|
var MEETING_PERMISSION_TOKEN_REFRESH_REASON = exports.MEETING_PERMISSION_TOKEN_REFRESH_REASON = 'ttl-join';
|