Thiết lập Asterisk Realtime

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

4.3.1. Thiết lập các file cấu hình

Cấu hình cho Asterisk để kích hoạt tính năng realtime bằng cách thêm các thiết lập trong file

/etc/asterisk/extconfig.conf như sau:

 [settings]  sippeers => odbc,asterisk,ast_sipfriends  sipusers => odbc,asterisk,ast_sipfriends  voicemail => odbc,asterisk,voicemail_users  meetme => odbc,asterisk,meetme  extensions => odbc,asterisk,extensions

Các trỏ tới các table tương ứng trong cơ sở dữ liệu asterisk thông qua ODBC, trong đó chứa các thiết lập thay thế cho các file cấu hình tương ứng như sip.conf, voicemail.conf, meetme.conf và

extensions.conf.

Ta cũng cần thêm các dòng sau vào file modules.conf để Asterisk tải trước các file thiết lập

ODBC lúc khởi động:

 preload => res_odbc.so

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

4.3.2. Xây dựng cơ sở dữ liệu cho Asterisk Realtime

Tiếp theo ta tạo cơ sở dữ liệu và các table tương ứng chứa các thiết lập cần thiết trong MySQL. Sử dụng phpmyadmin, từ một máy trong mạng LAN mở trình duyệt web nhập vào địa chỉ 192.168.1.120/phpmyadmin, trong đó 192.168.1.120 là địa chỉ local của server cài đặt MySQL và phpMyAmin. Đăng nhập với username và password đã tạo khi cài đặt.

Hình 34 Giao diện đăng nhập phpMyAdmin

Trong giao diện của phpMyAdmin, ta tạo database asterisk, database này sẽ chứa các table

Hình 35 Trang chủ phpMyAdmin

Tiếp đó trong database vừa tạo, ta lần lượt tạo các table sau:

Table ast_sipfriends: chứa các thiết lập cho các tài khoản SIP.

 CREATE TABLE IF NOT EXISTS `ast_sipfriends` (

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

 `type` varchar(6) collate utf8_unicode_ci NOT NULL,

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

 `defaultuser` varchar(128) collate utf8_unicode_ci NOT NULL,

 `callerid` varchar(80) collate utf8_unicode_ci default NULL,

 `secret` varchar(128) collate utf8_unicode_ci NOT NULL,

 `context` varchar(128) collate utf8_unicode_ci NOT NULL,

 `host` varchar(128) collate utf8_unicode_ci NOT NULL,

 `callgroup` varchar(10) collate utf8_unicode_ci NOT NULL,

 `pickupgroup` varchar(10) collate utf8_unicode_ci NOT NULL,

 `mailbox` varchar(50) collate utf8_unicode_ci NOT NULL,

 `ipaddr` varchar(128) collate utf8_unicode_ci NOT NULL,

 `port` varchar(5) collate utf8_unicode_ci NOT NULL,

 `fullcontact` varchar(128) collate utf8_unicode_ci NOT NULL,

 `regserver` varchar(128) collate utf8_unicode_ci NOT NULL,

 `useragent` varchar(128) collate utf8_unicode_ci NOT NULL,

 `nat` varchar(6) collate utf8_unicode_ci NOT NULL default 'no',

 `qualify` enum('yes','no') collate utf8_unicode_ci NOT NULL,

 `regseconds` bigint(20) NOT NULL,

 `lastms` int(11) NOT NULL,

 `videosupport` enum('yes','no') collate utf8_unicode_ci NOT NULL,

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

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

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

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

 PRIMARY KEY (`id`),

 UNIQUE KEY `name` (`name`)

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

;

Table voicemail: chứa các thiết lập liên quan đến hộp thư thoại.

 CREATE TABLE IF NOT EXISTS `voicemail` (

 `uniqueid` int(5) NOT NULL auto_increment,

 `customer_id` varchar(11) collate utf8_unicode_ci NOT NULL,

 `context` char(80) collate utf8_unicode_ci NOT NULL default 'default',

 `mailbox` char(80) collate utf8_unicode_ci NOT NULL,

 `password` char(80) collate utf8_unicode_ci NOT NULL,

 `fullname` char(80) collate utf8_unicode_ci default NULL,

 `email` char(80) collate utf8_unicode_ci default NULL,

 `pager` char(80) collate utf8_unicode_ci default NULL,

 `attach` char(3) collate utf8_unicode_ci default NULL,

 `attachfmt` char(10) collate utf8_unicode_ci default NULL,

 `serveremail` char(80) collate utf8_unicode_ci default NULL,

 `language` char(20) collate utf8_unicode_ci default NULL,

 `tz` char(30) collate utf8_unicode_ci default NULL,

 `deletevoicemail` char(3) collate utf8_unicode_ci default NULL,

 `saycid` char(3) collate utf8_unicode_ci default NULL,

 `sendvoicemail` char(3) collate utf8_unicode_ci default NULL,

 `review` char(3) collate utf8_unicode_ci default NULL,

 `tempgreetwarn` char(3) collate utf8_unicode_ci default NULL,

 `operator` char(3) collate utf8_unicode_ci default NULL,

 `envelope` char(3) collate utf8_unicode_ci default NULL,

 `sayduration` char(3) collate utf8_unicode_ci default NULL,

 `saydurationm` int(3) default NULL,

 `forcename` char(3) collate utf8_unicode_ci default NULL,

 `forcegreetings` char(3) collate utf8_unicode_ci default NULL,

 `callback` char(80) collate utf8_unicode_ci default NULL,

 `dialout` char(80) collate utf8_unicode_ci default NULL,

 `exitcontext` char(80) collate utf8_unicode_ci default NULL,

 `maxmsg` int(5) default '100',

 `volgain` decimal(5,2) default NULL,

 `imapuser` varchar(80) collate utf8_unicode_ci default NULL,

 `imappassword` varchar(80) collate utf8_unicode_ci default NULL,

 `stamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update

CURRENT_TIMESTAMP,

 PRIMARY KEY (`uniqueid`)

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

;

Table meetme: chứa các thiết lập liên quan đến conference.

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

 `confno` char(80) collate utf8_unicode_ci NOT NULL default '0',

 `starttime` datetime default '1900-01-01 12:00:00',

 `endtime` datetime default '2038-01-01 12:00:00',

 `pin` char(20) collate utf8_unicode_ci default NULL,

 `adminpin` char(20) collate utf8_unicode_ci default NULL,

 `opts` char(20) collate utf8_unicode_ci default NULL,

 `adminopts` char(20) collate utf8_unicode_ci default NULL,

 `recordingfilename` char(80) collate utf8_unicode_ci default NULL,

 `recordingformat` char(10) collate utf8_unicode_ci default NULL,

 `maxusers` int(11) default NULL,

 `members` int(11) NOT NULL default '0',

 PRIMARY KEY (`bookid`),

 KEY `confno` (`confno`,`starttime`,`endtime`)

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

;

Table extensions: chứa các thiết lập liên quan đến dialplan.

 CREATE TABLE IF NOT EXISTS `extensions` (

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

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

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

 `priority` tinyint(4) NOT NULL default '0',

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

 `appdata` varchar(128) collate utf8_unicode_ci NOT NULL,

 PRIMARY KEY (`context`,`exten`,`priority`),

 KEY `id` (`id`)

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

;

Sau khi tạo xong cơ sở dữ liệu, để tính năng realtime có thể hoạt động, ta cần thêm vào trong 2 file sip.conf và extensions.conf các dòng sau:

sip.conf

 rtcachefriends=yes

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

extensions.conf

 switch => Realtime

4.4. Thiết lập cho các dịch vụ người dùng. 4.4.1. Xây dựng cơ sở dữ liệu cho các dịch vụ 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

 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Ị

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

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ụ

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

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

Tải bản đầy đủ (PDF)

(102 trang)