Install MiaRec Recorder
Please note: this is legacy documentation. Please check out https://docs.miarec.com/all/ for the most up-to-date documentation and user guides.
1. Install required packages
yum install libpcap
2. Download MiaRec installation files:
Fill the download form to request URL to MiaRec recorder installation files.
wget CONTACT_US_FOR_URL
Extract:
tar -xzvf miarec-*.tar.gz
cd miarec-*
3. Install MiaRec recorder
Copy binary file to /usr/local/bin/
cp miarec /usr/local/bin/
Copy configuration files to /etc/miarec/
mkdir /etc/miarec
cp miarec.ini /etc/miarec/
cp -r sqlconfig /etc/miarec/
Create /var/lib/miarec directory. It will be used as current directory when running MiaRec process. MiaRec process reads SOAP wsdl file from current directory and stores some temporary files there.
mkdir /var/lib/miarec
cp WebServices.wsdl /var/lib/miarec/
Create log directories
mkdir -p /var/log/miarec
Create directory for recording files
mkdir -p /var/miarec/recordings
4. Create startup script
There is a few variants of start-up scripts depending on OS and version:
- SystemD for RedHat / CentOS 7 or newer
- Upstart for RedHat /CentOS 6 and Ubuntu 14.04 LTS
- Init.d script for other OS versions
5. Edit miarec.ini configuration file
vi /etc/miarec/miarec.ini
Change database connection settings (host, port, database, user, password). There are two places in INI files, where you need to edit database settings:
5.1. Module which loads configuration from database
#-----------------------------------------------------------------
# SQLConfig
#-----------------------------------------------------------------
# Loading configuration from SQL database
#-----------------------------------------------------------------
################################################################################
[SQLConfig]
################################################################################
# Database Driver type.
# Supported values:
# PostgreSQL
#-------------------------------------------------------------------------------
Driver=PostgreSQL
#-------------------------------------------------------------------------------
# Host of database server
#-------------------------------------------------------------------------------
Host=127.0.0.1:5432
#-------------------------------------------------------------------------------
# Database name
#-------------------------------------------------------------------------------
Database=miarecdb
#-------------------------------------------------------------------------------
# Username and password for accessing database. Should have write permissions.
#-------------------------------------------------------------------------------
Username=miarec
Password=password
#-------------------------------------------------------------------------------
5.2. Module, which writes call detail records (CDRs) to database:
#-----------------------------------------------------------------
# Configuration section for SQLCallsLog module. This module stores calls log into database
# Supported call events:
# start,connect,update,stop,stream_start,stream_stop
#-----------------------------------------------------------------
################################################################################
[SQLCallsLog]
################################################################################
# Database Driver type.
# Supported values:
# PostgreSQL
#-------------------------------------------------------------------------------
Driver=PostgreSQL
#-------------------------------------------------------------------------------
# Host of database server
#-------------------------------------------------------------------------------
Host=127.0.0.1:5432
#-------------------------------------------------------------------------------
# Database name
#-------------------------------------------------------------------------------
Database=miarecdb
#-------------------------------------------------------------------------------
# Username and password for accessing database. Should have write permissions.
#-------------------------------------------------------------------------------
Username=miarec
Password=password
#-------------------------------------------------------------------------------
6. Restart MiaRec service
When using Upstart:
initctl stop miarec
initctl start miarec
When using init.d or SystemD:
service miarec restart
SystemD Start-Up Script (Centos 7.x)
Create startup script miarec.service
in directory /etc/systemd/system/
vi /etc/systemd/system/miarec.service
Content of this file:
[Unit]
Description=MiaRec
After=network.target
[Service]
Type=simple
WorkingDirectory=/var/lib/miarec
ExecStart=/usr/local/bin/miarec --pid /var/run/miarec.pid --core unlimited -c /etc/miarec/miarec.ini
Restart=always
User=root
Group=root
LimitNOFILE=10240
LimitFSIZE=infinity
[Install]
WantedBy=multi-user.target
It is important that WorkingDirectory
setting points to directory, where WebServices.wsdl file is located.
Install this startup script:
systemctl enable miarec
Start MiaRec process
systemctl start miarec
Upstart Start-Up Script (Centos 6.x)
Create file /etc/init/miarec.conf
vi /etc/init/miarec.conf
Content of this file:
description "MiaRec call recorder"
author "MiaRec, Inc. www.miarec.com"
env EXEC=/usr/local/bin/miarec
env PIDFILE=/var/run/miarec.pid
env CONFFILE=/etc/miarec/miarec.ini
start on started sshd
stop on runlevel [!2345]
console output
# Increase open file descriptors limit
limit nofile 10240 10240
# Restart automatically proces in case of crash
respawn
# Stop respawn if it occured more than 10 times during 60 seconds period.
# This means serious problems
respawn limit 10 60
# Current working directory for MiaRec process
chdir /var/lib/miarec
# Enable core dumps for troubleshooting
limit core unlimited unlimited
instance miarec
exec $EXEC -c $CONFFILE --pid $PIDFILE
Reload Upstart configuration
initctl reload-configuration
Validate that miarec
is in a list of processes:
initctl list
If you do not see there miarec
then check errors in /var/log/messages
Start MiaRec process
initctl start miarec
Stop MiaRec process
initctl stop miarec
Restart MiaRec process
initctl stop miarec
initctl start miarec
Init.d Start-Up Script
Note, this script doesn't support automatic respawn of process in case of abnormal exit (for example, due to app crash). We recommend using alternative methods which support respawn:
- Upstart for RedHat/Centos 6.x
- SystemD for RedHat/Centos 7.x
Create startup script miarec
in directory /etc/init.d
vi /etc/init.d/miarec
Content of this file:
#!/bin/sh
#
# Startup sript for MiaRec call recorder
#
# chkconfig: - 80 20
# description: MiaRec call recorder
# processname: miarec
# config: /etc/miarec.ini
#
EXEC=/usr/local/bin/miarec
PIDFILE=/var/run/miarec.pid
LOCKFILE=/var/lock/subsys/miarec
CONF=/etc/miarec/miarec.ini
CHDIR=/var/lib/miarec
RETVAL=0
# Source function library.
. /etc/rc.d/init.d/functions
start() {
if [ -f $PIDFILE ]
then
RETVAL=1
echo "$PIDFILE exists, process is already running or crashed" && failure
echo
return $RETVAL
else
echo "Staring MiaRec recorder..."
cd $CHDIR
ulimit -Hn 10240
ulimit -Sn 10240
$EXEC -c $CONF --pid $PIDFILE --core unlimited > /dev/null 2>&1 &
RETVAL=$?
[ $RETVAL -eq 0 ] && touch $LOCKFILE && success || failure
echo
return $RETVAL
fi
}
stop() {
echo "Stopping..."
if [ ! -f $PIDFILE ]
then
RETVAL=1
echo "$PIDFILE does not exist, process is not running" && warning
echo
return $RETVAL
else
PID=$(cat $PIDFILE)
kill -TERM $PID
rm -f $LOCKFILE
echo "MiaRec stopped" && success
echo
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Please use start, stop or restart as first argument"
RETVAL=2
;;
esac
exit $RETVAL
Make this script executable:
chmod +x /etc/init.d/miarec
Add it to autostart during boot:
chkconfig --add miarec
chkconfig miarec on