Redundant SIP Routing and Call Survivability Configurations
Call Survivability configuration allows you to re-route phone calls to another destination when Imagicle Advanced Queuing is not available, for example in case of network problems.
HA configuration must be used to configure re-routing from one node to other nodes in Imagicle cluster installations.
The configuration procedure is the same, with few differences.
1. Partition
Create a new partition named PT_Imagicle_QME_Failover. This will contain the routes to handle incoming calls in survivability mode (when both Imagicle servers are unavailable).
2. Calling Search Space
Create two new CSS:
CSS_Imagicle_QME, used by AdvQue SIP trunks to reach:
All AdvQue agent phones
All AdvQue queues (for Queue-to-Queue call transfers)
If needed, other destination phone numbers engaged by Imagicle Advanced Queuing queues/scripts
CSS_Imagicle_QME_Failover, used to handle calls in survivability mode, that is, loopback calls triggered when both Imagicle servers are down. It only needs to include the partition PT_Imagicle_QME_Failover.
3. SIP Trunk Security Profile
Create a new ad-hoc SIP Trunk Security Profile from CUCM admin web portal: System ⇒ Security ⇒ SIP Trunk Security Profile.
Name: | Imagicle_QME_SIP_Security_Profile |
Incoming Transport Type: | TCP + UDP |
Outgoing Transport Type: | UDP |
Incoming Port: | 5062 |
Enable Digest Authentication: | disabled |
Enable Application Authorization: | disabled |
Accept Out-of-Dialog REFER: | enabled |
Accept Unsolicited Notification: | enabled |
Accept Replaces Header: | enabled |
4. SIP Profile
Create a new ad-hoc SIP Profile: Device ⇒ Device Settings ⇒ SIP Profile.
Name: | Imagicle_QME_SIP_Profile |
Redirect by Application: | enabled |
Parameters used in Phone
Timer T1 (msec) | 250 |
Retry INVITE | 3 |
SIP OPTIONS Ping | |
---|---|
Enable OPTIONS Ping to monitor destination status for Trunks with Service Type "None (Default)" | enabled |
Ping Interval for In-service and Partially In-service Trunks (seconds) | 30 |
Ping Interval for Out-of-service Trunks (seconds) | 15 |
Ping Retry Timer (milliseconds) | 500 |
Ping Retry Count | 3 |
5. SIP Trunks
At least 3 SIP trunks are needed. Details following.
AdvQue Trunks
Create a SIP trunk for the primary UCX Suite server, named "Imagicle_QME_Primary_SIP_Trunk" and one for the backup server (if existing) named "Imagicle_QME_Backup_SIP_Trunk".
Both of them must have the following settings:
Device Information | |
---|---|
Device pool: | Any |
Call classification: | OnNet |
Run On All Active Unified CM Nodes: | enabled |
Outbound calls | |
Redirecting Diversion Header Delivery - Outbound: | enabled |
Calling Party Selection: | Originator |
Inbound calls | |
Redirecting Diversion Header Delivery - Inbound: | enabled |
Calling Search Space: | A CSS suitable to reach agents phones and AdvQue Trunk itself |
SIP Information | |
Destination Address: | IP address of the Imagicle server (IPv4) |
Destination Port*: | 5062 |
Out of Dialog Refer CSS: | CSS_Imagicle_QME |
SIP Trunk Security Profile: | Imagicle_QME_SIP_Security_Profile |
SIP Profile: | Imagicle_QME_SIP_Profile |
Rerouting Calling Search Space: | CSS_Imagicle_QME |
Please, notice the Destination port points to UDP port 5062 of the Imagicle server.
Failover Trunk
This loopback SIP trunk is used for call survivability, to handle incoming calls when both Imagicle server are down/unreachable. It allows calls to re-enter the CUCM and trigger a failover (backup) phone number just to avoid to loose calls.
Create a SIP trunk with following settings:
Name | Imagicle_SIP_TRUNK_FAILOVER |
Device pool: | Any |
Call classification: | OnNet |
Run On All Active Unified CM Nodes (CUCM 8.X and later): | enabled |
Inbound calls | |
---|---|
Redirecting Diversion Header Delivery - Inbound: | enabled |
Calling Search Space: | CSS_Imagicle_QME_Failover |
Prefix DN: | <EMPTY> |
SIP Information | |
Destination Address: | IP address CM Sub 1 Specify here a list of CUCM nodes having the "CallManager" service running (normally subscriber does) |
Destination Port: | 5060 |
Out of Dialog Refer CSS: | none |
SIP Trunk Security Profile: | Non Secure SIP Trunk Profile |
SIP Profile: | Imagicle_QME_SIP_Profile |
Rerouting Calling Search Space: | none |
6. Route Group
Create a RouteGroup for AdvQue SIP Trunks and a Route Group for failover (call survivability):
Imagicle UCX Suite instances Route Group
This route group engages the 2 Imagicle servers top-down:
Name: | RG_Imagicle_QME_Servers |
Distribution Algorithm: | Top Down |
Selected Devices (ordered by priority): |
|
Failover Route Group
This route group contains the Loopback Failover SIP Trunk:
Name: | RG_Imagicle_QME_Failover |
Distribution Algorithm: | Top Down |
Selected Devices (ordered by priority): | Imagicle_SIP_TRUNK_FAILOVER |
7. Route List
Create a new Route List including the Route Groups you just created:
Name: | RL_Imagicle_QME |
CM Group: | Any |
Enable this RouteList: | enabled |
Run on All Active Unified CM Nodes: | enabled |
Members: |
|
8. Route Pattern(s)
A route pattern is needed to route incoming calls to Imagicle Advanced Queuing. The route pattern pointing the RouteList RL_Imagicle_QME should be defined accordingly with the PBX numbering plan and with the queues phone numbers. For example, defining a route pattern 6XXX will allow to manage queues with phone number 6801, 6802, etc..
Please remember that:
The route patterns and the other rules which send calls to AdvQue should never transform the called party number. In this way Imagicle Advanced Queuing can tell which calls are coming back from the operators or other queues.
At least one route pattern should be dedicated for the Camp-On queues
9. Backup Numbers (calls survivability)
When both Imagicle server are down or unreachable, incoming traffic is rerouted by the Route List to the loopback SIP Trunk. The call re-enters the UCM in the PT_Imagicle_QME_Failover partition. In such partition you must define your backup routes to handle incoming call. Most likely you need to define in this partition a Translation Pattern for each Imagicle Advanced Queuing queue number. For instance, to redirect incoming calls for queue 8501 to the backup extension number 201 (phoneset or hunt pilot), you need to create a Translation Pattern with Called Party Number Transformation 8501 ⇒ 201.
Testing the HA PBX configuration
Single-Server Deployment - Call Survivability Test
The following procedure allows you to test the call survivability configuration. With one server, you just have to test this.
Log into the IAS web interface as administrator and stop the Imagicle Advanced Queuing service
Place a call to each Queue pilot number from the PSTN. For internal queues, place the call from an internal extension
For each queue, verify the incoming call is routed by CUCM to the expected backup DN (which could be a simple extension, hunt pilot or other)
HA Deployment (2 Imagicle nodes) Failover Test
In cluster installations with two or more Imagicle instances, you should test both failover to the backup node and call survivability.
To test failover:
Stop the Imagicle Advanced Queuing service on the first server. Keep it running on the backup server
Place a call to (at least) a queue pilot number from the PSTN. For internal queues, place the call from an internal extension
Verify the incoming call is handled by the (backup) Imagicle node.
To test the call survivability:
Stop Imagicle Advanced Queuing service also on the second node, then execute the survivability test described above for single-server deployment