Course12:Basic - innovaphone voicemail

From innovaphone wiki
Revision as of 11:48, 24 March 2016 by Ckl (talk | contribs) (Protected "Course12:Basic - innovaphone voicemail" [edit=sysop:move=sysop])
Jump to navigation Jump to search
There are also other versions of this article available: Course11 | Course10 | Course12 (this version)

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. Recorder messages are stored on the same 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 (13/Richard Roe) (a.k.a. leg2-info) to decide how to handle the call.

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

The message will be stored on the WebDAV server (e.g. SSD-card). The file format depends on the codec format used for the call. The voice mail will accept calls in g711a only by default (for the Americas, there is a variation that accepts calls in g711u).

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 a .wav file.

However this method has some drawbacks. Firstly, the SMTP client used for sending the mails will stream the message voice content in real time to the target mail server. If the message cannot be delivered, due to an overloaded SMTP server or network problems, the user will not be informed about the message. Secondly, an appropriate g711 codec is required at the receiving mail client to listen to the message. Fortunately, this is by default available on any windows client, but it may not on other client types.

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 (the default PIN as installed is 8765).

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 .

No mailbox


A common mistake is to forget about 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 property in the administrator User object).


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 theWebDAV 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.

Debugging Examples


Voicemail client with no G711 capability

Triton calls Richard Roe using G.711a 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.

Wrong Script URL in Voicemail PXB Object

Your voicemail installation basically does nothing. To debug,

  • tick the Trace check-mark in the Voicemail object
  • go to fish-help.png Maintenance/Diagnostics/Tracing and click on trace(buffer). This will erase old trace messages
  • then click on trace(continuous) to see incoming new trace messages
  • call the Voicemail object (6613 in this example)
  • look at the trace messages
12r1 dvl IP411[12.0545], Bootcode[120545], Hardware[300]
IP411-40-00-b3
Uptime 0d 1h 53m 26s
1:3210:101:1 - LOG PBX0 3 Richard Roe(13:richard.roe) setup-> (6613)
6613 called

1:3210:101:3 - vm.0(T):setup vm='VM' call=-1 cdpn=6613 cgpn=13:'richard.roe@class.innovaphone.com' dest='' sc=true chan=-1 leg2=false mwi=false ct=false
Voicemail object called

1:3210:101:3 - vm(T):new call id=3
1:3210:101:5 - vm.3(T):new session on call=3
1:3210:101:5 - vm.3(T):dialed number='13'
1:3210:101:5 - PBX-VM.0 -> IP.0 : SOCKET_ADDR_CHECK_LOCAL_HOST(127.0.0.1)
1:3210:101:5 - vm:cache_search: url='http://127.0.0.1/DRIVE/CF0/vm-de' found=false
configured script at http://127.0.0.1/DRIVE/CF0/vm-de is searched
1:3210:101:6 - vm.3(T):rx=SIG_ACCEPT_COMPLETE call=3 state=SETUP dir=inc vmstate=0
1:3210:101:6 - iprt.3.0(T):FILE_OPEN_RESULT(IS DIRECTORY)
1:3210:101:6 - Voicemail(F):SCRIPT OPEN ERROR(9)='IS DIRECTORY'
file cannot be found, reason: the configured URL points to a directory, not a script file

1:3212:975:2 - LOG PBX0 3 Richard Roe(13:richard.roe) rel-> VM(66:VM)
1:3212:975:5 - vm.3(T):rx=SIG_REL call=3 state=SETUP dir=inc vmstate=0
1:3212:975:6 - vm.3(T):deleting call=3 1:3212:975:6 - vm.3(T):try delete, ref=0 deleting=false
1:3213:473:7 - vm.3(T):deleting session

So you need to fix the Script URL.

No License

Look at this trace:

2:0776:523:6 - iprt.4.0(T):running file='http://127.0.0.1/DRIVE/CF0/vm-de/vm.xml' ver='VM-60114' 2:0776:523:7 - vm(E):name='VM': Missing Voicemail License(user = 'Richard Roe')!

Pretty obvious!