Chapter 29. --external

Default value: 'none'

Example: --external = Example: --external =|listen)|client):lb-class:(plain|ssl)

Possible values: 'external domains parameters list.'

Description: This property defines parameters for external component connections.

The component is loaded the same way as all other Tigase components. In your file you need to add 2 lines:

--comp-name-1 = ext
--comp-class-1 = tigase.server.ext.ComponentProtocol

This will load the component with an empty configuration and is practically useless. You have to tell the component on what port to listen to (or on what port to connect to) and external domains list with passwords.

As a value you have to put comma separated list of external domains settings. Each domain settings consist of a few, colon separated parameters. For example:

--external =,

This sets passwords for 2 external domains but does not say anything about port number or connection. The above list is a simplified syntax. The full syntax looks like this:

--external =


--external =

Definition of each colon separated part:

  1. external component domain;
  2. password for this domain;
  3. connection type - 'listen' for incoming connections or 'connect' for the remote server;
  4. port number for the TCP/IP connection (listening on or connecting to);
  5. remote hostname address(es) - if the connection type is 'connect' then the the remote hostname address should be here. For 'listen' connection type this parameter can be skipped. The first item on the list is always the remote domain name, if there are more entries, the rest is just addresses to connect to for this domain separated by a semicolon (;)
  6. protocol - if the connection type is 'connect' then the protorol is defined here - 'accept' for XEP-0114, 'client' for XEP-0225, possibly others in the future. It can be skipped for 'listen' connection types.
  7. lb-class - is a class name for a load-balancer plugin. This is used only where there are multiple connections from the external component and you want to spread the resource load among them. More details and examples are in this guide.
  8. socket - it’s possible to specify whether this should be a plain socket (accepting unencrypted or TLS connections), ssl socket (accepting SSL connections) or tls (enforcing TLS connection)

Only 2 first parts are mandatory, the rest is optional. The simplified form is used to provide a list of domains:password elements for external components connections.

The settings on the server side may most likely looks like this:,,

It specifies 3 domains with passwords and one TCP/IP port to listen to. On the other hand you can specify a configuration which would establish the connection to the server:

--external =

We use one of the domains configured on the server side, the same port number and the server address. (Assuming the main server works at address).

Available since: 4.3.0