не могли бы помочь.
Есть сборка Elastix 2.4, номер 8 800. в нерабочее время прием входящих номеров по нему отправляется на отбой, чтобы не тратить деньги.
Но хотелось бы получать отчет о пропущенных звонках в нерабочее время.
Решено воспользоваться скриптом, который из базы отчетов по статусу "no answer" присылал бы отчеты.
1) использую очереди, поэтому статус "no answer" паразитирует в отчетах, но в скрипте могу сузить отчет до определенного екстеншна.
2) не могу понять как, принять звонок с 8800 в нерабочее время правильно, чтобы формировать отчеты, так как если:
отправляю на terminate call - hangup в отчете нет вообще никакой информации
отправляю на terminate call - busy информация появляется, но звонок тарифицируется, так как у провайдера в статистику появляется время разговора, несколько секунд.
решил, отправит на екстеншн, 3секунды no answer и через follow me уже отбивать, тем самым буду получать нужный статус для отчета, и не "совершать" звонок.
Задался вопросом, можно ли создать какой либо виртуальный екстеншн, который никогда не берут, чтобы отправлять на него звонок?
Код: Выделить всё
<?php
$hostname = "localhost";
$username = "*********";
$password = "*****";
$dbName = "asteriskcdrdb";
$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());
$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 `dst` = '9999'
AND LENGTH( `src` ) >4";
$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('*******', $ydate.' report', $mes);
?>