Skip to main content

Missed calls Notification on Email (Issabel, FreePBX, Elastix, Asterisk)

 

This is a simple cronJob to send automatic a custom CDR email every 10 minutes that will include all missed calls of this period.

Create a php file named missed_calls.php

code:-

<?php
//error_reporting(0);
/*------------------------------------------------------------------------
# copyright Copyright (C) 2018 sbzsystems.com. All Rights Reserved.
# @license - http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
# Websites: https://www.sbzsystems.com
-------------------------------------------------------------------------*/
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header('Content-Type: text/html; charset=UTF-8');
//error_reporting(0);
$host = 'localhost';
$user = 'root';
$password = 'XXXXXXXX';
$db = 'asteriskcdrdb';
$logfile='/usr/local/issabel/missed_calls.log';
// Connects to your Database
$link=mysqli_connect("$host", $user, $password) or die(mysqli_error($link));
mysqli_select_db($link,"$db") or die(mysqli_error($link));
mysqli_set_charset($link,'utf8');
//GET SQL TIME INTERVAL 10 MINUTE
$query="
select calldate AS Timestamp, src AS CallerID from cdr
where calldate > date_sub(now(), interval 1 MINUTE)
/*and dst=600*/
group by CallerID, Timestamp
";
$data = mysqli_query($link,$query) or die(mysqli_error($link));
//AND disposition like 'NO ANSWER'
$txt='';
while($alldata = mysqli_fetch_array( $data ))
{
if (strlen($alldata['CallerID'])>5) {
$txt=$txt. $alldata['Timestamp'].' <a href="tel:'.$alldata['CallerID'].'">'.$alldata['CallerID'].'</a><br>';  
}
}
//
mysqli_close($link);
//file_put_contents($logfile, '#'.$txt.'#'.$query.'#'."\n", FILE_APPEND | LOCK_EX);
if ($txt) {
$to = "info@bikemall.gr";
$subject = "Missed calls";
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers .= "From: info@bikemall.gr" . "\r\n";
mail($to,$subject,$txt,$headers);
}
?>
 
 
and store it here


/usr/local/issabel
 
Finally create an every minute cronjob named missed_calls.cron


* * * * *  root /usr/bin/php -q /usr/local/issabel/missed_calls.php
 
and store it here


/etc/cron.d/
 
 
 
 
 
 
 
 
 
 
 
 

 

Comments

Popular posts from this blog

Vicidial Scratch installation Alma -9

Step 1 – Download the dependencies   hostnamectl set-hostname xxxxxx.xxxxx.xxx ### Use YOUR SubDomain vi /etc/hosts ##Change domain name for actual server ip (xxx.xxx.xxx.xxx   complete domain name    subdomain only) timedatectl set-timezone Asia/Kolkata yum check-update yum update -y yum -y install epel-release yum update -y yum install git -y yum install -y kernel* #Disable SELINUX sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config     reboot Step 2 – Run the Script cd /usr/src/ git clone https://github.com/manish23k/vicidial-install-scripts cd vicidial-install-scripts chmod +x alma-rocky9-ast16.sh ./alma-rocky9-ast16.sh Or the Asterisk 18 version: chmod +x alma-rocky9-ast18.sh ./alma-rocky9-ast18.sh

Vicidial Scratch installation Debian 11 with Asterisk 16, WebRTC and Dynamic Portal

  Vicidial Scratch installation Debian 11  Asterisk 16, WebRTC and Dynamic Portal apt update apt upgrade apt-get install git nano wget cd /usr/src/ git clone https://github.com/manish23k/Vici_Install_Scripts_Deb_11.git cd Vici_Install_Scripts_Deb_11/ chmod +x *.sh Run ./vici_install_deb_ast16.sh Install WebRTC ./vicidial-install-webrtc.sh Once Done with Configuration Secure Server with Vici Dynamic Portal Run ./vici_dynportal.sh

How to delete old call logs and other logs in vicidial or goautodial.

Step 1 : SSH to the server using the Putty Step 2:   login to mysql by typing   mysql -p                    (if you dont know password try below command )               mysql -ucron -p1234 Step 3 : select the asterisk database by typing               use asterisk step 4: Run the below command to check total disk occupied by asterisk database                SELECT table_schema AS "asterisk", ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS "Size (MB)" FROM information_schema.TABLES GROUP BY table_schema; Step 5 : Run the below command to check disk space consumed by each table in asterisk database SELECT table_name AS "Table", ROUND(((data_length + index_length) / 1024 / 1024), 2) AS "Size (MB)" FROM information_schema.TABLES WHERE table_schema = "asterisk" ORDER BY (data_length + inde...