How to configure secondary server as master to import calls in Call Analytics

Applies from Application Suite 2016.1.1
to version Application Suite 201x (any version)

Applies to:

Call Analytics for Cisco

Description:

This article explains how to enable Call Analytics call processing on a secondary server of a UC Suite cluster including two nodes. This is useful if the primary server is out of order and it is likely to unavailable for a long time.

The article also describes the failback procedure to move the processing to the primary server as soon as it gets available again.

Requirements

Notes

In Call Analytics high-availability configuration by default:  

How-to:

When the primary server has a problem and cannot import calls, we can choose two steps to follow:

A) Repair the primary server before the deadline of 10 days.

No configuration on the secondary server is needed, the calls on the secondary server are available.
The displayed calls are up to the day of the service disruption.
 

B) Configure the secondary server as master to start acquiring new calls.

This procedure can be performed within 10 days after the blocking of the master server.

1. Verify that the Billing application is properly licensed on the secondary server.

2. Verify that the new CDRs are stored into the FTP directory, which corresponds to this directory:
<StonevoiceAS>\Apps\BillyBlues\Engine\ccm5cdr\

3. Stop 'Blues Service Host' service on the master server from the webpage Billing | Administrative Pages | Service Manager  if needed.

4. Enable secondary server as master:

5. Enable secondary server to import the new calls it could import some duplicate calls (Delete any duplicate calls)

6. If you are running an UC Suite 2021.3.1 or later version, run this SQL query to delete duplicated calls:

DELETE c1
FROM [BibCalls] c1
WHERE c1.[Id] NOT IN (
    SELECT MAX(c2.[Id])
    FROM [BibCalls] c2
    WHERE c1.[UtcStartDateTime] = c2.[UtcStartDateTime]
      AND c1.[DurationInSeconds] = c2.[DurationInSeconds]
      AND c1.[SiteId] = c2.[SiteId]
      AND c1.[LocalPartyId] = c2.[LocalPartyId]
      AND c1.[RemotePartyId] = c2.[RemotePartyId]
      AND c1.[IsExternal] = c2.[IsExternal]
)
AND c1.[UtcStartDateTime] BETWEEN
    DATEADD(dd, -20, DATEADD(dd, DATEDIFF(d, 0, GETDATE()), 0)) AND
    DATEADD(dd, DATEDIFF(d, 0, GETDATE()), 0)

6. If you are running an UC Suite between 2020.3.1 and 2021.1.1 version, run this SQL query to delete duplicated calls:

DELETE c1
FROM [BibCalls] c1
WHERE c1.[Id] NOT IN (
    SELECT MAX(c2.[Id])
    FROM [BibCalls] c2
    WHERE c1.[StartDate] = c2.[StartDate]
      AND c1.[StartTime] = c2.[StartTime]
      AND c1.[DurationInSeconds] = c2.[DurationInSeconds]
      AND c1.[SiteId] = c2.[SiteId]
      AND c1.[LocalPartyId] = c2.[LocalPartyId]
      AND c1.[RemotePartyId] = c2.[RemotePartyId]
      AND c1.[IsExternal] = c2.[IsExternal]
)
AND c1.[StartDate] BETWEEN
    DATEADD(dd, -20, DATEADD(dd, DATEDIFF(d, 0, GETDATE()), 0)) AND
    DATEADD(dd, DATEDIFF(d, 0, GETDATE()), 0)

7. If you are running an AppSuite older than 2020.3.1 version, run these 2 SQL queries to delete duplicated calls:

A) Duplicated external calls:

DELETE FROM Chiamate 
WHERE lPKId not in
( SELECT Max(C2.lPKId) FROM Chiamate as C2 
WHERE Chiamate.dData = C2.dData 
AND Chiamate.dOra = C2.dOra 
AND Chiamate.dDurata = C2.dDurata 
and Chiamate.sSito = c2.sSito
and Chiamate.sDerivato = c2.sDerivato
and Chiamate.sNumero = c2.sNumero )
and dData between  DATEADD(dd,-20,DATEADD(dd, DATEDIFF(d,0,getdate()), 0)) and DATEADD(dd, DATEDIFF(d,0,getdate()), 0)

B) Duplicated internal calls:

DELETE FROM ChiamateInterne
WHERE lPKId not in
( SELECT Max(C2.lPKId) FROM ChiamateInterneas C2 
WHERE ChiamateInterne.dData = C2.dData 
AND ChiamateInterne.dOra = C2.dOra 
AND ChiamateInterne.dDurata = C2.dDurata 
and ChiamateInterne.sSito = c2.sSito
and ChiamateInterne.sDerivato = c2.sDerivato
and ChiamateInterne.sNumero = c2.sNumero )
and dData between  DATEADD(dd,-20,DATEADD(dd, DATEDIFF(d,0,getdate()), 0)) and DATEADD(dd, DATEDIFF(d,0,getdate()), 0)


Failback procedure

When the primary server is repaired, make sure to set the current secondary server  in standby, following these steps:

1. Edit in the primary server this file with Notepad
<\StonevoiceAS>\System\SvSasPlatforms.ini

2. Copy the name of the server displayed after the label 'InstallationAddress ='

3. Edit in the primary server this file with Notepad
<\StonevoiceAS>\Apps\BillyBlues\Engine\BillingCluster.ini
of the secondary server (temporarily being the primary server).

4. Paste the copied new primary server name to 'MasterHostName ='

5. Save and close this file.

6. Wait a minute and make sure that the Miner, Recorder and Scheduler services are active in the page Billing | Administrative Pages | Service manager

7. Repeat steps 6-7 of the previous section to delete duplicate calls, if needed.



Article ID: 632
Last updated: 08 Jul, 2021
Revision: 8
Imagicle UC Suite for Cisco UC -> Call Analytics -> FAQ and Solutions -> How to configure secondary server as master to import calls in Call Analytics
https://kbp.imagicle.com/kb/entry/632/