Blog

How to – Scratch install Vicidial on AlmaLinux

CyburDial Realtime Screen

How to – Scratch install Vicidial on AlmaLinux

This article will go over how to scratch install Vicidial on AlmaLinux 8.6 -:- Special thanks to https://zestvoip.com/ and https://zenithbsolutions.com/ for testing this out. You can also use the Video tutorial at the bottom created by HBtutorials

IMPORTANT UPDATE: Alma changed one of the dependency packages and the normal install doesn’t work anymore, see the fix at the bottom.

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
yum update -y
yum groupinstall "Development Tools" -y

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 -y 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 enable 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 directory below 

UPDATE: 8/2/23 - TY to Nik and Frank for fixing the install with the added lines I've put below for the dahdi install.

REBOOT!!

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.2.0+3.2.0/
cd /usr/src
git clone -b next 
git://git.asterisk.org/dahdi/linux


yum -y install kernel-devel-$(uname -r)

sudo sed -i 's|, 64);|);|g' /usr/src/dahdi-linux-complete-3.2.0+3.2.0/linux/drivers/dahdi/wctc4xxp/base.c

make
make install
make install-config

yum -y install dahdi-tools-libs

cd tools
make clean
make
make install
make install-config

cd /etc/dahdi
mv system.conf.sample system.conf


cd /usr/src/
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.6.0.tar.gz
tar xzf libpri-1.6.1.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 = America/New_York

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 chan_meetme 
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.d/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
systemctl enable httpd
##Install Sounds

cd /usr/src
wget http://downloads.digium.com/pub/telephony/sounds/asterisk-core-sounds-en-ulaw-current.tar.gz
wget http://downloads.digium.com/pub/telephony/sounds/asterisk-core-sounds-en-wav-current.tar.gz
wget http://downloads.digium.com/pub/telephony/sounds/asterisk-core-sounds-en-gsm-current.tar.gz
wget http://downloads.digium.com/pub/telephony/sounds/asterisk-extra-sounds-en-ulaw-current.tar.gz
wget http://downloads.digium.com/pub/telephony/sounds/asterisk-extra-sounds-en-wav-current.tar.gz
wget http://downloads.digium.com/pub/telephony/sounds/asterisk-extra-sounds-en-gsm-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-moh-opsound-gsm-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-moh-opsound-ulaw-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-moh-opsound-wav-current.tar.gz
#Place the audio files in their proper places:
cd /var/lib/asterisk/sounds
tar -zxf /usr/src/asterisk-core-sounds-en-gsm-current.tar.gz
tar -zxf /usr/src/asterisk-core-sounds-en-ulaw-current.tar.gz
tar -zxf /usr/src/asterisk-core-sounds-en-wav-current.tar.gz
tar -zxf /usr/src/asterisk-extra-sounds-en-gsm-current.tar.gz
tar -zxf /usr/src/asterisk-extra-sounds-en-ulaw-current.tar.gz
tar -zxf /usr/src/asterisk-extra-sounds-en-wav-current.tar.gz
mkdir /var/lib/asterisk/mohmp3
mkdir /var/lib/asterisk/quiet-mp3
ln -s /var/lib/asterisk/mohmp3 /var/lib/asterisk/default
cd /var/lib/asterisk/mohmp3
tar -zxf /usr/src/asterisk-moh-opsound-gsm-current.tar.gz
tar -zxf /usr/src/asterisk-moh-opsound-ulaw-current.tar.gz
tar -zxf /usr/src/asterisk-moh-opsound-wav-current.tar.gz
rm -f CHANGES*
rm -f LICENSE*
rm -f CREDITS*
cd /var/lib/asterisk/moh
rm -f CHANGES*
rm -f LICENSE*
rm -f CREDITS*
cd /var/lib/asterisk/sounds
rm -f CHANGES*
rm -f LICENSE*
rm -f CREDITS*
cd /var/lib/asterisk/quiet-mp3
sox ../mohmp3/macroform-cold_day.wav macroform-cold_day.wav vol 0.25
sox ../mohmp3/macroform-cold_day.gsm macroform-cold_day.gsm vol 0.25
sox -t ul -r 8000 -c 1 ../mohmp3/macroform-cold_day.ulaw -t ul macroform-cold_day.ulaw vol 0.25
sox ../mohmp3/macroform-robot_dity.wav macroform-robot_dity.wav vol 0.25
sox ../mohmp3/macroform-robot_dity.gsm macroform-robot_dity.gsm vol 0.25
sox -t ul -r 8000 -c 1 ../mohmp3/macroform-robot_dity.ulaw -t ul macroform-robot_dity.ulaw vol 0.25
sox ../mohmp3/macroform-the_simplicity.wav macroform-the_simplicity.wav vol 0.25
sox ../mohmp3/macroform-the_simplicity.gsm macroform-the_simplicity.gsm vol 0.25
sox -t ul -r 8000 -c 1 ../mohmp3/macroform-the_simplicity.ulaw -t ul macroform-the_simplicity.ulaw vol 0.25
sox ../mohmp3/reno_project-system.wav reno_project-system.wav vol 0.25
sox ../mohmp3/reno_project-system.gsm reno_project-system.gsm vol 0.25
sox -t ul -r 8000 -c 1 ../mohmp3/reno_project-system.ulaw -t ul reno_project-system.ulaw vol 0.25
sox ../mohmp3/manolo_camp-morning_coffee.wav manolo_camp-morning_coffee.wav vol 0.25
sox ../mohmp3/manolo_camp-morning_coffee.gsm manolo_camp-morning_coffee.gsm vol 0.25
sox -t ul -r 8000 -c 1 ../mohmp3/manolo_camp-morning_coffee.ulaw -t ul manolo_camp-morning_coffee.ulaw vol 0.25
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>

Now make sure you install firewalld and the dynamic portal by going here: https://dialer.one/how-to-scratch-install-the-dynportal-on-centos/

If you have any problems feel free to stop by our live support channel on Skype

for synchronization problems:

yourserverip/vicidial/admin.php

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

Reboot

I hope this helps

-Chris aka carpenox

Video Version

How to – integrate vTiger 7.3 into Vicidial

How to – integrate vTiger 7.3 into Vicidial

This article will go over how to complete a vTiger integration into Vicidial, I have done it and its working on version 7.3. I would like to go a little deeper on this than the original coder wrote up but I will do that over time with pictures and such. I did NOT write this up, this was all done by mstopkey from the vicidial forums.

Credit for this goes to mstopkey from the Vicidial forum: http://www.vicidial.org/VICIDIALforum/viewtopic.php?f=5&t=38869&p=145760&hilit=vtiger+integration#p136775

vTiger Integration
vTiger integration 7.3

VTIGER INTEGRATION WITH VICIDIAL STEPS

Features Working:
1. Inbound dialer call screen pop existing Lead/Contact/Prospect/Organization in Vtiger. If “Entity” does not exist in Vtiger it will insert new Lead.
2. Inbound dialer call logging in Vtiger.
3. Outbound dialer call functions the same as feature # 1.
4. Outbound dialer call logging in Vtiger.
5. Agent login to Vicidial also launches Vtiger and logs in.
6. Vtiger mobile App sync.
7. Vtiger mobile App click to call from cell phone and logging call in Vtiger.

Features not working:
1. Sync Vicidial users to Vtiger. (Currently, manually setup same username/password in Vtiger and Vicidial. Set Vicidial phone extension in Vtiger user)
2. Click to dial from Vtiger through Vicidial.

Future features:
1. Ability for one instance Vicidial to integrate with mutliple Vtiger instances at dialer Inbound Group and Campaign
2. Call recordings from Vicidial available in Vtiger

Vtiger Integration & Configuration:


1. Install Vtiger Open Source 7.3. Follow the on-screen instructions. (If need click to dial from Vtiger, install on same web server as Vicidial web server) “Feature not working yet”
2. COPY file /vtigercrm/includes/http/Request.php to /vtigercrm/includes/http/Request.php.ORIGINAL, this way you have a backup file to restore incase of any problems editing Request.php
3. Edit file /vtigercrm/includes/http/Request.php . On line 213 comment out “throw new Exception(‘illegal request’);” by placing //in front of it. If you don’t, the login request from Vicidial will fail.
4. Create Vtiger users with same usernames and passwords as in Vicidial. Also enter Vicidial phone extension in user field “CRM Phone extension”.

Vicidial Configuration:
1. Update/Upgrade to the Vicidial version and build listed above. BACK IT UP FIRST!
2. Make sure SVN trunk is up to date.
3. On your vicidial web server, COPY file /srv/www/htdocs/vicidial/vtiger_search.php to /srv/www/htdocs/vicidial/vtiger_search.php.ORIGINAL
4. Edit file /srv/www/htdocs/vicidial/vtiger_search.php (NOTE: Leads are no longer in Sales, they are in Marketing. And, Vtiger no longer uses ‘tabs’, it uses ‘app’ for Module lookups)
(a) Comment out line 339 with # in front of it. $account_URL = “$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$vendor_id&parenttab=SALES”;
(b) On line 340, comment out } with # in front of it.
(c) On line 344 change from $account_URL = “$vtiger_url/index.php?module=Accounts&action=DetailView&record=$vendor_id&parenttab=Sales”; TO $account_URL = “$vtiger_url/index.php?module=Accounts&view=Detail&record=$vendor_id&app=SALES”;
(d) Comment out lines 523 through 526 with # in front of them. (FIRST ACTION OF ELSE WILL NOT WORK. ONLY NEED THE ACTION AFTER ELSE. THIS WILL BE REFINED IN FUTURE)
(e) On line 528 change from $account_URL = “$vtiger_url/index.php?module=Accounts&action=DetailView&record=$accountid&parenttab=Sales”; TO $account_URL = “$vtiger_url/index.php?module=Accounts&view=Detail&record=$accountid&app=SALES”;
(f) On line 577 change from $account_URL = “$vtiger_url/index.php?module=Vendors&action=DetailView&record=$vendorid&parenttab=Inventory”; TO $account_URL = “$vtiger_url/index.php?module=Vendors&view=Detail&record=$vendorid&app=INVENTORY”;
(g) Comment out lines 735 through 738 with # in front of them. (FIRST ACTION OF ELSE WILL NOT WORK. ONLY NEED THE ACTION AFTER ELSE. THIS WILL BE REFINED IN FUTURE)
(h) On line 740 change from $account_URL = “$vtiger_url/index.php?module=Leads&action=EditView&record=$leadid&parenttab=Sales”; TO $account_URL = “$vtiger_url/index.php?module=Leads&view=Detail&record=$leadid&app=MARKETING”; (YES, THIS IS CURRENTLY REDUNDANT LEADS LOOKUP AS LEADS ARE ONLY IN SALES MODULE. WILL FIX IN FUTURE. MAY CUT THIS ONE OUT)
(i) Comment out lines 843 through 846 with # in front of them. (FIRST ACTION OF ELSE WILL NOT WORK. ONLY NEED THE ACTION AFTER ELSE. THIS WILL BE REFINED IN FUTURE)
(j) On line 848 change from $account_URL = “$vtiger_url/index.php?module=Leads&action=DetailView&record=$leadid&parenttab=Sales”; TO $account_URL = “$vtiger_url/index.php?module=Leads&view=Detail&record=$leadid&app=MARKETING”;
5. Go to Vicidial Admin/System Settings
(a) Set Enable Vtiger Integration: to 1. (Do NOT click on “Click here to Synchronize users with Vtiger”)
(b) In field Vtiger DB Server IP: enter your Vtiger Database server IP address.
(c) In field Vtiger DB Nmae: enter the name of your Vtiger database.
(d) In field Vtiger DB Login: enter the Vtiger database username.
(e) In field Vtiger DB Password: enter the password for Vtiger DB user.
(f) In field Vtiger URL: enter the URL of your Vtiger instance. Example, http://mycrm.com
6. Go to detail view of your campaign.
(NOTE 1: These settings are how we are using it. Upon agent login to Vicidial, Vtiger opens in new window and agent is automatically logged in.)
(NOTE 2: Do NOT try to run the old vicidial-vtiger patch files.)
(NOTE 3: Do NOT try to synchronize Vicidial users with Vtiger. We are setting up same usernames and passwords in both systems.)
(a) In field Web Form: enter the URL of your Vicidial web server/vtiger_search.php. Example, http://192.168.1.1/vicidial/vtiger_search.php
(b) In field Web Form Target: enter vdcwebform
(c) In field Get Call Launch: Select WEBFORM
(d) Leave field CRM Popup Login: = N
(e) Leave field CRM Popup Address: empty
7. Go to Inbound/Show DIDs.
(a) Setup a DID and point it to an Inbound Group that is allowed in your campaign.
8. Edit the Inbound Group you pointed your DID to.
(a) In the inbound group, set field Web Form: to URL of your Vicidial web server/vtiger_search.php. Example, http://192.168.1.1/vicidial/vtiger_search.php
(b) Set field Get Call Launch: to WEBFORM
9. Edit file /srv/www/htdocs/agc/vicidial.php (BACK IT UP) When done editing, back up this file to off-server location as any SVN updates to it you will lose your modifications.
(a) On line 17803 change:
document.getElementById(“ScriptContents”).innerHTML = “<iframe src=\”” + VtigeRurl + “/index.php?module=Users&action=Authenticate&return_module=Users&return_action=Login&user_name=” + user + “&user_password=” + orig_pass + “&login_theme=softed&login_language=en_us\” style=\”background-color:transparent;z-index:17;\” scrolling=\”auto\” frameborder=\”0\” allowtransparency=\”true\” id=\”popupFrame\” name=\”popupFrame\” width=\”” + script_width + “px\” height=\”” + script_height + “px\”> </iframe> “;
TO
 document.getElementById(“ScriptContents”).innerHTML = “<iframe src=\”” + VtigeRurl + “/index.php?module=Users&action=Login&return_module=Users&return_action=Login&username=” + user + “&password=” + orig_pass + “&login_theme=softed&login_language=en_us\” style=\”background-color:transparent;z-index:17;\” scrolling=\”auto\” frameborder=\”0\” allowtransparency=\”true\” id=\”popupFrame\” name=\”popupFrame\” width=\”” + script_width + “px\” height=\”” + script_height + “px\”> </iframe> “;
(b) On line 17807 change:
var VtigeRall = VtigeRurl + “/index.php?module=Users&action=Authenticate&return_module=Users&return_action=Login&user_name=” + user + “&user_password=” + orig_pass + “&login_theme=softed&login_language=en_us”;
TO
var VtigeRall = VtigeRurl + “/index.php?module=Users&action=Login&return_module=Users&return_action=Login&username=” + user + “&password=” + orig_pass + “&login_theme=softed&login_language=en_us”;


I know this is a little complicated so if you have any problems, just join our live support channel on skype: https://join.skype.com/ujkQ7i5lV78O

How to – Create a call menu/IVR in ViciDial that you can dial an agents extension on

Call Menu

How to – Create a call menu/IVR in ViciDial that you can dial an agents extension on

In this article, I will go over the steps you need to take to create an IVR(call menu) where people can call in and dial the agents extension number and reach them or get forwarded to their voicemail. This is going to assume you know how to create and upload the audio files needed for the recording for the Call menu / IVR and that you have a DID pointed to the Call Menu once its created.

Step 1 – Create the call menu

Click on Inbound and then add a new call menu

Add a  New Call Menu
Create new Call Menu (IVR)

Step 2 – Fill out the call menu with the options you need

At the bare minimum you need the “Menu Prompt” where you select the audio file you want to be played to callers, the “Menu Timeout”, and the various options in the drop down menus.

Call Menu / IVR
Call Menu / IVR

Step 3 – Add the custom Dialplan

Here is the code you need to add to the custom dialplan box: (assuming the agent extensions are 4 digits, alter it accordingly)

exten => _XXXX,1,AGI(agi-AGENT_route.agi,default---AGENTDIRECT---ACTIVE)
Custom Dialplan Entry

Step 4 – Change AGENTDIRECT ingroup to work with sending to voicemail if there’s no agents logged in

This step will send calls to the agents voicemail if there is no one logged into the system. Change the No Agents No Queue options to match your needs or as I have it below but the most important thing to change is the Voicemail box settings to “AGENTVMAIL” for this Call Menu / IVR to go to the agents voicemail box that they press during the call menu.

AGENTDIRECT Changes

That’s it for this article, if you have any questions feel free to reach out to us in our group chat which has grown rather large from members of the ViciDial forum: https://join.skype.com/ujkQ7i5lV78O

I hope this helps

Chris aka carpenox

Security vulnerability in Vicidial codebase – Update now!

Security vulnerability in Vicidial codebase – Update now!

There is a major security hole in the vicidial codebase for any SVN version below 3509. Please see the email below.

Vicidial exploit

Please make sure you update your SVN and your OS, to update your SVN run these commands:

  • cd /usr/src/astguiclient/trunk
  • svn up
  • perl install.pl (follow the prompts thru to the end)
  • On DB server only run this command: mysql -p -f –database=asterisk < /usr/src/astguiclient/trunk/extras/upgrade_2.14.sql

To update your OS for Leap, use “zypper up” and for centos use “yum update”

Please take this seriously.

Chris aka carpenox

How to – Fix the firewall on Vicibox10

Vicibox10

How to – Fix the firewall on Vicibox10

So there is a major problem with Vicibox10 where the VB-firewall when used, will totally lock you out the system and I finally figured out how to fix the problem. Its rather simple actually and I hope this helps all of you out there that have been wanting to try Asterisk 16 on Vicibox10.

Step 1 – Edit the VB-firewall file

We need to edit the VB-firewall file at /usr/bin/VB-firewall

  • nano /usr/bin/VB-firewall
  • scroll down until you see $IPBLACK=’blacknets’; # IPSet blacklist IP and change it to $IPBLACK=’dynamiclist’; # IPSet blacklist IP
$IPBLACK='blacknets'; # IPSet blacklist IP
Change to $IPBLACK=’dynamiclist’;

Step 2 – Run the Vb-firewall with the whitelist and dynamic list

  • /usr/bin/VB-firewall –dynamic –white

The first time you run this command you may get an error, make sure to run it again as you see below:

Fixing VB-firewall on Vicibox10

Step 3 – Change the crontab entry to dynamic list and whitelist

### ViciBox integrated firewall, by default just load the VoIP Black list and reload it every 4 hours
### You can lock everyone out of your server if you set this wrong, so understand what you are doing!!!
@reboot /usr/bin/VB-firewall --dynamic --whitelist=ViciWhite
* * * * * /usr/bin/VB-firewall --dynamic --whitelist-ViciWhite

That’s all there is to it. Fell free to join our live chat support on Skype if you have any questions or comments: https://join.skype.com/ujkQ7i5lV78O

-Chris aka carpenox

How to – scratch install Vicidial on Ubuntu

Realtime Report

How to – scratch install Vicidial on Ubuntu

This article will go over how to scratch install Vicidial on Ubuntu 14 – 22

Step 1 – The Basics

apt-get update
apt-get upgrade
apt-get install apache2 -y
apt-get install build-essential -y
apt-get install mariadb-client-10.3 -y
apt-get install mariadb-server -y

apt-get install subversion libjansson-dev sqlite autoconf automake libxml2-dev libncurses5-dev -y

add-apt-repository ppa:ondrej/php

apt-get install iftop lame libmysqlclient* -y

apt update
apt upgrade

sudo apt-get install apache2 apache2-bin apache2-data libapache2-mod-php7.4 php7.4 php7.4-cli php7.4-common php7.4-json php7.4-mysql php7.4-readline sox lame screen libnet-telnet-perl php7.4-mysqli -y

apt-get install libasterisk-agi-perl -y

apt-get install libelf-dev -y

apt-get install autogen libtool shtool -y

apt-get install libc6-i386 -y

Step 2 – The CPAN’s

root@vici01:~# cpan

install below modules

install CPAN::Meta::Requirements
install CPAN
reload cpan
install YAML
install MD5
install Digest::MD5
install Digest::SHA1
install Bundle::CPAN
reload cpan
install DBI
force install DBD::mysql
install Net::Telnet
install Time::HiRes
install Net::Server
install Switch
install Mail::Sendmail
install Unicode::Map
install Jcode
install Spreadsheet::WriteExcel
install OLE::Storage_Lite
install Proc::ProcessTable
install IO::Scalar
install Spreadsheet::ParseExcel
install Curses
install Getopt::Long
install Net::Domain
install Term::ReadKey
install Term::ANSIColor
install Spreadsheet::XLSX
install Spreadsheet::Read
install LWP::UserAgent
install HTML::Entities
install HTML::Strip
install HTML::FormatText
install HTML::TreeBuilder
install Time::Local
install MIME::Decoder
install Mail::POP3Client
install Mail::IMAPClient
install Mail::Message
install IO::Socket::SSL
install MIME::Base64
install MIME::QuotedPrint
install Crypt::Eksblowfish::Bcrypt
install readline

Step 3 – Install Asterisk and Dahdi:

Install dahdi

apt install dahdi*

Test dahdi

modprobe dahdi

root@vici02:~# /usr/sbin/dahdi_cfg -v

DAHDI Tools Version – 2.11.1-rc1

DAHDI Version: 2.11.1-rc1

Echo Canceller(s):

Configuration

======================

Channel map:

0 channels to configure.

Install Asterisk

cd /usr/src
wget http://download.vicidial.com/beta-apps/asterisk-16.17.0-vici.tar.gz
tar -xvf asterisk-16.17.0-vici.tar.gz
cd asterisk-16.17.0-vici/
./contrib/scripts/install_prereq install 
./bootstrap.sh

This could take time..

./configure –libdir=/usr/lib –with-gsm=internal –enable-opus –enable-srtp –with-ogg=/usr/lib64/ –with-ssl –enable-asteriskssl –with-pjproject-bundled

make && make menuconfig

select app_meetme in Applications(Vicidial Need this for conference)

make install && make samples && make basic-pbx

Step 4 – WebRTC Extra steps(IF YOU DONT NEED WEBRTC SKIP BELOW STEPS)

Note: Since WebRTC need SSL i am using my Public Domain to Generate SSL from Let’s Encrypt.
How to Generate SSL: Link here

sample http.conf

cat /etc/asterisk/http.conf
[general]
enabled=yes
bindaddr=0.0.0.0
bindport=8088
enablestatic=yes
tlsenable=yes
tlsbindaddr=YOURPUBLICIP:8089

(replace cyburdial.com with your domain)

tlscertfile=/etc/letsencrypt/live/cyburdial/fullchain.pem
tlsprivatekey=/etc/letsencrypt/live/cyburdial/privkey.pem

Install VICIDIAL from Source:
cd /usr/src
mkdir astguiclient/
cd astguiclient/
svn checkout svn://svn.eflo.net/agc_2-X/trunk
cd trunk/
MySQL setup for VICIDIAL:

Step 5 – Create Database

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

Load the initial database

cd /usr/src/astguiclient/trunk/extras
mysql -uroot -p asterisk < MySQL_AST_CREATE_tables.sql

Load First instalation setup database

mysql -uroot -p asterisk < first_server_install.sql

Load sample sip and iax phones(this contain default user pass, carefull when you installing in vpc)

mysql -uroot -p asterisk < sip-iax_phones.sql

Do back to root Directory of vicidial

cd ..
perl install.pl

Follow the setup with appropriate value.

Configiguration example

Populate ISO country codes

cd /usr/src/astguiclient/trunk/bin
perl ADMIN_area_code_populate.pl

update the Server IP with latest IP address.(VICIDIAL DEFAULT IP IS 10.10.10.15)

perl /usr/src/astguiclient/trunk/bin/ADMIN_update_server_ip.pl –old-server_ip=10.10.10.15

Say ‘Yes’ to all

Add crontab entries(Conf generation, Autodialing, Audio mix and other keepalive processes run from here.

###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
    Note: Lookout for the recording removal cron. It might fill your server.

Add entries to rc.local file to start vicidial and related services

###OPTIONAL enable ip_relay(for same-machine trunking and blind monitoring)

/usr/share/astguiclient/ip_relay/relay_control start 2>/dev/null 1>&2

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

Then Reboot the server.

VICIDIAL processes run on screen. There should be 9 Processes running on the screen.
root@vici01:~# screen -ls

There are screens on:

2240.ASTVDremote (03/21/2019 02:16:03 AM) (Detached)

2237.ASTVDauto (03/21/2019 02:16:03 AM) (Detached)

2234.ASTlisten (03/21/2019 02:16:02 AM) (Detached)

2231.ASTsend (03/21/2019 02:16:02 AM) (Detached)

2228.ASTupdate (03/21/2019 02:16:02 AM) (Detached)

2025.ASTconf3way (03/21/2019 02:15:02 AM) (Detached)

2019.ASTVDadapt (03/21/2019 02:15:02 AM) (Detached)

1826.asterisk (03/21/2019 02:14:51 AM) (Detached)

1819.astshell20190321021448 (03/21/2019 02:14:49 AM) (Detached)

9 Sockets in /var/run/screen/S-root.
All Set now. Now, You can configure web interface and logins.
Vicidial Admin login :
http://VICIDIAL_SERVER_IP/vicidial/admin.php
user: 6666
Pass: 1234

How to – install a webphone/viciphone on your Vicidial server

webrtc installation

How to – install a webphone/viciphone on your Vicidial server

UPDATED: Oct. 10th 2023

I’ve been having a bunch of people ask me to write up an article for installing the Viciphone which I never did before because Viciphone.com has some really great instructions already. But I will create this post with picture and alternative Viciphones for you guys to use. There is also an easier method by using my auto installer on my GitHub at this link: https://github.com/carpenox/vicidial-install-scripts. This will complete all the steps below for CentOS, Alma, Rocky or Ubuntu based systems. Leap or ViciBox users will still have to follow the commands below:

CyburPhone
CyburPhone

Step 1 – Create the SSL certificate to use for your server and viciphone

This is a pretty easy process using certbot which uses letsencrypt. the first thing you have to do is setup your FQDN(Fully qualified domain name) to point to your server. For this demonstration I will show you with namecheap.com registrar services. You want to add an A record as shown below:

This you need to run the following command for certbot:

  • certbot certonly –webroot

You’re output should look as it does below:

Step 2 – Install the SSL certificate in Apache

  • cd /etc/apache
  • nano ssl-global.conf
  • scroll down until you see these two lines and change them to point to your certificate and uncomment the SSLCertificateFIle and SSLCertificateKeyFile as show below:
  • cd vhosts.d/
  • nano 1111-default-ssl.conf
  • Edit this file if you have installed using the Vicibox iso, if this is a scratch install you can skip this step.

Step 3 – Install the SSL certificate in Asterisk

  • cd /etc/asterisk/
  • nano http.conf
  • enter the following information as shown below:

[general]
enabled=yes
bindaddr=0.0.0.0
bindport=8088
enablestatic=yes
tlsenable=yes
tlsbindaddr=0.0.0.0:8089
tlscertfile=/etc/letsencrypt/live/cyburdial.com/cert.pem
tlsprivatekey=/etc/letsencrypt/live/cyburdial.com/privkey.pem

  • service apache restart
  • service asterisk restart
  • run this command to make sure the ports are now open and running: ss -ltnu

Go into Aterisk with “asterisk -r” to verify it and type the command: http show status

Step 4 – Install Viciphone 3 or you can try my version of the Viciphone which I call CyburPhone

I will provide two githubs of which you can choose which version you want to use. The first one is by Mike from Viciphone.com of whom I have the utmost respect for his work on the Viciphone to improve it and update to sip.js-0.20. His link is:

https://github.com/vicimikec/ViciPhone

ViciPhone
ViciPhone

To use this you need to go into your root web directory and then git cloning by running the following commands:

  • cd /srv/www/htdocs for Leap or cd /var/www/html for CentOS, Alma or Rocky
  • git clone https://github.com/ccabrerar/ViciPhone.git

Or if you prefer to use my version which looks like this:

CyburPhone

You can go to my github at:

https://github.com/carpenox/CyburPhone

You should already be in the web directory at this point but to use my webrtc phone clone it with this command:

  • git clone https://github.com/carpenox/CyburPhone.git

Now that you’ve downloaded the webrtc phone you’ve decided to use, you need to set the proper permissions for it, for this article I will demonstrate on my version

  • chmod -R 777 CyburPhone/
  • chown -R wwwrun:www CyburPhone/ – Leap
  • chown -R apache:apache CyburPhone – CentOS, Alma and Rocky

You would do the same thing for the Viciphone by just replacing CyburPhone with ViciPhone

Thats it for the phone installation, now to set what you need in the Vicidial GUI

Step 4 – Setting the webphone in Vicidial

Go into Admin > system settings and scroll down near the bottom:

Set the webphone url to the above or if you’re using the Viciphone use https://yourdomain.com/ViciPhone/viciphone.php

Step 5 – Setting the Web Socket URL on the server

Go to admin > servers > your server

Step 6 – Creating the webrtc template

Go to admin > templates and create a new template

Enter the folllwing into the template and change the domain to yours:

type=friend
host=dynamic
encryption=yes
avpf=yes
icesupport=yes
directmedia=no
transport=wss
force_avp=yes
dtlsenable=yes
dtlsverify=no
dtlscertfile=/etc/letsencrypt/live/cyburdial.com/cert.pem
dtlsprivatekey=/etc/letsencrypt/live/cyburdial.com/privkey.pem
dtlssetup=actpass
rtcp_mux=yes

WebRTC Template

Thats all there is to it, now you are all set to use webrtc technology and do away with annoying softphone configurations and reps always complaining about their phone not registering, lol. I hope this article has helped and if you have any problems, feel free to stop by our live support channel on skype or post a comment here: https://join.skype.com/ujkQ7i5lV78O

I hope this helps

-Chris aka carpenox

How to – Scratch install the dynportal on CentOs, Rocky or Alma Linux

how-to-scratch-install-the-dynportal-on-centos/

How to – Scratch install the dynportal on CentOs, Rocky, or Alma Linux

This article will go over the steps to Scratch install the dynportal on a scratch CentOs, Rocky or Alma Linux Vicidial box that normally comes with the ISO. I have created the files you need and host them on one of my sites for download.

Step 1 – Download the necessary files

You will need 4 files to get this working on your server that you can download below

yum install -y firewalld
cd /home
wget https://dialer.one/dynportal.zip
wget https://dialer.one/firewall.zip
wget https://dialer.one/aggregate
wget https://dialer.one/VB-firewall

Step 2 – Move and unzip the files

You can copy and paste the following

  • mkdir -p /var/www/vhosts/dynportal
  • mv /home/dynportal.zip /var/www/vhosts/dynportal/
  • mv /home/firewall.zip /etc/firewalld/
  • cd /var/www/vhosts/dynportal/
  • unzip dynportal.zip
  • cd etc/httpd/conf.d/
  • mv viciportal-ssl.conf viciportal.conf /etc/httpd/conf.d/
  • cd /etc/firewalld/
  • unzip -o firewall.zip
  • mv /home/aggregate /usr/bin/
  • chmod +x /usr/bin/aggregate
  • mv /home/VB-firewall /usr/bin/
  • chmod +x /usr/bin/VB-firewall
Unzip your files

Step 3 – Add your SSL cert to dynportal-ssl.conf and location for redirect is defaults.inc.php

You need to edit your dynportal-ssl.conf file in /etc/httpd/conf.d/

nano /etc/httpd/conf.d/viciportal-ssl.conf

change the location to your SSL cert files

Scratch install the dynportal on CentOs
Dynportal SSL config

nano /var/www/vhosts/dynportal/inc/defaults.inc.php

Step 4 – add entry to crontab

Add the following lines to the bottom of your crontab by typing: crontab -e

### ViciBox integrated firewall, by default just load the VoIP Black list and reload it every 4 hours
### You can lock everyone out of your server if you set this wrong, so understand what you are doing!!!
@reboot /usr/bin/VB-firewall --whitelist=ViciWhite --dynamic --quiet
* * * * * /usr/bin/VB-firewall --whitelist=ViciWhite --dynamic --quiet --flush

Step 5 – Add ports to firewall and apache

Now use firewall-cmd and open port 446 on the firewall for public zone like such:

firewall-offline-cmd --add-port=446/tcp --zone=public --permanent

And edit the apache conf file to add the port to it:

  • nano /etc/httpd/conf/httpd.conf
  • Add this line: Listen 446

Step 6 – Restart services

  • service firewalld restart
  • service httpd restart
  • systemctl enable firewalld

That’s it, now go to http://yourdomain.com:446/valid8.php and you should see the following:

Dynportal Interface
Dynportal Interface

Why doesn’t my webphone/Viciphone work anymore?

webrtc installation

Why doesn’t my webphone/Viciphone work anymore?

UPDATE: October of 2023

There is a new issue since the evolution of the ViciPhone version 3 and CyburPhone version 3.2.5 that has been happening and I will go over how to solve it for everyone. The new feature in ViciDial that uses a settings container called “viciphone settings” has a setting by default that has the webphone dial its own extension which then gets you a result of a sound file telling you that “The number you have dialed is not in service”. The solution for this is simple, just need to change one line in the settings container as described below:

  1. Go into your Vicidial admin GUI
  2. Click on Admin and then Settings Containers
  3. Change the line that says “dialRegExten” from a 1 to a 0 as shown below

This will now fix your webphone. If you have any questions feel free to comment below or join our live support on Skype: https://join.skype.com/ujkQ7i5lV78O

2021 Issue Solution:

This article is to help those of you having problems with viciphone lately. It seems that googles stun server has reached end of life and no longer works correctly. You need to change the stun server to a different one. Here is a list of public stun servers:

Free Public STUN servers

https://gist.github.com/mondain/b0ec1cf5f60ae726202e

How do I change my STUN server for viciphone?

Good question, you need to edit your rtp.conf file for asterisk.

  • cd /etc/asterisk
  • nano rtp.conf
  • scroll down to the very bottom and change it to one on the list above

That’s it, youre done. If you have any problems or questions feel free to comment below.

I hope this helps.

-Chris aka Nox

T-Mobile is fighting back against scam calls with 100% STIR/SHAKEN compliance

STIR/SHAKEN – What to know

BELLEVUE, Wash. — June 30, 2021 — T-Mobile (NASDAQ: TMUS) today announced that it has filed a certification of completion of STIR/SHAKEN implementation in the Federal Communications Commission’s Robocall Mitigation Database. With the filing, the Un-carrier is certifying that all calls originating on the T-Mobile network are 100% STIR/SHAKEN compliant.

STIR/SHAKEN
STIR/SHAKEN

T-Mobile was the first US wireless provider to work with all other major networks to implement STIR/SHAKEN to fight number spoofing and further protect customers from scammers. With these partnerships, T-Mobile authenticates calls with wireless and network providers that collectively represent around 98% of wireless customers in the U.S.

Number Verification provided by STIR/SHAKEN, coupled with free Caller ID provided by T-Mobile Scam Shield, helps T-Mobile customers rest assured that the calls they receive are authenticated as coming from the phone number displayed in Caller ID and have not been spoofed. This makes Caller ID even stronger in the fight against scam and robocalls, and with Scam Shield, all T-Mobile, Metro by T-Mobile and Sprint brand individuals, families and small business get free Caller ID.

T-Mobile currently provides STIR/SHAKEN implementations with AT&T, Comcast, Spectrum Voice from Charter Communications, UScellular, and Verizon Wireless as well as Altice USA, Bandwidth, Brightlink, Clear Rate, Google Fi, Inteliquent, Intrado, Magicjack, Peerless, and Twilio.

What you need to know

  • Calls originating on the T-Mobile network are 100% STIR/SHAKEN compliant.
  • T-Mobile has implemented STIR/SHAKEN with 15 other carriers.
  • STIR/SHAKEN works with T-Mobile’s Caller ID to make sure the displayed number is accurate.

Scam and spam calls can often come from a number that looks familiar or spoofs another trusted number, so a traditional caller ID may not be effective against these calls. STIR/SHAKEN works to verify that a call is coming from the claimed source.

John Freier, Executive Vice President of T-Mobile Consumer Group, said:

Number Verification, along with Caller ID, and the scam identification and blocking tools in Scam Shield, gives our customers the industry’s most comprehensive free scam and spam protection.

We were first to implement number verification in 2019 and today, all calls originating on the T-Mobile network are 100% STIR/SHAKEN compliant, giving our customers peace of mind that their calls are protected against scammers and spammers.

STIR/SHAKEN (Secure Telephone Identity Revisited and Signature-based Handling of Asserted Information Using toKENs) is a method of verifying that phone calls made over IP are actually coming from the proper origin by having the caller ID signed by the originating carrier. Calls made over IP are routed over an internet protocol and are required by the FCC for STIR/SHAKEN. This method is now being used by every major carrier, including T-Mobile, as it increases its reliance on 5G coverage, which uses IP for calls.

How can my business become STIR/SHAKEN compliant?

That’s simple. Sign up with the pioneers of this new STIR/SHAKEN technology and leading VoIP providers in the world at www.tiltx.com. We also invite you to check out our webinar featuring the guys from TIltx and Matt Florell from the ViciDial Group which goes over how this technology works and how to implement it on your system with “the easy button”. They have really made this process extremely easy and we are always here to help you do it on your system if you need help. Just call us at 844-PC-SATA-2 or 1(725)22-CYBUR

Do you provide STIR/SHAKEN service?

Great question, yes we do. We offer two plans of service, one which covers only your cloud based phone system hosting starting at just $15 USD per user or or all inclusive plan which comes with everything you need to run your business, including the phone system with unlimited STIR/SHAKEN minutes and DID compliant phone numbers, customer relations management, full security module including ransomware protection, timeclocks and human resources modules and so much more with prices starting out as low as %85 USD per user. For more information click here.