#!/bin/bash SRC_DIR=/usr/src/m2 KAMAILIO_CONF_DIR=/usr/local/etc/kamailio KAMAILIO_VERSION="5.4" # install prerequisites yum install -y git svn wget vim gcc gcc-devel bison bison-devel flex flex-devel mysql mysql-devel gcc-c++ gdb # install kamailio rm -fr /usr/src/kamailio &> /dev/null git clone https://github.com/kamailio/kamailio.git /usr/src/kamailio cd /usr/src/kamailio/ git checkout -b $KAMAILIO_VERSION origin/$KAMAILIO_VERSION make cfg make all include_modules="db_mysql" make install include_modules="db_mysql" killall -9 kamailio &> /dev/null # make backup of old config (incase script is used to update system) cp -fr $KAMAILIO_CONF_DIR/kamailio.cfg $KAMAILIO_CONF_DIR/kamailio.cfg.backup.`date '+%Y_%m_%d_%H_%M_%S'` &> /dev/null # copy new configs cp -fr $SRC_DIR/kamailio/kamailio.cfg $KAMAILIO_CONF_DIR/ if [ ! -f $KAMAILIO_CONF_DIR/dispatcher.list ]; then cp -fr $SRC_DIR/kamailio/dispatcher.list $KAMAILIO_CONF_DIR/ fi # install init script cp -fr $SRC_DIR/kamailio/kamailio.init /etc/init.d/kamailio chmod 777 /etc/init.d/kamailio # start kamailio on startup chkconfig kamailio on # create initial proxy configuration file if [ ! -f /etc/m2/system.conf ]; then mkdir -p /etc/m2 &> /dev/null touch /etc/m2/system.conf echo "# database connection settings" >> /etc/m2/system.conf echo "dbhost = localhost" >> /etc/m2/system.conf echo "dbname = m2" >> /etc/m2/system.conf echo "dbuser = kamailio" >> /etc/m2/system.conf echo "dbsecret = kamailio" >> /etc/m2/system.conf echo "dbport = 3306" >> /etc/m2/system.conf echo "" >> /etc/m2/system.conf fi # create directories mkdir -p /usr/local/m2 &> /dev/null mkdir -p /var/log/m2 &> /dev/null # give permissions chmod 777 -R /usr/local/m2 chmod 777 -R /var/log/m2 # clean iptables $SRC_DIR/maintenance/iptables_clean.sh # install iptables whitelist $SRC_DIR/helpers/m2_connection_points_whitelist/install.sh # install m2_server_loadstats cd $SRC_DIR/scripts killall -9 m2_server_loadstats &> /dev/null gcc -g -Wall -o m2_server_loadstats m2_server_loadstats.c -L/usr/lib/mysql -L/usr/lib64/mysql -lmysqlclient -lpthread cp -fr m2_server_loadstats /usr/local/m2/m2_server_loadstats cp -fr m2_server_loadstats_service /etc/init.d/m2_server_loadstats chmod +x /etc/init.d/m2_server_loadstats chkconfig --add m2_server_loadstats chkconfig --level 2345 m2_server_loadstats on service m2_server_loadstats start # install m2_terminator_check cd $SRC_DIR/scripts gcc -g -Wall -o m2_terminator_check m2_terminator_check.c -L/usr/lib/mysql -L/usr/lib64/mysql -lmysqlclient -lpthread cp -fr m2_terminator_check /usr/local/m2/m2_terminator_check cp -fr $SRC_DIR/scripts/cronjobs/m2_terminator_check /etc/cron.d/ service crond restart # configure kamailio log mkdir -p /var/log/kamailio if ! grep -F "kamailio" /etc/rsyslog.conf &> /dev/null; then echo "# Kamailio log" >> /etc/rsyslog.conf echo "local0.* -/var/log/kamailio/kamailio.log" >> /etc/rsyslog.conf echo "" >> /etc/rsyslog.conf service rsyslog restart fi $SRC_DIR/kamailio/maintenance/disable_system_logging.sh # install logrotate cp -fr $SRC_DIR/kamailio/kamailio_logrotate /etc/logrotate.d/kamailio # set timezone to UTC $SRC_DIR/maintenance/set_server_timezone_to_utc.sh # proper place for configuration files ln -sf /usr/local/etc/kamailio /etc/kamailio echo "Kamailio installation finished"