Thiết lập cho các dịch vụ người dùng

Một phần của tài liệu TỔNG ĐÀI DỊCH VỤ VOIP (Trang 79)

4.4.1. Xây dựng cơ sở dữ liệu cho các dịch vụ

Ngoài các table chứa các thiết lập cấu hình cho tổng đài tương tác qua tính năng Asterisk Realtime, ta tạo thêm các table chứa các thiết lập về dịch vụ như DND, Call Forwarding hay Block Outbound Calls được kết nối với dialplan thông qua fund_odbc.

Table useroptions: chứa các thiết lập của dịch vụ DND và Call Forwarding.

 CREATE TABLE IF NOT EXISTS `useroptions` (

 `id` int(11) NOT NULL auto_increment,

 `name` varchar(20) collate utf8_unicode_ci NOT NULL,

 `dndallow` varchar(1) collate utf8_unicode_ci NOT NULL,

 `dnd` varchar(1) collate utf8_unicode_ci NOT NULL,

 `forwardallow` varchar(1) collate utf8_unicode_ci NOT NULL,

 `forward` varchar(20) collate utf8_unicode_ci NOT NULL,

 PRIMARY KEY (`id`),

 UNIQUE KEY `name` (`name`)

 ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=3

;

Table blocklist: chứa danh sách các thuê bao không được phép gọi ra ngoài PSTN.

 CREATE TABLE IF NOT EXISTS `blocklist` (

 `id` int(11) NOT NULL auto_increment,

 `number` varchar(20) NOT NULL,

 PRIMARY KEY (`id`),

 UNIQUE KEY `number` (`number`)

 ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

Hình 36 Cơ sở dữ liệu cho Asterisk Realtime Architecture

4.4.2. Thiết lập fund_odbc

Trong file /etc/asterisk/fund_odbc.conf chứa các function có khả năng tương tác với cơ sở dữ liệu để đọc, ghi các thông tin. Các function này đồng thời có thể được gọi ra trong dialplan được xây dựng trong file /etc/asterisk/extensions.conf. Điều này cho phép ta tạo ra các dialplan có tính linh động cao, có khả năng tương tác với cơ sở dữ liệu theo thời gian thực.

Trong file /etc/asterisk/fund_odbc.conf ta tạo thêm các function sau:

 [DND]

 dsn=asterisk

 readsql=SELECT ${ARG2} FROM ast_sipfriends WHERE name='${ARG1}'

 writesql=UPDATE ast_sipfriends SET dnd='${VAL1}' WHERE name='${ARG1}'

 [FORWARD]

 dsn=asterisk (adsbygoogle = window.adsbygoogle || []).push({});

 readsql=SELECT ${ARG2} FROM ast_sipfriends WHERE name='${ARG1}'

 writesql=UPDATE ast_sipfriends SET forward='${VAL1}' WHERE name='${ARG1}'

 [BLOCKLIST]

 dsn=asterisk

 readsql=SELECT IF(COUNT(1)>0,1,0) FROM blocklist WHERE number='${ARG1}'

Như vậy ta đã hoàn thành các thiết lập cần thiết cho việc tương tác giữa Asterisk và cơ sở dữ liệu cho tính năng Asterisk Realtime cũng như fund_odbc cho việc xây dựng dialplan. Tiếp theo ta thực hiện việc xây dựng giao diện nền Web.

4.5. Xây dựng giao diện quản trị nền Web cho tổng đài

Giao diện được xây dựng sử dụng ngôn ngữ HTML và PHP, chứa các table, form tương tác với cơ sở dữ liệu để tiến hành thực hiện các thiết lập cần thiết cho tổng đài.

Cấu trúc trang Web bao gồm 3 phần:

CHƯƠNG 4: XÂY DỰNG GIAO DIỆN QUẢN TRỊ

 Trang chủ: giao diện chính của trang quản trị.

 Các module con: chứa các form, table để thiết lập các tính năng cho tổng đài.

Home Users Voicemail Conference

Main Page Login Page

Service Voicemail

Hình 37 Cấu trúc trang Web quản trị

Thư mục gốc của trang web được đặt trong /var/www/html chứa các file nội dung của trang web bao gồm:

 Login.php: trang login của web.  Index.php: trang chính của web.

 Style.css: file thiết kế quy định bố cục, kích thước, màu sắc của trang chủ.

 Thư mục sites: chứa các module thành phần thực hiện các chức năng của trang web.  Thư mục images: chức các hình ảnh sử dụng trong thiết kế trang web.

Hình 38 Thư mục gốc của trang Web

4.5.1. Trang login

Trang login dùng để thực hiện thao tác đăng nhập vào giao diện quản trị chính, gồm 2 thông tin là username và password của người quản trị. Username và password sẽ được quản lí bởi hệ cơ sở dữ liệu MySQL.

Khi người dùng trùy cập vào giao diện thông qua web browser, trang login sẽ hiện ra yêu cầu đăng nhập, server sẽ kiểm tra kết nối đến máy chủ và thông tin đăng nhập, nếu đúng sẽ chuyển đến trang chủ. Nếu không sẽ yêu cầu đăng nhập lại.

Hình 39 Giao diện login trang quản trị

Sau khi đã đăng nhập đúng, nếu vào truy cập lại vào trang web, hệ thống sẽ không yêu cầu đăng nhập lại mà chuyển thẳng đến trang chủ cho đến khi người quản trị thực hiện thao tác logout.

4.5.2. Trang chủ

Trang chủ của Website được thiết kế bao gồm 2 phần chính:

Thanh navigator: nằm bên trái chứa các tab tương ứng với các chức năng của tổng đài.  Iframe: chứa nội dung hiển thị của trang web tương ứng với các tab được chọn.

CHƯƠNG 4: XÂY DỰNG GIAO DIỆN QUẢN TRỊ (adsbygoogle = window.adsbygoogle || []).push({});

Hình 40 Trang chủ

4.5.3. Các tính năng

4.5.3.1. Users

Tab Users chứa nội dung về quản lý thông tin các tài khoản như trạng thái hiện tại, số thuê bao, tên người sử dụng…

Hình 41 Trang quản lý User

Trong table có thể thực hiện việc chỉnh sửa thông tin tài khoản hoặc xóa tài khoản bằng cách click vào biểu tượng edit và delete ở cột Action tương ứng với tài khoản cần thiết lập.

Việc thêm tài khoản thực hiện bằng cách bấm vào Add New User. Giao diện mới hiện ra cho phép khai báo các thông tin cho tài khoản.

Phần General: khai báo các thông tin chính của tài khoản bao gồm:

Extension: số thuê bao của tài khoản.  Name: tên người dùng.

Password: mật khẩu của số thuê bao.  Caller ID: tên hiển thị.

Dialplan: kế hoạch cuộc gọi.

Call Group: nhóm gọi của thuê bao dùng cho tính năng call transfer.  Pickup Group: nhóm pickup dùng cho tính năng call pickup.

Option:

o Videosupport: cho phép thực hiện video call.

o NAT: thiết lập cho client nằm sau NAT.

CHƯƠNG 4: XÂY DỰNG GIAO DIỆN QUẢN TRỊ

Mailbox: khai báo hộp thư thoại cho thuê bao.  VM Password: password hộp thư thoại.  E-mail: email người dùng.

Hình 42 Trang khai báo User

4.5.3.2. Services

Tab Services cho phép thay đổi các thiết lập về dịch vụ của tài khoản như DND hay Call Forwarding. Người quản trị có thể xem được các thiết lập cho từng tài khoản bao gồm:

Extension: số thuê bao của tài khoản.

DND Service: cho phép người dùng thiết lập dịch vụ DND.  DND: kích hoạt hay bỏ dịch vụ DND.

Call Forwarding Service: cho phép người dùng thiết lập dịch vụ call forwarding.  Call Forwarding: kích hoạt hay bỏ dịch vụ call forwarding.

Hình 43 Trang quản lý Service

Các thiết lập có thể được thay đổi bằng cách click vào biểu tượng edit ở cột action tương ứng với tài khoản cần thay đổi. Trong giao diện mới hiện ra ta có các lựa chọn:

DND Service: khi thiết lập này được chọn, người dùng được tự thiết lập dịch vụ DND bằng cách quay số theo qui định, khi đó ô DND sẽ bị disable.

DND: khi ô DND Service không được lựa chọn, người dùng sẽ không được phép thiết lập dịch vụ DND, lúc này việc thiết lập sẽ do người quản trị chọn bằng ô DND.

Call Forwarding Service: tương tự như DND Service nhưng thay bằng dịch vụ call forwarding.  Call Forwarding: tương tự như DND, tuy nhiên khi người quản trị thiết lập dịch vụ này cần điền

thêm số gọi để thực hiện việc forwarding vào ô Number for forwarding.

4.5.3.3 Block Outbound Call (adsbygoogle = window.adsbygoogle || []).push({});

Mặc định, các thuê bao được khai báo đều được phép thực hiện cuộc gọi ra ngoài qua PSTN. Tab Block Outbound Call cho phép người quản trị thiết lập các số thuê bao không được phép gọi ra ngoài qua PSTN để tránh việc bị tính cước không mong muốn.

CHƯƠNG 4: XÂY DỰNG GIAO DIỆN QUẢN TRỊ

Hình 44 Trang Block Outbound Call

Ta có thể thêm số thuê bao vào blocklist đơn giản bằng cách nhập vào ô Number và bấm nút Add.

Danh sách các thuê bao bị cấm gọi ra PSTN được thể hiện ở table bên dưới. Nếu muốn cho phép thuê bao gọi ra PSTN trở lại chỉ cần bấm vào icon delete trong cột Action tương ứng.

4.5.3.4 Voicemail

Tab Voicemail quản lý các thiết lập liên quan đến hộp thư thoại của tài khoản. Giao diện chính chứa table thể hiện các thông tin liên quan đến hộp thư thoại như số tài khoản, tên người dùng, số hộp thư thoại, email.

Hình 45 Trang quản lý Voicemail

Các thiết lập hộp thư thoại được thay đổi bằng cách vào click vào Option ở cột option tương ứng với hộp thư thoại cần thay đổi. Giao diện mới hiện ra gồm:

Message Options: chứa các thiết lập về hộp thư thoại.

Maximum messages per folder: số lượng thư thoại tối đa trong hộp thư.  Max message time: thời gian tối đa của thư thoại.

Min message time: thời gian tối thiểu của thư thoại.

Playback Options: chứa các thiết lập về lời thông báo khi sử dụng hộp thư thoại.

Say message Caller-ID: thiết lập đọc callerid của người dùng không.

Say message duration: thiết lập đọc thông báo độ dài thư thoại trước khi đọc nội dung.  Play envelope: đọc thông tin thư thoại trước khi đọc nội dung.

Allow user review: cho phép người để lại lời nhắn nghe lại hoặc ghi âm lại lời nhắn trước khi lưu.

CHƯƠNG 4: XÂY DỰNG GIAO DIỆN QUẢN TRỊ

Hình 46 Trang thiết lập Voicemail

4.5.3.5. Conferencing

Tab Conferecing quản lý các room conference. Các room conference được thể hiện trong table bao gồm:

Room: số phòng, số này cũng dùng để quay số khi muốn kết nối vào conference room.  Pin Code: mã dùng để vào phòng.

Start Time, End Time: thời gian bắt đầu và kết thúc của conference roon,  Max User: số lượng user tối đa của phòng.

Member: số lượng member hiện có trong phòng.

Có thể thực hiện thay đổi các thiết lập hoặc xóa room bằng cách click vào icon edit và delete trong cột Action tương ứng,

Để tạo một room mới, ta click vào nút New Conference Room. Trong giao diện mới hiện ra điền các thông số thích hợp vào để tạo room mới.

Chương 5

XÂY DỰNG DỊCH VỤ QUÀ TẶNG ÂM NHẠC

Nội dung chính

5.1 Kịch bản hệ thống

5.2 Xây dựng cơ sở dữ liệu của dịch vụ quà tặng âm nhạc 5.3 Viết AGI thực hiện dịch vụ 5.3 Viết AGI thực hiện dịch vụ (adsbygoogle = window.adsbygoogle || []).push({});

5.4 Thiết lập Dialplan

5.1. Kịch bản hệ thống

5.1.1. Kịch bản cho người tặng

Trong luận văn này sẽ tập trung xây dựng một trung tâm quà tặng âm nhạc. Khi khách hàng gọi tới tổng đài 500 sẽ được nghe lời chào và hướng dẫn bấm phím để thực hiện dịch vụ quà tặng âm nhạc. Thứ tự thực hiện:

 Nhập số điện thoại người được tặng bài hát.  Nhập mã số bài hát sẽ tặng.

 Nhập ngày giờ tặng bài hát theo thứ tự yyyymmddhhmm. Trong đó yyyy là năm, mm là tháng, dd là ngày, hh là giờ và mm là phút tặng bài hát.

 Để lại lời nhắn cho thuê bao được tặng, kết thúc việc thu lời nhắn bằng bấm phím #.

5.1.2. Kịch bản cho người được tặng

Khi đến đúng ngày giờ mà người tặng đã thực hiện đăng kí dịch vụ thì tổng đài sẽ tự động thực hiện cuộc gọi đến thuê bao được tặng, thứ tự sẽ như sau:

 Đổ chuông thuê bao được tặng.  Đọc số thêu bao tặng bài hát.

 Đọc đoạn lời nhắn được lưu của thêu bao tặng bài hát.

 Phát bài hát theo đúng yêu cầu của người tặng.

5.2. Xây dựng cơ sở dữ liệu của dịch vụ quà tặng âm nhạc

Việc xây dựng cơ sở dữ liệu có thể thực hiện qua giao diện bằng phpmyadmin hoặc bằng cách gõ lệnh trực tiếp. Ở đây chúng ta sẽ tạo một cơ sở dữ liệu music trong database asterisk như sau. Đăng nhập vào cơ sở dữ liệu MySQL:

mysql –uroot –p[password]

Tạo một database có tên là asterisk: CREATE DATABASE asterisk;

Tạo một table music trong database asterisk, table music có các trường sau: ma_bai_hat, ten_bai_hat, ten_file_bai_hat, nhac_si, ca_si_trinh_bay.

CREATE TABLE `music` (

`ma_bai_hat` int(11) NOT NULL auto_increment, `ten_bai_hat` text,

`ten_file_bai_hat` text, `nhac_si` text,

CHƯƠNG 5: XÂY DỰNG DỊCH VỤ QUÀ TẶNG ÂM NHẠC

PRIMARY KEY (`ma_bai_hat`) )

Bảng dữ liệu music của dịch vụ quà tặng âm nhạc:

Hình 48 Cơ sở dữ liệu của dịch vụ quà tặng âm nhạc

5.3. Viết AGI thực hiện dịch vụ

START

Nhập số điện thoại được tặng

Nhập mã bài hát

Nhập ngày giờ tặng

Thu âm lời nhắn (adsbygoogle = window.adsbygoogle || []).push({});

Tạo file .call

END Kiểm tra Kiểm tra Thông báo nhập sai

Thông bao nhập sai

CHƯƠNG 5: XÂY DỰNG DỊCH VỤ QUÀ TẶNG ÂM NHẠC

AGI script sẽ tạo ra một file .call lưu trữ các thông tin giúp server thực hiện cuộc gọi quà tặng âm nhạc. File .call được tạo ra có dạng:

 Channel: SIP/$so_dien_thoai_nguoi_nhan  MaxRetries: 2

 Callerid: Qua Tang Am Nhac <090>  RetryTime: 120  WaitTime: 60  Context: kich-ban-cho-nguoi-duoc-tang  Extension: 18009189  Setvar: loi-nhan=$message  Setvar: bai-hat=$bai_hat  Setvar: sdt-nguoi-tang=$so_dien_thoai_nguoi_tang 5.4. Thiết lập Dialplan

Dialplan cho dịch vụ được thiết lập trong file extensions.conf.

Khi có thuê bao quay số dịch vụ quà tặng âm nhạc thì sẽ được đưa vào ngữ cảnh [kich-ban-cho- nguoi-tang] như sau:

[kich-ban-cho-nguoi-tang] exten => 500,1,Answer()

same => n,AGI(qua_tang_am_nhac.php,${UNIQUEID},${CALLERID(num)}) same => n,System(mv /tmp/${UNIQUEID}.call /var/spool/asterisk/outgoing/) same => n,hangup()

Khi tổng đài thực hiện cuộc gọi tự động cho thuê bao được tặng nó sẽ thực hiện trong ngữ cảnh [kịch-ban-cho-nguoi-duoc-tang] như sau:

[kich-ban-cho-nguoi-duoc-tang] exten =>18009189,1,Answer() same => n,Set(message=${loi-nhan}) same => n,Set(song=${bai-hat}) same => n,Set(sdt-nguoi-tang=${sdt-nguoi-tang}) same => n,PlayBack(file/nhan-qua) same => n,SayDigits(${sdt-nguoi-tang}) same => n,Wait(2) same => n,BackGround(${message}) same => n,Wait(2)

same => n,Playback(${song})

same => n,BackGround(beep)

same => n,System(rm -rf /var/lib/asterisk/sounds/${message}.ulaw same => n,Hangup()

5.5. Xây dựng giao diện Web tra cứu bài hát

Để thuận tiện cho việc tra cứu danh sách bài hát, chúng ta xây dựng 1 trang web phục vụ cho khách hàng sử dụng dịch vụ quà tặng âm nhạc có thể tìm kiếm bài hát mình mong muốn. Trang web sẽ được kết nối với cơ sở dữ liệu music của dịch vụ quà tặng âm nhạc. Trang web được viết bằng ngôn ngữ htm, php và được lưu ở địa chỉ /var/lib/www/httpd/.

Chúng ta có thể tìm kiếm bài hát theo các option sau:  Tìm theo mã số bài hát

 Tìm theo tên bài hát  Tìm theo tên tác giả  Tìm theo tên ca sĩ Tạo Form tìm kiếm:

<form name="form1" method="GET" action="quatangamnhac.php"> <p class="content" style="font-weight:bold;">Tìm kiếm bài hát:</p> <span style="font-weight:bold;">Chọn thông tin tìm kiếm:</span> <select name="foption">

<option value="fid">Mã số bài hát</option> <option value="fname">Tên bài hát</option> <option value="fnhacsi">Nhạc sĩ</option> <option value="fcasi">Ca sĩ</option> </select>

<input type="text" name="fdata"/>

<input type="submit" value="Find"/> <br />

<input type="hidden" name="action" value="create"/> </form>

CHƯƠNG 5: XÂY DỰNG DỊCH VỤ QUÀ TẶNG ÂM NHẠC

Hình 50 Form tìm kiếm bài hát

Sau khi nhập thông tin là kiểu tìm kiếm và dữ liệu cần tìm ta nhất Find để tìm bài hát theo đúng yêu cầu.

Giao diện của trang tìm kiếm:

Hình 51 Giao diện trang tìm kiếm (adsbygoogle = window.adsbygoogle || []).push({});

Chương 6

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI

Nội dung chính

6.1 Kết luận

6.1 Kết luận

Từ những yêu cầu đề, nhóm chúng em đã hoàn thành được các yêu cầu sau:  Tìm hiểu tổng quan về VoIP, phần mềm Asterisk và giao thức SIP.

 Xây dựng được tổng đài VoIP dùng phần mềm Asterisk, thực hiện được các chức năng:

o Thực hiện cuộc gọi giữa các thuê bao nội đài

o Thực hiện cuộc gọi giữa thuê bao nội đài và các thuê bao ngoài PSTN.

o Thực hiện được các dịch vụ người dùng như Call Pickup, Call Transfer, IVR,…  Xây dựng được giao diện quản trị nền Web cho tổng đài hỗ trợ các chức năng:

o Quản lý và khai báo User

o Thiết lập các dịch vụ như DND, Call Forwarding.

o Thiết lập hộp thư Voicemail

o Thiết lập Conference Room

o Quản lý thuê bao gọi ra PSTN.

 Xây dựng được dịch vụ quà tặng âm nhạc có kèm giao diện web để tra cứu bài hát Những hạn chế chưa làm được:

 Giao diện quản trị còn ít tính năng, chưa thực sự thân thiện với người dùng.  Thực hiện cuộc gọi qua Internet chưa đạt kết quả.

CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

6.2 Hướng phát triển

 Phát triển thêm các tính năng cho trang quản trị, xây dựng giao diện trở nên thân thiện hơn và có thể hoạt động trên nhiều trình duyệt khác nhau với số lượng user lớn.

 Phát triển thêm các tính năng cho tổng đài như Call Center, SMS….

Một phần của tài liệu TỔNG ĐÀI DỊCH VỤ VOIP (Trang 79)