Setting up DNS records for Infinity Connect client connectivity
You must set up DNS records so that the Infinity Connect clients know which host to contact when placing calls or registering to Pexip Infinity.
The host will typically be a public-facing Conferencing Node (for on-premises deployments where your Transcoding Conferencing Nodes are located within a private network we recommend that you deploy public-facing Proxying Edge Nodes).
To enable access from the Infinity Connect desktop clients and Infinity Connect mobile clients, each domain used in aliases in your deployment must either have a DNS SRV record for _pexapp._tcp.<domain>, or resolve directly to the IP address of a public-facing Conferencing Node.
The SRV records for _pexapp._tcp.<domain> should always:
- point to an FQDN which must be valid for the TLS certificate on the target Conferencing Nodes
- reference port 443 on the host.
Note that SRV records are not required for the Infinity Connect web app — the web app clients connect to Conferencing Nodes directly via DNS A-records, so no SRV lookup is required.
Ultimately it is the responsibility of your network administrator to set up SRV records correctly so that the Infinity Connect desktop client and Infinity Connect mobile client know which system to connect to.
You can use the tool at http://dns.pexip.com to lookup and check SRV records for a domain.
Using Infinity Connect from outside your network
In many cases, your Pexip Infinity deployment will be located inside a private network. If this is the case and you want to allow Infinity Connect users who are located outside your network (for example on another organization's network, from their home network, or the public internet) to connect to your deployment, you need to provide a way for those users to access those private nodes.
Since version 16 of Pexip Infinity, we recommend that you deploy
If you do not want to deploy Proxying Edge Nodes, and thus want to route all signaling and media from external clients via a reverse proxy and a TURN server to your internal/on-premises nodes, you should note that only Pexip's Infinity Connect WebRTC clients (web app for Chrome, Firefox, Opera and Safari (version 11 onwards), the mobile clients for iOS and Android, and the desktop client) will be able to establish media connectivity. Microsoft Edge browsers and any RTMP-based browsers (Internet Explorer and Safari (versions 6-10)) cannot use a TURN server and thus will not be able to send or receive media. For more information, see Pexip Reverse Proxy and TURN Server.
Further information and connectivity examples
Information on how each of the Infinity Connect clients attempts to locate a Conferencing Node when placing a call is described in the following sections. Within each section is an example of the lookup process for that client. The example uses the following records:
Assume that the following _pexapp._tcp.vc.example.com DNS SRV records have been created:
_pexapp._tcp.vc.example.com. 86400 IN SRV 10 100 443 px01.vc.example.com. _pexapp._tcp.vc.example.com. 86400 IN SRV 20 100 443 px02.vc.example.com.
These point to the DNS A‑records px01.vc.example.com, port 443 (HTTPS), with a priority of 10 and a weight of 100, and px02.vc.example.com, port 443, with a relatively lower priority of 20 and a weight of 100.
- This tells the Infinity Connect desktop client to initially send its HTTP requests to host px01.vc.example.com (our primary node) on TCP port 443. The desktop client will also try to use host px02.vc.example.com (our fallback node) if it cannot contact px01.
- The Infinity Connect mobile client will send its HTTP requests either to px01.vc.example.com or to px02.vc.example.com, depending on the order of the returned SRV records. If it fails to contact the first host, it will not attempt to contact the second host address.
Registering
The Infinity Connect desktop client uses its configured Registration Host and performs a DNS SRV lookup on _pexapp._tcp.<registration host address> to locate a Conferencing Node to which it can send its registration request.
In all cases, when performing an SRV lookup on _pexapp._tcp.<registration host address>:
- If multiple records are returned, the client attempts to contact each host in turn according to the priority of each returned record (the weight is ignored).
- If the SRV lookup fails, or the client fails to contact any of the hosts in the returned SRV records, it performs a DNS A‑record lookup for that same domain. If that A-record lookup is successful, it attempts to connect to port 443 on the IP address returned from the lookup.
Making calls
The way in which next-generation Infinity Connect desktop clients decide which Conferencing Node to use when attempting to place a call depends on whether the client is registered, and on the global Route calls via registrar setting at the time of registration.
Note that in the following cases, when performing an SRV lookup on _pexapp._tcp.<address>:
- If multiple records are returned, the client attempts to contact each host in turn according to the priority and weight of each returned record.
- If the SRV lookup fails, or the client fails to contact any of the hosts in the returned SRV records, it performs a DNS A‑record lookup for <address>. If that A-record lookup is successful, it attempts to connect to port 443 on the IP address returned from the lookup.
The logic is as follows:
- If the client is registered and the Route calls via registrar setting is enabled, all calls are directed to the IP address of the Conferencing Node to which the client is registered, regardless of the domain being dialed. From there, the call is treated as an incoming call and processed according to the call routing logic described in Service precedence.
- If the client is not registered or Route calls via registrar is disabled, and the call has been placed via a URL that specifies a host domain, then the client performs the SRV lookup on _pexapp._tcp.<host domain>. If a Conferencing Node cannot be contacted via this method, no further lookups are performed and the client will report that it could not join the host domain.
- If a serverAddress has been specified in the client's application settings file (settings.json), the client performs an SRV lookup on _pexapp._tcp.<serverAddress>. Note that the serverAddress is not configured in the default desktop client provided by Pexip, but an address could have been configured during customization and provisioned to the client.
- Finally, if a Conferencing Node cannot be contacted via the serverAddress, or it was not specified, the client performs a lookup on the domain portion of the address that was specified, i.e. _pexapp._tcp.<address domain>.
Example
If a next-generation Infinity Connect desktop client is registered to Pexip Infinity and the global Route via registrar setting is enabled, then the client will route all calls directly to the IP address of the Conferencing Node to which it is registered. In all other cases, the following example applies.
When a user attempts to access meet.alice@vc.example.com:
-
If the call is being placed via a preconfigured link that specifies a host domain, then the client will perform an SRV lookup on that domain, and attempt to contact one of the hosts returned in that lookup.
For example, if the URL is pexip://meet.alice@vc.example.com?host=localserver.example.com then the client will perform an SRV lookup on _pexapp._tcp.localserver.example.com.
If the SRV lookup fails, or the returned hosts in the lookup cannot be contacted, the client will also attempt to connect directly to that domain, i.e. to http://localserver.example.com:443 (via DNS A-records for localserver.example.com).
If that also fails, no further lookups are performed, and the client will report that it could not join the host domain.
-
If a serverAddress was provisioned to the client, it performs an SRV lookup on that domain, and attempts to contact the host returned in that lookup.
For example, if the server Address is localserver.example.com then it performs an SRV lookup on _pexapp._tcp.localserver.example.com.
If the SRV lookup fails, or the returned hosts in the lookup cannot be contacted, the client also attempts to connect directly to that domain, i.e. to http://localserver.example.com:443 (via DNS A-records for localserver.example.com).
-
Otherwise, the client attempts an SRV lookup on the domain portion of the address that was dialed, i.e. on _pexapp._tcp.vc.example.com.
If the SRV lookup succeeds, it returns the records shown above, and the client will attempt to contact px01.vc.example.com (the record with the highest priority) on TCP port 443.
If it cannot contact px01.vc.example.com it next tries to contact px02.vc.example.com.
If it fails to contact either host, the client also attempts to connect directly to the domain, i.e. to http://vc.example.com:443 (via DNS A-records for vc.example.com).
If that also fails, the desktop client will report that it has failed to contact a server.
Making calls
When placing a call, the Infinity Connect mobile client will attempt to locate a Conferencing Node by performing a single SRV lookup on one of the following domains:
- If a serverAddress has been specified in the client's application settings file (settings.json), the client performs an SRV lookup on _pexapp._tcp.<serverAddress>. Note that the serverAddress is not configured in the default mobile client provided by Pexip, but an address could have been configured during client customization and provisioning.
- If a serverAddress is not specified, the client performs an SRV lookup on the domain portion of the address that was specified, i.e. _pexapp._tcp.<address domain>.
The client currently supports a single SRV record per domain. If multiple SRV records are returned by the SRV lookup, the client will attempt to contact the first host in the list, which may or may not be the preferred host. If this attempt fails, no further attempts are made to contact other hosts on the list.
If the Infinity Connect mobile client cannot locate the host (i.e. the Conferencing Node) through DNS SRV discovery because either:
- the SRV lookup does not return any records, or
- the client cannot contact the first host on the list that is returned in the SRV lookup
it falls back to performing a DNS A‑record lookup for the domain in question. If successful, it attempts to connect to port 443 on the IP address returned from this A‑record lookup.
Example
In this example, when a user attempts to access meet.alice@vc.example.com, the client does one of the following:
-
If a serverAddress is configured, the client performs an SRV lookup on that domain, and attempts to contact the first host returned in that lookup. For example, if the server Address is localserver.example.com then it performs an SRV lookup on _pexapp._tcp.localserver.example.com.
If this SRV lookup fails, or the first returned host in the lookup cannot be contacted, the client also attempts to connect directly to that domain, for example to http://localserver.example.com:443 (via DNS A-records for localserver.example.com).
If this fails, no further lookups are performed.
-
If a serverAddress is not configured, the client attempts an SRV lookup on the domain portion of the address that was dialed, i.e. on _pexapp._tcp.vc.example.com.
If this SRV lookup succeeds, it returns the records shown above, and the client attempts to contact the first host in the returned list on TCP port 443. Note that the addresses are returned in an arbitrary order and thus the first host may be either px01.vc.example.com or px02.vc.example.com.
If this SRV lookup fails, or it fails to contact the first host on the returned list, the client attempts to connect to http://vc.example.com:443 (via DNS A-records for vc.example.com).
Registering
The
Making calls
When placing calls, the legacy Infinity Connect desktop client (as of version 2.1 and later) may attempt several DNS lookups for different domains — based on the dialed alias and the client's configuration — until it is able to connect to a Conferencing Node.
The domains on which the client will perform DNS lookups, and the order in which it will perform those lookups, is as follows:
- The domain portion, if specified, of the dialed Conference alias or URI.
- The serverAddress, if specified, in the client's application settings file (settings.json). This address is not configured in the default desktop client provided by Pexip, but an address could have been configured by using the Infinity Connect desktop client toolkit files to customize the client prior to installation.
- The Connection server address, if specified by the user, in the client page.
- The Registration server address, if specified by the user, in the client page. This address can either have been explicitly specified, or it may have been derived from the domain portion of the user name to be registered.
Note that in many environments, some of these addresses, when used, will often refer to the same domain.
For each domain, the client will first perform an SRV lookup on _pexapp._tcp.<domain>. If the SRV lookup fails, or the client fails to contact any of the hosts in the returned SRV records, it will then perform a DNS A‑record lookup for that same domain. If that A-record lookup is successful, it will attempt to connect to port 443 on the IP address returned from the lookup. If the client still fails to connect, it will move on to the next domain as specified in the list above. (The only exception is option 1, the dialed Conference alias or URI, where the client will perform an SRV lookup only.)
If multiple records are returned by an SRV lookup on _pexapp._tcp.<domain>, the client will attempt to contact each host in turn according to the priority of each returned record.
Example
In this example, when a user attempts to access meet.alice@vc.example.com, the Infinity Connect desktop client will attempt an SRV lookup on _pexapp._tcp.vc.example.com:
-
If the SRV lookup succeeds, it will return the records shown above, and the Infinity Connect desktop client will attempt to contact px01.vc.example.com (the record with the highest priority) on TCP port 443.
If it cannot contact px01.vc.example.com it will next try to contact px02.vc.example.com.
- If it fails to contact either host, or the SRV lookup fails, and neither a serverAddress, Connection server address nor a Registration server address have been specified, the desktop client will report that it has failed to contact a server.
- If any of the serverAddress, Connection server address or a Registration server address have been specified, and are for a different domain to that of the dialed alias (vc.example.com in this case) the Infinity Connect desktop client will perform SRV lookups on those other domains, and attempt to contact the hosts returned in those lookups. For example, if the Connection server address is localserver.example.com then it will perform an SRV lookup on _pexapp._tcp.localserver.example.com.
- If each subsequent SRV lookup fails, or the returned hosts in those lookups cannot be contacted, the Infinity Connect desktop client will also attempt to connect directly to that domain, for example to http://localserver.example.com:443 (via DNS A-records for localserver.example.com).
Registration
The
Making calls
When placing a call, the Infinity Connect mobile client will attempt to locate a Conferencing Node by performing a single SRV lookup on _pexapp._tcp.<domain>, where <domain> is determined as follows:
- Android client: uses the Connection server address if specified, otherwise it uses the domain portion of the address that was dialed.
- iOS client: uses the domain portion of the address that was dialed.
The client currently supports a single SRV record per domain. If multiple SRV records are returned by the SRV lookup on _pexapp._tcp.<domain>, the client will attempt to contact the first host in the list, which may or may not be the preferred host. If this attempt fails, no further attempts will be made to contact other hosts on the list.
If the Infinity Connect mobile client cannot locate the host (i.e. the Conferencing Node) through DNS SRV discovery because either:
- the SRV lookup on _pexapp._tcp.<domain> does not return any records, or
- the client cannot contact the first host on the list that is returned in the SRV lookup
it will fall back to performing a DNS A‑record lookup for the domain in question. If successful, it will attempt to connect to port 443 on the IP address returned from this A‑record lookup.
Example
In this example, when a user attempts to access meet.alice@vc.example.com, the Infinity Connect mobile client will attempt an SRV lookup on _pexapp._tcp.vc.example.com:
- If the SRV lookup succeeds, it will return the records shown above, and the Infinity Connect mobile client will attempt to contact the first host in the returned list on TCP port 443. Note that the addresses are returned in an arbitrary order and thus the first host may be either px01.vc.example.com or px02.vc.example.com.
- If the SRV lookup fails, or it fails to contact the first host on the returned list, the Infinity Connect mobile client will attempt to connect to http://vc.example.com:443 (via DNS A-records for vc.example.com).
(Note that for the Android client, this example assumes that a Connection server address is not configured on the client. If a connection server address is specified, it would be used instead of the domain portion of the dialed conference address i.e. vc.example.com in this case.)