Mơ hình tập thực thể

Một phần của tài liệu công nghệ voip trên nền asterisk (Trang 52)

4.3.2 Diagram

4.4 Các bảng dữ liệu

4.4.1 Danh sách bảng dữ liệu:

 Trương

- Chứa các thơng tin về trường

- Thuộc tính: matruong,tentruong,status  MonHoc

- Chứa thông tin về các mơn thi - Thuộc tính: mamh,tenmh,status  SinhVien

- Chứa thơng tin chi tiết về thí sinh.

- Thuộc tính: masv ,tensv,ngaysinh,status,matruong  Diem

- Chứa kết quả điểm thi của thí sinh - Thuộc tính: masv,mamh,diem,status.  TuDien

- Chứa tập hợp các từ ngữ trong tiếng việt. - Thuộc tính : matu, tu

4.4.2 Mơ tả các bảng:

 MonHoc

 Diem

 TuDien

4.4.3 Các mối liên hệ

 Mối liên hệ bảng Truong-SinhVien

- Mỗi sinh viên thi vào 1 trường và mỗi trường thì có nhiều sinh viên dự thi. Vì vậy,mối quan hệ là một-nhiều.

- Mỗi thí sinh thi vào 1 trường sẽ có 1 điểm tương ứng với môn thi

 Mối liên hệ bảng Monhọc- bảng Diem

- Mỗi mơn học thì có 1 điểm số và mỗi điểm số được chấm cho nhiều mơn học. Vì vậy, quan hệ là nhiều-một.

4.5 Những thuận lợi và khó khăn của ứng dụng: 4.5.1 Thuận lợi 4.5.1 Thuận lợi

 Chương trình server tổng đài nhẹ,tốn ít dung lượng bộ nhớ và dễ cài đặt.  Người dùng dễ dàng sử dụng dịch vụ thơng qua các phím nhấn trên

softphone.

4.5.2 Khó khăn

 Chưa triển khai với cuộc gọi ngồi mạng do khơng có hỗ trợ phần cứng là card digium.

 Kết quả điểm trả về nhanh hay chậm tuỳ thuộc vào tốc độ đường truyền nhanh hay chậm.

 Việc dùng hàm text to speech để ghép từng từ làm cho chuỗi âm thanh cịn rời rạc nên âm thanh khơng hay lắm.

CHƢƠNG 5: CÀI ĐẶT VÀ CẤU HÌNH HỆ THỐNG SERVER 5.1 Cài đặt các tính năng cơ bản của tổng đài Asterisk 5.1 Cài đặt các tính năng cơ bản của tổng đài Asterisk

5.1.1 Yêu cầu thiết bị:

 Cài đặt hệ điều hành Linux trên máy tính , có thể cài hệ điều hành Linux Fedora, CentOS, Redhat, hoặc Debian ,ở đây ta cài bản Centos server 5.6.

 Máy server cài hệ điều hành Linux để xây dựng hệ thống Server Asterisk. Ở đây, ta dùng hệ điều hành linux centos 5.6

 Máy client cài hai softphone là X-Lite và 3CX nối mạng với máy tính Server asterisk.(Ở đây server asterisk được chạy trên máy ảo Virtual

Box- link download:

https://www.virtualbox.org/wiki/Linux_Downloads.)

5.1.2 Các bƣớc cài đặt các gói Asterisk phiên bản 1.6.2.20

Tải các gói sau và để trong thư mục : usr/src/asterisk  Asterisk 1.6.2.20 http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk- 1.6.2.20.tar.gz  Dahdi-2.4.1.2 http://downloads.asterisk.org/pub/telephony/dahdi- linux/releases/dahdi- linux-2.4.1.2.tar.gz  Dahdi-tool-2.4.1.2 http://downloads.asterisk.org/pub/telephony/dahdi-tools/releases/dahdi- tools- 2.4.1.2.tar.gz  Libpri 1.4.12 http://downloads.asterisk.org/pub/telephony/libpri/releases/libpri-1.4.12.tar.gz Sau khi tải thành công, ta giải nén các gói và cài đặt theo trình tự sau: (lệnh giải nén: tar –xzvf file nén)

 cd /usr/src/asterisk/libpri-1.4.12 make make install  cd /usr/src/asterisk/dahdi-linux-2.4.1.2 ./configure make all make install  cd /usr/src/asterisk/dahdi-tool-2.4.1.2

make config  cd /usr/src/asterisk/asterisk-1.6.2.20 ./configure make make install make config make samples

Ta có thể cài thêm gói Asterisk-Addon để hổ trợ các file âm thanh mp3…. Khởi động Asterisk bằng lệnh sau:

 service dahdi start  asterisk –cvvvv  asterisk –r Thoát khỏi Asterisk:

 Exit

 Shut down

5.1.3 Tải chƣơng trình Asterisk.NET:

 Chương trình Asterisk.NET giúp ta thực hiện cơ chế gọi từ xa FastAGI. Nó bao gồm chức năng quản lí API.

 Khi máy tổng đài muốn lấy một ứng dụng nào từ xa thì trên máy đó,ta chạy chương trình ứng dụng Asterisk.NET này lên và trả về kết quả cho máy server thông qua các Script.

 Link down: http://sourceforge.net/projects/asterisk-dotnet/

5.1.4 Cấu hình SIP cho softphone

 Link down: http://www.3cx.vn/dien-thoai-voip/index.html

 Với điện thoại phần mềm 3CX, bạn có thể gọi điện trực tiếp từ PC hoặc laptop tới mọi điện thoại phần mềm, di động hoặc cố định bằng cách sử dụng công nghệ thoại qua giao thức IP (VOIP) để truyền giọng nói qua mạng Internet.

 Để cấu hình cho SIP softphone dùng với 3CX hoặc X-Lite ta chỉ cần cấu hình một số thơng số chính trong file sip.conf hoặc file đã được include trong file sip.conf như sau:

 Khi cấu hình phần mềm điện thoại, ta cần điền tên-kênh vào mục username, mật khẩu vào password và domain là địa chỉ IP của máy Asterisk.

 Các tham số khác không đặt tên thì hệ thống sẽ lấy tham số theo mặc định. Giá trị mặc định có thể theo giá trị mặc định của hệ thống hoặc theo giá trị được đặt chung trong mục [general] trong file sip.conf

Hình 5.1: Cấu hình Softphone [tên-kênh]

- type : tên kiểu;friend|user|peer.

- context : tên context ;dùng cho việc điều khiển cuộc gọi trong dialplan và để phân biệt một user theo quyền (user, admin) hay phân biệt theo phòng ban.

- secret : mật-khẩu

- callerid : "tên-user" <số-điện-thoại> ;sẽ được hiện thị trên máy người được gọi

- accountcode : tên-accountcode ;dùng phân biệt trong các file ghi cước CDR(tuỳ mà khai báo hay không) - host : dynamic

- mailbox : tên-hịm-thư@tên-context ;dùng cho mục đích voice mail

5.2 Cài đặt Sql Server 2005 và tạo các bảng dữ liệu 5.2.1 Tại sao chọn Sql Server 2005 5.2.1 Tại sao chọn Sql Server 2005

 So với phiên bản củ SQL 7.0, SQL 2000 thì SQL 2005 chú trọng đến cơng tác bảo mật nhiều hơn phần mềm quản trị CSDL mã nguồn mở.  Mở rộng một số chức năng so với phiên bản trước ví dụ như Report,

SQL Server Profiler , Schema, thêm một số kiểu data mới, sao lưu dữ liệu nhanh chóng, an tồn hơn... nhằm đem lại cho người sử dụng thuận tiện, nhanh chóng.

 Chức năng SSL được tự động hóa hơn, thay vì lúc trước trên MS SQL 2000 khai báo tùm lum, thì trên SQL 2005 nó khai báo cho mình một cách tự động.

 Đối với người dùng doanh nghiệp, SQL Server Express dễ dàng cắm vào cho doanh nghiệp nhất quản lý môi trường SQL Server Express cũng cung cấp hỗ trợ cho cả hai cài đặt hoặc thiết lập dựa trên giao diện và cài đặt. Điều này cho phép các nhà phát triển phần mềm kiểm soát cuối cùng và tính linh hoạt trong việc cài đặt và thiết lập của nhúng vào cơ sở dữ liệu.

5.2.2 Bảng dữ liệu

 TuDien

CREATE TABLE [dbo].[TuDien](

[matu] [int] IDENTITY(1,1) NOT NULL,

[tu] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,

CONSTRAINT [PK_TuDien] PRIMARY KEY CLUSTERED (

[matu] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

 Truong

CREATE TABLE [dbo].[Truong](

[matruong] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,

[tentruong] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,

[ghinho] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,

CONSTRAINT [PK_Truong] PRIMARY KEY CLUSTERED (

[matruong] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

 SinhVien

CREATE TABLE [dbo].[SinhVien]( [masv] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,

[tensv] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,

[ngaysinh] [datetime] NULL,

[matruong] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,

[ghinhho] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,

CONSTRAINT [PK_SinhVien] PRIMARY KEY CLUSTERED (

[masv] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY] GO

ALTER TABLE [dbo].[SinhVien] WITH CHECK ADD CONSTRAINT

[FK_SinhVien_Truong] FOREIGN KEY([matruong])

REFERENCES [dbo].[Truong] ([matruong])

GO

ALTER TABLE [dbo].[SinhVien] CHECK CONSTRAINT

[FK_SinhVien_Truong]

 MonHoc

CREATE TABLE [dbo].[MonHoc](

[mamh] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,

[tenmh] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [ghinho] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,

CONSTRAINT [PK_MonHoc] PRIMARY KEY CLUSTERED (

[mamh] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]

 Diem

CREATE TABLE [dbo].[Diem](

[masv] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,

[mamh] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,

[diem] [float] NULL,

[ghinho] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,

CONSTRAINT [PK_Diem] PRIMARY KEY CLUSTERED (

[masv] ASC, [mamh] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY] GO

ALTER TABLE [dbo].[Diem] WITH CHECK ADD CONSTRAINT

[FK_Diem_MonHoc] FOREIGN KEY([mamh])

REFERENCES [dbo].[MonHoc] ([mamh])

GO

ALTER TABLE [dbo].[Diem] CHECK CONSTRAINT

[FK_Diem_MonHoc] GO

ALTER TABLE [dbo].[Diem] WITH CHECK ADD CONSTRAINT

[FK_Diem_SinhVien] FOREIGN KEY([masv])

REFERENCES [dbo].[SinhVien] ([masv])

GO

ALTER TABLE [dbo].[Diem] CHECK CONSTRAINT

5.3 Kết quả đạt đƣợc của việc thực thi tổng đài tự động 5.3.1 Cài đặt Server

 Đã xây dựng cài đặt phần mềm tổng đài Asterisk trên nền Linux Server Centos 5.6.

 Tìm hiểu cơ chế FASTAGI để gọi các ứng dụng từ xa trên các máy cục bộ.

Hình 5.2: Câu lệnh gọi dịch vụ từ xa.

5.3.2 Hoạt động của tổng đài:

 Khởi động tổng đài Asterisk trên server HĐH Linux Centos 5.6. bẳng lệnh : Asterisk –r

 Trong tổng đài, ta cấu hình trên 3 file chính trong thư mục etc/asterisk, đó là: sip.cof,extensions.conf,smb.conf

o Vào sip.conf (etc/asterisk), ta đăng kí địa chỉ cho softphone có chức năng gọi và nghe. Đầu tiên, ta đăng kí 2 phone là 101 và 102.

Hình 5.4: Cấu hình file Sip

o Vào extensions.conf, ta ghi kế hoạch gọi cho tổng đài.

 Khai báo chức năng gọi điện thoại lẫn nhau cho 2 số điện thoại 101 và 102

 Khai báo số 200 để khi gọi vào sô 200 này, server sẽ gọi dịch vụ từ máy có địa chỉ 192.168.1.123 thông qua script mang tên “ivr”.

 Khai báo số 205 với tính năng ghi âm, khi gọi vào số 205,sau khi nghe tiếng bíp thì bạn có thể ghi âm,kết thúc ghi âm bấm phím # và sau 2 giây nó sẽ phát lại đoạn ghi âm trên.

Hình 5.5:Cấu hình file extensions  Cài đặt gói samba để chia sẻ dữ liệu:  Cài đặt gói samba để chia sẻ dữ liệu:

o Kiểm tra gói samba đã cài chưa: rpm -qa | grep samba o Gõ lệnh cài đặt

yum install samba

o Tạo một thư mục để thực hiện share dữ liệu. Ví dụ tạo thư mục có tên là “share”:

mkdir/share o Phân quyền thư mục share:

chmod 777 –R /share/

o Ta cấu hình file smb.conf. Gõ lệnh: vi /etc/samba/smb.conf. Xuống

 Gõ lệnh : service smb start để khởi động samba

Hình 5.7: Khởi động samba  Thiết lập tài khoản mật khẩu cho người dùng samba:  Thiết lập tài khoản mật khẩu cho người dùng samba:

Gõ lệnh: smbpasswd –a root

 Tiến hành nhập mật khẩu. Mật khẩu này dùng để truy cập vào máy chứa thư mục chia sẽ.

Hình 5.8: Khai báo user chia sẻ

 Trên Client, vào RUN gõ đường máy chủ chia sẽ dữ liệu:

 Truy cập thành công, vào “Thƣ mục chia sẻ” có tệp tin chia sẻ

 Chạy chương trình thực thi bẳng visual 2010 trên máy win 7 để nó tạo ra port 4573 và máy server thơng qua port đó để thực thi chương trình.

 Dịch vụ được gọi thơng qua các Script trong chương trình như sau:

Hình 5.12: Script kết nối với server

 Bật softphone 3CX lên với số điện thoại đã đăng kí.Ở đây là máy có số phone là 101.

 Bấm số 200 để gọi vào dịch vụ.

 Khi kết nối vào được hệ thống, thì sẽ xuất hiện câu chào mừng bạn đến với hệ thống.Câu chào như sau : ” Chào mừng bạn đến với tổng đài thông tin tra cứu điểm tuyển sinh. Mời bạn chọn số 1 để nghe thông tin về mã môn thi, chọn số 2 để nghe về kết quả điểm thi tuyển sinh.”

Hình 5.13: Màn hình đã kết nối vào dịch vụ

o Bấm phím 1 để nghe thơng tin tổng qt

o Bấm phím 2 để bạn nhập vào mã thí sinh.

 Softphone nhận được chuỗi phím nhập vào bằng hàm GetData()  Sau đó,lấy giá trị nhận vào rồi tìm kiếm giá trị đó trong cơ sở dữ

liệu.

 Nếu tìm thấy sẽ đọc lên âm thanh kết quả điểm cho thí sinh đó,nếu khơng tìm thấy thì đọc lên kết quả khơng tìm thấy cho thí sinh.

o Một số trƣờng hợp xử lí lỗi:

 Khi bạn gọi đến số 200, nghe lời chào xong, không thao tác hay chọn bất kì phím nào, thì sau khoảng thời gian nhât định, hệ thống sẽ tự kết thúc cuộc gọi.

 Khi gọi vào tổng đài, ta có hai lựa chọn là số 1 và số 2, nếu bấm ngồi hai số trên, hệ thống sẽ đưa ra thơng báo yêu cầu nhập lại số báo danh hoặc kết thúc cuộc gọi

Hình 5.16: trường hợp sai phím bấm

 Khi bấm số 2 để nghe điểm thi, nếu sinh viên đó chưa có điểm hay nhập số báo danh khơng có trong cơ sở dữ liệu thì thơng báo lỗi “khơng có thí sinh”

5.3.3 Q trình tổng hợp tiếng nói:

 Tổng hợp các từ ngữ thành một chuỗi

 Dùng hàm MergeFile để ghép các từng từ trong bộ từ điển tiếng việt thành một chuỗi kí tự.

 Chép các tất file .wav của từng từ ngữ vào trong đường dẫn bin của project để chương trình có thể tìm thấy từ đó và đọc lên.

 Ví dụ ta có project để trong ổ D:\ và ta phải chép filewave có sẵn vào đường dẫn bin :

Hình 5.18 : Thư mục để đọc các âm thanh từ file Text  Tạo các file âm thanh của từng thí sinh và để lên server

 Thuộc tính OutPath dùng để chứa chuỗi âm thanh xuất ra.

 Để xuất ra server thì ta trỏ đường dẫn đến thư mục share giữa máy win và máy server.

 Ứng với mỗi từ được ghi ở dạng Text sẽ có một file âm thanh của nó trong thu mục đường dẫn bin phía trên. Ta dùng hàm mergerfile để ghép các từ ngữ đơn lại thành chuỗi và đọc ra kết quả tương ứng.

5.4 Kết luận

 Thử nghiệm được các chức năng thực tế của tổng đài như:  Dial giữa các phone nội bộ.

 Record and Playback (ứng dụng cho việc ghi danh,điền thông tin).  Chức năng lấy dữ liệu, đọc file âm thanh trên các máy local.

 Xây ứng dịch vụ điểm tuyển sinh đối với mạng nội bộ, giữa các hệ thống chi nhánh của trường hoạt động như sau:

 Bấm số 200 để gọi vào tổng đài Asterisk

 Khi đã kết nối vào tổng đài và ta có 2 lựa chọn cho khách hàng

o Bấm số 1 để bạn nghe thông tin về tuyển sinh cũng như mã các môn thi

o Bấm số 2 để bạn nghe kết quả điểm thi tuyển sinh.

5.5 Những hạn chế:

 Chỉ dừng ở mức độ gọi điện cục bộ trong một môi trường cụ thể.

 Các file âm thanh được nhập cố định trong cơ sở dữ liệu, chưa linh động trong trường hợp có từ ngữ mới phát sinh.

 Do thời gian có hạn nên ứng dụng tự động chưa được hồn thiện và đầy đủ như thực tế ,chất lượng âm thanh giọng đọc chưa chuẩn.

ĐÁNH GIÁ CHUNG VÀ XU HƢỚNG PHÁT TRIỂN ĐỀ TÀI

 Qua q trình tìm hiểu, em đã có những kiến thức cơ bản về các kỹ thuật viễn thơng, các kiến thức về lập trình trên phần cứng.

 Với công nghệ VOIP, việc xây dựng một tổng đài thực tế Asterisk này sẽ rất hữu ích cho các doanh nghiệp muốn có một tổng đài với chi phí vừa phải.

 Dựa vào nền tảng là các ứng dụng nhỏ trong quá trình làm đề tài, em sẽ cố gắng phát triển lên thành một hệ thống cuộc gọi hoàn chỉnh hơn như các ứng dụng về các IVR.

Hình 6.1: Mơ hình một hệ thống IVR

 Asterisk hỗ trợ rất nhiều cơng nghệ khác nhau và có cấu trúc nguồn mở, cho phép các nhóm phát triển lẫn người sử dụng có thể tùy biến ứng dụng Asterisk của mình đáng kể.

 Đặc biệt, phải kể đến giao tiếp Asterisk AGI&FASTAGI hay

AsteriskRealtime cho phép Asterisk kết hợp với các ngơn ngữ lập trình thơng dụng như : C, C++,C#, VB, PHP, Shell-script, Python cùng với hệ

cơ sở dữ liệu MySQL,Oracle,SQL Server để phát triển những ứng dụng Voice-Application khác nhau.

 Asterisk là một IP-PBX đã được triển khai cũng khá nhiều ở các công ty nhằm giảm chi phí liên lạc, tuy nhiên nó cũng cịn khá mới nên việc cài đặt, cấu hình chủ yếu từ các chuyên viên trong lĩnh vực viễn thông.  Mục tiêu của đồ án và hướng phát triển tiếp theo là xây dựng hệ thống

Asterisk với các tiện ích thực tế, thân thiện để những nhân viên bình thường cũng có thể xây dựng và quản lí hệ thống IP-PBX cho cơng ty mình.

Kết luận, em đã hồn tất việc cài đặt một hệ thống PBX với các tính năng của một server tổng đài. Và đã hoàn thành cơ bản nội dung đề cương đặt ra trong kì đồ án tốt nghiệp.Trên cơ sở đó có thể phát triển ứng dụng khai thác hệ thống

Một phần của tài liệu công nghệ voip trên nền asterisk (Trang 52)