There is a patch on Mantis (http://bugs.digium.com/view.php?id=4371)

Which includes several features.

1. Support for central voicemail server(s) with remote server notification via IAX

In other words, this patch allows you to configure an Asterisk server as a central voicemail server and to send out voicemail notification to remote Asterisk servers who can then pass the notification on to local clients.

2. Diaplan command to update voicemail pointers

The patch includes a dialplan command (ChangeMailbox) which allows you to change both the central voicemail server as well as the remote clients mailbox pointers. In other words, you can add/move 'mailbox=' fields via the dialplan.

3. Entry into dial plan upon device registration or loss of registration

This function allows you to configure a dialplan context in which SIP or IAX devises will activate a dialplan thread allowing you to execute any non-audio stream dependant dialplan command(s). An example might be identifying the location of the registration and using the changemailbox command to direct the correct voicemail indication to the registering device.

We need community support if we want to get this added to asterisk. Please take a gander. I also have a patch against CVS head 05-02-2005 if you want to test against CVS HEAD prior to all the function changes.

Below are notes on the configuration:

First, the remote voicemail notification configuration:

In voicemail.conf under the general section we need to identify that this voicemail server is a centralized voicemail server supplying remote notification. This is done by adding an

entry that points at an iax entry for this server. Note that you must add an entry for this

server in your IAX configuration.

[general]
voicemail_server=<unique_IAX_peername_of_this_server>

On the same server we will configure the voicemail boxes. There is one new entry required over the normal user configuration and that is the remote asterisk server hosting the client device to which we will be sending voicemail indication. This is included as an IAX entry (must also exist in your IAX config) as shown here

[default]
<vmbox>:<iax_peer> => <pin>,<name>,etc..

or if we have voicemail box 1000 being served for a client device attached to IAX peer 'sip-reg-srv-001' as defined in your iax.conf file, the line would look like this:

[default]
1000:sip-reg-srv-001 => 1000,John Doe,[EMAIL PROTECTED]

All servers (both central voicemail and remote client) must have iax entries for each other (and the central server must include an entry for itself in it's own iax.conf file). Servers can be dyanmic (host=dynamic) as well as static.

In the sip.conf or iax.conf for each device there is a change to the mailbox= argument. Note that the mailbox=<user> still works for locally served mailboxes. For remote mailboxes the format is this:

mailbox=<user>:<vm_context>@<iax_peername_of_VMserver>

so in the example above, it would look like this

sip.conf
[1000]
type=friend
host=dynamic
mailbox=1000:[EMAIL PROTECTED]

where 'vm-srv-001' is the entry in the iax.conf for the central voicemail server.

This configuration does not include automatic routing of voicemail commands (voicemail and voicemailmain). You must still route calls to voicemail to the central voicemail server through your dialplan. If you try and call a voicemailbox directly on a remote client you will get a no such voicemailbox error. So when you want to leave voicemail or retrieve it, the call needs to be sent to the central voicemail server where you would then execute the VoiceMail or VoiceMailMain functions.


Second, the ChangeMailbox function


There is an application that you can change the mailbox= definition in either iax.conf/sip.conf or voicemail.conf (changes are NOT reflected in the configuration files, they are not updated by this command)

ChangeMailbox(tech,name=newsetting)

On the central voicemail server, you can change both the voicemail entry as well as the sip or iax entry. On the remote client servers you can only change the sip/iax entries.

To change the remote server in which a client's voicemail status is sent, you would use the Voicemail keyword for technology in the following structure:

1) Voicemail
ChangeMailbox(Voicemail,<mailbox>@<iax_peername>)

On the system which hosts the UA device, you would use the following structure, with SIP or IAX as the technology:

2) IAX/SIP/etc
ChangeMailbox(IAX,<user-123>=<mailbox>:<vm-context>@<iax_peername-central_vmserver>)

To completely change the location a voicemail indication is being sent, you may need to exectute this command on both the central vm server as well as the remote client server. The entry on the voicemail server tells the vm server what remote asterisk server to send the notification to. The entry on the remote client server tells the local asterisk system which device to notify. So in the case that the device only changes (you want to send or add vmail indication to another device on the same server) only the SIP or IAX entry need be changed. However if the device moves to a different remote client server, you will also need to tell the central VM server to change where it's sending notification as well.


Now the 3rd feature ...
in iax.conf or sip.conf for each user define the keyword 'onregister-context'

syntax:

[user]
type=friend
onregister-context=regcontext
etc

then upon registry, (context,exten) = (<onregister-context>,<user>,1) will be invoked and on unregister the (unreg-<onregister-context>,<user>,1) is invoked

So on unregister 'unreg-' is prefixed to the onregister_context

The variable ${DEVICETECH} contains the technology of the device registering.

To rebuild the unique channel id from this, you would use ${DEVICETECH}/${EXTEN} which for example would return SIP/1000 in the case of that device registering


-Chris

_______________________________________________
Asterisk-Users mailing list
[email protected]
http://lists.digium.com/mailman/listinfo/asterisk-users
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to