Call Us Today! 877.742.2583




Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

About

by Andrew Cassidy

This page documents my personal experience with setting up an Active/Passive FreeSWITCH configuration on Debian Wheezy using only binary packages available from the official Debian and FreeSWTICH repositories, although this guide may help with other scenarios too.

...

Expand
titleClick here to expand Table of Contents
Panel
borderColorlightgray
bgColor#f7f7f7
borderWidth1
borderStyledotted

Table of Contents
maxLevel3
outlinetrue
indent1em
excludeAbout
stylenone
printablefalse

Required Packages

First, set up the FreeSWITCH Debian repository

...

Code Block
# apt-get update
# apt-get install pacemaker freeswitch-meta-default

Set Up You Core Database

I've used the same database for all modules, and have found the following minimal required configuration. So, in vars.xml add

...

Code Block
<param name="track-calls" value="true" />
<param name="odbc-dsn" value="$${odbc-dsn}"/>

Setting Corosync

The first thing you need to do is set up auth keys. On the first node run

...

and copy /etc/corosync/authkey to the second node.

Do everything from here on both nodes

Next set up /etc/corosync/corosync.conf. Mine looks like this, which as you may notice is rather similar to the default. In my setup I had to use the unicast transport due to a switch being funny about multicast.

...

Code Block
# /etc/init.d/corosync start

Setting up Pacemaker

We'll now set up pacemaker to manage FreeSWITCH and a virtual floating IP address, starting with the IP address.

Code Block
# crm configure primitive fsip ocf:heartbeat:IPaddr2 params ip="192.168.1.50" cidr_netmask="24"

FreeSWITCH

To monitor the status of FreeSWITCH we use a custom init script. Create /etc/init.d/fssofia on both nodes with the following content, filling in the PROFILES variable as needed.

...

Code Block
# crm configure primitive fs lsb:fssofia op monitor interval="1s" timeout="2s" enabled="true"

Setting Up The Colocation and Order

I didn't have any luck getting this to work with the resource groups that pacemaker provides. The IP failed over but the calls weren't picked up. So instead I set up a colocation rule and an order rule to make sure the failover machine has the IP address before calls are recovered.

...

While monitoring the cluster resources with

Code Block
# crm_mon -Ar

References

Of course, I didn't come up with all this all on my own :)