KTS Soft | Reporter
KTS Software

 
    KTS Reporter - программа предназначенная для тарификации звонков на основе данных из БД, запись куда ведет программа KTS Logger.
 
Внешний вид программы представлен на скриншотах:
 
На вкладке Журнал производятся вывод с последующей сортировкой, фильтрацией и экспортом данных о звонках.
 
На вкладке Отчеты производится генерация отчетов, кторые дадут Вам полную картинку как о стоимости завонков, так и о нагрузке на Вашу мини-АТС.
 
В ближайшее время постараюсь написать хелп к репортеру. Если кто желает помочь в этом, то буду рад.


В принципе, если у Вас установлен apache, то можно при помощи php выводить smdr-информацию прямо в браузер.

Вот такой пример(кликабельно):

<?php
//                Пример php-скрипта для вывода информации о звонках из базы даных
//                программ KTS Logger & Reporter.
//                Убедитесь, что в файле php.ini строка
//                        extension=php_interbase.dll
//                раскомментирована и что файл php_interbase.dll присутствует в \extensions\
//                Скрипт очень простой, поэтому думаю, что он вряд ли нуждается в комментариях :)
//                by author of KTS Logger & Reporter (с) 13.05.2007.

$host    ='localhost:e:\db\base\atsnew.gdb';// укажите свой путь к базе данных
$yearb   = trim($_POST['yearb']);
$monthb  = trim($_POST['monthb']);
$dayb    = trim($_POST['dayb']);
$yeare   = trim($_POST['yeare']);
$monthe  = trim($_POST['monthe']);
$daybe   = trim($_POST['daye']);
$typ     = trim($_POST['typ']);
switch ($typ)
 {
        case 'all':
                        $typ="'O','I','t','T','R'";
                        break;
        case 'in':
                        $typ="'I','t'";
                        break;
        case 'out':
                        $typ="'O','T'";
                        break;
 };
$qr=1;
if($yearb=='' || $monthb=='' || $dayb=='' || $yeare=='' || $monthe=='' || $daye=='')
 {
  $yearb  = date('Y');
  $monthb = date('n');
  $dayb   = date('j');
  $yeare  = date('Y');
  $monthe = date('n');
  $daye   = date('j');
  $qr     = 0;
 };

echo '<html><head><meta http-equiv="content-type" content="text/html;
        charset=windows-1251"/></head><body>'
;
echo "<div align='center'><b><big>Вывод звонков за период:</big><br></div><br>";
echo '<form action="example.php" method="post">';
echo '<b>Начало:&nbsp;</b>';
echo 'год <input size=2 name="yearb" value='.$yearb.'>';
echo 'месяц <input size=1 type="text" name="monthb" value='.$monthb.'>';
echo 'день <input size=1 type="text" name="dayb" value='.$dayb.'>';
echo '&nbsp;&nbsp;-&nbsp;&nbsp;<b>Конец:&nbsp;</b>';
echo 'год <input size=2 type="text" name="yeare" value='.$yeare.'>';
echo 'месяц <input size=1 type="text" name="monthe" value='.$monthe.'>';
echo 'день <input size=1 type="text" name="daye" value='.$daye.'>';
echo '&nbsp;&nbsp;<b>Тип звонков:</b>';
echo '<select name="typ" id="typ">';
echo '<option value="all">Все</option>';
echo '<option value="in">Входящие</option>';
echo '<option value="out" selected>Исходящие</option>';
echo '</select>';
echo '&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="ОК">';
echo '</form><br><br><hr>';

if($qr==1)
 {
        echo '<table><tr>' ;
        echo '<td width="10%"><b>Дата</b></td>';
        echo '<td width="10%"><b>Время</b></td>';
        echo '<td width="7%"><b>Станция</b></td>';
        echo '<td width="10%"><b>Тип звонка</b></td>';
        echo '<td width="20%"><b>Номер</b></td>';
        echo '<td width="10%"><b>Длительность</b></td>';
        echo '<td width="3%"><b>СО</b></td>';
        echo '<td width="35%"><b>Пользователь</b></td></tr>';

        $dbeg = $yearb.'.'.$monthb.'.'.$dayb;
        $dend = $yeare.'.'.$monthe.'.'.$daye;

        ibase_connect($host, 'SYSDBA''masterkey','WIN1251');
        $res = ibase_query("select * from smdr,spusers
                            where   smdr.DDATE>='".$dbeg."'
                                    and smdr.DDATE<='".$dend."'
                                    and smdr.sta=spusers.sta
                                    and (TYPE in (".$typ."))
                            order by smdr.DDATE,smdr.DTIME")
                or die(ibase_errmsg());
    while ($rec = ibase_fetch_assoc($res))
        {
            echo '<tr>' ;
                echo '<td width="10%">'.$rec['DDATE'].'</td>';
                echo '<td width="10%">'.$rec['DTIME'].'</td>';
                echo '<td width="7%">' .$rec['STA']  .'</td>';
                echo '<td width="10%">';
                switch ($rec['TYPE'])
                 {
                        case 'O':
                                echo "исходящий";
                                break;
                        case 'T':
                                echo "исходящий<br>переведенный";
                                break;
                        case 'I':
                                echo "входящий";
                                break;
                        case 't':
                                echo "входящий<br>переведенный";
                                break;
                        case 'R':
                                echo "пропущенный";
                                break;
                 };
                echo "</td>";
                echo '<td width="20%">';
                if($rec['DNUM']==''){echo '&nbsp;';}else{echo $rec['DNUM'];};
                echo "</td>";
                echo '<td width="10%">'.$rec['DLONG'].'</td>';
                echo '<td width="5%">' .$rec['CO']   .'</td>';
                echo '<td width="35%">';
                if($rec['NUM']==''){echo '&nbsp;';}else{echo $rec['NUM'];};
                echo "</td></tr>";
        }
    ibase_free_result($rec);
    ibase_close();
        echo '</table>';
 };
echo '</body></html>';
?>

В итоге можно увидеть примерно следующее:
Log via php
 
kts software site, © 2006-2010 by sid & rety