Skip to main content

Uniphore Help Center Portal

General Configuration

This topic contains detailed configuration guidelines to enable call recording for Cisco Active – steps 1 to 3 provide general config details, steps 4 to 7 cover specifics:

Step

Reference

Description

1

Integration Adapter Config

Configure the Integration Adapter on the Collector.

2

RTP Collector Config

Configure the RTP Collector on the Collector.

3

SIP RAM Config

Configure the SIP RAM on the Collector.

4

Active Recording – CUCM Config

Set up Active Recording using the CUCM.

5

Secure Active Recording – CUCM Config

Set up Secure Active Recording using the CUCM.

6

Cisco Secure JTAPI – CUCM Config

Set up Secure JTAPI connection using the CUCM.

7

JTAPI CTI Server Config

Configure the JTAPI Connector CTI Server on the Collector.

Configure the Integration Adapter

The Integration Adapter configuration is specified in IntegrationAdapter.ini and Identity.ini. These files are automatically generated with default values when the Collector is started for the first time.

IntegrationAdapter.ini
Example
[General]
DownstreamAPIVersion=0
RecordByDefault=1

[JetStream]
ServerURL=nats://u-capture.example.com:4222

[VoiceActivityDetection]
WindowSizeMS=10
UseShortTermEnergy=1
MinEnergy=0.000060
UseZeroCrossingRate=0
MinZeroCrossingRate=0.000001
MaxZeroCrossingRate=0.187400
UseActivityTriggering=0
MinActivityMS=20
ActivityEndHangTimeMS=5000

[Licence]
RecordPoolChannels=1000
PP0=P9XCS8KLATSJNHGN

[INSTALLED PPS]
PP0=/usr/lib/libPP_Matcher.so

[Phones]
SegLengthSecs=9999999
DetectNewItems=1
Settings

Only configuration settings relevant to this Cisco Active integration are listed here. For all other settings, leave these set to their default values.

Note

2024.2 introduced the support of NATS JetStream, therefore the NATS Streaming settings (STAN and STANChannels) have been depreciated, Uniphore recommends using the new JetStream settings however the depreciated NATS Streaming settings are still available. For the depreciated STAN settings and an example of those settings in context see Depreciated NATS Streaming Settings.

Setting

Description

[General]DownstreamAPIVersion

Controls the format of messages sent downstream to consuming applications, either:

  • Set to 0 (default) to use the original message format of metadata for metadata, and media.<call_id> for media.

  • Set to 1 to use the format call.metadata.tenant.<tenant_id>.call.<call_id> for metadata and call.media.tenant.<tenant_id>.call.<call_id> for media.

[General]RecordByDefault

Set to 1 to enable or 0 to disable recording by default, for newly discovered devices. If not specified, the default value is 1 (enabled).

[JetStream]ServerURL

The URL of the NATS server. In the most simple of cases, this will be the NATS server used by the Audio Connector.

[JetStream]Username

If the NATS server is configured for user based authentication, specify the username here. If not specified, no value is used.

[JetStream]Password

If the NATS server is configured for user based authentication, specify the password here. If a password is used, the NATS server should also be configured to use TLS to prevent the password from being sent over the network in the clear. If not specified, no value is used.

[JetStream]Token

If the NATS server is configured for token based authentication, specify the token here. If a token is used, the NATS server should also be configured to use TLS to prevent the token from being sent over the network in the clear. If not specified, no value is used.

[JetStream]TrustedCACertificatesFileName

If the NATS server is configured to use TLS, specify the trusted CA certificate chain here. This will be the CA certificate chain that was used to sign the server certificate. If not specified, no value is used.

[JetStream]ClientCertificateChainFilename

If the NATS server is configured to use TLS, specify the trusted CA certificate chain here. This will be the CA certificate chain that was used to sign the server certificate. If not specified, no value is used.

[JetStream]ClientCertificateKeyFilename

If the NATS server is configured to use TLS with mutual-authentication, specify the client private key here. If not specified, no value is used.

[JetStream]SkipServerVerification

If the NATS server is configured to use TLS, disables verification of the server certificate. Not recommended. If not specified, the default value is 0.

[VoiceActivityDetection]

This section of the ini file is used to define the VAD settings. If the default configuration values don’t work for the customer, it’s recommended that you disable VAD, then record and export some example calls to WAV. These files can then be passed through a test tool that will allow the trial of different configuration values to ensure the correct parts of the call are identified as voice. The best fit configuration can then be applied to the Collector. Please contact the Uniphore Development Support Team for details.

Note that to disable Voice Activity Detection, simply disable the use of both Short-Term Energy and Zero Crossing Rate.

[VoiceActivityDetection] WindowSizeMS

The size of the window, in milliseconds, on which to perform VAD. The default is 10 milliseconds – we don’t recommend any other value at present.

[VoiceActivityDetection] UseShortTermEnergy

Enables/disables use of the Short-Term Energy algorithm. By default, this is enabled (1).

[VoiceActivityDetection]MinEnergy

The minimum energy required for the window to be considered as voice activity. Expressed as a decimal value between zero and one. Zero being absolute silence and one being maximum loudness. The default is 0.000060. This may seem like a low value, but generally background noise will be lower than this.

[VoiceActivityDetection] UseZeroCrossingRate

Enables/disables use of the Zero Crossing Rate (ZCR) algorithm. Use of ZCR is only recommended if it’s required that tones on the channel do not trigger voice recording. If this is the case, ZCR should be used in conjunction with STE. By default, ZCR is disabled (0).

[VoiceActivityDetection] MinZeroCrossingRate

The minimum Zero Crossing Rate for the window to be considered as voice activity. The default is 0.000001 . Human speech has a low ZCR, increasing this value may prevent voice from being detected. A lower limit is required because a ZCR of zero indicates that the sine wave is not crossing zero i.e. the waveform is flatline (silence).

[VoiceActivityDetection] MaxZeroCrossingRate

The maximum Zero Crossing Rate for the window to be considered as voice activity. The default is 0.187400.

[VoiceActivityDetection] UseActivityTriggering

Enables/disables use of activity triggering. By default this is disabled (0). If enabled (1), a voice recording will not be created until voice activity is detected on the channel. Likewise, the voice recording will be ended on cessation of voice activity on the channel. If disabled (0), voice recordings will be created and ended based on signalling as normal.

[VoiceActivityDetection] MinActivityMS

The minimum duration of voice activity, in milliseconds, that is required to invoke voice recording. The default is 20 milliseconds. This value must be a multiple of the window size and must be between 10 and 300 milliseconds.

[VoiceActivityDetection] ActivityEndHangTimeMS

The duration, in milliseconds, to continue the voice recording after voice activity has ceased. The default is 5000 milliseconds (5 seconds). This value must be a multiple of the window size. This prevents pauses in speech from causing excessive stopping and restarting of recording.

[Licence]RecordPoolChannels

Defines how many concurrent channels can be captured by the Collector. Calls over this value will be discarded. If not specified, the default value is 1000.

[Licence]PP<0…N>

PP licence code for the Collector. This will have been provided as part of the customer’s deployment information from Uniphore.

[Phones]SegLengthSecs

The maximum recording segment length in seconds. After this duration, recordings will be split.

Note that for call segmentation to work in Communication Recording Agent, this should be set to an extremely high value for example 9999999. This will prevent call segmentation from being carried out by the Collector.

[Phones]DetectNewItems

Enable (1) or disable (0) the automatic detection (discovery) of new devices. The default is enabled (1). In general, leave this set to 1 (enabled) for initial system setup and device discovery – if the customer then wants to “lock down” their recordable devices, this can be changed to 0 (disabled).

[Recording]MaxPacketsInQueue

The maximum number of packets to queue for processing before discarding packets. If not specified, the default value is 65536.

[Recording]MaxPacketLength

The maximum packet length to process in bytes. If not specified, the default value is 9018 (18 bytes for the Ethernet header and FCS, plus a 9000 byte MTU).

[Recording]MediaFlushTimeoutMS

The maximum interval (in milliseconds) to flush media data to NATS Streaming. If not specified, the default value is 10000 (10 seconds). Realtime streaming solutions should set the value to 100.

[Recording]Triggers

Set the comma separated list for the priority of recording triggers, valid options are CTI, Activity, and Signalling.

Under normal operation, the first trigger listed is used – if the source of that trigger fails then the next working trigger source in the list is used to determine when to trigger recording.

[Recording]DelayedCallEndTimeoutMS

Determine how long (in milliseconds) to continue capturing each call after the call end signal has been received, this is to allow any remaining audio to be captured. If not specified, the default value is 1000 (1 second)

[Recording]Policy

Determine which calls should be recorded, either internal extension to extension calls (Internal), external calls (External), or both internal and external calls (All). If not specified, the default value is to record just external calls (External).

This setting replaces the now depreciated [Licence]RecordInternalCalls setting.

[CallSuppression]MaxSuppressCount

The maximum number of times a given recording can be suppressed. If not specified, the default is 3 times (3).

[CallSuppression]MaxSuppressTime

The maximum length of time a given period of suppression will last. If not specified, the default is 15 seconds (15).

[CallSuppression]StopCapture

When call capture is suppressed, send (true) or do not send (false) a request that the audio feed from the 3rd party system be stopped. If not specified, the default is to send the request (true).

[CallSuppression]StopOnCallEnd

Determine if the suppression for a device is ended when the suppressed call on that device ends. If not specified, the default is false.

[CTIServer]MaxConnections

The maximum number of concurrent CTI Server connections to accept. If not specified, the default value is 20.

Depreciated NATS Settings

Setting

Description

[STAN]ServerURL

Set to the URL of the NATS Streaming Server associated with this Collector.

[STAN]ClusterID

Defines the NATS Streaming cluster ID – must be set to stan-cluster.

[STAN]ClientID

A string that identifies this NATS Streaming client. The Collector ID is appended to this to ensure it is unique. If not specified, the default value is RedBox-IntegrationAdapter

[STAN]Username

If the NATS Streaming Server is configured for user based authentication, specify the username here. If not specified, no value is used.

[STAN]Password

If the NATS Streaming Server is configured for user based authentication, specify the password here. If a password is used, the NATS Streaming Server should also be configured to use TLS to prevent the password from being sent over the network in the clear. If not specified, no value is used.

[STAN]SkipServerVerification

If the NATS Streaming Server is configured to use TLS, disables verification of the server certificate. Not recommended. If not specified, the default value is 0.

[STAN]CertificateChainFilename

If the NATS Streaming Server is configured to use TLS, specify the trusted CA certificate chain here. This will be the CA certificate chain that was used to sign the server certificate. If not specified, no value is used.

[STAN]ClientCertificateChainFilename

If the NATS Streaming Server is configured to use TLS, specify the client certificate chain here. This will be the client certificate plus the CA certificate chain used to sign the client certificate. If not specified, no value is used.

[STAN]ClientCertificateKeyFilename

If the NATS Streaming Server is configured to use TLS, specify the client private key here. If not specified, no value is used.

[STAN]Ciphers

If the NATS Streaming Server is configured to use TLS, this value can be used to restrict the allowed ciphers. If not specified, no value is used.

An example of the depreciated NATS Streaming settings:

[STAN]
ServerURL=nats://abcd.dev.mycompany.com:4222
ClusterID=stan-cluster
ClientID=RedBox-IntegrationAdapter-1
ConnectionTimeoutMS=15000
RetryWaitMS=15000
Username=
Password=
SkipServerVerification=0
CertificateChainFilename=
ClientCertificateChainFilename=
ClientCertificateKeyFilename=
Ciphers=

[STANChannels]
Alerts=RedBox.Collector.Alert
EventLogs=RedBox.Collector.EventLogs
ConfigRequests=RedBox.Collector.ConfigRequests
ConfigEvents=RedBox.Collector.ConfigEvents
Media=media
Metadata=metadata
Identity.ini
Example
TenantID=dcedc429-11a9-4408-84a7-c781363c62e1
TenantName=test
CollectorID=0f89817f-e324-48ca-bcb6-3d61f292755b
CollectorName=collector1
Settings

TenantId

Set to the unique identifier of the tenant associated with this Collector. If no tenants are defined, the default test tenant will be used dcedc429-11a9-4408-84a7-c781363c62e1

TenantName

The name of the tenant to which the Collector belongs (optional).

CollectorId

The unique identifier for this Collector. A UUID will be automatically generated and written to Identity.ini on first start.

CollectorName

The name of the Collector (optional).

Settings
Depreciated NATS Streaming Settings
RTP Collector Config

The RTP Collector works in sync with the SIP RAM. The SIP RAM manages the SIP dialog and the RTP Collector owns the RTP session.

The RTP Collector configuration is specified in RTPCollector.ini file – The file is automatically generated with default values on first start. An example is shown below:

[MediaPorts]
Min=25000
Max=65535

[Suppression]
StartSequence=*123
StopSequence=#123

[SRTCP]
UseSRTCPWhenSRTP=1

[{55D59A72-47FE-49E8-AC77-33C07E550ECA}]
Use=0
IPv4Address=169.254.253.20

[{3EEF4061-C8E4-46FC-9DA7-E61766C04B01}]
Use=1
IPv4Address=10.0.2.15 
Settings

Only config settings relevant to this Cisco Active integration are listed here. For all other settings, leave these set to their default values.

Setting

Description

[MediaPorts]Min

The beginning of the media port range. Default is 25000.

[MediaPorts]Max

The end of the media port range. Default is 65535.

[Suppression]StartSequence

The sequence of DTMF digits required to start audio suppression on the current call. Default is empty (disables the feature).

[Suppression]StopSequence

The sequence of DTMF digits required to stop audio suppression on the current call. Default is empty (disables the feature). Should not be the same as the start sequence for obvious reasons.

[SRTCP]UseSRTCPWhenSRTP

Enables/disables the expectation that RTCP will also be encrypted when SRTP is being used for a given session. If not specified, defaults to 1.

[<adapter name>]IPv4Address

Automatically populated with the IPv4 address of the given network adapter. Aids adapter identification. The RTP Collector does not read this value.

[<adapter name>] AdvertisedIPv4Address

Overrides the IPv4 address advertised for the given network adapter. This is useful when you need an ingress address that is not an address belonging to the RTP Collector itself. If not specified, then defaults to the adapter’s IPv4 address.

SIP RAM Config

The SIP RAM configuration is specified in SIP_RAM.ini file. An example is shown below.

[SIPRAMSettings]
IP=localhost
Protocol=any
SIPPort=5060
MaxConcurrentCalls=1000

[SecureConnections]
ServerCertificatePath=/etc/redbox/config/
ServerKeyPath=/etc/redbox/config/

[SRTP]
Disabled=0
Mode=2

[RTPCollector1]
Host=loclahost
Port=6500
Timeout=1000

[Codecs]
Count=23
0=G.711 mu-law
1=GSM 06.10723.1
3=ADPCM 32 kbit/s
4=ADPCM 64 kbit/s
5=G.711 a-law
6=G.722
7=G.728
8=ADPCM 44.1 kbit/s
9=ADPCM 88.2 kbit/s
10=G.729
11=G.722.1 24 kbit/s 16 Khz
12=G.722.1 32 kbit/s 16 Khz
13=G.722.1 24 kbit/s 32 Khz
14=G.722.1 32 kbit/s 32 Khz
15=G.722.1 48 kbit/s 32 Khz
16=G.726 16 kbit/s
17=G.726 24 kbit/s
18=G.726 32 kbit/s
19=G.726 40 kbit/s
20=AMR Narrow-Band
21=AMR Wide-Band
22=Opus
Settings

Only config settings relevant to this Cisco Active integration are listed here. For all other settings, leave these set to their default values.

Setting

Description

[SIPRAMSettings]Protocol

The SIP transport protocol to use (udp, tcp, tls, or any). Default is udp. Can also be used to configure multiple protocols. Format UDP TCP.

[SIPRAMSettings]SIPPort

The port to listen for SIP communications on. Default is 5060.

[SIPRAMSettings] MaxConcurrentCalls

The number of active sessions allowed before new sessions will be rejected with a SIP 503 response. Default is 1000.

[SecureConnections] ServerCertificatePath

The path to the server certificate that identifies the Uniphore SIP User Agent. This is only required where TLS or DTLS transports are in use. The certificate file must be PEM encoded.

Certificates for any trusted CAs should be placed in TrustedCAs file. Again, these certificate files must be PEM encoded. Clients connecting via TLS or DTLS will be verified against these CAs.

[SecureConnections] ServerKeyPath

The path to the private key for the Uniphore SIP User Agent. This is only required where TLS or DTLS transports are in use. The key file must be PEM encoded.

[SRTP]Disabled

Disables use of SRTP. If not specified, defaults to 0.

[SRTP]Mode

Specifies the negotiation mode for setting up SRTP. If not specified, defaults to 2 (best effort). Acceptable values are:

  1. mandatory – if the peer does not support SRTP, the session will fail.

  2. best effort – if the peer supports SRTP, SRTP will be used.

  3. fallback

[Codecs]

This section contains the enabled codecs in priority order. Values must be entered as described below (case and whitespace sensitive). Possible values are as follows:

  • G.711 a-law, G.711 mu-law

  • G.722, G.722.1 24 kbit/s 16 Khz, G.722.1 32 kbit/s 16 Khz,

    G.722.1 24 kbit/s 32 Khz, G.722.1 32 kbit/s 32 Khz ,

    G.722.1 48 kbit/s 32 Khz

  • G.723.1

  • G.726 16 kbit/s , G.726 24 kbit/s , G.726 32 kbit/s , G.726 40 kbit/s

  • G.728

  • G.729

  • ADPCM 32 kbit/s, ADPCM 44.1 kbit/s,

    ADPCM 64 kbit/s, ADPCM 88.2 kbit/s

  • AMR Narrow-Band, AMR Wide-Band

  • GSM 06.10

  • Opus