Archives October 2020

How to – Vicibox 9 Scratch Install: OpenSuse 15.1 – Lightsail instance

CyburDial Admin Page

How to – Vicibox 9 Scratch Install: OpenSuse 15.1

Here are the steps I used to do a vicibox 9 scratch install on Leap 15.1

###This is going to help you install Vicidial 9.0.2 on OpenSuSE 15.1 on an Amazon AWS Lightsail Virtual Server###

###First open an account on AWS and create an instance on Lightsail, choose linux, os only, opensuse.

###once its started, click on manage, then go to networking and create a static ip, attach it.

###SSH to the server, you will need to have a ssh key to do this, download the .pem file from amazon and use puttygen to convert it, ###instructions are there in lightsail

###Now is where it starts and i will just be telling you the commands to run


  • sudo -i
  • zypper install kernel*
  • press # 2 for all 4 choices it gives you
  • zypper ar https://download.opensuse.org/repositories/home:vicidial:asterisk-13/openSUSE_Leap_15.1/home:vicidial:asterisk-13.repo
  • zypper ref
  • zypper up
  • zypper install asterisk
  • reboot
  • sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/semanage.conf
sudo -i 
zypper install kernel* 
press # 2 for all 4 choices it gives you 
zypper ar https://download.opensuse.org/repositories/home:vicidial:asterisk-13/openSUSE_Leap_15.1/home:vicidial:asterisk-13.repo
zypper ar https://download.opensuse.org/repositories/home:/vicidial/openSUSE_Leap_15.1/home:vicidial.repo
zypper ref
zypper up 
zypper install asterisk 
reboot 
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/semanage.conf

***Add Swap File

  • mkdir -p /var/lib/swap
  • dd if=/dev/zero of=/var/lib/swap/swapfile bs=1M count=1024
  • mkswap /var/lib/swap/swapfile
  • swapon /var/lib/swap/swapfile
  • cat /proc/swaps

***Add Swap into startup

  • vim /etc/fstab
  • Type “i”
  • Add a new line below what’s there
  • COPY whats in quotes – “/var/lib/swap/swapfile swap swap defaults 0 0” Press CNTL+C
  • Type what’s in quotes – “:wq”
  • Press Enter

###installing dependencies

  • zypper install make patch gcc gcc-c++ subversion php php-devel php-gd gd-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 mysql-devel ntp mutt wget nano unzip sipsak sox libuuid-devel
  • zypper install sqlite3-devel
  • zypper install mariadb-server mariadb
  • zypper install httpd php-common php-pdo mod_ssl perl-DBI perl-DBD-MySQL perl-Digest-HMAC perl-YAML
  • zypper install perl-ExtUtils-ParseXS perl-NetAddr-IP perl-Crypt-SSLeay perl-Curses perl-DBD-Pg perl-Module-ScanDeps perl-Text-CSV perl-HTML-Template perl-IO-Compress perl-Text-Glob perl-Jcode perl-Test-Script perl-Archive-Tar perl-Test-Base perl-OLE-Storage_Lite perl-Archive-Zip perl-Net-Server perl-Convert-ASN1 perl perl-Compress-Raw-Zlib perl-Digest-SHA1 perl-Data-Dumper perl-Error perl-ExtUtils-CBuilder perl-Test-Tester perl-Parse-RecDescent perl-Spiffy perl-IO-Zlib perl-Module-Build perl-HTML-Parser perl-Net-SSLeay perl-Proc-ProcessTable perl-TermReadKey perl-Term-ReadLine-Gnu perl-Digest-SHA perl-Tk perl-Net-SNMP perl-Test-NoWarnings perl-XML-Writer perl-Proc-PID-File perl-Compress-Raw-Bzip2 perl-libwww-perl perl-XML-Parser perl-File-Remove perl-Parse-CPAN-Meta perl-Set-Scalar perl-Probe-Perl perl-File-Which perl-Package-Constants perl-Module-Install perl-File-HomeDir perl-Spreadsheet-ParseExcel perl-Mail-Sendmail
  • zypper install perl-Spreadsheet-XLSX asterisk-perl perl-version perl-Crypt-DES perl-URI perl-Net-Daemon perl-IO-stringy perl-YAML-Tiny perl-HTML-Tagset perl-Socket6 perl-BSD-Resource perl-IPC-Run3 perl-Text-CSV_XS perl-Unicode-Map perl-Net-Telnet perl-PAR-Dist perl-Date-Manip perl-JSON perl-rrdtool lame screen iftop dahdi-linux-devel perl-GD

###preparing for the next part with MCPAN

  • perl -MCPAN -e ‘my $c = “CPAN::HandleConfig”; $c->load(doit => 1, autoconfig => 1); $c->edit(prerequisites_policy => “follow”); $c->edit(build_requires_install_policy => “yes”); $c->commit’
  • cpan -i String::CRC Tk::TableMatrix Net::Address::IP::Local Term::ReadLine::Gnu Spreadsheet::Read Net::Address::IPv4::Local RPM::Specfile Spreadsheet::XLSX Spreadsheet::ReadSXC
  • cpan 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 MIME::POP3Client Mail::IMAPClient Mail::Message IO::Socket::SSL readline

###copy and paste this at the same time:

  • cd /usr/bin/
  • curl -LOk http://xrl.us/cpanm
  • chmod +x cpanm
  • cpanm -f File::Which
  • cpanm -f File::HomeDir
  • cpanm CPAN::Meta::Requirements
  • cpanm -f CPAN
  • cpanm YAML
  • cpanm MD5
  • cpanm Digest::MD5
  • cpanm Digest::SHA1
  • cpanm Bundle::CPAN
  • cpanm -f DBD::mysql
  • cpanm Curses
  • cpanm Getopt::Long
  • cpanm Net::Domain
  • cpanm Term::ReadKey
  • cpanm Term::ANSIColor
  • cpanm HTML::FormatText
  • cpanm MIME::Decoder
  • cpanm Mail::POP3Client
  • cpanm User::Identity –force
  • cpanm Mail::Message
  • cpanm Crypt::Eksblowfish::Bcrypt

###lets add mysql(mariadb) and apache2 as services to autostart

  • systemctl start mariadb; systemctl enable mariadb; systemctl start apache2; systemctl enable apache2

###reboot the pc

***Asterisk PERL Module 0.8 Installation – Zypper in asterisk-perl

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

***Install Jansson

  • cd /usr/src/
  • wget http://www.digip.org/jansson/releases/jansson-2.9.tar.gz
  • tar -zvxf jansson-2.9.tar.gz
  • cd jansson-2.9
  • ./configure && make clean && make && make install
  • ldconfig
  • rm *.tar.gz

***Install Asterisk – Dadhi and libpri

  • mkdir /usr/src/asterisk
  • cd /usr/src/asterisk
  • wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz
  • wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
  • wget http://download.vicidial.com/required-apps/asterisk-13.29.2-vici.tar.gz
  • tar xzf asterisk-*
  • tar xzf dahdi-linux-complete-*
  • tar xzf libpri-*
  • cd /usr/src/asterisk/dahdi-linux-complete-3.1.0+3.1.0/
  • rpm -i https://rpmfind.net/linux/opensuse/update/leap/15.1/oss/noarch/kernel-devel-4.12.14-lp151.28.48.1.noarch.rpm
  • make && make install
  • cd /usr/src/asterisk/libpri-1.6.0
  • make clean
  • make
  • make install
  • cd /usr/src/asterisk/asterisk-13.29.2/
  • ./configure –libdir=/usr/lib64
  • make clean
  • make menuselect*
  • !!!*MAKE SURE TO scroll down to Applications, press enter, scroll down to > App.MeetME press space bar so you see: [*] and press x to save and exit
  • make && make install && make samples
  • chkconfig asterisk on

***DataBase Creation

  • mysql -p
  • press enter for no password
  • 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’;
  • GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES on asterisk.* TO cron@localhost IDENTIFIED BY ‘1234’;
  • GRANT RELOAD ON *.* TO cron@’%’;
  • GRANT RELOAD ON *.* TO cron@localhost;
  • flush privileges;
  • quit

***Install ViciDial

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

##make sure to change web directory to /srv/www/htdocs and to put your public ip, and to put 13.X for asterisk version

***Import MySQL Settings

  • mysql -u root -p
  • SET GLOBAL connect_timeout=60;
  • 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 ”;
  • \. /usr/src/astguiclient/trunk/extras/sip-iax_phones.sql
  • quit

/usr/share/astguiclient/ADMIN_area_code_populate.pl

***Edit /etc/rc.local to contain the following code (enter vi /etc/rc.local to edit with vi, nano /etc/rc.local to edit with nano, ed /etc/rc.local to edit with sed… choose an editor to your liking):

  • #!/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 start mariadb.service systemctl enable mariadb.service
  • ### start up the apache web server
  • systemctl start apache2 systemctl enable 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
vicibox 9 scratch install
vicibox 9 scratch install

***Adding to Crontab

crontab -e

**Once it opens, Press “i” and then paste the following into crontab:


  • ### 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

!!!!END CRONTAB HERE

reboot

###once it restarts, type “yast” go to network services > http, on the first screen tab to next, then second screen enable all 3 modules(php, python and perl) and then keep going next on the last pages until u get to finish.

vim /etc/asterisk/manager.conf

find enabled=no and change to yes

save and restart

http://127.0.0.1/vicidial/admin.php

Enjoy!!!

Link to easily copy these commands: https://textuploader.com/1qfh9

Or if you prefer the Video version, check our our friend Harolds youtube:

-Nox

How to – Fix the Vicidial error: Code Expects Different Schema

different schema

How to – Fix the Vicidial error: Code Expects Different Schema

This is a pretty easy fix, “Code Expects Different Schema” occurs when you update your svn version but forget to update the db schema through mysql. The instructions are below.

different schema
different schema

After database dump restoration taken from older Vicibox to the latest Vicibox 9.0.3 I got the following error in Admin -> System Settings section:

WARNING: Code expects different schema: 1585

It’s not possible to change or save any setting. The reason is obvious: Vicibox 9 has new and altered tables and functions so you will have to add them to the restored database before you can use system.

First, confirm your current database schema version. Log in to MariaDB command prompt and perform the following query:

1MariaDB> SELECT db_schema_version FROM system_settings;

Next, navigate to /usr/src/astguiclient/trunk/extras folder and locate upgrade_X.XX.sql files. Open the newest file and if it contains this schema version – this is the one that needs to be executed. In case you found your DB schema version not in the newest .sql , execute it first and then all newer files.

Please make note that some tables and functions may already exist in your database that’s why add -f key to the mysql command:

1# mysql -u root -f asterisk < /usr/src/astguiclient/trunk/extras/upgrade_2.14.sql

Confirm your current database schema version again and make sure it’s been upgraded.

Now you should be able to use the system and change/set settings.

I hope this helps

-Nox

How to – Fix error in Vicidial: There is a time synchronization problem with your system, please tell your system administrator

timesyncerror

How to – Fix error in Vicidial: There is a time synchronization problem with your system, please tell your system administrator

There is a time synchronization problem with your system, please tell your system administrator

There is a time synchronization problem with your system
Time Sync Error

In case you have this error upon installation or upgrade your Vicibox/Vicidial check the following:

  1. Using timedatectl utility make sure server’s timezone is set correctly and server’s date/time is correct. Set proper timezone if needed
  2. Check that timezone is correct in /etc/php7/apache2/php.ini. Set proper timezone if needed and restart Apache
  3. If it did not help check and compare time values in Vicidial database, server time and PHP time. Use the following command:
1# echo “SELECT server_ip, UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater” | mysql -uroot asterisk && php -r “date_default_timezone_set(‘America/New_York’); echo ‘php time: ‘.date(‘U’);” && echo “”

Specify your timezone in the command above. This should output three values that must be the same.

If DB time is wrong it means that /usr/share/astguiclient/AST_update.pl script does not update DB value. Try to launch it manually and check for output.

If it throws error:

pattern match timed-out at /usr/share/astguiclient/AST_update.pl line 470

The code at line 470 is a “waitfor()” function that is attempting to match the response from the Asterisk server with a regex pattern but the response from the server doesn’t match the regex pattern.

Patch the file:

in two places near line 470 and near line  534 replace:

$t->waitfor(‘/[0123]\n$/’);

with

$t->waitfor(‘/[0123456789]\n$/’);

then make sure AST_update.pl can run and DB time value is updated.

It expects only 0123 at the end while Asterisk Manager responses with:

123456789# telnet 127.0.0.1 5038 Trying 127.0.0.1… Connected to 127.0.0.1. Escape character is ‘^]’. Asterisk Call Manager/2.10.<strong>5</strong>

Another way to patch:

Original: $t-waitfor(‘/[0123]\n$/]);

Replacement: $t-waitfor(‘/Asterisk Call Manager.+\n$/’);

Check the following files for this issue and patch them as well:

AST_manager_listen.pl   – line 237
AST_manager_listenBUFFER.pl  
– line 236


/usr/share/astguiclient/AST_update.pl runs in a separate detached “ASTupdate” screen and can be accessed as:

1# screen -r ASTupdate

maybe you will need to kill it and start it up again after your database changes was made

To see the list of screens:

12345678910111213141516171819# screen -ls There are screens on:         2715.ASTemail   (Detached)         2712.ASTVDadFILL        (Detached)         2709.ASTfastlog (Detached)         2706.ASTVDadapt (Detached)         2691.ASTupdate  (Detached)         2315.asterisk   (Detached)         2302.astshell20200129173240     (Detached) 7 Sockets in /run/screens/S-root.