Отчет о пропущенных за день звонках на почту

от автора

Потребовался скрипт для одного из клиентов, для уведомления на почту о пропущенных за день звонках. Возможно он и не сильно мудреный, но думаю и другим может пригодиться. В запросе выбираются данные о неотвеченных входящих звонках за вчерашний день. Такая информация довольно актуальна многим организациям, ведь если клиенты не дозвонились им, могут дозвониться другим.

Вот сам скрипт:

<?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/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *