Cài đặt Sql Server 2005 và tạo các bảng dữ liệu

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

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 toà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

CREATETABLE [dbo].[TuDien](

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

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

CONSTRAINT [PK_TuDien] PRIMARYKEYCLUSTERED (

[matu] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON

[PRIMARY] ) ON [PRIMARY]

 Truong

CREATETABLE [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] PRIMARYKEYCLUSTERED (

[matruong] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON

[PRIMARY] ) ON [PRIMARY]

 SinhVien

CREATETABLE [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, (adsbygoogle = window.adsbygoogle || []).push({});

CONSTRAINT [PK_SinhVien] PRIMARYKEYCLUSTERED (

[masv] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON

[PRIMARY] ) ON [PRIMARY] GO

ALTERTABLE [dbo].[SinhVien] WITHCHECKADD CONSTRAINT

[FK_SinhVien_Truong] FOREIGNKEY([matruong])

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

ALTERTABLE [dbo].[SinhVien] CHECKCONSTRAINT

[FK_SinhVien_Truong]

 MonHoc

CREATETABLE [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] PRIMARYKEYCLUSTERED (

[mamh] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON

[PRIMARY] ) ON [PRIMARY]

 Diem

CREATETABLE [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] PRIMARYKEYCLUSTERED (

[masv] ASC, [mamh] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON

[PRIMARY] ) ON [PRIMARY] GO

ALTERTABLE [dbo].[Diem] WITHCHECKADD CONSTRAINT (adsbygoogle = window.adsbygoogle || []).push({});

[FK_Diem_MonHoc] FOREIGNKEY([mamh])

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

ALTERTABLE [dbo].[Diem] CHECKCONSTRAINT

[FK_Diem_MonHoc] GO

ALTERTABLE [dbo].[Diem] WITHCHECKADD CONSTRAINT

[FK_Diem_SinhVien] FOREIGNKEY([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

oVà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:

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 dòng cuối cùng và thêm đoạn sau:

 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: (adsbygoogle = window.adsbygoogle || []).push({});

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 quát

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 ngoà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 Quá 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. (adsbygoogle = window.adsbygoogle || []).push({});

 Ứ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 hoà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 quá 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 đã hoà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 Asterisk theo hướng hoàn thiện các chức năng nêu ở phần hạn chế và để có thể ứng dụng được chương trình trong thực tế.

Trong quá trình làm bài luận văn tốt nghiệp này, em vẫn còn nhiều thiếu sót và mong nhận được sự góp ý kiến của quý thầy cô.

PHỤ LỤC

1. Các gói phần mềm phụ thuộc phải có trong hệ điều hành Linux

yum -y update yum -y upgrade

yum -y install dahdi-tools kernel-devel kernel-headers (adsbygoogle = window.adsbygoogle || []).push({});

yum -y install make bison bison-devel ncurses ncurses-devel zlib zlib-devel openssl openssl-devel gnutls-devel gcc gcc-c++ kernel-devel flex libxml2-devel which

yum -y install httpd httpd-devel /etc/init.d/httpd start

yum -y install php php-mysql php-common php-gd php-mbstring php-mcrypt php-devel php-xml php-imap php-ldap php-odbc php-pear php-xmlrpc ImageMagick ImageMagick-devel

yum -y install linux-headers-$(uname -r) bison openssl libssl-dev libeditline0 libeditline-dev libedit-dev gcc make g++ mc php5-cli gt libgtk2.0-dev

2. Các gói cần thiết của phần mềm Asterisk

 Asterisk Communications Engine – bản mới nhất là Asterisk 10.0.0 Source Tarball .

 DAHDI Linux / DAHDI Tools  LibPRI

 LibSS7

3. Khắc phục lỗi khi cài Dahdi

 Bước 1: o cd /usr/src o wget http://mirror.anl.gov/pub/linux/kernel/v2.6/linux-2.6.18.tar. o tar zxvf lilnux-2.6.18.tar.gz  Bước 2: o ln -s linux-2.6.18 linux o cd linux o make oldconfig o make

o make modules_install install  Bước 3: o uname –r o 2.6.18-92.1.13.el5  Bước 4: o cd /lib/modules/2.6.18-92.1.13.el5/ o mv build build.bak o mv source source.bak

TÀI LIỆU THAM KHẢO

Tiếng Việt

[1].Asterisk Tiếng Việt – Lê Quốc Toàn [2].Các dịch vụ tổng đài

link: http://www.tongdai.com.vn [3].Cấu trúc tập tin wavefile

link:http://my.opera.com/f0ng_vn/blog/show.dml/671686 [4].Diễn đàn giải pháp VoIP

Tiếng Anh

[1]. Asterisk™The Future of Telephony- Publisher: O'Reilly Media-2005 [2]. Configuration Guide For Asterisk PBX – By Flavio E.Goncalves

Copyright © 2006 V.Office Networks Ltda., All rights reserved.

[3]. How to setup Asterisk 1.6.2 on Centos 5.4

http://www.selbytech.com/2010/01/how-to-setup-asterisk-1-6-2-on-centos-5-4/ [4]. The Open Source Telephony Projects

link: http://www.asterisk.org/

[5]. The VOIP Wiki - a reference guide to all things VOIP link: http://www.voip-info.org/

[6]. VoIP Telephony with Asterisk – Paul Mahler.

[7]. , Building Telephony Systems with Asterisk - Barrie Dempster - David Gomillion Packt Publishing Ltd, 2005.

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