File manager - Edit - /home/web/vm-3fadc827.na4u.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 } 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\tthis.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\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\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\">${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","callView","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","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","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","notifyWidth","body","clientWidth","Notification","Center","notify","content","Loc","getMessage","autoHideDelay","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","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.28 |
proxy
|
phpinfo
|
Settings