Service Properties

This appendix contains a full list of properties that may be configured for VGSx, VCDx, and the VGSx Tester. System properties can be passed as environment variables to the docker container using the format:

docker run -p 8099:8099 -e TRUSTX_HOST_REPLACEMENT=https://%s.%s.trustx-qc.com -e TRUSTX_SKY_REGION=oak 055116872942.dkr.ecr.us-west-2.amazonaws.com/daon/sentinel-on-prem:vcdx-fbd9053

where port, environment variables, and container version will change depending on deployment.

Properties listed below can be set as environment variables by performing the following:

  • Replace dots (.) with underscores (_)

  • Remove any dashes (-)

  • Convert to uppercase

See https://docs.spring.io/spring-boot/docs/3.0.0/reference/htmlsingle/#features.external-config.typesafe-configuration-properties.relaxed-binding.environment-variables for details.

VGSx Properties

Property


Default Value

Description

server.port


8081

The HTTP port on which the service will listen for REST requests.

server.ssl.enabled


false

Whether SSL is enabled for requests to this service. If true the additional SSL parameters below must be provided.

server.ssl.ciphers


TLS_AES_256_GCM_SHA384,

TLS_AES_128_GCM_SHA256,

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

Supported SSL ciphers

server.ssl.enabled-protocols


TLSv1.1,TLSv1.2,TLSv1.3

Support SSL protocols

server.ssl.key-store


None

The location of the Keystore file with the public/private key pair and certificate for TLS.

server.ssl.key-store-password


None

The password to the TLS Keystore.

server.ssl.keyStoreType


None

The type of the TLS Keystore, for example JKS or PKCS12

server.ssl.keyAlias


None

The alias of the public key in the TLS Keystore

tomcat.useCipherSuiteOrder


true

  • true: Tomcat enforces the server's preferred order of cipher suites during SSL/TLS handshakes.

  • false: The client’s preferred order of cipher suites is used during SSL/TLS handshakes.

logging.config


file:${CONF_DIR}/log4j2.xml

The location of the log file.

logging.level.com.daon.sentinel.vgs


INFO

The log level for the Daon classes within the service.

logging.level.org.springframework.web


INFO

The log level for the Spring Framework web classes within the service.

logging.log.json.response


false

If set to true, the json response for each VGSx API call will be logged at INFO level.

Note: The json body can contain a phone number. Customers may wish to keep this property disabled or mask phone numbers if concerned about this information being present in logs.

cors.allowed.origins


http://localhost:5173,

http://localhost:8080,

http://localhost:8081,

https://sentinel-webapp-test.identityx-cloud.com, https://sentinel-vgsx-tester-test.identityx-cloud.com, https://sentinel-vgsx-test.identityx-cloud.com

The list of origins that are permitted to make cross-origin requests to the server.

spring.jackson.default-property-inclusion


NON_NULL

Controls the inclusion of properties during serialization. Configured with one of the values in Jackson's JsonInclude.Include enumeration.

spring.main.allow-circular-references


true

Determines whether circular references between beans are allowed during application context initialization.

This property must not be altered.

spring.mvc.pathmatch.matching-strategy


ant-path-matcher

Configures the strategy used for matching URL paths to controller methods.

This property must not be altered.

spring.jackson.date-format


yyyy-MM-dd'T'HH:mm:ss.SSSZ

The format of datetime parameters in the JSON requests and responses.

This property must not be altered.

spring.jackson.serialization-inclusion


NON_NULL

Configures how Jackson includes properties in JSON serialization. Configured with one of the values in Jackson's JsonInclude.Include enumeration.

The default value of NON_NULL includes only properties with non-null values.

This property must not be altered.

spring.jackson.default-property-inclusion


NON_NULL

Controls the inclusion of properties during serialization. Configured with one of the values in Jackson's JsonInclude.Include enumeration.

The default value of NON_NULL includes only properties with non-null values.

This property must not be altered.

spring.security.user.name


daon

The name of the user required to access the API documentation.

spring.security.user.password


doc4Swagger

The password for the user required to access the API documentation.

management.endpoints.jmx.exposure.include


health

Specifies which management endpoints should be exposed via JMX (Java Management Extensions)

management.endpoints.web.exposure.include


health,metrics,prometheus

Specifies which management endpoints should be exposed over the web (HTTP)

management.endpoint.health.enabled


true

Controls whether the health endpoint provided by Spring Boot Actuator is enabled or disabled.

management.endpoint.health.show-details


ALWAYS

Configures whether additional details should be included in the response of the health endpoint provided by Spring Boot Actuator.

The default value of ALWAYS includes details in all responses, regardless of authorization.

management.endpoint.metrics.enabled


true

Controls whether the metrics endpoint provided by Spring Boot Actuator is enabled or disabled.

management.endpoint.prometheus.enabled


true

Controls whether the prometheus endpoint provided by Spring Boot Actuator is enabled or disabled.

call.manager.any.call.interval


7200

The maximum time in seconds that information about any call with a status other than ENDED continues to be available through VGSx after the time the call was last updated.

call.manager.ended.call.interval


900

The maximum time that a call with a status of ENDED continues to be available through VGSx after the call was last updated.

call.manager.sleep.interval


1000

How often in milliseconds does the call manager perform a call clean-up operation.

analysis.sample.manager.sleep.interval


50

How often in milliseconds does the VGSx analysis thread analyse call audio.

analysis.dispatch.manager.sleep.interval


50

How often in milliseconds does the VGSx dispatch thread package analysed audio for dispatch to the VCDx.

gather.call.metrics.task.delay


120000

The delay in milliseconds after the VGSx service starts when the task which gathers call metrics first runs.

gather.call.metrics.task.period


5000

How often in milliseconds the task which gathers call metrics runs.

orcx.live_streaming_url_sentinelVGSTester


http://localhost:8081/streamAudio?

recid=%s&chunkSize=%d&delay=%d

&repeat=%d

The streaming callback URL for the default VGSx tester.

This property is linked to the sentinel.vgs.host.name property in the VGSx Tester which has a default value of sentinelVGSTester. The name of this property is orcx.live_streaming_url_{name} where {name} must match the hostname supplied by the VGSx Tester.

orcx.live_streaming_url_name


http://{hostname}:59120/?type=stream&recid=%s

An example streaming callback URL for OrkAudio

This property must be replaced when using OrkAudio.

This name of this property is orcx.live_streaming_url_{name} where {name} must match the hostname supplied by an OrkAudio instance. One _orcx.live_streaming_url{name} property must be defined for every OrkAudio instance which communicates with this VGSx instance.__

sentinel.callId.script


None

An optional groovy script which is applied to the /orktrack/command API call parameters.

sentinel.reverse.phone.mapping


true

If this value is true and Neustar is not enabled (see property below) then the remoteparty call parameter is assigned as the agent phone number and the localparty call parameter is assigned as the caller phone number. If this value is false or Neustar is enabled the properties are assigned the other way around.

agentPhoneNumber.mapping


None

Introduced in VGSx 1.2.0.0, this field overwrites the agentPhoneNumber mapping in place in 1.1.0.x and allows agentPhoneNumber to be mapped to remoteparty or localparty.If set, this property results in the code ignoring the sentinel.reverse.phone.mappingproperty.

phoneNumber.mapping


None

Introduced in VGSx 1.2.0.0, this field overwrites the phoneNumber mapping in place in 1.1.0.x and allows phoneNumber to be mapped to remoteparty or localparty.If set, this property results in the code ignoring the sentinel.reverse.phone.mappingproperty.

call.authentication.neustar.enabled


false

Determines whether Neustar will be called to authenticate an incoming call.

Integration with Neustar is outside the scope of this document.

call.authentication.neustar.username


None

The username used when calling the Neustar call authentication URL

call.authentication.neustar.password


None

The password used when calling the Neustar call authentication URL

call.authentication.neustar.url


None

The Neustar call authentication API URL

call.authentication.neustar.http.read.timeout


2000

The read timeout in milliseconds for the Neustart authentication API call

call.authentication.neustar.http.connect.timeout


2000

The connect timeout in milliseconds for the Neustart authentication API call

sentinel.vgs.build_version


Version specific

The build version reported by the ping API.

This property must not be altered.

sentinel.vgs.sentinel_version


Version specific

The sentinel version reported by the ping API.

This property must not be altered.

sentinel.vgs.service_name


SentinelVgsx

The service name reported by the ping API.

By default this property is part of the sentinel.service.name property which identifies this installation of the VGSx service to the VCDx in the cloud when publishing audio metrics.

sentinel.vgs.server_id


1

The service ID reported by the ping API.

By default this property is part of the sentinel.service.name property which identifies this installation of the VGSx service to the VCDx in the cloud when publishing audio metrics.

sentinel.service.name


${sentinel.vgs.service_name}

${sentinel.vgs.server_id}

Identifies this installation of the VGSx service to the cloud-based installation of VCDx when publishing audio metrics.

sentinel.vgs.metrics.service.name


sentinel-vgsx

The serviceName tag applied to prometheus metrics generated by this VGSx service. Identifies the service which generated the metrics.

sentinel.service.domain


http://localhost:8099

The domain used when calling the VCDx to analyse audio.

sentinel.health.domain


http://localhost:8099

The domain used when calling VCDx to check whether the service is running.

sentinel.analysis.api.path


/tenants/${sentinel.trustx.tenantId}/

audios/${sentinel.service.name}

The path of the VCDx analysis API.

This property must not be altered.

sentinel.health.api.path


/actuator/health

The path of the VCDx health API.

This property must not be altered.

sentinel.vgs.trustx.tenantId


None

The tenant ID used when calling the VCDx service.

This property must be set. It defines the tenant ID which will be used by the on-premise VCDx when publishing metrics to the VCDx in the cloud. Refer to the section earlier in this document here: Configuring-the-Sentinel-VGSx-TrustX-connection

sentinel.prem.api.key


None

The API key used to authenticate to VCDx in the cloud.

This property must be set. It will be used to authorise the on-premise VCDx when publishing metrics to the VCDx in the cloud. Refer to the section earlier in this document here: Configuring-the-Sentinel-VGSx-TrustX-connection

sentinel.trustx.deployment


false

Configures whether this is an on-premise or TrustX deployment. The default of value of false indicates that this is an on-premise deployment.

This property must not be altered.

sentinel.trustx.region


None

Configures the TrustX region where VCDx is deployed.

This property is only used in TrustX cloud deployments of VGSx and does not need to be set for on-premise deployments.

vad.simple.voice.threshold


0.001

A threshold value between 0 and 1 used by the VGSx Voice Activity Detector which defines the audio volume which may be considered as speech vs silence. Lower values allow more silence.

vad.simple.min.silence.ms


500

The minimum number of milliseconds of audio which is considered silence by the the VGSx Voice Activity Detector. This value is used as a threshold by the VAD when removing silence from audio to create speech segments. Regions of silence shorter than this value will not be removed. Regions of silence longer than this value will be shortened to this length.

vad.simple.window.ms


1

The number of milliseconds of audio sample over which the VAD calculates the audio volume when deciding which parts of the audio contains speech.

internal.vgs.tenant.id


INTERNAL_VGS_TENANT

Internal tenant ID used when the Voice Activity Detector is used in test mode, see the test.apply.vad.before.writing property below.

test.apply.vad.before.writing


false

Determines whether to use a test WAV writer which applies the Voice Activity Detector to the sample each time a sample is decoded from the audio stream or written to VCDx.

audio.write.audio.location


None

Defines a directory to which an audio file will be written for each piece of audio which is streamed. The audio file names within the directory are formatted as the call Id + a timestamp:

{callId}_{yyyyMMdd'T'HHmmss.SSSZ}.wav

caller.audio.channel


None

Sets a default channel on which the audio will be decoded on a stereo stream.

Valid Values: LEFT, RIGHT

Whether the input is stereo and the channel to use can also be set in the call parameters supplied to the /orktrack/command API.

analysis.absolute.min.speech.duration


3000

The minimal duration, in milliseconds, of a speech segment which will be sent to the VCDx for analysis. A speech segment shorter than this minimum will never be sent to VCDx. Note: If setting to a value lower than 2000, you must also change the analysis.service.qc.min.speech.durationproperty in VCDx.

analysis.segment.min.speech.duration


4000

The preferred length, in milliseconds, of speech segments which will be sent to VCDx for analysis.

Speech segments shorter than this will only be sent if there is remaining speech that has not been processed at the end of a call or after a the maximum hold time has expired but speech segments will never be shorter than analysis.absolute.min.speech.duration.

Note: If setting to a value lower than 2000, you must also change the analysis.service.qc.min.speech.durationproperty in VCDx.

analysis.segment.max.hold.time


30000

The maximum duration, in milliseconds, for which the VCDx will wait for more speech to arrive to meet the preferred minimum before dispatching a speech segment to VCDx.

analysis.max.number.of.attempts


1000

By default, VGSx will split the call audio into segments and call VCDx with each segment until either the call ends or an anomaly is detected. The VGSx can be limited to stop call processing after a certain number of successful calls to the Sentinel VGSx. Calls which return a NOT_PROCESSED status are ignored.

This property defines the maximum number of successfully processed audio segments before audio processing completes regardless of whether the call completed.

The default value of -1 results in the call being processed until it ends.

analysis.should.send.speech.segments.callstatus


PENDING, PROCESSING, ENDING

Speech segments will only be sent by VGSx to the VCDx if the call is in one of these states.

This property must not be altered.

analysis.allow.anomalies


false

If this property is set to true, the VGSx will ignore anomalies and continue to process the file even if they are reported by the VCDx.

This property must not be altered.

analysis.service.replay.threshold.r1


0.6293

The score value obtained from the replay detection model, that detects low quality pattern devices. Value can be from 0 to 1. The lower the score, the more likely the file is a spoof.

analysis.service.replay.threshold.r2


0.05794

The score value obtained from the replay detection model, that detects high quality pattern devices. Value can be from 0 to 1. The lower the score, the more likely the file is a spoof..

analysis.service.voice.clone.thresholds


v1:0.035, v2:0.06082, v3:0.678, v4:0.4003

The thresholds used internally by the voice clone detection algorithm.

analysis.service.qc.min.stoi


0.07063

Short-Time Objective Intelligibility, an objective measure designed to predict the intelligibility of speech, especially in noisy or processed audio.

analysis.service.qc.min.pesq


1.1003

Perceptual Evaluation of Speech Quality, standardized as ITU-T P.862, it is an objective metric designed to assess the quality of narrowband and wideband speech signals. It models human perception of speech quality by analysing both time and frequency domains and is often used to evaluate the quality of speech codecs, and other processing that affects audio quality.

analysis.service.qc.min.sisdr


-21.631

Scale-Invariant Signal-to-Distortion Ratio, an objective metric that calculates the ratio of the power of the original signal to the power of the distortion (e.g., noise, artifacts introduced during processing).

analysis.service.qc.template.update.ratio


1

Defines the percentage of the audio buffer that is discarded (or shifted) after an inference is computed.

audio.sample.per.call.limit


500

Defines limit for the number of audio samples that are stored per call.

analysis.service.qc.min.snr


5.0

The signal to noise ratio threshold used by the voice QC algorithm.

analysis.service.qc.min.speech.ratio


0.55

The minimum speech ratio threshold used by the voice QC algorithm.

analysis.service.qc.min.speech.duration


2.0

The minimum speech duration in seconds required by the voice QC algorithm.

analysis.service.qc.min.loudness1


-0.6

The first of two loudness thresholds used by the voice QC algorithm.

analysis.service.qc.min.loudness2


-38.0

The second of two loudness thresholds used by the voice QC algorithm.

analysis.service.qc.max.saturation


-0.04

The maximum saturation value used by the voice QC algorithm.

analysis.service.qc.max.frame.saturation.ratio


-0.3

The maximum frame saturation ratio used by the voice QC algorithm.

analysis.service.qc.codec.discard


amr-nb-0,amr-nb-1,amr-nb-2,amr-nb-3

A list of audio codecs that are discarded by the voice QC algorithm. This parameter results in calls that are of too low a quality to be successfully analysed being ignored.

analysis.service.webClient.readTimeoutInSeconds


20

The read timeout in seconds for the call to the analysis VCDx API.

analysis.service.webClient.writeTimeoutInSeconds


20

The write timeout in seconds for the call to the analysis VCDx API.

analysis.service.webClient.connectTimeoutMillis


5000

The connect timeout in milliseconds for the call to the analysis VCDx API.

analysis.service.health.webClient .readTimeoutInSeconds


5

The read timeout in seconds for the call to the health check VCDx API.

analysis.service.health.webClient .writeTimeoutInSeconds


5

The write timeout in seconds for the call to the health check VCDx API.

analysis.service.health.webClient .connectTimeoutMillis


5000

The connect timeout in milliseconds for the call to the health check VCDx API.

sentinel.time.between.connection.tests


30000

Defines the amount of time in milliseconds between potential calls to VCDx to check its availability during the VGSx ping call.

For example, with the default setting of thirty seconds, if ping is called every ten seconds the connection to VCDx will be made once every three calls.

ui.call.analysis.service.worker.threads


5

The number of worker threads available for the task which submits speech segments to VCDx.

analysis.service.reaper.task.delay


300000

The delay in milliseconds after the VGSx service starts when the task which cleans up the internal list of currently processing calls first runs.

analysis.service.reaper.task.period


300000

How often in milliseconds the task which cleans up the internal list of currently processing calls runs.

sentinel.action.processor.http.response.on .stopped


503

Defines the HTTP status which is returned from the ping or call analysis APIs if the VGSx has been instructed to stop processing calls using the /gatewayNode/actionStatus API.

sentinel.action.processor.http.error.on.stopped


true

Determines whether VGSx will ignore the action status set using the /gatewayNode/actionStatus API when analysing a call.

If true then the HTTP status defined in the property above will be returned on call analysis if the VGSx has been instructed to stop processing calls using the /gatewayNode/actionStatus API. If false then the call will still be processed.

sentinel.async.http.read.timeout


5000

The read time-out in milliseconds used in the asynchronous HTTP client which is used by VGSx to stream audio.

sentinel.async.http.request.timeout


2147483647

The request time-out in milliseconds used in the asynchronous HTTP client which is used by VGSx to stream audio. This is set to a very high value to prevent VGSx from timing out when handling long calls.

sentinel.bearer.token


None

Defines an optional token that, if defined, must be supplied to authorise calls to VGSx as described here: Protecting-Calls-to-VGSx-with-an-API-Token

cookie.name


SEN_VGC

The name assigned to the cookie when analysis is started on a call. See this section of the document for more details: VGSx-High-Availability-Configuration

cookie.maxAge


1500

The maximum age of the cookie in seconds.

cookie.secure


false

Determines whether the server should only deliver the cookie over a TLS connection.

cookie.httpOnly


false

Determines whether the server should only deliver the cookie over a TLS connection.

cookie.path


/

The cookie path.

sky.oidc.system.issuer


None

Identifies the central system's issuer for JWTs. If it matches token issuer, token will be evaluated with the central server's public key.

sky.oidc.tenant.issuer.regex


None

A regex pattern to match tenant issuers for JWTs. If it matches token issuer, token will be evaluated with the tenant's public key.

sky.oidc.audience


None

Specifies the expected audience claim in a JWT. Used during token validation to ensure the token is intended for this application.

sky.auth.tokenManager.tokenSecretName


sky-oak-dev-${sky.service.type}.${sky.service.id}

The name of AWS secret that holds API KEY used to fetch JWTs.

sky.auth.tokenManager.systemTokenIssuerEndpoint


https://system.oak.trustx-dev.com/api/arthr/system/apiKeys/issue

The endpoint used to fetch JWTs to authenticate outgoing requests.

sky.auth.tokenManager.webClient.retryCount


5

Retry count for fetching JWTs.

sky.auth.tokenManager.webClient.backoffSeconds


30

Backoff period used when retrying to fetch a JWT.

sky.auth.tokenManager.token.ttl


86400

JWT's time-to-live.

sky.auth.tokenManager.ttlWatcherDelay


PT5M

Used for scheduling JWT expiry check.

sky.auth.tokenManager.refreshFixedDelay


PT1H

Used for scheduling JWT refresh.

VCDx Properties

Property

Default Value

Description

server.port

8099

The HTTP port on which the service will listen for REST requests.

server.ssl.enabled

false

Whether SSL is enabled for requests to this service. If true the additional SSL parameters below must be provided.

server.ssl.ciphers

TLS_AES_256_GCM_SHA384,

TLS_AES_128_GCM_SHA256,

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

Supported SSL ciphers

server.ssl.enabled-protocols

TLSv1.1,TLSv1.2,TLSv1.3

Support SSL protocols

server.ssl.key-store

None

The location of the Keystore file with the public/private key pair and certificate for TLS.

server.ssl.key-store-password

None

The password to the TLS Keystore.

server.ssl.keyStoreType

None

The type of the TLS Keystore, for example JKS or PKCS12

server.ssl.keyAlias

None

The alias of the public key in the TLS Keystore

tomcat.useCipherSuiteOrder

true

  • true: Tomcat enforces the server's preferred order of cipher suites during SSL/TLS handshakes.

  • false: The client’s preferred order of cipher suites is used during SSL/TLS handshakes.

cors.allowed.origins

None

The list of origins that are permitted to make cross-origin requests to the server.

cors.mapping

None

Defines the endpoints to which CORS settings are applied.

cors.allowed.methods

None

Specifies the HTTP methods, such as POST, GET, DELETE that are allowed for Cross-Origin Resource Sharing (CORS).

logging.log.json.response

false

If set to true, the json response for each VCDx API call will be logged at INFO level.

management.endpoints.jmx.exposure

.include

health

Specifies which management endpoints should be exposed via JMX (Java Management Extensions)

management.endpoints.web.exposure

.include

health,info,metrics,prometheus

Specifies which management endpoints should be exposed over the web (HTTP)

management.endpoint.health.enabled

true

Controls whether the health endpoint provided by Spring Boot Actuator is enabled or disabled.

management.health.status.order

DOWN,WARN,UP

Configures the severity order for health indicators. By default, it contains the following statuses:

  1. DOWN: Indicates a critical failure.

  2. OUT_OF_SERVICE: Indicates that the component is temporarily out of service.

  3. UNKNOWN: Used when no specific status is returned by any health indicator.

  4. UP: Indicates that the component is healthy and operational.

management.endpoint.health.show-details

ALWAYS

Configures whether additional details should be included in the response of the health endpoint provided by Spring Boot Actuator.

The default value of ALWAYS includes details in all responses, regardless of authorization.

management.endpoint.info.enabled

false

Controls whether the info endpoint provided by Spring Boot Actuator is enabled or disabled.

management.endpoint.metrics.enabled

true

Controls whether the metrics endpoint provided by Spring Boot Actuator is enabled or disabled.

management.endpoint.prometheus.enabled

true

Controls whether the prometheus endpoint provided by Spring Boot Actuator is enabled or disabled.

info.app.version

@project.version@

The application’s version information in the /actuator/info endpoint.

info.app.name

@project.name@

The application’s name in the /actuator/info endpoint

qc.template.cache.ttl.minutes

15

Defines how long quality control templates are cached.

sentinel.trustx.deployment

false

Configures whether this is an on-premise or TrustX deployment. The default of value of false indicates that this is an on-premise deployment.

This property must not be altered.

trustx.statistics.enabled

true

Controls whether metrics are sent to TrustX, enabling customers to easily turn external metrics reporting on or off.

trustx.host.replacement

https://%s.%s.trustx.com

Defines the domain of the TrustX services. The %s parts of the string are place-holders for text.

Refer above for more detail: Configuring-the-Sentinel-VCDx-TrustX-connection

When using VCDx in non-production environment, the trustx part of the domain must be re-configured, for example to trustx-dev for the development environment.

trustx.sky.region

oak

The region where the TrustX deployment of xDeTECH resides.

Refer above for more detail: Configuring-the-Sentinel-VCDx-TrustX-connection

spring.cache.jcache.config

classpath:ehcache.xml

The location of the cache configuration.

This property must not be altered.

statistics.scheduledSendSize

5

Specifies the number of metrics sent in a single batch.

sentinel.onprem.should.use.redis

false

Determines whether a Redis server will be used to cache call state information. This must be set to true for high-availability deployments where one call may be analysed by multiple VCDx instances. Configuring-Redis

spring.data.redis.host

None

Specifies the hostname or IP address of the Redis server to which VCDx should connect.

See above here: Configuring-Redis

spring.data.redis.port

None

Specifies the port number of the Redis server to which VCDx should connect.

See here: Configuring Redis

spring.data.redis.ssl.enabled

None

Specifies whether transport layer security is configured.

See here: Configuring Redis

spring.main.allow-bean-definition-overriding

None

Must add and set to trueif using redis. See here: Configuring Redis

sentinel.redis.metrics.lua.script.path

redis/metrics_lua_script.lua

Path to the Redis script used to cache algorithm probabilities with no averaging.

This property must not be altered.

sentinel.redis.snapins.results.lua.script

.path

redis/snapins_results_lua_script_whole_call_avg.lua

Path to the Redis script used to cache algorithm probabilities for whole call mode.

This property must not be altered.

sentinel.redis.snapins.results.lua.script

.path

redis/snapins_results_lua_script_last_n_samples_avg.lua

Path to the Redis script used to cache algorithm probabilities for averaging mode.

This property must not be altered.

sentinel.redis.eval.lua.script.number.of

.retries

3

Number of retries to load and execute a Redis script.

snapins.averaging.mode

WHOLE_CALL

Defines how the VCDx calculates the analysis probability scores across the audio.

See here: Configuring-Sentinel-VCDx-Averaging-Modes

snapins.averaging.lastnsamples.window

.size

5

If VCDx is configured in LAST_N_SAMPLES mode, defines the number of audio samples the probabilities will be averaged over.

See above here: Configuring-Sentinel-VCDx-Averaging-Modes

snapins.averaging.wholecall.min

.processing.requests

2

If VCDx is configured in WHOLE_CALL mode, defines the earliest request for which an average will be calculated on a particular call.

See above here:Configuring-Sentinel-VCDx-Averaging-Modes

sentinel.snapin.execution.mode

PARALLEL

Defines how the three analysis processors (aka snap-ins) in VCDx are executed.

  • PARALLEL: All three analysis processors are executed concurrently.

  • PARALLEL_QC_FIRST: The quality control snap-in is executed first and if it passes the replay and clone snap-ins are executed concurrently.

  • SEQUENTIAL: The quality control snap-in is executed first and if it passes the replay and clone snap-ins are executed sequentially.

sentinel.max.audio.length.millis

7000

The maximum allowed length of audio in milliseconds accepted by the VCDx audio analysis API.

snapins.averaging.cache.ttl.seconds

1800

The lifetime in seconds of entries in the cache that stores probability averages per audio stream.

sentinel.snapin.minimum.pool.size

3

Minimum number of threads required for VCDx to process audio effectively.

sentinel.snapin.number.of.threads

10

The number of worker threads available to analyse audio using the snap-ins. How many threads are used per call depends on the sentinel.snapin.execution.mode.

  • PARALLEL: 3.

  • PARALLEL_QC_FIRST: 2.

  • SEQUENTIAL: 1.

This value must not be set to lower than sentinel.snapin.minimum.pool.size

sentinel.detection.models.list.for.confidence

s1,s2,s3,replay

A list of models used internally by VCDx for which confidence score to BPCER mappings files exist.

This property must not be altered.

sentinel.confidence.indicator.light.upper

.bound.percentage

3.0

Defines the threshold which controls the confidence indicator value returned when no anomaly is detected by VCDx.

If an analysis result of NO_ANOMALY_DETECTED is returned by VCDx and the BPCER associated with the lowest algorithm confidence score is lower than this threshold then a confidenceIndicator of MEDIUM is returned, otherwise a confidenceIndicator of HIGH is returned.

snapin.initialization.number.of.calls

5

The number of calls made to each of the three analysis processors (aka snap-ins) when the VCDx service is started.

A short audio sample is sent to each snap-in this number of times in order to increase the efficiency of the snap-ins.

snapin.initialization.wav.file

audio/snapin-init-file.wav

The audio sample sent to initialize the snap-ins.

This property must not be altered.

arthr.timeout.connect.millis

10000

The connect timeout in milliseconds for the calls to TrustX cloud services.

arthr.timeout.read.millis

5000

The read timeout in milliseconds for the calls to TrustX cloud services.

arthr.timeout.write.millis

5000

The write timeout in milliseconds for the calls to TrustX cloud services.

sentinel.health.check.uri

/api/sentinel/actuator/health

The API path for the TrustX VCDx health check

This property must not be altered.

arthr.jwt.gracePeriod

5000

A grace period in milliseconds used when refreshing the JWT used to authenticate to the Sentinel TrustX Cloud Services.

The token may be refreshed this number of milliseconds earlier than it actually expires.

health.task.arthr.limit

PT12H

The amount of time that Sentinel TrustX Authentication Cloud Service has to be down before the on-premise service will stop processing audio. Defined as a java Duration string.

health.task.sentinel.limit

PT12H

The amount of time that Sentinel TrustX VCDx Cloud Service has to be down before the on-premise service will stop processing audio. Defined as a java Duration string.

sentinel.task.scheduler.pool.size

10

The size of the thread pool which holds threads which check whether cloud services are available.

health.runSchedulerEvery

PT5M

The frequency with which the Sentinel TrustX Cloud Services are checked to see if they are back up after they go down when the service is idle.

The cloud service availability is checked whenever the on-premise VCDx is called to analyse audio.

aws.region

eu-west-1

The AWS region used when a cloud-based deployment of VCDx publishes audio processing statistics to Kinesis.

This property is not used by on-premise deployments of VCDx.

sentinel.kinesis.stream.name

sky-dev-oak-sentinel

The stream name used when a cloud-based deployment of VCDx publishes audio processing statistics to Kinesis.

This property is not used by on-premise deployments of VCDx.

statistics.buffer.capacity

1000

When cloud services are down, statistics cannot be published to the cloud and so they are buffered and provided when the service comes back up. This value defines the number of records that are buffered for statistics reporting when the Sentinel TrustX Cloud Services are down.

statistics.runSchedulerEvery

PT1S

The frequency with which statistics are reported to and processed by the Sentinel TrustX Cloud Services.

voice.clone.transform.config

classpath:voice-clone-transform-config.xml

The location of the file containing the input data template for the Voice Clone snap-in.

This property must not be altered.

voice.clone.init.config

classpath:voice-clone-transform-init.xml

The location of the file containing the input data template for initialising the Voice Clone snap-in.

This property must not be altered.

clone.snapin.num.intra.thread

0

Defines the maximum number of CPUs in a deployment that the Voice Clone snap-in will use. If set to zero the snap-in will use all the resources available.

This property and the inter.thread property for the snap-in must be set to the same value.

clone.snapin.num.inter.thread

0

Defines the maximum number of CPUs in a deployment that the Voice Clone snap-in will use. If set to zero the snap-in will use all the resources available.

This property and the intra.thread property for the snap-in must be set to the same value.

clone.snapin.voice.detection.models.ids

s1,s2,s3

The list of algorithm models supported by the Voice Clone snap-in.

This property must not be altered.

clone.snapin.target.device

cpu or gpu for a GPU-specific deployment

The target processor type for the Voice Clone snap-in.

voice.qc.transform.config

classpath:voice-qc-transform-config.xml

The location of the file containing the input data template for the Quality Control snap-in.

This property must not be altered.

voice.qc.init.config

classpath:voice-qc-transform-init.xml

The location of the file containing the input data template for the Quality Control snap-in.

This property must not be altered.

qc.snapin.num.intra.thread

0

Defines the maximum number of CPUs in a deployment that the Quality Control snap-in will use. If set to zero the snap-in will use all the resources available.

This property and the inter.thread property for the snap-in must be set to the same value.

qc.snapin.num.inter.thread

0

Defines the maximum number of CPUs in a deployment that the Quality Control snap-in will use. If set to zero the snap-in will use all the resources available.

This property and the intra.thread property for the snap-in must be set to the same value.

qc.snapin.target.device

cpu or gpu for a GPU-specific deployment

The target processor type for the Quality Control snap-in.

qc.template.inference.duration

4

This defines the minimum amount of speech required to trigger a replay and a voice cloning inference

voice.replay.transform.config

classpath:voice-replay-transform-config.xml

The location of the file containing the input data template for the Replay snap-in.

This property must not be altered.

voice.replay.init.config

classpath:voice-replay-transform-init.xml

The location of the file containing the input data template for the Replay snap-in.

This property must not be altered.

replay.snapin.num.intra.thread

0

Defines the maximum number of CPUs in a deployment that the Replay snap-in will use. If set to zero the snap-in will use all the resources available.

This property and the inter.thread property for the snap-in must be set to the same value.

replay.snapin.num.inter.thread

0

Defines the maximum number of CPUs in a deployment that the Replay snap-in will use. If set to zero the snap-in will use all the resources available.

This property and the intra.thread property for the snap-in must be set to the same value.

replay.snapin.target.device

cpu or gpu for a GPU-specific deployment

The target processor type for the Replay snap-in.

snapins.td.mode


A flag which, if set to true or false, determines whether the snap-ins will run in Text-Dependent mode.

A text dependent mode parameter may be supplied in the audio analysis API. If supplied, the value in the request will override whatever value is configured here.

This setting is only required if the audio supplied to the snap-ins is a one-off spoken phrase and not part of an audio stream. If set to true the snap-ins will trim silence from the start and end of the audio before processing.

trustx.proxyHost


Configure the host as a string value for the VCDx proxy.

trustx.proxyPort


Configure the port number as an integer value for the VCDx proxy.

VGSx Tester Properties

Property

Default Value

Description

server.port

8080

The HTTP port on which the service will listen for REST requests.

server.ssl.enabled

false

Whether SSL is enabled for requests to this service. If true the additional SSL parameters below must be provided.

server.ssl.ciphers

TLS_AES_256_GCM_SHA384,

TLS_AES_128_GCM_SHA256,

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

Supported SSL ciphers

server.ssl.enabled-protocols

TLSv1.1,TLSv1.2,TLSv1.3

Support SSL protocols

server.ssl.key-store

None

The location of the Keystore file with the public/private key pair and certificate for TLS.

server.ssl.key-store-password

None

The password to the TLS Keystore.

server.ssl.keyStoreType

None

The type of the TLS Keystore, for example JKS or PKCS12

server.ssl.keyAlias

None

The alias of the public key in the TLS Keystore

tomcat.useCipherSuiteOrder

true

  • true: Tomcat enforces the server's preferred order of cipher suites during SSL/TLS handshakes.

  • false: The client’s preferred order of cipher suites is used during SSL/TLS handshakes.

logging.config

file:${CONF_DIR}/log4j2.xml

The location of the log file.

logging.level.com.daon.sentinel.vgs

INFO

The log level for the Daon classes within the service.

logging.level.org.springframework.security

INFO

The log level for the Spring Framework security classes within the service.

logging.level.org.springframework.web

INFO

The log level for the Spring Framework web classes within the service.

cors.allowed.origins

http://localhost:5173,

http://localhost:8080,

http://localhost:8081,

https://sentinel-webapp-test.identityx-cloud.com, https://sentinel-vgsx-tester-test.identityx-cloud.com, https://sentinel-vgsx-test.identityx-cloud.com

The list of origins that are permitted to make cross-origin requests to the server.

spring.jackson.default-property-inclusion

NON_NULL

Controls the inclusion of properties during serialization. Configured with one of the values in Jackson's JsonInclude.Include enumeration.

spring.main.banner-mode

'off'

Controls whether the banner is displayed at startup and can be set to off, console, or log.

spring.mvc.async.request-timeout

3600000

Sets the amount of time in milli-seconds before asynchronous requests time out. This property defaults to a high value to ensure that the streaming API doesn’t disconnect due to a time-out when streaming long files.

spring.mvc.pathmatch.matching-strategy

ant-path-matcher

Configures the strategy used for matching URL paths to controller methods.

This property must not be altered.

spring.profiles.active

prod

Specifies the profiles that are currently active, allowing for different configurations to be used based on the environment.

This property must not be altered.

springdoc.packagesToScan

com.daon.sentinel.vgs.controller

Specifies the packages to be scanned for API documentation generation using Springdoc OpenAPI.

This property must not be altered.

springdoc.pathsToMatch

/**

Specifies the URL paths to be included for API documentation generation using Springdoc OpenAPI.

This property must not be altered.

call.manager.any.call.interval

7200

The maximum time in seconds that information about any call with a status other than ENDED is persisted within the VGSx Tester after the time the call was last updated.

call.manager.ended.call.interval

900

The maximum time that a call with a status of ENDED is persisted within the VGSx Tester after the call was last updated.

call.manager.sleep.interval

1000

How often in milliseconds does the call manager perform a call clean-up operation.

sentinel.vgs.host.name

sentinelVGSTester

The value of the hostname parameter that is sent to VGSx when starting and stopping a call. This identifier is used by VGSx to reference the callback URL for streaming audio as described above in this document, here: https://daon.atlassian.net/wiki/spaces/SKY/pages/edit-v2/3616473145#Orkaudio-Server-Locations

If this property is altered, the corresponding orcx.live_streaming_url_{name} property in VGSx must be altered. The {name} part of this property must match the hostname supplied by the VGSx Tester.

sentinel.vgs.prem.call.command.path

/orktrack/command

The path to the API in the on-premise VGSx which is used to announce when a call is started or stopped by the VGSx Tester.

This property must not be altered.

sentinel.vgs.prem.domain

http://localhost:9003

The domain of the on-premise VGSx service to which this VGSx Tester announces calls.

sentinel.vgs.test.s3.support

false

Whether S3 can be used a repository for audio files.

This property must not be altered.

On-premise deployments do not support S3 as a repository for audio files, only a local file system or (S)FTP server.

sentinel.vgs.test.build.version

Version specific

The build version reported by the ping API.

This property must not be altered.

sentinel.vgs.test.service.name

Sentinel VGS Tester

The service name reported by the ping API.

This property must not be altered.

sentinel.vgs.test.ftp.password

None

The password used by VGSx Tester when fetching a file from an FTP server.

sentinel.vgs.test.ftp.username

None

The username used by VGSx Tester when fetching a file from an FTP server.

sentinel.vgs.test.sftp.password

None

The password used by VGSx Tester when fetching a file from an SFTP server.

sentinel.vgs.test.sftp.username

None

The username used by VGSx Tester when fetching a file from an SFTP server.

sentinel.vgs.trustx.deployment

false

Configures whether this is an on-premise or TrustX deployment. The default of value of false indicates that this is an on-premise deployment.

This property must not be altered.

sentinel.vgs.trustx.call.command.path

/sentinelVGS/orktrack/command

The path to the TrustX API in VGSx which is used to announce when a call is started or stopped by the VGSx Tester.

By default an on-premise deployment of VGSx Tester will use the sentinel.vgs.prem.call.command.path property to identify this endpoint. To target a VGSx deployed in TrustX and use this property, the start call API request must contain a vgsDeploymentType of TRUSTX.

sentinel.vgs.trustx.domain

https://${sentinel.vgs.trustx.tenant}

.${sentinel.vgs.trustx.region}

.trustx.com

The domain of the TrustX VGSx service to which this VGSx Tester announces calls.

By default an on-premise deployment of VGSx Tester will use the sentinel.vgs.prem.domain property to identify this endpoint. To target a VGSx deployed in TrustX and use this property, the start call API request must contain a vgsDeploymentType of TRUSTX.

sentinel.vgs.trustx.tenant

None

The tenant ID of the TrustX VGSx service.

sentinel.vgs.trustx.region

None

The region of the TrustX VGSx service.

sentinel.vgs.webClient.readTimeoutInSeconds

20

Read time-out in seconds for the connection from the VGSx Tester to VGSx to announce calls.

sentinel.vgs.webClient.writeTimeoutInSeconds

20

Write time-out in seconds for the connection from the VGSx Tester to VGSx to announce calls.

sentinel.vgs.webClient.connectTimeoutMillis

5000

Connection time-out in milliseconds for the connection from the VGSx Tester to VGSx to announce calls.

streaming.threadpool.core.pool.size

10

The core size of the thread pool used for handling audio streaming calls, determining the number of threads kept in the pool even when they are idle.

The streaming.threadpool properties define how many calls can be streamed from the VGSx Tester simultaneously.

streaming.threadpool.max.pool.size

10

The maximum size that the thread pool for handling audio streaming calls is allowed to reach, governing the upper limit of concurrent threads available for handling streaming operations.

streaming.threadpool.queue.capacity

-1

Defines the capacity of the queue used by the thread pool for handling audio streaming calls to hold tasks that are awaiting execution when all threads are busy. This capacity determines how many tasks can be queued before additional tasks are rejected or handled according to the configured rejection policy.

The default value of -1 means that there is no limit on the number of tasks that can be queued, allowing tasks to wait indefinitely until a thread becomes available to execute them.

streaming.threadpool.allow.core.thread.timeout

false

Determines whether the core threads in the thread pool for handling audio streaming calls are eligible for timeout and termination when idle.

  • Setting it to true allows core threads to timeout and terminate when they have been idle for a certain period.

  • Setting it to false prevents core threads from timing out and ensures they remain alive even when idle.

streaming.threadpool.keep.alive.seconds

-1

The amount of time that excess threads (those beyond the core pool size) in the thread pool for handling audio streaming calls remain alive when idle before they are terminated.

The default value of -1 means that excess threads in the thread pool will not be terminated due to idleness. In other words, there is no specific timeout period set for these threads, and they will remain alive indefinitely until either the application shuts down or the thread pool configuration changes.