Tìm hiểu về AGI (Asterisk Gateway Interface)

Một phần của tài liệu xây dựng tổng đài ip pbx (Trang 63 - 65)

Chương 4 : GIỚI THIỆU A2BILLING

2.Tìm hiểu về AGI (Asterisk Gateway Interface)

Trong kiến trúc Asterisk, Asterisk hỗ trợ kênh giao tiếp với chương trình ngồi là AGI (Asterisk Gateway Interface), cho phép ta viết các ứng dụng bên ngoài tương tác với Asterisk. AGI cho phép Astersik gọi thực thi một chương trình ngồi để mở rộng nhiều chức năng của Astersik như

điều khiến các kênh thoại, phát âm thanh, đọc số DTMF, liên kết với cơ sở dữ liệu,… Các chương

trình ngồi được gọi là AGI Script, ta có thể lập trình ra các AGI Script bằng nhiều ngơn ngữ lập

trình khác nhau như Perl, PHP, C, C#, Java…

2.1. Cấu trúc cơ bản AGI

AGI Script liên lạc với Asterisk bằng các kênh thông tin STDOUT, STDIN và STDERR.

STDOUT: AGI script gửi thông tin đến Asterisk. STDIN: Asterisk gửi thông tin về AGI script.

STDERR: Thơng tin lỗi.

Hình 4.1. Sơ đồ giao tiếp giữa Asterisk và AGI script

Trong sơ đồ trên cho chúng ta thấy AGI giao tiếp với rất nhiều các thành phần khác nhau. Giao tiếp với database để lưu trữ thông tin như chi tiết cuộc gọi, hệ thống tính cước… Giao tiếp với web cho chúng ta phát triển các ứng dụng trên nền web như kiểm tra mail. Coffee Maker thực hiện rất nhiều cơng việc cịn lại trong hệ thống Asterisk như kiểm tra cấu hình hệ thống, liệt kê các extension, kiểm tra password, cấu hình hệ thống Asterisk…Nhìn chung AGI cho phép chúng ta thực hiện nhiều công việc giúp khai thác và quản lý Asterisk một cách hiệu quả nhất.

2.2. Phân loại AGI

AGI gồm một số loại như sau:

AGI: Đây là loại AGI bình thường. AGI Script có thể được lập trình bởi nhiều loại

ngơn ngữ khác nhau, có khả năng điều khiển Dialplan, và phải đặt trên máy chủ

Asterisk.

EAGI (enhanced AGI): Đây là loại AGI nâng cấp có các chức năng giống như

AGI, ngồi ra EAGI cịn có khả năng đọc kênh âm thanh vào trên kênh

STDERR+1.

DeadAGI: có chức năng tương tư như AGI nhưng DeadAGI cịn có khả năng làm

việc trên các kênh “chết” ( kênh “chết” là kênh thoại đã được kết thúc), đây là khả năng mà AGI bình thường khơng có.

FastAGI: cho phép Asterisk gọi AGI Script qua mạng TCP/IP, AGI Script không

cần phải đặt ngay trên máy chủ Asterisk.

Hình 4.2. AGI giao tiếp với Asterisk

Một phần của tài liệu xây dựng tổng đài ip pbx (Trang 63 - 65)