Multi-site, high availability SOP configuration

Topology

Let's assume:

  1. a main site with a redundant gateway and an active/standby SOP server and
  2. a remote site, connected via the corporate VPN network, with a standalone SOP server

  • The solution described here is made of 5 SOPs:
    • GW1 and GW2 are SOP with voice interface cards and implements VoIP gateways
    • SOP1, SOP2 are applicative SOPs in active/standby mode. These SOPs must have been provisioned as a Master/Clone configuration by ESCAUX.
    • SOP3 is a standalone applicative SOP

Server Active IP Standby IP Type
GW1 192.168.144.21 NA standalone
GW2 192.168.144.22 NA standalone
SOP1 192.168.144.11 192.168.144.10 active
SOP2 192.168.144.11 192.168.144.12 standby
SOP3 192.168.140.11 NA standalone

  • The "Active IP" address and "Server Type" should be configured via "Advanced" > "System Management" > "Server Configuration"
  • The "Standby IP" should be configured via "Advanced" > "System Management" > "Module Configuration" > "High Availability". Make sure the module is installed. If not, install it first.

As a result of the above configuration, SOP1 will be in active mode using IP address 192.168.144.11. SOP2 is in standby mode and therefor it is using IP address 192.168.144.12. In the event of a problem with the active server, the active-standby fail-over procedure (Detailed procedure) will convert SOP1 into a standby server running on IP address 192.168.144.10 and SOP2 will become the active server running on IP address 192.168.144.11. All peripheral devices and applications communicating with the active server will not notice the difference since the production IP address remains on 192.168.144.11.

Interfaces

IAX Interface

The central point of our IP telephony network are the gateway servers (GW1 and GW2). We must now establish IAX trunks between all SOP servers and the gateway servers. Therefor the following IAX interfaces must be defined:

Server IAX Interface From To
GW1 IIA10001 all  
GW1 IOA10001   SOP1
GW1 IOA10002   SOP3
GW2 IIA10001 all  
GW2 IOA10001   SOP1
GW2 IOA10003   SOP3
SOP1 IIA10001 all  
SOP1 IOA10001   GW1
SOP1 IOA10002   GW2
SOP3 IIA10001 all  
SOP3 IOA10001   GW1
SOP3 IOA10002   GW2

For more information concerning the creation and definition of incoming and outgoing IAX interfaces, see ResourceIIA0 and ResourceIOA0.

PRI interfaces

In this topology, the PRI interfaces are located inside the gateways GW1 and GW2. Each gateway has a single PRI interface. Follow the configuration guidelines as explained in ResourceZOA1 and configure the following interfaces:

Server IAX Interface
GW1 ZOA10001
GW2 ZOA10001

If something is not working as expected, please consult IsdnDebugging.

Routing

In a topology with 2 PRI interfaces connected to an active/active gateway it is advisable to designate one gateway primarly for incoming calls and the other primarly for outgoing calls. In the event one of the gateways or PRI connections fails, the other takes care of both incoming and outgoing calls.

Incoming call routing

Before you begin:

  • ALERT! This must be done before starting Step 1. If your DDI is 021112233, on GW1, define 1021112233 in the internal directory via 'Directory' > 'Internal Directory'. If you have a large amount of numbers to define, you can use Bulk Admin or LDAP.

The gateway routing occurs in 3 steps:

  • Step 1: Accept the call to 02 111 22 33 in the incoming context, prefix by 10 to create a virtual internal extension and send to the internal context. This is done via 'Call Routing' > 'External Number Mapping'.
  • Step 2: The call enters the internal context as 1021112233. We can now play a callflow to send the call either to a SOP server via an IAX trunk or to a locally connected fax machine. In order to make sure that the calls are sent to SOP1 via to the outgoing context, we define a callflow called Forward.netPBX1. This callflow simply consists of a Redirect towards 20${LastUserExt}. This means that we prefix by 20. We could also send the calls to SOP3 by using another callflow called Forward.netPBX3 and using 30${LastUserExt}
  • Step 3: The call enters the outgoing context as 201021112233. In our routing table 'Call Routing' > 'Define Routes', we add a route called '_20.' which matches the number 201021112233 and we send it to SOP1 via the IOA10001 using the action Goto.INTERFACE. Before sending out the call we define that Goto.INTERFACE must strip the first 4 front digits. Hence when entering in SOP1, the number is seen again in its basic form, which is 21112233.

For reasons of redundancy the above configuration must also be applied on GW2. By asking your ISDN provider to send your incoming calls first to GW1 and try GW2 only when GW1 is down or saturated, one can guarantee full redundancy on incoming calls.

Outgoing call routing

The concept of outgoing call routing is much simpler.

  • Step 1: on SOP1 define a default route '_X.' in route group 'DefaultOut' pointing towards IOA10002 and IOA10001 via the Goto.INTERFACE action. Please note that outgoing calls are first sent to GW2 and then to GW1. GW2 is the primary gateway for outgoing calls.
  • Step 2: on GW1 and GW2 define a default route '_X.' in route group 'DefaultOut' pointing towards ZOA10001.
Copyright © Escaux SA