TỔNG QUAN MYSQL VÀ PHPAGI

Một phần của tài liệu ĐỒ án xây DỰNG các DỊCH vụ GIÁ TRỊ GIA TĂNG ASTERISK (Trang 42 - 45)

CHƯƠNG 2 : XÂY DỰNG TỔNG ĐÀI NỘI BỘ ASTERISK

3.2.TỔNG QUAN MYSQL VÀ PHPAGI

3.2.1. MYSQL CƠ BẢN

MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh. Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet. MySQL miễn phí hồn tồn cho nên bạn có thể tải về MySQL từ trang chủ.

3.2.1.1. KHÁI NIỆM CƠ BẢN VỀ CƠ SỞ DỮ LIỆU (CSDL)

▪ Cơ sở dữ liệu hay database dùng để chứa dữ liệụ Có nhiều loại cơ sở dữ liệu khác nhau như cơ sở dữ liệu quan hệ, CSDL hướng đối tượng, CSDL phân tán... Hiện nay, trong phần lớn các ứng dụng, người ta thường sử dụng CSDL quan hệ.

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 35

▪ Trong cở sở dữ liệu quan hệ sẽ có các bảng (table), trong các table sẽ có các trường dữ liệu (hay còn gọi là field)

3.2.1.2. CÁC LỆNH CƠ BẢN TRONG MYSQL

▪ Lệnh tạo Database: Create Database Database_Name;

▪ Lệnh dùng database: Use Database_Name;

▪ Xóa database: Drop Database db_Name;

▪ Lệnh tạo bảng: CREATE TABLE table_name(/*column_list*/);

Ví dụ: Cho bảng Sinhvien gồm có các thơng tin sau:

TenSV: Tên sinh viên, kiểu varchar và chiều dài tối đa 255 ký tự

MaSV: Mã sinh viên, kiểu INT và chiều dai là tối đa 11 số

NamSinh: Năm sinh, kiểu INT và chiều dài tối đa là 4 số

Create Table Sinhvien(Tensv Varchar(255),Masv Int(11), Namsinh Int(4));

▪ Xóa bảng: Drop Table tb_name;

▪ Lệnh chèn các trường field vào table:

Insert Into table_name VALUES ('field_1', 'field_2', ..., 'field_n');

Ví dụ: Chèn thơng tin của sinh viên Nguyen Van An vào bản Sinhvien

Insert Into Sinhvien Values ('Nguyen Van An',’123’, '1996);

▪ khóa chính (Primary key): PRIMARY KEY(field)

Giả sử chúng ta có bảng SinhVien và mỗi sinh viên là một record, lúc này để nhận diện sinh viên thì ta khơng thể dựa vào tên của sinh viên được vì tên sinh viên có thể trùng nhaụ Chính vì vậy giải pháp là ta thêm một field MaSV và giá trị của nó cho mỗi SV là khác nhaụ

▪ Lệnh SELECT có nhiệm vụ lấy danh sách dữ liệu của một hoặc nhiều bảng trong database, cú pháp lệnh SELECT như sau:

SELECT field1, field2, field3, ...FROM table_name WHERE <dieu_kien_loc>

▪ Cập nhật dữ liệu trong bảng, cú pháp:

Update tên_bảng set tên_cột = Giá trị mới WHERE (điều kiện)

3.2.1.3. CÀI ĐẶT MYSQL TRÊN CENTOS 6

▪ Đăng nhập vào CentOS với tài khoản root

▪ Install MySQL

#yum install mysql mysql-devel mysql-server php-mysql –y #yum install php php-devel -y (adsbygoogle = window.adsbygoogle || []).push({});

#service mysqld start

# mysqladmin -u root password 'chien123' # chkconfig mysqld on

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 36

3.2.2. PHPAGI- LỚP THƯ VIỆN SỬ DỤNG NGÔN NGỮ PHP 3.2.2.1. GIỚI THIỆU VỀ PHPAGI 3.2.2.1. GIỚI THIỆU VỀ PHPAGI

▪ PHPAGI (PHP Asterisk Gateway Interface) được xem như là lớp thư viện cơ sở sử dụng ngôn ngữ PHP. PHPAGI cung cấp cho người sử dụng một thư viện để viết một AGI script dễ dàng và hiệu quả hơn.

▪ PHPAGI có thể được download tại: http://sourceforgẹnet/projects/phpagi/files/

3.2.2.2. CẤU TRÚC FILE CỦA PHPAGI

▪ Thư viện lớp PHPAGI bao gồm hai file sau:

phpagịphp: Lớp thư viện được dùng cho Asterisk AGI API

phpagi-asmanager.php: Lớp thư viện được dùng cho giao diện manager của Asterisk. Đây là lớp thư viện được bổ sung cho thư viện ở trên. Khi cài đặt lớp thư viện này cho AGI script, hệ thống sẽ tự động cài đặt lớp thư viện ở trên.

3.2.2.3. GỌI MỘT AGI SCRIPT TỪ DIAPLAN

▪ Việc sử dụng AGI được thực hiện đơn giản bằng cách sử dụng lệnh AGI(),với tên của AGI script được sử dụng như là một đối số.

exten => 201,1,Answer()

exten => 201,n,AGI(xinchaọphp,) exten =>201,n,hangup()

▪ AGI scripts thường được đặt trong thư mục: /var/lib/asterisk/agi-bin.

▪ File thư viện lớp phpagịphp được đặt trong thư mục: /usr/share/php.

▪ AGI Script có thể được lập trình bằng nhiều ngơn ngữ lập trình khác nhau như Perl, PHP, C, C#, Java ….Ở đây em chọn PHP làm ngơn ngữ để lập trình

3.2.2.4. LẬP TRÌNH AGI SCRIPT BẰNG PHP

Trong phần này, em sẽ đưa ra một ví dụ của lập trình AGI Script bằng PHP và phân tích để hiểu rõ hơn về AGỊ

Ví dụ: Từ softphone gọi vào tổng đài thơng qua số 201, sau đó sẽ suất ra một lời chào

rồi kết thúc cuộc gọị Chương trình viết bằng ngôn ngữ php với tập tin là xinchaọphp

▪ Tạo 1 file xinchaọphp như sau: vào thư mục #cd /var/lib/asterisk/agi-bin Gõ lệnh #touch xinchaọphp sau đó mở file lên #vim xinchaọphp

1. #!/usr/bin/php 2. <?php

3. require 'phpagịphp'; 4. $agi = new AGI(); 5. $agi->answer();

6. $agi->stream_file("xinchao0"); 7. ?>

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 37 Dịng 1: Khai báo sử dụng ngơn ngữ php cho thực hiện giao tiếp agi

Dòng 2 và 7: Đóng và mở cho đoạn script php

Dịng 3: Sử dụng file phpagịphp cho thư viện lớp phpagi

Dòng 4: Hàm tạo AGỊ Kể từ dòng này trở đi, mỗi liên kết với Asterisk đều được thực hiện thông qua biến $agi

Dòng 5: Đây là lệnh đầu tiên của phpagi, thư viện lớp được gọi ra (adsbygoogle = window.adsbygoogle || []).push({});

Dòng 6: Phát file xinchaọwav được đặt trong thư mục: /var/lib/asterisk/sounds/

Một phần của tài liệu ĐỒ án xây DỰNG các DỊCH vụ GIÁ TRỊ GIA TĂNG ASTERISK (Trang 42 - 45)