Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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 You can migrate both encrypted and unencrypted ACR recordings can be migrated by using the ACR Import Source.

For a general description of Verba Import sources, please refer to Import sources.

Info
titleMigration Support

The following modalities are supported: Avaya Voice only, version 12.1 or later.

For a general description of VFC Import sources, refer to Import sources.

Creating an ACR import source

Follow the below steps in ACR before creating a a new Import source:

Step 1 - Open the ACR Central Replay Server (CRS) Admin Page, navigate , and in the menu at the top of the page, go to System > Licence from the top menu.  Ensure . Ensure that Search and Replay API is Enabled.

Step 2 - Open In the menu at the top of the ACR CRS Admin Page, navigate go to System > Edit Layouts from the top menu.   Click Copy and create a new segment-based layout for the migration.   Ensure that Call Start Range Start Time is the only field in the left vertical column.   Then click the checkbox check box 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 In the menu at the top of the ACR CRS Admin Page, navigate go 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 that the new API user has rights to search for recordings to be migrated in the new layout.


Follow the steps in Verba to To create a new Import source, do the following:

Step 1 - Open the Verba VFC 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

NameName your Import Source. This name will identify identifies the source across the system.
TypeSelect 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 ThumbprintOptional 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 PasswordMandatory. ACR user password that is set the first time the Import Source is used. N.B. Note: The ACR API user must not have a password set when it is created, instead the import source ACR API Password will be is set and used automatically.
ACR Layout NameMandatory. ACR search layout name created before this Import Souce Source is used.
Lua CDR CustomisationOptionalMandatory.   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 Consult your Verint representative for more details.
ACR TimezoneMandatory. 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 TimestampMandatory. Start timestamp time stamp of the first ACR recording to be migrated.
Recording End TimestampMandatory. Timestamp Time stamp of the last ACR recording to be migrated.

...

Step 4 - Click Save to save the settings

Image Removed

Lua CDR Customisation

As historical recordings may include changes in field layout, data anomalies caused by software bugs and ultimately may not be required due to business re-organisation, embedded Lua scripting has been provided to control the migration process.

Use of a Lua script is optional, if not required, the Lua CDR Customisation field should be left empty.

For more information about Lua, refer to https://www.lua.org

Lua CDR Customisation requires the use of a template:

  • The srcValues table first item value is "xml" and the second item value is one record of the xml string returned by the ACR Layout query.  This query may return many records and the Lua Customisation script is called for each.
  • The dstValues table lists the fields which the Lua CDR Customisation Script may return.  Each value to be returned must replace the name of the field passed in the dstValues table.  
function compute_cdr(srcValues,dstValues)
return dstValues
end

Presently, the field names are hardcoded as follows to match the ACR Template, but they could be generic in the future.

inumIndex = 1
startedatIndex = 2
durationIndex = 3
udfsIndex = 4
otherpartiesIndex = 5
ownersIndex = 6
switchcallidIndex = 7
directionIndex = 8
skillsIndex = 9
agentsIndex = 10
servicesIndex = 11
srcNumberIndex = 12
dstNumberIndex = 13

In order to parse the xml string passed in field 2 of the srcValues table, it is advisable to use a Lua XML parsing library such as Xml2Lua https://github.com/manoelcampos/xml2lua

Access to xml2Lua is then possible using this line of Lua:

package.path = "C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/vcpkg/packages/lua_x64-windows-static/xml2lua161/?.lua"

Xml may then be parsed within the Lua CDR Customisation script using the following pattern:

local xml2lua = require("xml2lua")
local handler = require("xmlhandler.tree")
handler=handler:new()

local parser = xml2lua.parser(handler)

parser:parse(srcValues[xmlIndex])

...

While testing the Lua CDR Customisation script, it is possible to write to a local log using the following Lua function or if preferred in a self-contained environment using https://studio.zerobrane.com/

function log(message)
file = io.open("C:/Program Files/Verba/work/cdrimport/luaCustomCDR.log", "a")

-- sets the default output file as test.lua
io.output(file)

-- appends a word test to the last line of the file
io.write(os.date("!%c") .. " - " .. message .. "\n")

-- closes the open file
io.close(file)
end

Separate libraries may be developed in their own file to aid readability and then referred to by the main Lua CDR Customisation Script, for example

lib = require "DemoLib"

File: "DemoLib.lua"

local demo_mod = {} -- The main table

function demo_mod.Split(s, sep)
local fields = {}
local sep = sep or " "
local pattern = string.format("([^%s]+)", sep)
string.gsub(s, pattern, function(c) fields[#fields + 1] = c end)
return fields
end

return demo_mod

Image Added

Import Policy Configuration

Follow the steps below to configure the Data Import action:

Step 1 - In the Verba VFC web interface, navigate go to Data > Data Management Policies.

Step 2 - Click on the Select 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  select the Import Source that Source that you created, then click on the select 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 belowthe configuration items summary table below.

Step 6 - Set up how frequently the Import should be run runs in the Scheduling section.

Step 7 - Click on Save.


Configuration Parameter Name

Description

Enable Recording RulesSpecifies if all data should be processed Mandatory - Ticked on.  All data in the imported data set or just the records of the recorded users as configured in Verbawill be imported.
Execute Only on Selected Servers

If enabled, a specific server can be chosen that will run runs this policy.

Types of alerts raised by the ACR Import Source

Alert Message

Explanation

Could not parse configuration of sourceProblem 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 ACRFirewall or network configuration problem.
No more ACR recordings availableBatch start time exceeds the last ACR recording timestamptime stamp.
Detected no recorded parties in a recordingNo recording owner found in customer custom metadata.
Failed to retrieve media from ACRMedia unavailable or download interrupted.
Unable to find expected ACR call metadataEither standard or ACR extended call metadata could not be extracted.
Could not obtain time zone offsetsTimezone 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 DateStart date of the conversationStandardYes
Start TimeStart time on the conversationStandardYes
End DateEnd date of the conversationStandardYes
End TimeEnd time of the conversationStandardYes
DurationLength of the conversationStandardYes
UserName of the recorded userStandardYes
FromSubscriber / Third-Party Phone numberStandardYes
From InfoUser / contact nameStandardYes
ToSubscriber / Third-Party phone numberStandardYes
To InfoUser / contact nameStandardYes
DirectionDirection of the call from the system perspective, requires configuring internal number/domain patternsStandardYes
Direction (User)Direction of the call from the recorded user perspectiveStandardYes
From (Verba)Verba VFC user name associated with the From NumberStandardYes
To (Verba)Verba VFC user name associated with the To numberStandardYes
LocationHostname Host name of the recording serverStandardYes
End CauseThe cause for the call ending. Possible values include: Normal, Hold, Transfer, Conference, Device Change, From Terminated, To TerminatedStandardNo
Audio CodecAudio codec of the recorded streamsStandardNo
Video codecVideo codec of the recorded streamsStandardNo
Platform Call IDUnique conversation identifier received from the recorded platformStandardYes
Silence RatioRatio of silence in the conversationStandardNo
Talkover RatioTalkover ratio of the conversationStandardNo
Longest SilenceLength of the longest silence present in the conversationStandardNo
User ID / Agent IDUser IDStandardYes
From DeviceDevice ID of the calling partyStandardNo
To DeviceDevice ID of the called partyStandardNo
Dialed NumberOriginal dialed numberStandardNo
From IPIP address associated with the calling partyStandardNo
To IPIP address associated with the called partyStandardNo
From Proxy IPIP address of the proxy server associated with the caller partyStandardNo
To Proxy IPIP address of the proxy server associated with the called partyStandardNo
Source PlatformACRStandardYes
Conversation TypeVoiceStandardYes
Forward ReasonForward reason for the conversation (e.g. forwardedfor example, forwarded, transferred, team call, or delegated, etc.StandardNo
Recording failedIndicates if the recording has failed and the metadata was imported during CDR reconciliationStandardNo
Media LengthLength of the media file related to the conversation in hhh:mm:ss formatStandardNo
Media ErrorShows the media processing errors during recordingStandardNo
Voice QualityOverall voice quality check score for the conversationStandardNo
Record TypeStandardStandardYes
2N SourceIn case of duplicate (2N) recording scenarios, records are marked as primary or secondaryStandardNo
UDFsAll standard ACR User Defined FieldsACRYes
AgentsCustomer custom metadataACRYes
ServicesCustomer custom metadataACRYes
SkillsCustomer custom metadataACRYes
Other PartiesCustomer custom metadataACRYes
FingerprintCustomer custom metadataACRYes

...