NOTE:  The feature set covered in this article was released as a software update to Protel v4 systems only, on Jan. 9, 2018.

Protel LTS version 3 models are no longer being supported for software updates as of 2018.  If you have a version 3 PBX and want to get it upgraded to version 4, please refer to the articles posted in our Knowledge Base:

You can determine which Protel version your system is running by clicking on the “About” link, under the Maintenance tab.


This feature set consists of several components.  To gain a full understanding of what each component does, and how they interact together, you should read each of the following sections before attempting to deploy advanced routing for a user:

1.  Call Categorization and Labeling

2.  Default Extension Routing

3.  Advanced Routing Based on Call Labels

4.  Toggling Advanced Routing On/Off

5.  Programming Examples

6.  Extension Routing vs. Group Routing


To facilitate advanced extension routing based on the type of call, you will first need to assign labels to the available types, using this tool link:

Additional Tasks->Call Categorization

The current release of the Advanced Extension Routing feature set provides only two call type definitions:  calls that originate from external sources, and calls that originate from internal extension users.  Additional call type definitions will be added in future Protel LTS software releases.  You will need to create a short label string for each type, for example: “Internal” for calls originating from other extension users, and “External” for calls coming from the outside.  You can use any text string you want for the label, but you will need to assign your desired text label on this page before you will be able to create advanced routing rules for extension users (see section 3 below).

Requiring the text label for a call type definition may seem obvious and unnecessary, but we plan to add customizable definitions to this table in the future.  To allow for future development we needed to provide that capability now, even with only two call types.


If you don’t plan to utilize the new routing functions, you don’t need to do anything to your current settings, but you should be aware of a change that affects the way these default settings are controlled.  The basic default settings for extension routing on an unanswered call are still managed from the same administration user page:  Extensions->Modify Existing Extension->SIP & Dialing

prior to this update release, this page contained a setting that looked like this:

With the new Protel update installed, this setting interface has been modified.  Instead of specifying the number of rings, we have standardized this value to be expressed in seconds, since the number of times that the phone handset rings is actually determined by the phone manufacturer’s firmware, and it could be anywhere from 4 to 6 seconds per ring.  When you install the new Protel update, the “number of rings” value will be automatically changed to a value in seconds, using 5 as the multiplier to calculate the new value.  

When you create a new extension user, this value is automatically set to a default interval of 20 seconds (previously displayed as 4 rings).

Even though the administrative controls have been modified, the resulting extension behavior has not changed.  These “Basic Default” settings have very limited capabilities.  Just like the behavior before this feature update, an incoming call that is not answered within the prescribed interval will go to that user’s voicemail, with no other options available.  If the user is engaged on a call and another call comes in, another line button will blink on the phone, and the call waiting tone will be heard.

The ring behavior assigned to an extension also applies if the phone is in an “unavailable” state, except that the Ring Time value is ignored, and the call immediately routes to the default destination – which is always voicemail, unless the enhanced routing functions are deployed (see next paragraph).  A phone-based Do Not Disturb will return “unavailable” to the PBX, as will the PBX-based DND function.  “Unavailable” can also be triggered if the phone has exceeded its concurrent call limit (defined further up on this same SIP & Dialing page), or if it is not actively registered to the PBX.  Any call to an “unavailable” extension that does not have voicemail enabled will just end, and the calling party will hear the system announce “Goodbye”.


Extensions->Extension Routing   Click on the extension number/name you want to modify

The bottom section of this page will display the current Default routing, plus any additional rules that have been added.

The Basic Default settings, controlled from the Modify Existing Extension->SIP & Dialing Tab and described in the “Default Settings” section above, will be displayed here on this page unless you modify them.  If you modify the Default settings from this page, the values will update, and an “X” button will appear next to the label, which allows you to delete these modified settings and return to the Basic Default settings that were set on the SIP & Dialing Tab of the Modify Extension page.  The Basic Default Settings cannot be deleted; only Modified Defaults can be deleted.

This enhanced setting allows you to override the Basic Default parameters.  You can specify different ring times depending on the extension status, and you have many options for where the call goes after that (Fallthrough target).  The “Ring Time” value applies if the phone is idle.  The “Busy Ring Time” value applies if the phone is engaged on another call.  If you want calls to go directly to voicemail (or other destination) when the phone is busy, set this value to 0.  If you want a second incoming call to ring another line button on the phone, but for a different length of time than it would if the phone was idle, set this value to duration other than 0.  If you want the ring times to be the same, regardless of the phone status, leave the Busy Ring Time field in its default “Same” status.

The fall-through target is set from the drop-down menu.  Your Destination choices are:

Depending on which Destination you set, the next drop-down menu presents the available targets for that type of destination.  If you select a Callgroup as the destination, for example, your drop-down choices might look like this:


Calls will be routed to the selected target destination if any of these conditions are met:

A) The phone is idle, and the call is not answered before the Ring Time value is exceeded.

B) The phone is busy, and the call is not answered before the Busy Ring Time value is exceeded.

C) The phone is Unavailable (Do Not Disturb, unregistered, or has exceeded its Concurrent Call Limit).  “Unavailable” status will send the call to the destination target immediately.




Extensions->Extension Routing   Click on the extension number/name you want to modify

Create a routing rule for the type of call that you want to route differently than the default setting.  For example, if you want to set up alternate routing for external calls, create a routing rule for tis call type.  Normally, you won’t need to create a separate rule for internal calls, since the default setting will apply to those calls.  If a call type does not match a defined rule, the default routing will apply to it.  Execute a PBX reload when you have finished making routing changes.  Your settings page might look something like this:

You will need to toggle the Advanced Routing rule to the “ON” setting if you want the rule to take effect immediately, which is discussed in the next section.


After you have created routing rules for extensions, and executed a PBX reload, the Advanced Routing rules can be toggled on/off in two ways:


On the Advanced Routing page for an extension, activate the “Enable” check box and click the “Update” button.  No reload is necessary, provided that the PBX was reloaded after all rules were defined.


To allow users to turn Advanced Routing on/off from their phone, you will need to define a feature code for this function.  A default feature code is not automatically installed.

Additional Tasks->Modify Feature Codes

Scroll down to the listing for “Toggle Advanced Extension Routing”, enter your desired value, and click on the “Save Changes to Feature Codes” button at the top of the screen.  Our suggested code is 15.  After reloading the PBX, any user that has Advanced (non-default) routing rules established for their extension can toggle them on/off by dialing the feature code.  The system will return a message to indicate which state has just been activated.  “Activated Conditions” will be played when the Advanced Routing functions have been turned on.  “Deactivated Conditions” will be played when they get turned off.

Optionally, you can also set a feature code to query the current state of Advanced Extension Routing.  Our suggested code is 16.  Dialing this code returns the same system messaging as the toggle code, except that it does not change anything – it simply tells you which state it is in.


The “Enable” checkbox, at the top of the Advanced Routing screen for an extension, will always display the current state of routing.  If an administrator enables routing, and a user subsequently disables it by dialing the feature code, this box will display as unchecked when the page is accessed again.  Conversely, if you don’t Enable the routing from the web interface, the toggle feature code will turn it on, and the checkbox status will update when you log into it again.

The Default settings are not affected if you toggle Advanced Routing on/off.  If you have entered new Default settings from this page, thus overriding the Basic Default settings, those settings will continue to apply to any call that does not match an advanced routing rule, or to ALL calls if Advanced Routing has been turned off.  If you have not created a default override, or if you delete a default override, the Basic Default setting will apply (see section 2 above).


Scenario:   User wants to route unanswered calls to an auto attendant

Solution:  Set a Default override:

Extensions->Extension Routing->Click on the Extension to modify

create a new default setting, with an Attendant as the Target.


Scenario 2:   When they are on the phone with another call, user wants internal calls to route to voicemail immediately, while external calls route to another user 

Solution:  Create an advanced rule for External calls, and modify the default rule to handle internal calls:

Extensions->Extension Routing->Click on the Extension to modify

Modify the default rule so that the busy ring time is 0 seconds, but the fallthrough target stays with the user’s voicemail.  Add an advanced rule for External calls, also with a busy ring time of 0 seconds, that targets another extension user.

Scenario 3:   User wants to be able to use a feature code to turn on a do-not-disturb situation where all calls route to another user 

Solution:  This one is a bit tricky.  Since the routing toggle feature code does not affect default settings, you will need to create advanced rules to apply to all types of call definitions, then toggle the advanced rules on and off:

Extensions->Extension Routing->Click on the Extension to modify

Create two identical rules for both External and Internal calls.  Set the ring time to 0, and set the target destination to ring the desired user.  Do not apply the rule. When the user dials the toggle feature code, the advanced rules will apply to every call.  When the rule is toggled off, the default rule will apply.





It is important to understand the difference between the routing rules programmed for an individual extension and the rules programmed for a Call Group.

None of the routing rules that are set up for an extension user have any effect on the behaviors programmed for a Call Group, or to an ACD queue, if the user is also defined as a member of that group or queue.  If an incoming call is directed at a Call Group, the group behavior applies, not the extension behavior.  An extension routing behavior that defines a busy ring time to 0, for example, does not apply to an incoming group call.  If the extension is a member of the group, that phone will ring when a call is directed at the group, regardless of the extension settings.