File manager - Edit - /home/c14075/dragmet-ural.ru/www/bitrix/modules/im/install/js/im/application/conference/dist/conference.bundle.js.map
Back
{"version":3,"file":"conference.bundle.js","sources":["../src/utils/restclient.js","../src/controller.js"],"sourcesContent":["import { RestClient } from \"rest.client\";\nimport { Utils } from \"im.lib.utils\";\n\nconst RestAuth = Object.freeze({\n\tguest: 'guest',\n});\n\nexport class CallRestClient\n{\n\tconstructor(params)\n\t{\n\t\tthis.queryAuthRestore = false;\n\n\t\tthis.setAuthId(RestAuth.guest);\n\n\t\tthis.restClient = new RestClient({\n\t\t\tendpoint: params.endpoint,\n\t\t\tqueryParams: this.queryParams,\n\t\t\tcors: true\n\t\t});\n\t}\n\n\tsetAuthId(authId, customAuthId = '')\n\t{\n\t\tif (typeof this.queryParams !== 'object')\n\t\t{\n\t\t\tthis.queryParams = {};\n\t\t}\n\n\t\tif (\n\t\t\tauthId == RestAuth.guest\n\t\t\t|| typeof authId === 'string' && authId.match(/^[a-f0-9]{32}$/)\n\t\t)\n\t\t{\n\t\t\tthis.queryParams.call_auth_id = authId;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconsole.error(`%CallRestClient.setAuthId: auth is not correct (%c${authId}%c)`, \"color: black;\", \"font-weight: bold; color: red\", \"color: black\");\n\t\t\treturn false;\n\t\t}\n\n\t\tif (\n\t\t\tauthId == RestAuth.guest\n\t\t\t&& typeof customAuthId === 'string' && customAuthId.match(/^[a-f0-9]{32}$/)\n\t\t)\n\t\t{\n\t\t\tthis.queryParams.call_custom_auth_id = customAuthId;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tsetChatId(chatId)\n\t{\n\t\tif (typeof this.queryParams !== 'object')\n\t\t{\n\t\t\tthis.queryParams = {};\n\t\t}\n\n\t\tthis.queryParams.call_chat_id = chatId;\n\t}\n\n\tsetConfId(alias)\n\t{\n\t\tif (typeof this.queryParams !== 'object')\n\t\t{\n\t\t\tthis.queryParams = {};\n\t\t}\n\n\t\tthis.queryParams.videoconf_id = alias;\n\t}\n\n\tsetPassword(password)\n\t{\n\t\tif (typeof this.queryParams !== 'object')\n\t\t{\n\t\t\tthis.queryParams = {};\n\t\t}\n\n\t\tthis.queryParams.videoconf_password = password;\n\t}\n\n\tcallMethod(method, params, callback, sendCallback, logTag = null)\n\t{\n\t\tif (!logTag)\n\t\t{\n\t\t\tlogTag = Utils.getLogTrackingParams({\n\t\t\t\tname: method,\n\t\t\t});\n\t\t}\n\n\t\tconst promise = new BX.Promise();\n\n\t\t// TODO: Callbacks methods will not work!\n\t\tthis.restClient.callMethod(method, params, null, sendCallback, logTag).then(result => {\n\n\t\t\tthis.queryAuthRestore = false;\n\t\t\tpromise.fulfill(result);\n\n\t\t}).catch(result => {\n\n\t\t\tlet error = result.error();\n\t\t\tif (error.ex.error == 'LIVECHAT_AUTH_WIDGET_USER')\n\t\t\t{\n\t\t\t\tthis.setAuthId(error.ex.hash);\n\n\t\t\t\tif (method === RestMethod.widgetUserRegister)\n\t\t\t\t{\n\t\t\t\t\tconsole.warn(`BX.LiveChatRestClient: ${error.ex.error_description} (${error.ex.error})`);\n\n\t\t\t\t\tthis.queryAuthRestore = false;\n\t\t\t\t\tpromise.reject(result);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif (!this.queryAuthRestore)\n\t\t\t\t{\n\t\t\t\t\tconsole.warn('BX.LiveChatRestClient: your auth-token has expired, send query with a new token');\n\n\t\t\t\t\tthis.queryAuthRestore = true;\n\t\t\t\t\tthis.restClient.callMethod(method, params, null, sendCallback, logTag).then(result => {\n\t\t\t\t\t\tthis.queryAuthRestore = false;\n\t\t\t\t\t\tpromise.fulfill(result);\n\t\t\t\t\t}).catch(result => {\n\t\t\t\t\t\tthis.queryAuthRestore = false;\n\t\t\t\t\t\tpromise.reject(result);\n\t\t\t\t\t});\n\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.queryAuthRestore = false;\n\t\t\tpromise.reject(result);\n\t\t});\n\n\t\treturn promise;\n\t};\n\n\tcallBatch(calls, callback, bHaltOnError, sendCallback, logTag)\n\t{\n\t\tlet resultCallback = (result) => {\n\t\t\tlet error = null;\n\t\t\tfor (let method in calls)\n\t\t\t{\n\t\t\t\tif (!calls.hasOwnProperty(method))\n\t\t\t\t{\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tlet error = result[method].error();\n\t\t\t\tif (error && error.ex.error == 'LIVECHAT_AUTH_WIDGET_USER')\n\t\t\t\t{\n\t\t\t\t\tthis.setAuthId(error.ex.hash);\n\t\t\t\t\tif (method === RestMethod.widgetUserRegister)\n\t\t\t\t\t{\n\t\t\t\t\t\tconsole.warn(`BX.LiveChatRestClient: ${error.ex.error_description} (${error.ex.error})`);\n\n\t\t\t\t\t\tthis.queryAuthRestore = false;\n\t\t\t\t\t\tcallback(result);\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!this.queryAuthRestore)\n\t\t\t\t\t{\n\t\t\t\t\t\tconsole.warn('BX.LiveChatRestClient: your auth-token has expired, send query with a new token');\n\n\t\t\t\t\t\tthis.queryAuthRestore = true;\n\t\t\t\t\t\tthis.restClient.callBatch(calls, callback, bHaltOnError, sendCallback, logTag);\n\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.queryAuthRestore = false;\n\t\t\tcallback(result);\n\n\t\t\treturn true;\n\t\t};\n\n\t\treturn this.restClient.callBatch(calls, resultCallback, bHaltOnError, sendCallback, logTag);\n\t};\n}","/**\n * Bitrix Im\n * Conference application\n *\n * @package bitrix\n * @subpackage mobile\n * @copyright 2001-2021 Bitrix\n */\n\n// im\nimport 'im_call';\nimport 'im.debug';\nimport 'im.application.launch';\nimport 'im.component.conference.conference-public';\nimport { ConferenceModel, CallModel } from \"im.model\";\nimport { Controller } from 'im.controller';\nimport { Utils } from \"im.lib.utils\";\nimport { Cookie } from \"im.lib.cookie\";\nimport { LocalStorage } from \"im.lib.localstorage\";\nimport { Logger } from \"im.lib.logger\";\nimport { Clipboard } from 'im.lib.clipboard';\nimport { Desktop } from \"im.lib.desktop\";\nimport {\n\tEventType,\n\tConferenceErrorCode,\n\tConferenceRightPanelMode as RightPanelMode\n} from \"im.const\";\n\n//ui\nimport 'ui.notification';\nimport 'ui.buttons';\nimport 'ui.progressround';\nimport 'ui.viewer';\nimport { VueVendorV2 } from \"ui.vue\";\nimport { VuexBuilder } from \"ui.vue.vuex\";\n\n// core\nimport { Loc, Tag, Dom, Text } from \"main.core\";\nimport \"promise\";\nimport 'main.date';\nimport { EventEmitter } from 'main.core.events'\n\n// pull and rest\nimport { PullClient } from \"pull.client\";\nimport { ImCallPullHandler } from \"im.provider.pull\";\nimport { CallRestClient } from \"./utils/restclient\"\n\nclass ConferenceApplication\n{\n\t/* region 01. Initialize */\n\tconstructor(params = {})\n\t{\n\t\tthis.inited = false;\n\t\tthis.hardwareInited = false;\n\t\tthis.dialogInited = false;\n\t\tthis.initPromise = new BX.Promise;\n\n\t\tthis.params = params;\n\t\tthis.params.userId = this.params.userId? parseInt(this.params.userId): 0;\n\t\tthis.params.siteId = this.params.siteId || '';\n\t\tthis.params.chatId = this.params.chatId? parseInt(this.params.chatId): 0;\n\t\tthis.params.dialogId = this.params.chatId? 'chat'+this.params.chatId.toString(): '0';\n\t\tthis.params.passwordRequired = !!this.params.passwordRequired;\n\t\tthis.params.isBroadcast = !!this.params.isBroadcast;\n\n\t\tBX.Messenger.Lib.Logger.setConfig(params.loggerConfig);\n\n\t\tthis.messagesQueue = [];\n\n\t\tthis.template = null;\n\t\tthis.rootNode = this.params.node || document.createElement('div');\n\n\t\tthis.event = new VueVendorV2;\n\n\t\tthis.callContainer = null;\n\t\t// this.callView = null;\n\t\tthis.preCall = null;\n\t\tthis.currentCall = null;\n\t\tthis.videoStrategy = null;\n\t\tthis.callDetails = {};\n\t\tthis.showFeedback = true;\n\n\t\tthis.featureConfig = {};\n\t\t(params.featureConfig || []).forEach(limit => {\n\t\t\tthis.featureConfig[limit.id] = limit;\n\t\t});\n\n\t\tthis.localVideoStream = null;\n\n\t\tthis.conferencePageTagInterval = null;\n\n\t\tthis.onCallUserInvitedHandler = this.onCallUserInvited.bind(this);\n\t\tthis.onCallUserStateChangedHandler = this.onCallUserStateChanged.bind(this);\n\t\tthis.onCallUserMicrophoneStateHandler = this.onCallUserMicrophoneState.bind(this);\n\t\tthis.onCallUserCameraStateHandler = this.onCallUserCameraState.bind(this);\n\t\tthis.onCallUserVideoPausedHandler = this.onCallUserVideoPaused.bind(this);\n\t\tthis.onCallLocalMediaReceivedHandler = BX.debounce(this.onCallLocalMediaReceived.bind(this), 1000);\n\t\tthis.onCallRemoteMediaReceivedHandler = this.onCallRemoteMediaReceived.bind(this);\n\t\tthis.onCallRemoteMediaStoppedHandler = this.onCallRemoteMediaStopped.bind(this);\n\t\tthis.onCallUserVoiceStartedHandler = this.onCallUserVoiceStarted.bind(this);\n\t\tthis.onCallUserVoiceStoppedHandler = this.onCallUserVoiceStopped.bind(this);\n\t\tthis.onCallUserScreenStateHandler = this.onCallUserScreenState.bind(this);\n\t\tthis.onCallUserRecordStateHandler = this.onCallUserRecordState.bind(this);\n\t\tthis.onCallUserFloorRequestHandler = this.onCallUserFloorRequest.bind(this);\n\t\tthis.onMicrophoneLevelHandler = this.onMicrophoneLevel.bind(this);\n\t\tthis._onCallJoinHandler = this.onCallJoin.bind(this);\n\t\tthis.onCallLeaveHandler = this.onCallLeave.bind(this);\n\t\tthis.onCallDestroyHandler = this.onCallDestroy.bind(this);\n\t\tthis.onInputFocusHandler = this.onInputFocus.bind(this);\n\t\tthis.onInputBlurHandler = this.onInputBlur.bind(this);\n\n\t\tthis.onPreCallDestroyHandler = this.onPreCallDestroy.bind(this);\n\t\tthis.onPreCallUserStateChangedHandler = this.onPreCallUserStateChanged.bind(this);\n\n\t\tthis.waitingForCallStatus = false;\n\t\tthis.waitingForCallStatusTimeout = null;\n\t\tthis.callEventReceived = false;\n\t\tthis.callRecordState = BX.Call.View.RecordState.Stopped;\n\n\t\tthis.desktop = null;\n\t\tthis.floatingScreenShareWindow = null;\n\t\tthis.webScreenSharePopup = null;\n\n\t\tthis.mutePopup = null;\n\t\tthis.allowMutePopup = true;\n\n\t\tthis.initDesktopEvents()\n\t\t\t.then(() => this.initRestClient())\n\t\t\t.then(() => this.subscribePreCallChanges())\n\t\t\t.then(() => this.initPullClient())\n\t\t\t.then(() => this.initCore())\n\t\t\t.then(() => this.setModelData())\n\t\t\t.then(() => this.initComponent())\n\t\t\t.then(() => this.initCallInterface())\n\t\t\t.then(() => this.initHardware())\n\t\t\t.then(() => this.initUserComplete())\n\t\t\t.catch((error) => {\n\t\t\t\tconsole.error('Init error', error);\n\t\t\t})\n\t\t;\n\t}\n\t\t/* region 01. Initialize methods */\n\t\tinitDesktopEvents()\n\t\t{\n\t\t\tif (!Utils.platform.isBitrixDesktop())\n\t\t\t{\n\t\t\t\treturn new Promise((resolve, reject) => resolve());\n\t\t\t}\n\n\t\t\tthis.desktop = new Desktop();\n\t\t\tthis.floatingScreenShareWindow = new BX.Call.FloatingScreenShare({\n\t\t\t\tdesktop: this.desktop,\n\t\t\t\tonBackToCallClick: this.onFloatingScreenShareBackToCallClick.bind(this),\n\t\t\t\tonStopSharingClick: this.onFloatingScreenShareStopClick.bind(this),\n\t\t\t\tonChangeScreenClick: this.onFloatingScreenShareChangeScreenClick.bind(this)\n\t\t\t});\n\n\t\t\tif (this.floatingScreenShareWindow)\n\t\t\t{\n\t\t\t\tthis.desktop.addCustomEvent(\"BXScreenMediaSharing\", (id, title, x, y, width, height, app) =>\n\t\t\t\t{\n\t\t\t\t\tthis.floatingScreenShareWindow.setSharingData({\n\t\t\t\t\t\ttitle: title,\n\t\t\t\t\t\tx: x,\n\t\t\t\t\t\ty: y,\n\t\t\t\t\t\twidth: width,\n\t\t\t\t\t\theight: height,\n\t\t\t\t\t\tapp: app\n\t\t\t\t\t}).then(() => {\n\t\t\t\t\t\tthis.floatingScreenShareWindow.show();\n\t\t\t\t\t}).catch(error => {\n\t\t\t\t\t\tLogger.error('setSharingData error', error);\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\twindow.addEventListener('focus', () => {\n\t\t\t\t\tthis.onWindowFocus();\n\t\t\t\t});\n\n\t\t\t\twindow.addEventListener('blur', () => {\n\t\t\t\t\tthis.onWindowBlur();\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.desktop.addCustomEvent('bxImUpdateCounterMessage', (counter) =>\n\t\t\t{\n\t\t\t\tif (!this.controller)\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tthis.controller.getStore().commit('conference/common', {\n\t\t\t\t\tmessageCount: counter\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tEventEmitter.subscribe(EventType.textarea.focus, this.onInputFocusHandler);\n\t\t\tEventEmitter.subscribe(EventType.textarea.blur, this.onInputBlurHandler);\n\t\t\tEventEmitter.subscribe(EventType.conference.userRenameFocus, this.onInputFocusHandler);\n\t\t\tEventEmitter.subscribe(EventType.conference.userRenameBlur, this.onInputBlurHandler);\n\n\t\t\treturn new Promise((resolve, reject) => resolve());\n\t\t}\n\n\t\tinitRestClient()\n\t\t{\n\t\t\tthis.restClient = new CallRestClient({endpoint: this.getHost()+'/rest'});\n\t\t\tthis.restClient.setConfId(this.params.conferenceId);\n\n\t\t\treturn new Promise((resolve, reject) => resolve());\n\t\t}\n\n\t\tsubscribePreCallChanges()\n\t\t{\n\t\t\tBX.addCustomEvent(window, 'CallEvents::callCreated', this.onCallCreated.bind(this));\n\t\t}\n\n\t\tinitPullClient()\n\t\t{\n\t\t\tif (!this.params.isIntranetOrExtranet)\n\t\t\t{\n\t\t\t\tthis.pullClient = new PullClient({\n\t\t\t\t\tserverEnabled: true,\n\t\t\t\t\tuserId: this.params.userId,\n\t\t\t\t\tsiteId: this.params.siteId,\n\t\t\t\t\trestClient: this.restClient,\n\t\t\t\t\tskipStorageInit: true,\n\t\t\t\t\tconfigTimestamp: 0,\n\t\t\t\t\tskipCheckRevision: true,\n\t\t\t\t\tgetPublicListMethod: 'im.call.channel.public.list'\n\t\t\t\t});\n\n\t\t\t\treturn new Promise((resolve, reject) => resolve());\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.pullClient = BX.PULL;\n\n\t\t\t\treturn this.pullClient.start().then(() => {\n\t\t\t\t\treturn new Promise((resolve, reject) => resolve());\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tinitCore()\n\t\t{\n\t\t\tthis.controller = new Controller({\n\t\t\t\thost: this.getHost(),\n\t\t\t\tsiteId: this.params.siteId,\n\t\t\t\tuserId: this.params.userId,\n\t\t\t\tlanguageId: this.params.language,\n\t\t\t\tpull: {client: this.pullClient},\n\t\t\t\trest: {client: this.restClient},\n\t\t\t\tvuexBuilder: {\n\t\t\t\t\tdatabase: !Utils.browser.isIe(),\n\t\t\t\t\tdatabaseName: 'imol/call',\n\t\t\t\t\tdatabaseType: VuexBuilder.DatabaseType.localStorage,\n\t\t\t\t\tmodels: [\n\t\t\t\t\t\tConferenceModel.create(),\n\t\t\t\t\t\tCallModel.create()\n\t\t\t\t\t],\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tthis.controller.ready().then(() => resolve());\n\t\t\t});\n\t\t}\n\n\t\tsetModelData()\n\t\t{\n\t\t\tthis.controller.getStore().commit('application/set', {\n\t\t\t\tdialog: {\n\t\t\t\t\tchatId: this.getChatId(),\n\t\t\t\t\tdialogId: this.getDialogId()\n\t\t\t\t},\n\t\t\t\toptions: {\n\t\t\t\t\tdarkBackground: true\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t//set presenters ID list\n\t\t\tconst presentersIds = this.params.presenters.map(presenter => presenter['id']);\n\t\t\tthis.controller.getStore().dispatch('conference/setBroadcastMode', {broadcastMode: this.params.isBroadcast});\n\t\t\tthis.controller.getStore().dispatch('conference/setPresenters', {presenters: presentersIds});\n\n\t\t\t//set presenters info in users model\n\t\t\tthis.params.presenters.forEach(presenter => {\n\t\t\t\tthis.controller.getStore().dispatch('users/set', presenter);\n\t\t\t});\n\n\t\t\tif (this.params.passwordRequired)\n\t\t\t{\n\t\t\t\tthis.controller.getStore().commit('conference/common', {\n\t\t\t\t\tpassChecked: false,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (this.params.conferenceTitle)\n\t\t\t{\n\t\t\t\tthis.controller.getStore().dispatch('conference/setConferenceTitle', {\n\t\t\t\t\tconferenceTitle: this.params.conferenceTitle,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (this.params.alias)\n\t\t\t{\n\t\t\t\tthis.controller.getStore().commit('conference/setAlias', {\n\t\t\t\t\talias: this.params.alias,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn new Promise((resolve, reject) => resolve());\n\t\t}\n\n\t\tinitComponent()\n\t\t{\n\t\t\tif (this.getStartupErrorCode())\n\t\t\t{\n\t\t\t\tthis.setError(this.getStartupErrorCode());\n\t\t\t}\n\n\t\t\treturn new Promise((resolve, reject) =>\n\t\t\t{\n\t\t\t\tthis.controller.createVue(this, {\n\t\t\t\t\tel: this.rootNode,\n\t\t\t\t\tdata: () =>\n\t\t\t\t\t{\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tdialogId: this.getDialogId()\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t\ttemplate: `<bx-im-component-conference-public :dialogId=\"dialogId\"/>`,\n\t\t\t\t}).then(vue =>\n\t\t\t\t{\n\t\t\t\t\tthis.template = vue;\n\t\t\t\t\tresolve();\n\t\t\t\t}).catch(error => reject(error));\n\t\t\t});\n\t\t}\n\n\t\tinitCallInterface()\n\t\t{\n\t\t\treturn new Promise((resolve, reject) =>\n\t\t\t{\n\t\t\t\tthis.callContainer = document.getElementById('bx-im-component-call-container');\n\n\t\t\t\tlet hiddenButtons = ['document'];\n\t\t\t\tif (this.isViewerMode())\n\t\t\t\t{\n\t\t\t\t\thiddenButtons = ['camera', 'microphone', 'screen', 'record', 'floorRequest', 'document'];\n\t\t\t\t}\n\t\t\t\tif (!this.params.isIntranetOrExtranet)\n\t\t\t\t{\n\t\t\t\t\thiddenButtons.push('record');\n\t\t\t\t}\n\n\t\t\t\tthis.callView = new BX.Call.View({\n\t\t\t\t\tcontainer: this.callContainer,\n\t\t\t\t\tshowChatButtons: true,\n\t\t\t\t\tshowUsersButton: true,\n\t\t\t\t\tshowShareButton: this.getFeatureState('screenSharing') !== ConferenceApplication.FeatureState.Disabled,\n\t\t\t\t\tshowRecordButton: this.getFeatureState('record') !== ConferenceApplication.FeatureState.Disabled,\n\t\t\t\t\tuserLimit: BX.Call.Util.getUserLimit(),\n\t\t\t\t\tisIntranetOrExtranet: !!this.params.isIntranetOrExtranet,\n\t\t\t\t\tlanguage: this.params.language,\n\t\t\t\t\tlayout: Utils.device.isMobile() ? BX.Call.View.Layout.Mobile : BX.Call.View.Layout.Centered,\n\t\t\t\t\tuiState: BX.Call.View.UiState.Preparing,\n\t\t\t\t\tblockedButtons: ['camera', 'microphone', 'floorRequest', 'screen', 'record'],\n\t\t\t\t\tlocalUserState: BX.Call.UserState.Idle,\n\t\t\t\t\thiddenTopButtons: !this.isBroadcast() || this.getBroadcastPresenters().length > 1? []: ['grid'],\n\t\t\t\t\thiddenButtons: hiddenButtons,\n\t\t\t\t\tbroadcastingMode: this.isBroadcast(),\n\t\t\t\t\tbroadcastingPresenters: this.getBroadcastPresenters(),\n\t\t\t\t});\n\n\t\t\t\tthis.callView.subscribe(BX.Call.View.Event.onButtonClick, this.onCallButtonClick.bind(this));\n\t\t\t\tthis.callView.subscribe(BX.Call.View.Event.onReplaceCamera, this.onCallReplaceCamera.bind(this));\n\t\t\t\tthis.callView.subscribe(BX.Call.View.Event.onReplaceMicrophone, this.onCallReplaceMicrophone.bind(this));\n\t\t\t\tthis.callView.subscribe(BX.Call.View.Event.onReplaceSpeaker, this.onCallReplaceSpeaker.bind(this));\n\t\t\t\tthis.callView.subscribe(BX.Call.View.Event.onChangeHdVideo, this.onCallViewChangeHdVideo.bind(this));\n\t\t\t\tthis.callView.subscribe(BX.Call.View.Event.onChangeMicAutoParams, this.onCallViewChangeMicAutoParams.bind(this));\n\t\t\t\tthis.callView.subscribe(BX.Call.View.Event.onChangeFaceImprove, this.onCallViewChangeFaceImprove.bind(this));\n\t\t\t\tthis.callView.subscribe(BX.Call.View.Event.onUserRename, this.onCallViewUserRename.bind(this));\n\t\t\t\tthis.callView.subscribe(BX.Call.View.Event.onUserPinned, this.onCallViewUserPinned.bind(this));\n\n\t\t\t\tthis.callView.blockAddUser();\n\t\t\t\tthis.callView.blockHistoryButton();\n\n\t\t\t\tif (!Utils.device.isMobile())\n\t\t\t\t{\n\t\t\t\t\tthis.callView.show();\n\t\t\t\t}\n\n\t\t\t\tresolve()\n\t\t\t}).catch((error) => {\n\t\t\t\tconsole.warn(error);\n\t\t\t\treject(error)\n\t\t\t});\n\t\t}\n\n\t\tinitUserComplete()\n\t\t{\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tthis.initUser()\n\t\t\t\t\t.then(() => this.startPageTagInterval())\n\t\t\t\t\t.then(() => this.tryJoinExistingCall())\n\t\t\t\t\t.then(() => this.initCall())\n\t\t\t\t\t.then(() => this.initPullHandlers())\n\t\t\t\t\t.then(() => this.subscribeToStoreChanges())\n\t\t\t\t\t.then(() => this.initComplete())\n\t\t\t\t\t.then(() => resolve)\n\t\t\t\t\t.catch((error) => reject(error));\n\t\t\t})\n\t\t}\n\t\t/* endregion 01. Initialize methods */\n\n\t\t/* region 02. initUserComplete methods */\n\t\tinitUser()\n\t\t{\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tif (this.getStartupErrorCode() || !this.getConference().common.passChecked)\n\t\t\t\t{\n\t\t\t\t\treturn reject();\n\t\t\t\t}\n\n\t\t\t\tif (this.params.userId > 0)\n\t\t\t\t{\n\t\t\t\t\tthis.controller.setUserId(this.params.userId);\n\n\t\t\t\t\tif (this.params.isIntranetOrExtranet)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.switchToSessAuth();\n\n\t\t\t\t\t\tthis.controller.getStore().commit('conference/user', {\n\t\t\t\t\t\t\tid: this.params.userId\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tlet hashFromCookie = this.getUserHashCookie();\n\t\t\t\t\t\tif (hashFromCookie)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.restClient.setAuthId(hashFromCookie);\n\t\t\t\t\t\t\tthis.restClient.setChatId(this.getChatId());\n\t\t\t\t\t\t\tthis.controller.getStore().commit('conference/user', {\n\t\t\t\t\t\t\t\tid: this.params.userId,\n\t\t\t\t\t\t\t\thash: hashFromCookie\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tthis.pullClient.start();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.controller.getStore().commit('conference/common', {\n\t\t\t\t\t\tinited: true\n\t\t\t\t\t});\n\n\t\t\t\t\treturn resolve();\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.restClient.setAuthId('guest');\n\t\t\t\t\tthis.restClient.setChatId(this.getChatId());\n\n\t\t\t\t\tif (typeof BX.SidePanel !== 'undefined')\n\t\t\t\t\t{\n\t\t\t\t\t\tBX.SidePanel.Instance.disableAnchorBinding();\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this.restClient.callMethod('im.call.user.register', {\n\t\t\t\t\t\talias: this.params.alias,\n\t\t\t\t\t\tuser_hash: this.getUserHashCookie() || '',\n\t\t\t\t\t}).then(result =>\n\t\t\t\t\t{\n\t\t\t\t\t\tBX.message['USER_ID'] = result.data().id;\n\t\t\t\t\t\tthis.controller.getStore().commit('conference/user', {\n\t\t\t\t\t\t\tid: result.data().id,\n\t\t\t\t\t\t\thash: result.data().hash\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tthis.controller.setUserId(result.data().id);\n\t\t\t\t\t\tthis.callView.setLocalUserId(result.data().id);\n\n\t\t\t\t\t\tif (result.data().created)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.params.userCount++;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.controller.getStore().commit('conference/common', {\n\t\t\t\t\t\t\tinited: true\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tthis.restClient.setAuthId(result.data().hash);\n\t\t\t\t\t\tthis.pullClient.start();\n\n\t\t\t\t\t\treturn resolve();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tstartPageTagInterval()\n\t\t{\n\t\t\treturn new Promise((resolve) => {\n\t\t\t\tclearInterval(this.conferencePageTagInterval);\n\t\t\t\tthis.conferencePageTagInterval = setInterval(() => {\n\t\t\t\t\tLocalStorage.set(this.params.siteId, this.params.userId, BX.CallEngine.getConferencePageTag(this.params.dialogId), \"Y\", 2);\n\t\t\t\t}, 1000);\n\t\t\t\tresolve();\n\t\t\t})\n\t\t}\n\n\t\ttryJoinExistingCall()\n\t\t{\n\t\t\tthis.restClient.callMethod(\"im.call.tryJoinCall\", {\n\t\t\t\t\tentityType: 'chat',\n\t\t\t\t\tentityId: this.params.dialogId,\n\t\t\t\t\tprovider: BX.Call.Provider.Voximplant,\n\t\t\t\t\ttype: BX.Call.Type.Permanent\n\t\t\t\t})\n\t\t\t\t.then(result => {\n\t\t\t\t\tLogger.warn('tryJoinCall', result.data());\n\t\t\t\t\tif (result.data().success)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.waitingForCallStatus = true;\n\t\t\t\t\t\tthis.waitingForCallStatusTimeout = setTimeout(() => {\n\t\t\t\t\t\t\tthis.waitingForCallStatus = false;\n\t\t\t\t\t\t\tif (!this.callEventReceived)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tthis.setConferenceStatus(false);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis.callEventReceived = false;\n\t\t\t\t\t\t}, 5000);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.setConferenceStatus(false);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t}\n\n\t\tinitCall()\n\t\t{\n\t\t\tBX.CallEngine.setRestClient(this.restClient);\n\t\t\tBX.CallEngine.setPullClient(this.pullClient);\n\t\t\tBX.CallEngine.setCurrentUserId(this.controller.getUserId());\n\t\t\tthis.callView.unblockButtons(['chat']);\n\t\t}\n\n\t\tinitPullHandlers()\n\t\t{\n\t\t\tthis.pullClient.subscribe(\n\t\t\t\tnew ImCallPullHandler({\n\t\t\t\t\tstore: this.controller.getStore(),\n\t\t\t\t\tapplication: this,\n\t\t\t\t\tcontroller: this.controller,\n\t\t\t\t})\n\t\t\t);\n\n\t\t\treturn new Promise((resolve, reject) => resolve());\n\t\t}\n\n\t\tsubscribeToStoreChanges()\n\t\t{\n\t\t\tthis.controller.getStore().subscribe((mutation, state) => {\n\t\t\t\tconst { payload, type } = mutation;\n\t\t\t\tif (type === 'users/update' && payload.fields.name)\n\t\t\t\t{\n\t\t\t\t\tif (!this.callView)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.callView.updateUserData(\n\t\t\t\t\t\t{[payload.id]: {name: payload.fields.name}}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\telse if (type === 'dialogues/set')\n\t\t\t\t{\n\t\t\t\t\tif (payload[0].dialogId !== this.getDialogId())\n\t\t\t\t\t{\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!Utils.platform.isBitrixDesktop())\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.callView.setButtonCounter('chat', payload[0].counter);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (type === 'dialogues/update')\n\t\t\t\t{\n\t\t\t\t\tif (payload.dialogId !== this.getDialogId())\n\t\t\t\t\t{\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (typeof payload.fields.counter === 'number' && this.callView)\n\t\t\t\t\t{\n\t\t\t\t\t\tif (Utils.platform.isBitrixDesktop())\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tpayload.actionName === \"decreaseCounter\"\n\t\t\t\t\t\t\t\t&& !payload.dialogMuted\n\t\t\t\t\t\t\t\t&& typeof payload.fields.previousCounter === 'number'\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlet counter = payload.fields.counter;\n\t\t\t\t\t\t\t\tif (this.getConference().common.messageCount)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcounter = this.getConference().common.messageCount - (payload.fields.previousCounter - counter);\n\t\t\t\t\t\t\t\t\tif (counter < 0)\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tcounter = 0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tthis.callView.setButtonCounter('chat', counter);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.callView.setButtonCounter('chat', payload.fields.counter);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (typeof payload.fields.name !== 'undefined')\n\t\t\t\t\t{\n\t\t\t\t\t\tdocument.title = payload.fields.name.toString();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (type === 'conference/common' && typeof payload.messageCount === 'number')\n\t\t\t\t{\n\t\t\t\t\tif (this.callView)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.callView.setButtonCounter('chat', payload.messageCount);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (type === 'conference/common' && typeof payload.userCount === 'number')\n\t\t\t\t{\n\t\t\t\t\tif (this.callView)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.callView.setButtonCounter('users', payload.userCount);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tinitComplete()\n\t\t{\n\t\t\tthis.controller.getStore().commit('conference/common', {\n\t\t\t\tuserCount: this.params.userCount\n\t\t\t});\n\t\t\tthis.callView.setButtonCounter('users', this.params.userCount);\n\n\t\t\tif (this.isExternalUser())\n\t\t\t{\n\t\t\t\tthis.callView.localUser.userModel.allowRename = true;\n\t\t\t}\n\n\t\t\tif (this.getConference().common.inited)\n\t\t\t{\n\t\t\t\tthis.inited = true;\n\t\t\t\tthis.initPromise.resolve(this);\n\t\t\t}\n\n\t\t\tif (Utils.platform.isBitrixDesktop())\n\t\t\t{\n\t\t\t\tthis.desktop.onCustomEvent('bxConferenceLoadComplete', []);\n\t\t\t}\n\n\t\t\treturn new Promise((resolve, reject) => resolve());\n\t\t}\n\t\t/* endregion 02. initUserComplete methods */\n/* endregion 01. Initialize */\n\n/* region 02. Methods */\n\n\t/* region 01. Call methods */\n\tinitHardware()\n\t{\n\t\treturn new Promise((resolve, reject) =>\n\t\t{\n\t\t\tBX.Call.Hardware.init().then(() => {\n\t\t\t\tif (this.hardwareInited)\n\t\t\t\t{\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tif (Object.values(BX.Call.Hardware.microphoneList).length === 0)\n\t\t\t\t{\n\t\t\t\t\tthis.setError(ConferenceErrorCode.missingMicrophone);\n\t\t\t\t}\n\n\t\t\t\tif (!this.isViewerMode())\n\t\t\t\t{\n\t\t\t\t\tthis.callView.unblockButtons([\"camera\", \"microphone\"]);\n\t\t\t\t\tthis.callView.enableMediaSelection();\n\t\t\t\t}\n\n\t\t\t\tthis.hardwareInited = true;\n\t\t\t\tresolve();\n\t\t\t}).catch(error => {\n\t\t\t\tif (error === 'NO_WEBRTC' && this.isHttps())\n\t\t\t\t{\n\t\t\t\t\tthis.setError(ConferenceErrorCode.unsupportedBrowser);\n\t\t\t\t}\n\t\t\t\telse if (error === 'NO_WEBRTC' && !this.isHttps())\n\t\t\t\t{\n\t\t\t\t\tthis.setError(ConferenceErrorCode.unsafeConnection);\n\t\t\t\t}\n\t\t\t\tLogger.error('Init hardware error', error);\n\t\t\t\treject(error)\n\t\t\t})\n\t\t});\n\t}\n\n\tstartCall(videoEnabled, viewerMode = false)\n\t{\n\t\tconst provider = BX.Call.Provider.Voximplant;\n\n\t\tif (Utils.device.isMobile())\n\t\t{\n\t\t\tthis.callView.show();\n\t\t\tthis.callView.setButtonCounter('chat', this.getDialogData().counter);\n\t\t\tthis.callView.setButtonCounter('users', this.getConference().common.userCount);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.callView.setLayout(BX.Call.View.Layout.Grid);\n\t\t}\n\n\t\tthis.callView.setUiState(BX.Call.View.UiState.Calling);\n\n\t\tif (this.localVideoStream)\n\t\t{\n\t\t\tif (videoEnabled)\n\t\t\t{\n\t\t\t\tthis.callView.setLocalStream(this.localVideoStream, BX.Call.Hardware.enableMirroring);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.stopLocalVideoStream();\n\t\t\t}\n\t\t}\n\t\tif (!videoEnabled)\n\t\t{\n\t\t\tthis.callView.setCameraState(false);\n\t\t}\n\t\tthis.controller.getStore().commit('conference/startCall');\n\n\t\tBX.Call.Engine.getInstance().createCall({\n\t\t\ttype: BX.Call.Type.Permanent,\n\t\t\tentityType: 'chat',\n\t\t\tentityId: this.getDialogId(),\n\t\t\tprovider: provider,\n\t\t\tvideoEnabled: videoEnabled,\n\t\t\tenableMicAutoParameters: BX.Call.Hardware.enableMicAutoParameters,\n\t\t\tjoinExisting: true\n\t\t}).then(e => {\n\t\t\tLogger.warn('call created', e);\n\n\t\t\tthis.currentCall = e.call;\n\t\t\t//this.currentCall.useHdVideo(BX.Call.Hardware.preferHdQuality);\n\t\t\tthis.currentCall.useHdVideo(true);\n\t\t\tif(BX.Call.Hardware.defaultMicrophone)\n\t\t\t{\n\t\t\t\tthis.currentCall.setMicrophoneId(BX.Call.Hardware.defaultMicrophone);\n\t\t\t}\n\t\t\tif(BX.Call.Hardware.defaultCamera)\n\t\t\t{\n\t\t\t\tthis.currentCall.setCameraId(BX.Call.Hardware.defaultCamera);\n\t\t\t}\n\n\t\t\tif(!Utils.device.isMobile())\n\t\t\t{\n\t\t\t\tthis.callView.setLayout(BX.Call.View.Layout.Grid);\n\t\t\t}\n\t\t\tthis.callView.appendUsers(this.currentCall.getUsers());\n\t\t\tBX.Call.Util.getUsers(this.currentCall.id, this.getCallUsers(true)).then(userData => {\n\t\t\t\tthis.controller.getStore().dispatch('users/set', Object.values(userData));\n\t\t\t\tthis.controller.getStore().dispatch('conference/setUsers', {users: Object.keys(userData)});\n\t\t\t\tthis.callView.updateUserData(userData)\n\t\t\t});\n\t\t\tthis.releasePreCall();\n\t\t\tthis.bindCallEvents();\n\n\t\t\tif(this.callView.isMuted)\n\t\t\t{\n\t\t\t\tthis.currentCall.setMuted(true);\n\t\t\t}\n\t\t\tif(e.isNew)\n\t\t\t{\n\t\t\t\tthis.currentCall.setVideoEnabled(videoEnabled);\n\t\t\t\tthis.currentCall.inviteUsers();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.currentCall.answer({\n\t\t\t\t\tuseVideo: videoEnabled,\n\t\t\t\t\tjoinAsViewer: viewerMode\n\t\t\t\t});\n\t\t\t}\n\n\t\t}).catch(e => {\n\t\t\tLogger.error('creating call error', e);\n\t\t});\n\t}\n\n\t/**\n\t * @param {int} callId\n\t * @param {object} options\n\t */\n\tjoinCall(callId, options)\n\t{\n\t\tlet video = BX.prop.getBoolean(options, \"video\", false);\n\t\tlet joinAsViewer = BX.prop.getBoolean(options, \"joinAsViewer\", false);\n\n\t\tif (Utils.device.isMobile())\n\t\t{\n\t\t\tthis.callView.show();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.callView.setLayout(BX.Call.View.Layout.Grid);\n\t\t}\n\n\t\tif (joinAsViewer)\n\t\t{\n\t\t\tthis.callView.setLocalUserDirection(BX.Call.EndpointDirection.RecvOnly);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.callView.setLocalUserDirection(BX.Call.EndpointDirection.SendRecv);\n\t\t}\n\n\t\tthis.callView.setUiState(BX.Call.View.UiState.Calling);\n\t\tBX.CallEngine.getCallWithId(callId).then((result) =>\n\t\t{\n\t\t\tthis.currentCall = result.call;\n\t\t\tthis.releasePreCall();\n\t\t\tthis.bindCallEvents();\n\n\t\t\tthis.controller.getStore().commit('conference/startCall');\n\n\t\t\tthis.callView.appendUsers(this.currentCall.getUsers());\n\t\t\tBX.Call.Util.getUsers(this.currentCall.id, this.getCallUsers(true)).then(userData => {\n\t\t\t\tthis.controller.getStore().dispatch('users/set', Object.values(userData));\n\t\t\t\tthis.controller.getStore().dispatch('conference/setUsers', {users: Object.keys(userData)});\n\t\t\t\tthis.callView.updateUserData(userData)\n\t\t\t});\n\n\t\t\tif (!joinAsViewer)\n\t\t\t{\n\t\t\t\t//this.currentCall.useHdVideo(BX.Call.Hardware.preferHdQuality);\n\t\t\t\tthis.currentCall.useHdVideo(true);\n\t\t\t\tif (BX.Call.Hardware.defaultMicrophone)\n\t\t\t\t{\n\t\t\t\t\tthis.currentCall.setMicrophoneId(BX.Call.Hardware.defaultMicrophone);\n\t\t\t\t}\n\t\t\t\tif (BX.Call.Hardware.defaultCamera)\n\t\t\t\t{\n\t\t\t\t\tthis.currentCall.setCameraId(BX.Call.Hardware.defaultCamera);\n\t\t\t\t}\n\t\t\t\tif(this.callView.isMuted)\n\t\t\t\t{\n\t\t\t\t\tthis.currentCall.setMuted(true);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.currentCall.answer({\n\t\t\t\tuseVideo: !!video,\n\t\t\t\tjoinAsViewer: joinAsViewer\n\t\t\t});\n\t\t}).catch((error) => console.error(error));\n\t}\n\n\tendCall()\n\t{\n\t\tif (this.currentCall)\n\t\t{\n\t\t\tthis.showFeedback = this.currentCall.wasConnected;\n\t\t\tthis.callDetails = {\n\t\t\t\tid: this.currentCall.id,\n\t\t\t\tprovider: this.currentCall.provider,\n\t\t\t\tuserCount: this.currentCall.users.length,\n\t\t\t\tbrowser: BX.Call.Util.getBrowserForStatistics(),\n\t\t\t\tisMobile: BX.browser.IsMobile(),\n\t\t\t\tisConference: true\n\t\t\t}\n\n\t\t\tthis.removeCallEvents();\n\t\t\tthis.currentCall.hangup();\n\t\t}\n\n\t\tif (this.isRecording())\n\t\t{\n\t\t\tBXDesktopSystem.CallRecordStop();\n\t\t}\n\t\tthis.callRecordState = BX.Call.View.RecordState.Stopped;\n\n\t\tif (Utils.platform.isBitrixDesktop())\n\t\t{\n\t\t\tif (this.floatingScreenShareWindow)\n\t\t\t{\n\t\t\t\tthis.floatingScreenShareWindow.destroy();\n\t\t\t\tthis.floatingScreenShareWindow = null;\n\t\t\t}\n\t\t\twindow.close();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.callView.releaseLocalMedia();\n\t\t\tthis.callView.close();\n\t\t\tthis.setError(ConferenceErrorCode.userLeftCall);\n\t\t\tthis.controller.getStore().commit('conference/endCall');\n\t\t}\n\n\t\tEventEmitter.unsubscribe(EventType.textarea.focus, this.onInputFocusHandler);\n\t\tEventEmitter.unsubscribe(EventType.textarea.blur, this.onInputBlurHandler);\n\t\tEventEmitter.unsubscribe(EventType.conference.userRenameFocus, this.onInputFocusHandler);\n\t\tEventEmitter.unsubscribe(EventType.conference.userRenameBlur, this.onInputBlurHandler);\n\t}\n\n\trestart()\n\t{\n\t\tconsole.trace(\"restart\");\n\t\tif(this.currentCall)\n\t\t{\n\t\t\tthis.removeCallEvents();\n\t\t\tthis.currentCall = null;\n\t\t}\n\n\t\tif(this.callView)\n\t\t{\n\t\t\tthis.callView.releaseLocalMedia();\n\t\t\tthis.callView.close();\n\t\t\tthis.callView.destroy();\n\t\t\tthis.callView = null;\n\t\t}\n\t\tthis.initCallInterface();\n\t\tthis.initCall();\n\t\tthis.controller.getStore().commit('conference/endCall');\n\t}\n\n\tkickFromCall()\n\t{\n\t\tthis.setError(ConferenceErrorCode.kickedFromCall);\n\t\tthis.pullClient.disconnect();\n\t\tthis.endCall();\n\t}\n\n\tgetCallUsers(includeSelf)\n\t{\n\t\tlet result = Object.keys(this.currentCall.getUsers());\n\t\tif (includeSelf)\n\t\t{\n\t\t\tresult.push(this.currentCall.userId);\n\t\t}\n\t\treturn result;\n\t}\n\n\tsetLocalVideoStream(stream)\n\t{\n\t\tthis.localVideoStream = stream;\n\t}\n\n\tstopLocalVideoStream()\n\t{\n\t\tif (this.localVideoStream)\n\t\t{\n\t\t\tthis.localVideoStream.getTracks().forEach(tr => tr.stop());\n\t\t}\n\t\tthis.localVideoStream = null;\n\t}\n\n\tsetSelectedCamera(cameraId)\n\t{\n\t\tif (this.callView)\n\t\t{\n\t\t\tthis.callView.setCameraId(cameraId)\n\t\t}\n\t}\n\n\tsetSelectedMic(micId)\n\t{\n\t\tif (this.callView)\n\t\t{\n\t\t\tthis.callView.setMicrophoneId(micId);\n\t\t}\n\t}\n\n\tgetFeature(id)\n\t{\n\t\tif (typeof this.featureConfig[id] === 'undefined')\n\t\t{\n\t\t\treturn {\n\t\t\t\tid,\n\t\t\t\tstate: ConferenceApplication.FeatureState.Enabled,\n\t\t\t\tarticleCode: ''\n\t\t\t}\n\t\t}\n\n\t\treturn this.featureConfig[id];\n\t}\n\n\tgetFeatureState(id)\n\t{\n\t\treturn this.getFeature(id).state;\n\t}\n\n\tcanRecord()\n\t{\n\t\treturn Utils.platform.isBitrixDesktop() && Utils.platform.getDesktopVersion() >= 54;\n\t}\n\n\tisRecording()\n\t{\n\t\treturn this.canRecord() && this.callRecordState != BX.Call.View.RecordState.Stopped;\n\t}\n\n\tshowFeatureLimitSlider(id)\n\t{\n\t\tconst articleCode = this.getFeature(id).articleCode;\n\t\tif (!articleCode || !window.BX.UI.InfoHelper)\n\t\t{\n\t\t\tconsole.warn('Limit article not found', id);\n\t\t\treturn false;\n\t\t}\n\n\t\twindow.BX.UI.InfoHelper.show(articleCode);\n\n\t\treturn true;\n\t}\n\n\tshowMicMutedNotification()\n\t{\n\t\tif (this.mutePopup || !this.callView)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.mutePopup = new BX.Call.MicMutedPopup({\n\t\t\tbindElement: this.callView.buttons.microphone.elements.icon,\n\t\t\ttargetContainer: this.callView.container,\n\t\t\tonClose: () =>\n\t\t\t{\n\t\t\t\tthis.allowMutePopup = false;\n\t\t\t\tthis.mutePopup.destroy();\n\t\t\t\tthis.mutePopup = null;\n\t\t\t},\n\t\t\tonUnmuteClick: () =>\n\t\t\t{\n\t\t\t\tthis.onCallViewToggleMuteButtonClick({\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tmuted: false\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tthis.mutePopup.destroy();\n\t\t\t\tthis.mutePopup = null;\n\t\t\t}\n\t\t});\n\t\tthis.mutePopup.show();\n\t}\n\n\tshowWebScreenSharePopup()\n\t{\n\t\tif (this.webScreenSharePopup)\n\t\t{\n\t\t\tthis.webScreenSharePopup.show();\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.webScreenSharePopup = new BX.Call.WebScreenSharePopup({\n\t\t\tbindElement: this.callView.buttons.screen.elements.root,\n\t\t\ttargetContainer: this.callView.container,\n\t\t\tonClose: function ()\n\t\t\t{\n\t\t\t\tthis.webScreenSharePopup.destroy();\n\t\t\t\tthis.webScreenSharePopup = null;\n\t\t\t}.bind(this),\n\t\t\tonStopSharingClick: function ()\n\t\t\t{\n\t\t\t\tthis.onCallViewToggleScreenSharingButtonClick();\n\t\t\t\tthis.webScreenSharePopup.destroy();\n\t\t\t\tthis.webScreenSharePopup = null;\n\t\t\t}.bind(this)\n\t\t});\n\t\tthis.webScreenSharePopup.show();\n\t}\n\n\tisViewerMode()\n\t{\n\t\tlet viewerMode = false;\n\t\tconst isBroadcast = this.isBroadcast();\n\t\tif (isBroadcast)\n\t\t{\n\t\t\tconst presenters = this.getBroadcastPresenters();\n\t\t\tconst currentUserId = this.controller.getStore().state.application.common.userId;\n\t\t\tconst isCurrentUserPresenter = presenters.includes(currentUserId);\n\t\t\tviewerMode = isBroadcast && !isCurrentUserPresenter;\n\t\t}\n\t\treturn viewerMode;\n\t}\n\n\tonCallCreated(e)\n\t{\n\t\tLogger.warn('we got event onCallCreated', e);\n\t\tif(this.preCall || this.currentCall)\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tlet call = e.call;\n\t\tif (call.associatedEntity.type === 'chat' && call.associatedEntity.id === this.params.dialogId)\n\t\t{\n\t\t\tthis.preCall = e.call;\n\t\t\tthis.updatePreCallCounter();\n\t\t\tthis.preCall.addEventListener(BX.Call.Event.onUserStateChanged, this.onPreCallUserStateChangedHandler);\n\t\t\tthis.preCall.addEventListener(BX.Call.Event.onDestroy, this.onPreCallDestroyHandler);\n\n\t\t\tif (this.waitingForCallStatus)\n\t\t\t{\n\t\t\t\tthis.callEventReceived = true;\n\t\t\t}\n\t\t\tthis.setConferenceStatus(true);\n\t\t\tthis.setConferenceStartDate(e.call.startDate);\n\t\t}\n\n\t\tconst userReadyToJoin = this.getConference().common.userReadyToJoin;\n\t\tif (userReadyToJoin)\n\t\t{\n\t\t\tlet viewerMode = this.isViewerMode();\n\n\t\t\tconst videoEnabled = this.getConference().common.joinWithVideo;\n\t\t\tLogger.warn('ready to join call after waiting', videoEnabled, viewerMode);\n\t\t\tsetTimeout(() => {\n\t\t\t\tBX.Call.Hardware.init().then(() => {\n\t\t\t\t\tif (viewerMode && this.preCall)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.joinCall(this.preCall.id, {\n\t\t\t\t\t\t\tjoinAsViewer: true\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.startCall(videoEnabled);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}, 1000);\n\t\t}\n\t}\n\n\treleasePreCall()\n\t{\n\t\tif(this.preCall)\n\t\t{\n\t\t\tthis.preCall.removeEventListener(BX.Call.Event.onUserStateChanged, this.onPreCallUserStateChangedHandler);\n\t\t\tthis.preCall.removeEventListener(BX.Call.Event.onDestroy, this.onPreCallDestroyHandler);\n\t\t\tthis.preCall = null;\n\t\t}\n\t}\n\n\tonPreCallDestroy(e)\n\t{\n\t\tif (this.waitingForCallStatusTimeout)\n\t\t{\n\t\t\tclearTimeout(this.waitingForCallStatusTimeout);\n\t\t}\n\t\tthis.setConferenceStatus(false);\n\n\t\tthis.releasePreCall();\n\t}\n\n\tonPreCallUserStateChanged(e)\n\t{\n\t\tthis.updatePreCallCounter();\n\t}\n\n\tupdatePreCallCounter()\n\t{\n\t\tif(this.preCall)\n\t\t{\n\t\t\tthis.controller.getStore().commit('conference/common', {\n\t\t\t\tuserInCallCount: this.preCall.getParticipatingUsers().length\n\t\t\t});\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.controller.getStore().commit('conference/common', {\n\t\t\t\tuserInCallCount: 0\n\t\t\t});\n\t\t}\n\t}\n\n\tcreateVideoStrategy()\n\t{\n\t\tif (this.videoStrategy)\n\t\t{\n\t\t\tthis.videoStrategy.destroy();\n\t\t}\n\n\t\tvar strategyType = Utils.device.isMobile() ? BX.Call.VideoStrategy.Type.OnlySpeaker : BX.Call.VideoStrategy.Type.AllowAll;\n\n\t\tthis.videoStrategy = new BX.Call.VideoStrategy({\n\t\t\tcall: this.currentCall,\n\t\t\tcallView: this.callView,\n\t\t\tstrategyType: strategyType\n\t\t});\n\t}\n\n\tremoveVideoStrategy()\n\t{\n\t\tif (this.videoStrategy)\n\t\t{\n\t\t\tthis.videoStrategy.destroy();\n\t\t}\n\t\tthis.videoStrategy = null;\n\t}\n\n\tonCallReplaceCamera(event)\n\t{\n\t\tlet cameraId = event.data.deviceId;\n\t\tBX.Call.Hardware.defaultCamera = cameraId;\n\t\tif (this.currentCall)\n\t\t{\n\t\t\tthis.currentCall.setCameraId(cameraId);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.template.$emit('cameraSelected', cameraId);\n\t\t}\n\t}\n\n\tonCallReplaceMicrophone(event)\n\t{\n\t\tlet microphoneId = event.data.deviceId;\n\t\tBX.Call.Hardware.defaultMicrophone = microphoneId.deviceId;\n\t\tif (this.callView)\n\t\t{\n\t\t\tthis.callView.setMicrophoneId(microphoneId);\n\t\t}\n\t\tif (this.currentCall)\n\t\t{\n\t\t\tthis.currentCall.setMicrophoneId(microphoneId);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.template.$emit('micSelected', event.data.deviceId);\n\t\t}\n\t}\n\n\tonCallReplaceSpeaker(event)\n\t{\n\t\tBX.Call.Hardware.defaultSpeaker = event.data.deviceId;\n\t}\n\n\tonCallViewChangeHdVideo(event)\n\t{\n\t\tBX.Call.Hardware.preferHdQuality = event.data.allowHdVideo;\n\t}\n\n\tonCallViewChangeMicAutoParams(event)\n\t{\n\t\tBX.Call.Hardware.enableMicAutoParameters = event.data.allowMicAutoParams;\n\t}\n\n\tonCallViewChangeFaceImprove(event)\n\t{\n\t\tif (typeof (BX.desktop) === 'undefined')\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tBX.desktop.cameraSmoothingStatus(event.data.faceImproveEnabled);\n\t}\n\n\tonCallViewUserRename(event)\n\t{\n\t\tconst newName = event.data.newName;\n\n\t\tif (!this.isExternalUser())\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tif (Utils.device.isMobile())\n\t\t{\n\t\t\tthis.renameGuestMobile(newName)\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.renameGuest(newName);\n\t\t}\n\t}\n\n\tonCallViewUserPinned(event)\n\t{\n\t\tif (event.data.userId)\n\t\t{\n\t\t\tthis.updateCallUser(event.data.userId, {pinned: true});\n\n\t\t\treturn true;\n\t\t}\n\n\t\tthis.controller.getStore().dispatch('call/unpinUser');\n\n\t\treturn true;\n\t}\n\n\trenameGuest(newName)\n\t{\n\t\tthis.callView.localUser.userModel.renameRequested = true;\n\t\tthis.setUserName(newName).then(() => {\n\t\t\tthis.callView.localUser.userModel.wasRenamed = true;\n\t\t\tLogger.log('setting name to', newName);\n\t\t}).catch(error => {\n\t\t\tLogger.error('error setting name', error);\n\t\t});\n\t}\n\n\trenameGuestMobile(newName)\n\t{\n\t\tthis.setUserName(newName).then(() => {\n\t\t\tLogger.log('setting mobile name to', newName);\n\t\t\tif (this.callView.renameSlider)\n\t\t\t{\n\t\t\t\tthis.callView.renameSlider.close();\n\t\t\t}\n\t\t}).catch(error => {\n\t\t\tLogger.error('error setting name', error);\n\t\t});\n\t}\n\n\tonCallButtonClick(event)\n\t{\n\t\tconst buttonName = event.data.buttonName;\n\t\tLogger.warn('Button clicked!', buttonName);\n\n\t\tconst handlers = {\n\t\t\thangup: this.onCallViewHangupButtonClick.bind(this),\n\t\t\tclose: this.onCallViewCloseButtonClick.bind(this),\n\t\t\t//inviteUser: this.onCallViewInviteUserButtonClick.bind(this),\n\t\t\ttoggleMute: this.onCallViewToggleMuteButtonClick.bind(this),\n\t\t\ttoggleScreenSharing: this.onCallViewToggleScreenSharingButtonClick.bind(this),\n\t\t\trecord: this.onCallViewRecordButtonClick.bind(this),\n\t\t\ttoggleVideo: this.onCallViewToggleVideoButtonClick.bind(this),\n\t\t\ttoggleSpeaker: this.onCallViewToggleSpeakerButtonClick.bind(this),\n\t\t\tshowChat: this.onCallViewShowChatButtonClick.bind(this),\n\t\t\ttoggleUsers: this.onCallViewToggleUsersButtonClick.bind(this),\n\t\t\tshare: this.onCallViewShareButtonClick.bind(this),\n\t\t\tfullscreen: this.onCallViewFullScreenButtonClick.bind(this),\n\t\t\tfloorRequest: this.onCallViewFloorRequestButtonClick.bind(this),\n\t\t};\n\n\t\tif(handlers[buttonName])\n\t\t{\n\t\t\thandlers[buttonName](event);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tLogger.error('Button handler not found!', buttonName);\n\t\t}\n\t}\n\n\tonCallViewHangupButtonClick(e)\n\t{\n\t\tthis.endCall();\n\t}\n\n\tonCallViewCloseButtonClick(e)\n\t{\n\t\tthis.endCall();\n\t}\n\n\tonCallViewToggleMuteButtonClick(event)\n\t{\n\t\tif (this.currentCall)\n\t\t{\n\t\t\tthis.currentCall.setMuted(event.data.muted);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.template.$emit('setMicState', !event.data.muted);\n\t\t}\n\n\t\tif (this.isRecording())\n\t\t{\n\t\t\tBXDesktopSystem.CallRecordMute(event.data.muted);\n\t\t}\n\n\t\tthis.callView.setMuted(event.data.muted);\n\t}\n\n\tonCallViewToggleScreenSharingButtonClick()\n\t{\n\t\tif (this.getFeatureState('screenSharing') === ConferenceApplication.FeatureState.Limited)\n\t\t{\n\t\t\tthis.showFeatureLimitSlider('screenSharing');\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.getFeatureState('screenSharing') === ConferenceApplication.FeatureState.Disabled)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.currentCall.isScreenSharingStarted())\n\t\t{\n\t\t\tthis.currentCall.stopScreenSharing();\n\n\t\t\tif (this.isRecording())\n\t\t\t{\n\t\t\t\tBXDesktopSystem.CallRecordStopSharing();\n\t\t\t}\n\n\t\t\tif (this.floatingScreenShareWindow)\n\t\t\t{\n\t\t\t\tthis.floatingScreenShareWindow.close();\n\t\t\t}\n\n\t\t\tif (this.webScreenSharePopup)\n\t\t\t{\n\t\t\t\tthis.webScreenSharePopup.close();\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.restClient.callMethod(\"im.call.onShareScreen\", {callId: this.currentCall.id});\n\t\t\tthis.currentCall.startScreenSharing();\n\t\t}\n\t}\n\n\tonCallViewRecordButtonClick(event)\n\t{\n\t\tif (event.data.recordState === BX.Call.View.RecordState.Started)\n\t\t{\n\t\t\tif (this.getFeatureState('record') === ConferenceApplication.FeatureState.Limited)\n\t\t\t{\n\t\t\t\tthis.showFeatureLimitSlider('record');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this.getFeatureState('record') === ConferenceApplication.FeatureState.Disabled)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this.canRecord())\n\t\t\t{\n\t\t\t\t// TODO: create popup menu with choice type of record - im/install/js/im/call/controller.js:1635\n\t\t\t\t// BX.Call.View.RecordType.Video / BX.Call.View.RecordType.Audio\n\n\t\t\t\tthis.callView.setButtonActive('record', true);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tif (window.BX.Helper)\n\t\t\t\t{\n\t\t\t\t\twindow.BX.Helper.show(\"redirect=detail&code=12398134\");\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\telse if (event.data.recordState === BX.Call.View.RecordState.Paused)\n\t\t{\n\t\t\tif (this.canRecord())\n\t\t\t{\n\t\t\t\tBXDesktopSystem.CallRecordPause(true);\n\t\t\t}\n\t\t}\n\t\telse if (event.data.recordState === BX.Call.View.RecordState.Resumed)\n\t\t{\n\t\t\tif (this.canRecord())\n\t\t\t{\n\t\t\t\tBXDesktopSystem.CallRecordPause(false);\n\t\t\t}\n\t\t}\n\t\telse if (event.data.recordState === BX.Call.View.RecordState.Stopped)\n\t\t{\n\t\t\tthis.callView.setButtonActive('record', false);\n\t\t}\n\n\t\tthis.currentCall.sendRecordState({\n\t\t\taction: event.data.recordState,\n\t\t\tdate: new Date()\n\t\t});\n\n\t\tthis.callRecordState = event.data.recordState;\n\t}\n\n\tonCallViewToggleVideoButtonClick(event)\n\t{\n\t\tif (this.currentCall)\n\t\t{\n\t\t\tif (!BX.Call.Hardware.initialized)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (event.data.video && Object.values(BX.Call.Hardware.cameraList).length === 0)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(!event.data.video)\n\t\t\t{\n\t\t\t\tthis.callView.releaseLocalMedia();\n\t\t\t}\n\t\t\tthis.currentCall.setVideoEnabled(event.data.video);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.template.$emit('setCameraState', event.data.video);\n\t\t}\n\t}\n\n\tonCallViewToggleSpeakerButtonClick(event)\n\t{\n\t\tthis.callView.muteSpeaker(!event.speakerMuted);\n\n\t\tif (event.fromHotKey)\n\t\t{\n\t\t\tBX.UI.Notification.Center.notify({\n\t\t\t\tcontent: BX.message(this.callView.speakerMuted? 'IM_M_CALL_MUTE_SPEAKERS_OFF': 'IM_M_CALL_MUTE_SPEAKERS_ON'),\n\t\t\t\tposition: \"top-right\",\n\t\t\t\tautoHideDelay: 3000,\n\t\t\t\tcloseButton: true\n\t\t\t});\n\t\t}\n\t}\n\n\tonCallViewShareButtonClick()\n\t{\n\t\tlet notifyWidth = 400;\n\t\tif (Utils.device.isMobile() && document.body.clientWidth < 400)\n\t\t{\n\t\t\tnotifyWidth = document.body.clientWidth - 40;\n\t\t}\n\n\t\tBX.UI.Notification.Center.notify({\n\t\t\tcontent: Loc.getMessage('BX_IM_VIDEOCONF_LINK_COPY_DONE'),\n\t\t\tautoHideDelay: 4000,\n\t\t\twidth: notifyWidth\n\t\t});\n\n\t\tClipboard.copy(this.getDialogData().public.link);\n\t}\n\n\tonCallViewFullScreenButtonClick()\n\t{\n\t\tthis.toggleFullScreen();\n\t}\n\n\tonFloatingScreenShareBackToCallClick()\n\t{\n\t\tBXDesktopWindow.ExecuteCommand('show.active')\n\t\tif (this.floatingScreenShareWindow)\n\t\t{\n\t\t\tthis.floatingScreenShareWindow.hide();\n\t\t}\n\t}\n\n\tonFloatingScreenShareStopClick()\n\t{\n\t\tBXDesktopWindow.ExecuteCommand('show.active')\n\t\tthis.onCallViewToggleScreenSharingButtonClick();\n\t}\n\n\tonFloatingScreenShareChangeScreenClick()\n\t{\n\t\tif (this.currentCall)\n\t\t{\n\t\t\tthis.currentCall.startScreenSharing(true);\n\t\t}\n\t}\n\n\tonWindowFocus()\n\t{\n\t\tif (this.floatingScreenShareWindow)\n\t\t{\n\t\t\tthis.floatingScreenShareWindow.hide();\n\t\t}\n\t}\n\n\tonWindowBlur()\n\t{\n\t\tif(this.floatingScreenShareWindow && this.currentCall && this.currentCall.isScreenSharingStarted())\n\t\t{\n\t\t\tthis.floatingScreenShareWindow.show();\n\t\t}\n\t}\n\n\tisFullScreen ()\n\t{\n\t\tif (\"webkitFullscreenElement\" in document)\n\t\t{\n\t\t\treturn (!!document.webkitFullscreenElement);\n\t\t}\n\t\telse if (\"fullscreenElement\" in document)\n\t\t{\n\t\t\treturn (!!document.fullscreenElement);\n\t\t}\n\t\treturn false;\n\t}\n\n\ttoggleFullScreen ()\n\t{\n\t\tif(this.isFullScreen())\n\t\t{\n\t\t\tthis.exitFullScreen();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.enterFullScreen();\n\t\t}\n\t}\n\n\tenterFullScreen ()\n\t{\n\t\tif (BX.browser.IsChrome() || BX.browser.IsSafari())\n\t\t{\n\t\t\tdocument.body.webkitRequestFullScreen();\n\t\t}\n\t\telse if (BX.browser.IsFirefox())\n\t\t{\n\t\t\tdocument.body.requestFullscreen();\n\t\t}\n\t}\n\n\texitFullScreen()\n\t{\n\t\tif (document.cancelFullScreen)\n\t\t{\n\t\t\tdocument.cancelFullScreen();\n\t\t}\n\t\telse if (document.mozCancelFullScreen)\n\t\t{\n\t\t\tdocument.mozCancelFullScreen();\n\t\t}\n\t\telse if (document.webkitCancelFullScreen)\n\t\t{\n\t\t\tdocument.webkitCancelFullScreen();\n\t\t}\n\t\telse if (document.document.exitFullscreen())\n\t\t{\n\t\t\tdocument.exitFullscreen()\n\t\t}\n\t}\n\n\tonCallViewShowChatButtonClick()\n\t{\n\t\tthis.toggleChat();\n\t}\n\n\tonCallViewToggleUsersButtonClick()\n\t{\n\t\tthis.toggleUserList();\n\t}\n\n\tonCallViewFloorRequestButtonClick()\n\t{\n\t\tconst floorState = this.callView.getUserFloorRequestState(BX.CallEngine.getCurrentUserId());\n\t\tconst talkingState = this.callView.getUserTalking(BX.CallEngine.getCurrentUserId());\n\n\t\tthis.callView.setUserFloorRequestState(BX.CallEngine.getCurrentUserId(), !floorState);\n\n\t\tif (this.currentCall)\n\t\t{\n\t\t\tthis.currentCall.requestFloor(!floorState);\n\t\t}\n\n\t\tclearTimeout(this.callViewFloorRequestTimeout);\n\t\tif (talkingState && !floorState)\n\t\t{\n\t\t\tthis.callViewFloorRequestTimeout = setTimeout(() =>\n\t\t\t{\n\t\t\t\tif (this.currentCall)\n\t\t\t\t{\n\t\t\t\t\tthis.currentCall.requestFloor(false);\n\t\t\t\t}\n\t\t\t}, 1500);\n\t\t}\n\t}\n\n\tbindCallEvents()\n\t{\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onUserInvited, this.onCallUserInvitedHandler);\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onDestroy, this.onCallDestroyHandler);\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onUserStateChanged, this.onCallUserStateChangedHandler);\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onUserMicrophoneState, this.onCallUserMicrophoneStateHandler);\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onUserCameraState, this.onCallUserCameraStateHandler);\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onUserVideoPaused, this.onCallUserVideoPausedHandler);\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onLocalMediaReceived, this.onCallLocalMediaReceivedHandler);\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onRemoteMediaReceived, this.onCallRemoteMediaReceivedHandler);\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onRemoteMediaStopped, this.onCallRemoteMediaStoppedHandler);\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onUserVoiceStarted, this.onCallUserVoiceStartedHandler);\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onUserVoiceStopped, this.onCallUserVoiceStoppedHandler);\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onUserScreenState, this.onCallUserScreenStateHandler);\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onUserRecordState, this.onCallUserRecordStateHandler);\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onUserFloorRequest, this.onCallUserFloorRequestHandler);\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onMicrophoneLevel, this.onMicrophoneLevelHandler);\n\t\t//this.currentCall.addEventListener(BX.Call.Event.onDeviceListUpdated, this._onCallDeviceListUpdatedHandler);\n\t\t//this.currentCall.addEventListener(BX.Call.Event.onCallFailure, this._onCallFailureHandler);\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onJoin, this._onCallJoinHandler);\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onLeave, this.onCallLeaveHandler);\n\t}\n\n\tremoveCallEvents()\n\t{\n\t\tthis.currentCall.removeEventListener(BX.Call.Event.onUserInvited, this.onCallUserInvitedHandler);\n\t\tthis.currentCall.removeEventListener(BX.Call.Event.onDestroy, this.onCallDestroyHandler);\n\t\tthis.currentCall.removeEventListener(BX.Call.Event.onUserStateChanged, this.onCallUserStateChangedHandler);\n\t\tthis.currentCall.removeEventListener(BX.Call.Event.onUserMicrophoneState, this.onCallUserMicrophoneStateHandler);\n\t\tthis.currentCall.removeEventListener(BX.Call.Event.onUserCameraState, this.onCallUserCameraStateHandler);\n\t\tthis.currentCall.removeEventListener(BX.Call.Event.onUserVideoPaused, this.onCallUserVideoPausedHandler);\n\t\tthis.currentCall.removeEventListener(BX.Call.Event.onLocalMediaReceived, this.onCallLocalMediaReceivedHandler);\n\t\tthis.currentCall.removeEventListener(BX.Call.Event.onRemoteMediaReceived, this.onCallRemoteMediaReceivedHandler);\n\t\tthis.currentCall.removeEventListener(BX.Call.Event.onRemoteMediaStopped, this.onCallRemoteMediaStoppedHandler);\n\t\tthis.currentCall.removeEventListener(BX.Call.Event.onUserVoiceStarted, this.onCallUserVoiceStartedHandler);\n\t\tthis.currentCall.removeEventListener(BX.Call.Event.onUserVoiceStopped, this.onCallUserVoiceStoppedHandler);\n\t\tthis.currentCall.removeEventListener(BX.Call.Event.onUserScreenState, this.onCallUserScreenStateHandler);\n\t\tthis.currentCall.removeEventListener(BX.Call.Event.onUserRecordState, this.onCallUserRecordStateHandler);\n\t\tthis.currentCall.removeEventListener(BX.Call.Event.onUserFloorRequest, this.onCallUserFloorRequestHandler);\n\t\tthis.currentCall.removeEventListener(BX.Call.Event.onMicrophoneLevel, this.onMicrophoneLevelHandler);\n\t\t//this.currentCall.removeEventListener(BX.Call.Event.onDeviceListUpdated, this._onCallDeviceListUpdatedHandler);\n\t\t//this.currentCall.removeEventListener(BX.Call.Event.onCallFailure, this._onCallFailureHandler);\n\t\tthis.currentCall.removeEventListener(BX.Call.Event.onLeave, this.onCallLeaveHandler);\n\t}\n\n\tonCallUserInvited(e)\n\t{\n\t\tthis.callView.addUser(e.userId);\n\n\t\tBX.Call.Util.getUsers(this.currentCall.id, [e.userId]).then(userData => {\n\t\t\tthis.controller.getStore().dispatch('users/set', Object.values(userData));\n\t\t\tthis.controller.getStore().dispatch('conference/setUsers', {users: Object.keys(userData)});\n\t\t\tthis.callView.updateUserData(userData)\n\t\t});\n\t}\n\n\tonCallUserStateChanged(e)\n\t{\n\t\tthis.callView.setUserState(e.userId, e.state);\n\t\tthis.updateCallUser(e.userId,{state: e.state});\n\t\t/*if (e.direction)\n\t\t{\n\t\t\tthis.callView.setUserDirection(e.userId, e.direction);\n\t\t}*/\n\t}\n\n\tonCallUserMicrophoneState(e)\n\t{\n\t\tthis.callView.setUserMicrophoneState(e.userId, e.microphoneState);\n\t\tthis.updateCallUser(e.userId, {microphoneState: e.microphoneState});\n\t}\n\n\tonCallUserCameraState(e)\n\t{\n\t\tthis.callView.setUserCameraState(e.userId, e.cameraState);\n\t\tthis.updateCallUser(e.userId, {cameraState: e.cameraState});\n\t}\n\n\tonCallUserVideoPaused(e)\n\t{\n\t\tthis.callView.setUserVideoPaused(e.userId, e.videoPaused);\n\t}\n\n\tonCallLocalMediaReceived(e)\n\t{\n\t\t//this.template.$emit('callLocalMediaReceived');\n\n\t\tthis.stopLocalVideoStream();\n\t\tconst enableVideoMirroring = e.tag == \"main\" ? BX.Call.Hardware.enableMirroring : false;\n\t\tthis.callView.setLocalStream(e.stream, enableVideoMirroring);\n\t\tthis.callView.setButtonActive(\"screen\", e.tag == \"screen\");\n\t\tif(e.tag == \"screen\")\n\t\t{\n\t\t\tif (!Utils.platform.isBitrixDesktop())\n\t\t\t{\n\t\t\t\tthis.showWebScreenSharePopup();\n\t\t\t}\n\t\t\tthis.callView.blockSwitchCamera();\n\t\t\tthis.callView.updateButtons();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tif (this.webScreenSharePopup)\n\t\t\t{\n\t\t\t\tthis.webScreenSharePopup.close();\n\t\t\t}\n\n\t\t\tif(!this.currentCall.callFromMobile && !this.isViewerMode())\n\t\t\t{\n\t\t\t\tthis.callView.unblockSwitchCamera();\n\t\t\t\tthis.callView.updateButtons();\n\t\t\t}\n\t\t}\n\t}\n\n\tonCallRemoteMediaReceived(e)\n\t{\n\t\tif (this.callView)\n\t\t{\n\t\t\tif ('track' in e)\n\t\t\t{\n\t\t\t\tthis.callView.setUserMedia(e.userId, e.kind, e.track)\n\t\t\t}\n\t\t\tif ('mediaRenderer' in e && e.mediaRenderer.kind === 'audio')\n\t\t\t{\n\t\t\t\tthis.callView.setUserMedia(e.userId, 'audio', e.mediaRenderer.stream.getAudioTracks()[0]);\n\t\t\t}\n\t\t\tif ('mediaRenderer' in e && (e.mediaRenderer.kind === 'video' || e.mediaRenderer.kind === 'sharing'))\n\t\t\t{\n\t\t\t\tthis.callView.setVideoRenderer(e.userId, e.mediaRenderer);\n\t\t\t}\n\t\t}\n\t}\n\n\tonCallRemoteMediaStopped(e)\n\t{\n\t\tif (this.callView)\n\t\t{\n\t\t\tif ('mediaRenderer' in e)\n\t\t\t{\n\t\t\t\tif (e.kind === 'video' || e.kind === 'sharing')\n\t\t\t\t{\n\t\t\t\t\tthis.callView.setVideoRenderer(e.userId, null);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.callView.setUserMedia(e.userId, e.kind, null);\n\t\t\t}\n\t\t}\n\t}\n\n\tonCallUserVoiceStarted(e)\n\t{\n\t\tif (e.local)\n\t\t{\n\t\t\tif (this.currentCall.muted && this.allowMutePopup)\n\t\t\t{\n\t\t\t\tthis.showMicMutedNotification();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tthis.callView.setUserTalking(e.userId, true);\n\t\tthis.callView.setUserFloorRequestState(e.userId, false);\n\t\tthis.updateCallUser(e.userId, {talking: true, floorRequestState: false});\n\t}\n\n\tonCallUserVoiceStopped(e)\n\t{\n\t\tthis.callView.setUserTalking(e.userId, false);\n\t\tthis.updateCallUser(e.userId, {talking: false});\n\t}\n\n\tonCallUserScreenState(e)\n\t{\n\t\tif(this.callView)\n\t\t{\n\t\t\tthis.callView.setUserScreenState(e.userId, e.screenState);\n\t\t}\n\t\tthis.updateCallUser(e.userId, {screenState: e.screenState});\n\t}\n\n\tonCallUserRecordState(event)\n\t{\n\t\tthis.callRecordState = event.recordState.state;\n\t\tthis.callView.setRecordState(event.recordState);\n\n\t\tif (!this.canRecord() || event.userId != this.controller.getUserId())\n\t\t{\n\t\t\treturn true;\n\t\t}\n\n\t\tif (\n\t\t\tevent.recordState.state === BX.Call.View.RecordState.Started\n\t\t\t&& event.recordState.userId == this.controller.getUserId()\n\t\t)\n\t\t{\n\t\t\tconst windowId = window.bxdWindowId || window.document.title;\n\t\t\tlet fileName = BX.message('IM_CALL_RECORD_NAME');\n\t\t\tlet dialogId = this.currentCall.associatedEntity.id;\n\t\t\tlet dialogName = this.currentCall.associatedEntity.name;\n\t\t\tlet callId = this.currentCall.id;\n\t\t\tlet callDate = BX.Main.Date.format(this.params.formatRecordDate || 'd.m.Y');\n\n\t\t\tif (fileName)\n\t\t\t{\n\t\t\t\tfileName = fileName\n\t\t\t\t\t.replace('#CHAT_TITLE#', dialogName)\n\t\t\t\t\t.replace('#CALL_ID#', callId)\n\t\t\t\t\t.replace('#DATE#', callDate)\n\t\t\t\t;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tfileName = \"call_record_\"+this.currentCall.id;\n\t\t\t}\n\n\t\t\tBX.CallEngine.getRestClient().callMethod(\"im.call.onStartRecord\", {callId: this.currentCall.id});\n\t\t\tBXDesktopSystem.CallRecordStart({\n\t\t\t\twindowId,\n\t\t\t\tfileName,\n\t\t\t\tcallId,\n\t\t\t\tcallDate,\n\t\t\t\tdialogId,\n\t\t\t\tdialogName,\n\t\t\t\tmuted: this.currentCall.isMuted(),\n\t\t\t\tcropTop: 72,\n\t\t\t\tcropBottom: 73,\n\t\t\t\tshareMethod: 'im.disk.record.share'\n\t\t\t});\n\t\t}\n\t\telse if (event.recordState.state === BX.Call.View.RecordState.Stopped)\n\t\t{\n\t\t\tBXDesktopSystem.CallRecordStop();\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tonCallUserFloorRequest(e)\n\t{\n\t\tthis.callView.setUserFloorRequestState(e.userId, e.requestActive);\n\t\tthis.updateCallUser(e.userId, {floorRequestState: e.requestActive});\n\t}\n\n\tonMicrophoneLevel(e)\n\t{\n\t\tthis.callView.setMicrophoneLevel(e.level);\n\t}\n\n\tonCallJoin(e)\n\t{\n\t\tif (!e.local)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.isViewerMode())\n\t\t{\n\t\t\tthis.callView.unblockButtons(['camera', 'floorRequest', 'screen', 'record']);\n\t\t}\n\t\tthis.callView.setUiState(BX.Call.View.UiState.Connected);\n\t}\n\n\tonCallLeave(e)\n\t{\n\t\tif (!e.local)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.webScreenSharePopup)\n\t\t{\n\t\t\tthis.webScreenSharePopup.close();\n\t\t}\n\n\t\tthis.endCall();\n\t}\n\n\tonCallDestroy(e)\n\t{\n\t\tthis.currentCall = null;\n\n\t\tif (this.floatingScreenShareWindow)\n\t\t{\n\t\t\tthis.floatingScreenShareWindow.close;\n\t\t}\n\n\t\tif (this.webScreenSharePopup)\n\t\t{\n\t\t\tthis.webScreenSharePopup.close();\n\t\t}\n\n\t\tthis.restart();\n\t}\n\n\tonCheckDevicesSave(changedValues)\n\t{\n\t\tif (changedValues['camera'])\n\t\t{\n\t\t\tBX.Call.Hardware.defaultCamera = changedValues['camera'];\n\t\t}\n\n\t\tif (changedValues['microphone'])\n\t\t{\n\t\t\tBX.Call.Hardware.defaultMicrophone = changedValues['microphone'];\n\t\t}\n\n\t\tif (changedValues['audioOutput'])\n\t\t{\n\t\t\tBX.Call.Hardware.defaultSpeaker = changedValues['audioOutput'];\n\t\t}\n\n\t\tif (changedValues['preferHDQuality'])\n\t\t{\n\t\t\tBX.Call.Hardware.preferHdQuality = changedValues['preferHDQuality'];\n\t\t}\n\n\t\tif (changedValues['enableMicAutoParameters'])\n\t\t{\n\t\t\tBX.Call.Hardware.enableMicAutoParameters = changedValues['enableMicAutoParameters'];\n\t\t}\n\t}\n\n\tsetCameraState(state)\n\t{\n\t\tthis.callView.setCameraState(state);\n\t}\n\t/* endregion 01. Call methods */\n\n\t/* region 02. Component methods */\n\t\t/* region 01. General actions */\n\t\tisChatShowed()\n\t\t{\n\t\t\treturn this.getConference().common.showChat;\n\t\t}\n\n\t\ttoggleChat()\n\t\t{\n\t\t\tconst rightPanelMode = this.getConference().common.rightPanelMode;\n\t\t\tif (rightPanelMode === RightPanelMode.hidden)\n\t\t\t{\n\t\t\t\tthis.controller.getStore().dispatch('conference/changeRightPanelMode', {mode: RightPanelMode.chat});\n\t\t\t\tthis.callView.setButtonActive('chat', true);\n\t\t\t}\n\t\t\telse if (rightPanelMode === RightPanelMode.chat)\n\t\t\t{\n\t\t\t\tthis.controller.getStore().dispatch('conference/changeRightPanelMode', {mode: RightPanelMode.hidden});\n\t\t\t\tthis.callView.setButtonActive('chat', false);\n\t\t\t}\n\t\t\telse if (rightPanelMode === RightPanelMode.users)\n\t\t\t{\n\t\t\t\tthis.controller.getStore().dispatch('conference/changeRightPanelMode', {mode: RightPanelMode.split});\n\t\t\t\tthis.callView.setButtonActive('chat', true);\n\t\t\t}\n\t\t\telse if (rightPanelMode === RightPanelMode.split)\n\t\t\t{\n\t\t\t\tthis.controller.getStore().dispatch('conference/changeRightPanelMode', {mode: RightPanelMode.users});\n\t\t\t\tthis.callView.setButtonActive('chat', false);\n\t\t\t}\n\t\t}\n\n\t\ttoggleUserList()\n\t\t{\n\t\t\tconst rightPanelMode = this.getConference().common.rightPanelMode;\n\t\t\tif (rightPanelMode === RightPanelMode.hidden)\n\t\t\t{\n\t\t\t\tthis.controller.getStore().dispatch('conference/changeRightPanelMode', {mode: RightPanelMode.users});\n\t\t\t\tthis.callView.setButtonActive('users', true);\n\t\t\t}\n\t\t\telse if (rightPanelMode === RightPanelMode.users)\n\t\t\t{\n\t\t\t\tthis.controller.getStore().dispatch('conference/changeRightPanelMode', {mode: RightPanelMode.hidden});\n\t\t\t\tthis.callView.setButtonActive('users', false);\n\t\t\t}\n\t\t\telse if (rightPanelMode === RightPanelMode.chat)\n\t\t\t{\n\t\t\t\tthis.controller.getStore().dispatch('conference/changeRightPanelMode', {mode: RightPanelMode.split});\n\t\t\t\tthis.callView.setButtonActive('users', true);\n\t\t\t}\n\t\t\telse if (rightPanelMode === RightPanelMode.split)\n\t\t\t{\n\t\t\t\tthis.controller.getStore().dispatch('conference/changeRightPanelMode', {mode: RightPanelMode.chat});\n\t\t\t\tthis.callView.setButtonActive('users', false);\n\t\t\t}\n\t\t}\n\n\t\tpinUser(user)\n\t\t{\n\t\t\tif (!this.callView)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.callView.pinUser(user.id);\n\t\t\tthis.callView.setLayout(BX.Call.View.Layout.Centered);\n\t\t}\n\n\t\tunpinUser()\n\t\t{\n\t\t\tif (!this.callView)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.callView.unpinUser();\n\t\t}\n\n\t\tchangeBackground()\n\t\t{\n\t\t\tif (!BX.Call.Hardware)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tBX.Call.Hardware.BackgroundDialog.open();\n\t\t}\n\n\t\topenChat(user)\n\t\t{\n\t\t\tthis.desktop.onCustomEvent('bxConferenceOpenChat', [user.id]);\n\t\t}\n\n\t\topenProfile(user)\n\t\t{\n\t\t\tthis.desktop.onCustomEvent('bxConferenceOpenProfile', [user.id]);\n\t\t}\n\n\t\tsetDialogInited()\n\t\t{\n\t\t\tthis.dialogInited = true;\n\t\t\tlet dialogData = this.getDialogData();\n\t\t\tdocument.title = dialogData.name;\n\t\t}\n\n\t\tchangeVideoconfUrl(newUrl)\n\t\t{\n\t\t\twindow.history.pushState(\"\", \"\", newUrl);\n\t\t}\n\n\t\tsendNewMessageNotify(params)\n\t\t{\n\t\t\tconst MAX_LENGTH = 40;\n\t\t\tconst AUTO_HIDE_TIME = 4000;\n\n\t\t\tif (!this.checkIfMessageNotifyIsNeeded(params))\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tlet text = Utils.text.purify(params.message.text, params.message.params, params.files);\n\t\t\tif (text.length > MAX_LENGTH)\n\t\t\t{\n\t\t\t\ttext = text.substring(0, MAX_LENGTH - 1) + '...';\n\t\t\t}\n\n\t\t\tlet avatar = '';\n\t\t\tlet userName = '';\n\n\t\t\t// avatar and username only for non-system messages\n\t\t\tif (params.message.senderId > 0 && params.message.system !== 'Y')\n\t\t\t{\n\t\t\t\tconst messageAuthor = this.controller.getStore().getters['users/get'](params.message.senderId, true);\n\t\t\t\tuserName = Tag.render`\n\t\t\t\t\t<div class=\"bx-im-application-call-notify-new-message-username\">${Text.encode(messageAuthor.name)}:</div>\n\t\t\t\t`;\n\t\t\t\tif (messageAuthor.avatar)\n\t\t\t\t{\n\t\t\t\t\tavatar = Tag.render`\n\t\t\t\t\t\t<div class=\"bx-im-application-call-notify-new-message-avatar-wrap\">\n\t\t\t\t\t\t\t<img class=\"bx-im-application-call-notify-new-message-avatar\" src=\"${messageAuthor.avatar}\" alt=\"\"/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t`;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst content = Tag.render`\n\t\t\t\t<div class=\"bx-im-application-call-notify-new-message\">\n\t\t\t\t\t<div class=\"bx-im-application-call-notify-new-message-text\">${text}</div>\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\t\tif (avatar)\n\t\t\t{\n\t\t\t\tDom.prepend(avatar, content);\n\t\t\t}\n\t\t\telse if (userName)\n\t\t\t{\n\t\t\t\tDom.prepend(userName, content)\n\t\t\t}\n\n\t\t\tconst notify = BX.UI.Notification.Center.notify({\n\t\t\t\tcontent: content,\n\t\t\t\twidth: 'auto',\n\t\t\t\tautoHideDelay: AUTO_HIDE_TIME\n\t\t\t});\n\n\t\t\tnotify.getContent().addEventListener('click', () => {\n\t\t\t\tnotify.close();\n\t\t\t\tthis.toggleChat();\n\t\t\t})\n\n\t\t\treturn true;\n\t\t}\n\n\t\tcheckIfMessageNotifyIsNeeded(params)\n\t\t{\n\t\t\tconst rightPanelMode = this.getConference().common.rightPanelMode;\n\t\t\treturn !Utils.device.isMobile()\n\t\t\t\t&& params.chatId === this.getChatId()\n\t\t\t\t&& (rightPanelMode !== RightPanelMode.chat || rightPanelMode !== RightPanelMode.split)\n\t\t\t\t&& params.message.senderId !== this.controller.getUserId()\n\t\t\t\t&& !this.getConference().common.error;\n\t\t}\n\n\t\tonInputFocus(e)\n\t\t{\n\t\t\tthis.callView.setHotKeyTemporaryBlock(true);\n\t\t}\n\n\t\tonInputBlur(e)\n\t\t{\n\t\t\tthis.callView.setHotKeyTemporaryBlock(false);\n\t\t}\n\n\t\tsetUserWasRenamed()\n\t\t{\n\t\t\tif (this.callView)\n\t\t\t{\n\t\t\t\tthis.callView.localUser.userModel.wasRenamed = true;\n\t\t\t}\n\t\t}\n\t\t/* endregion 01. General actions */\n\n\t\t/* region 02. Store actions */\n\t\tsetError(errorCode)\n\t\t{\n\t\t\tconst currentError = this.getConference().common.error;\n\t\t\t// if user kicked from call - dont show him end of call form\n\t\t\tif (currentError && currentError === ConferenceErrorCode.kickedFromCall)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.controller.getStore().commit('conference/setError', {errorCode});\n\t\t}\n\n\t\ttoggleSmiles()\n\t\t{\n\t\t\tthis.controller.getStore().commit('conference/toggleSmiles');\n\t\t}\n\n\t\tsetJoinType(joinWithVideo)\n\t\t{\n\t\t\tthis.controller.getStore().commit('conference/setJoinType', {joinWithVideo});\n\t\t}\n\n\t\tsetConferenceStatus(conferenceStarted)\n\t\t{\n\t\t\tthis.controller.getStore().commit('conference/setConferenceStatus', {conferenceStarted});\n\t\t}\n\n\t\tsetConferenceStartDate(conferenceStartDate)\n\t\t{\n\t\t\tthis.controller.getStore().commit('conference/setConferenceStartDate', {conferenceStartDate});\n\t\t}\n\n\t\tsetUserReadyToJoin()\n\t\t{\n\t\t\tthis.controller.getStore().commit('conference/setUserReadyToJoin');\n\t\t}\n\n\t\tupdateCallUser(userId, fields)\n\t\t{\n\t\t\tthis.controller.getStore().dispatch('call/updateUser', {id: userId, fields});\n\t\t}\n\t\t/* endregion 02. Store actions */\n\n\t\t/* region 03. Rest actions */\n\t\tsetUserName(name)\n\t\t{\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tthis.restClient.callMethod('im.call.user.update', {\n\t\t\t\t\tname: name,\n\t\t\t\t\tchat_id: this.getChatId()\n\t\t\t\t}).then(() => {\n\t\t\t\t\tresolve();\n\t\t\t\t}).catch((error) => {\n\t\t\t\t\treject(error)\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tcheckPassword(password)\n\t\t{\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tthis.restClient.callMethod('im.videoconf.password.check', { password, alias: this.params.alias })\n\t\t\t\t\t.then(result => {\n\t\t\t\t\t\tif (result.data() === true)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.restClient.setPassword(password);\n\t\t\t\t\t\t\tthis.controller.getStore().commit('conference/common', {\n\t\t\t\t\t\t\t\tpassChecked: true\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tthis.initUserComplete();\n\t\t\t\t\t\t\tresolve();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treject();\n\t\t\t\t\t\t}\n\t\t\t\t\t}).catch(result => {\n\t\t\t\t\t\tconsole.error('Password check error', result);\n\t\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tchangeLink()\n\t\t{\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tthis.restClient.callMethod('im.videoconf.share.change', {\n\t\t\t\t\tdialog_id: this.getDialogId()\n\t\t\t\t}).then(() => {\n\t\t\t\t\tresolve();\n\t\t\t\t}).catch((error) => {\n\t\t\t\t\treject(error)\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\t/* endregion 03. Rest actions */\n\t/* endregion 02. Component methods */\n\n/* endregion 02. Methods */\n\n/* region 03. Utils */\n\tready()\n\t{\n\t\tif (this.inited)\n\t\t{\n\t\t\tlet promise = new BX.Promise;\n\t\t\tpromise.resolve(this);\n\n\t\t\treturn promise;\n\t\t}\n\n\t\treturn this.initPromise;\n\t}\n\n\tgetConference()\n\t{\n\t\treturn this.controller.getStore().state.conference;\n\t}\n\n\tisBroadcast()\n\t{\n\t\treturn this.getConference().common.isBroadcast;\n\t}\n\n\tgetBroadcastPresenters()\n\t{\n\t\treturn this.getConference().common.presenters;\n\t}\n\n\tisExternalUser()\n\t{\n\t\treturn !!this.getUserHash();\n\t}\n\n\tgetChatId()\n\t{\n\t\treturn parseInt(this.params.chatId);\n\t}\n\n\tgetDialogId()\n\t{\n\t\treturn this.params.dialogId;\n\t}\n\n\tgetDialogData()\n\t{\n\t\tif (!this.dialogInited)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\treturn this.controller.getStore().getters['dialogues/get'](this.getDialogId());\n\t}\n\n\tgetHost()\n\t{\n\t\treturn location.origin || '';\n\t}\n\n\tgetStartupErrorCode()\n\t{\n\t\treturn this.params.startupErrorCode? this.params.startupErrorCode : '';\n\t}\n\n\tisHttps()\n\t{\n\t\treturn location.protocol === 'https:';\n\t}\n\n\tgetUserHash()\n\t{\n\t\treturn this.getConference().user.hash;\n\t}\n\n\tgetUserHashCookie()\n\t{\n\t\tlet userHash = '';\n\n\t\tlet cookie = Cookie.get(null, 'BITRIX_CALL_HASH');\n\t\tif (typeof cookie === 'string' && cookie.match(/^[a-f0-9]{32}$/))\n\t\t{\n\t\t\tuserHash = cookie;\n\t\t}\n\n\t\treturn userHash;\n\t}\n\n\tswitchToSessAuth()\n\t{\n\t\tthis.restClient.restClient.queryParams = undefined;\n\n\t\treturn true;\n\t}\n\n/* endregion 03. Utils */\n}\n\nConferenceApplication.FeatureState = {\n\tEnabled: 'enabled',\n\tDisabled: 'disabled',\n\tLimited: 'limited',\n};\n\nexport {ConferenceApplication};\n"],"names":["RestAuth","Object","freeze","guest","CallRestClient","params","queryAuthRestore","setAuthId","restClient","RestClient","endpoint","queryParams","cors","authId","customAuthId","match","call_auth_id","console","error","call_custom_auth_id","chatId","call_chat_id","alias","videoconf_id","password","videoconf_password","method","callback","sendCallback","logTag","Utils","getLogTrackingParams","name","promise","BX","Promise","callMethod","then","result","fulfill","ex","hash","RestMethod","widgetUserRegister","warn","error_description","reject","calls","bHaltOnError","resultCallback","hasOwnProperty","callBatch","ConferenceApplication","inited","hardwareInited","dialogInited","initPromise","userId","parseInt","siteId","dialogId","toString","passwordRequired","isBroadcast","Messenger","Lib","Logger","setConfig","loggerConfig","messagesQueue","template","rootNode","node","document","createElement","event","VueVendorV2","callContainer","preCall","currentCall","videoStrategy","callDetails","showFeedback","featureConfig","forEach","limit","id","localVideoStream","conferencePageTagInterval","onCallUserInvitedHandler","onCallUserInvited","bind","onCallUserStateChangedHandler","onCallUserStateChanged","onCallUserMicrophoneStateHandler","onCallUserMicrophoneState","onCallUserCameraStateHandler","onCallUserCameraState","onCallUserVideoPausedHandler","onCallUserVideoPaused","onCallLocalMediaReceivedHandler","debounce","onCallLocalMediaReceived","onCallRemoteMediaReceivedHandler","onCallRemoteMediaReceived","onCallRemoteMediaStoppedHandler","onCallRemoteMediaStopped","onCallUserVoiceStartedHandler","onCallUserVoiceStarted","onCallUserVoiceStoppedHandler","onCallUserVoiceStopped","onCallUserScreenStateHandler","onCallUserScreenState","onCallUserRecordStateHandler","onCallUserRecordState","onCallUserFloorRequestHandler","onCallUserFloorRequest","onMicrophoneLevelHandler","onMicrophoneLevel","_onCallJoinHandler","onCallJoin","onCallLeaveHandler","onCallLeave","onCallDestroyHandler","onCallDestroy","onInputFocusHandler","onInputFocus","onInputBlurHandler","onInputBlur","onPreCallDestroyHandler","onPreCallDestroy","onPreCallUserStateChangedHandler","onPreCallUserStateChanged","waitingForCallStatus","waitingForCallStatusTimeout","callEventReceived","callRecordState","Call","View","RecordState","Stopped","desktop","floatingScreenShareWindow","webScreenSharePopup","mutePopup","allowMutePopup","initDesktopEvents","initRestClient","subscribePreCallChanges","initPullClient","initCore","setModelData","initComponent","initCallInterface","initHardware","initUserComplete","platform","isBitrixDesktop","resolve","Desktop","FloatingScreenShare","onBackToCallClick","onFloatingScreenShareBackToCallClick","onStopSharingClick","onFloatingScreenShareStopClick","onChangeScreenClick","onFloatingScreenShareChangeScreenClick","addCustomEvent","title","x","y","width","height","app","setSharingData","show","window","addEventListener","onWindowFocus","onWindowBlur","counter","controller","getStore","commit","messageCount","EventEmitter","subscribe","EventType","textarea","focus","blur","conference","userRenameFocus","userRenameBlur","getHost","setConfId","conferenceId","onCallCreated","isIntranetOrExtranet","pullClient","PullClient","serverEnabled","skipStorageInit","configTimestamp","skipCheckRevision","getPublicListMethod","PULL","start","Controller","host","languageId","language","pull","client","rest","vuexBuilder","database","browser","isIe","databaseName","databaseType","VuexBuilder","DatabaseType","localStorage","models","ConferenceModel","create","CallModel","ready","dialog","getChatId","getDialogId","options","darkBackground","presentersIds","presenters","map","presenter","dispatch","broadcastMode","passChecked","conferenceTitle","getStartupErrorCode","setError","createVue","el","data","vue","getElementById","hiddenButtons","isViewerMode","push","callView","container","showChatButtons","showUsersButton","showShareButton","getFeatureState","FeatureState","Disabled","showRecordButton","userLimit","Util","getUserLimit","layout","device","isMobile","Layout","Mobile","Centered","uiState","UiState","Preparing","blockedButtons","localUserState","UserState","Idle","hiddenTopButtons","getBroadcastPresenters","length","broadcastingMode","broadcastingPresenters","Event","onButtonClick","onCallButtonClick","onReplaceCamera","onCallReplaceCamera","onReplaceMicrophone","onCallReplaceMicrophone","onReplaceSpeaker","onCallReplaceSpeaker","onChangeHdVideo","onCallViewChangeHdVideo","onChangeMicAutoParams","onCallViewChangeMicAutoParams","onChangeFaceImprove","onCallViewChangeFaceImprove","onUserRename","onCallViewUserRename","onUserPinned","onCallViewUserPinned","blockAddUser","blockHistoryButton","initUser","startPageTagInterval","tryJoinExistingCall","initCall","initPullHandlers","subscribeToStoreChanges","initComplete","getConference","common","setUserId","switchToSessAuth","hashFromCookie","getUserHashCookie","setChatId","SidePanel","Instance","disableAnchorBinding","user_hash","message","setLocalUserId","created","userCount","clearInterval","setInterval","LocalStorage","set","CallEngine","getConferencePageTag","entityType","entityId","provider","Provider","Voximplant","type","Type","Permanent","success","setTimeout","setConferenceStatus","setRestClient","setPullClient","setCurrentUserId","getUserId","unblockButtons","ImCallPullHandler","store","application","mutation","state","payload","fields","updateUserData","setButtonCounter","actionName","dialogMuted","previousCounter","isExternalUser","localUser","userModel","allowRename","onCustomEvent","Hardware","init","values","microphoneList","ConferenceErrorCode","missingMicrophone","enableMediaSelection","isHttps","unsupportedBrowser","unsafeConnection","videoEnabled","viewerMode","getDialogData","setLayout","Grid","setUiState","Calling","setLocalStream","enableMirroring","stopLocalVideoStream","setCameraState","Engine","getInstance","createCall","enableMicAutoParameters","joinExisting","e","call","useHdVideo","defaultMicrophone","setMicrophoneId","defaultCamera","setCameraId","appendUsers","getUsers","getCallUsers","userData","users","keys","releasePreCall","bindCallEvents","isMuted","setMuted","isNew","setVideoEnabled","inviteUsers","answer","useVideo","joinAsViewer","callId","video","prop","getBoolean","setLocalUserDirection","EndpointDirection","RecvOnly","SendRecv","getCallWithId","wasConnected","getBrowserForStatistics","IsMobile","isConference","removeCallEvents","hangup","isRecording","BXDesktopSystem","CallRecordStop","destroy","close","releaseLocalMedia","userLeftCall","unsubscribe","trace","kickedFromCall","disconnect","endCall","includeSelf","stream","getTracks","tr","stop","cameraId","micId","Enabled","articleCode","getFeature","getDesktopVersion","canRecord","UI","InfoHelper","MicMutedPopup","bindElement","buttons","microphone","elements","icon","targetContainer","onClose","onUnmuteClick","onCallViewToggleMuteButtonClick","muted","WebScreenSharePopup","screen","root","onCallViewToggleScreenSharingButtonClick","currentUserId","isCurrentUserPresenter","includes","associatedEntity","updatePreCallCounter","onUserStateChanged","onDestroy","setConferenceStartDate","startDate","userReadyToJoin","joinWithVideo","joinCall","startCall","removeEventListener","clearTimeout","userInCallCount","getParticipatingUsers","strategyType","VideoStrategy","OnlySpeaker","AllowAll","deviceId","$emit","microphoneId","defaultSpeaker","preferHdQuality","allowHdVideo","allowMicAutoParams","cameraSmoothingStatus","faceImproveEnabled","newName","renameGuestMobile","renameGuest","updateCallUser","pinned","renameRequested","setUserName","wasRenamed","log","renameSlider","buttonName","handlers","onCallViewHangupButtonClick","onCallViewCloseButtonClick","toggleMute","toggleScreenSharing","record","onCallViewRecordButtonClick","toggleVideo","onCallViewToggleVideoButtonClick","toggleSpeaker","onCallViewToggleSpeakerButtonClick","showChat","onCallViewShowChatButtonClick","toggleUsers","onCallViewToggleUsersButtonClick","share","onCallViewShareButtonClick","fullscreen","onCallViewFullScreenButtonClick","floorRequest","onCallViewFloorRequestButtonClick","CallRecordMute","Limited","showFeatureLimitSlider","isScreenSharingStarted","stopScreenSharing","CallRecordStopSharing","startScreenSharing","recordState","Started","setButtonActive","Helper","Paused","CallRecordPause","Resumed","sendRecordState","action","date","Date","initialized","cameraList","muteSpeaker","speakerMuted","fromHotKey","Notification","Center","notify","content","position","autoHideDelay","closeButton","notifyWidth","body","clientWidth","Loc","getMessage","Clipboard","copy","link","toggleFullScreen","BXDesktopWindow","ExecuteCommand","hide","webkitFullscreenElement","fullscreenElement","isFullScreen","exitFullScreen","enterFullScreen","IsChrome","IsSafari","webkitRequestFullScreen","IsFirefox","requestFullscreen","cancelFullScreen","mozCancelFullScreen","webkitCancelFullScreen","exitFullscreen","toggleChat","toggleUserList","floorState","getUserFloorRequestState","getCurrentUserId","talkingState","getUserTalking","setUserFloorRequestState","requestFloor","callViewFloorRequestTimeout","onUserInvited","onUserMicrophoneState","onUserCameraState","onUserVideoPaused","onLocalMediaReceived","onRemoteMediaReceived","onRemoteMediaStopped","onUserVoiceStarted","onUserVoiceStopped","onUserScreenState","onUserRecordState","onUserFloorRequest","onJoin","onLeave","addUser","setUserState","setUserMicrophoneState","microphoneState","setUserCameraState","cameraState","setUserVideoPaused","videoPaused","enableVideoMirroring","tag","showWebScreenSharePopup","blockSwitchCamera","updateButtons","callFromMobile","unblockSwitchCamera","setUserMedia","kind","track","mediaRenderer","getAudioTracks","setVideoRenderer","local","showMicMutedNotification","setUserTalking","talking","floorRequestState","setUserScreenState","screenState","setRecordState","windowId","bxdWindowId","fileName","dialogName","callDate","Main","format","formatRecordDate","replace","getRestClient","CallRecordStart","cropTop","cropBottom","shareMethod","requestActive","setMicrophoneLevel","level","Connected","restart","changedValues","rightPanelMode","RightPanelMode","hidden","mode","chat","split","user","pinUser","unpinUser","BackgroundDialog","open","dialogData","newUrl","history","pushState","MAX_LENGTH","AUTO_HIDE_TIME","checkIfMessageNotifyIsNeeded","text","purify","files","substring","avatar","userName","senderId","system","messageAuthor","getters","Tag","render","Text","encode","Dom","prepend","getContent","setHotKeyTemporaryBlock","errorCode","currentError","conferenceStarted","conferenceStartDate","chat_id","setPassword","dialog_id","getUserHash","location","origin","startupErrorCode","protocol","userHash","cookie","Cookie","get","undefined"],"mappings":"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"}
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.29 |
proxy
|
phpinfo
|
Settings