Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (963.77 KB, 38 trang )
ĐỒ ÁN TỐT NGHIỆP
Trang 35/51
[1]
Lê Quốc Toàn (2009), Sách “Asterisk tiếng việt”.
[2]
Nguyễn Đỗ Anh Việt (2009), “Đề tài Nghiên cứu giao thức trong mạng voip”,
trường cao đẳng Cao Thắng, Tp.HCM.
[3]
Nguyễn Quốc Dũng (2017), “ Xây dựng tổng đài Asterisk”
[4]
Đặng Ngọc Minh Đức, Hồng Thu Hà (2011), Cơng nghệ truyền thoại trên
nền tảng IP, tạp chí Khoa học & Ứng dụng trường đại học Tôn Đức Thắng,
Tp.HCM.
Tiếng Anh:
[5]
Asterisk Development Team (2009), Asterisk Administrator Guide.
[6]
Nir Simionovich (2009), Asterisk Gateway Interface 1.4 and 1.6 Programming
Packt Publisshing.
Internet:
[7]
Hồng Mạnh Cường (2011), Cấu hình của Asterisk, http://www.vnpro.org
[8]
AbdElrahman Mohamed Amer (2012), Real-time transport protocol,
http://www.slidehare.net/vijendersngh1989/rtp-rtcp
[9]
MySQL (2015), http://www.dev.mysql.com/doc/reman/5.7/en/mysql-
installer.html
[10] PhpDocumentor (2015), http://www.phpagi.sourceforge.net/phpag2/docs/
[11] Matt Jordan (2015), Asterisk 13 Documentation,
https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Documentation.
[12] Mansur Ul Hasan (2016), How to write PHP Agi in asterisk Part 1&2 By IT
Markaz, https://www.youtube.com/watch?v=pnGrE7iRf3Q
PHỤ LỤC
Sip.conf:
Xây dựng tổng đài Asterisk cho
phòng đại học trường đại học
ĐỒ ÁN TỐT NGHIỆP
Trang 36/51
[general]
context=public
allowoverlap=no
udpbindaddr=0.0.0.0
tcpenable=no
tcpbindaddr=0.0.0.0
transport=udp
srvlookup=yes
callcounter=yes
rtcachefriends=yes
[1001]
username=1001
secret=123qwe
type=friend
host=dynamic
context=phone
qualify=yes
directmedia=no
disallow=all
allow=ulaw,alaw
[1002]
username=1002
secret=123qwe
type=friend
host=dynamic
context=phone
qualify=yes
directmedia=no
Xây dựng tổng đài Asterisk cho
phòng đại học trường đại học
ĐỒ ÁN TỐT NGHIỆP
Trang 37/51
disallow=all
allow=ulaw,alaw
[trunk_tel4vn]
username=1175662330
type=friend
fromuser=1175662330
secret=5683880962
host=sip.tel4vn.com
nat=force_rport,comedia
qualify=yes
disallow=all
allow=ulaw,alaw
context=from-trunk
port=50061
insecure=port,invite
register => 1175662330:5683880962@sip.tel4vn.com:50061/02873020777
Extensions.conf:
[general]
static=yes
writeprotect=no
clearglobalvars=no
[phone]
exten => _1XXX,1,Noop(Call local)
exten => _1XXX,n,Dial(SIP/${EXTEN},60)
exten => _1XXX,n,VoiceMail(${EXTEN}@mailbox_tel4vn,b)
exten => _1XXX,n,Hangup()
;goi IVR
exten => 999,1,Noop(IVR)
Xây dựng tổng đài Asterisk cho
phòng đại học trường đại học
ĐỒ ÁN TỐT NGHIỆP
Trang 38/51
exten => 999,n,Set(count=0) ; dat 1 bien dem
exten => 999,n,Goto(ivr-1,abc,1) ;Goto(ivr,dinh tuyen so exten,so pri)
exten => _0Z.,1,Dial(SIP/trunk_tel4vn/${EXTEN},60)
exten => _0Z.,n,Set(count=0) ; dat 1 bien dem
exten => _0Z.,n,Goto(ivr-1,abc,1) ;Goto(ivr,dinh tuyen so exten,so pri)
exten => _0Z.,n,Hangup()
;hoi nghi
exten => 3003,1,Noop(Call to Conferene tel4vn in TEL4VN context)
exten => 3003,n,Set(CONF=tel4vn)
exten => 3003,n,ConfBridge($
{CONF},tel4vn_bridge,tel4vn_user,tel4vn_user_menu)
exten => 3003,n,Hangup()
exten => 3004,1,Noop(Call to Conferene tel4vn in TEL4VN context)
exten => 3004,n,Set(CONF=tel4vn)
exten => 3004,n,ConfBridge($
{CONF},tel4vn_bridge,tel4vn_admin,tel4vn_admin_menu)
include => outbound
[outbound]
exten => _0Z.,1,Dial(SIP/trunk_tel4vn/${EXTEN},60)
exten => _0Z.,n,Hangup()
[ivr-1]
exten => abc,1,Noop(IVR 1)
exten => abc,n,Progress() ; nghe loi chao chua tinh tien`
exten => abc,n,Background(cauchao1,n) ;them option n de k tinh tien
exten => abc,n,Background(cauchao2,n)
exten => abc,n,WaitExten(5) ;cho bam phim
;goi so noi bo
exten => _1XXX,1,Dial(SIP/${EXTEN},60,Tt)
;an phim 1
Xây dựng tổng đài Asterisk cho
phòng đại học trường đại học
ĐỒ ÁN TỐT NGHIỆP
Trang 39/51
exten => 1,1,Noop(press 1)
exten => 1,n,Goto(ivr-2,bcd,1)
;an phim 2
exten => 2,1,Noop(press 2)
exten => 2,n,Goto(ivr-3,dce,1)
;an phim 3
exten => 3,1,Noop(prees 3)
exten => 3,n,Goto(ivr-4,efg,1)
;khong bam phim, het gio cho`
; 't' dai dien cho het gio`
exten => t,1,Noop(het thoi gian)
exten => t,n,Set(count=$[${count} + 1])
exten => t,n,GotoIf($[${count}<4]?ivr-1,abc,1) ;GotoIf(dieu-kien ? dung : sai)
; an sai phim 'i'
exten => i,1,Noop(an sai phim)
exten => i,n,Set(count=$[${count} + 1])
;bam 3 lan sai tat may
exten => i,n,GotoIf($[${count}<4]?ivr-1,abc,1) ;GotoIf(dieu-kien ? dung : sai)
[ivr-2]
exten => bcd,1,Noop(IVR 2)
exten => bcd,n,Background(cau2)
exten => bcd,n,WaitExten(0.5)
exten => bcd,n,Background(cau3)
exten => bcd,n,WaitExten(5)
exten => 1,1,Noop(goi dien thoai vien)
exten => 1,n,Dial(SIP/1002,60,Tt)
exten => 2,1,Noop(tro lai IVR-2)
exten => 2,n,Goto(ivr-2,bcd,1)
exten => 3,1,Noop(tro lai IVR-1)
Xây dựng tổng đài Asterisk cho
phòng đại học trường đại học
ĐỒ ÁN TỐT NGHIỆP
Trang 40/51
exten => 3,n,Goto(ivr-1,abc,1)
;khong bam phim, het gio cho`
; 't' dai dien cho het gio`
exten => t,1,Noop(het thoi gian)
exten => t,n,Set(count=$[${count} + 1])
exten => t,n,GotoIf($[${count}<4]?ivr-2,bcd,1) ;GotoIf(dieu-kien ? dung : sai)
; an sai phim 'i'
exten => i,1,Noop(an sai phim)
exten => i,n,Set(count=$[${count} + 1])
;bam 3 lan sai tat may
exten => i,n,GotoIf($[${count}<4]?ivr-2,bcd,1) ;GotoIf(dieu-kien ? dung : sai)
[ivr-3]
exten => dce,1,Noop(IVR 3)
exten => dce,n,Background(cau4)
exten => dce,n,WaitExten(5)
; Tra cuu thoi khoa bieu
exten => 1,1,Noop(thoi khoa bieu)
exten => 1,n,Noop(nhap mssv)
exten => 1,n,Read(MSSV,mssv)
exten => 1,n,SayDigits(${MSSV})
exten => 1,n,AGI(tkbquang.php,${MSSV})
exten => 1,n,GotoIf($["${CHECK_MSSV}"="1"]?ivr-3,tkb,1)
exten => 1,n,Noop(nhap lai mssv)
exten => 1,n,Set(count=$[${count} + 1])
exten => 1,n,GotoIf($[${count}<4]?ivr-3,1,1)
; doc tkb
exten => tkb,1,Noop(doc file)
exten => tkb,n,AGI(tkbdidong.php,${MSSV})
; Tra cuu lich thi
Xây dựng tổng đài Asterisk cho
phòng đại học trường đại học
ĐỒ ÁN TỐT NGHIỆP
Trang 41/51
exten => 2,1,Noop(lich thi)
exten => 2,n,Noop(nhap mssv)
exten => 2,n,Read(MSSV,mssv)
;exten => 2,n,SayDigits(${MSSV})
;dien tu 3
exten => 2,n,AGI(lichthidientu3.php,${MSSV})
exten => 2,n,GotoIf($["${CHECK_MSSV}"="1"]?ivr-3,lichthidt3,1)
exten => 2,n,Noop(nhap lai mssv)
exten => 2,n,Set(count=$[${count} + 1])
exten => 2,n,GotoIf($[${count}<4]?ivr-3,2,1)
;thong bao dt3
exten => lichthidt3,1,Noop(thong bao lich thi)
exten => lichthidt3,n,Playback(dientu3ngay)
exten => lichthidt3,n,SayAlpha(${NGAY})
exten => lichthidt3,n,Playback(thang)
exten => lichthidt3,n,SayAlpha(${THANG})
exten => lichthidt3,n,Playback(luc)
exten => lichthidt3,n,SayAlpha(${GIO})
exten => lichthidt3,n,Playback(gio)
exten => lichthidt3,n,WaitExten(1)
exten => lichthidt3,n,Goto(ivr-3,dce,1)
exten => lichthidt3,n,AGI(lichthithongtin.php,${MSSV})
exten => lichthidt3,n,Playback(thongtinngay)
exten => lichthidt3,n,SayAlpha(${NGAY})
exten => lichthidt3,n,Playback(thang)
exten => lichthidt3,n,SayAlpha(${THANG})
exten => lichthidt3,n,Playback(luc)
exten => lichthidt3,n,SayAlpha(${GIO})
exten => lichthidt3,n,Playback(gio)
Xây dựng tổng đài Asterisk cho
phòng đại học trường đại học
ĐỒ ÁN TỐT NGHIỆP
Trang 42/51
exten => lichthidt3,n,WaitExten(1)
exten => lichthidt3,n,Goto(ivr-3,dce,1)
; Tra cuu diem
; Kiem tra MSSV
exten => 3,1,Noop(diem thi)
exten => 3,n,Noop(nhap mssv)
exten => 3,n,Read(MSSV,mssv)
exten => 3,n,SayDigits(${MSSV})
exten => 3,n,AGI(mssv.php,${MSSV})
exten => 3,n,GotoIf($["${CHECK_MSSV}"="1"]?ivr-3,pas,1)
;nhap lai mssv
exten => 3,n,Noop(nhap lai mssv)
exten => 3,n,Set(count=$[${count} + 1])
exten => 3,n,GotoIf($[${count}<4]?ivr-3,3,1) ;GotoIf(dieu-kien ? dung : sai)
; Kiem tra pass va bang diem
exten => pas,1,Noop(nhap pass)
exten => pas,n,Read(PASS,pass)
exten => pas,n,SayDigits(${PASS})
exten => pas,n,AGI(pass.php,${MSSV},${PASS})
exten => pas,n,GotoIf($["${CHECK_MSSV}"="0"]?ivr-3,saipas,1:ivr3,thongbao,1)
; nhap lai pass
exten => saipas,1,Noop(nhap lai pass)
exten => saipas,n,Set(count=$[${count} + 1])
exten => saipas,n,GotoIf($[${count}<4]?ivr-3,pas,1) ;GotoIf(dieu-kien ? dung :
sai)
; thong bao diem
exten => thongbao,1,Noop(thong bao diem)
exten => thongbao,n,Playback(dientu1)
Xây dựng tổng đài Asterisk cho
phòng đại học trường đại học
ĐỒ ÁN TỐT NGHIỆP
Trang 43/51
exten => thongbao,n,SayAlpha(${DT1})
exten => thongbao,n,Playback(kythuatso)
exten => thongbao,n,SayAlpha(${KTS})
exten => thongbao,n,Playback(doan2)
exten => thongbao,n,SayAlpha(${DA2})
exten => thongbao,n,WaitExten(1)
exten => thongbao,n,Goto(ivr-3,dce,1)
exten => 4,1,Noop(tro lai IVR-3)
exten => 4,n,Goto(ivr-3,dce,1)
exten => 5,1,Noop(tro lai IVR-1)
exten => 5,n,Goto(ivr-1,abc,1)
;khong bam phim, het gio cho`
; 't' dai dien cho het gio`
exten => t,1,Noop(het thoi gian)
exten => t,n,Set(count=$[${count} + 1])
exten => t,n,GotoIf($[${count}<4]?ivr-2,dce,1) ;GotoIf(dieu-kien ? dung : sai)
; an sai phim 'i'
exten => i,1,Noop(an sai phim)
exten => i,n,Set(count=$[${count} + 1])
;bam 3 lan sai tat may
exten => i,n,GotoIf($[${count}<4]?ivr-2,dce,1) ;GotoIf(dieu-kien ? dung : sai)
[ivr-4]
exten => efg,1,Noop(IVR 4)
; thoi gian lam viec
; check time format: gio, thu, ngay, thang
; gio: XX:XX-YY:YY => VD bat dau 8h ket thuc 17h la 08:00-17:00
; thu: X-X mon tue wed thu fri sat sun => VD tu t2 den t6 la mon-fri
; ngay: XX-XX => VD 01-15
; thang: X-X jan feb mar apr may jun jul aug sep oct nov dec
Xây dựng tổng đài Asterisk cho
phòng đại học trường đại học
ĐỒ ÁN TỐT NGHIỆP
Trang 44/51
; VD: 08:00-17:00,mon-fri,*,*
; GotoIfTime(time ? dung : sai)
exten => efg,n,GotoIfTime(08:00-17:00,mon-sun,*,*?dunggio,s,1:saigio,s,1)
[dunggio]
exten => s,1,Noop(dung gio)
exten => s,n,Dial(SIP/1002,60,Tt)
exten => s,n,VoiceMail(1002@mailbox_tel4vn,b) ;voice mail so exten @ ten
voicemail
exten => s,n,Hangup()
[saigio]
exten => s,1,Noop(sai gio)
exten => s,n,VoiceMail(1002@mailbox_tel4vn,b) ;voice mail so exten @ ten
voicemail
exten => s,n,Hangup()
Voicemail.conf:
[general]
attach=yes
fromstring=Tel4vn ;ten mail nhan
sendvoicemail=yes
emailonly=no
emailsubject=Nhan mail tu ${VM_CIDNUM} ;ten tieu de
;trong mail
emailbody=Chao ${VM_NAME}, \nBan nhan duoc loi nhan tu ${VM_CIDNUM}
vao luc ${VM_DATE}.\nXem file dinh kem.\n\n--------------Cam on.
[mailbox_tel4vn]
1001 => 1234, Ext 1001, quocdung3795@gmail.com
1002 => 1234, Ext 1002, quocdung3795@gamil.com
Xây dựng tổng đài Asterisk cho
phòng đại học trường đại học
;passwors, so Exten, mail
ĐỒ ÁN TỐT NGHIỆP
Trang 45/51
Connect.php:
ini_set ('display_errors', 1);
error_reporting (E_ALL);
$dbservertype='mysql';
$servername='127.0.0.1';
$dbusername='root';$dbpassword='tel4vn';
$dbname='asterisk';
mysql_connect($servername,$dbusername,$dbpassword) or die ("khong the ket
noi");
echo "ket noi";
mysql_select_db($dbname) or die("khong the chon db");
echo ("ket noi db");
?>
Mssv.php:
#!/usr/bin/php -q
date_default_timezone_set('UTC');
include "connect.php";
ob_implicit_flush(true);
set_time_limit(6);
function write($line) {
global $debug, $stdlog;
if ($debug) fputs($stdlog, "write: $line\n");
echo $line."\n"; }
$MSSV = $argv[1]; // lay mssv
$get = mysql_query("select * from diemtongket_hk1 where
MSSV='$MSSV'");
// truy van db
Xây dựng tổng đài Asterisk cho
phòng đại học trường đại học