Call Analytics for Cisco
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.
In Call Analytics high-availability configuration by default:
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)
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.