# Object: Caller Router

The **Caller Router** object allows incoming calls to be forwarded to
different objects, depending on the originating phone number or CLI
(Calling Line Identity). Users have the option of matching complete
phone numbers, or forwarding calls according to number prefixes.

[![../../../_images/caller-router-object.jpg](../../../_images/caller-router-object.jpg)](../../../_images/caller-router-object.jpg)


**Fig. 1.** Caller Router

Caller routing is based on a simple "Allow/Disallow" logic, depending on
the setting of the "behavior" indicator associated with each listed
number/prefix. The **Caller Router** object must be connected to two
child objects such as **Ring Group** or **Voicemail** objects, to which
calls are forwarded according to this "Allow/Disallow" logic.

The **Caller Router** object includes both green ("Allow") and red
("Disallow") right-hand sockets for cable connections. A cable
originating from the green socket corresponds to the "Allow" option,
while a cable originating from the red socket corresponds to the
"Disallow" option.

In the figure below, the **Caller Router** object is configured to
include the phone number prefixes 1416, 1437, and 1647, with the
"behavior" set to "Allow" for all the listed prefixes. Therefore, if
incoming calls are received with a CLI matching any of these prefixes,
then those calls are routed via the green socket to the Toronto Voice
Menu. All other incoming calls are sent to the Ontario Voice Menu.

[![../../../_images/caller-router-example.jpg](../../../_images/caller-router-example.jpg)](../../../_images/caller-router-example.jpg)


**Fig. 2.** Caller Router Implementation

The information to be entered for this object is:

- **Name:** The name of the **Caller Router** object.
- **Default Route:** Specifies which route ("Allow" or "Disallow") to
  which the call will be forwarded if the incoming phone number does
  not match any of the configured routing rules.
- **Algorithm:** An algorithm to be used for number routing, with the
  options being "Prefix" or "Number". "Prefix" matches are determined
  according to "number starts with" logic, while "Number" matches
  require an exact CLI match. Note that either the "Prefix" or "Number"
  option may be selected, and these algorithms may not be mixed on a
  single Caller Router object.
- **Numbers and Behavior:** A list of phone number/s or prefix/es required
  for the caller routing logic, together with an "Allow/Disallow"
  indicator that defines the call routing behavior for that specific
  number or prefix. Alphanumeric inputs (both letters and numerals) are
  supported, with letters being case sensitive. There are no
  limitations on the format (such as E.164) or the number of characters
  used in listing these phone numbers/prefixes, so as to allow for
  maximum flexibility in CLI matching. Multiple numbers or prefixes may
  be added as required.

[![../../../_images/fig133.png](../../../_images/fig133.png)](../../../_images/fig133.png)


**Fig. 3.** Caller Router Object creation

In the figure above, incoming calls with a CLI prefix of 1647 or 1416 will be forwarded to the object connected to the
green ("Allow") socket of the **Caller Router** object, while calls having a prefix of 1514 will be forwarded to the
object connected to the red ("Disallow") socket.

Phone numbers or prefixes previously added to the **Caller Router**
object may be deleted by clicking on the "X" icon to the right of
the number.
