Blog

How to export callbacks from ViCiDial

In order to export all callbacks (CBHOLD) from the entire dialer, please log into the MySQL and run the following query:

SELECT * FROM `vicidial_list` WHERE `status`='CBHOLD' INTO OUTFILE '/var/www/html/vicidial/cbholds.zip' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY 'rn'

After that, navigate to http://your-dialer-address/vicidial/cbholds.zip, download and rename the file from .ZIP to [...]

How to reduce dialer database size by deleting logs

Small, clean database will always perform better than a huge one. In order to see what is the total size of all the databases in the dialer, log in via SSH and run the following command:

du -kh /var/lib/mysql

To check the size of the asterisk database only, you can run:

du -kh /var/lib/mysql/asterisk

Finding files larger than … in Linux

In order to locate any files larger than a certain size, please run the following command. The below example searches for all files larger than 500MB:

find / -size +500M

To display more details and sort the items in the list by size, run the following:

find / -type f -size +500M -exec du -h {}

Searching for a string in Asterisk

If you wish to search for a certain string in Asterisk only (Example: only show carrier congestion), launch the Asterisk CLI along with the grep command, i.e.:

asterisk -rvvvvv | egrep -i "string"

Example (showing only congestion notices / errors):

asterisk -rvvvvv | egrep -i "congested"

Deleting recordings older than X days

To remove recordings older than X days (i.e. 3 days), SSH into your dialer and run the following command:

find /var/spool/asterisk/monitorDONE/MP3 -type f -mtime +3 -exec rm {} ;
find /var/spool/asterisk/monitorDONE/ORIG -type f -mtime +3 -exec rm {} ;

How to export leads with certain disposition only from ViCiDial / GoAutoDial using PHPMyAdmin

To export only leads with a specific disposition (in this example SALE) from only certain campaigns (in this example 1000, 2000), please log in to PHPMyAdmin and run the following SQL:

select * from vicidial_list where status="SALE" and list_id in (select list_id from vicidial_lists where campaign_id=1000 or campaign_id=2000);

Click on the Export button on the bottom.

How to export all leads from specific certain cities from the entire database / dialer

Just run the following from your MySQL / MariaDB console:

SELECT first_name, last_name, address1, city, postal_code, phone_number FROM vicidial_list WHERE list_id in (select list_id from vicidial_lists) and city in ('X','Y','Z') INTO OUTFILE '/tmp/cities.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY 'n';

Installing Fail2Ban on a CentOS server

If you are running a predictive dialer (or any kind of Asterisk server) or a web hosting server, you have probably experienced often hacker/lamer brute force attempts. These attacks can be easily blocked by implementing optimal server configuration, using a good Firewall (i.e. SonicWall, PfSense, Tomato) etc. A very useful method of blocking brute force attacks is installing Fail2Ban.

Resetting only specific call statuses within a specific campaign

Sometimes, admin would like to change/reset only specific dial statuses within only specific campaign – i.e. Reset all NA, NI, NP and similar statuses while keeping others (like DNC, SALE etc.) intact. To do so, log SSH in and open mysql:

mysql -u cron -p1234
use asterisk;

Afterwards, run the following command (Example –

Deleting ViCiDial list records with missing information

Some list vendors will often sell low-quality dialer lists with a lot of missing information. As an example, here is a command to delete all records with missing Last Name field within the list ‘123’. You can permutate last with first or any other column:

DELETE from vicidial_list WHERE list_id='123' AND last_name='';