CDR (Call Detail Record)

Một phần của tài liệu xây dựng và thiết kế một hệ thống thoại đáp ứng trong thực tế cho các doanh nghiệp nhỏ (Trang 135 - 139)

Asterisk hỗ trợ việc lưu trữ các thông tin cuộc gọi trong cơ sở dữ liệu để tiện việc tra cứu . Cũng như ta có thể so sánh các thông tin này với hóa đơn hàng tháng của công ty điện thoại gởi cho ta . Nó cho phép ta phân tích lưu lượng thoại trong công ty , tìm ra 10 số phone thường gọi nhất , xem thời gian của các cuộc gọi , so sánh với thời gian trung bình trong các cuộc gọi . Nhờ vậy, ta hoàn toàn có thể phát hiện được việc liệu nhân viên công ty có sử dụng điện thoại một cách hoang phí trong giờ làm việc hay không . Việc sử dụng CDR có thể sử dụng database Mysql

SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG NGUYỄN THANH PHƯỚC - 136 -

để lưu các nhật ký cuộc gọi. Việc cài đặt và cấu hình CDR được cấu hình theo các bước sau:

Bước 1: cấu hình trong file /etc/asterisk/cdr_mysql.conf

[global] hostname=localhost dbname=asterisk password=123 passworduser=asterisklog uniqueid=yes

Bước 2: tạo bảng `table cdr` lưu trữ database chi tiết cuộc gọi ở mysql và

reload lại asterisk:

CREATE TABLE `cdr` (

`id` int(11) NOT NULL auto_increment,

`calldate` datetime NOT NULL default '0000-00-00 00:00:00', `clid` varchar(80) NOT NULL default '',

`src` varchar(80) NOT NULL default '', `dst` varchar(80) NOT NULL default '', `dcontext` varchar(80) NOT NULL default '', `duration` int(11) NOT NULL default '0', `billsec` int(11) NOT NULL default '0',

`disposition` varchar(45) NOT NULL default '', PRIMARY KEY (`id`);

ALTER TABLE `cdr` ADD INDEX ( `calldate` ); ALTER TABLE `cdr` ADD INDEX ( `dst` );

ALTER TABLE `cdr` ADD INDEX ( `accountcode` );

Bước 3: Sử dụng ngôn ngữ lập trình PHP tạo giao diện web kết nối với

database asterisk để truy xuất dữ liệu. Tạo một file asterisk.php ở /usr/local/apache2/htdocs. Đoạn code thực hiện như sau:

SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG NGUYỄN THANH PHƯỚC - 137 -

<?php

echo"<image src='http://192.168.1.3/asterisk.gif '>"; ?>

<html> <head>

<title>Asterisk with CDR</title> <style> .title { FONT-WEIGHT: bold; FONT-SIZE: 30px; COLOR: #003063; } </style> </head> <body>

<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>

<TR>

<TD vAlign=top class=title align=center> *** CHI TIT CUC GI *** </TD> </TR> </table> <? $dbuser = 'root'; $dbhost = 'localhost';

SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG NGUYỄN THANH PHƯỚC - 138 -

$dbpass = '123'; $dbname = 'asterisk'; $dbtable = 'cdr';

$mysql_link = mysql_connect('localhost','root','123');

$column = mysql_list_fields($dbname, $dbtable, $mysql_link); $sql = "SELECT * FROM $dbtable";

$result = mysql_db_query($dbname,$sql); ?>

<table border=1 cellSpacing=0 cellPading=0 width="100%" COLOR: #003063 > <th>STT </th> <th> Ngày-gi gi </th> <th> Ngun </th> <th> Đích </th> <th> Ng cnh</th> <th> ng dng </th> <th> Thc hin </th> <th>Tng thi gian </th> <th> Thi gian gi</th> <th> Trng thái</th>

<? while($value = mysql_fetch_array($result)) { print "<tr>"; (adsbygoogle = window.adsbygoogle || []).push({});

for ($i=0; $i<mysql_num_fields($column); $i++) {

if (empty($value[$i])) {print "<td align=center> NULL </td>";} else {print "<td align=center> $value[$i] </td>";}}

print "</tr>"; } mysql_free_result($result); mysql_close(); ?> </TABLE> <TR><TD><hr size=1 color=red></TD</TR>

<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>

SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG NGUYỄN THANH PHƯỚC - 139 -

<TR>

<TD Color = red vAlign=top align=center>

Thc hin: Nguyn Thanh Hiếu-Nguyn Thanh Phước</color=redTD> </TR>

</table>

</body> </html>

Để có thể hiển thị giao diện web thì bắt buộc asterisk server phải cài Apache để có thể truy cập và hiển thị trang web từ asterisk server.

Hình 5.30: Giao din web chi tiết cuc gi

Một phần của tài liệu xây dựng và thiết kế một hệ thống thoại đáp ứng trong thực tế cho các doanh nghiệp nhỏ (Trang 135 - 139)