Archive for April, 2017

Call Analytics

Posted: April 30, 2017 in TSAPI

Introduction

Call Analytics tool is a server program that monitors Avaya VDNs, ACD Hunt Groups and Extension objects, it extracts useful information from monitoring events and outputs call and agent records for applications such as reporting, wallboard integration and call log analysis. The Call Analytics tool is a CTI reporting and real time monitoring engine and it is an ideal tool when CMS is not in placed for call center environment.

callanalytics

The Call Analytics tool uses Avaya TSAPI library, it monitors these Avaya objects and produces the data for real time reports, splunk and database logging. Also, the data can be accessed by various interfaces such as API DLL, database and REST interface. The Call Analytics tool is useful in the following areas:

  • To detect nuisance call attacks by monitoring abandon calls and short duration calls
  • To detect fraud activities such as KPI manipulation which caused by agent short duraton calls
  • To identify the callers of the abandon and short duration calls
  • To capture user data from TSAPI UUI and store the user data together with the call data in Splunk and database
  • To provide real time data for building of real time reports and dashboards
  • To trace a call from its beginning to end, multiple call records can be correlated by common key such as UCID
  • To list customers waiting in queue together with their calling number and waiting time
  • To find out how long each customer waits for an agent
  • To find out the frequency and duration of an agent to perform hold call
  • To find out agent or customer who hangups a call first
  • Uses the VDN detail call logging which stored in the database for different kind of reports
  • Uses the abandon and short duration data for different kind of CRM application

Preparation and Password Encryption

  • The access MDB file stored the username and password of AE server. For security reason, a tool called encryptpasswd.exe is provided to generate an encrypted password for the installation and configuration of the software in Windows environment
  • Execute the program, generate an encrypted password for the AE server CTI user, then paste the encrypted password to parameter ca_tlink01 or ca_tlink02. For example, the encrypted password for “p@ssword” is “R3NIw1yJMLlnPFzEQtuh2A==”
  • encryptpasswd

64 bit Windows System 

  • For 64 bit Windows system, please follow the steps below

Installation

  • Download the TSAPI client for Windows 32-bit from Avaya web site, it contains the TSAPI library files. DevConnect registration is required before you can access the download page.
  • Download the Call Analytics Tool zip file here.
  • Follow the installation steps below to install the software.
    • Extract all the files into directory c:\program files\callanalytics
    • Open Windows Command Prompt, enter the following commands to register the program as Windows Service.
      • cd c:\program files\callanalytics
      • callanalytics -i
    • Open ODBC Setting, create System DSN called CALLANALYTICSCFG for Microsoft Access Driver and point to callanalytics.mdb which is located in the directory c:\program files\callanalytics
    • Open the Access file, edit the value of parameters ca_tlink_01 and ca_tlink_02 to the TLINK of your AES servers in the tParameter table.
    • Edit the value of parameter ca_movingavgmin to define the moving average period for the calculation of abandon and short duration call rate. The default value is 15 minutes.
    • Edit the value of parameter ca_intervalstatmin to define the interval statistics period for the calculation of abandon and short duration call rate. The default value is 30 minutes.
    • Edit the value of parameter ca_shortduration to define the number of seconds for short duration calls. The default value is 3 seconds.
    • Edit the value of parameter ca_agentstatechecksplit to true when you want to poll agent state of agents that login to split, the default value is true
    • Edit the value of parameter ca_agentstaterefreshrate to the number of seconds for each polling, the default value is 15 seconds, the minimum value is 5 seconds.
    • Edit the value of parameter ca_cache_timeout to define the number of seconds as cache time for real time reports. This setting reduce the AES loading when multiple clients retrieve the same report during the cache period.
    • Edit the value of parameters ca_splunkhost and ca_splunkport with IP address of Splunk and port number for TCP data input.
    • Start the Windows Service callanalytics
    • Telnet to localhost and port number 14003, enter username tcpgate and password tcpgate01 to access the program console.
    • Enter the following command in the program console, you will receive information when there is call abandon and short duration call.
      • trace on asc
    • Enter the following command to add your VDN
      • add vdn xxxxx
    • Enter the following command to add your ACD
      • add acd xxxxx
    • Enter the following command to add your Extension
      • add extension xxxxx
    • Enter the following command to display help message
      • help
  • After installation, we can use Splunk to implement real time and historical reports. These reports can be viewed as Splunk Dashboards. Also we can use to send Alert when certain predefined condition is occurred. The following is description is for each of the scenario and the Splunk search command and Visualization are provided for your easy reference.

Real Time Agent Snapshot  

  • You need to add a report agent to execute agent snapshot report in order to generate the data to Splunk, the command to add this report in tcpgate console is
    •  add agentsnapshot all 15 agent_snapshot_every_15s
    • Hint: Execute agent snapshot report every 15 seconds
  • To snapshot the current status of each agent, the Splunk command is
  • index=callanalytics logtype=agentsnapshot [search index=callanalytics logtype=agentsnapshot progress=end | head 1 | fields + timestamp] progress=start | chart count by mode, talkstate
  • The Splunk Visualization is
  • We can add the report to Spunk Dashboard with refresh rate 15 seconds, the final result is

Real Time Calls in Queue for Specific Split

  • You need to add a report agent to execute the SplitSkillStatus report in order to generate data to Splunk, the command to add this report in tcpgate console is
    • add splitskillstatus xxxxx 15 SplitSkillStatus_15s
    • Hint: Execute SplitSkillStatus report every 15 seconds
  • To find calls in queue for a specific split, the Splunk command is
  • index=callanalytics logtype=splitskillstatus  split=xxxxx | head 1 | stats values(callsqueue) as CallQueued 
  • Replace the xxxxx with the specific split, the Splunk Visualization is
  • We can add the report to Spunk Dashboard with refresh rate 15 seconds, the final result is

Real Time Top 10 AUX Agents with Reason Code

  • To find out the top 10 AUX agents with longest duration, the Splunk command is
  • index=callanalytics logtype=agentsnapshot [search index=callanalytics logtype=agentsnapshot progress=end | head 1 | fields + timestamp] progress=start mode=AUX | table agentid, duration, reasoncode | sort - duration limit=10
  • The Splunk Visualization is
  • We can add the report to Spunk Dashboard with refresh rate 15 seconds, the final result is

Real Time Split Skill Status Summary – Moving Statistics

  • To display major moving statistics of all splits , the Splunk command is
  • index=callanalytics logtype=splitskillstatus | dedup split sortby -time | table split, agentsavailable, agentslogon, callsqueue, awt, lwt, ms_asa, ms_acdcalls, ms_avgacdtime, ms_abancalls, ms_abanrate
  • The Splunk Visualization is
  • We can add the report to Spunk Dashboard with refresh rate 15 seconds, the final result is

Real Time Split Skill Status Summary – Interval Statistics

  • To display major current interval statistics of all splits , the Splunk command is
  • index=callanalytics logtype=splitskillstatus | dedup split sortby -time | table is_starttime, is_endtime, split, agentsavailable, agentslogon, callsqueue, awt, lwt, is_asa, is_acdcalls, is_avgacdtime, is_abancalls, is_abanrate
  • The Splunk Visualization is
  • We can add the report to Spunk Dashboard with refresh rate 15 seconds, the final result is

Real Time Top 10 Connected Calls Sorted by Duration 

  • You need to add a report agent to execute the SplitSkillStatus report in order to generate data to Splunk, the command to add this report in tcpgate console is
    • add vdnsnapshot all 15 vdnsnapshot_every_15s
    • Hint: Execute vdn snapshot report every 15 seconds
  • To display top 10 connected calls sorted by duration , the Splunk command is
  • index=callanalytics logtype=vdnsnapshot [search index=callanalytics logtype=vdnsnapshot progress=end | head 1 | fields + timestamp] progress=start callstate!=queued | eval caller = if (len(calling)>len(origcalling),calling,origcalling) | table vdn, split, caller, agentid, answering, callstate, callduration, trunkgroup, trunkmember | sort - callduration limit=10
  • The Splunk Visualization is
  • We can add the report to Spunk Dashboard with refresh rate 15 seconds, the final result is

Real Time Top 10 Queued Calls Sorted by Duration 

  • To display top 10 queued calls sorted by duration , the Splunk command is
  • index=callanalytics logtype=vdnsnapshot [search index=callanalytics logtype=vdnsnapshot progress=end | head 1 | fields + timestamp] progress=start callstate=queued | eval caller = if (len(calling)>len(origcalling),calling,origcalling) | table vdn, split, caller, agentid, answering, callstate, callduration, trunkgroup, trunkmember | sort - callduration limit=10
  • The Splunk Visualization is
  • We can add the report to Spunk Dashboard with refresh rate 15 seconds, the final result is

Real Time AUX Reason with Average Duration

  • To display the distribution of AUX reason code together with the average duration, the Splunk command is
  • index=callanalytics logtype=agentsnapshot [search index=callanalytics logtype=agentsnapshot progress=end | head 1 | fields + timestamp] | rename reasoncode as "AUX Reason" | chart count as Count, avg(duration) as Duration by "AUX Reason" | eval Duration=round(Duration,0) 
  • The Splunk Visualization is
  • We can add the report to Spunk Dashboard with refresh rate 15 seconds, the final result is

More Use Cases are Coming…

Avaya DMCC Logger

Posted: April 18, 2017 in DMCC

Introduction

The Avaya DMCC Logger (DMCCLogger) is a server program that uses Avaya DMCC API to implement call recording for Avaya Aura Communication Manager. DMCCLogger supports Multiple Registration (MR) and Single Step Conference (SSC) recording methods. DMCCLogger receives RTP streams from Avaya Aura CM directly and converts the RTP data to WAV or MP3 file using conversion tool such as ffmpeg. Call details information is stored in MySQL database, a web based software called DMCCLoggerWeb is developed for searching of call records based on information such as calling number, called number, agent ID, etc. DMCCLogger is an ideal tool for contact centers when call recording is necessary in the daily operation because it is reliable and the cost is very competitive. 

Prerequisites

Please make sure you have the following Avaya features and systems installed for the DMCCLogger installation.

  • Avaya AES with DMCC licenses
  • Avaya AES with TSAPI license for third party device monitoring
  • Avaya phantom extensions configured with IP software feature
  • CentOS 64bit OS with MySQL

System Architecture

 

  • DMCCLogger monitors Avaya extensions and triggers recording by multiple registration or single step conference recording methods.
  • Avaya sends RTP streams to DMCCLogger.
  • DMCCLogger writes all voice files to a distributed network file system such as MooseFS so voice files can be consolidated in one place such as data center and the files can be shared among different applications. For example, DMCCLoggerWeb.
  • DMCCLogger writes call details information and business data (via DMCCLogger API) to MySQL database.
  • DMCCLoggerWeb retrieves call records based on user provided data such as calling number, called number, agent ID, etc.
  • The architecture supports multiple DMCCLogger servers with one centralized database.

OVA File for Testing

centos

We have created a OVA file which you can deploy it to VirtualBox or VMware Workstation or VMWare Player for testing.  After deploying the OVA file, please modify the following for your own environment

  • IP address of the VM
  • Telnet to DMCCLogger console port 14005
    • Update parameters such as dmcc_dlink_01, dmcc_licensekey, dmcc_rtpbindingaddress, etc
    • Add agent extensions by command “add extension”
    • Add phantom devices by command “add phantom”
  • Once the changes are completed, reboot the VM

The username and password of the OVA VM is

  • OS : root/P@ssw0rd
  • MySQL: root/P@ssw0rd
  • DMCCLogger console: tcpgate/tcpgate01
  • alarchived console: tcpgate/tcpgate01

RedHat/CentOS 6.x Installation Procedure

  • centosredhat
  • The following is for RedHat/CentOS 6 64 bit OS only, other Linux distribution is similar
  • Login as root and execute the following commands
  • Disable SELINUX and stop firewall
  • sed -i 's/\(^SELINUX=\).*/\SELINUX=disabled/' /etc/selinux/config
  • chkconfig --level 0123456 iptables off
  • service iptables stop
  • reboot
  • The DMCCLogger uses ffmpeg for audio conversion, you can download the precompiled version by this URL
  • To use the latest version of ffmpeg, follow the steps below to compile the ffmpeg tool
  • yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ git libtool make mercurial nasm pkgconfig zlib-devel
  • mkdir ~/ffmpeg_sources
  • cd ~/ffmpeg_sources
    git clone --depth 1 git://github.com/yasm/yasm.git
    cd yasm
    autoreconf -fiv
    ./configure
    make
    make install
  • cd ~/ffmpeg_sources
    curl -L -O http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
    tar xzvf lame-3.99.5.tar.gz
    cd lame-3.99.5
    ./configure --disable-shared --enable-nasm
    make
    make install
    
  • cd ~/ffmpeg_sources
    curl -O http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
    tar xjvf ffmpeg-snapshot.tar.bz2
    cd ffmpeg
    ./configure --enable-libmp3lame
    make
    make install
    hash -r
  • Install the following packages
  • yum install mysql-server mysql telnet ntp
  • yum install mysql-connector-odbc unixODBC
  • Config and start MySQL
  • chkconfig mysqld on
  • service mysqld start
  • Config and start ntpd
  • chkconfig ntpd on
  • service ntpd start
  • Copy timezone from tzselect
  • tzselect
  • Example:
  • ln -sf /usr/share/zoneinfo/America/Vancouver /etc/localtime
  • Create database and user
  • mysql -u root -p
  • create database dmcclogger;
  • create database alarchived;
  • create user 'dmcclogger'@'localhost' identified by 'P@ssw0rd';
  • grant all on dmcclogger.* to 'dmcclogger'@'localhost';
  • grant all on alarchived.* to 'dmcclogger'@'localhost';
  • flush privileges;
  • quit
  • mkdir ~/dmcclogger
    cd ~/dmcclogger 
    curl -L -O http://downloads.sourceforge.net/project/dmcclogger/dmcclogger-1.0.1.tar.gz 
    tar xzvf dmcclogger-1.0.1.tar.gz
    cd centos
  • mysql -h localhost -u dmcclogger -p dmcclogger < dmcclogger.sql
  • mysql -h localhost -u dmcclogger -p alarchived < alarchived.sql
  • Copy the following to /etc/odbc.ini file
    • [DMCCLOGGERCFG]
      Description = MySQL connection to DMCCLogger
      Driver = MySQL
      Server = localhost
      Port = 3306
      Database = dmcclogger
    • [DMCCLOGGERCINFOCFG]
      Description = MySQL connection to DMCCLogger
      Driver = MySQL
      Server = localhost
      Port = 3306
      Database = dmcclogger
    • [ALARCHIVEDCFG]
      Description = MySQL connection to DMCCLogger Archive Daemon
      Driver = MySQL
      Server = localhost
      Port = 3306
      Database = alarchived
  • Create user and copy files
  • adduser dmcclogger -M -c "DMCCLogger User"
  • yum install httpd php php-mysql
  • echo "Options -Indexes" > /var/www/html/.htaccess
  • chown -R dmcclogger.dmcclogger /var/www/
  • chown -R dmcclogger.dmcclogger /var/lib/php/session/
  • sed -i 's/^\(User\|Group\).*/\1 dmcclogger/' /etc/httpd/conf/httpd.conf
    sed -i 's/AllowOverride None/AllowOverride All/' /etc/httpd/conf/httpd.conf
    service httpd restart
  • chkconfig httpd on 
  • mkdir /usr/local/dmcclogger
  • Copy files and change permission for 64 bit OS
  • cp DMCCLogger64 /usr/local/dmcclogger
  • cp alarchived64 /usr/local/dmcclogger
  • chmod +x /usr/local/dmcclogger/DMCCLogger64
  • chmod +x /usr/local/dmcclogger/alarchived64
  • Create working directories
  • chown -R dmcclogger.dmcclogger /usr/local/dmcclogger
  • mkdir -p /var/log/dmcclogger
  • mkdir -p /mnt/dmcclogger/tmp
  • mkdir -p /var/log/alarchived
  • chown -R dmcclogger.dmcclogger /var/log/dmcclogger
  • chown -R dmcclogger.dmcclogger /mnt/dmcclogger
  • chown -R dmcclogger.dmcclogger /var/log/alarchived
  • Install DMCCLoggerWeb
  • cd ~/DMCCLogger
  • cp dmccloggerweb-1.0.0.tar.gz /var/www/html
  • cd /var/www/html 
  • tar xzvf dmccloggerweb-1.0.0.tar.gz
  • rm dmccloggerweb-1.0.0.tar.gz
  • cd /var/www/html/dmcclogger
  • ln -sf /mnt .
  • chown -R dmcclogger.dmcclogger /var/www/html/dmcclogger
  • yum install php php-mysql
  • Change your timezone setting in /etc/php.ini, the parameter is called "date.timezone"
  • Auto start the daemon after server reboot for 64 bit OS
  • echo "rm /tmp/dmcclogger.log" >> /etc/rc.local
  • echo "su dmcclogger -c '/usr/local/dmcclogger/DMCCLogger64 -u dmcclogger -p 40UIt9O3PqtwsSn+Wx6pig=='" >> /etc/rc.local
  • echo "rm /tmp/alarchived.log" >> /etc/rc.local
  • echo "su dmcclogger -c '/usr/local/dmcclogger/alarchived64 -u dmcclogger -p 40UIt9O3PqtwsSn+Wx6pig=='" >> /etc/rc.local

SUSE Linux Enterprise 12 Installation Procedure

  • The following is for SUSE Linux Enterprise 12 64 bit OS only
  • Login as root and execute the following commands
  • Disable and stop firewall
  • systemctl disable SuSEfirewall2_setup.service
  • systemctl disable SuSEfirewall2_init.service
  • reboot
  • The DMCCLogger uses ffmpeg for audio conversion, you can download the precompiled version by the following commands
  • zypper addrepo http://download.opensuse.org/repositories/multimedia:libs/SLE_12_SP1/multimedia:libs.repo
    zypper refresh
    zypper install ffmpeg
  • Get the mysql57-community-release-sles12-11.noarch.rpm from URL https://dev.mysql.com/downloads/repo/suse/
  • Install the following packages
  • rpm -ivh mysql57-community-release-sles12-11.noarch.rpm
  • rpm --import /etc/RPM-GPG-KEY-mysql
  • zypper refresh
  • zypper install mysql-community-server mysql-community-client
  • zypper install mysql-connector-odbc unixODBC
  • Config and start MySQL
  • systemctl enable mysql
  • systemctl start mysql
  • Config and start ntpd
  • systemctl enable ntpd
  • systemctl start ntpd
  • Copy timezone from tzselect
  • tzselect
  • Example:
  • ln -sf /usr/share/zoneinfo/America/Vancouver /etc/localtime
  • Create database and user, MySQL temporary root password can be found by the following command
  • grep 'temporary password' /var/log/mysql/mysqld.log
  • mysql -u root -p
  • create database dmcclogger;
  • create database alarchived;
  • create user 'dmcclogger'@'localhost' identified by 'P@ssw0rd';
  • grant all on dmcclogger.* to 'dmcclogger'@'localhost';
  • grant all on alarchived.* to 'dmcclogger'@'localhost';
  • flush privileges;
  • quit
  • mkdir ~/dmcclogger
    cd ~/dmcclogger 
    curl -L -O http://downloads.sourceforge.net/project/dmcclogger/dmcclogger-1.0.1.tar.gz 
    tar xzvf dmcclogger-1.0.1.tar.gz
    cd suse
  • mysql -h localhost -u dmcclogger -p dmcclogger < dmcclogger.sql
  • mysql -h localhost -u dmcclogger -p alarchived < alarchived.sql
  • odbcinst -i -d -f odbcinst.ini
  • odbcinst -i -s -l -f odbc.ini
  • Create user and copy files
  • useradd dmcclogger -M -c "DMCCLogger User"
  • groupadd dmcclogger
  • zypper addrepo http://download.opensuse.org/repositories/devel:languages:php/SLE_12_SP2/devel:languages:php.repo
    zypper refresh
    zypper install php5
    zypper install php5 php5-mysql apache2-mod_php5
    a2enmod php5
  • systemctl enable apache2
  • systemctl start apache2
  • echo "Options -Indexes" > /srv/www/htdocs/.htaccess
  • chown -R dmcclogger.dmcclogger /srv/www/
  • chown -R dmcclogger.dmcclogger /var/lib/php5/
  • sed -i 's/^\(User\|Group\).*/\1 dmcclogger/' /etc/apache2/uid.conf
    sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/httpd.conf
    systemctl restart apache2
  • mkdir /usr/local/dmcclogger
  • Copy files and change permission for 64 bit OS
  • cp DMCCLogger64 /usr/local/dmcclogger
  • cp alarchived64 /usr/local/dmcclogger
  • chmod +x /usr/local/dmcclogger/DMCCLogger64
  • chmod +x /usr/local/dmcclogger/alarchived64
  • Create working directories
  • chown -R dmcclogger.dmcclogger /usr/local/dmcclogger
  • mkdir -p /var/log/dmcclogger
  • mkdir -p /mnt/dmcclogger/tmp
  • mkdir -p /var/log/alarchived
  • chown -R dmcclogger.dmcclogger /var/log/dmcclogger
  • chown -R dmcclogger.dmcclogger /mnt/dmcclogger
  • chown -R dmcclogger.dmcclogger /var/log/alarchived
  • Install DMCCLoggerWeb
  • cd ~/DMCCLogger
  • cp dmccloggerweb-1.0.0.tar.gz /srv/www/htdocs
  • cd /srv/www/htdocs 
  • tar xzvf dmccloggerweb-1.0.0.tar.gz
  • rm dmccloggerweb-1.0.0.tar.gz
  • cd /srv/www/htdocs/dmcclogger
  • ln -sf /mnt .
  • chown -R dmcclogger.dmcclogger /srv/www/htdocs/dmcclogger
  • Change your timezone setting in /etc/php5/apache2/php.ini, the parameter is called "date.timezone"
  • Auto start the daemon after server reboot for 64 bit OS
  • echo "if [ ! -L /tmp/mysql.sock ]; then  ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock ; fi" >> /etc/rc.d/boot.local
  • echo "rm /tmp/dmcclogger.log" >> /etc/rc.d/boot.local
  • echo "su dmcclogger -c '/usr/local/dmcclogger/DMCCLogger64 -u dmcclogger -p 40UIt9O3PqtwsSn+Wx6pig=='" >> /etc/rc.d/boot.local
  • echo "rm /tmp/alarchived.log" >> /etc/rc.d/boot.local
  • echo "su dmcclogger -c '/usr/local/dmcclogger/alarchived64 -u dmcclogger -p 40UIt9O3PqtwsSn+Wx6pig=='" >> /etc/rc.d/boot.local

DMCCLogger Parameter Configuration

  • After the software is installed, telnet DMCCLogger program console to configure necessary parameters
  • The port number of DMCCLogger program console is 14005, default username tcpgate and password tcpgate01
  • update parameter dmcc_dlink_01 AESIP#4721#CTIUSER#ENCRYPTEDPASSWD#false#6#SWITCHNAME
    • Hint: AESIP is the IP address of AES
    • Hint: 4721 is the AES DMCC listening port, 4722 is listening port with encryption
    • Hint: CTIUSER is the AES cti user login
    • Hint: ENCRYPTEDPASSWD is the encrypted password of the AES cti user login, you can use console command genpass to generate an encrypted password
    • Hint: false means not to use encryption for the communication between DMCCLogger and AES
    • Hint: protocol version 6 is used
    • Hint: SWITCHNAME is the switch name configured in AES
  • update parameter dmcc_licensekey encrypted_license_key 
    • Hint: Please obtain a valid license key from upinget.com
  • update parameter dmcc_rtpbindingaddress 192.168.1.123
    • Hint: Use the IP address of the DMCCLogger as RTP binding address

DMCCLogger Web

  • DMCCLogger Web is a web based application for searching of call recording based on parameters such as date time, extension number, agent ID, calling number, etc.
  • Follow the steps below for the installation and configuration of DMCCLogger Web for CentOS. The steps for other Linux distribution are similar.
    • yum install httpd
    • chkconfig httpd on
    • service httpd start
      • Hint: if you do not install httpd before
    • cp dmccloggerweb-1.0.0.tar.gz /var/www/html
      • Hint: the dmccloggerweb-1.0.0.tar.gz is in the dmcclogger-x.x.x.tar.gz file
    • cd /var/www/html
    • tar xzvf dmccloggerweb-1.0.0.tar.gz
    • rm dmccloggerweb-1.0.0.tar.gz
    • cd /var/www/html/dmcclogger
    • ln -sf /mnt .
      • Hint: to symbolic link voice record directory to DMCCLogger Web directory
    • chown -R dmcclogger.dmcclogger /var/www/html/dmcclogger
      • Hint: change the ownership to dmcclogger
    • yum install php
    • yum install php-mysql ntp
    • Change your timezone setting in /etc/php.ini, the parameter is called “date.timezone
    • service httpd restart
    • vi config.php
      • Hint: change the $mysqlHost in config.php to the ip address of your sql server
    • http://ip-of-dmcclogger-web/dmcclogger/
      • Hint: default admin username is admin and password P@ssw0rd

DMCCLogger API 

  • DMCCLogger API is for logging of application data related to its voice record, 10 data fields are supported. API is provided as OCX and DLL formats, the library files and sample applications are provided in the zip file.
  • To enable API support, enter the following command in the program console
    • add tcp 5002 * * custom dlapi
    • Hint: API server will be listened on port 5002.
  • Call info record will be deleted immediately after agent call hangup, to enable agent can write application data after call end, edit the parameter dmcc_recorddeletedelay.  If you want agent can write record in 30 seconds after call hangup, set the value to 30.

DMCCLogger REST interface

DMCCLogger WebSocket interface

  • DMCCLogger WebSocket interface is for Web application integration
  • To add WebSocket interface port, enter the following command
    • add tcp 9090 * * custom dlws 
  • WebSocket interface accepts JSON request, returns JSON response and delivers unsolicited JSON evens
  • The JSON strings for Connect request and response are
    • {id: “1”, request: “connect”, extension: “12345”, agentid: “56789”}
    • {msgtype: “response”, id: “1”, result: “success”}
  • The JSON strings for Disconnect request and response are
    • {id: “2”, request: “disconnect”}
    • {msgtype: “response”, id: “2”, result: “success”}
  • The JSON strings for SaveData request and response are
    • {id: “3”, request: “savedata”, extension: “12345”, recordkey: “12345.6789”, data0: “hello”, data9: “world”}
    • {msgtype: “response”, id: “3”, result: “success”}
  • The JSON string for RecordStart event is
    • {msgtype: “event”, eventtype: “recordstart”, extension: “12345”, recordkey: “12345.6789”, ucid: “00001094861421138402”, calling: “12345”, called: “12346”}
  • The JSON string for  RecordEnd event is
    • {msgtype: “event”, eventtype: “recordend”, extension: “12345”, recordkey: “12345.6789”}

DMCCLogger Desktop 

  • Follow this link to find the details of the application

Monitor DMCCLogger Status

  • Monitoring of DMCCLogger status is supported via the DMCCLogger Web
  • In the program console of DMCCLogger, enter the following command to enable this feature
    • add tcp 5002 * * custom dlxml
  • From the DMCCLogger Web, select the Add Logger and enter the logger’s IP address and listening port
  • After the logger is added, select the Logger Status from menu to view the logger status

DMCCLogger Archive Daemon

  • The DMCCLogger Archive Daemon is for archiving of voice files to backup directory and deletion of voice files which over retention period set by the program.
  • Telnet to the program console, the console port number is 14020, enter username tcpgate and password tcpgate01.
  • If your archive directory mount point is /archive/, execute the following command to add archive directory.
    • add archivepath /archive/
    • Hint: make sure the /archive/ directory is writable by user dmcclogger
    • Hint: archiving interval can be fine tuned by a parameter called al_archiveschedulerinterval which the default value is 30 seconds.
  • The program monitors the recordpath usage and deletes voice files in the record paths automatically when the usage reached a defined level. The threshold parameter is called al_hddthreshold, by default it it set to 90 percent, meaning of deletion old files when the usage level reached 90%. The monitor interval can be fine tuned by a parameter called al_hddcleanerinterval which the default value is 10 seconds. Also, a parameter called al_purgewithoutarchive to control file deletion can be performed without archiving, the default value is “no”.
  • If you have retention period requuirement on recordpath or archivepath, execute the following command to add retention rule. Please pay attention to this command because voice files may be deleted before they are archived when the archiving function is failed.
    • add retentiondir /mnt/ 90 90DaysRetentionPeriod
    • Hint: the program deletes files in directory /mnt/ when its creation time is over 90 days
    • Hint: retention thread execution interval can be fine tuned by a parameter called al_retentionschedulerinterval, the default value is 30 seconds.

Alarm Notification

  • Alarm notification via email is supported, you need to config the following parameters
    • tg_emailserverip, this is the IP address of your email server.
    • tg_emailsmtpport, this is the SMTP port of email server, default value is 25.
    • tg_emailusername, the username to login the email server.
    • tg_emailpasswd, the encrypted password. The database only store encrypted password due to security reason, to generate an encrypted password, enter the following command in the program console and paste the encrypted password for the parameter tg_emailpasswd.
      • genpass
    • tg_emailsenderaddress, the email address used to send notification emails.
    • tg_emailauth, if authentication is required, set the value to “yes“. The default value is “no” when your mail server trust your DMCCLogger server.
    • tg_emailauth, if SSL is required, set the value to “yes“. The default value is “no“.
  • Enter the following command to add email address for the receive of alarm notification, e.g.
    • add email service@upinget.com

Known Issues

Support and License