Call Routing Process
One of the functions of the Expressway is to route calls to their appropriate destination. It does this by processing incoming search requests in order to locate the given target alias. These search requests are received from:
-
Locally registered endpoints
-
Neighboring systems, including neighbors, traversal clients and traversal servers
-
Endpoints on the public internet
Several steps are involved in determining the destination of a call, and some of these steps can involve transforming the alias or redirecting the call to other aliases.
It's important to understand the process before setting up your dialing plan so you can avoid circular references, where an alias is transformed from its original format to a different format, and then back to the original alias. The Expressway is able to detect circular references. If it identifies one it will terminate that branch of the search and return a "policy loop detected" error message.
How the Expressway determines the destination of a call
The process followed by the Expressway when attempting to locate a destination endpoint is described below.
-
The caller enters into their endpoint the alias or address of the destination endpoint. This alias or address can be in a number of different address formats.
-
The destination address is received by the Expressway.
(The address comes to Expressway directly from a registered endpoint, or it may come indirectly as a result of other call processing infrastructure in your deployment)
-
Any pre-search transforms are applied to the alias.
-
Any Call Policy is applied to the (transformed) alias. If this results in one or more new target aliases, the process starts again with the new aliases checked against the pre-search transforms.
-
Any User Policy (if FindMe is enabled) is applied to the alias. If the alias is a FindMe ID that resolves to one or more new target aliases, the process starts again with all the resulting aliases checked against pre-search transforms and Call Policy.
-
The Expressway then searches for the alias according to its search rules:
Note
The Expressway deliberately only searches for the first destination alias it reads from an H.323 Location Request. In very rare cases, this can lead to calls not being routed as expected.
-
A matching rule may apply a zone transform to the alias before sending the query on to its Target. A Target can be one of the following types:
-
Local Zone: The endpoints and devices registered to the Expressway.
-
Neighbor zone: One of the Expressway's configured external neighbor zones, or a DNS or ENUM lookup zone.
-
Policy service: An external service or application. The service will return some CPL which could, for example, specify the zone to which the call should be routed, or it could specify a new destination alias.
-
-
-
If the search returns a new URI or alias (for example, due to a DNS or ENUM lookup, or the response from a policy service), the process starts again: the new URI is checked against any pre-search transforms, Call Policy and User Policy are applied and a new Expressway search is performed.
-
If the alias is found within the Local Zone, in one of the external zones, or a routing destination is returned by the policy service, the Expressway attempts to place the call.
-
If the alias is not found, it responds with a message to say that the call has failed.