VFC to WFE Metadata Integrator Configuration Guide


AVAILABLE IN 9.7.7 AND ABOVE

Overview

The VFC to WFE Metadata Integrator must be configured to connect to both the VFC and WFE environments.

When the Integrator is installed, appsettings.json, a default configuration file is created in the Integrator installation folder (referenced as INSTALLDIR in the Installation Guide), where the Vfc.Integrator.Service.exe file is located. This file is read-only, and only serves as a reference for the default values supplied with the installation.

When the Integrator first runs, it creates its editable configuration file, appsettings.<environmentName>.json. The default value of environmentName is Production, otherwise, if configured, the value matches the DOTNET_ENVIRONMENT environment variable configured on the server. Any references to appsettings.Production apply to this file.

The configuration of the Integrator must take place in the appsettings.Production.json file, and missing or incorrect values can cause the Integrator service to fail.

Not all parameters in the file must be modified. Always refer to the following modifiable columns, whether a specific parameter can be modified.

More configuration settings are stored in the PersistedSettings.json file, which must not be manually modified. When updating, repairing, or uninstalling an existing Integrator installation, the appsettings.Production and PersistedSettings files, the Logs folder and its contents remain, while all other files get removed.

You must restart the Integrator service after making changes to the appsettings.Production file.

Prerequisites

Before you begin the configuration, the following items must be completed:

  1. Ensure all steps in the Prerequisites and Deployment process sections of the VFC to WFE Metadata Overview are complete.
  2. Follow the Installation Guide to install the VFC to WFE Metadata Integrator. Verify the installation returned no errors.

Compulsory appsettings parameter configuration

There are values in the appsettings.Production file that must be configured to match your deployment. Some of these values include default values, some of which need to be overwritten with correct values or the Integrator cannot run. Some of the values are optional to edit or include.

WFE

Parameters to configure that describe WFE-related settings.

Parameter

Description

Default value

Modifiable

ApplicationServerUrl

The URL of the Application Server that runs the WFO_ProductionDomain_ProductionServer service, used to send requests to the WFE APIs.

https://YourWfeApplicationServer

Yes, must be modified

NamePrefix

The prefix for the WFE user groups generated as part of the integration process. Must be unique to an Integrator deployment. Limited to 10 characters.

YourTenantName-YourOrgName-

Yes, must be modified

ParentOrganizationName

The name of the WFE parent organization to contain and manage users and associate with data sources. Must be unique to an Integrator deployment and across the WFE tenant.

Your VFC integration Organization name

Yes, must be modified

ParentGroupName

The name of the WFE parent group to contain integrated VFC groups which will be actively managed by the VFC Integrator. Must be unique to an Integrator deployment and across the WFE tenants. Note: WFE group names are limited to 50 characters, which includes the name prefix and the actual group name.

Your VFC integration Group name

Yes, must be modified

VfcSyncedEmployeeGroupName

The name of the user group in WFE which contains all employees synchronized from VFC. Must be unique to an Integrator deployment and across the WFE tenant. Note: WFE group names are limited to 50 characters, which includes the name prefix and the actual group name.

VFC Synced

Yes, can be modified

SiteGroupPathThe WFE Installations path to the Site that the external server is associated to, specifying the Site Group between the Enterprise node and the Site.VFC Site GroupYes, can be modified
SiteNameThe name of the WFE Site to which the external server is associated.VFC SiteYes, can be modified
ServerNameThe host name of the VFC Media Repository.VFC Media Repository HostnameYes, should be modified
DescriptionDescription of the external server. Optional.Your Server's DescriptionYes, can be modified

Related information

Organizations and groups (WFE User Management Guide)

VFC

Parameters to configure that describe VFC-related settings.

Parameter

Description

Default value

Modifiable

Eid

The Environment ID of the VFC environment for which the Integrator is configured (VFC equivalent of a Tenant ID).

0000

Yes, can be modified

MediaRepositoryDbConnectionString

The connection string to access the VFC Database. The minimum required parameters are supplied as default values, separated by semicolons.

Server=...,1433;Initial Catalog=verba;User Id=...;Password=...;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False

Yes, must be modified

MediaRepositoryServerUrl

The FQDN or NetBIOS name of the Media Repository server to send requests to the VFC.

https://YourVfcMediaRepositoryServer

Yes, must be modified

AdSyncGroupSeparator

The Group Naming Separator used in VFC as part of the synchronization of Active Directory Organizational Units to VFC Groups.

/

Yes, can be modified

SupportedPlatforms

The platform names and types of switches supported by the Integrator that can be synchronized between VFC and WFE when marking calls and creating data sources. Must not be modified.

avaya-dmcc, Phone

cisco-network, Phone

zoom_phone, Phone

zoom_meeting, Application

ipc-unigy, Trader

ip-trade, Trader

No

ConfiguredPlatforms

The list of configured switch types that are synchronized between VFC and WFE when marking calls and creating data sources. The Integrator does not run until at least one of the supported platform names is added to ConfiguredPlatforms.

example-platform

Yes, must be modified

  • The Eid must describe the VFC environment the Integrator is configured for. The default environment ID is 0000, so the parameter only needs to be modified if the environment ID of the VFC environment has been configured to be different.
  • The MediaRepositoryDbConnectionString is a semicolon-separated string of values that are parsed as the connection details to the VFC database from which the Integrator reads data. The minimum required connection details are supplied as the default value for the MediaRepositoryDbConnectionString parameter, but you must edit this string to fit your deployment requirements.
  • The ADSyncGroupSeparator must match the Group Naming - Separator parameter configured in VFC in the Organization Units section of Active Directory Synchronization, under Administration.
  • The SupportedPlatforms parameter is an internal setting for the Integrator and must not be modified.

Related information

Configuring database connection (VFC Deployment Guide)

Active Directory Synchronization Configuration Reference (VFC Administration Guide)

DataMapping

Data source configuration parameters used to create WFE data sources that accurately represent VFC recorded switches.

Parameter

Description

Default value

Modifiable

WfeDatasource

The name of the WFE data source that is to be created. Must be unique across the WFE installation.

YourWfeDatasourceName

Yes, must be modified

VfcServers

The list of the FQDNs or NetBIOS names of VFC recorders whose recorded calls get marked to the configured WFE data source.

Your.Vfc.RecorderServer

Yes, must be modified

VfcPlatform

The VFC Platform ID of the recorded switch platform. Specifies the data source type in WFE. Must be one of the ConfiguredPlatform values.

example-platform

Yes, must be modified

Timezone

The time zone of the VFC recorded switch platform in the IANA time zone format <area>/<location>. This value is set as the time zone of the WFE data source in the GMT offset time zone format when created. Refer to the Configuration Guide for the list of supported time zones.

Europe/London

Yes, must be modified

Extensions

The list of extensions to associate to the WFE data source. Individual extensions, extension ranges, and a combination of both are supported. Individual extensions can be entered as alphanumeric values, while extension ranges must be integers in the format <startExt>-<endExt>. Optional.

Empty

Can be omitted

If included, must be modified

  • The data source name defined by WfeDatasource must be unique per WFE installation.
  • The comma-separated list of VFC recorders defined by VfcServers must all be in the same time zone.
  • VfcPlatform must be one of the values from the ConfiguredPlatforms parameter in the WFE section of the appsettings.Production file. The value of this parameter populates the Recorded Platform property of the data source that is created in WFE.
  • There must be at least one data source object configured in this section for each platform specified in the ConfiguredPlatforms setting.
  • The Extensions parameter can be omitted, in which case all existing extensions are associated with the data source. If included, the parameter is in the format of a comma-separated list of individual extensions or extension ranges. Individual extensions are supported in an alphanumeric format, while extension ranges are supported in the integer range format <startExtension>-<endExtension>. In extension ranges, both the startExtension and endExtension values are included as configured for the data source.
  • The Timezone value must be specified in the IANA time zone format <area>/<location>. For example, Africa/Windhoek, or America/Los_Angeles.

Only a subset of IANA time zones is supported in WFE. Select a value to use from the following list that represents your required time zone the closest:

IANA time zone

UI value

GMT-12:00

(GMT-12:00) International Date Line West

Pacific/Honolulu

(GMT-10:00) Hawaii

America/Anchorage

(GMT-09:00) Alaska

America/Los_Angeles

(GMT-08:00) Pacific Time (US & Canada)

America/Phoenix

(GMT-07:00) Arizona

America/Denver

(GMT-07:00) Mountain Time (US & Canada)

America/Costa_Rica

(GMT-06:00) Central America

America/Chicago

(GMT-06:00) Central Time (US & Canada)

America/Monterrey

(GMT-06:00) Guadalajara, Mexico City, Monterrey

Canada/Saskatchewan

(GMT-06:00) Canada Central Standard Time

America/Bogota

(GMT-05:00) Bogota, Lima, Quito

America/New_York

(GMT-05:00) Eastern Time (US & Canada)

America/Indianapolis

(GMT-05:00) Indiana (East)

America/Asuncion

(GMT-04:00) Paraguay Standard Time

America/Caracas

(GMT-04:00) Caracas

America/Halifax

(GMT-04:00) Atlantic Time (Canada)

America/Manaus

(GMT-04:00) Manaus

America/La_Paz

(GMT-04:00) La Paz, Guadeloupe

America/Santiago

(GMT-04:00) Santiago

America/St_Johns

(GMT-03:30) NewfoundLand

America/Montevideo

(GMT-03:00) Montevideo

America/Sao_Paulo

(GMT-03:00) Brasilia

America/Buenos_Aires

(GMT-03:00) Buenos Aires, Georgetown

America/Godthab

(GMT-03:00) Greenland

Atlantic/South_Georgia

(GMT-02:00) Mid-Atlantic

Atlantic/Azores

(GMT-01:00) Azores

Atlantic/Cape_Verde

(GMT-01:00) Cape Verde Is.

GMT

Greenwich Mean Time

Africa/Casablanca

(GMT) Casablanca

Europe/London

(GMT) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London

Europe/Berlin

(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna

Europe/Prague

(GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague

Europe/Paris

(GMT+01:00) Brussels, Copenhagen, Madrid, Paris

Europe/Sarajevo

(GMT+01:00) Sarajevo, Skopje, Warsaw, Zagreb

Africa/Bangui

(GMT+01:00) West Central Africa

Europe/Athens

(GMT+02:00) Athens

Asia/Amman

(GMT+02:00) Amman

Europe/Bucharest

(GMT+02:00) Bucharest

Africa/Cairo

(GMT+02:00) Cairo

Africa/Harare

(GMT+02:00) Harare, Pretoria

Europe/Helsinki

(GMT+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius

Asia/Jerusalem

(GMT+02:00) Jerusalem

Europe/Kaliningrad

(GMT+02:00) Kaliningrad (RTZ 1)

Europe/Istanbul

(GMT+03:00) Istanbul

Asia/Riyadh

(GMT+03:00) Kuwait; Riyadh

Africa/Nairobi

(GMT+03:00) Nairobi

Asia/Baghdad

(GMT+03:00) Baghdad

Europe/Minsk

(GMT+03:00) Minsk

Europe/Moscow

(GMT+03:00) Moscow, St. Petersburg (RTZ 2)

Europe/Volgograd

(GMT+03:00) Volgograd

Asia/Tehran

(GMT+03:30) Tehran

Asia/Yerevan

(GMT+04:00) Yerevan

Asia/Tbilisi

(GMT+04:00) Tbilisi

Asia/Muscat

(GMT+04:00) Abu Dhabi, Muscat

Asia/Baku

(GMT+04:00) Baku

Europe/Samara

(GMT+04:00) Izhevsk, Samara (RTZ 3)

Asia/Kabul

(GMT+04:30) Kabul

Asia/Yekaterinburg

(GMT+05:00) Ekaterinburg (RTZ 4)

Asia/Karachi

(GMT+05:00) Islamabad, Karachi, Tashkent

Asia/Calcutta

(GMT+05:30) Calcutta, Chennai, Mumbai, New Delhi

Asia/Colombo

(GMT+06:00) Sri Jayawardenepura

Asia/Katmandu

(GMT+05:45) Kathmandu

Asia/Omsk

(GMT+06:00) Omsk (RTZ 5)

Asia/Almaty

(GMT+06:00) Almaty, Astana

Asia/Dhaka

(GMT+06:00) Dhaka

Asia/Rangoon

(GMT+06:30) Rangoon

Asia/Tomsk

(GMT+07:00) Tomsk (RTZ 6)

Asia/Novosibirsk

(GMT+07:00) Novosibirsk (RTZ 6)

Asia/Bangkok

(GMT+07:00) Bangkok, Hanoi, Jakarta

Asia/Krasnoyarsk

(GMT+07:00) Krasnoyarsk (RTZ 6)

Asia/Irkutsk

(GMT+08:00) Irkutsk (RTZ 7)

Asia/Shanghai

(GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi

Asia/Ulan_Bator

(GMT+08:00) Ulaan Bataar

Asia/Singapore

(GMT+08:00) Kuala Lumpur, Singapore

Australia/Perth

(GMT+08:00) Perth

Asia/Taipei

(GMT+08:00) Taipei

Asia/Tokyo

(GMT+09:00) Osaka, Sapporo, Tokyo

Asia/Seoul

(GMT+09:00) Seoul

Asia/Yakutsk

(GMT+09:00) Yakutsk (RTZ 8)

Australia/Adelaide

(GMT+09:30) Adelaide

Australia/Darwin

(GMT+09:30) Darwin

Australia/Brisbane

(GMT+10:00) Brisbane

Australia/Sydney

(GMT+10:00) Canberra, Melbourne, Sydney

Pacific/Guam

(GMT+10:00) Guam, Port Moresby

Australia/Hobart

(GMT+10:00) Hobart

Asia/Vladivostok

(GMT+10:00) Vladivostok, Magadan (RTZ 9)

Asia/Srednekolymsk

(GMT+11:00) Chokurdakh (RTZ 10)

Pacific/Guadalcanal

(GMT+11:00) Solomon Is., New Caledonia

Asia/Anadyr

(GMT+12:00) Anadyr, Petropavlovsk-Kamchatsky (RTZ 11)

Pacific/Auckland

(GMT+12:00) Auckland, Wellington

Pacific/Fiji

(GMT+12:00) Fiji, Kamchatka, Marshall Is.

Pacific/Apia

Pacific/Apia

Pacific/Tongatapu

(GMT+13:00) Nuku'alofa

See Switches and data sources for more information about the creation of data sources in WFE.

Related information

IANA Time Zone Database

Secrets

Parameters to configure to authenticate access to the WFE and VFC APIs.

Parameter

Description

Default value

Modifiable

WfeApiKey

The External API Key generated in WFE. Requires the Key ID and Key Value configured.

Yes, must be modified

VfcApiUser

The VFC user details for the dedicated API User with the "API Access Only" flag set.

Empty

Yes, must be modified

Related information

Generate an API key (WFE Enterprise Configuration and Administration Guide)

User Configuration (VFC Administration Guide)

Non-compulsory appsettings parameter configuration

There are values in the appsettings.Production file that are internal to the Integrator and have been configured for optimal operation. Most of these values should only be changed with caution.

HighAvailability

Parameters relating to the Integrator resilience.

Parameter

Description

Default value

Modifiable

LockTimeout

The VFC database lock timeout period of this Integrator instance. The timeout starts when the database does not receive a heartbeat signal from the Integrator. When the timeout period elapses, this Integrator loses ownership and other Integrators can claim it.

00:10:00

Modify with caution

Refer to Resilience to find out more about the usage of the VFC database lock.

Bootstrap

Parameters relating to the dependency verification of the Integrator.

Parameter

Description

Default value

Modifiable

DependencyRecheckIntervalSeconds

The timeout period after all failing dependency readiness checks are retried.

30

Modify with caution

The Integrator depends on several parameters and connections being accurately set up, and runs an internal dependency check service. The status of dependencies is saved, and if a dependency failed during the last check, new verification process runs after the DependencyRecheckIntervalSeconds period elapses.

Synchronisation

Parameters relating to the synchronization process carried out by the Integrator.

Parameter

Description

Default value

Modifiable

ResyncStartAtTimeOfDay

The time of day when the next attempt is made to synchronize user, group, recording expectation, and extension data. Ranging from 00:00:00 to 23:59:59 in the hh:mm:ss format. The time is in the time zone of the server on which the Integrator runs.

01:00:00

Yes, can be modified

PermanentErrorRetryDelay

The time delay to retry a synchronization attempt if a persistent error happens that needs human interaction (for example, a configuration problem). Ranging from 00:00:00 to 23:59:59 in the hh:mm:ss format.

00:01:00

Modify with caution

TransientErrorRetryDelay

The time delay to retry a synchronization attempt if a temporary error happens that does not need human interaction (for example, a network outage). Ranging from 00:00:00 to 23:59:59 in the hh:mm:ss format.

00:00:05

Modify with caution

Specify ResyncStartAtTimeOfDay based on your system and organizational usage trends. Choose a time in the day when the least network activity takes place to avoid affecting business-critical operations.

CallMarking

Parameters relating to the process of the Integrator marking call data to the WFE environment.

Parameter

Description

Default value

Modifiable

IntervalMs

The delay between batches of calls processed to be marked to WFE in milliseconds.

5000

Modify with caution

ReadBatchSize

The number of calls to be read from the VFC database and marked to be sent to WFE at a given time.

1000

Modify with caution

PostCallDelayInMinutes

The delay between a VFC call being completed and it being considered for call marking to WFE.

1

Modify with caution

WfeApiRootPath

The path address of the WFE Data Marking API.

/api/recording/marking/v1

No

InitialHistoryDays

The earliest point in time that the Integrator marks call data. It is configured as a number of days in the past to mark as the initial watermark for marking calls, and the Integrator does not check for calls before this point in time.

0

Yes, can be modified


Call marking is the process of reading in a call record from the VFC database, evaluating it against the Integrator configuration, and sending it to the WFE database. These parameters define how often calls get marked, and how many call records are processed at a time.

Changing the default values can have significant impact on system performance. Modify these parameters with caution.
  • The values of InternalMs and ReadBatchSize can be adjusted depending on call volumes.
  • The PostCallDelayInMinutes starts after the last update is made to the call record in the database. Any of the internal VFC services can update a record, therefore the parameter is specific to system configuration. The value can be adjusted depending on system and network connection speed. Setting the parameter to too large a value can result in calls taking excessively long to be synchronized for use by WFE applications. In cases of high call volumes, this can also cause large batches of data to be processed simultaneously, increasing network traffic. Too short a time value can result in calls being marked repeatedly as VFC internal services update the database record of the call, causing excess load on the system and the network.
  • InitialHistoryDays specifies a number of days before the current time, and the Integrator only marks calls that were made since that point in time. This parameter is only applied on the first run of the Integrator.

See Recorders and call metadata for more information about call marking.

RecordingExpectation

Parameters relating to the synchronization of extensions.

Parameter

Description

Default value

Modifiable

WfeApiExtensionsChunkSize

The number of VFC extensions to be sent to the WFE API at a given time.

1000

Modify with caution

VfcDbExtensionsBatchSize

The number of VFC extensions to be read from the VFC database at a given time.

1000

Modify with caution

ContactIdCaching

Parameters relating to the processing of contact objects during the call metadata synchronization process.

Parameter

Description

Default value

Modifiable

MaximumCachedEntries

The maximum number of contact objects to be stored in the cache. Default: 200000.

200000

Modify with caution

MaximumSupportedContactStartTimeDifference

Absolute expiration time of the contact cache entries relative to the current time, in the format hh:mm:ss, between 00:00:00 and 12:00:00. Also defines the maximum time difference allowed between the start times of the call sessions under the same contact.

12:00:00

Modify with caution

The unit of measurement for the MaximumCachedEntries parameter is number of contact objects. As the concept of contacts describes related call sessions in VFC, contact objects can be different sizes depending on the number and length of related calls, but this setting has no effect on overall system performance.

See Recorders and call metadata for more information about contacts.

Advanced - ResponseCaching

Parameters relating to the caching of HTTP responses from WFE APIs.

Parameter

Description

Default value

Modifiable

DefaultSoftCacheLifeTime

The time interval after which cached responses from WFE APIs are invalidated if the cache was not used. In the format dd.HH:mm:ss.SSS (where dd and SSS are optional values).

00:10:00

Modify with caution

HardCacheLifeTime

The time interval after which a cached response from a WFE API is always invalidated, no matter what the status of the API is. In the format dd.HH:mm:ss.SSS (where dd and SSS are optional values).

12:00:00

Modify with caution

MaxCacheSize

Maximum number of responses from WFE APIs to HTTP requests to be stored at any given time.

1000

Modify with caution

SoftCacheLifeTimes

The time interval after which a cached response from a specific WFE API is invalidated if the cache was not used. Overwrites the value set in DefaultSoftCacheLifeTime for the specified API. In the format dd.HH:mm:ss.SSS (where dd and SSS are optional values).

"/wfo/api/em/recorder/v2/datasources": "00:10:00"

Modify with caution

The Integrator caches responses from WFE APIs to some HTTP requests to minimize network communication and load on the APIs. To keep data relevant, cached responses are periodically invalidated, and new queries are sent to the APIs. Some cached responses are only invalidated if they are not queried by the Integrator in a set time period, while others are always invalidated after a time.

These parameters must only be modified with caution to avoid adverse impact on system performance.

Advanced - ArchivedLogsCleanup

Parameters relating to the archiving of log files.

Parameter

Description

Default value

Modifiable

ArchivedFolderName

The path and folder name to store the zipped archived logs. It is relative to the Serilog path parameter configured. If left empty or the parameter is omitted, the archived files are created in the Serilog log folder.

Archived

Yes, can be modified

CompressionLevel

The level of compression. The value is one of the following: NoCompression, Fastest, Optimal, SmallestSize. Default: SmallestSize.

SmallestSize

Modify with caution

KeptArchivesCount

The number of archived log files to keep. Setting to 0 means all archived log files are kept.

30

Modify with caution

  • The ArchivedFolderName parameter describes where archived log files are saved, relative to the Serilog Logs folder.
  • The CompressionLevel parameter sets the level of compression to apply to the archiving of a log. Setting the parameter to a low compression setting can impact system performance, so edit with caution.
  • The KeptArchivesCount parameter specifies how many archived log files can be kept. Specifying the value as 0 keeps all archived log files. Setting the parameter to too high a number can impact system performance, so edit with caution.

Serilog

Parameters describing the Serilog logging configuration.

Parameter

Description

Default value

Modifiable

Using

The log event sinks used.

Serilog.Sinks.Console,

Serilog.Sinks.File

Yes, can be modified

MinimumLevel

The minimum log level of the application.

Information

Modify with caution

WriteTo

List of output objects and their corresponding log configuration.


Yes, can be modified

Name

Output type name.


Modify with caution

path

File path and name to write logs to in “File” outputs.

Logs\\log_.log

Modify with caution

rollingInterval

The time interval when Serilog starts writing to a new log file.

Day

Modify with caution

rollOnFileSizeLimit

The file size limit when Serilog starts writing to a new log file.

true

Modify with caution

fileSizeLimitBytes

The maximum size of the active log file, in bytes.

104857600

Modify with caution

retainedFileCountLimit

The maximum number of not archived log files.

1

Modify with caution

hooks

The services which are monitored for logging.

Vfc.Integrator.Service.Logging.SerilogHooks::ArchiveHook, Vfc.Integrator.Service

No

outputTemplate

Defines the format of the log messages.

For Console:

[{Timestamp:yyyy-MM-dd HH:mm:ss.fff} {Level:u3} {ThreadId:000}] ({SourceContext}) {Scope:l} {Message:j}{NewLine}{Exception}

For File:

[{Timestamp:yyyy-MM-dd HH:mm:ss.fff} {Level:u3} {ThreadId:000}] {Scope:l} {Message:j}{NewLine}{Exception}

No

Only increase the log level temporarily when you are doing troubleshooting. Leaving the log level on Debug/Verbose level can have an adverse effect on system performance which could lead to data loss in critical situations.

Troubleshooting

See the VFC to WFE Metadata Integrator Troubleshooting Guide for more information on investigating and preventing problems.