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.
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. firstname.lastname@example.org, 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:
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$).+@.+
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 . When specifying a Call Routing Rule, the options are:
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.|
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.
|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:
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:
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.
Match Infinity Connect (WebRTC/RTMP)
Match Lync / Skype for Business (MS-SIP)
Select the source / protocols of the incoming call to which the rule should apply. Note that selecting Match Lync / Skype for Business (MS-SIP) calls does not apply if Match incoming calls from registered devices only is selected.
Default: these options 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:email@example.com;transport=tls for example, then by default the rule will match against firstname.lastname@example.org.
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). See Configuring Pexip Infinity as a Skype for Business / Lync gateway for more information.
|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.
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:
Default: Use global setting
See Setting and limiting call quality for more information.
Controls the media encryption requirements for participants connecting to this service.
Default: Use global setting
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)|
The device or system to which the call is routed. The options are:
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 targets — perform the Conference ID lookup on the meeting directSfB/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).
The protocol used to place the outgoing call. Note that:
You can optionally specify the SIP Proxy to use to place an outgoing SIP call.
Default: Use DNS.
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 ). meeting direct (Conference ID in dialed alias)
||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).|
||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).|
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.
Typically, you will use a trusted token if Treat as trusted is selected, and an untrusted token if Treat as trusted is not selected.
|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:
|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.
Default: Use global live captions setting
This is a technology preview feature and can be enabled via Call Routing Rule basis. See Global Settings for more information., and then on a per VMR or per
|External participant avatar lookup||
Default: Use global setting
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.
|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.|
In our example organization, every employee has their own video endpoint that is registered to Pexip Infinity with an alias in the format email@example.com, and their own Virtual Meeting Room with an alias in the format firstname.lastname@example.org.
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):
|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 email@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. firstname.lastname@example.org), 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. email@example.com) because rules are only applied to incoming calls after checking whether there are any VMRs, Virtual Receptions etc. with that alias.