Search Results for

    Show / Hide Table of Contents

    Cluster Configuration for Docker Installation

    The administration console is accessible on :9090/admin by default. It can be accessed by any modern web browser. When you first log in, you are prompted to enter your LiveSwitch license key and set up login credentials. See Configuration Console for documentation on setting configuration through the administration console and a complete description of all configuration entities.

    The REST API is accessible on :9090/admin/api by default. LiveSwitch conforms to OData best practices. The v2 API is recommended for read/write access to configuration.

    The REST API explorer is accessible on :9090/admin/swagger by default. Swagger lets you explore and interact with the REST API from your web browser.

    Using the administration console, the REST API, or environment variables, you can configure Deployment Configurations, Application Configurations, Channel Configurations, and API Keys. Configuration through environment variables follows .NET conventions.

    Warning

    You must provide the same cluster configuration for all Gateway images. This is a convenient configuration method when using Docker. This configuration is stored in Redis, so if you configure different cluster configurations, and then deploy these images to the same cluster, the results might be unpredictable.

    Note

    When running multiple LiveSwitch Gateways behind a load balancer, you can use the gateway URL for the health check. You can use / or /sync. For example http://localhost:8080/ or http://localhost:8080/sync.

    images

    Initialize Configuration

    These values, if set, initialize an uninitialized site without using the admin UI or REST API.

    • Initialize:LicenseKey (string)
    • Initialize:Username (string)
    • Initialize:Password (string)

    Site Configuration

    These values, if set, update the site configuration without using the admin UI or REST API.

    • Site:CacheConnectionString (string)
    • Site:AdminPath (string)
    • Site:SyncPath (string)
    • Site:AllowAnonymousLegacyApi (boolean)
    • Site:ServiceStatsInterval (integer)
    • Site:Metadata (string)

    API Key Configuration

    These values, if set, ensure that an API key entity exists for the given API key.

    ApiKeys is an array, so {index} should start at 0 and increment by 1 for each additional API key; for example, 0, 1, 2, and so on.

    • ApiKeys:{index}:Key (uuid, required)
    • ApiKeys:{index}:Tag (string)
    • ApiKeys:{index}:Metadata (string)

    Certificate Configuration

    These values, if set, ensure that a certificate entity exists for the given certificate's SHA-1 fingerprint or thumbprint.

    Certificates is an array, so {index} should start at 0 and increment by 1 for each additional certificate; for example, 0, 1, 2, and so on.

    • Certificates:{index}:CertificateBase64 (string, required, pfx/p12)
    • Certificates:{index}:Password (string)
    • Certificates:{index}:Tag (string)
    • Certificates:{index}:Metadata (string)
    Note

    When running a LiveSwitch Docker image which is configured with a TLS termination and an associated certificate, make sure the host environment where the LiveSwitch Docker image will be run has the matching root CA certificate installed. This ensures the Docker container is created with access to the CA certificates needed for authenticating certificates.

    When using a private CA you can ensure the root CA certificate is in the Docker container by:

    • creating the container
    • copying the CA cert into /usr/local/share/ca-certificates/
    • starting the container
    • executing update-ca-certificates in the container

    Deployment Configuration

    These values, if set, ensure that a deployment configuration entity exists for the given deployment ID.

    Deployments is an array, so {index} should start at 0 and increment by 1 for each additional deployment configuration; for example, 0, 1, 2, and so on.

    • Deployments:{index}:DeploymentId (string, required)
    • Deployments:{index}:AllocationStrategy (enum)
      • RoundRobin, SpillOver, LeastConnections
    • Deployments:{index}:AllowedChannelUpdates:EnableRtmp (boolean)
    • Deployments:{index}:AllowedChannelUpdates:Mute (boolean)
    • Deployments:{index}:AllowedChannelUpdates:Record (boolean)
    • Deployments:{index}:Bus:AmqpUri (string)
    • Deployments:{index}:Bus:Enabled (boolean)
    • Deployments:{index}:CapacityThresholds:BandwidthThreshold (integer)
    • Deployments:{index}:CapacityThresholds:CpuThreshold (integer)
    • Deployments:{index}:CapacityThresholds:Enabled (boolean)
    • Deployments:{index}:CapacityThresholds:McuConnectionsPerCpuThreshold (integer)
    • Deployments:{index}:CapacityThresholds:MemoryThreshold (integer)
    • Deployments:{index}:CapacityThresholds:SfuConnectionsPerCpuThreshold (integer)
    • Deployments:{index}:CapacityThresholds:WssCpuThreshold (integer)
    • Deployments:{index}:CapacityThresholds:WssMemoryThreshold (integer)
    • Deployments:{index}:CapacityThresholds:WssConnectionsPerCpuThreshold (integer)
    • Deployments:{index}:CapacityThresholds:WssMediaConnectionsPerClientThreshold (integer)
    • Deployments:{index}:ClusterBinding:Cidr (string)
    • Deployments:{index}:ClusterBinding:Port (integer)
    • Deployments:{index}:ExternalStunUrls (string array)
    • Deployments:{index}:ForbiddenTurnPeerCidrs (string array)
    • Deployments:{index}:HttpBindings (array)
      • Deployments:{index}:HttpBindings:{index}:Cidr (string)
      • Deployments:{index}:HttpBindings:{index}:Metadata (string)
      • Deployments:{index}:HttpBindings:{index}:Port (integer, required)
      • Deployments:{index}:HttpBindings:{index}:Scope:Admin (boolean)
      • Deployments:{index}:HttpBindings:{index}:Scope:Sync (boolean)
    • Deployments:{index}:HttpsBindings (array)
      • Deployments:{index}:HttpsBindings:{index}:CertificateTag (string)
      • Deployments:{index}:HttpsBindings:{index}:Cidr (string)
      • Deployments:{index}:HttpsBindings:{index}:Metadata (string)
      • Deployments:{index}:HttpsBindings:{index}:Port (integer, required)
      • Deployments:{index}:HttpsBindings:{index}:Scope:Admin (boolean)
      • Deployments:{index}:HttpsBindings:{index}:Scope:Sync (boolean)
    • Deployments:{index}:LogAggregation:Enabled (boolean)
    • Deployments:{index}:LogAggregation:Window (integer, milliseconds)
    • Deployments:{index}:LogAggregation:Threshold (integer)
    • Deployments:{index}:LogOverrides (array)
      • Deployments:{index}:LogOverrides:{index}:Scope:Gateway (boolean)
      • Deployments:{index}:LogOverrides:{index}:Scope:MediaServer (boolean)
      • Deployments:{index}:LogOverrides:{index}:Level (enum, required)
        • Verbose, Debug, Info, Warn, Error, Fatal
      • Deployments:{index}:LogOverrides:{index}:Metadata (string)
      • Deployments:{index}:LogOverrides:{index}:Scope:SipConnector (boolean)
      • Deployments:{index}:LogOverrides:{index}:Tag (string, required)
    • Deployments:{index}:LogTargets (array)
      • Deployments:{index}:LogTargets:{index}:Scope:Gateway (boolean)
      • Deployments:{index}:LogTargets:{index}:Level (enum, required)
        • Verbose, Debug, Info, Warn, Error, Fatal
      • Deployments:{index}:LogTargets:{index}:Metadata (string)
      • Deployments:{index}:LogTargets:{index}:Parameters:{name} (dictionary)
      • Deployments:{index}:LogTargets:{index}:Scope:MediaServer (boolean)
      • Deployments:{index}:LogTargets:{index}:Scope:SipConnector (boolean)
      • Deployments:{index}:LogTargets:{index}:Type (enum, required)
        • Console
        • Syslog
          • Required parameters:
            • target (string)
        • Logstash
          • Required parameters:
            • address (string)
            • port (integer)
          • Optional parameters:
            • secure (boolean)
        • CloudWatch
          • Required parameters:
            • region (string)
            • logGroup (string)
          • Optional parameters:
            • accessKey (string)
            • secretKey (string)
            • profileName (string)
            • profilePath (string)
          • Credential search is:
            • accessKey / secretKey, then...
            • profileName / profilePath, then...
            • introspective discovery
        • File
          • Optional parameters:
            • path (string)
        • Json
    • Deployments:{index}:MaxIcePort (integer)
    • Deployments:{index}:MaxTurnPort (integer)
    • Deployments:{index}:Metadata (string)
    • Deployments:{index}:MinIcePort (integer)
    • Deployments:{index}:MinTurnPort (integer)
    • Deployments:{index}:PreferNonHostClientIceCandidates (boolean)
    • Deployments:{index}:PublicHostnameTemplate (string)
    • Deployments:{index}:PublicHostnameTemplateIPv6 (string)
    • Deployments:{index}:RateLimit:Enabled (boolean)
    • Deployments:{index}:RateLimit:Sync:Enabled (boolean)
    • Deployments:{index}:RateLimit:Sync:Policies (array)
      • Deployments:{index}:RateLimit:Sync:Policies:{index}:Cidr (string)
      • Deployments:{index}:RateLimit:Sync:Policies:{index}:Enabled (boolean)
      • Deployments:{index}:RateLimit:Sync:Policies:{index}:Name (string, required)
      • Deployments:{index}:RateLimit:Sync:Policies:{index}:Rules (array)
        • Deployments:{index}:RateLimit:Sync:Policies:{index}:Rules:{index}:Limit (integer, required)
        • Deployments:{index}:RateLimit:Sync:Policies:{index}:Rules:{index}:Period (integer, required)
    • Deployments:{index}:RecordingManagement:AmqpUri (string)
    • Deployments:{index}:RecordingManagement:Enabled (boolean)
    • Deployments:{index}:RecordingManagement:ExpiryDays (integer)
    • Deployments:{index}:RecordingManagement:MoveEnabled (boolean)
    • Deployments:{index}:RecordingManagement:MuxEnabled (boolean)
    • Deployments:{index}:RecordingManagement:MuxParams:AudioCodec (string)
    • Deployments:{index}:RecordingManagement:MuxParams:BackgroundColor (string)
    • Deployments:{index}:RecordingManagement:MuxParams:Crop (boolean)
    • Deployments:{index}:RecordingManagement:MuxParams:CustomLayoutFunction (string)
    • Deployments:{index}:RecordingManagement:MuxParams:Dynamic (boolean)
    • Deployments:{index}:RecordingManagement:MuxParams:FrameRate (integer)
    • Deployments:{index}:RecordingManagement:MuxParams:Height (integer)
    • Deployments:{index}:RecordingManagement:MuxParams:Layout (enum)
    • Deployments:{index}:RecordingManagement:MuxParams:Margin (integer)
    • Deployments:{index}:RecordingManagement:MuxParams:AudioContainer (string)
    • Deployments:{index}:RecordingManagement:MuxParams:VideoCodec (string)
    • Deployments:{index}:RecordingManagement:MuxParams:VideoContainer (string)
    • Deployments:{index}:RecordingManagement:MuxParams:Width (integer)
    • Deployments:{index}:RecordingManagement:PostgresUri (string)
    • Deployments:{index}:RecordingManagement:S3:AccessKey (string)
    • Deployments:{index}:RecordingManagement:S3:BucketName (string)
    • Deployments:{index}:RecordingManagement:S3:Endpoint (string)
    • Deployments:{index}:RecordingManagement:S3:Prefix (string)
    • Deployments:{index}:RecordingManagement:S3:Region (string)
    • Deployments:{index}:RecordingManagement:S3:SecretKey (string)
    • Deployments:{index}:RecordingPath (string)
    • Deployments:{index}:RecordingStrategy (enum)
      • HierarchicalDirectories, FlatDirectory
    • Deployments:{index}:ServiceBaseUrl (string)
    • Deployments:{index}:ServiceStatsInterval (integer)
    • Deployments:{index}:SessionLimit:Enabled (boolean)
    • Deployments:{index}:SessionLimit:MaxSessionDuration (long)
    • Deployments:{index}:SfuSimulcast:SimulcastAllowed (boolean)
    • Deployments:{index}:SfuSimulcast:SimulcastEnabled (boolean)
    • Deployments:{index}:SfuSimulcast:MaxNumberPublishers (integer)
    • Deployments:{index}:SfuSimulcast:EncodingCount (integer)
    • Deployments:{index}:SfuSimulcast:DegradationPreference (enum)
      • Automatic, Balanced, FrameRate, Resolution
    • Deployments:{index}:SfuSimulcast:ManualEncodings (array)
      • Deployments:{index}:SfuSimulcast:ManualEncodings:{index}:FrameRateScale (double)
      • Deployments:{index}:SfuSimulcast:ManualEncodings:{index}:ResolutionScale (double)
    • Deployments:{index}:SipInboundCancelWebhookUrl (string)
    • Deployments:{index}:SipInboundWebhookUrl (string)
    • Deployments:{index}:SipOutboundWebhook:ExcludeSipTrunks (boolean)
    • Deployments:{index}:SipOutboundWebhookUrl (string)
    • Deployments:{index}:SipServerPort (integer)
    • Deployments:{index}:SipTrunks (array)
      • Deployments:{index}:SipTrunks:{index}:AuthId (string)
      • Deployments:{index}:SipTrunks:{index}:CanTerminate (boolean)
      • Deployments:{index}:SipTrunks:{index}:DefaultRegisterExpiry (integer)
      • Deployments:{index}:SipTrunks:{index}:Domain (string, required)
      • Deployments:{index}:SipTrunks:{index}:Metadata (string)
      • Deployments:{index}:SipTrunks:{index}:OutboundProxy (string)
      • Deployments:{index}:SipTrunks:{index}:Password (string)
      • Deployments:{index}:SipTrunks:{index}:Register (boolean)
      • Deployments:{index}:SipTrunks:{index}:Transport (enum, required)
        • Udp, Tcp, Tls
      • Deployments:{index}:SipTrunks:{index}:Username (string)
    • Deployments:{index}:ThresholdEncodingRequirements (array)
      • Deployments:{index}:ThresholdEncodingRequirements:{index}:Encoding:Width (integer)
      • Deployments:{index}:ThresholdEncodingRequirements:{index}:Encoding:Height (integer)
      • Deployments:{index}:ThresholdEncodingRequirements:{index}:Encoding:FrameRate (integer)
      • Deployments:{index}:ThresholdEncodingRequirements:{index}:Encoding:Bitrate (integer)
      • Deployments:{index}:ThresholdEncodingRequirements:{index}:SfuDownstream (integer)
      • Deployments:{index}:ThresholdEncodingRequirements:{index}:SfuUpstream (integer)
      • Deployments:{index}:ThresholdEncodingRequirements:{index}:McuUpstream (integer)
      • Deployments:{index}:ThresholdEncodingRequirements:{index}:McuDownstream (integer)
      • Deployments:{index}:ThresholdEncodingRequirements:{index}:SfuUpstreamSimulcastTwo (integer)
    • Deployments:{index}:TurnBindings (array)
      • Deployments:{index}:TurnBindings:{index}:Protocol (enum, required)
        • Udp, Tcp
      • Deployments:{index}:TurnBindings:{index}:Cidr (string)
      • Deployments:{index}:TurnBindings:{index}:Metadata (string)
      • Deployments:{index}:TurnBindings:{index}:Port (integer, required)
    • Deployments:{index}:TurnsBindings (array)
      • Deployments:{index}:TurnsBindings:{index}:CertificateTag (string)
      • Deployments:{index}:TurnsBindings:{index}:Cidr (string)
      • Deployments:{index}:TurnsBindings:{index}:Metadata (string)
      • Deployments:{index}:TurnsBindings:{index}:Port (integer, required)
    • Deployments:{index}:Webhooks (array)
      • Deployments:{index}:Webhooks:{index}:Batch (boolean)
      • Deployments:{index}:Webhooks:{index}:Disabled (boolean)
      • Deployments:{index}:Webhooks:{index}:Events (string array, required)
      • Deployments:{index}:Webhooks:{index}:Metadata (string)
      • Deployments:{index}:Webhooks:{index}:Name (string)
      • Deployments:{index}:Webhooks:{index}:Reliable (boolean)
      • Deployments:{index}:Webhooks:{index}:Url (string, required)
    • Deployments:{index}:WebSocketMediaServerConnectionsAllowed (boolean)
    • Deployments:{index}:WebSocketMediaServerUrl (boolean)
    • Deployments:{index}:WebSocketMediaServerPort (boolean)
    In This Article
    Back to top Copyright © LiveSwitch Inc. All Rights Reserved.Documentation for LiveSwitch Version 1.24.5