Configuring Call Routing Rules

Call Routing Rules are used to handle two types of calls within Pexip Infinity:

  • Calls received by Pexip Infinity that are to be routed via the Infinity Gateway to their ultimate destination (another device or externally-hosted conference).
  • Outgoing calls made from within a Pexip Infinity conference (such as when manually adding a participant to a VMR).

This topic explains when Call Routing Rules are used, the main considerations when configuring your rules, our recommendations, how to add or modify rules, and provides an example rule.

When are Call Routing Rules used?

Call Routing Rules may be used for matching incoming calls received by Pexip Infinity, and they may also be used for matching outbound calls made from a Pexip Infinity conference.

Incoming calls

If an incoming call does not match an alias associated with a conferencing service (Virtual Meeting Room, Virtual Auditorium, Virtual Reception, scheduled conference, Media Playback Service, or Test Call Service), it is deemed a gateway call and it must match a Call Routing Rule for the call to be placed to the destination alias / target system.

When using a Virtual Reception to capture an alias, that new alias is treated as a new incoming call i.e. it will be checked against the service aliases first and then matched against the rules.

Call Routing Rules are not required to route incoming calls to a conferencing service (Virtual Meeting Room, Virtual Auditorium, Virtual Reception, scheduled conference, Media Playback Service, or Test Call Service). This happens automatically if the alias received by Pexip Infinity matches an alias associated with the conferencing service.

Outgoing calls from a conference

Outgoing calls made from within a Pexip Infinity conference are checked against Call Routing Rules when:

  • Automatically Dialed Participants or participants added manually via the Pexip Infinity Administrator interface have their Route this call option set to Automatically
  • participants are added via a Connect app.

and then it must match a suitable rule for the call to be placed to the destination alias/target system. See Recommendations for handling outgoing calls from a conference for more information.

Call routing considerations

When configuring a Call Routing Rule, the main points to consider are:

  • Rule priority: this is the order in which the rules are checked to see if the conditions specified in the rule match the characteristics of the call that Pexip Infinity is trying to route. Rule checking stops when a match is found, even if the call that is placed as a result of that match fails for any reason.
  • Applicability to incoming or outgoing calls: you must decide whether the rule applies only to incoming gateway calls, or only to outgoing calls placed from within a Pexip Infinity conference (where Automatic routing has been selected), or to both incoming gateway calls and outgoing calls from conferences. You can also limit the rule so that it only applies if the call is being handled by a Conferencing Node in a specific location.
  • Restricting incoming calls to those from registered devices or specific call protocols: for incoming gateway calls, whether to limit the rule's applicability to only allow calls to be made from devices that are registered to Pexip Infinity, or to limit them to certain incoming protocols e.g. SIP only.
  • Alias matching and transforms: the dialed alias or alias patterns that apply to this rule. A rule can be configured to apply to a specific alias e.g. alice@example.com, or to an alias pattern defined by a regex (regular expression) such as .+@example.com (any destination alias with the domain example.com). The destination alias can also, optionally, be transformed before the outgoing call is placed.
  • Call media settings: whether to limit the media capabilities of the call, or whether to apply a theme.
  • Outgoing call placement: every rule must define to where and how the call is routed to the destination alias. This includes defining the types of devices or systems to which the call is routed, such as limiting it to registered devices only or by specifying the SIP proxy, H.323 gatekeeper or Skype for Business server to use.
  • Toll fraud: if you have Call Routing Rules that route calls to an ISDN/PSTN gateway, consider who should be allowed to make those calls (to avoid toll fraud). You could restrict those rules to only apply to incoming calls from registered devices, or to calls that are being handled in an internal location. Also, to restrict the number of people who can dial out from within a conference, we recommend configuring a Host PIN for your conferences (as only Hosts can initiate an outgoing call).

Note that any incoming call that has a destination alias that matches the alias of any Virtual Meeting Room, Virtual Auditorium, Virtual Reception or Test Call Service is always directed automatically to that conferencing service; the call will not be routed via the Infinity Gateway and the Call Routing Rules are not applied.

This diagram shows the call routing logic within Pexip Infinity when handling incoming call requests and when dialing out from within a conference.

Note that as an alternative to using Pexip Infinity's own routing logic, you can configure Pexip Infinity to instead defer its decision making to an external policy service or to use a local policy script (see policy profiles for more information). This allows Pexip Infinity administrators to implement routing decisions based on their specific requirements.

Recommendations for handling outgoing calls from a conference

In addition to configuring rules to handle person-to-person gateway calls, another consideration when setting up your dial plan is how to deal with outgoing calls placed from within a Pexip Infinity conference, particularly when placed by conference participants using a Connect app.

The Connect apps always use Automatic routing when dialing out from a conference, meaning that the user only has to enter or select the alias of the person they want to invite, and they do not have to select a call protocol.

To support the use of Automatic routing you must configure some appropriate Call Routing Rules otherwise the outbound call will not get placed.

The rules you need to configure depend upon your local requirements, but we recommend that you configure a fallback rule (a rule with a lower priority i.e. a higher number, than all of your other rules that are handling outgoing calls from a conference) that attempts to place the call over SIP and uses either DNS or the local SIP proxy.

Here are some typical rule patterns you may want to use (where all of the rules are configured to handle Outgoing calls from a conference):

Priority Destination alias regex match * Call target Protocol and Proxy /Gatekeeper Purpose
10 .+@example\.com Registered devices only n/a This rule is only required if you are registering endpoints to Pexip Infinity as it will route calls to those registered aliases (devices). You can use a more specific regex if your registered URIs have a more controlled naming convention. You may also want to enable this rule for matching Incoming gateway calls.
190 \d+\.\d+\.\d+\.\d+ Registered device or external system H.323 (to your gatekeeper or via DNS) This rule matches an alias in the form of an IP address (see Matching an IP address for a more specific regex) and calls out over H.323 either via your local H.323 gatekeeper or via DNS.
200 (?!.*@example\.com$).* Registered device or external system SIP (to your proxy or via DNS)

This is your fallback rule. It matches aliases that do not end in @example.com (i.e. calls to domains outside of your environment) and routes it out over SIP either via your local SIP proxy or via DNS.

Your fallback rule should ignore all of your domains that are serviced by your Pexip Infinity deployment (for example vc.example.com, vmr.example.com etc). To ignore multiple domains, you could use an expression formatted in the style:
(?!.*@(example\.com|another\.com|vc\.example\.com)$).*
which would ignore the example.com, another.com and vc.example.com domains.

Note that these example expressions do not produce any match groups and do not require a replace string (hence the dialed alias is passed on unchanged if the match is successful).

You could also tighten the match to only allow certain address formats for the external addresses such as name@domain i.e. (?!.*@example\.com$).+@.+

* All of these rules are intended as examples and use a local video domain of example.com. They are a basis for your own requirements and they should be adapted accordingly for your local environment.

Note that Call Routing Rules are not required to route incoming calls to a conferencing service (Virtual Meeting Room, Virtual Auditorium, Virtual Reception, scheduled conference, Media Playback Service, or Test Call Service).

Creating and modifying Call Routing Rules

To add, edit or delete a Call Routing Rule, go to Services > Call routing. When specifying a Call Routing Rule, the options are:

Option Description
Name

The name used to refer to this rule.

If you are using a Virtual Reception as an IVR gateway to capture a conference ID, and then using this Call Routing Rule to transfer the participant into an external conference such as Google Meet or a Microsoft Teams meeting, then the rule Name entered here is shown to conference participants as they are transferred into the meeting (it is overlaid onto the virtual_reception_connecting splash screen of the theme associated with the Virtual Reception that is transferring the call).

Service tag This optional field lets you assign a unique identifier to this service, which you can then use to track use of the service.
Description An optional description of the rule.
Priority

Assign a relative priority to this rule, from 1 to 200. Rules are checked in order of priority, starting with 1 and working down the list until a match is found.

Rule checking stops when a match is found, even if the call that is placed as a result of that match fails for any reason.

Use this rule for...
Incoming gateway calls

Applies this rule to incoming calls that have not been routed to a Virtual Meeting Room, Virtual Auditorium, Virtual Reception, scheduled conference, Media Playback Service, or Test Call Service, and thus should be routed via the Infinity Gateway.

Default: selected.

Outgoing calls from a conference

Applies this rule to outgoing calls placed from a conferencing service (e.g. when a participant is added to a Virtual Meeting Room) where Automatic routing has been selected.

Default: not selected.

Note that the same rule can be applied to both incoming and outgoing calls if required.

Calls being handled in location

You can select a specific location, which means:

  • for incoming calls, the rule is only applied if the call is being handled (for signaling purposes) by a Conferencing Node in the selected location.
  • for outgoing calls, the rule is only applied if the call is being initiated from the selected location.

This allows you to restrict the types of calls that some users can make. For example, you may use a call control system that routes all calls into Pexip Infinity through Conferencing Nodes in an "internal/trusted" location, whereas calls received from devices in the public internet could all be routed to nodes in a different "public/untrusted" location. You can then, for example, use the Calls being handled in location option to allow only calls received in the "trusted" location to place calls via a PSTN gateway.

To apply the rule regardless of the location, select Any Location.

Default: Any Location.

When matching incoming Gateway calls...
Match incoming calls from registered devices only

Select this option if you want this rule to only apply to incoming calls from devices, videoconferencing endpoints, soft clients or Connect apps that are registered to Pexip Infinity. Note that:

  • The incoming call must be received by the same Conferencing Node as to which the device is registered. This is the normal behavior for most endpoints, however you may need to ensure that the SIP Proxy and Registrar are both configured to resolve to the same node.
  • The call must also match one of the selected protocols below.

Calls placed from non-registered clients or devices, or from the Connect web app will not be routed by this rule if it is enabled.

Default: disabled.

Match Infinity Connect (WebRTC/RTMP)

Match SIP

Match Lync / Skype for Business (MS-SIP)

Match H.323

Match Teams

Select the source / protocols of the incoming call to which the rule should apply. Note that matching Lync / Skype for Business (MS-SIP) and Teams calls options do not apply if Match incoming calls from registered devices only is selected.

Default: these options, except for Teams, are all enabled by default.

Alias match and transform
Match against full alias URI

This setting is for advanced use cases and will not normally be required.

By default, Pexip Infinity matches against a parsed version of the destination alias, i.e. it ignores the URI scheme, any other parameters, and any host IP addresses. So, if the original alias received by Pexip Infinity is sip:alice@example.com;transport=tls for example, then by default the rule will match against alice@example.com.

Select this option to match against the full, unparsed alias instead.

You must select this option if you are using this rule to support your Skype for Business / Lync IVR gateway (where this rule is routing calls handled by a Virtual Reception into the relevant Skype for Business / Lync meeting).

Destination alias regex match

The regular expression that the destination alias (the alias that was dialed) is checked against to see if this rule applies to this call.

Pexip Infinity supports case-insensitive Perl-style regular expression patterns. Note that the regex must match the entire alias — a partial match is treated as a non-match. See Regular expression (regex) reference for information about writing regular expressions.

Destination alias regex replace string

The regular expression string used to transform the originally dialed alias (if a match was found).

If you do not want to change the alias, leave this field blank.

Call media settings
Maximum inbound call bandwidth (kbps) Enter a value in this field to limit the bandwidth of media being received by Pexip Infinity from each individual participant dialed in via this rule. For more information see Managing and restricting call bandwidth.
Maximum outbound call bandwidth (kbps)

Enter a value in this field to limit the bandwidth of media being sent from Pexip Infinity to each individual participant dialed out from this rule. For more information see Managing and restricting call bandwidth.

When dialing out from a conference, the outbound call bandwidth limit is inherited from the VMR's bandwidth settings. In this case, the rule's outbound bandwidth setting configured here is not used.

Call capability

Allows you to limit the media content of the call. The participant being called will not be able to escalate beyond the selected capability. For more information, see Controlling media capability.

Default: Main video + presentation.

Maximum call quality

Controls the maximum call quality for participants connecting to this service:

  • Use global setting: use the global maximum call quality setting.
  • SD: each participant is limited to SD quality.
  • HD: each participant is limited to HD (720p) quality.
  • Full HD (1080p): allows any endpoint capable of Full HD to send and receive its main video at 1080p.

Default: Use global setting

See Setting and limiting call quality for more information.

Media encryption

Controls the media encryption requirements for participants connecting to this service.

  • Use global setting: use the global media encryption setting.
  • Best effort: each participant will use media encryption if their device supports it, otherwise the connection will be unencrypted.
  • Required: all participants (including RTMP participants) must use media encryption.
  • No encryption: all H.323, SIP and MS-SIP participants must use unencrypted media. (RTMP participants will use encryption if their device supports it, otherwise the connection will be unencrypted.)

Default: Use global setting

Theme

The theme to use for calls placed using this rule. See Themes used by Call Routing Rules (gateway calls) for more information.

Default: <use Default theme> (the global default theme is used).

Outgoing call placement (individual fields are only displayed when appropriate)
Call target

The device or system to which the call is routed. The options are:

  • Registered device or external system: route the call to a matching registered device if it is currently registered, otherwise attempt to route the call via an external system such as a SIP proxy, Skype for Business / Lync server, H.323 gatekeeper or other gateway/ITSP.
  • Registered devices only: route the call to a matching registered device only (providing it is currently registered).
  • Lync / Skype for Business meeting direct (Conference ID in dialed alias): route the call via a Skype for Business / Lync server to a Skype for Business / Lync meeting. Note that the destination alias must be transformed into just a Skype for Business / Lync Conference ID.
  • Lync / Skype for Business clients, or meetings via a Virtual Reception: route the call via a Skype for Business / Lync server either to a SfB/Lync client, or — for calls that have come via a Virtual Reception — to a Skype for Business / Lync meeting. For Skype for Business / Lync meetings via Virtual Reception routing, ensure that Match against full alias URI is selected and that the Destination alias regex match ends with .*
  • Google Meet meeting: routes the call to a Google Meet meeting. See Integrating Google Meet with Pexip Infinity for more information.
  • Microsoft Teams meeting: routes the call to a Microsoft Teams meeting. See Integrating Microsoft Teams with Pexip Infinity for more information.
  • Microsoft Teams Room: routes the call to a Microsoft Teams Room. See Integrating Microsoft Teams with Pexip Infinity for more information.
  • Epic Telehealth Profile: used for telehealth calls. See Epic telehealth integration with Pexip Infinity for more information.
Outgoing location

When calling an external system, this forces the outgoing call to be handled by a Conferencing Node in a specific location.

When calling a Skype for Business / Lync meeting, a Conferencing Node in this location will handle the outgoing call, and — for Lync / Skype for Business meeting direct targets — perform the Conference ID lookup on the SfB/Lync server.

Select Automatic to allow Pexip Infinity to automatically select the Conferencing Node to use to place the outgoing call (which will usually be the node that received the call).

Protocol

The protocol used to place the outgoing call. Note that:

  • If the call is to a registered device, Pexip Infinity will instead use the protocol that the device used to make the registration.
  • RTMP (streaming) always routes to an external system.

Default: SIP.

SIP Proxy *

You can optionally specify the SIP Proxy to use to place an outgoing SIP call.

Default: Use DNS.

H.323 Gatekeeper *

You can optionally specify the H.323 Gatekeeper to use to place an outgoing H.323 call.

Default: Use DNS.

Lync / Skype for Business server *

When calling an external system, this is the Skype for Business / Lync server to use for outbound SfB/Lync (MS-SIP) calls.

When calling a Skype for Business / Lync meeting, this is the SfB/Lync server to use for the Conference ID lookup and to place the call.

Default: Use DNS (note that a server must be selected when the Call target is Lync / Skype for Business meeting direct (Conference ID in dialed alias)).

TURN server You can optionally specify the TURN server to use when placing calls to ICE-enabled clients (such as Skype for Business / Lync clients and Connect app WebRTC clients).
STUN server You can optionally specify the STUN server to use when placing calls to ICE-enabled clients (such as Skype for Business / Lync clients and Connect app WebRTC clients).
Teams Connector

You can optionally select the Teams Connector you want to handle the call. If you do not specify anything, the Teams Connector associated with the outgoing location is used.

Access token

Select the name of the access token to use to resolve Google Meet IDs. You should select either a trusted or untrusted type of token, depending on whether you want to enable the device to be automatically admitted into the Google Meet conference (subject to also being a trusted endpoint from Pexip Infinity's perspective i.e. if the rule also has Treat as trusted enabled).

Typically, you will use a trusted token if Treat as trusted is selected, and an untrusted token if Treat as trusted is not selected.

See Enabling access and admitting external participants into Google Meet conferences for more information.

Treat as trusted

This indicates that the target of this Call Routing Rule may treat the caller as part of the target organization for trust purposes. It can be applied to calls placed to:

  • Microsoft Teams
  • Google Meet
  • SIP destinations and registered SIP devices (via a P-Asserted-Identity in the SIP header)
Enable Live Captions

When enabled, participants using the Connect web app are given the option to turn on the live captions for conferences using this service.

  • Use global live captions setting: as per global configuration setting.
  • Yes: live captions may be enabled.
  • No: live captions cannot be enabled.

Default: Use global live captions setting

This is a technology preview feature and can be enabled via Platform > Global settings > Tech preview features > Live captions, and then on a per VMR or per Call Routing Rule basis. See Global Settings for more information.

External participant avatar lookup

Applies to Microsoft Teams integrations only. This determines whether or not the Teams Connector requests from Exchange Online an avatar for each participant in the Teams conference.

  • Use global setting: use the global external participant avatar lookup setting.
  • Yes: request the participant avatar from Exchange Online via the Teams Connector.
  • No: use default avatar behavior.

Default: Use global setting

Denoise audio

Applies to Google Meet integrations only. Controls whether to remove background noise from audio streams as they pass through the infrastructure.

Some endpoints perform their own built-in denoising, in which case, to avoid performing denoising twice, you can configure via the theme's vendordata.json file a list of endpoints that perform their own denoising. See Rules and requirements for customized themes for more information.

Default: enabled.

Rule state
Enable this rule Determines if the rule is enabled or not. Any disabled rules still appear in the rules list but are ignored. Use this setting to test configuration changes, or to temporarily disable specific rules.

* If you do not select a specific H.323 Gatekeeper, SIP Proxy or SfB/Lync server, the Conferencing Node will attempt to use DNS to locate an appropriate system via which to route the call (rather than fall back to using the gatekeeper / proxy / server associated with the node's system location).

† If you do not select a specific TURN server or STUN server, the call will use the TURN / STUN server associated with the node's system location.

Example

In our example organization, every employee has their own video endpoint that is registered to Pexip Infinity with an alias in the format firstname.lastname@example.com, and their own Virtual Meeting Room with an alias in the format meet.firstname.lastname@example.com.

In most cases, employees will use their standalone SIP or H.323 endpoints to call others within the organization, but sometimes they want to use a Connect app to make a person-to-person call.

To support this, we set up the following Call Routing Rule (unspecified settings can be left as their default values):

Option Input Notes
Name Connect app to SIP  
Description Allow Connect app users to call registered SIP endpoints directly  
☑ Incoming gateway calls
☐ Outgoing calls from a conference
  We want this rule to match incoming gateway calls only.
Calls being handled in location Any location We want this rule to apply throughout our deployment.
☑ Match Infinity Connect (WebRTC / RTMP)
☐ Match SIP
Match Lync / Skype for Business (MS-SIP)
☐ Match H.323
  In this example, we only want the rule to apply to calls from Connect apps.
Destination alias regex match .+@example.com This regular expression will match any destination alias with the domain example.com.
Destination alias regex replace string <blank> We have left this blank because we do not want to amend the alias.
Call target Registered devices only We want the call to match currently registered devices only.

This rule means that if a Connect app user dials any alias with the domain @example.com (e.g. alice.jones@example.com), the call will be routed over SIP. We do not need to worry about this rule applying to VMR aliases with the same domain (e.g. meet.alice.jones@example.com) because rules are only applied to incoming calls after checking whether there are any VMRs, Virtual Receptions etc. with that alias.