Configuration
This topic contains detailed configuration guidelines to enable call recording for Avaya Aura.
Note
Only configuration settings relevant to this Avaya Aura integration are listed here. For all other settings, leave these set to their default values.
Step | Reference | Description |
|---|---|---|
1 | Configure the Integration Adapter on the Collector (IntegrationAdapter.ini and Identity.ini). | |
2 | Configure the RTP Collector (RAM) on the Collector (RAM.ini and RTPCollector.ini). | |
3 | Configure the Avaya Active CTI Server on the Collector (CTIServer_AvayaActive.config). | |
4 | Configure the Avaya SMS CTI Server on the Collector (CTIServer_AvayaSMS.config), optional. |
Also see:
Avaya Aura Recording Control - Determine recording control once the integration has been configured.
Log Files - Configure the logging levels for the various Collector components.
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
[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=4BFDSLVELC382EE4 [INSTALLED PPS] # Library path of all installed PPs [PP0-PPn] PP0=/usr/lib/libPP_Matcher.so [Phones] SegLengthSecs=9999999
Only configuration settings relevant to this Avaya Aura 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 Settings.
[General]
[General]DownstreamAPIVersion
Controls the format of messages sent downstream to consuming applications, either:
Set to
0(default) to use the original message format ofmetadatafor metadata, andmedia.<call_id>for media.Set to
1to use the formatcall.metadata.tenant.<tenant_id>.call.<call_id>for metadata andcall.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]
[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 with mutual-authentication, 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.
[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
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 signaling 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]
[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>
One or more PP license codes that tell the Integration Adapter which PP(s) to load and what mode they should operate in. This will have been provided as part of the customer’s deployment information from Uniphore.
[Installed PPS]
[Installed PPS]PP<0…N>
The absolute path to one or more PP libraries. The order which PP libraries appear in this list affects the priority order when packets to be processed are passed to the PPs. This will have been provided as part of the customer’s deployment information from Uniphore.
[Phones]
DefaultRecordOnDemandState
Set to Recorded.
[Phones]SegLengthSecs
The maximum recording segment length in seconds. After this duration, recordings will be split. If not specified, the default value is 3600 (1 hour).
Note
For call segmentation to work in Communication Recording Agent, SegLengthSecs should be set to an extremely high value (e.g. 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).
[Capture]
[Capture]VLANTaggedTraffic
Enables (1) or disables (0) capture of VLAN tagged packets. If not specified, the default is 1 (enabled).
[Recording]
DelayRecordingStartUntilMediaIsReceived
Set to 1 to only delay the start of CTI calls until media is recieved.
[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).
Note
This setting replaces the now depreciated [Licence]RecordInternalCalls setting.
[CallSuppression]
[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]
[CTIServer]MaxConnections
The maximum number of concurrent CTI Server connections to accept. If not specified, the default value is 20.
[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]ConnectionTimeoutMS
The duration in milliseconds to wait for a connection attempt to the NATS Streaming server to succeed before considering it as timed-out. If not specified, the default value is 15000 (15 seconds).
[STAN]RetryWaitMS
The duration in milliseconds to wait between attempts to connect to the NATS Streaming server. If not specified, the default value is 15000 (15 seconds).
[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.
Depreciated NATS Streaming settings example:
[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
TenantID=dcedc429-11a9-4408-84a7-c781363c62e1 TenantName=test CollectorID=0f89817f-e324-48ca-bcb6-3d61f292755b CollectorName=collector1
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).
Configure the RTP Collector
The RTP Collector is used to capture call audio and configuration is specified in two configuration files, RAM.ini and RTPCollector.ini – these files are automatically generated with default values on first start. Examples are shown below:
RAM.ini
[RTPCollectorSettings] RecorderHost=localhost
[RTPCollectorSettings]RecorderHost
The hostname or IP address of the Integration Adapter. If not specified, defaults to localhost.
RTPCollector.ini
[MediaPorts] Min=25000 Max=65535 [Suppression] StartSequence=*123 StopSequence=#123 [SRTCP] UseSRTCPWhenSRTP=1 [docker0] Use=0 IPv4Address=10.0.2.15 [eth0] Use=1 IPv4Address=10.0.2.42 IPv6Address=2001:db8::1234:5678
Note
Only configuration settings relevant to this Avaya Aura integration are listed here. For all other settings, leave these set to their default values.
[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 (enabled).
[<adapter-name>]
The RTP Collector discovers all available network adapters on start-up – they’re listed by their device name. The adapter’s IPv4 address is displayed for ease of identification. By default, all adapters are enabled for media traffic. Enable (Use=1, default) or disable (Use=0) adapters as needed.
It’s important that only adapters reachable by the telephony system are used. Adapters are load balanced, so sessions will be evenly distributed across all enabled adapters.
[<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.
Configure the Avaya Active CTI Server
The Avaya Active CTI Server is used to capture call metadata and configuration is specified in the CTIServer_AvayaActive.config file. A sample file is provided in SampleConfigFiles, and examples are provided in this topic (also, see Complete Sample Configuration).
[recorder]
Use this section to set up the CTI connection between the Collector and the Avaya Active CTI Server.
The Avaya Active CTI server is designed to only establish a CTI link with one Collector and will mostly run on the same server as the Collector. If the Collector is located on a different server than CTI server, update the recorderIPAddress to specify the location of the Collector.
<recorder>
<recorders>
<add logicalRecorderId="1">
<add recorderIpAddress="127.0.0.1" />
</add>
</recorders>
</recorder>
[Avaya]
This section contains the following subsections:
Subsection | Reference | Description |
|---|---|---|
dmcc | See "[dmcc] Subsection" below. | Define the TCP/IP connection with the DMCC interface on the AES |
device | See "[device] subsection" below. | Define the parameters used by the CTI Server when establishing device monitors and device registrations. |
switches | See "[switches] Subsection" below. | Define a list AES Switch connections to use. |
Note
The AES protocol version is now automatically negotiated between the Avaya Active CTI Server and the AES. Previously for encrypted calls and secure connections, a
protocolVersionattribute needed to be added to the CTIServer_AvayaActive.config file. For deployments which used to manually specify the AES protocol version, it is necessary to delete theprotocolVersionXML attribute from the configuration file before the CTI Server will start.In the device subsection, the
controllableByOtherSessionsand instance configuration options have been removed. For deployments where these were specified, it is necessary to remove them from CTIServer_AvayaActive.config before the CTI Server will start.
[dmcc] Subsection
The dmcc subsection defines the connection between the CTI Server and DMCC service. Settings are defined below, depending on your connection type.
DMCC – Standard Connection—for recording standard audio and a standard DMCC connection:
<avaya> ... <dmcc aesAddress="170.10.2.10" useSsl="false" username="ctiuser" password="CTIUser1234" dmccPort="4721 " sessionDuration="180" sessionCleanupDelay="60" /> </avaya>
DMCC – Secure Connection—for recording encrypted audio and a secure DMCC connection:
<avaya> ... <dmcc aesAddress="170.10.2.10" useSsl="true" username="ctiuser" password="CTIUser1234" dmccPort="4722" serverName="servername" sessionDuration="180" sessionCleanupDelay="60" clientCertificateFile="..\Container\config\redboxrecorder.p12" clientCertificatePassword="" /> ... </avaya>
Note
To use a secure CTI Server connection, you also need valid security certificates installed on the Collector, CTI server, and AES/DMCC server.
[dmcc]aesAddress
The IP address of the Avaya AES.
[dmcc]useSsl
Declares the use of SSL. If not specified, defaults to false.
[dmcc]username
The username of the CTI user configured on the AES. Note that for Multiple Registration recording, systems with multiple Collectors must use a separate CTI user for each Collector.
[dmcc]password
The password of the CTI user configured on the AES.
[dmcc]dmccPort
The TCP port of the DMCC interface on the AES. For a standard connection use 4721 or 4722 for a secure connection. If not specified defaults to 4721.
[dmcc]sessionDuration
The length of time (in seconds) that the connection to the AES will be maintained. If not specified defaults to 180.
[dmcc]sessionCleanupDelay
The length of time (in seconds) before the AES will clean up a disconnected session. If not specified defaults to 60.
[dmcc]serverName
The name of the AES/DMCC server.
[dmcc]clientCertificateFile
The full path to the certificate file. Note that this is required for secure connection.
[dmcc]clientCertificatePassword
The password for the supplied certificate. Note that this is required for secure connection.
[device] Subsection
This subsection defines the parameters used by the CTI Server when establishing device monitors and device registrations.
Note
The controllableByOtherSessions and instance configuration options have been removed. For deployments where these were specified, it is necessary to remove them from CTIServer_AvayaActive.config before the CTI Server will start.
<avaya>
...
<device
multiRegistrationModeIndependent="true"
startRecordingOnDeliveredEvent="false"
startRecordingOnDeliveredEventTimeout="60">
<codecs>
<add id="g711A"/>
<add id="g711U"/>
<add id="g729"/>
</codecs>
<encryptionSuites>
<add id="none"/>
</encryptionSuites>
</device>
...
</avaya>[device]multiRegistrationModeIndependent
Defines the registration mode for Multiple Registration recording – true (Independent), false (Dependent).
Uniphore recommends this is always set to true (Independent) which allows the Collector to register the additional instance of the physical device being recorded, without the need for that device to be registered (logged on) with the CM.
[device]startRecordingOnDeliveredEventTimeout
Only applies if startRecordingOnDeliveredEvent is enabled. If a call is automatically forwarded to an un-recorded device, the Collector stops recording the call once the timeout is met. If not specified defaults to 60 seconds.
[device]startRecordingOnDeliveredEvent
If true, the recordings start as soon as the destination phone rings. If false, they start when the call is answered. If not specified defaults to false.
[device]codecs
Determines which codecs should be requested for recording. There is no limit, but all values specified must be valid. The configured list is taken as the order of preference from top most preferred to bottom least preferred. Supported codec values are: g711A, g711U, g722, g723, g729, g729A.
[device]EncryptionSuites
For recording encrypted calls, declare the encryption suite. Valid encryption suites are:
srtp-aescm128-hmac80srtp-aescm128-hmac32srtp-aescm128-hmac80-unauthsrtp-aescm128-hmac32-unauthsrtp-aescm128-hmac80-unencsrtp-aescm128-hmac32-unencsrtp-aescm128-hmac80-unenc-unauthsrtp-aescm128-hmac32-unenc-unauthaesnone
[switches] Subsection
This subsection defines the configuration for each Switch Connection used by the CTI Server. Each Switch Connection is identified by its name and has its own configuration for agent groups, Multiple Registration target devices, and Single Step Conferencing recording devices. See “switches/add”, “switches/add/mr”, and “switches/add/ssc”.
<switches>
<add switchName="CM">
<agentGroups>
<add extension="2020"/>
</agentGroups>
<mr>
<targetDevices stationPassword="1234" mediaMode="Separated"/>
</mr>
<ssc>
<recordingDevices stationPassword="1234">
<add extension="70000"/>
<add first="70001" last="70005"/>
</recordingDevices>
</ssc>
</add>
</switches>Option | Description |
|---|---|
| Add a Switch Connection. Communication Recording Agent supports multiple switch connections, use multiple |
| Specify the name of the Switch Connection. |
| Specify the list of Call Center Elite groups to monitor for agent information. |
| Add an agent group. |
| Specify a singular group extension to add to the list, for example:
|
and
| Specify a range of group extensions to add to the list, for example:
|
switches/add/mr
The following settings define the configuration for Multiple Registration recording and are therefore only required if using Multiple Registration recording.
Option | Description |
|---|---|
| Specify the target device configuration for Multiple Registration recording. |
| The station password configured for all target devices configured on the CM. NoteThe station password is not required if all of the following Avaya config conditions are met:
|
| Specify the mode for the recording media streams. Valid values are:
|
switches/add/ssc
The following settings define the configuration for Single Step Conferencing recording and are therefore only required if using Single Step Conferencing recording.
Option | Desription |
|---|---|
| Specify the list of virtual recording devices for Single Step Conferencing recording. |
| The station password configured for all recording devices configured on the CM. NoteThe station password is not required if all of the following Avaya config conditions are met:
|
| Specify a singular recording device extension to add to the list, for example:
|
and
| Specify a range of recording device extensions to add to the list., for example:
|
Complete Sample Configuration
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="recorder" type="RedBox.Config.RecorderConfig, RecorderShared"/>
<section name="avaya" type="RedBox.AvayaActive.Config.AvayaActiveConfig, CTIServer_AvayaActive"/>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
<section name="rtpCollectors" type="RedBox.RTPCollector.Client.ConfigSection, RedBox.RTPCollector.Client" />
</configSections>
<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="C:\LTR\Logs\CTIServer_AvayaActive.txt"/>
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="2" />
<maximumFileSize value="15MB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level [%thread] %logger: %message%newline" />
</layout>
</appender>
<appender name="RollingEventAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="C:\LTR\Logs\CTIServer_AvayaActive_XML.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="2" />
<maximumFileSize value="15MB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date: %message%newline" />
</layout>
</appender>
<root>
<level value="WARN" />
<!-- Setting this to ALL will increate the logging level to max -->
<appender-ref ref="RollingFileAppender" />
</root>
<!-- Note: to start event logging set the level value to "ALL", to disable event logging set the event value to "OFF"-->
<logger name="EventLogger" additivity="false">
<level value="OFF" />
<appender-ref ref="RollingEventAppender" />
</logger>
</log4net>
<!-- Recorder configuration -->
<recorder>
<recorders>
<add logicalRecorderId="1">
<add recorderIpAddress="127.0.0.1" />
</add>
</recorders>
</recorder>
<avaya>
<dmcc
aesAddress="172.16.254.6"
dmccPort="4722"
username="redbox1"
password=""
sessionDuration="180"
sessionCleanupDelay="60"
useSsl="true"
serverName="aes-lab01"
clientCertificateFile="C:\LTR\Config\redboxrecorder.p12"
clientCertificatePassword=""
/>
<device
multiRegistrationModeIndependent="false"
startRecordingOnDeliveredEvent="false"
startRecordingOnDeliveredEventTimeout="60" >
<codecs>
<add id="g711A"/>
<add id="g711U"/>
<add id="g729"/>
</codecs>
<encryptionSuites>
<add id="none"/>
</encryptionSuites>
</device>
<switches>
<add switchName="CM">
<agentGroups>
<!-- monitor ACD split 2020 -->
<add extension="2020"/>
</agentGroups>
<!-- the mr section is only required if Multi-Registration is required -->
<mr>
<targetDevices stationPassword="1234"/>
</mr>
<!-- the ssc section is only required if Single Step Conferencing is required -->
<ssc>
<recordingDevices stationPassword="1234">
<!-- add a single recording device -->
<add extension="70000"/>
<!-- add a range of recording devices -->
<add first="70001" last="70005" />
</recordingDevices>
</ssc>
</add>
</switches>
</avaya>
<rtpCollectors>
<add host="localhost" />
</rtpCollectors>
</configuration>Configure the Avaya SMS CTI Server
The Avaya SMS CTI Server connects to the System Management Service (SMS) on the Avaya AES for the purpose of detecting recordable devices. The service is also able to validate the configuration of CM stations using Multiple Registration – alerts are raised for devices with incorrect station configuration. Configuring SMS is optional.
Note
For SMS, the connection to the AES uses HTTPS. This means that the root certificate authority/server certificate may need to be configured, see Security.
Configure the Avaya SMS CTI Server by editing the sms section of CTIServer_AvayaSMS.config file, see Complete Sample Configuration) for a complete example of the file.
Example of the sms section:
<sms pollingInterval="00:10:00" pp="PP_MATCHER">
<aes>
<add host="172.16.254.6" certificateValidation="false">
<cm>
<add host="172.16.254.5" username="" password="" switchName="CM" recordMethod="MultiRegistration" enableWarningTones="false">
<ignoredStations>
<add extension="^700\d{2}$"/>
</ignoredStations>
</add>
</cm>
</add>
</aes>
</sms>/configuration/sms/@pollingInterval
Optional – The duration to wait between polling SMS for station configuration, in the form HH:mm:ss.fff, and must be between 1 minute and 7 days. Defaults to 00:10:00.000 (10 minutes).
/configuration/sms/@pp
Optional, but must be configured for automatic device discovery to function – The PP to use when setting up automatic device discovery, possible values are:
PP_MATCHER– If the recording method is DMCC, SIPREC, or SIP active.PP_SIP_NG– If the recording method is SIP passive.
/configuration/sms/aes
Specify a list of the AES servers to connect to. If none are specified, the Avaya SMS CTI Server will do nothing. Each AES server listed has the options: host, certificateValidation, and cm – see below.
Note
The cm section has it’s own list and configuration settings – see “/configuration/sms/aes/add/cm”.
/configuration/sms/aes/add/@host
Must be specified – The Fully Qualified Domain Name (FQDN), hostname, or IP address of the AES server.
/configuration/sms/aes/add/@certificateValidation
Set to true to indicate that the AES web server certificate should be validated, set to false to indicate that the AES web server certificate should not be validated (for production environments Uniphore recommends setting this to true. Defaults to true.
/configuration/sms/aes/add/cm
Specify a list of the CM servers to poll via this AES. If none are specified, the CTI Server will do nothing. Each CM server listed has the options: host, username, password, switchName, recordMethod, enableWarningTones, and ignoredStations – see below.
Note
The ignoredStations section has it’s own list – see “/configuration/sms/aes/add/cm/add/ignoredStations”.
/configuration/sms/aes/add/cm/add/@host
Must be specified – The FQDN, hostname, or IP address of the CM server.
/configuration/sms/aes/add/cm/add/@username
Must be specified – The user to login to the CM as, this user must have permission to execute the list station and display station commands, this is not an AES CTI user.
/configuration/sms/aes/add/cm/add/@password
Must be specified – The password for the CM user.
/configuration/sms/aes/add/cm/add/@switchName
Only required if configuring automatic device discovery for DMCC recording – The name of the Switch Connection configured in the AES for this CM.
/configuration/sms/aes/add/cm/add/@recordMethod
Only required if configuring automatic device discovery for DMCC recording – The recording method to use for devices discovered on this CM, possible values are:
MultiRegistrationSingleStepConferencing
/configuration/sms/aes/add/cm/add/@enableWarningTones
Only required if configuring automatic device discovery for DMCC recording – Set to true to indicate that devices discovered on this CM should use recording warning tones, set to false to indicate that devices discovered on this CM should not use recording warning tones.
/configuration/sms/aes/add/cm/add/ignoredStations
Specify a list of stations to be ignored when automatically discovering devices. This is useful where the customer may have a set of stations they do not wish to detect as recordable devices, or if there are virtual stations for SSC recording with DMCC.
/configuration/sms/aes/add/cm/add/ignoredStations/add/@extension
The extension of the station to ignore, either a literal extension or a regular expression.
Note
Regular expressions matching multiple stations will cause all matching stations to be ignored.
Complete Sample Configuration
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
<section name="sms" type="RedBox.Avaya.SMS.Config.SMSConfig, CTIServer_AvayaSMS"/>
<section name="recorder" type="RedBox.Config.RecorderConfig, RecorderShared"/>
</configSections>
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%utcdateZ %-5level [%thread] %logger: %message%newline"/>
</layout>
</appender>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="/var/redbox/logs/CTIServer_AvayaSMS.txt"/>
<appendToFile value="true"/>
<rollingStyle value="Size"/>
<maxSizeRollBackups value="2"/>
<maximumFileSize value="15MB"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%utcdateZ %-5level [%thread] %logger: %message%newline"/>
</layout>
</appender>
<root>
<level value="INFO"/>
<appender-ref ref="ConsoleAppender"/>
<appender-ref ref="RollingFileAppender"/>
</root>
</log4net>
<sms pollingInterval="00:10:00" pp="PP_MATCHER">
<aes>
<add host="172.16.254.6" certificateValidation="false">
<cm>
<add host="172.16.254.5" username="" password="" switchName="CM" recordMethod="MultiRegistration" enableWarningTones="false">
<ignoredStations>
<add extension="^700\d{2}$"/>
</ignoredStations>
</add>
</cm>
</add>
</aes>
</sms>
<recorder>
<recorders>
<add logicalRecorderId="1">
<add recorderIpAddress="localhost"/>
</add>
</recorders>
</recorder>
</configuration>Security
For SMS, the connection to the AES uses HTTPS. This means that the root certificate authority/server certificate may need to be configured.
If the AES web server uses a publicly signed certificate, then no further configuration is required as the Avaya SMS CTI Server container image comes with public trusted root certificate authorities already installed. If the AES web server does not use a publicly signed certificate, then the container image must be extended to install either the root certificate authority responsible for signing the server certificate, or the server certificate itself.
Inside the deployment directory, create a build directory alongside config and logs.
For example:
/opt/redbox/build/avaya-sms-cti-server/Within the build directory, place your certificate files and create an empty Dockerfile.
The deployment directory should now look like this:
/opt/redbox/ build/avaya-sms-cti-server/ Dockerfile my-certificate.cer config/ logs/ docker-compose.yamlOpen your new Dockerfile in a text editor.
Edit the Dockerfile to match the example below, this will be used to create a new image from collector.azurecr.io/avaya-sms-cti-server, copy the certificate files into /usr/local/share/ca-certificates/, and install them.
Note
To avoid the final image running with root privileges, the
USERis switched torootto install the certificates and then back toredbox.FROM collector.azurecr.io/avaya-sms-cti-server USER root COPY --chown=root:root [ "*.cer", "/usr/local/share/ca-certificates/" ] RUN update-ca-certificates USER redbox
Modify the docker-compose.yaml to build the new image by removing the image specification and replacing it with a build context, for example:
version: "2.4" services: avaya-sms-cti-server: build: context: ./build/avaya-sms-cti-server depends_on: - integration-adapter network_mode: "host" restart: unless-stopped volumes: - ./config:/etc/redbox/config - ./logs:/var/redbox/logsOn the Collector, run the following commands to acquire (pull) the latest version of the collector.azurecr.io/avaya-sms-cti-server image, build the image, create the container, and then run the container.
docker-compose build --pull docker-compose up -d
Avaya Aura Recording Control
The SMS CTI server is configured (If SMS is not configured, devices will need to be added manually).
Log Files
The following log files are provided on the Collector:
Integration Adapter – IntegrationAdapter.00.txt
RTP Collector – RTPCollector.txt and RTPCollector.Stats.txt
Avaya Active CTI Server – CTIServer_AvayaActive.txt
Avaya CTI Server Log Config
The associated log configuration is performed within the associated CTI server config files:
Avaya Active CTI Server – CTIServer_AvayaActive.config
To configure the main logging level and to enable/disable event logs, set the following in the appropriate config file.
<log4net> <root> <level value="WARN" /> <appender-ref ref="RollingFileAppender" /> </root> |
<logger name="EventLogger" additivity="false"> <level value="OFF" /> <appender-ref ref="RollingEventAppender" /> </logger> </log4net> |
level value
For the main logging level for the event logs, set the level value to “WARN” (warnings only) or “ALL” (warnings and errors). Up to three log files (15MB each) are used on a round-robin basis. To create full event logs (stored separately), change the following level value from “OFF” to “ALL”.
Integration Adapter & RTP Collector Log Configuration
The associated log configuration files are:
Integration Adapter – IntegrationAdapter.Logging.ini
RTP Collector – RTPCollector.Logging.ini
To configure the logs, set the following in the ini files(s).
Note
This only lists the applicable configuration – all other settings can be left with their default values.
[RBRLogging] LogLevel=Info [FileAppender] Enabled=1 MaxFileCount=10 MaxFileSizeMB=15
[RBRLogging]LogLevel
Sets the log level for this logging zone. If not specified, defaults to Warning. If an invalid value is specified, the default is used. Valid values are:
ErrorPrintWarning/WarnMessage/MsgInfoTrace/All
[FileAppender]Compress
Enables/disables log file compression for this logging zone. If not specified, defaults to 0. If enabled, the most recent log file will be compressed on rotation. If enabled on an established system, any pre-existing non-compressed log files will still be rotated but will not be compressed.
[FileAppender]Enabled
Enables/disables logging to file for this logging zone. If not specified, defaults to 1.
[FileAppender]MaxFileCount
The maximum number of log files to retain. If not specified, defaults to 6.
[FileAppender]MaxFileSizeMB
The maximum log file size (in MB) before the file is rotated. If not specified, defaults to 15.