Distributed Voicemail Server
From SIPfoundry sipx, The Open Source SIP PBX for Linux - Calivia
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 |
[edit] Step 1: Install a standard PBX on system 1
Install all the components, even mediaserver is ok. SipX Start Here
[edit] Step 2: Install just voicemail on system 2
On Fedora
yum install sipxvxml
[edit] 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.
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.
[edit] 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
[edit] Step 5: Test vm deposit
Call into 101@system1 and leave a voicemail. Check if system2 mailstore is updated
[edit] Step 6: Provide web ui access to voicemail
Using NFS, mount system 2 mailstore on system 1 and update your configuration.
[edit] 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
[edit] 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/
[edit] 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
[edit] More
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.)
