{ "id": "com.mattermost.calls", "name": "Calls", "description": "Integrates real-time voice communication in Mattermost", "homepage_url": "https://github.com/mattermost/mattermost-plugin-calls/", "support_url": "https://github.com/mattermost/mattermost-plugin-calls/issues", "release_notes_url": "https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.29.6", "icon_path": "assets/plugin_icon.svg", "version": "0.29.6", "min_server_version": "9.5.0", "server": { "executables": { "freebsd-amd64": "server/dist/plugin-freebsd-amd64", "linux-amd64": "server/dist/plugin-linux-amd64", "linux-arm64": "server/dist/plugin-linux-arm64", "openbsd-amd64": "server/dist/plugin-openbsd-amd64" }, "executable": "" }, "webapp": { "bundle_path": "webapp/dist/main.js" }, "settings_schema": { "header": "Calls plugin enables voice calls with screensharing in channels. See [documentation](https://docs.mattermost.com/channels/make-calls.html) to learn more.", "footer": "", "settings": [ { "key": "DefaultEnabled", "display_name": "Test mode", "type": "custom", "help_text": "When test mode is enabled, only system admins are able to start calls in channels. This allows testing to confirm calls are working as expected.", "placeholder": "", "default": null, "hosting": "on-prem" }, { "key": "UDPServerAddress", "display_name": "RTC Server Address (UDP)", "type": "text", "help_text": "The local IP address used by the RTC server to listen on for UDP connections.", "placeholder": "127.0.0.1", "default": "", "hosting": "on-prem" }, { "key": "TCPServerAddress", "display_name": "RTC Server Address (TCP)", "type": "text", "help_text": "The local IP address used by the RTC server to listen on for TCP connections.", "placeholder": "127.0.0.1", "default": "", "hosting": "on-prem" }, { "key": "UDPServerPort", "display_name": "RTC Server Port (UDP)", "type": "number", "help_text": "The UDP port the RTC server will listen on.", "placeholder": "8443", "default": 8443, "hosting": "on-prem" }, { "key": "TCPServerPort", "display_name": "RTC Server Port (TCP)", "type": "number", "help_text": "The TCP port the RTC server will listen on.", "placeholder": "8443", "default": 8443, "hosting": "on-prem" }, { "key": "ICEHostOverride", "display_name": "ICE Host Override", "type": "text", "help_text": "(Optional) The IP (or hostname) to be used as the host ICE candidate. If empty, it defaults to resolving via STUN.", "placeholder": "", "default": "", "hosting": "on-prem" }, { "key": "ICEHostPortOverride", "display_name": "ICE Host Port Override", "type": "number", "help_text": "(Optional) A port number to be used as an override for host candidates in place of the one used to listen on.\nNote: this port will apply to both UDP and TCP host candidates", "placeholder": "", "default": null, "hosting": "on-prem" }, { "key": "RTCDServiceURL", "display_name": "RTCD service URL", "type": "text", "help_text": "(Optional) The URL to a running RTCD service instance that should host the calls. When set (non empty) all calls will be handled by the external service.", "placeholder": "https://rtcd.example.com", "default": null, "hosting": "on-prem" }, { "key": "MaxCallParticipants", "display_name": "Max call participants", "type": "number", "help_text": "The maximum number of participants that can join a call. If left empty, or set to 0, it means unlimited.", "placeholder": "", "default": 0, "hosting": "on-prem" }, { "key": "ICEServersConfigs", "display_name": "ICE Servers Configurations", "type": "longtext", "help_text": "(Optional) A list of ICE servers (STUN/TURN) configurations to use. This field should contain a valid JSON array.", "placeholder": "[{\n \"urls\":[\"turn:turnserver.example.org:3478\"],\n \"username\": \"webrtc\",\n \"credential\": \"turnpassword\"\n}]", "default": "[{\"urls\":[\"stun:stun.global.calls.mattermost.com:3478\"]}]", "hosting": "on-prem" }, { "key": "TURNStaticAuthSecret", "display_name": "TURN Static Auth Secret", "type": "text", "help_text": "(Optional) The secret key used to generate TURN short-lived authentication credentials.", "placeholder": "", "default": "", "hosting": "on-prem" }, { "key": "TURNCredentialsExpirationMinutes", "display_name": "TURN Credentials Expiration (minutes)", "type": "number", "help_text": "(Optional) The number of minutes that the generated TURN credentials will be valid for.", "placeholder": "", "default": 1440, "hosting": "on-prem" }, { "key": "ServerSideTURN", "display_name": "Server Side TURN", "type": "bool", "help_text": "(Optional) When set to on it will pass and use configured TURN candidates to server initiated connections.", "placeholder": "", "default": false, "hosting": "on-prem" }, { "key": "AllowScreenSharing", "display_name": "Allow screen sharing", "type": "bool", "help_text": "When set to true it allows call participants to share their screen.", "placeholder": "", "default": true, "hosting": "" }, { "key": "EnableSimulcast", "display_name": "Enable simulcast for screen sharing (Experimental)", "type": "bool", "help_text": "When set to true it enables simulcast for screen sharing. This can help to improve screen sharing quality.", "placeholder": "", "default": false, "hosting": "" }, { "key": "EnableRecordings", "display_name": "Enable call recordings (Beta)", "type": "bool", "help_text": "(Optional) When set to true, call recordings are enabled.", "placeholder": "", "default": false, "hosting": "" }, { "key": "JobServiceURL", "display_name": "Job service URL", "type": "text", "help_text": "The URL to a running calls job service instance used for call recordings.", "placeholder": "https://calls-job-service.example.com", "default": null, "hosting": "" }, { "key": "MaxRecordingDuration", "display_name": "Maximum call recording duration", "type": "number", "help_text": "The maximum duration (in minutes) for call recordings. Value must be in the range [15, 180].", "placeholder": "", "default": 60, "hosting": "" }, { "key": "RecordingQuality", "display_name": "Call recording quality", "type": "dropdown", "help_text": "The audio and video quality of call recordings.\n Note: this setting can affect the overall performance of the job service and the number of concurrent recording jobs that can be run.", "placeholder": "", "default": "medium", "options": [ { "display_name": "Low", "value": "low" }, { "display_name": "Medium", "value": "medium" }, { "display_name": "High", "value": "high" } ], "hosting": "on-prem" }, { "key": "EnableTranscriptions", "display_name": "Enable call transcriptions (Experimental)", "type": "bool", "help_text": "(Optional) When set to true, post-call transcriptions are enabled.", "placeholder": "", "default": false, "hosting": "" }, { "key": "TranscribeAPI", "display_name": "Call transcriber API", "type": "dropdown", "help_text": "The speech-to-text API to use for post-call transcriptions.", "placeholder": "", "default": "whisper.cpp", "options": [ { "display_name": "Whisper.CPP", "value": "whisper.cpp" }, { "display_name": "Azure AI", "value": "azure" } ], "hosting": "on-prem" }, { "key": "TranscriberModelSize", "display_name": "Call transcriber model size", "type": "dropdown", "help_text": "The speech-to-text model size to use for post-call transcriptions. Heavier models will produce more accurate results at the expense of processing time and resources usage.", "placeholder": "", "default": "base", "options": [ { "display_name": "Tiny", "value": "tiny" }, { "display_name": "Base", "value": "base" }, { "display_name": "Small", "value": "small" } ], "hosting": "on-prem" }, { "key": "TranscribeAPIAzureSpeechKey", "display_name": "Azure Speech Services API Key", "type": "text", "help_text": "The API key for Azure Speech Services", "placeholder": "", "default": "", "hosting": "on-prem" }, { "key": "TranscribeAPIAzureSpeechRegion", "display_name": "Azure Speech Services API Region", "type": "text", "help_text": "The API region for Azure Speech Services", "placeholder": "", "default": "", "hosting": "on-prem" }, { "key": "TranscriberNumThreads", "display_name": "Call transcriber threads", "type": "number", "help_text": "The number of threads used by the post-call transcriber. This must be in the range [1, numCPUs].", "placeholder": "", "default": 2, "hosting": "" }, { "key": "EnableLiveCaptions", "display_name": "Enable live captions (Experimental)", "type": "bool", "help_text": "(Optional) When set to true, live captions are enabled.", "placeholder": "", "default": false, "hosting": "" }, { "key": "LiveCaptionsModelSize", "display_name": "Live captions: Model size", "type": "dropdown", "help_text": "The speech-to-text model size to use for live captions. Heavier models will produce more accurate results at the expense of processing time and resources usage.", "placeholder": "", "default": "tiny", "options": [ { "display_name": "Tiny", "value": "tiny" }, { "display_name": "Base", "value": "base" }, { "display_name": "Small", "value": "small" } ], "hosting": "on-prem" }, { "key": "LiveCaptionsNumTranscribers", "display_name": "Live captions: Number of transcribers used per call", "type": "number", "help_text": "The number of separate live-captions transcribers for each call. Each transcribes one audio stream at a time. The product of LiveCaptionsNumTranscribers * LiveCaptionsNumThreadsPerTranscriber must be in the range [1, numCPUs].", "placeholder": "", "default": 1, "hosting": "" }, { "key": "LiveCaptionsNumThreadsPerTranscriber", "display_name": "Live captions: Number of threads per transcriber", "type": "number", "help_text": "The number of threads per live-captions transcriber. The product of LiveCaptionsNumTranscribers * LiveCaptionsNumThreadsPerTranscriber must be in the range [1, numCPUs].", "placeholder": "", "default": 2, "hosting": "" }, { "key": "LiveCaptionsLanguage", "display_name": "Live captions language", "type": "text", "help_text": "The language passed to the live captions transcriber. Should be a 2-letter ISO 639 Set 1 language code, e.g. 'en'. If blank, will be set to English 'en' as default.", "placeholder": "", "default": "en", "hosting": "" }, { "key": "EnableIPv6", "display_name": "(Experimental) Enable IPv6 support", "type": "bool", "help_text": "When set to true the RTC service will work in dual-stack mode, listening for IPv6 connections and generating candidates in addition to IPv4 ones.", "placeholder": "", "default": false, "hosting": "on-prem" }, { "key": "EnableRinging", "display_name": "Enable call ringing (Beta)", "type": "bool", "help_text": "When set to true, ringing functionality is enabled: participants in DM and GM channels will receive a desktop alert and a ringing notification when a call is started. Changing this setting requires a plugin restart.", "placeholder": "", "default": false, "hosting": "" } ] }, "props": { "calls_recorder_version": "v0.7.3", "calls_transcriber_version": "v0.3.1", "min_offloader_version": "v0.8.0", "min_rtcd_version": "v0.12.0" } }