How to work with dial plan elements

Setting up your dial plan in Compass offers a lot of possibilities. However, this is also why it can be a bit more complicated to configure all the dial plan elements exactly to your wishes. Here, we discuss all the (more complex) dial plan elements and what can be done with them.

Elements overview

Element Description
Branch: Time-based routing Route calls based on time and/or day
Branch: IVR menu Route calls based on menu choices
Branch: Dial plan switch Create different routes for different dialplan settings, which can be changed by the mobile app and by dialing star codes
Branch: Number recognition Recoginze a number based on a regex pattern and route accordingly
Conferences Route calls to a conference box were multiple people can be added
Misc: End call Terminate a call
Misc: Busy Play a busy tone to the caller
Misc: Prefix Place text before the displayed number for incoming calls
Person Call a user. User specific forwards are defined in the user settings
Prompt Play a prompt to the caller
Queue Route calls to a location were callers can wait before their call is being answered
Call forwarding Forward calls to a predefined number

Element guide

Call forwards

To ring a phone, a caller should call with an internal number or an external number which is registered with the provider and created in Compass.

Both for internal and external numbers a dialplan is made with elements (such as soundprompts and queues etc.). One of these elements is a user.

When the element of a user in the dialplan is triggerd, Compass first looks at the status of this user (Always, Busy, No answer, not reachable). Depending on this status the call will be forwarded (if a number is known for these statuses) or the logged in VoIP phone will ring.

When a status is applicable but the number for that status (for example busy) is not there, the call wil go to the next element in the dialplan.

Please also look at ‘Compass structure’ for a visual overview of this structure.

A dialplan from an internal number which is associated with a user is not followed when the element of the user is triggerd in a different dialplan. This because dialplans of internal numbers can only be called from other internal numbers (within the Compass company) or when placed in a call forward as nested dialplan.

There are two ways a call can be forwarded to an individual user, which are explained below:

Shared call forward

This method is based on a forward element that is placed in a dialplan. The disadvantage of this method is that it can not be used in combination with a queue or be managed by the mobile app. To manage this properly it is possible to use it in conjunction with a virtual switch.

Personal call forward

This method is based on a forward which is configured at the user level, which can be set at the personal settings page. (For Always, Busy, No answer, not reachable). Advantage: Can be used in conjunction with a queue and managed by the mobile app.

Caller ID with call forward

It is only possible to forward the office number or the number of the caller. It is not possible to view both on the screen. (only on VoIP phones). It is also not possible to play a prompt to announce information about the call, to the person who is receiving the call.

Reference ID: KB00006

What method should I use?

Scenario 1
Need: The company has multiple webshops and for each webshop an own identity. The company want the agents to know from which webshop name to answer the calls and to have the ability to call back. Solution: For each identity a welcome prompt is used. Therefore the agents don’t need to speak out the webshop name. To be able to call back, all calls are forwarded with caller line idenitification on (CLI). When having a missed call, only the number of the caller is shown, not the number were the caller called to (applicable on forwards to mobile phones).

Scenario 2
Need: The company has multiple webshops and for each webshop an own identity. The company want the agents to know to which webshop the call has been made. Solution: For each identity calls are forwarded with the number were the call has been made to as the caller id (CLI off). In this way it is clear to which number the caller called. Save this number in your addressbook. To call the caller back the user has to look in the CDR for the appropriate number.

Accept with ‘#’
Be sure a forwarded call is always set up with ‘# to accept’. Otherwise the compass voicemail or other parts of the dialplan cannot be used when a call is rejected or a phone is unavailable. Instead calls will go to the (private) mobile voicemailbox, which in many times is unwanted. Personal call forwards: The ‘# to accept’ can only be enabled in the user settings menu (accessible for administrators) Shared call forwards: The ‘# to accept’ can be set for each call forward element.


Maximum waiting time

How to calculate the actual waiting time? The formula is as follows: (Desired maximum waiting time / Queue ring time) = Ax Ax Round up = Actual maximum waiting time.

The queue ring time is set to 25 seconds and the maximum queue time is set to 35 seconds. As in the above formula can be seen, determining wether a caller has reached the maximum wait time is depending on the queue ring time. After 25 seconds this is reviewd. Then the maximum wait time is not yet reached. The next interval at which this is reviewed is 25 seconds later, at 50 seconds. However the maximum wait time has already been reached. The actual waiting time is therefore 50 seconds.

Pro tip: Use a maximum waiting time which is always the exact multitude of a queue ring time.

Announcement timing

  • If an agent is released from a call simultaneously with the playback of an announcement (number of people waiting), the caller will first hear the announcement.
  • If a caller is the first one in the queue, the caller will not hear the queue waiting time.
  • If two prompts are likely to be played at the same time than compass will prevent this by postponing one of the two prompts.
  • The first announcement prompt will add ± 4 seconds to the total play time.
  • The text ‘minute’ in the waiting announcement isn’t spoken out.
  • The repeating time for the queue position announcements is a minimum of 15 seconds.

Preventing missed calls for queues

If after the first call the extension didn’t answer, the queue places multiple calls untill it answeres (depending on the ring strategy). All those calls, if unanswered are registered as missed calls on these phones.

However when a personal call is missed between the missed calls of queue, it is not immediately clear which missed calls are from the queue and which are from personal calls.

This behaviour can be solved with a second identity which is linked to the same user.

Using a secondary identity

When a second identity is registered on a device which supports this, than the logging of missed calls can be switched of for this second identity. With Snom phones this is possible.

For the first and primary identity personal missed calls are still logged. The second identity can be solely used for queues, for which missed calls are disabled on the phone. The disadvantage is that a second identity can not be logged out and in via the mobile application. This must therefore be done with a star code.

In addition, this solution isn’t always conveniant in a situation with different phone types. Not all phones are supporting multiple identities which leads to chnaging experiences.


When a user is created the voicemailbox isn’t created automatically. It is therefore necessary to separately create one and link it to a user.

To create a voicemailbox go to: Manage > Dial plan > Voicemail > Add voice mailbox.

To link a voicemailbox to a user: Users > Users > Username (not the pencil icon) > Pencil icon next to the extension.

  • If the voicemailbox is not linked (to a user), the call forward to 1233 (voicemail number) has no effect, because the user has no voicemailbox linked.
  • The voicemailbox can be used as an element in a dialplan.
  • If a voicemailbox is linked to a user, calling to 1233 by the user can be used to listen to voicemails.
  • It is important to note that if a dialplan ends after a voicemailbox, that the element ‘hang up’ is used. Otherwise it could happen that a call is not properly ended.

Announcement method 1

The announcement of a mailbox is set at a default systemprompt called “Standard”. This systemprompt can be replaced only by calling 1233 (with the user whose systemprompt must be chnaged) Note: even though the user has recorded a personal announcement, the user interface remains displaying the standard selection in the dropdown menu.

Announcement method 2

There may be, instead of a systemprompt (or user-recorded prompt) also be chosen for an already existing Prompt. This should then be first be uploaded to Compass. This is the preferred method when the administrator configures the voice mailbox per user.

Announcement method 3

Another way is to use a prompt with an empty audio file. If the voice mailbox is called, there will be no announcement. This is useful if it is a general (company wide) voice mailbox that is used in different dialplans, for which different voicemail announcements are required. Hereby you can drag a prompt element before the voicemail element in the dialplan. In this way, it is not necessary to create a new voicemailbox for each dialplan. It is important that the voicemailbox is not linked to a user since there is no announcement being played.

Best practices voicemail

Users set up their own voicemail

If it is desired that colleagues can leave voice messages to each other, create and link a mailbox for each user. Then anyone can record his own announcement by calling 1233. (notification method 1). The use can be stimulated by showing that people can set up their personal call forward to their own voicemailbox.

Administrators set up voicemail

An alternative method is that each user get a personal voicemailbox, which is dragged as an element into the dialplan of the users direct internal and external number. A seperate (generic) announcement prompt will be dragged in the dialplan before this voicemailbox element. The advantage of this is that people do not have to set up their personal call forwards and voicemailbox. The administrator can do this.

Company wide voicemailbox for 1 organisation

With one organization (and one dialplan). Use Method 3.

Company wide voicemailbox for >1 organisation

With multiple organizations (and therefore multiple dialplans). Use method 3 announcement.

Possible errors when configuring a dial plan

Problem Result
User forgets to set a number in their unavailable and no answer call forwards. Calls aren’t automatically forwarded, when the softphone is disabled or the desk phone isn’t answered.
User forgets to login on queue. Calls from queue cannot be received.
Callforward is enabled without # to accept. No control over incoming calls, because some calls are answered by the voicemail of the mobile number.
User forgets to disable DND on a desk phone. No single call is coming through and no calls are being forwarded.
User enables DND on smartphone but not on softphone Softphone keeps ringing until timeout, resulting in a longer waiting time for the caller.