White Paper: "Ditching Your Network's Voicemail"
Contents
Introduction
Corporate Voicemail: The Situation Today
Benefits of Unifying Around The Corporate Voicemail Systems
Mobile MWI
Configuring the Mobile Phone for Corporate Voicemail
Setting up Diverts
Changing the Voicemail Access Number in the Mobile Phone
Configuring Asterisk for Mobile MWI
Other Considerations
Introduction
If you are operating voicemail services on your Asterisk servers then you will already have a good feel for the benefits of provisioning your own voice messaging instead of that available with a third-party's managed voicemail system.
In this paper we will address a solution to the particular problem of introducing mobile phones into the communications mix, namely the elimination of the mobile network's voicemail services in favour of adopting a more unified messaging approach based around your own Asterisk voicemail environment. The solution proposed serves as a complete replacement, gaining all the advantages of centralising the messaging onto the corporate voicemail server, whilst preserving the benefits of the mobile voicemail service. i.e. instant notification on the mobile handset through the MWI (Message Waiting Indicator).
Corporate Voicemail: The Situation Today
Typically companies will fall into one of the following use cases:
| Calls to PBX go to Corporate Voicemail and Calls to Mobile go to Network Voicemail |
|
Calls to PBX or Mobile both go to Mobile Network Voicemail |
|
Calls to PBX or Mobile both go to Corporate Voicemail |
The most common configuration found in companies. The main disadvantages are:
- Two separate voicemail systems for the user to check and familiarise themselves with the different interfaces.
- Corporate mailbox features not available on mobile voicemail.
|
|
Used in smaller companies that have a predominately mobile workforce and perhaps don't operate a corporate voicemail system. The main disadvantages are:
- Limited to the mobile network voicemail feature set, and lacking the advanced features of a corporate voicemail platform.
- MWI (Message Waiting Indicator) is only sent to the mobile phone and so no indicator can be set on the PBX phone.
- Retrieving or checking for messages from the PBX is expensive as it normally involves a mobile call.
- Voicemails are normally automatically deleted after 7 days.
|
|
In theory this is the ideal solution for most companies but in practise is let down by the following disadvantages:
- No MWI (Message Waiting Indicator) support between the corporate voicemail system and the mobile handset.
- Users who are out of the office either don't realise they have a message waiting and therefore pick it up late, or get into the habit of polling the voicemail system on a regular basis (without knowing if there is a new message for them or not) resulting in unnecessary call costs and time wasting.
|
Benefits of Unifying Around the Corporate Voicemail System
Taking the mobile network's voicemail system out of the equation and instead unifying all voice messaging onto the corporate voicemail system presents several advantages not only for the mailbox user, but also the mailbox user's team colleagues, the person calling the mailbox, and for the comms manager.
Whilst the exact list of advantages are dependent on the feature-set of the mobile network's voicemail system and, reciprocally, the feature-set of the corporate voicemail system, we have attempted to provide a general feel based on the common limitations found with mobile voicemail systems, and the standard voicemail application supplied with Asterisk. The advantages for the mailbox user are:
- Interacts through exact same user interface whether picking up messages left on mobile or on PBX.
- Common mailbox means no confusion or trying to remember where the message was left.
- Multiple folders for storing voicemails to (e.g. project / category specific).
- Web-based playback and management of voicemail.
- Email delivery of voicemails.
- Possibility to recover accidentally deleted voicemails.
- Integration into CRM systems for automatic retrieval of call history / client contact details.
- One or two button call-back of the person who left the voicemail.
- Messages do not get automatically deleted after a period determined by the network (as short as 7 days on many mobile networks).
- With the appropriate Asterisk add-ons, possibility to automatically set the voicemail / divert status based on either IM (Instant Messenger) status or Bluetooth proximity, or even the user's schedule from the Microsoft Exchange server.
The advantages for the mailbox user's team colleagues are:
- Group mailboxes / broadcast voicemail.
- Forwarding of voicemails to other extensions.
- Delegate access to another user's mailbox.
The advantages for the caller are:
- Can choose to be transferred to an operator / assistant before or after leaving a voicemail.
- Separate away and unavailable greetings.
- No need to leave two voicemails (one on the PBX, another on the mobile).
The advantages for the comms manager are:
- All voice messages stored on common servers.
- Backups of messages can be kept for the period required by company policy.
- Reduced call costs (no dialing-out from PBX to mobile voicemail).
- Can enforce own security policies on access restrictions and data storage.
- Emergency access to a user's mailbox possible without user's participation (in mobile network voicemail case would have been impossible without knowing user's PIN code).
Mobile MWI
Mobile networks typically notify users that a message is waiting by one of three methods:
- Calling them. One of the oldest methods used on mobile networks, it has to a greater degree now gone out of fashion in favour of less obtrusive methods. This is a reflection of the way mobile phone usage culture has shifted from one of "switching the phone off when in meetings" to a more popular trend of "switching the phone to silent alert when in meetings".
- SMS. A simple text message is delivered to the user to notify them that one or more voice messages are waiting in their mailbox. Messages are stored in their regular SMS inbox and must be deleted like any other message. The drawback to this approach is that it isn't fully synchronous with the voicemail system, i.e. if the user listens to their voicemails and then deletes them, the SMS delivered to their handset will stay in the inbox until it is separately deleted. The counter problem also exists, in that the SMS alert is not persistently held on the handset until the voicemail has been checked, that is to say a user could easily delete the SMS alert before they get around to checking their voicemail, leaving no indicator on their handset that voicemail is still waiting.
- MWI. The Message Waiting Indicator is an icon (typically resembling a tape / cassette) that is most commonly displayed in one of the top corners of the screen whenever an unlistened voicemail is in the system. The icon will normally remain on the screen until the point the voicemail has been played back, at which point the network will signal to the handset to extinguish this indicator. Some phones also have an LED that flashes when the MWI is set.
MWI is arguably the best mechanism available for voicemail notification on mobile phones. Surprisingly though whilst most handsets and networks support it, not all networks choose to utilise it. However the good news is that just because they don't utilise it on their own voicemail server, doesn't mean that the MWI can' t be set from a corporate voicemail system!
Bayham Systems' FastSMS module for Asterisk makes it possible to set and unset the mobile's MWI indicator with a simple command which can be called from within an Asterisk dialplan. With one command you can switch the MWI on (when a voicemail has been left) and with another you can turn it off again (e.g. when there aren't any messages pending).
In fact FastSMS allows you to control four different message waiting indicators:
|
|
|
|
|
|
|
MWIVOICEMAIL
This is the recommended MWI to set for voicemail. In addition to displaying an icon some phones will also pop-up an onscreen alert message, e.g. "You have received a voicemail. Press SEND to listen".
|
|
MWIFAX
This notification could be triggered from a personal fax service to alert the user that an unread fax message is waiting.
|
|
MWIEMAIL
Fairly obviously, MWIEMAIL is used to notify a user that there is an unread email message pending.
|
|
MWIOTHER
Whilst this indicator is strictly speaking "reserved for future use", it is however already supported on most handsets and so it can be used as required. Possible uses include: a secondary voicemail indicator for when the user has two mailboxes; or an alert when a priority delivery has come in to the mailroom and needs to be collected and signed for.
|
(Note: actual graphical representation of these MWI's will differ from handset to handset and are down to the handset vendor's discretion. The examples shown are purely indicative.)
Whilst each MWI has a specific purpose (apart from MWIOTHER) the choice is of course entirely at the discretion of the administrator / developer as to how they are assigned to services (e.g. there's no reason why the MWIEMAIL indicator couldn't be used to notify the user about voicemails if that is desired).
Configuring the Mobile Phone for Corporate Voicemail
In order to create the best user experience for corporate voicemail on a mobile handset there are a couple of recommended steps that should be taken:
- Set-up conditional diverts on the mobile to the corporate voicemail mailbox number.
- Change the Voicemail Access number in the handset.
We will now describe these steps in greater detail.
Setting-up Diverts
Broadly speaking mobile networks support two types of divert: Conditional and Unconditional.
Conditional diverts will route a call to another number under certain conditions. The conditional diverts defined in the GSM standard are:
- No Answer. When the phone is switched on and in coverage, an incoming call will cause it to ring until it is either answered, rejected, or, if set, the No Answer divert kicks in. The length of ring time before the divert takes over can be adjusted in 5 second increments up to 30 seconds maximum.
- Unreachable. This divert will apply when the phone has either been switched off or is out of coverage.
- Busy. When the phone is either mid-call (and call waiting is not available) or the user rejects the incoming call, then the Busy divert will apply.
Unconditional diverts are used to route all inbound calls to another number. When this is active the phone will not ring (this feature is rarely used as most users prefer to take advantage of the conditional divert Unreachable which will automatically apply when the phone is switched off).
To make the mobile phone an integral part of our corporate voicemail solution, diverts play an important role in both getting the call to the corporate mailbox as well as keeping it well away from the network's voicemail system!
Managing the diverts on a mobile phone is usually accessible through the handset's user interface. On some phones this is supported through a series of menus. However on all GSM phones (*) it is possible to set-up diverts through Unstructured Supplementary Service Data (USSD) commands. USSD is a form of service command that can be sent to the network in the same way as dialing a regular number, i.e. you enter the USSD string and hit SEND / CALL. |
|
Do we really need to activate network diverts?
It could be argued that if we wish to have a one number environment, where the corporate Asterisk server controls the call-flow, the need for mobile network diverts is nonexistent. That scenario suggests that the mobile phone number is never promoted to callers and thus they will always call via your fixed network, Asterisk hosted number. In this situation incoming calls to your mobile would always be routed via Asterisk and so it could control the divert handling / routing to voice mailboxes.
Whilst this is a possible approach, it is in practise very difficult to completely mask the mobile phone number. Even if Calling Line Identity (CLI) is withheld on outgoing calls (or the outbound call is routed via Asterisk where it sets its own CLI) then it will still be exposed when sending text messages. |
The GSM standard defines the following USSD codes for controlling diverts:
| All (Unconditional) |
Set: **21*destination number#[SEND]
Cancel: ##21#[SEND]
Query: *#21#[SEND]
|
| No Answer |
Set: **61*destination number*dd#[SEND]
Cancel: ##61#[SEND]
Query: *#61#[SEND]
(where dd is the delay in seconds: max 30 seconds, in 5 second increments)
|
| Unreachable |
Set: **62*destination number#[SEND]
Cancel: #62#[SEND]
Query: *#62#[SEND]
|
| Busy |
Set: **67*destination number#[SEND]
Cancel: ##67#[SEND]
Query: *#67#[SEND]
|
| Cancel All Diverts |
##002#[SEND] |
(*) Note: whilst supported on all GSM phones, diverts are a network rather than a handset function, therefore it is ultimately down to the network to support these diverts. It should be noted that some pre-paid / pay-as-you-go subscriptions will not allow diverts. Also some networks require you to call customer services to enable diverts as a service on your subscription. Additionally in some cases diverts are supported by non-standard USSD strings. The general rule here is if the above divert codes don't work as you would expect them to on your phone then you should check the user-guide that your network supplied with your phone or contact their customer services team.
Changing the Voicemail Access Number in the Mobile Phone
Most handsets can be configured with a voicemail access number. This number is then usually available as a single key dial (e.g. by holding down the "1" key for a second or more), and may also be invoked when pressing the SEND / CALL key if the phone displays a "New Voicemail. Listen now?" type popup when the MWI is set.
Changing the number from that configured by the network to the corporate access number is done through a menu option specific to your handset.
For instance on a Nokia 6310, it is set in Menu -> Messages -> Voice Messages -> Voice Mailbox Number
Check the user guide for your phone if you cannot immediately find where the menu option is.
Configuring Asterisk for Mobile MWI
Asterisk can easily be set-up to control the Mobile MWI. The prerequisites are that you must have installed the FastSMS module (either the C version or the Perl AGI version) and have created a FastSMS account. If you haven't carried out both of these steps then please visit the FastSMS homepage.
Mobile MWI activation and deactivation is carried out through dialplan commands. The FastSMS command is constructed like this:
FastSMS(destination|message_text[|sender_id])
Here's a couple of examples that show how this command can be used to send regular SMS text messages:
| FastSMS(447123456789|This is a test message) |
"This is a test message" is sent to a UK mobile number. |
| FastSMS(12125181234|Another test message) |
"Another test message" is sent to a US handset. |
| FastSMS(447123456789|One more message|Bob) |
"One more message" is sent to a UK mobile, and the Sender-ID is set to show Bob. |
In order to use FastSMS to control the mobile's MWI, we simply substitute the message_text parameter with one of the following reserved MWI commands:
MWIVOICEMAILON
MWIVOICEMAILOFF
MWIFAXON
MWIFAXOFF
MWIEMAILON
MWIEMAILOFF
MWIOTHERON
MWIOTHEROFF
And some examples of this are:
| FastSMS(447123456789|MWIVOICEMAILON|448451234567) |
Sets the Voicemail MWI on a UK mobile number +447123456789. Also sets the Sender-ID to the voicemail access number, although few phones do anything with the Sender-ID on an MWI control message. |
| FastSMS(447123456789|MWIVOICEMAILOFF) |
Switches off the Voicemail MWI on UK mobile number +447123456789. |
Now to pull this together into a functional Asterisk dialplan. For this example, +44765123456 is the number of the mobile associated with the voice mailbox, and +44123456000 is the voicemail access number.
Here is the part of the dialplan that switches the MWI on when a new voicemail has been left:
Use this version if you are using the FastSMS C module |
|
Use this version if you are using the FASTSMS Perl AGI module |
...
exten => 100,3,VoiceMail(u100)
exten => 100,4,HasNewVoiceMail(100)
exten => 100,6,goto(110)
exten => 100,105,FastSMS( 44765123456 | MWIVOICEMAILON | 44123456000)
exten => 100,106,FastSMS( 44765123456 | Caller ${CALLERID} left a new voice mail at ${DATETIME} | 44123456000)
exten => 100,110,Hangup
... |
|
...
exten => 100,3,VoiceMail(u$100)
exten => 100,4,HasNewVoiceMail($100)
exten => 100,6,goto(110)
exten => 100,105,AGI(fastsms | 44765123456 | MWIVOICEMAILON | 44123456000)
exten => 100,106,AGI(fastsms | 44765123456 | Caller ${CALLERID} left a new voice mail at ${DATETIME} | 44123456000)
exten => 100,110,Hangup
... |
And here is the part of the dialplan that switches the MWI off when there are no more unread voicemails:
Use this version if you are using the FastSMS C module |
|
Use this version if you are using the FASTSMS Perl AGI module |
...
exten => 100,3,VoiceMailMain(s100)
exten => 100,4,HasNewVoiceMail(100)
exten => 100,5,FastSMS( 44765123456 | MWIVOICEMAILOFF| 44123456000)
exten => 100,105,Hangup
... |
|
...
exten => 100,3,VoiceMailMain(s100)
exten => 100,4,HasNewVoiceMail($100)
exten => 100,5,AGI(fastsms | 44765123456 | MWIVOICEMAILOFF| 44123456000)
exten => 100,105,Hangup
... |
Other Considerations
One of the main considerations with designing a unified voicemail solution that has not already been discussed here is the planning and configuration of the voicemail access extensions.
There are two principal use cases that need to be covered by this:
| Mobile user accessing own mailbox number |
The user should be able to access their own voice mailbox directly by using the "Call Voicemail" function of their mobile phone. To minimise the call time and maximise the user experience this stage shouldn't require them to identify themselves but it may optionally require a PIN code to gain access.
|
| Caller diverted to voicemail system from mobile network |
The caller who is diverted from the mobile network to the corporate voicemail system should be taken straight to the voicemail prompt and mailbox specific to the user they called (i.e. they shouldn't be routed to a generic prompt that requires them to re-key the mobile number or extension number of the person they were trying to reach). |
Whilst it is outside the scope here to have an extensive discussion about all the possible approaches that would support these use cases, the following table hopefully gives some starting indicators to support you in planning the best approach for your network:
|
|
How the technique applies to the use cases |
Technique |
Description |
Mobile user accessing own mailbox number |
Caller diverted to voicemail system from mobile network |
| Dedicated DDI for user's mailbox |
Each mailbox in the voicemail system is assigned its own DDI allowing it to be called directly from the public telephone network.
This approach is costly in terms of DDI's but it is widely supported (i.e. doesn't depend on ISDN features not supported on all networks) and easy to implement. |
The dialplan should check the Caller ID when calls are placed to this extension. If it matches the phone number of the mailbox owner's registered mobile number then it should direct them straight the the mailbox playback (cmd VoiceMailMain).
It is also worth considering providing a method of remote access that doesn't rely on Caller ID (e.g. prompt based access) as there may be conditions where the Caller ID is not passed (e.g. whilst the mobile is roaming on certain networks). |
The dialplan should check the Caller ID when calls are placed to this extension. If it does not match the phone number of the mailbox owner's registered mobile number then it should direct them straight the the voicemail record application (cmd VoiceMail).
|
| Use mailbox owner's extension DDI to access mailbox |
This scenario is very similar to the "Dedicated DDI for user's mailbox" technique except the extension is rung first and only if busy or on timeout (or user has set extension to away) will the call be routed to voicemail. |
See explanation for Dedicated DDI for user's mailbox |
See explanation for Dedicated DDI for user's mailbox |
| Centralised voicemail DID |
One DID can be used to access the company-wide voicemail system, when leaving a message, and another DID is used for listening to voicemails (in both cases regardless of which mailbox is being accessed). |
The Caller-ID is analysed to see if it is the mobile phone number is registered for any mailboxes in the system. If there is a match then it routes the call to the voicemail application passing the correct mailbox number.
If there isn't a match then a prompt requests the mailbox number / mobile number plus some security mechanism (e.g. PIN code). |
This technique can only be used if the RDNIS is available from the ISDN. This is required as it is the number of the forwarding node (the mobile phone) that is used to identify the mailbox that needs to be reached.
Not all carriers support RDNIS so this method would need to be well tested in your particular environment.
There is an advantage to the centralised approach used here. As the allocation of the DDI for this purpose is shared across all extensions it would not hurt to add a second DDI. This could be used to distinguish between a "divert on busy" and a "divert on unreachable" from the mobile phone. Thus the two different greetings available in Asterisk's voicemail application could be chosen based on the DDI the call was received on. |
| Appended digits on the ISDN Subscriber Number |
On some ISDNs it is possible to append extra digits onto the ISDN Subscriber Number. This allows for subaddressing.
This technique could be used to enhance the Centralised Voicemail DID case. |
N/A |
If the diverts on the mobile were set with the appended digits included in the destination number then a centralised DID could be used to access all mailboxes, with the extension digits serving to route to the correct mailbox instead of relying on RDNIS.
Additionally an extra appended digit could be used to identify the divert condition (i.e. BUSY or UNREACHABLE) and thus trigger the correct greeting in the voicemail application. |
|