How to – Fix ViciBox 11 and 12 errors

yast firewall

How to – Fix ViciBox 11 and 12 errors


Step 1 – Fix Apache errors if they exist

cd /etc/apache2/conf.d/
for file in *.conf.old; do mv "$file" "${file%.conf.old}.conf"; done
Answer y to all replace file questions

Step 2 – Recreate missing files


cd /usr/src/astguiclient/trunk
perl install.pl --copy_sample_conf_files --no-prompt

Step 3 – Rebuild missing directories

rm -rf /var/lib/asterisk/sounds
ln -s /usr/share/asterisk/firmware /var/lib/asterisk/firmware
ln -s /usr/share/asterisk/images /var/lib/asterisk/images
ln -s /usr/share/asterisk/moh /var/lib/asterisk/moh
ln -s /usr/share/asterisk/mohmp3 /var/lib/asterisk/moh
ln -s /usr/share/asterisk/sounds /var/lib/asterisk/sounds
ln -s /usr/share/asterisk/static-http /var/lib/asterisk/static-http
ln -s /usr/share/asterisk/phoneprov /var/lib/asterisk/phoneprov
ln -s /var/lib/asterisk/agi-bin /usr/share/asterisk/agi-bin
ln -s /var/lib/asterisk/phoneprov /usr/share/asterisk/phoneprov

Step 4 – Fix yast (ViciBox 12 only)

yast firewall
zypper ref && zypper up
cp /etc/firewalld/zones/external.xml.rpmnew /etc/firewalld/zones/external.xml

Time Sync Debug in progress

image 3

The last issue I have received reports about is a time synchronization issue even when times match everywhere on the system, I am working on debugging this currently, check back here for solution.

The fix is below:

echo "explicit_defaults_for_timestamp = Off" >> /etc/my.cnf.d/general.cnf
systemctl restart mariadb.service

Here is the documentation for it: https://docs.vicibox.com/en/latest/bugfix/bugfix1201-2.html


Here is also a link to the official docs from the ViciBox support website:

https://docs.vicibox.com/en/latest/bugfixerrata.html


If you have any questions feel free to join our discord: https://discord.gg/ymGZJvF6hK

Chris aka carpenox

Custom VICIdial Reports on GitHub

Custom Reports

Custom VICIdial Reports on GitHub

Introducing My New GitHub Repository for Custom VICIdial Reports

Hey there, fellow VICIdial enthusiasts!

I am thrilled to announce the launch of my latest GitHub repository, dedicated to creating custom reports for VICIdial. As a long-time user and developer in the VICIdial community, I understand the importance of having detailed and actionable data at your fingertips. This repository aims to enhance your call center’s efficiency and decision-making process by providing insightful reports tailored to your specific needs.

First Report: Area Code Call Breakdown

The first report available in this repository is the “Area Code Call Breakdown.” This report is designed to give you a comprehensive analysis of the number of calls made to each area code within a specified date range. Whether you are looking to optimize your outbound campaigns or ensure compliance with call regulations, this report will provide valuable insights into your call distribution patterns.

Understanding the New Spam Math for 2025

In light of recent changes to spam regulations, it is crucial to manage your Direct Inward Dial (DID) numbers effectively. According to the new guidelines for 2025, you should aim to keep the number of calls per DID below 50 calls per day. This report will help you achieve that by suggesting the optimal number of DIDs you should have for each area code based on the collected data and a six-day work week.

image png

Here’s how the calculations work:

  1. Total Calls to Area Code (per date range): This is the total number of calls made to a particular area code within your specified date range.
  2. Daily Call Volume: Divide the total calls by the number of days in the date range to get the average daily call volume.
  3. Required DIDs: To ensure each DID handles fewer than 50 calls per day, divide the daily call volume by 50 and round up to the nearest whole number.

For example, if you made 3,000 calls to area code 305 over a six-day period:

  • Daily Call Volume: 3,000 calls / 6 days = 500 calls per day
  • Required DIDs: 500 calls per day / 50 calls per DID per day = 10 DIDs

Exporting Data to CSV

To make the data even more accessible, this report includes the option to export your findings to a CSV file. This feature allows you to easily share the data with your team, analyze it in spreadsheet software, or integrate it with other systems for further processing.

image 1 png

Get Started Today

Ready to enhance your VICIdial reporting capabilities? Head over to my GitHub repository here to get started. You’ll find detailed instructions on how to set up and run the reports, as well as ongoing updates and new features.

Installation

Go to your “vicidial” directory on your web server. For ViciBox type “cd /srv/www/htdocs/vicidial” and for Redhat(Alma/Rocky/CentOS) type “cd /var/www/html/vicidial” and then clone the repo by typing:

git clone https://github.com/carpenox/Reports.git

Then browse to your server – https://yourserver.com/vicidial/Reports/did_report.php

Thats it, enjoy!

Stay tuned for more custom reports and features coming soon. If you have any suggestions or feedback, feel free to open an issue on GitHub or reach out to me directly on Discord: https://discord.gg/ymGZJvF6hK

Happy dialing!

Chris aka carpenox


How to – Fix Apache not starting on ViciBox

Artificial intelligence

How to – Fix Apache not starting on ViciBox

There is a new issue with ViciBox 9, 10 or 11 where Apache will not start up after installations. The error message is calling for mod_deflate which seems to not be there. The easy fix for this is to delete the include for it.

nano /etc/apache2/vhosts/dynportal.conf - Then go to line 16 and delete "Include /etc/apache2/conf.d/mod_deflate.conf"

Do the same for dynportal-ssl.conf

This next set of instructions is from BVD in our Skype group:

1st step is only for apache error user’s

1st step
simple go to /etc/apache2/conf.d/ and rename all that files which is on .old like before /etc/apache2/conf.d/mod_deflate.conf.old
change into this mod_deflate.conf only and do same process on all files just remove .old or .bak some thing

2nd step
cd /usr/src/astguiclient/trunk
then run perl install.pl
install.pl will help you to create agi-bin missing files

3rd

rm -r /var/lib/asterisk/sounds
ln -s /usr/share/asterisk/firmware /var/lib/asterisk/firmware
ln -s /usr/share/asterisk/images /var/lib/asterisk/images
ln -s /usr/share/asterisk/moh /var/lib/asterisk/moh
ln -s /usr/share/asterisk/mohmp3 /var/lib/asterisk/moh
ln -s /usr/share/asterisk/sounds /var/lib/asterisk/sounds
ln -s /usr/share/asterisk/static-http /var/lib/asterisk/static-http
ln -s /usr/share/asterisk/phoneprov /var/lib/asterisk/phoneprov

ln -s /var/lib/asterisk/agi-bin /usr/share/asterisk/agi-bin
ln -s /var/lib/asterisk/phoneprov /usr/share/asterisk/phoneprov


If you have any questions feel free to join our discord: https://discord.gg/ymGZJvF6hK

Chris aka carpenox

How to – Use the full functionality of the ViciDial installer by carpenox

CyburDial Installer

How to – Use the full functionality of the ViciDial installer by carpenox

Vicidial administrators, take note: the Carpenox Auto Installer is about to change the game. This tool transforms the usually complex setup of Vicidial into a smooth, hassle-free experience. Let me go over some post installation steps and key things to take note of and changes I suggest you make after the fact of using the installer. I will give you a few steps to do first:

This assumes you have installed already through this article: How to – Install Vicidial on Alma Linux 9 with my new auto installer

Step 1 – Login to the admin GUI and change the default password

After you reboot the server, which should only be done once you have attached the FQDN(Fully Qualified Domain Name) for the SSL cert in the very last step of the installation process. This step is important and I advise you don’t skip it if you plan to use webphones that are built into the installer. If you do skip this step, make sure you turn the firewall off before trying to run it post the initial install or certbot wont be able to get through to create the SSL. The command is “service firewalld stop” and then start it back again after you install the SSL. This being said, then login to that domain in your browser. For example: https://my.dialer.one (Use your domain this is NOT real)
The default login is 6666 and password 1234 – make sure you change this password and then go into users and give yourself all the permissions possible.

If you do decide to not use webphones and can not or will not be installing SSL, you will need to login still through the https port with https://192.168.1.1 (your IP) and change the password the same. You will need need to add the http port to your trusted zone as well as the dynamic portal non SSL port to public which is 81. You can do so with the following commands:

firewall-cmd --permanent --add-port=81/tcp
firewall-cmd --add-service=http --zone=trusted --permanent
firewall-cmd --reload

Step 2 – Lock the firewall down

Hackers these days are quick, like I mean I have had servers provisioned from well known hosting companies like Hetzner, Vultr, DigitalOcean, OVH Cloud, IONOS, Contabo and many others within 15 minutes. They scan these known IP ranges and go for known vulnerabilities very quick and will install rootkits, crypto miners, DDOS bots and other malware. The firewall rules I have set in place leave the needed ports to be open to use the dialer in the “trusted” zone, however I have left port 443(https) open to public zone so you can login and change the default password, because you can not use the dynamic portal to validate your IP until after the default password has been changed.

So, now that you’ve changed that password, lets remove the https port 443 from the public zone. To do so type the following commands: You can also see more use for the firewall here: How to – Use Firewalld via command line

firewall-cmd --permanent --remove-service=https
firewall-cmd --reload

You also need to update the dynamic portal redirect link with this command:

nano /var/www/vhosts/dynportal/valid8.php

Change the https://cyburdial.com/agc/cyburdial.php to https://yourdomain.com/agc/vicidial.php

Dynamic Portal settings

You should not be able to get to your domain at this point, you will need to use the dynamic portal login to validate your IP. You can find the URL for this at https://my.dialer.one:446/valid8.php (Again, use your domain) or for those of you that are only using IP – http://192.168.1.1:81/valid8.php. When you go to that page you will see a login area that looks like the image below:

Dynamic Portal

If you have followed the previous steps you should now be redirected to the ViciDial agent page to login with your username and password. Just browse to the admin area by removing the /agc/vicidial.php part. Some more advanced steps would be to change the Dynamic portal port off of 446 to something above the 50000 range as it takes more time for hackers to scan this high and they typically will not waste the time. Changing the name of the valid8.php file is also a good standard operating procedure to put in place, however this take some other changes in the template file as well, that I will not go over on this article. If you would like to see an article for that, post a comment below.

Step 3 – Setup your ViciDial instance

At this point, most of you should know how to setup your your Vicidial configurations and setup. If not make sure to check out a few of my friends YouTube pages with lots of content regarding this:

If you do decide to use the standard-db.sh file on my github, there is one thing that I messed up on the original design that needs to be fixed post import. Adding an “a” to the phone login on each user account. To run the standard-db file which comes pre-configured with everything ready to go other than adding DID’s and your VoIP carrier IP, simply run the commands below:

cd /usr/src/vicidial-install-scripts
chmod +x standard-db.sh
./standard-db.sh

Once you use this file, your new password to get into the 6666 user will be “CyburDial2024”

After this go into each user account an add the letter “a” to the phone login area as shown below:

User Account

Step 4 – Add DID’s and Carrier IP

This next step is going on the thought of using the standard-db file on my github, but for those of you that do the config’s yourself, don’t forget the bulk tools area is a great way for adding your DID’s in bulk.

Admin Utils

The next step is to add your DID’s, you can do so easily through the bulk tools in Admin > Reports > admin utilities

After this go Admin Bulk Tools

Click the highlighted area and the first area you see will be to copy DID’s, select the one I have there that says Copy this DID as shown below and paste your DID’s in the area available, then click submit.

Bulk Tools
Copy DID's

Paste them in this box and click submit

The second part of this is to change the carrier IP in admin > carriers > carrier

Carrier IP change

That’s it, you can start dialing. Now lets go over a few tools I have added to help manage and debug your systems:

  • sngrep – a command-line tool used for capturing and analyzing SIP (Session Initiation Protocol) packets
  • htop – an interactive system monitor and process viewer for Unix system
  • iftop – a similar tool used for the network card interface
  • postfix – a free and open-source mail transfer agent (MTA) that routes and delivers email
  • dovecot – an open-source IMAP and POP3 email server for Unix-like operating systems
  • roundcubemail – a web based GUI for email
  • inxi – detailed hardware information (inxi -Fxz)

Hopefully this helps with some of the questions I have been asked and common issues people run into. If you have any other questions, feel free to join my discord channel: https://discord.gg/ymGZJvF6hK or comment below.

Chris aka carpenox

How to – Decrease SDP(short duration percent) in ViciDial

Short Duration Percent

How to – Decrease SDP(short duration percent) in ViciDial

There is a new feature in ViciDial as of SVN 3878 that will allow you to increase the call handle time through the AMD system which would lower your Short Duration Percent(SDP) in your carrier stats. Doing so can typically save you hundreds if not thousands per month in VoIP fees for being below their SDP requirements. Adding one line to you carrier dialplan as show below will do this for you. Doing so will also save your DID’s (Caller ID’s).

Short Duration Percent

This example will add 7 seconds to each call.

exten => _8567.,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _8567.,n,Set(__AMDMINLEN=7)
exten => _8567.,n,Dial(SIP/carrier/${EXTEN:4},,tToR)
exten => _8567.,n,Hangup

I hope this helps

-Chris aka carpenox

August 2024 VICIdial Security Update

Security Update needed

August 2024 VICIdial Security Update

Please read this carefully as it contains important information regarding the security of your VICIdial system.

The ViciDial Group recently conducted a security audit of VICIdial which resulted in the identification of severe vulnerabilities. We have patched these and submitted these changes to the code-base. Any system that is at SVN version 3848 or greater already has them. If your system is below that version, we strongly recommend that you upgrade to address these concerns. If you would like us to upgrade your system for you, please send a new email to support@cyburdial.com and put “Security Upgrade” in the subject. A typical upgrade takes about 15 to 30 minutes of support time. You can see the seriousness of these exploit here: https://packetstormsecurity.com/files/181461/VICIdial-2.14-917a-Remote-Code-Execution.html
https://packetstormsecurity.com/files/181460/VICIdial-2.14-917a-SQL-Injection.html

To find the SVN version of your VICIdial installation, log into your administator account and go to “Admin”, then click on “System Settings”. It will be the second line from the top, on the right, under “SVN Version”.

Please note, if your setup contains customizations done directly to VICIdial’s code, further review of your system will be needed as it may not be possible to upgrade you.

image

You can update your SVN by following this article: How to – Update your Vicidial version with subversion

Chris aka carpenox

How to – Fix the “You don’t have permission to access /RECORDINGS/MP3/” error within ViciDial

Artificial intelligence

How to – Fix the “You don’t have permission to access /RECORDINGS/MP3/” error within ViciDial

A problem arises when people do a scratch install of ViciDial and you do not set the proper permissions for the directory that the recordings are stored. I will go over a couple of things to check and/or set to make sure they work properly.

The usual suspect is not setting proper permissions on the folder for the recordings, to fix this simply type the commands below:

Redhat(Alma, Rocky or CentOS):
chmod -R 755 /var/spool/asterisk/monitorDONE
chown -R apache:apache /var/spool/asterisk/monitorDONE

OpenSuSE(Tumpleweed, Leap ViciBox):
chmod -R 755 /var/spool/asterisk/monitorDONE
chown -R wwwrun:www /var/spool/asterisk/monitorDONE

The other issue could be not having a proper alias/vhost set for apache. To fix this simply paste the lines below at the bottom of your http.conf file

CustomLog /dev/null common

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

<Directory "/var/spool/asterisk/monitorDONE/MP3/">
    Options Indexes MultiViews
    AllowOverride None
    Require all granted
</Directory>

For Redhat this goes in /etc/httpd/conf/httpd.conf

For OpenSuSE this goes in /etc/apache2/httpd.conf

I hope this helps, as always if you have any questions feel free to drop by our live chat support on Skype or discord through the links below.

Skype – https://join.skype.com/ujkQ7i5lV78O

Discord – https://discord.gg/FjpDQbUs

-Chris aka carpenox

How to – Setup a ViciDial Cluster with scratch installs

Vicidial cluster

How to – Setup a ViciDial Cluster with scratch installs

This article is going to go over the steps I suggest to take in order to setup a ViciDial Cluster when using scratch install methods. 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. I suggest using my auto installer for Alma Linux 9.

ViciDial Cluster
ViciDial Cluster

Step 1 – Install Vicidial on each server

Install ViciDial with the auto installer on each server.

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 httpd
  • Web Server: systemctl disable mysql
  • 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

image 7
DB Server

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

Asterisk Servers

image 8
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

image 9
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

image 12
Add a new server

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

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

Step 5 – Add conferences

Add conferences for each asterisk server by following these instructions

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:

I hope this helps!

Chris aka carpenox

How to – Set Up Asterisk 18 with ConfBridge for ViciDial with Bug fixes for monitoring

ConfBridge

How to – Set Up Asterisk 18 with ConfBridge for ViciDial with Bug fixes for monitoring

For this article, I will go over how you can install Asterisk 18 to use with ViciDial and using ConfBridge instead of MeetMe. There is a few bugs in the monitor function for use with ViciDial, however I have debugged it and will share this fix with all of you today.

Step 1 – Install and patch Asterisk 18

cd /usr/src/asterisk/
wget https://downloads.asterisk.org/pub/telephony/asterisk/old-releases/asterisk-18.18.1.tar.gz
tar -xzvf asterisk-18.18.1.tar.gz

cd /usr/src/asterisk/asterisk-18.18.1/
wget http://download.vicidial.com/asterisk-patches/Asterisk-18/amd_stats-18.patch
wget http://download.vicidial.com/asterisk-patches/Asterisk-18/iax_peer_status-18.patch
wget http://download.vicidial.com/asterisk-patches/Asterisk-18/sip_peer_status-18.patch
wget http://download.vicidial.com/asterisk-patches/Asterisk-18/timeout_reset_dial_app-18.patch
wget http://download.vicidial.com/asterisk-patches/Asterisk-18/timeout_reset_dial_core-18.patch
cd apps/
wget http://download.vicidial.com/asterisk-patches/Asterisk-18/enter.h
wget http://download.vicidial.com/asterisk-patches/Asterisk-18/leave.h
yes | cp -rf enter.h.1 enter.h
yes | cp -rf leave.h.1 leave.h

cd /usr/src/asterisk/asterisk-18.18.1/
patch < amd_stats-18.patch apps/app_amd.c
patch < iax_peer_status-18.patch channels/chan_iax2.c
patch < sip_peer_status-18.patch channels/chan_sip.c
patch < timeout_reset_dial_app-18.patch apps/app_dial.c
patch < timeout_reset_dial_core-18.patch main/dial.c

Step 2 – Compile Asterisk

: ${JOBS:=$(( $(nproc) + $(nproc) / 2 ))}
./configure --libdir=/usr/lib64 --with-gsm=internal --enable-opus --enable-srtp --with-ssl --enable-asteriskssl --with-pjproject-bundled --with-jansson-bundled

make menuselect/menuselect menuselect-tree menuselect.makeopts
#enable app_meetme
menuselect/menuselect --enable app_meetme menuselect.makeopts
#enable res_http_websocket
menuselect/menuselect --enable res_http_websocket menuselect.makeopts
#enable res_srtp
menuselect/menuselect --enable res_srtp menuselect.makeopts
make samples
sed -i 's|noload = chan_sip.so|;noload = chan_sip.so|g' /etc/asterisk/modules.conf
make -j ${JOBS} all
make install

Step 3 – Add ConfBridge to use with ViciDial

Lets add the extensions we need to use confbridges with ViciDial with the following commands:

cd /etc/asterisk
nano extensions.conf

Add the following lines below the [default] area:

; --------------------------
; ConfBridge Extensions
; --------------------------

; use to send a agent channel into the conference
exten => _9600XXX,1,Answer()
exten => _9600XXX,n,Playback(sip-silence)
exten => _9600XXX,n,ConfBridge(${EXTEN},vici_agent_bridge,vici_customer_user)
exten => _9600XXX,n,Hangup()

;; used to send an customer channel into the conference
exten => _29600XXX,1,Answer()
exten => _29600XXX,n,Playback(sip-silence)
exten => _29600XXX,n,ConfBridge(${EXTEN:1},vici_agent_bridge,vici_agent_user)
exten => _29600XXX,n,Hangup()

;; used by an admin to enter the confernece
exten => _39600XXX,1,Answer()
exten => _39600XXX,n,Playback(sip-silence)
exten => _39600XXX,n,ConfBridge(${EXTEN:1},vici_agent_bridge,vici_admin_user)
exten => _39600XXX,n,Hangup()

;; used to monitor a conference
exten => _49600XXX,1,Answer()
exten => _49600XXX,n,Playback(sip-silence)
exten => _49600XXX,n,ConfBridge(${EXTEN:1},vici_agent_bridge,vici_monitor_user)
exten => _49600XXX,n,Hangup()

;; used to record into a conference
exten => _59600XXX,1,Answer()
exten => _59600XXX,n,Playback(sip-silence)
exten => _59600XXX,n,ConfBridge(${EXTEN:1},vici_agent_bridge,vici_recording_user)
exten => _59600XXX,n,Hangup()

;; used to barge a conference
exten => _69600XXX,1,Answer()
exten => _69600XXX,n,Playback(sip-silence)
exten => _69600XXX,n,ConfBridge(${EXTEN:1},vici_agent_bridge,vici_barge_user)
exten => _69600XXX,n,Hangup()

;; used to trigger DTMF tones in a conference
exten => _79600XXX,1,Answer()
exten => _79600XXX,n,Playback(sip-silence)
exten => _79600XXX,n,ConfBridge(${EXTEN:1},vici_agent_bridge,vici_dtmf_user)
exten => _79600XXX,n,Hangup()

;; used to play an audio file to a conference
exten => _89600XXX,1,Answer()
exten => _89600XXX,n,Playback(sip-silence)
exten => _89600XXX,n,ConfBridge(${EXTEN:1},vici_agent_bridge,vici_audio_user)
exten => _89600XXX,n,Hangup()

;; used to kick all channels from a conference
exten => _99600XXX,1,ConfKick(${EXTEN:1},all)
exten => _99600XXX,2,Hangup()
exten => _55559600XXX,1,ConfKick(${EXTEN:4},all)
exten => _55559600XXX,2,Hangup()

While we are in this file, lets go ahead and address and fix one of the bugs, which is not being able to listen or barge on calls through the real-time report. Search for “08600X” in extensions.conf which is at line 119 and should look like the picture below:

image

BUG Fix: Change the 86 to 96

Step 4 – Add confbridge functions

nano /etc/asterisk/confbridge.conf and paste this at the bottom:
#include confbridge-vicidial.conf

Now create a new file called confbridge-vicidial.conf and add the following lines:

; Bridge Profile for agent conferences
[vici_agent_bridge]
type=bridge
max_members=10
record_conference=no
internal_sample_rate=8000
mixing_interval=40
video_mode=none
sound_join=enter
sound_leave=leave
sound_has_joined=sip-silence
sound_has_left=sip-silence
sound_kicked=sip-silence
sound_muted=sip-silence
sound_unmuted=sip-silence
sound_only_person=confbridge-only-participant
sound_only_one=sip-silence
sound_there_are=sip-silence
sound_other_in_party=sip-silence
sound_begin=sip-silence
sound_wait_for_leader=sip-silence
sound_leader_has_left=sip-silence
sound_get_pin=sip-silence
sound_invalid_pin=sip-silence
sound_locked=sip-silence
sound_locked_now=sip-silence
sound_unlocked_now=sip-silence
sound_error_menu=sip-silence
sound_participants_muted=sip-silence


; User Profile for agent channels
[vici_agent_user]
type=user
admin=no
quiet=no
startmuted=no
marked=yes
dtmf_passthrough=yes
hear_own_join_sound=yes
dsp_drop_silence=yes

; User Profile for admin channels
[vici_admin_user]
type=user
admin=yes
quiet=no
startmuted=no
marked=yes
dtmf_passthrough=yes
dsp_drop_silence=yes

; User Profile for monitoring
[vici_monitor_user]
type=user
admin=no
quiet=yes
startmuted=yes
marked=no
dtmf_passthrough=no
dsp_drop_silence=yes

; User Profile for barging
[vici_barge_user]
type=user
admin=no
quiet=no
startmuted=no
marked=no
dtmf_passthrough=yes
dsp_drop_silence=yes

; User Profile for customers channels
[vici_customer_user]
type=user
admin=no
quiet=no
startmuted=no
marked=yes
dtmf_passthrough=yes
hear_own_join_sound=no
dsp_drop_silence=yes

; User Profile for call recording channels
[vici_recording_user]
type=user
admin=no
quiet=yes
startmuted=yes
marked=no
dtmf_passthrough=no
dsp_drop_silence=yes

; User Profile for audio playback channels
[vici_audio_user]
type=user
admin=no
quiet=yes
startmuted=yes
marked=no
dtmf_passthrough=no
dsp_drop_silence=yes

; User Profile for triggering DTMF
[vici_dtmf_user]
type=user
admin=no
quiet=yes
startmuted=yes
marked=no
dtmf_passthrough=yes
dsp_drop_silence=yes

Step 5 – Add ConfBridge conferences into Asterisk database

mysql -A asterisk
INSERT INTO `vicidial_confbridges` VALUES 
(9600000,'10.10.10.17','','0',NULL),
(9600001,'10.10.10.17','','0',NULL),
(9600002,'10.10.10.17','','0',NULL),
(9600003,'10.10.10.17','','0',NULL),
(9600004,'10.10.10.17','','0',NULL),
(9600005,'10.10.10.17','','0',NULL),
(9600006,'10.10.10.17','','0',NULL),
(9600007,'10.10.10.17','','0',NULL),
(9600008,'10.10.10.17','','0',NULL),
(9600009,'10.10.10.17','','0',NULL),
(9600010,'10.10.10.17','','0',NULL),
(9600011,'10.10.10.17','','0',NULL),
(9600012,'10.10.10.17','','0',NULL),
(9600013,'10.10.10.17','','0',NULL),
(9600014,'10.10.10.17','','0',NULL),
(9600015,'10.10.10.17','','0',NULL),
(9600016,'10.10.10.17','','0',NULL),
(9600017,'10.10.10.17','','0',NULL),
(9600018,'10.10.10.17','','0',NULL),
(9600019,'10.10.10.17','','0',NULL),
(9600020,'10.10.10.17','','0',NULL),
(9600021,'10.10.10.17','','0',NULL),
(9600022,'10.10.10.17','','0',NULL),
(9600023,'10.10.10.17','','0',NULL),
(9600024,'10.10.10.17','','0',NULL),
(9600025,'10.10.10.17','','0',NULL),
(9600026,'10.10.10.17','','0',NULL),
(9600027,'10.10.10.17','','0',NULL),
(9600028,'10.10.10.17','','0',NULL),
(9600029,'10.10.10.17','','0',NULL),
(9600030,'10.10.10.17','','0',NULL),
(9600031,'10.10.10.17','','0',NULL),
(9600032,'10.10.10.17','','0',NULL),
(9600033,'10.10.10.17','','0',NULL),
(9600034,'10.10.10.17','','0',NULL),
(9600035,'10.10.10.17','','0',NULL),
(9600036,'10.10.10.17','','0',NULL),
(9600037,'10.10.10.17','','0',NULL),
(9600038,'10.10.10.17','','0',NULL),
(9600039,'10.10.10.17','','0',NULL),
(9600040,'10.10.10.17','','0',NULL),
(9600041,'10.10.10.17','','0',NULL),
(9600042,'10.10.10.17','','0',NULL),
(9600043,'10.10.10.17','','0',NULL),
(9600044,'10.10.10.17','','0',NULL),
(9600045,'10.10.10.17','','0',NULL),
(9600046,'10.10.10.17','','0',NULL),
(9600047,'10.10.10.17','','0',NULL),
(9600048,'10.10.10.17','','0',NULL),
(9600049,'10.10.10.17','','0',NULL),
(9600050,'10.10.10.17','','0',NULL),
(9600051,'10.10.10.17','','0',NULL),
(9600052,'10.10.10.17','','0',NULL),
(9600053,'10.10.10.17','','0',NULL),
(9600054,'10.10.10.17','','0',NULL),
(9600055,'10.10.10.17','','0',NULL),
(9600056,'10.10.10.17','','0',NULL),
(9600057,'10.10.10.17','','0',NULL),
(9600058,'10.10.10.17','','0',NULL),
(9600059,'10.10.10.17','','0',NULL),
(9600060,'10.10.10.17','','0',NULL),
(9600061,'10.10.10.17','','0',NULL),
(9600062,'10.10.10.17','','0',NULL),
(9600063,'10.10.10.17','','0',NULL),
(9600064,'10.10.10.17','','0',NULL),
(9600065,'10.10.10.17','','0',NULL),
(9600066,'10.10.10.17','','0',NULL),
(9600067,'10.10.10.17','','0',NULL),
(9600068,'10.10.10.17','','0',NULL),
(9600069,'10.10.10.17','','0',NULL),
(9600070,'10.10.10.17','','0',NULL),
(9600071,'10.10.10.17','','0',NULL),
(9600072,'10.10.10.17','','0',NULL),
(9600073,'10.10.10.17','','0',NULL),
(9600074,'10.10.10.17','','0',NULL),
(9600075,'10.10.10.17','','0',NULL),
(9600076,'10.10.10.17','','0',NULL),
(9600077,'10.10.10.17','','0',NULL),
(9600078,'10.10.10.17','','0',NULL),
(9600079,'10.10.10.17','','0',NULL),
(9600080,'10.10.10.17','','0',NULL),
(9600081,'10.10.10.17','','0',NULL),
(9600082,'10.10.10.17','','0',NULL),
(9600083,'10.10.10.17','','0',NULL),
(9600084,'10.10.10.17','','0',NULL),
(9600085,'10.10.10.17','','0',NULL),
(9600086,'10.10.10.17','','0',NULL),
(9600087,'10.10.10.17','','0',NULL),
(9600088,'10.10.10.17','','0',NULL),
(9600089,'10.10.10.17','','0',NULL),
(9600090,'10.10.10.17','','0',NULL),
(9600091,'10.10.10.17','','0',NULL),
(9600092,'10.10.10.17','','0',NULL),
(9600093,'10.10.10.17','','0',NULL),
(9600094,'10.10.10.17','','0',NULL),
(9600095,'10.10.10.17','','0',NULL),
(9600096,'10.10.10.17','','0',NULL),
(9600097,'10.10.10.17','','0',NULL),
(9600098,'10.10.10.17','','0',NULL),
(9600099,'10.10.10.17','','0',NULL),
(9600100,'10.10.10.17','','0',NULL),
(9600101,'10.10.10.17','','0',NULL),
(9600102,'10.10.10.17','','0',NULL),
(9600103,'10.10.10.17','','0',NULL),
(9600104,'10.10.10.17','','0',NULL),
(9600105,'10.10.10.17','','0',NULL),
(9600106,'10.10.10.17','','0',NULL),
(9600107,'10.10.10.17','','0',NULL),
(9600108,'10.10.10.17','','0',NULL),
(9600109,'10.10.10.17','','0',NULL),
(9600110,'10.10.10.17','','0',NULL),
(9600111,'10.10.10.17','','0',NULL),
(9600112,'10.10.10.17','','0',NULL),
(9600113,'10.10.10.17','','0',NULL),
(9600114,'10.10.10.17','','0',NULL),
(9600115,'10.10.10.17','','0',NULL),
(9600116,'10.10.10.17','','0',NULL),
(9600117,'10.10.10.17','','0',NULL),
(9600118,'10.10.10.17','','0',NULL),
(9600119,'10.10.10.17','','0',NULL),
(9600120,'10.10.10.17','','0',NULL),
(9600121,'10.10.10.17','','0',NULL),
(9600122,'10.10.10.17','','0',NULL),
(9600123,'10.10.10.17','','0',NULL),
(9600124,'10.10.10.17','','0',NULL),
(9600125,'10.10.10.17','','0',NULL),
(9600126,'10.10.10.17','','0',NULL),
(9600127,'10.10.10.17','','0',NULL),
(9600128,'10.10.10.17','','0',NULL),
(9600129,'10.10.10.17','','0',NULL),
(9600130,'10.10.10.17','','0',NULL),
(9600131,'10.10.10.17','','0',NULL),
(9600132,'10.10.10.17','','0',NULL),
(9600133,'10.10.10.17','','0',NULL),
(9600134,'10.10.10.17','','0',NULL),
(9600135,'10.10.10.17','','0',NULL),
(9600136,'10.10.10.17','','0',NULL),
(9600137,'10.10.10.17','','0',NULL),
(9600138,'10.10.10.17','','0',NULL),
(9600139,'10.10.10.17','','0',NULL),
(9600140,'10.10.10.17','','0',NULL),
(9600141,'10.10.10.17','','0',NULL),
(9600142,'10.10.10.17','','0',NULL),
(9600143,'10.10.10.17','','0',NULL),
(9600144,'10.10.10.17','','0',NULL),
(9600145,'10.10.10.17','','0',NULL),
(9600146,'10.10.10.17','','0',NULL),
(9600147,'10.10.10.17','','0',NULL),
(9600148,'10.10.10.17','','0',NULL),
(9600149,'10.10.10.17','','0',NULL),
(9600150,'10.10.10.17','','0',NULL),
(9600151,'10.10.10.17','','0',NULL),
(9600152,'10.10.10.17','','0',NULL),
(9600153,'10.10.10.17','','0',NULL),
(9600154,'10.10.10.17','','0',NULL),
(9600155,'10.10.10.17','','0',NULL),
(9600156,'10.10.10.17','','0',NULL),
(9600157,'10.10.10.17','','0',NULL),
(9600158,'10.10.10.17','','0',NULL),
(9600159,'10.10.10.17','','0',NULL),
(9600160,'10.10.10.17','','0',NULL),
(9600161,'10.10.10.17','','0',NULL),
(9600162,'10.10.10.17','','0',NULL),
(9600163,'10.10.10.17','','0',NULL),
(9600164,'10.10.10.17','','0',NULL),
(9600165,'10.10.10.17','','0',NULL),
(9600166,'10.10.10.17','','0',NULL),
(9600167,'10.10.10.17','','0',NULL),
(9600168,'10.10.10.17','','0',NULL),
(9600169,'10.10.10.17','','0',NULL),
(9600170,'10.10.10.17','','0',NULL),
(9600171,'10.10.10.17','','0',NULL),
(9600172,'10.10.10.17','','0',NULL),
(9600173,'10.10.10.17','','0',NULL),
(9600174,'10.10.10.17','','0',NULL),
(9600175,'10.10.10.17','','0',NULL),
(9600176,'10.10.10.17','','0',NULL),
(9600177,'10.10.10.17','','0',NULL),
(9600178,'10.10.10.17','','0',NULL),
(9600179,'10.10.10.17','','0',NULL),
(9600180,'10.10.10.17','','0',NULL),
(9600181,'10.10.10.17','','0',NULL),
(9600182,'10.10.10.17','','0',NULL),
(9600183,'10.10.10.17','','0',NULL),
(9600184,'10.10.10.17','','0',NULL),
(9600185,'10.10.10.17','','0',NULL),
(9600186,'10.10.10.17','','0',NULL),
(9600187,'10.10.10.17','','0',NULL),
(9600188,'10.10.10.17','','0',NULL),
(9600189,'10.10.10.17','','0',NULL),
(9600190,'10.10.10.17','','0',NULL),
(9600191,'10.10.10.17','','0',NULL),
(9600192,'10.10.10.17','','0',NULL),
(9600193,'10.10.10.17','','0',NULL),
(9600194,'10.10.10.17','','0',NULL),
(9600195,'10.10.10.17','','0',NULL),
(9600196,'10.10.10.17','','0',NULL),
(9600197,'10.10.10.17','','0',NULL),
(9600198,'10.10.10.17','','0',NULL),
(9600199,'10.10.10.17','','0',NULL),
(9600200,'10.10.10.17','','0',NULL),
(9600201,'10.10.10.17','','0',NULL),
(9600202,'10.10.10.17','','0',NULL),
(9600203,'10.10.10.17','','0',NULL),
(9600204,'10.10.10.17','','0',NULL),
(9600205,'10.10.10.17','','0',NULL),
(9600206,'10.10.10.17','','0',NULL),
(9600207,'10.10.10.17','','0',NULL),
(9600208,'10.10.10.17','','0',NULL),
(9600209,'10.10.10.17','','0',NULL),
(9600210,'10.10.10.17','','0',NULL),
(9600211,'10.10.10.17','','0',NULL),
(9600212,'10.10.10.17','','0',NULL),
(9600213,'10.10.10.17','','0',NULL),
(9600214,'10.10.10.17','','0',NULL),
(9600215,'10.10.10.17','','0',NULL),
(9600216,'10.10.10.17','','0',NULL),
(9600217,'10.10.10.17','','0',NULL),
(9600218,'10.10.10.17','','0',NULL),
(9600219,'10.10.10.17','','0',NULL),
(9600220,'10.10.10.17','','0',NULL),
(9600221,'10.10.10.17','','0',NULL),
(9600222,'10.10.10.17','','0',NULL),
(9600223,'10.10.10.17','','0',NULL),
(9600224,'10.10.10.17','','0',NULL),
(9600225,'10.10.10.17','','0',NULL),
(9600226,'10.10.10.17','','0',NULL),
(9600227,'10.10.10.17','','0',NULL),
(9600228,'10.10.10.17','','0',NULL),
(9600229,'10.10.10.17','','0',NULL),
(9600230,'10.10.10.17','','0',NULL),
(9600231,'10.10.10.17','','0',NULL),
(9600232,'10.10.10.17','','0',NULL),
(9600233,'10.10.10.17','','0',NULL),
(9600234,'10.10.10.17','','0',NULL),
(9600235,'10.10.10.17','','0',NULL),
(9600236,'10.10.10.17','','0',NULL),
(9600237,'10.10.10.17','','0',NULL),
(9600238,'10.10.10.17','','0',NULL),
(9600239,'10.10.10.17','','0',NULL),
(9600240,'10.10.10.17','','0',NULL),
(9600241,'10.10.10.17','','0',NULL),
(9600242,'10.10.10.17','','0',NULL),
(9600243,'10.10.10.17','','0',NULL),
(9600244,'10.10.10.17','','0',NULL),
(9600245,'10.10.10.17','','0',NULL),
(9600246,'10.10.10.17','','0',NULL),
(9600247,'10.10.10.17','','0',NULL),
(9600248,'10.10.10.17','','0',NULL),
(9600249,'10.10.10.17','','0',NULL),
(9600250,'10.10.10.17','','0',NULL),
(9600251,'10.10.10.17','','0',NULL),
(9600252,'10.10.10.17','','0',NULL),
(9600253,'10.10.10.17','','0',NULL),
(9600254,'10.10.10.17','','0',NULL),
(9600255,'10.10.10.17','','0',NULL),
(9600256,'10.10.10.17','','0',NULL),
(9600257,'10.10.10.17','','0',NULL),
(9600258,'10.10.10.17','','0',NULL),
(9600259,'10.10.10.17','','0',NULL),
(9600260,'10.10.10.17','','0',NULL),
(9600261,'10.10.10.17','','0',NULL),
(9600262,'10.10.10.17','','0',NULL),
(9600263,'10.10.10.17','','0',NULL),
(9600264,'10.10.10.17','','0',NULL),
(9600265,'10.10.10.17','','0',NULL),
(9600266,'10.10.10.17','','0',NULL),
(9600267,'10.10.10.17','','0',NULL),
(9600268,'10.10.10.17','','0',NULL),
(9600269,'10.10.10.17','','0',NULL),
(9600270,'10.10.10.17','','0',NULL),
(9600271,'10.10.10.17','','0',NULL),
(9600272,'10.10.10.17','','0',NULL),
(9600273,'10.10.10.17','','0',NULL),
(9600274,'10.10.10.17','','0',NULL),
(9600275,'10.10.10.17','','0',NULL),
(9600276,'10.10.10.17','','0',NULL),
(9600277,'10.10.10.17','','0',NULL),
(9600278,'10.10.10.17','','0',NULL),
(9600279,'10.10.10.17','','0',NULL),
(9600280,'10.10.10.17','','0',NULL),
(9600281,'10.10.10.17','','0',NULL),
(9600282,'10.10.10.17','','0',NULL),
(9600283,'10.10.10.17','','0',NULL),
(9600284,'10.10.10.17','','0',NULL),
(9600285,'10.10.10.17','','0',NULL),
(9600286,'10.10.10.17','','0',NULL),
(9600287,'10.10.10.17','','0',NULL),
(9600288,'10.10.10.17','','0',NULL),
(9600289,'10.10.10.17','','0',NULL),
(9600290,'10.10.10.17','','0',NULL),
(9600291,'10.10.10.17','','0',NULL),
(9600292,'10.10.10.17','','0',NULL),
(9600293,'10.10.10.17','','0',NULL),
(9600294,'10.10.10.17','','0',NULL),
(9600295,'10.10.10.17','','0',NULL),
(9600296,'10.10.10.17','','0',NULL),
(9600297,'10.10.10.17','','0',NULL),
(9600298,'10.10.10.17','','0',NULL),
(9600299,'10.10.10.17','','0',NULL);
exit

Step 6 – Update the IP to your Server IP

Run the following command:

/usr/share/astguiclient/ADMIN_update_server_ip.pl –old-server_ip=10.10.10.17

image 1

Step 7 – Patch the files for ViciDial to be able to use confbridges

cd /usr/src/astguiclient/trunk/extras/ConfBridge/
cp * /usr/share/astguiclient/
cd /usr/share/astguiclient/
mv manager_send.php.diff vdc_db_query.php.diff vicidial.php.diff /var/www/html/agc/
patch -p0 < ADMIN_keepalive_ALL.pl.diff
patch -p0 < ADMIN_update_server_ip.pl.diff
patch -p0 < AST_DB_optimize.pl.diff
chmod +x AST_conf_update_screen.pl
patch -p0 < AST_reset_mysql_vars.pl.diff
cd /var/www/html/agc/
patch -p0 < manager_send.php.diff
patch -p0 < vdc_db_query.php.diff
patch -p0 < vicidial.php.diff

Step 8 – Change the screens for Vicidial being used

A new screen session has been added called ‘AST_conf_update_screen.pl’. This screen session replaces both the AST_conf_update.pl and AST_conf_update_3way.pl scripts. It checks both MeetMe and ConfBridge conferences for unnecessary channels and removes them. For instance if an agent does a Leave 3way and a few minutes later one of the remaining channels hangs up. This script will remove the remaining channel and free the conference for use by Vicidial. This screen session is optional for use with MeetMe but is required to be used with ConfBridge.

image 2

Step 9 – Change /etc/astguiclient.conf

To enable this screen session you need to add a ‘C’ to the ‘VARactive_keepalives’ variable in the ‘/etc/astguiclient.conf’ on your dialers, and comment out the following line from your crontab:

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

You can configure the refresh interval for how often the screen session checks for unnecessary channels by changing “Conf Update Interval” in Admin -> Servers.

image 3

Step 10- Make the needed changes in ViciDial GUI

Login to the ViciDial Admin GUI and go to Admin > Servers and click on the server(s) that are dialers and change the conferencing engine to “CONFBRIDGE” as shown above.

Step 11 – Add confbridge to manager.conf

nano /etc/asterisk/manager.conf
Go to the bottom and paste:

[confcron]
secret = 1234
read = command,reporting
write = command,reporting

eventfilter=Event: Meetme
eventfilter=Event: Confbridge

Step 12 – Fix the last bug to get “listen” and “barge” working

OK, so now we have to do some source code changes that will fix the issues with monitoring through the ViciDial real-time report. We’re going to be editing the non_agent_api.php in /your web directory.

For OpenSUSE its in /srv/www/htdocs/vicidial and for RedHat such as CentOS, Alma or Rocky its in /var/www/html/vicidial.

nano /var/www/html/vicidial/non_agent_api.php
Line 3295: Change vicidial_conferences to vicidial_confbridges like you see below:

image 4

You should now have your setup able to use confbridge.

-Chris