--external

Default value: 'none'

Example: --external = muc1.devel.tigase.org:passwd1:connect:5270:devel.tigase.org:accept:lb-class Example: --external = muc1.devel.tigase.org:passwd1:(connect|listen):5270:devel.tigase.org:(accept|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 init.properties 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 = muc1.devel.tigase.org:passwd1,muc2.devel.tigase.org:passwd2

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 = muc1.devel.tigase.org:passwd1:listen:5270

or

--external = muc1.devel.tigase.org:passwd1:connect:5270:devel.tigase.org:accept:lb-class

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:

--external=muc1.devel.tigase.org:passwd1:listen:5270,muc2.devel.tigase.org:passwd2,muc3.devel.tigase.org:passwd3

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 = muc1.devel.tigase.org:passwd1:connect:5270:devel.tigase.org:accept

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 devel.tigase.org address).

Available since: 4.3.0