Course11:Basic - innovaphone voicemail

From innovaphone wiki
Revision as of 17:32, 28 April 2015 by Ckl (talk | contribs) (Protected "Course11r1:Basic - innovaphone voicemail" [edit=sysop:move=sysop])
Jump to navigation Jump to search
There are also other versions of this article available: Course11 (this version) | Course10 | Course12

This book describes the innovaphone voicemail.

Concept

The innovaphone voicemail is an answering machine solution integrated in the PBX. The solution is based on the fish-help.png Voicemail PBX Object. This object includes an XML script interpreter, that will execute an XML script upon receipt of an incoming call. The script is retrieved from a WebDAV server.

The Voicemail function requires fish-help.png voicemail licenses.

The following features are implemented:
  • configure a personal voice-mail for every PBX user
  • send MWI notifications to the registered phones
  • send E-mail notifications to the registered users
  • send recorded voice messages as E-mail attachments
Furthermore the voicemail functionality can be modified as needed for special custom scenarios. However voicemail scripting is a rather large and complicated topic and is thus not covered in this training. There is a wiki article on fish-help.png how to write your own XML script though.

Voicemail workflow

We will have a closer look at a screenshot.png simple voice-mail call scenario in order to better understand how the different pieces of software work together.

Recording a message

The voicemail object is activated by the receipt of an incoming call. The processing logic is implemented in an XML script. In this call scenario, the script will use the diversion information (103/Pluto) (a.k.a. leg2-info) to decide how to handle the call.

The call data contains the info that the call was diverted by 103/Pluto. So the XML script decides that this is a call for 103/Pluto which has to be recorded and stored in Pluto's mailbox. As a result, the script enters answer mode and the caller will be prompted to leave a message for Pluto.

The message will be stored on the WebDAV server (e.g. CF-card). The file format depends on the codec format (e.g. g711a, g729) used for the call. That is, the voice data will be stored in the codec format the call came in with and it will only be stored in that format.

Notifying the user

There are 2 mechanisms available for user notification for new messages:
  • MWI
  • E-Mail
The MWI notification is configured at the users phone through a function key. Using this key this specific phone will subscribe at the voice-mail object for information regarding new messages.

The second option is to use fish-help.png an additional XML script (i.e. email.xml) to send email notifications to the respective user. If desired the message itself can be attached as an .wav file.

However this method has some drawbacks. Firstly, the SMTP client used for sending the mails will send the mail only once. If the messages cannot be delivered, due to an overloaded SMTP server or network problems, the user will not be informed about the message. Secondly the VM script can only convert G.711 files to their .wav equivalent. G.729 messages will not be converted and thus not sent as attachments.

In summary it is always best to use the MWI notification, the email notification should be seen as an supplementary feature.

Listening to messages

Direct, non-diverted calls to Pluto's voice-mail box will not carry a leg2-info, as they are not diverted. The XML script will thus enter control mode so the user can examine the mailbox. In control mode, a pin is requested.

Troubleshooting

Finding the problem in a malfunctioning voicemail installation can be sometimes a bit frustrating. This comes from the fact that the VM solution is composed from 4 different independent elements.

screenshot.png Troubleshooting Matrix

XML script


To debug this issue, but also as a general procedure for all cases, the Trace Flag in the PBX Voicemail object must be enabled. You can see the debug output in the Diagnostics

No mailbox


A common mistake is to forget about activating /creating the voicemailbox for each PBX user using it. To create a mailbox for a user, the user itself must call the mailbox once.

If the administrator needs to create the mailboxes of other users, the calling line id of his own user object can be changed prior to the call (using the fish-help.png Send Number ).


Mailbox works strange for user objects with Send Number property set


The same trick that allows an administrator to create foreign mailboxes unfortunately makes the voice-mail behave a little strange when the Send Number property is used. This property overrides both the cgpn for direct calls to the voice-mail and the leg2-info for calls diverted to the voice-mail. As a result, when several user objects use the same number for the Send Number property, they will share the same mailbox (which may or may not be desired).

HTTP


You can further investigate on this problem by enabling the HTTP - Client trace flag in the Diagnostics menu. A common mistake is the missing HTTP client authentication at a remote WebDAV server. If the CF Card (WebDAV server) is on the same device as the VM object (i.e. PBX), HTTP authentication is not needed.

E-mail


In case that the e-mail notification is not working as desired, you can fish-help.png enable internal SMTP and DNS trace flags. Also have a look at the troubleshooting section of the wiki article on this topic.

Audio or MWI


In order to solve this types of problems, you must look at the signalling information(H.323 or SIP) between the calling phone and the PBX. Also check for exclusive codec settings at the devices in use, since this might cause media negotiation problems.

Example

Triton calls Pluto using G.711 as codec and records a G.711a message in Pluto's voice-mail.
Pluto is in his home office and has his phone configured with G.729 exclusive, because of bandwidth issues. If he now tries to listen to the recorded message, the call gets terminated with an error messages saying Unsupported Media Type.