The Avaya Contact Recorder (ACR) creates audio files of calls that have occurred on your telephone system. Providing the ACR recordings are no longer taking place, these recordings can be migrated to VFC using the ACR Import Source.
The ACR Import Source migrates both ACR-only and ACR+15.2 systems using the native ACR API.
Both encrypted and unencrypted ACR recordings can be migrated by the ACR Import Source.
For a general description of Verba Import sources, please refer to Import sources.
Migration Support
The following modalities are supported: Avaya Voice only.
Creating an ACR import source
Follow the steps in ACR before creating a a new Import source:
Step 1 - Open the ACR CRS Admin Page, navigate to System > Licence from the top menu. Ensure Search and Replay API is Enabled.
Step 2 - Open the ACR CRS Admin Page, navigate to System > Edit Layouts from the top menu. Click Copy and create a new segment based layout for the migration. Ensure Call Start Range Start Time is the only field in the left vertical column. Then click the checkbox and pencil in each of the horizontal column headings, selecting Start Time, Duration, UDFs, INUMs, Agents, Services, Skills and Other Parties from the field chooser popup.
Step 3 - Open the ACR CRS Admin Page, navigate to System > Manage Users from the top menu. Click Add User and under roles select May use external APIs and ensure the newly created layout above is ticked in the Search/Replay layout(s) available panel. In the Access rights over recordings/sessions/devices owned by pane, ensure the new API user has rights to search for recordings to be migrated in the new layout.
Follow the steps in Verba to create a new Import source:
Step 1 - Open the Verba Web interface then select Data > Import Sources from the top menu
Step 2 - Click on the Add New Import Source link on the top right
Step 3 - Complete the configuration according to the requirements in the following table
Configuration Item | Description |
---|---|
Name | Name your Import Source. This name will identify the source across the system. |
Type | Select ACR |
ACR Hostname or IP Address | Mandatory. Name of ACR CRS (Central Replay Server) |
ACR Port | Mandatory. Port Number of ACR CRS (Central Replay Server) |
TLS Certificate File or Thumbprint | Optional certificate file / certificate thumbprint used for the ACR connection. |
TLS Key File | Optional file system location where the certificate key is stored. |
TLS Key Password | Specify the password for the file that contains the certificate keys. |
TLS Trust List | Certificate chain (or Chain of Trust) is made up of a list of certificates that start from a server's certificate and terminate with the root certificate. If your server's certificate is to be trusted, its signature has to be traceable back to its root CA. |
ACR API User | Mandatory. ACR user that must be created with API permission before this Import Source is used. |
ACR API Password | Mandatory. ACR user password that is set the first time the Import Source is used. N.B. The ACR API user must not have a password set when it is created, instead the import source ACR API Password will be set and used automatically. |
ACR Layout Name | Mandatory. ACR search layout name created before this Import Souce is used. |
Lua CDR Customisation | Optional. Lua script to be executed during VFC CDR creation from ACR call that allows filtering and control of the import. See elsewhere on this page for more details. |
ACR Timezone | Mandatory. Set to the timezone of the ACR CRS, in case it is in a different timezone from the ingesting VFC server. |
Maximum Recording Length (minutes) | Mandatory. Maximum length of any single ACR recording to be ingested. Recordings exceeding the maximum length may not be ingested or an alert generated. While a larger batch size retrieves more records, it must not exceed the duration of the timeslot available for processing. |
Recording Start Timestamp | Mandatory. Start timestamp of the first ACR recording to be migrated. |
Recording End Timestamp | Mandatory. Timestamp of the last ACR recording to be migrated. |
Step 4 - Click Save to save the settings
Lua CDR Customisation
As historical recordings may include changes in field layout, data anomalies caused by software bugs and ultimately not be required due to organisation unit, embedded Lua scripting has been provided to control the migration process.
For more information about Lua, please refer to https://www.lua.org/docs.html
Use of a Lua script is optional, if not required, the Lua CDR Customisation field should be left empty. Otherwise, the following template is required:
function compute_cdr(srcValues,dstValues)
package.path = "C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/vcpkg/packages/lua_x64-windows-static/xml2lua161/?.lua"
lib = require "DemoLib"
local xml2lua = require("xml2lua")
local handler = require("xmlhandler.tree")
handler=handler:new()
local parser = xml2lua.parser(handler)
parser:parse(srcValues[2])
local results = handler.root.results
if #results.result > 1 then
results = results.result
end
for i, p in pairs(results) do
local inum = p._attr.inum
dstValues[1] = inum
--local skills = p.field[9][1]
skills = "Unknown"
otherParties = p.field[5][1]
parties = lib.Split(otherParties,",")
numberOfParties = #parties
srcNumber = "Unknown"
dstNumber = "Unknown"
-- <field name="otherparties">0000001(ACRTEST-1), 10000,9999</field>
-- <field name="otherparties">9999</field>
if (numberOfParties == 1) then
srcNumber = parties[1]
dstNumber = skills
elseif numberOfParties == 2 then
srcNumber = parties[1]
dstNumber = parties[2]
else
srcNumber = parties[2]
dstNumber = parties[3]
end
dstValues[2] = srcNumber
dstValues[3] = dstNumber
end
return dstValues
end
Import Policy Configuration
Follow the steps below to configure the Data Import action:
Step 1 - In the Verba web interface, navigate to Data > Data Management Policies
Step 2 - Click on the Add New Data Management Policy button at the top-right corner of the page
Step 3 - For the action, select Data Import
Step 4 - Under Available Import Sources, select the Import Source that you created, then click on the Add button just below the text field
Step 5 - Configure the policy details, based on the information that is shown in the configuration items summary table below
Step 6 - Set up how frequently the Import should be run in the Scheduling section
Step 7 - Click on Save
Configuration Parameter Name | Description |
---|---|
Enable Recording Rules | Specifies if all data should be processed in the imported data set or just the records of the recorded users as configured in Verba |
Execute Only on Selected Servers | If enabled, a specific server can be chosen that will run this policy |
Types of alerts raised by the ACR Import Source
Alert Message | Explanation |
---|---|
Could not parse configuration of source | Problem with Import Source configuration setting. |
Unexpected problem with underlying VFC database/filesystem | Could not connect to database or write file to local disc, check firewall and disc permissions. |
Failure to process Call Metadata | Unexpected or unavailable ACR call metadata values. |
Failure to communicate with ACR | Firewall or network configuration problem. |
No more ACR recordings available | Batch start time exceeds the last ACR recording timestamp. |
Detected no recorded parties in a recording | No recording owner found in customer custom metadata. |
Failed to retrieve media from ACR | Media unavailable or download interrupted. |
Unable to find expected ACR call metadata | Either standard or ACR extended call metadata could not be extracted. |
Could not obtain time zone offsets | Timezone offsets could not be extracted from the VFC database. |
Migration Status Reporting
No report files are generated, however at the end of each batch, a notification alert is raised containing details of recordings migrated from ACR into VFC.
ACR metadata
The system captures the following metadata specific to ACR recordings. These fields are available through the standard and the ACR specific custom metadata template.
Metadata Field | Description | Template | Available |
---|---|---|---|
Start Date | Start date of the conversation | Standard | Yes |
Start Time | Start time on the conversation | Standard | Yes |
End Date | End date of the conversation | Standard | Yes |
End Time | End time of the conversation | Standard | Yes |
Duration | Length of the conversation | Standard | Yes |
User | Name of the recorded user | Standard | Yes |
From | Subscriber / Third Party Phone number | Standard | Yes |
From Info | User / contact name | Standard | Yes |
To | Subscriber / Third Party phone number | Standard | Yes |
To Info | User / contact name | Standard | Yes |
Direction | Direction of the call from the system perspective, requires configuring internal number/domain patterns | Standard | Yes |
Direction (User) | Direction of the call from the recorded user perspective | Standard | Yes |
From (Verba) | Verba user name associated with the From Number | Standard | Yes |
To (Verba) | Verba user name associated with the To number | Standard | Yes |
Location | Hostname of the recording server | Standard | Yes |
End Cause | Normal, Hold, Transfer, Conference, Device Change, From Terminated, To Terminated | Standard | No |
Audio Codec | Audio codec of the recorded streams | Standard | No |
Video codec | Video codec of the recorded streams | Standard | No |
Platform Call ID | Unique conversation identifier received from the recorded platform | Standard | Yes |
Silence Ratio | Ratio of silence in the conversation | Standard | No |
Talkover Ratio | Talkover ratio of the conversation | Standard | No |
Longest Silence | Length of the longest silence present in the conversation | Standard | No |
User ID / Agent ID | User ID | Standard | Yes |
From Device | Device ID of the calling party | Standard | No |
To Device | Device ID of the called party | Standard | No |
Dialed Number | Original dialed number | Standard | No |
From IP | IP address associated with the calling party | Standard | No |
To IP | IP address associated with the called party | Standard | No |
From Proxy IP | IP address of the proxy server associated with the caller party | Standard | No |
To Proxy IP | IP address of the proxy server associated with the called party | Standard | No |
Source Platform | ACR | Standard | Yes |
Conversation Type | Voice | Standard | Yes |
Forward Reason | Forward reason for the conversation (e.g. forwarded, transferred, team call, delegated, etc.) | Standard | No |
Recording failed | Indicates if the recording has failed and the metadata was imported during CDR reconciliation | Standard | No |
Media Length | Length of the media file related to the conversation in hhh:mm:ss format | Standard | No |
Media Error | Shows the media processing errors during recording | Standard | No |
Voice Quality | Overall voice quality check score for the conversation | Standard | No |
Record Type | Standard | Standard | Yes |
2N Source | In case of duplicate (2N) recording, records are marked as primary or secondary | Standard | No |
UDFs | All standard ACR User Defined Fields | ACR | Yes |
Agents | Customer custom metadata | ACR | Yes |
Services | Customer custom metadata | ACR | Yes |
Skills | Customer custom metadata | ACR | Yes |
Other Parties | Customer custom metadata | ACR | Yes |
Fingerprint | Customer custom metadata | ACR | Yes |