Settings Management
About Settings
Horn provides a comprehensive settings management system that allows for fine-grained control over platform behavior and appearance across multiple contexts and layers.
Settings can be configured at different levels:
Client-level configuration that applies across an entire organization
Channel-level settings that customize individual meeting rooms
Settings templates that can be reused across multiple channels
The settings system supports different application contexts, including Conference UI, Horn Management Console (HMC), and other integrated applications.
Key configuration areas include:
Application-specific configuration
Displayed texts (called “Custom Texts” in the system) - button labels, dialog texts, etc.
Icons and colors configuration
Settings are hierarchical, with more specific configurations (like channel-level) taking precedence over broader ones (like client-level defaults).
Note
Some features have not yet been migrated to this unified settings management system. These features will be migrated gradually in future releases to ensure a smooth transition and minimize disruption for existing integrations. Those settings are marked as “Legacy” in the documentation below.
Client-Level Settings
Get client configuration
- GET /config
Allows getting effective client configuration. This calculates configuration from all levels above and merges them. I.e. global configuration gets inherited in this call.
- Query Parameters:
context (string) – Context we”re” fetching the settings from.
categories (string) – Allow to fetch configuration only for provided categories.
language (string) – Optional parameters, needed when updating texts
theme (string) – Optional parameters, allows to select theme for icons and colors, default is “light”
Response: JSON
Set client configuration
- POST /config
Allows to update the client configuration. Client level configuration gets inherited by all channels in that client context.
- Query Parameters:
language (string) – Optional parameters, needed when updating texts
theme (string) – Optional parameters, allows to select theme for icons and colors, default is “light”
Request: JSON
Channel-Level Settings
Get channel configuration
- GET /channels/(string: uuid)/config
Allows to get effective channel configuration
- Parameters:
uuid (string) – The channel ID
- Query Parameters:
context (string) – Context we’re fetching the settings from.
categories (string) – Allow to fetch configuration only for provided categories.
language (string) – Optional parameters, needed when updating texts
theme (string) – Optional parameters, allows to select theme for icons and colors, default is “light”
Set channel configuration
- POST /channels/(string: uuid)/config
Allows to update the channel configuration
- Parameters:
uuid (string) – The channel ID
- Query Parameters:
language (string) – Optional parameters, needed when updating texts
theme (string) – Optional parameters, allows to select theme for icons and colors, default is “light”
Request: JSON
Managing Templates
Settings templates provide a way to define reusable configuration presets at the client level that can be applied to multiple channels. When a template is assigned to a channel, its settings are used as part of calculating the effective configuration for that channel.
Templates can be marked as inheritable, allowing sub-clients to use templates defined by their parent client. This inheritance mechanism enables organizations to create standardized configuration patterns that can be consistently applied across their organizational hierarchy.
The template system helps reduce configuration duplication and makes it easier to maintain consistent settings across multiple channels. When template settings are updated, the changes are automatically reflected in all channels using that template.
Allow template inheritance
Create template
Disable template
Disallow template inheritance
Enable template
Get template configuration
- GET /templates/(string: templateId)/config
Allows getting effective configuration for a given template
- Parameters:
templateId (string) – UUID of Settings Template
- Query Parameters:
context (string) – Context we”re” fetching the settings from.
categories (string) – Allow to fetch configuration only for provided categories.
language (string) – Optional parameters, needed when updating texts
theme (string) – Optional parameters, allows to select theme for icons and colors, default is “light”
Get template details
- GET /templates/(string: templateId)
Get details of a setting template.
- Parameters:
templateId (string) – UUID of Settings Template
- Response JSON Object:
name (string) – Name of given Setting Template
enabled (boolean) – Flag that determines if given Template is currently enabled or not
inheritable (boolean) – Flag that determines if given Template is inheritable (sub-clients can enable them for themselves)
id (string) – UUID of Settings Template
inherited (boolean) – Flag that determines if given Template is inherited from a parent.
List client templates
- GET /templates
List templates that are available for a in client.
- Query Parameters:
offset (string) – Offset at which start looking for results in database. Needed for implementing pagination
limit (string) – Limit amount of results. Needed for implementing pagination
onlyEnabled (string) – Limit the result to contain only enabled templates
onlyInheritable (string) – Limit the result to contain only inheritable templates
Response:
{ total: number results: list }
where total is a total amount of elements matching criteria results objects has following fields:
{ name: string // Name of given Setting Template enabled: boolean // Flag that determines if given Template is currently enabled or not inheritable: boolean // Flag that determines if given Template is inheritable (sub-clients can enable them for themselves) id: string // UUID of Settings Template inherited: boolean // Flag that determines if given Template is inherited from a parent. }
Remove template
Update template
Update template configuration
- POST /templates/(string: templateId)/config
Allows to update the template configuration. template level configuration can be inherited by channels.
- Parameters:
templateId (string) – UUID of Settings Template
- Query Parameters:
language (string) – Optional parameters, needed when updating texts
theme (string) – Optional parameters, allows to select theme for icons and colors, default is “light”
Request: JSON
Using Templates On Channels
Get template in use
- GET /channels/(string: uuid)/template
Returns template that currently used in generating channel configuration.
- Parameters:
uuid (string) – The channel ID
- Response JSON Object:
id (string) – UUID of Settings Template
name (string) – Name of given Setting Template
inherited (boolean) – Flag that determines if given Template is inherited from a client templates.
List available templates
- GET /channels/(string: uuid)/templates
List templates that can be applied for a given channel.
- Parameters:
uuid (string) – The channel ID
- Query Parameters:
offset (string) – Offset at which start looking for results in database. Needed for implementing pagination
limit (string) – Limit amount of results. Needed for implementing pagination
Response:
{ total: number results: list }
where total is a total amount of elements matching criteria results objects has following fields:
{ name: string // Name of given Setting Template enabled: boolean // Flag that determines if given Template is currently enabled or not inheritable: boolean // Flag that determines if given Template is inheritable (sub-clients can enable them for themselves) id: string // UUID of Settings Template inherited: boolean // Flag that determines if given Template is inherited from a parent. }
Remove template
Select template
Legacy Client-Level Settings
Get client settings
- GET /settings
Return current state of configuration options that are set at the client level. Client level settings generally influence the behavior of all channels within the client scope.
- Response JSON Object:
uniqueUsersHandle (boolean) – If true, users handle uniqueness is required.
dialOut (boolean) – If true, every newly created channel will have the “dial-out” feature enabled by default.
friendlyURLs (boolean) – If true, friendly URLs are enabled in this client context
midi (boolean) – If true, every newly created channel will have the “midi” feature enabled by default.
dialIn (boolean) – If true, every newly created channel will have the “dial-in” feature enabled by default.
Legacy Channel-Level Settings
Get channel settings
- GET /channels/(string: uuid)/settings
Return all the channel settings flags for the specified channel.
- Parameters:
uuid (string) – The channel ID
- Response JSON Object:
speech2text (boolean) – True of speech to text is available
muteAttendees (boolean) – If true, lock mute all attendees in channel
broadcastEnabled (boolean) – If true, broadcast feature will be enabled in channel
autoClose (boolean) – True if lobby doors will be automatically closed after session ends.
eventRoom (boolean) – True if given channel is an event room
open (boolean) – True if lobby doors are open
publicPIN (boolean) – True if pin will be accessible by no host users
dialOut (boolean) – True of dial-out is allowed in a channel
presentersLimit (option[int]) – The maximum number of presenters allowed in a channel
populationLimit (int) – The maximum number of users allowed in a channel (omitted if no limit is set)
mediaPoolSize (long) – The media pool storage size.
midi (boolean) – information if given channels has a midi feature enabled
offAir (boolean) – If true, set the channel to off-air mode
dialIn (boolean) – True of dial-in is allowed in a channel
disableWall (boolean) – If true, wall messages are disabled