Distributed Voicemail Server

From SIPfoundry sipx, The Open Source SIP PBX for Linux - Calivia

Jump to: navigation, search

Image:Ver3.8.png These instructions are for a sipX 3.8 system although it's probably possible in older systems.

You can offload your voicemail server to a separate host, to save system resources (RAM, CPU, Disk) for call processing on your main server.

Contents

Step 1: Install a standard PBX on system 1

Install all the components, even mediaserver is ok. SipXecs Start Here

Step 2: Install just voicemail on system 2

On Fedora

yum install sipxvxml

Step 3: Configure system 1 to replicate to system 2

As if you were configuring HA, configure system 1 to replicate to system 2. High-Availability Installation. You can skip registrar replication as the voicemail server will not accept registrations.

Image:geek.png Hot Tip: You do not have to use DNS SRV, you can leave host names as separate machines. You just need to configure the DOMAIN_NAME in config.defs on system2 to be the full hostname of system1.

Step 4: Point services from system 1 to system 2 and vice vera

Here are my changes to config.defs

System 1: goose.pingtel.com - Full PBX

-SIPXCHANGE_DOMAIN_NAME=`hostname -f`
+SIPXCHANGE_DOMAIN_NAME=goose.pingtel.com

-MEDIA_SERVER_ADDR=${MY_IP_ADDR}
+MEDIA_SERVER_ADDR=quail.pingtel.com
 
-VOICEMAIL_SERVER_ADDR=${MY_IP_ADDR}
-VOICEMAIL_SERVER_HOSTNAME=${MY_FULL_HOSTNAME}
+VOICEMAIL_SERVER_ADDR=quail.pingtel.com
+VOICEMAIL_SERVER_HOSTNAME=quail.pingtel.com

System 2: quail.pingtel.com - Just Voicemail Server

-SIPXCHANGE_DOMAIN_NAME=`hostname -f`
+SIPXCHANGE_DOMAIN_NAME=goose.pingtel.com

-CONFIG_SERVER_ADDR=${MY_IP_ADDR}
-CONFIG_SERVER_HOST=${MY_FULL_HOSTNAME}
+CONFIG_SERVER_ADDR=goose.pingtel.com
+CONFIG_SERVER_HOST=goose.pingtel.com
 
-STATUS_SERVER_ADDR=${MY_IP_ADDR}
+STATUS_SERVER_ADDR=goose.pingtel.com
 
-ORBIT_SERVER_ADDR=${MY_IP_ADDR}
+ORBIT_SERVER_ADDR=goose.pingtel.com
 
-PRESENCE_SERVER_ADDR=${MY_IP_ADDR}
+PRESENCE_SERVER_ADDR=goose.pingtel.com

Step 5: Test vm deposit

Call into 101@system1 and leave a voicemail. Check if system2 mailstore is updated

Step 6: Provide web ui access to voicemail

Using NFS, mount system 2 mailstore on system 1 and update your configuration.

Enable nfs on system 2

echo "/var/sipxdata/mediaserver/data/mailstore  goose.pingtel.com(rw,sync)" >> /etc/exports
chkconfig nfs on
/etc/init.d/nfs start

Enable autofs on system 1

Uncomment this line in /etc/auto.master

/net    /etc/auto.net

Verify you can see the other system 2 mailstore from system 1

ls /net/quail.pingtel.com/var/sipxdata/mediaserver/data/mailstore/

Point web ui to new mail store

Make following edit to /etc/sipxpbx/sipxconfig.properties.in

-mailboxManagerImpl.mailstoreDirectory=/var/sipxdata/mediaserver/data/mailstore
+mailboxManagerImpl.mailstoreDirectory=/net/quail.pingtel.com/var/sipxdata/mediaserver/data/mailstore

More

Image:geek.png Advanced Topic: You should be able to extend these instructions to configure 2 or more voicemail servers each using NFS to share a single mailstore system and DNS to share a common network name and load balancing giving you infinite voicemail ports. (If you set this up, please update this wiki page or post to sipx-users list with details.)

Personal tools