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

POST /templates/(string: templateId)/inheritable

When template is marked as inheritable it can be enabled and mark as inheritable down the client subtree.

Parameters:
  • templateId (string) – UUID of Settings Template

Create template

POST /templates

Create new setting template.

Request JSON Object:
  • name (string)

Response JSON Object:
  • id (string) – UUID of Settings Template

Disable template

DELETE /templates/(string: templateId)/enabled

Enabled template can be used and assigned to a channel.

Parameters:
  • templateId (string) – UUID of Settings Template

Disallow template inheritance

DELETE /templates/(string: templateId)/inheritable

When template is marked as inheritable it can be enabled and mark as inheritable down the client subtree.

Parameters:
  • templateId (string) – UUID of Settings Template

Enable template

POST /templates/(string: templateId)/enabled

Enabled template can be used and assigned to a channel.

Parameters:
  • templateId (string) – UUID of Settings 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

DELETE /templates/(string: templateId)

Remove a setting template.

Parameters:
  • templateId (string) – UUID of Settings Template

Update template

POST /templates/(string: templateId)

Update template details.

Parameters:
  • templateId (string) – UUID of Settings Template

Request JSON Object:
  • name (string)

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

DELETE /channels/(string: uuid)/template

Allows to remove template layer that will be used when generating channel configuration.

Parameters:
  • uuid (string) – The channel ID

Select template

POST /channels/(string: uuid)/template

Allows to select a template that will be used when generating channel configuration.

Parameters:
  • uuid (string) – The channel ID

Request JSON Object:
  • id (string) – UUID of Settings 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