URGENT UPDATE REQUIRED – ViciDial Security Vulnerability

security update

URGENT UPDATE REQUIRED – ViciDial Security Vulnerability

The ViciDial Group has released a warning for any SVN version below 3583, if you are below this version, update your system immediately. You can do so by following this article for SVN update.

ViciDial versions below 3583 are Vulnerable!

I hope everyone takes this seriously, or your data may be hacked or minutes used on your VoIP, or worse.

Chris aka Carpenox

How to – Fix “Repository ‘openSUSE-Leap-15.2-PHP-Applications’ is invalid.”

Repository 'openSUSE-Leap-15.2-PHP-Applications' is invalid.

How to – Fix “Repository ‘openSUSE-Leap-15.2-PHP-Applications’ is invalid.”

Repository 'openSUSE-Leap-15.2-PHP-Applications' is invalid.
Repository ‘openSUSE-Leap-15.2-PHP-Applications’ is invalid.

Just a short article to fix this issue for Leap 15.2. First you need to list your repo’s and remove the one labeled PHP-Applications, for my installs its been number 8. The following commands will show you how to find which one and remove it:

  • zypper lr
zypper lr and zypper rr 8
  • zypper rr 8

Now to add the new repo:

  • zypper addrepo https://download.opensuse.org/repositories/server:php:applications/openSUSE_Leap_15.2/server:php:applications.repo

You can now zypper ref and zypper up as needed, I hope this helps

Chris aka carpenox

How to – Setup a ViciDial Cluster

ViciDial Cluster

How to – Setup a ViciDial Cluster

This article is going to go over the steps I suggest to take in order to setup a ViciDial Cluster. I do things a little different when it comes to this to prepare for worst case scenario that a server may have problems and have to be taken offline, I install all services to each server, such as apache, mysql and asterisk this way if need be, they each can take on additional roles to cover for a server having to be taken out of production. Obviously this is going to assume you have ViciDial already installed on each server with all roles ready to go. To do so you can follow any one of my articles for scratch installs or you can just use an ISO to install of which I suggest using Vicibox v9.0.3 over V10 because of the issues with the V10 firewall and dynamic portal not working correctly, even if you do apply my fix, I find V9 to be more stable.

ViciDial Cluster
ViciDial Cluster

Step 1 – Install Vicidial on each server

As I said above, I suggest installing all services on each server and just leaving the ones not needed for each box, disabled until needed. So if you are using an ISO install instead of one of my scratch instructions, for the purpose on this article, lets say ViciBox v9.0.3. The first thing you need to do after loading v9 is to upgrade the operating system from Leap 15.1 to Leap 15.2 using these instructions, because Leap 15.1 is end of life(no more updates). After that use the command, vicibox-install and choose Y(yes) for the options shown in the picture below:

ViciBox Installer
vicibox-install

Repeat this process on each server and then move on to step 2.

Step 2 – Turn off services not needed on each server role

Now we need to disable services not needed on each server to save on resources, but this way they are there if they are needed in the future.

  • DB Server: systemctl disable apache2;systemctl disable asterisk
  • Web Server: systemctl disable mysql;systemctl disable asterisk
  • Asterisk Servers: systemctl disable mysql

We want to leave apache running on the asterisk servers so we can install webrtc for webphones

Step 3 – Run the install.pl script on each server

Now we want to link them all together by running the install.pl script located in the source directory for vicidial, follow the following commands to get to and run it:

cd /usr/src/astguiclient/trunk
perl install.pl

Now follow the prompt and answer them accordingly. The pictures below will show the choices needed for each server role except make sure you set the IP for the DB server on all the rest instead of localhost.

DB Server and Web Server

DB Server

For the web server make sure you put the DB server IP instead of localhost

Asterisk Servers

Only use 5 and 7 on ONE asterisk server, not all, the rest put 123468

Make sure you only put 5 and 7 keepalives on one asterisk server, the rest you should only choose 123468.

Step 4 – Add them to the GUI for ViciDial

Now we need to add them into the GUI for Vicidial by going to Admin then servers

Go to Servers in the Admin area

Once you are here, click “Add a new server”

Once you are here, click "Add a new server"
Once you are here, click “Add a new server”

Fill out the fields accordingly and click submit

Add a new server

Now for the DB and web server turn the options to N(no) where you see highlighted below:

Active server, Active Asterisk server and Active agent server set to N

Now reboot all servers and then check your reports page to make sure all servers are set to green like shown below

ViciDial Cluster
ViciDial Cluster

That’s all there is to it, not as hard as you thought it would be, right? If you have any questions feel free to join our live support on Skype:

Skype Channel

I hope this helps!

Chris aka carpenox

Table of Contents – Knowledge Base

CyburDial

I am carpenox from the Vicidial forums and I enjoy helping our community, of which I do free of charge, however my one on one time helping people out I do have to charge for my time in order to keep this going. If my articles have helped you out and you’re making money now because of my help, please think about donating to the cause so I can keep this blog going. Here is a link to donate through PayPal.

Check out all of our social media platforms -:- https://linktr.ee/CyburDial

Table of Contents

Information

HIPPA Compliance
HIPPA Compliance

Book time with carpenox now

ViciDial Scratch Install Instructions

Troubleshooting ViciDial

How To’s

Security

STAYING COMPLIANT

How to – fix the Python repo for Vicidial – Repository ‘openSUSE-Leap-15.2-Devel-Languages-Python’ is invalid.

Repository 'openSUSE-Leap-15.2-Devel-Languages-Python' is invalid.

How to fix the Python repo for Vicidial – Repository ‘openSUSE-Leap-15.2-Devel-Languages-Python’ is invalid.

So I know a lot of you have asked about the python repo issue with leap 15.2 after upgrading so here is a quick fix in relation to that.

Repository 'openSUSE-Leap-15.2-Devel-Languages-Python' is invalid
Repository ‘openSUSE-Leap-15.2-Devel-Languages-Python’ is invalid

Step 1 – Remove the bad repo

Its most likely going to be listed on the 1 slot as below but make sure by typing:

  • zypper lr
zypper lr

Remove it by typing zypper rr with the number, in this case 1

  • zypper rr 1

Step 2 – Add the new repo

zypper addrepo https://download.opensuse.org/repositories/devel:languages:python:Factory/openSUSE_Leap_15.2/devel:languages:python:Factory.repo
zypper refresh

That’s all there is to it, I hope this helps

Chris aka carpenox

CyburDial – Check out our new interface

CyburDial

CyburDial – Check out our new admin and agent interfaces

We are pleased to announce the release of our new interface! Check our the admin and agent areas with our fresh new professional look. You can login through www.cyburdial.com with the username: 0000 and the password: demo but make sure you login through the firewall access first in order to have your IP added to the firewall.

CyburDial Admin Interface

CyburDial Admin theme
CyburDial Admin Theme

Our easy to navigate agent interface has all the features you could need and a nice crisp clean look that brings our industry into the year 2022!

CyburDial Agent Interface

CyburDial Agent Interface
CyburDial Agent Interface

Realtime campaign monitoring

Realtime campaign monitoring

Check out our complete pricing and features here or fill out the form below to get a custom quote

How to – use one dynamic portal for whitelisting and have it sync across an entire cluster

Dynamic Portal

How to – use one dynamic portal for whitelisting and have it sync across an entire cluster

This article will go over a method I have recently come up with in order to have your agents sign in through one dynamic portal and have their IP validated across all servers in the cluster.

Step 1 – Generate a SSH key

In your linux cli simply type “ssh-keygen” and just press enter for all default values with no password as shown below

ssh-keygen
ssh-keygen

Step 2 – copy the ssh key to the other servers you need it synced to

ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.80.121 (replace IP with the servers Ip’s as you do each one)

Type yes and then enter the servers root password, do these steps for each server in your cluster

ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.80.121

Step 3 – rsync the Dynamic IP firewall list to the other servers

Replace the IP’s with each one in your cluster and repeat this step for each

  • Vicibox9 users use this command: /usr/bin/rsync -a -e “ssh” /tmp/VB-DYNAMIC-tmp root@192.168.80.121:/tmp/
  • Vicibox10 users use this one: /usr/bin/rsync -a -e “ssh” /tmp/dynamiclist-add-tmp root@192.168.80.121:/tmp/
/usr/bin/rsync -a -e “ssh” /tmp/dynamiclist-add-tmp root@192.168.80.121:/tmp/

Step 4 – Now add a cronjob to have this done every minute with one line for each server as shown below

  • ###Dynportal Sync
  • * * * * * /usr/bin/rsync -a -e “ssh” /tmp/dynamiclist-add-tmp root@192.168.80.120:/tmp/
  • * * * * * /usr/bin/rsync -a -e “ssh” /tmp/dynamiclist-add-tmp root@192.168.80.121:/tmp/

That’s all there is to it, now you can have your agents login through a single dynamic portal and sync it through to all servers in your cluster.

I hope this helps

Chris aka carpenox

How to migrate from CentOS 8 to AlmaLinux 8.5(conversion)

How to migrate from CentOS 8 to AlmaLinux (conversion)

I already wrote about migrating from CentOS 8 to Rocky Linux. Today, this quick post will list steps to convert existing VM or bare metal server from CentOS 8 to AlmaLinux 8.

WARNING! Make a backup before you start upgrading and the conversion procedure. I am an experienced Linux user, developer and sysadmin. However, there is no substitute for backups. Keep verified backups. Do not proceed further without backups. CyburDial is not responsible for data loss.

If you are doing this over an SSH session, I recommend running commands over GNU/screen or Tmux terminal multiplexer.

Migrating from CentOS 8 to AlmaLinux (conversion)

  1. Log in as the root user:
    sudo -i
  2. Apply pending updates to CentOS 8 by running the dnf command/yum command:
    dnf update

  • Apply pending updates before migration starts
  • Reboot the Linux box when new kernel updates are installed:
    reboot
  • After reboot, you need to download the almalinux-deploy.sh script using the wget or curl command, type:
    wget https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh
    # read the script #
    vim almalinux-deploy.sh
  • Next set up executable permission using the chmod command, run:
  • chmod -v +x almalinux-deploy.sh
  • Downloading almalinux-deploy.sh script
  • Finally, migrate CentOS to AlmaLinux by typing the almalinux-deploy.sh:
    ./almalinux-deploy.sh
  • Migrating from CentOS 8 to AlmaLinux started
  • AlmaLinux migration tool in action
  • The upgrade and migration will take their own sweet time. It all depends upon your server hardware specification and the Internet speed. So wait and watch for errors on the screen. In the end, you should see a confirmation message as follows on screen:Complete! Run dnf distro-sync -y OK Restoring of alternatives is done OK Generating grub configuration file … done All Secure Boot related packages which were released by not AlmaLinux are reinstalledOK   Migration to AlmaLinux is completed
  • Reboot the Linux box hosted at AWS or Linode:
    shutdown -r now
    Connection to 3.1x.2xx.2xx closed by remote host.
  • Finally, verify the AlmaLinux version, run: cat /etc/redhat-release
    ## OR ##
    cat /etc/os-release
  • CentOS to Almalinux migration successfully executed
  • Also, make sure all services such as PGSQL, Apache and others are running using the ps command or ss command:
    ss -tulpn | more
    ss -tulpn | grep ":80"
    # Verify logs using the tail command and dmesg command+egrep command #
    tail -f /var/log/httpd/app_name_goes_here
    dmesg | egrep -i 'error|critical|warn'

This will convert your centos8 system over to AlmaLinux

Last step is to recompile dahdi:

cd /usr/src/dahdi-linux-complete-3.1.0+3.1.0/

make && make install

modprobe dahdi

dahdi_cfg -v (to check no errors)

I hope this helps

-Carpenox aka Chris

How to migrate from CentOS 8 to Rocky Linux (conversion)

RockyLinux

What is Rocky Linux?

Rocky Linux is an open-source operating system and one of the strongest replacement candidates for CentOS 8. It is a 100% binary-compatible release using the Red Hat Enterprise Linux (RHEL). Let us see how to migrate CentOS 8 Linux live server to Rocky Linux 8 using a shell script provided by the Rocky Linux project.

Step 1 – Backup CentOS 8

I started the migration process with backup. I do have nightly backups, but before upgrading, I made a snapshot to revert back when something goes wrong. In other words, keep verified backups.

Step 2 – Installing all updates on CentOS 8

Then I log in using the ssh command:
ssh user@cyburdial-php8-app1


Now, all we have to do is use the dnf command to apply all pending updates:
sudo dnf update


Finally, reboot the Linux box using the shutdown command or reboot command:
sudo reboot


Let us verify CentOS Linux 8 version using the cat command or more command/less command:
more /etc/centos-release

RockyLinux
RockyLinux

Step 3 – Installing git client on CentOS 8

We need git to install the migration script. Is git installed on the server? Let us find out. Execute the type command:
type -a git


Let us search for the git package, Execute:
dnf list git
dnf search git
dnf info git


Now, install git on your server with the help of the dnf utility, Execute:
sudo dnf install git
type -a git

Clone the repo to install migration tool called rocky-tool

Finally, we need to clone the rocky-tools repo with the help of the git command:
cd /tmp/
git clone https://github.com/rocky-linux/rocky-tools.git

Getting ready for Rocky Linux migration

Step 4 – Migrating from CentOS 8 to Rocky Linux

  1. Change the directory using cd command where rocky-tools cloned:
    cd /tmp/rocky-tools/migrate2rocky
  2. Set up executable permissions using the chmod command:
    chmod -v +x migrate2rocky.sh
  3. Start the migration from CentOS 8 to Rocky Linux by typing the migrate2rocky.sh command:
    ./migrate2rocky.sh -r
  4. Follow on-screen instructions and wait for some time to finish the migration job. At the end you should see:Done, please reboot your system.
    A log of this installation can be found at /var/log/migrate2rocky.log

How to – Scratch install Vicidial on RockyLinux 8.5

RockyLinux

How to – Scratch install Vicidial on RockyLinux 8.5

RockyLinux 8.5

This article goes over how to install vicidial on RockyLinux 8

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

Set Default Editor to nano:
yum -y install nano

nano /etc/bashrc

Then add this line at the bottom:
export EDITOR="nano"

timedatectl set-timezone America/New_York


rc.local not work:

chmod +x /etc/rc.d/rc.local
systemctl enable rc-local
systemctl start rc-local
systemctl status rc-local

yum check-update
yum -y install epel-release
reboot

yum update -y
reboot

yum groupinstall "Development Tools" -y

reboot

yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
yum -y install http://rpms.remirepo.net/enterprise/remi-release-8.rpm
yum -y install yum-utils
dnf module enable php:remi-7.4


sudo dnf install -y mariadb-server

sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --set-enabled powertools


yum install -y php php-mcrypt php-cli php-gd php-curl php-mysql php-ldap php-zip php-fileinfo php-opcache wget unzip make patch gcc gcc-c++ subversion php php-devel php-gd gd-devel readline-devel php-mbstring php-mcrypt php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel httpd libpcap libpcap-devel libnet ncurses ncurses-devel screen kernel* mutt glibc.i686 certbot python3-certbot-apache mod_ssl openssl-devel newt-devel libxml2-devel kernel-devel sqlite-devel libuuid-devel sox sendmail lame-devel htop iftop perl-File-Which php-opcache libss7 mariadb-devel libss7* libopen* 

systemctl start mariadb
mysql_secure_installation
systemctl enable mariadb

systemctl stop mariadb
cp /etc/my.cnf /etc/my.cnf.original
echo "" > /etc/my.cnf

nano /etc/my.cnf ; copy the below config to this file.

####################################################################################################

[mysql.server]
user = mysql
#basedir = /var/lib

[client]
port = 3306 
socket = /var/lib/mysql/mysql.sock

[mysqld]
datadir = /var/lib/mysql
#tmpdir = /home/mysql_tmp
socket = /var/lib/mysql/mysql.sock
user = mysql
old_passwords = 0
ft_min_word_len = 3
max_connections = 800
max_allowed_packet = 32M
skip-external-locking
sql_mode="NO_ENGINE_SUBSTITUTION"

log-error = /var/log/mysqld/mysqld.log

query-cache-type = 1
query-cache-size = 32M

long_query_time = 1
#slow_query_log = 1
#slow_query_log_file = /var/log/mysqld/slow-queries.log

tmp_table_size = 128M
table_cache = 1024

join_buffer_size = 1M
key_buffer = 512M
sort_buffer_size = 6M
read_buffer_size = 4M
read_rnd_buffer_size = 16M
myisam_sort_buffer_size = 64M

max_tmp_tables = 64

thread_cache_size = 8
thread_concurrency = 8

# If using replication, uncomment log-bin below
#log-bin = mysql-bin

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[isamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

[mysqld_safe]
#log-error = /var/log/mysqld/mysqld.log
#pid-file = /var/run/mysqld/mysqld.pid

  • mkdir /var/log/mysqld
  • touch /var/log/mysqld/slow-queries.log
  • chown -R mysql:mysql /var/log/mysqld
  • systemctl restart mariadb
Install the Perl Modules
yum install -y perl-CPAN perl-YAML perl-libwww-perl perl-DBI perl-DBD-MySQL perl-GD perl-Env perl-Term-ReadLine-Gnu perl-SelfLoader perl-open.noarch

cpan -i Tk String::CRC Tk::TableMatrix Net::Address::IP::Local Term::ReadLine::Gnu Spreadsheet::Read Net::Address::IPv4::Local RPM::Specfile Spreadsheet::XLSX Spreadsheet::ReadSXC MD5 Digest::MD5 Digest::SHA1 Bundle::CPAN Pod::Usage Getopt::Long DBI DBD::mysql Net::Telnet Time::HiRes Net::Server Mail::Sendmail Unicode::Map Jcode Spreadsheet::WriteExcel OLE::Storage_Lite Proc::ProcessTable IO::Scalar Scalar::Util Spreadsheet::ParseExcel Archive::Zip Compress::Raw::Zlib Spreadsheet::XLSX Test::Tester Spreadsheet::ReadSXC Text::CSV Test::NoWarnings Text::CSV_PP File::Temp Text::CSV_XS Spreadsheet::Read LWP::UserAgent HTML::Entities HTML::Strip HTML::FormatText HTML::TreeBuilder Switch Time::Local Mail::POP3Client Mail::IMAPClient Mail::Message IO::Socket::SSL readline

cd /usr/bin/
curl -LOk http://xrl.us/cpanm
chmod +x cpanm


cpanm -f File::HomeDir
cpanm -f File::Which
cpanm CPAN::Meta::Requirements
cpanm -f CPAN
cpanm YAML
cpanm MD5
cpanm Digest::MD5
cpanm Digest::SHA1
cpanm readline


cpanm Bundle::CPAN
cpanm DBI
cpanm -f DBD::mysql
cpanm Net::Telnet
cpanm Time::HiRes
cpanm Net::Server
cpanm Switch
cpanm Mail::Sendmail
cpanm Unicode::Map
cpanm Jcode
cpanm Spreadsheet::WriteExcel
cpanm OLE::Storage_Lite
cpanm Proc::ProcessTable
cpanm IO::Scalar
cpanm Spreadsheet::ParseExcel
cpanm Curses
cpanm Getopt::Long
cpanm Net::Domain
cpanm Term::ReadKey
cpanm Term::ANSIColor
cpanm Spreadsheet::XLSX
cpanm Spreadsheet::Read
cpanm LWP::UserAgent
cpanm HTML::Entities
cpanm HTML::Strip
cpanm HTML::FormatText
cpanm HTML::TreeBuilder
cpanm Time::Local
cpanm MIME::Decoder
cpanm Mail::POP3Client
cpanm Mail::IMAPClient
cpanm Mail::Message
cpanm IO::Socket::SSL
cpanm MIME::Base64
cpanm MIME::QuotedPrint
cpanm Crypt::Eksblowfish::Bcrypt
cpanm Crypt::RC4
cpanm Text::CSV
cpanm Text::CSV_XS

cd /usr/src
wget http://download.vicidial.com/required-apps/asterisk-perl-0.08.tar.gz
tar xzf asterisk-perl-0.08.tar.gz
cd asterisk-perl-0.08
perl Makefile.PL
make all
make install 

dnf --enablerepo=powertools install libsrtp-devel -y
yum install -y elfutils-libelf-devel libedit-devel

cd /usr/src
wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
tar -zxf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure
make
make install

cd /usr/src/
wget https://digip.org/jansson/releases/jansson-2.13.tar.gz
tar xvzf jansson*
cd jansson-2.13
./configure
make clean
make
make install 
ldconfig

UPDATE: 6/22/21 - Ty @Ankit for catching the wrong directiory below 

cd /usr/src/
wget https://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
tar xzf dahdi*
cd /usr/src/dahdi-linux-complete-3.1.0+3.1.0/
nano /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/include/dahdi/kernel.h
remove #include: </linux/pci-aspm.h>
make
make install
make install-config
(if you get an error here about 4.18.0-305.7.1.el8_4.x86_64 missing then do "yum install *4.18.0-305.7.1.el8_4.x86_64")

yum install dahdi-tools-libs

cd tools
make clean
make
make install
make install-config

if it gives an error /usr/sbin/dahdi_cfg -vvvvvvvvvvvvv 
edit the file "system.conf.sample" in "system.conf"


cd /usr/src/
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.6.0.tar.gz
tar xzf libpri-1.6.0.tar.gz
cd /usr/src/libpri-1.6.0
make clean
make
make install

nano  /etc/php.ini
error_reporting  =  E_ALL & ~E_NOTICE
memory_limit = 128M
short_open_tag = On
max_execution_time = 330
max_input_time = 360
post_max_size = 100M
upload_max_filesize = 42M
default_socket_timeout = 360
date.timezone = Europe/Rome

cd /usr/src/
wget http://download.vicidial.com/required-apps/asterisk-13.29.2-vici.tar.gz
tar xzf asterisk-13.29.2-vici.tar.gz
cd /usr/src/asterisk-13.29.2/
./configure --libdir=/usr/lib64 --with-pjproject-bundled -with-jansson-bundled
make clean
make menuselect    ; ####### select "app_meetme" "res_http_websocket" and "res_srtp"
make
make install
make samples
make config


mkdir /usr/src/astguiclient
cd /usr/src/astguiclient
svn checkout svn://svn.eflo.net:3690/agc_2-X/trunk


mysql
SET GLOBAL connect_timeout=60;
CREATE DATABASE `asterisk` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'cron'@'localhost' IDENTIFIED BY '1234';
GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES on asterisk.* TO cron@'%' IDENTIFIED BY '1234';
CREATE USER 'custom'@'localhost' IDENTIFIED BY 'custom1234';
GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES on asterisk.* TO custom@'%' IDENTIFIED BY 'custom1234';
GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES on asterisk.* TO cron@localhost IDENTIFIED BY '1234';
GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES on asterisk.* TO custom@localhost IDENTIFIED BY 'custom1234';
GRANT RELOAD ON *.* TO cron@'%';
GRANT RELOAD ON *.* TO cron@localhost;
GRANT RELOAD ON *.* TO custom@'%';
GRANT RELOAD ON *.* TO custom@localhost;
flush privileges;
use asterisk;
\. /usr/src/astguiclient/trunk/extras/MySQL_AST_CREATE_tables.sql
\. /usr/src/astguiclient/trunk/extras/first_server_install.sql
ALTER TABLE phones ALTER template_id SET DEFAULT '';
quit

cd /usr/src/astguiclient/trunk

perl install.pl


*Within the install.pl script make sure you Copy Asterisk Settings=Yes + Server webroot path=/var/www/html

/usr/share/astguiclient/ADMIN_area_code_populate.pl
/usr/share/astguiclient/ADMIN_update_server_ip.pl --old-server_ip=10.10.10.15
nano /etc/rc.local

### paste this below: 

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

# OPTIONAL enable ip_relay(for same-machine trunking and blind monitoring)
/usr/share/astguiclient/ip_relay/relay_control start 2>/dev/null 1>&2

# Disable console blanking and powersaving
/usr/bin/setterm -blank
/usr/bin/setterm -powersave off
/usr/bin/setterm -powerdown

### start up the MySQL server
systemctl restart mariadb.service

### start up the apache web server
systemctl restart apache2

### roll the Asterisk logs upon reboot
/usr/share/astguiclient/ADMIN_restart_roll_logs.pl

### clear the server-related records from the database
/usr/share/astguiclient/AST_reset_mysql_vars.pl

### load dahdi drivers
modprobe dahdi
/usr/sbin/dahdi_cfg -vvvvvvvvvvvvv

### sleep for 20 seconds before launching Asterisk
sleep 20

### start up asterisk
/usr/share/astguiclient/start_asterisk_boot.pl

type "crontab -e"

### paste below:

### recording mixing/compressing/ftping scripts
#0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl
0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl --MIX
0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_VDonly.pl
1,4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58 * * * * /usr/share/astguiclient/AST_CRON_audio_2_compress.pl --GSM
#2,5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59 * * * * /usr/share/astguiclient/AST_CRON_audio_3_ftp.pl --GSM

### keepalive script for astguiclient processes
* * * * * /usr/share/astguiclient/ADMIN_keepalive_ALL.pl --cu3way

### kill Hangup script for Asterisk updaters
* * * * * /usr/share/astguiclient/AST_manager_kill_hung_congested.pl

### updater for voicemail
* * * * * /usr/share/astguiclient/AST_vm_update.pl

### updater for conference validator
* * * * * /usr/share/astguiclient/AST_conf_update.pl

### flush queue DB table every hour for entries older than 1 hour
11 * * * * /usr/share/astguiclient/AST_flush_DBqueue.pl -q

### fix the vicidial_agent_log once every hour and the full day run at night
33 * * * * /usr/share/astguiclient/AST_cleanup_agent_log.pl
50 0 * * * /usr/share/astguiclient/AST_cleanup_agent_log.pl --last-24hours
## uncomment below if using QueueMetrics
#*/5 * * * * /usr/share/astguiclient/AST_cleanup_agent_log.pl --only-qm-live-call-check

## uncomment below if using Vtiger
#1 1 * * * /usr/share/astguiclient/Vtiger_optimize_all_tables.pl --quiet

### updater for VICIDIAL hopper
* * * * * /usr/share/astguiclient/AST_VDhopper.pl -q

### adjust the GMT offset for the leads in the vicidial_list table
1 1,7 * * * /usr/share/astguiclient/ADMIN_adjust_GMTnow_on_leads.pl --debug

### reset several temporary-info tables in the database
2 1 * * * /usr/share/astguiclient/AST_reset_mysql_vars.pl

### optimize the database tables within the asterisk database
3 1 * * * /usr/share/astguiclient/AST_DB_optimize.pl

## adjust time on the server with ntp
30 * * * * /usr/sbin/ntpdate -u pool.ntp.org 2>/dev/null 1>&2

### VICIDIAL agent time log weekly and daily summary report generation
2 0 * * 0 /usr/share/astguiclient/AST_agent_week.pl
22 0 * * * /usr/share/astguiclient/AST_agent_day.pl

### VICIDIAL campaign export scripts (OPTIONAL)
#32 0 * * * /usr/share/astguiclient/AST_VDsales_export.pl
#42 0 * * * /usr/share/astguiclient/AST_sourceID_summary_export.pl

### remove old recordings more than 7 days old
#24 0 * * * /usr/bin/find /var/spool/asterisk/monitorDONE -maxdepth 2 -type f -mtime +7 -print | xargs rm -f

### roll logs monthly on high-volume dialing systems
#30 1 1 * * /usr/share/astguiclient/ADMIN_archive_log_tables.pl

### remove old vicidial logs and asterisk logs more than 2 days old
28 0 * * * /usr/bin/find /var/log/astguiclient -maxdepth 1 -type f -mtime +2 -print | xargs rm -f
29 0 * * * /usr/bin/find /var/log/asterisk -maxdepth 3 -type f -mtime +2 -print | xargs rm -f
30 0 * * * /usr/bin/find / -maxdepth 1 -name "screenlog.0*" -mtime +4 -print | xargs rm -f

### cleanup of the scheduled callback records
25 0 * * * /usr/share/astguiclient/AST_DB_dead_cb_purge.pl --purge-non-cb -q

### GMT adjust script - uncomment to enable
#45 0 * * * /usr/share/astguiclient/ADMIN_adjust_GMTnow_on_leads.pl --list-settings

### Dialer Inventory Report
1 7 * * * /usr/share/astguiclient/AST_dialer_inventory_snapshot.pl -q --override-24hours

### inbound email parser
* * * * * /usr/share/astguiclient/AST_inbound_email_parser.pl
nano /etc/httpd/conf.d/record.conf

Alias /RECORDINGS/ "/var/spool/asterisk/monitorDONE/"

<Directory "/var/spool/asterisk/monitorDONE">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
    Require all granted 
        <files *.mp3>
            Forcetype application/forcedownload
        </files>
</Directory>

for synchronization problems:

yourserverip/vicidial/admin.php

go to Admin-> Servers-> update Asterisk Version: 13.29.2-vici

Video Version from HBTutorials