Потребовался скрипт для одного из клиентов, для уведомления на почту о пропущенных за день звонках. Возможно он и не сильно мудреный, но думаю и другим может пригодиться. В запросе выбираются данные о неотвеченных входящих звонках за вчерашний день. Такая информация довольно актуальна многим организациям, ведь если клиенты не дозвонились им, могут дозвониться другим.
Вот сам скрипт:
Вот сам скрипт:
<?php /* Переменные для соединения с базой данных */ $hostname = "localhost"; $username = "dbuser"; $password = "dbpass"; $dbName = "dbname"; /* Таблица MySQL, в которой хранятся данные */ $cdrtable = "cdr"; /* Переменные для определения вчерашней даты */ $time = mktime(date('H'), date('i'), date('s'), date('m'), date('d')-1, date('Y')); $ydate = date("d.m.Y", $time); /* создать соединение */ mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); /* выбрать базу данных. Если произойдет ошибка - вывести ее */ mysql_select_db($dbName) or die(mysql_error()); /* запрос данных . номерация у нас трехзначная, поэтому LENGTH( `src` ) >3, отсекаем исходящие вызовы */ $query = "SELECT `dst` , `src` , `duration` , `dstchannel` , `calldate` FROM `cdr` WHERE DATE_SUB( CURDATE( ) , INTERVAL 1 DAY ) <= `calldate` AND CURDATE( ) > `calldate` AND `disposition` = 'NO ANSWER' AND LENGTH( `src` ) >3"; /* Выполнить запрос. Если произойдет ошибка - вывести ее. */ $res=mysql_query($query) or die(mysql_error()); /* Как много нашлось строк */ $number = mysql_num_rows($res); /* заголовок письма */ $mes="Отчет о пропущенных вызовах за $ydate.\r\n\r\n"; /* готовим текст письма*/ if ($number == 0) { $mes .= "Пропущенных вызовов не было"; } else { /* Получать по одной строке из таблицы в массив $row, пока строки не кончатся */ while ($row=mysql_fetch_array($res)) { $mes .= " ".$row['calldate'].". От ".$row['src']; $mes .= " Абонент ".mb_substr($row['dstchannel'],4,3); $mes .= ". Ожидание ".$row['duration']." сек.\r\n"; } } /* Отправляем письмо */ mail('admin@mail.domain', $ydate.' report', $mes); ?>
Постарался комментировать достаточно подробно, если что не будет работать, спрашивайте.
ссылка на оригинал статьи http://habrahabr.ru/post/156751/
Добавить комментарий