Howto:Voice Notification

From innovaphone-wiki

Jump to: navigation, search

If a user want to know if a new voicemail message is stored usually a MWI Led on the phone set switched on. Alternatively, an email notification or a SMS note is possible. See relative chapter Related Articles for doing that.

However, it is also possible a voice notification: a, typically external, Number is called (for example a mobile phone number) and if answered a message like “you have new messages” is played.

Here is how.



After a new voice mail is stored, the PBX calls a number. As caller ID number and name of the Voicemail is shown, therefore an immediately recall to the Voicemail box is possible. The user can switch on and off the feature as well change the number to call.

To switch on the feature the user must activate an unconditionally call diversion (CFU) to the voicemail and a call forward no response (CFNR). The number indicated in the CFNR is the notification number called. If CFU or CFNR is off, the feature is off. The destination number of the CFNR can modified directly on the phone set, the PBX interface or the myPBX client.

Applies To

PBX Version 11

This feature is on top of the normal VM feature and requires no extra license (but the user has to have a valid voicemail license).

More Information

To switch on the feature the user has to active a CFU to the voicemail and a CFNR to the number to call.

Example: User 34, the VM has the number 810 and the number to call in case of a message is 012345. The user 34 must active a CFU to the 34 (in this way a call to the extension 34 end on the Voicemail) while a CFNR to 012345 has also to be switched on.


If a new message is in, the PBX calls the external number up to 3 times, waiting between each call one minute. You can change the time interval of one minute can changed in the setup as well as the number of call try. If the called user answers, a message “you have new messages” plays. The calling number is the number of the voicemail and the user. Therefore, if the user recalls he is connects automatically to his voicemail. The display shows the name (if available) “Voicemail”; even that indication can be modified.

To switch of the call cycle the user can cancel the CFU or CFNR on the phone or access to his voicemail. It is necessary at least enter a valid password to cancel further notification calls.

The system records the number of messages and if a new message is in a new notification cycle starts.

Example: One message is in, the notification start the first call. The user ignore the call, after one minute he will called again. Now the user call the VM and enter the valid password, he listen to the message but he do not delete ore store the message. Therefore still one message is in the Voicemail, but there is no further notification. Now a second message is in, the notification cycle starts again. The user access to his voicemail and delete one message, so just on is in. No further notification. If now a new message is stored, the cycle starts again.

Please note that the system does not care about the call status: If the called number is busy, a call start after one minute as well as the call was answer or not response until the number of cycles expired. Typically, a mobile device will track the calls arrived during absence or busy and the user can so see that the VM has called him. It is also possible do a setup that just one single time a call is done.


The installation and setup is not difficult but tricky and therefore observe this description systematically.

File copy

Copy the file VMvn.xml in the directory where the VM is in, typically in “..DRIVE/CF0/VM”.

Copy the file VMvoceNote.xml in the personal directory of each user that should use this feature.

Example: the user “Michele DArpino” should use the feature:


Note that just the XML has to be copy; the other files the system create automatically.

The XML play a file to inform the called user that a message is in his mailbox. The file played is named “” where xxx = codec (g711 etc.). The file can be recorded using the universal track recorder or in any other mode. A simple solution without recording anything is using the available message of the Voicemail. There is a file playing a message “You have a new message” or similar, the file name depends on the language, in English that filename is “”, in German “”, in Italian “” etc. Copy all those files on your PC, rename them to “”, and copy the result back.

XML editing

Copy the VM.xml to a directory of your PC and open the xml with an editor.

Search this position (in the first 3rt of the file) and insert the line

<store-del root="$sub" name="personal/Cycles.txt"/>

Example (Italian VM script, but the other languages are similar):


Save the file and copy the file again on the CF (overwrite the old one).

Check that the VM still work.

The default setup call up to 3 time, this value can be changed to more (for example 10 attempt) to just 1 call. To do that copy form the CF the file VMvn.xml to your PC and open it with an editor.

Change the value name=”personal/Cycels.text”:


In the example, the value is “2”, this is the default value for 3 calls. “0” = 1 call, “1” = 2 calls, “9” = 10 calls.

If you want calls not each minute but longer (for example 5 minutes) you have to edit the file VMvn.xml, change the value "1" in line <assigne out="$minutes" value="1"> to "5".

PBX setup

The rest of the setup is in the PBX: You have to create one general VM object and one for each extension that should use the feature. The number and name of these objects could be as you like, if you use a similar number for the individual XML a better overview is given.

In the example the general VM Object has the number **99 while the user individual VM Object of the use 34 hat the number **34 (a VM object for the user 370 would have the number **370 etc.)


Note that the VM object VMvn (number **99) point on the xml VMvn.xml in the VM directory while the VM object **34 point on the XML stored in the personal directory of the user 34 (Michele DArpino) VMvoceNote.xml.

Last step, open the wakeup for the individual xml, see in the example above that this menu item is on the left site of the Presence column.

Once opened set the second to “1”, check “Multiple” an put in in the number of the general xml (**99 in out example”) extended by the number of the individual extension (34 in our example).


A special problem could be the access to the voicemail from external without DID or with limited DID capability. As known the access to the VM must be or sequential or in block dial: it is not possible call the VM object in block dial and then proceed with overlap DTMF. For this situation, the feature “autocallback” could be helpfully.

How it works

If the flag “Multiple” is checked the wakeup mechanism in the PBX will trigger each minute (the shortest time available) or each time entered in the “Hour/Min/Sec” Fields.

Now the trick is that the wake is done on the individual XML, so the wake calls not an extension but a XML. Normally in the “SourceName/Number” field, the name or number of a Waiting queue is in, but we put in again in an XML, the general one, extended by the User number.

Therefore, at the end the PBX calls two XML, the main task to do has the general one: the xml VMvn (like also the individual xml VMvoceNote.xml) activate a 30-second security timeout. This is also the maximum duration of one notification call and play cycle. The XML now ask the PBX for the call information, unfortunately a XML never receives the “own” number information and therefore the “cgpn” contains just the additional number: in our example “**99” was the number of the XML itself while “34” the number of the user. The PBX wake up calls “**9934” but the XML get “34” as information. Then the XML query the PBX and ask the name of the user “34”. The answer in our example is “Michele%20DArpino” and so the XML check if in the PBX this name has a CFU. If so the xml check if there is also a CFNR active, if yes check if the CFU target is a voicemail object (otherwise an eventual “normal” CFU could trigger the call). If the target is a VM object the XML check if there are messages for this user in this directory. If all that is o.k. the XML goes on, otherwise stop.

The XML read in the personal directory of the user the file “NumMess.text”: this file contains the number of messages stored before. If for example there are no messages stored it will be “0”. If the number of messages in the message directory of the user is greater than the number in that file a “new” message is in: the XML stores this new value in the file “NumMess.text” to assure that the entire cycle is started just one time. One minute later the number of files and the value of the “NumMess.text” will be the same and another part of the XML execute. If this way if the number of files increase because e new message is in also the cycle starts again. If the number of files decrease (for example because the user is deleting messages) the content of the file “NumMess.text” will be adapt to the lower value. If the number of messages is equal to the number in the file “NumMess.text” a cycle counter will be decreased. The cycle counter is stored when the number of messages is greater than the “NumMess.text” value, so just one time. The XML stops if the counter is zero: if the user access to his voicemail the cycle file is deleted (see the change in the VM itself at the beginning) and so a cycle stopped. This XML stores also the number to call (in the PBX query of the CFNR the PBX told also the number) and stored in the personal Path and the destination of the CFU (the number of the Voicemail) combined with the “cgpn”; this is the voicemail + extension to call back. If number of messages is greater or equal but cycle not zero the message is played.

The second personal XML “VMvoceNote.xml”in the Personal directory is much simpler: he wait just 2 seconds to avoid file collisions and then read out the destination number and the number of the Vocemail. Voicemail number and Extension number was stored in the file “VMnumber.text” by the other XML. Now the Calling Number and the calling name is manipulated: if you want change the display name just feel free to edit, the lien is “<pbx-prepcallinfo cgpn="$DestCF" string="Voicemail" />” where of cause “Voicmail” is the string to modify.

Than the XML transfer the call to the (external) number.

Known Problems

This feature was designed for few users, not for a huge installation where all extensions require this feature. No test using the wakeup feature for hundreds of extension was done.

If the CFU is switched off and the CFNR not a not response cause a call to the number.

V13 Configuration

For V13 the script has been adjusted so that the correct folders are addressed in the script, so "V13-VMvn.xml" must be used instead of VMvn.xml.

The adjusted file has been included in the Download. Best way is to remove VMvn.xml and rename V13-VMvn.xml into VMvn.xml.

Configure the (normal) Voicemail


  • Assign a number
  • Tick "custom", as we will upload an adjusted 'vm.xml'
  • Download a "Voicemail_xx"-app from the App Store. One of the downloaded files is named "" and contains the voicemail script(s) and prompts. Unzip this file.
  • Open 'vm.xml' and add the following line in the 'PromptNumberOfMessages'-function as in the example below. Save the file.
<store-del root="$sub" name="personal/Cycles.txt" />
Image:Adjust vmscript.png
  • Test the voicemail by calling an extension's own voicemail-box.
    Create the voicemail-box if needed. This should be visible when connected by WinSCP: a directory ‘vm_files’ has been added.

Add the Voice Notifications-files

Steps are taken from the 'Installation'-chapter above. Only important things will be noted here.

  • Configure the necessary CFNR and CFU to activate Voice Notification on an extension:
    • CFU to the VM-box of the User: 81+201
    • CFNR to an external number: 202 (internal number used here for testing purposes)
Image:Adding cfs.png
  • (Optional) Change the number of retry-calls and/or the delay between the calls in ‘VMvn.xml’:
<assign out="$minutes" value="1"/>
<store-cookie root="$sub" name="personal/Cycles.txt" value="2"/>
  • Record and convert the ''-announcements (or copy and rename the existing ''-files).
  • Copy 'VMvn.xml’ and the ‘’-files into the custom-folder of the voicemail.
Image:Upload Files1.png
  • Copy the file ‘VMvoiceNote.xml’ in the personal-folder of each the user wanting this feature:
Image:Upload Files2.png

Make the necessary voicemail-objects

  • Add a voicemail via the Voicemail-plugin of the PBX-Manager:
    • Name : VMvn
    • Sip : vmvn
    • Number : **99
    • Custom : (ticked)
Image:Add Voicemail1.png
  • Add for each user using this feature a voicemail via the Voicemail-plugin of the PBX-Manager:
    • Name : VMNotificatation 201
    • Sip : vmn.201
    • Number : **201
    • Custom : (ticked)
Image:Add Voicemail2.png

Note that, by adding the voicemail-objects via the Voicemail-plugin, the objects are pointing to the default vm.xml-file.
We need to adjust this in the advanced UI of the PBX.

  • Rename ‘vm.xml’ into ‘VMvn.xml’ of the VMvn-object:$app=on

Image:Change Url1.png
  • Change ‘vm.xml’ into ‘VMvoiceNote.xml’ of the 'VMNotificatation 201'-object (and all other relevant object). Also change the directory accordingly:$app=on

Image:Change Url2.png
  • Configure a WakeUp-item at the individual VM-object ('VMNotification 201' in our case):
  • Testing can begin


  • Download the complete file package of scripts and files described in this article.

Related Articles







Personal tools