Skip to main content

Installation and Configuration

The following section provides a guide for the installation and configuration of the MindLink XMPP Gateway.

note

It is assumed that the required external services, records and certificates have been configured as per the pre-requisites.

Installation

Installation is currently provided as a single installation application. The installer will prompt the administrator for the configuration options required in order to install the Gateway onto an existing Windows Server instance.

The initial installation process will output the specified settings as an appsettings.json file in the installation directory. This file represents the static configuration of the gateway service and can be manually modified post-installation if configuration changes are required.

The provided installer sets up the gateway as a Windows service. Custom configuration of the associated service account is not currently exposed via the installer, and should be manually configured after installation has completed (e.g. via the Windows Service Manager).

A separate uninstaller is also output to the install directory during installation. This should be used to uninstall the service if required, as the installer itself does not provide uninstall functionality. Alternatively the uninstaller can be invoked by uninstalling the program via the Windows user interface.

info

Configuration settings can be changed by manually modifying the appsettings.json file. This requires the Gateway service to be restarted for the changes to take effect.

See the configuration options below and the example configuration file for reference.

Configuration

The table below shows the possible configuration settings, providing an explanation of their function and any further details which are relevant.

note

The overall structure of the configuration settings reflects the high-level architecture of the solution, referencing the concept of "adapters" as described in the Deployment Overview.

Not all settings are required and will assume a default value if not explicitly provided. Administrators will not be prompted for such settings when running the installer.

SectionSetting NameRequired (Y/N)Description
ApplicationDomainMappingsNSpecifies domain name aliases, as described in the Domain Mappings section.
EnableMetricsNEnables the publication of basic metrics to a Prometheus entry point. Default is false. See the Metrics section for more details.
MetricsPortNSpecifies the port to which metrics should be published. Default is 1234.
PresenceSubscriptionPersistenceEnabledNEnables database-backed subscription persistence, as described in Presence Subscriptions Management. Default is true. Requires DatabaseConnectionString to be specified in each adapter.
MaxConcurrentMessagesPerConversationThrottleNLimits the number of in-flight IM messages between two users, as described in Limitations. Default is 12.
SipAdapterSipEdgeServerAddressYThe FQDN of the SfB edge server to which the Gateway will establish outbound connections.
SipEdgeServerPortNumberYThe SfB edge server port to be targeted by the Gateway for outbound connections.
InternalDomainYThe domain represented by the gateway when connecting to the SfB edge server. Interacts with any provided DomainMappings - see the Domain Mappings section.
ListenPortNumberYThe local port used by the gateway to listen for incoming connections from the SfB edge server.
PlatformCertificateThumbprintYThe thumbprint of the certificate to be presented by the Gateway in connections with the SfB edge server. Certificate must be present in the host machine certificate store.
ExternalServerCompatibilityModeYSpecifies whether the gateway is federating with an SfB or Microsoft Teams deployment. Currently the only supported setting is SFB.
ExternalCommsTimeoutSecondsNThe length of time the Gateway will wait for a response in communications with SfB before assuming failure. Default is 30 seconds, minimum is 10 seconds, maximum is 240 seconds.
CancelledSubscriptionCooldownSecondsNThe length of time after user initiated subscription cancellation during which further subscription requests will be automatically declined. More information is provided in Presence Subscriptions Management. Default is 120 seconds, minimum is 0 seconds.
DatabaseConnectionString(N)Specifies the database connection string to allow the Gateway to store/recover subscription information. Required if PresenceSubscriptionPersistenceEnabled is true.
SubscriptionExpirationIntervalNDefines an amount of time in seconds for which inactive presence subscriptions from SfB will remain alive before expiring.
SubscriptionRecoveryBatchSizeNThe number of records to fetch per batch during subscription recovery, as described in Presence Subscriptions Management. Default is 100, minimum is 10, maximum is 100.
SubscriptionRecoveryBatchIntervalSecondsNThe time to wait in seconds between each subscription recovery batch, as described in Presence Subscriptions Management. Default is 10 seconds, minimum is 10 seconds, maximum is 240 seconds.
XmppAdapterExternalServerNameYThe domain name of the XMPP sesrver to which the Gateway will establish outbound connections.
ExternalServerPortNumberYThe XMPP server port number to be targeted by the Gateway for outbound connections.
InternalDomainYThe domain represented by the Gateway when connecting to the external XMPP server. Interacts with any provided DomainMappings - see the Domain Mappings section.
ListenPortNumberYThe local port used by the Gateway to listen for incoming connections from the XMPP server.
PlatformCertificateThumbprintYThe thumbprint of the certificate to be presented by the Gateway in connections with the XMPP server. Certificate must be present in the host machine certificate store.
MaxOutboundChannelsNThe maximum number of concurrent outbound connections to the XMPP server - used to improve throughput. Default is 100, minimum is 10.
MaxWaitForOutboundChannelConnectionSecondsNThe maximum time that the Gateway will wait when attempting to establish a secure connection with the XMPP server before reporting a failure. Default is 30 seconds, minimum is 10 seconds.
ExternalCommsTimeoutSecondsNThe length of time the Gateway will wait for a response in communications with the external XMPP server before assuming failure. Default is 60 seconds, minimum is 10 seconds, maximum is 240 seconds.
ExternalCommsErrorPropagationIntervalSecondsNThe length of time the Gateway will wait for an error response in communications with the external XMPP server before assuming success. Default is 1 second, minimum is 1 second, maximum is 10 seconds.
DatabaseConnectionString(N)Specifies the database connection string to allow the Gateway to store/recover subscription information. Required if PresenceSubscriptionPersistenceEnabled is true.
SubscriptionRecoveryBatchSizeNThe number of records to fetch per batch during subscription recovery, as described in Presence Subscriptions Management. Default is 100, minimum is 10, maximum is 500.
SubscriptionRecoveryBatchIntervalSecondsNThe time to wait in seconds between each subscription recovery batch, as described in Presence Subscriptions Management. Default is 10 seconds, minimum is 10 seconds, maximum is 240 seconds.
Serilog(Various settings)NDetailed logging output from the Gateway can be configured using the Serilog Framework. See the Example Configuration section for further details. Note as illustrated in the example, backslash characters must be escaped. File locations can be absolute, or relative to the application installation folder.