AGI DEBUGGING

Một phần của tài liệu XÂY DỰNG CÁC DỊCH VỤ TỔNG ĐÀI ASTERISK DỰA TRÊN LẬP TRÌNH PHPAGI (Trang 40)

3. Ngày giao nhiệm vụ luận văn:

4.5. AGI DEBUGGING

- Asterisk cung cấp một phƣơng pháp để debug một AGI script khi nó đang hoạt động.

Để có thể debug một AGI, chúng ta đăng nhập vào giao diện CLI của Asterisk và thực hiện câu lệnh sau:

$Agi set debug on

Chƣơng 4: Lập trình ứng dụng dựa vào giao tiếp AGI

- 27 -

Hình 4.5 AGI debug

- Mô hình trên đã cho thấy cụ thể quá trình hoạt động của AGI script. Thông tin từ Asterisk gửi cho AGI script đƣợc gắn bởi kí hiệu AGI Tx >>, thông tin từ AGI script gửi cho Asterisk đƣợc gắn bởi kí hiệu AGI Rx >> . Từ đây chúng ta có thể kiểm tra đƣợc quá trình hoạt động của AGI script.

- Chúng ta sử dụng lệnh sau để xóa chế độ AGI debug:

$Agi set debug off

4.6. PHPAGI- Thư viện lớp sử dụng ngôn ngữ PHP 4.6.1. Giới thiệu về PHPAGI

- PHPAGI đƣợc xem nhƣ là thƣ viện lớp cơ sở sử dụng ngôn ngữ PHP. PHPAGI cung

cấp cho ngƣời sử dụng một thƣ viện lớp để 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/

4.6.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

Chƣơng 4: Lập trình ứng dụng dựa vào giao tiếp AGI

- 28 -

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.

 Bên cạnh các lớp thƣ viện trên, PHPAGI cũng bao gồm các files khác mà chúng ta sẽ

sử dụng:

- phpagi-fastagịphp: Chƣơng trình khởi động FastAGI đƣợc viết bằng PHP, đƣợc

sử dụng khi dùng PHPAGI cho FastAGI servers

- phpagị examplẹconf: Ví dụ của file cấu hình PHPAGỊ

- fastagịxinetd: Bộ điều hành xinetd cho AGI bootstrap.

4.7. Gọi một AGI script từ Diaplan

 Để có thể hoạt động chính xác, AGI script phải đƣợc thực thị 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ố và arg1, arg2… là các tham số sử dụng cho script. Ví dụ:

exten => 123,1,Answer()

exten => 123,n,AGI(baothuc.php,arg1,arg2…) exten =>123,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 nhóm chọn PHP làm ngôn ngữ để lập trình.

4.8. Lập trình AGI Script bằng PHP

Trong phần này, nhóm 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ố 111, 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

1.#!/usr/bin/php5 -q 2.<?php

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

Chƣơng 4: Lập trình ứng dụng dựa vào giao tiếp AGI

- 29 -

5.$agi->answer();

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

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

Chƣơng 5: Các dịch vụ thực hiện dựa trên AGI

- 30 -

Chƣơng 5: Các dịch vụ thực hiện dựa trên AGI

5.1. Giới thiệu tổng quan về hệ thống

Một máy A khi gọi vào tổng đài thì sẽ nghe đƣợc một lời chào, sau đó là hƣớng dẫn sử dụng các dich vụ của tổng đài:

- Nhấn số 1: dịch vụ báo thức

- Nhấn số 2: dịch vụ quà tặng âm nhạc

- Nhấn số 3: dịch vụ radio streamline

- Nhấn số 4: dịch vụ tra cứu điểm thi đại học - Nhấn số 0: gặp trực tiếp điện thoại viên

Bên cạnh đó, hệ thống còn có khả năng tính phí từng dịch vụ cho cả thuê bao trả trƣớc và trả saụ

Chƣơng 5: Các dịch vụ thực hiện dựa trên AGI

- 31 -

5.2. Dịch vụ báo thức:

5.2.1. Nhận yêu cầu từ người sử dụng

Lƣu đồ sau đây trình bày quá trình hệ thống tổng đài nhận thông tin yêu cầu từ ngƣời sử dụng dịch vụ báo thức.

Hình 5.1 Lưu đồ giải thuật dịch vụ báo thức

Khách hàng nhấn số 1 để sử dụng dịch vụ báo thức.

Tiếp theo, hệ thống tổng đài sẽ tự động kiểm tra thuê bao của khách hàng là trả trƣớc hay là trả saụ Trong trƣờng hợp thuê bao là trả trƣớc, hệ thống sẽ kiểm tra tài khoản, nếu tài khoản của khách hàng đủ khả năng để thực hiện dịch vụ thì hệ thống sẽ trừ tiền vào tài

Chƣơng 5: Các dịch vụ thực hiện dựa trên AGI

- 32 -

khoản đồng thời lƣu thông tin của khách hàng, nếu tài khoản không đủ khả năng, hệ thống sẽ phát một lời nhắn yêu cầu nạp tiền vào tài khoản. Trong trƣờng hợp thuê bao là trả sau, hệ thống sẽ tăng số tiền phải trả và lƣu thông tin cua khách hàng.

Sau đó, khách hàng sẽ cung cấp thông tin cho hệ thống tuần tự nhƣ sau: Nhập số điện thoại cần đƣợc báo thức

Nhập thời gian báo thức

Cuối cùng hệ thống sẽ tự động phát lại thông tin khách hàng đã cung cấp

5.2.2. Hoạt động của hệ thống tổng đài

Sau khi nhận đầy đủ các thông tin yêu cầu từ khách hàng, đến giờ báo thức, hệ thống tổng đài tự động gọi đến máy đã đƣợc chọn để báo thức. Nếu bắt máy, khách hàng sẽ đƣợc nghe một lời chúc từ tổng đàị Trong trƣờng hợp quá thời gian tối đa mà khách hàng không bắt máy, hệ thống sẽ tự động báo thức lại sau đó cho khách hàng.

Chƣơng 5: Các dịch vụ thực hiện dựa trên AGI

- 33 -

5.3. Dịch vụ quà tặng âm nhạc

5.3.1. Nhận yêu cầu từ người sử dụng

Lƣu đồ sau đây trình bày quá trình hệ thống tổng đài nhận thông tin yêu cầu từ ngƣời sử dụng dịch vụ quà tặng âm nhạc.

Hình 5.2 Lưu đồ giải thuật dịch vụ quà tặng âm nhạc

Khách hàng nhấn số 2 để sử dụng dịch vụ quà tặng âm nhạc.

Tiếp theo, hệ thống tổng đài sẽ tự động kiểm tra thuê bao của khách hàng là trả trƣớc hay là trả saụ Trong trƣờng hợp thuê bao là trả trƣớc, hệ thống sẽ kiểm tra tài khoản, nếu tài khoản của khách hàng đủ khả năng để thực hiện dịch vụ thì hệ thống sẽ trừ tiền vào tài khoản

Chƣơng 5: Các dịch vụ thực hiện dựa trên AGI

- 34 -

đồng thời lƣu thông tin của khách hàng, nếu tài khoản không đủ khả năng, hệ thông sẽ phát một lời nhắn yêu cầu nạp tiền vào tài khoản. Trong trƣờng hợp thuê bao là trả sau, hệ thống sẽ tăng số tiền phải trả và lƣu thông tin cua khách hàng.

Sau đó, khách hàng sẽ cung cấp thông tin cho hệ thống tuần tự nhƣ sau:

- Nhập số điện thoại đƣợc nhận quà tặng âm nhạc

- Nhập thời gian phát nhạc

- Nhập mã số bài hát

- Nhấn số 1 để lƣu lại lời nhắn cho máy đƣợc nhận quà tặng Cuối cùng hệ thống sẽ tự động phát lại thông tin khách hàng đã cung cấp

5.3.2. Hoạt động của hệ thống.

Cơ sở dữ liệu cho dịch vụ quà tặng âm nhạc nhƣ sau:

Hình 5.3 Cơ sở dữ liệu của dịch vụ quà tậng âm nhạc

Các file nhạc đƣợc đặt tại thƣ mục: /var/lib/asterisk/sounds/amnhac

Sau khi lấy thông tin yêu cầu từ khách hàng, hệ thống tổng đài sẽ có đƣợc đƣờng dẫn của bài hát đƣợc yêu cầu từ Database am_nhac.

Hệ thống tổng đài sẽ tự động gọi đến máy đƣợc nhận quà tặng, phát những thông tin cho khách hàng: máy đã gửi quà tặng, lời nhắn, tên bài hát và ca sĩ trình bàỵ Sau đó, hệ thống sử dụng mp3player với đƣờng dẫn đã có của bài hát đƣợc yêu cầu và phát vào điện thoại đƣợc nhận quà tặng.

Chƣơng 5: Các dịch vụ thực hiện dựa trên AGI

- 35 -

5.4. Dịch vụ radio streamline

5.4.1. Nhận yêu cầu từ người sử dụng

Lƣu đồ sau đây trình bày quá trình hệ thống tổng đài nhận thông tin yêu cầu từ ngƣời sử dụng dịch vụ radio streamlinẹ

Hình 5.4 Lưu đồ giải thuật dịch vụ radio streamline

Khách hàng nhấn số 3 để sử dụng dịch vụ radio streamlinẹ

Tiếp theo, hệ thống tổng đài sẽ tự động kiểm tra thuê bao của khách hàng là trả trƣớc hay là trả saụ Trong trƣờng hợp thuê bao là trả trƣớc, hệ thống sẽ kiểm tra tài khoản, nếu tài khoản của khách hàng đủ khả năng để thực hiện dịch vụ thì hệ thống sẽ trừ tiền vào tài khoản đồng thời lƣu thông tin của khách hàng, nếu tài khoản không đủ khả năng, hệ thông sẽ phát một lời nhắn yêu cầu nạp tiền vào tài khoản. Trong trƣờng hợp thuê bao là trả sau, hệ thống sẽ tăng số tiền phải trả và lƣu thông tin cua khách hàng.

Chƣơng 5: Các dịch vụ thực hiện dựa trên AGI

- 36 -

được sử dụng

Cuối cùng hệ thống sẽ tự động phát lại thông tin khách hàng đã cung cấp

5.4.2. Hoạt động của hệ thống.

Cơ sở dữ liệu cho dịch vụ radio streamline nhƣ sau:

Hình 5.5 Cơ sở dữ liệu của dịch vụ radio streamline

Sau khi lấy thông tin yêu cầu từ khách hàng, hệ thống tổng đài sử dụng musiconhold để phát cho ngƣời sử dụng kênh muốn nghẹ

Chƣơng 5: Các dịch vụ thực hiện dựa trên AGI

- 37 -

5.5. Dịch vụ tra cứu điểm thi đại học 5.5.1. Nhận yêu cầu từ người sử dụng 5.5.1. Nhận yêu cầu từ người sử dụng

Lƣu đồ sau đây trình bày quá trình hệ thống tổng đài nhận thông tin yêu cầu từ ngƣời sử dụng dịch vụ tra cứu điểm thi đại học.

Hình 5.6 Lưu đồ giải thuật dịch vụ tra cứu điểm thi đại học

Khách hàng nhấn số 3 để sử dụng dịch vụ radio streamlinẹ

Tiếp theo, hệ thống tổng đài sẽ tự động kiểm tra thuê bao của khách hàng là trả trƣớc hay là trả saụ Trong trƣờng hợp thuê bao là trả trƣớc, hệ thống sẽ kiểm tra tài khoản, nếu tài khoản của khách hàng đủ khả năng để thực hiện dịch vụ thì hệ thống sẽ trừ tiền vào tài khoản đồng thời lƣu thông tin của khách hàng, nếu tài khoản không đủ khả năng, hệ thông sẽ phát một lời nhắn yêu cầu nạp tiền vào tài khoản. Trong trƣờng hợp thuê bao là trả sau, hệ thống sẽ tăng số tiền phải trả và lƣu thông tin cua khách hàng.

Sau đó, khách hàng sẽ cung cấp thông tin cho hệ thống tuần tự nhƣ sau: Nhập số báo danh thí sinh. Cuối cùng hệ thống sẽ tự động phát lại thông tin khách hàng đã cung cấp

Chƣơng 5: Các dịch vụ thực hiện dựa trên AGI

- 38 -

5.5.2. Hoạt động của hệ thống

Cơ sở dữ liệu cho dịch vụ tra cứu điểm thi nhƣ sau:

Hình 5.7 Cơ sở dữ liệu của dịch vụ tra cứu điểm thi đại học

Sau khi lấy thông tin yêu cầu từ ngƣời sử dụng, hệ thống tổng đài lấy thông tin của thí sinh từ Database Diem_thi.

Hệ thống sẽ phát cho ngƣời sử dụng Họ tên, điểm toán, lý, hóa và tổng số điểm của thí sinh.

Chƣơng 5: Các dịch vụ thực hiện dựa trên AGI

- 39 -

5.6. Dịch vụ IVR

5.6.1. Nhận yêu cầu từ người sử dụng

Lƣu đồ sau đây trình bày quá trình hệ thống tổng đài nhận thông tin yêu cầu từ ngƣời sử dụng dịch vụ IVR.

Chƣơng 5: Các dịch vụ thực hiện dựa trên AGI

- 40 -

Hình 5.8 Lưu đồ giải thuật dịch vụ IVR

Nhấn số 0 để đƣợc tƣ vấn trực tiếp với điện thoại viên

Sau đó, khách hàng sẽ nhập mã số phòng ban muốn đƣợc tƣ vấn

5.6.2. Hoạt động của hệ thống

Sau khi nhận đƣợc mã số của thông tin cần đƣợc tƣ vấn của ngƣời sử dụng, hệ thống tổng đài sẽ kết nối trực tiếp đến điện thoại viên.

- Nhấn số 1: tƣ vấn trực tiếp về kĩ thuật

- Nhấn số 2: tƣ vấn trực tiếp về sử dụng các dịch vụ

- Nhấn số 3: tƣ vấn trực tiếp về thực hiện đăng kí và hợp đồng

5.7. Tính phí các dịch vụ của hệ thống tổng đài

Cơ sở dữ liệu cho tính phí các dịch vụ nhƣ sau:

Chƣơng 5: Các dịch vụ thực hiện dựa trên AGI

- 41 -

Hình 5.10 Cơ sở dữ liệu của dịch vụ trả sau

 Hệ thống tổng đài đƣợc xây dựng với khả năng tính phí cho cả 2 gói cƣớc trả trƣớc và trả saụHệ thống tổng đài sẽ tự động kiểm tra thuê bao của khách hàng là trả trƣớc hay là trả saụ Trong trƣờng hợp thuê bao là trả trƣớc, hệ thống sẽ kiểm tra tài khoản, nếu tài khoản của khách hàng đủ khả năng để thực hiện dịch vụ thì hệ thống sẽ trừ tiền vào tài khoản, nếu tài khoản không đủ khả năng, hệ thông sẽ phát một lời nhắn yêu cầu nạp tiền vào tài khoản. Trong trƣờng hợp thuê bao là trả sau, hệ thống sẽ tăng số tiền phải trả.

 Bên cạnh đó, hệ thống còn lƣu lại thông tin của khách hàng. Khi một máy A sử

dụng một dịch vụ, tổng tài sẽ lƣu thời gian sử dụng sau cùng, dịch vụ sử dụng và tính toán lại tài khoản của gói cƣớc trả trƣớc hoặc số tiền phải trả của gói cƣớc trả sau, đồng thời hệ thống còn lƣu lại tổng số lần sử dụng từng dịch vụ.

- 42 -

Chƣơng 6:

Tổng kết và hƣớng phát triển đề tài

Nội dung chƣơng này bao gồm kết quả thực hiện đƣợc, những hạn chế trong đề tài và đƣa ra những cách khắc phục và hƣớng phát triển đề tàị

6.1. Kết quả đạt được

Trong quá trình thực hiện đề tài, nhóm đã thực hiện đƣợc các dịch vụ của tổng đài bằng lập trình PHPAGI:

 Báo thức

 Quà tặng âm nhạc

 Radio streamline

 Tra cứu điểm thi đại học  IVR

 Tính phí cho các dịch vụ

Ƣu điểm:

o Các dịch vụ đề tài thực hiện đƣợc chính là những dịch vụ đƣợc khách hàng sử

dụng nhiều hiện naỵ Nội dung trong luận văn không chỉ nói đến cách cung cấp các dịch vụ mà còn đƣa ra các giải pháp giúp cho doanh nghiệp có thể dễ dàng triển khai các dịch vụ theo ý của mình. Việc xây dựng các dịch vụ có các tính năng nhƣ thế nào đều có thể thực hiện đƣợc bằng cách thay đổi các script trong lập trình PHPAGỊ Với việc triển khai các dịch vụ bằng lập trình, chúng ta có thể linh động và dễ dàng hơn trong việc đáp ứng yêu cầu của khách hàng.  Nhƣợc điểm:

o Các dịch vụ triển khai trong đề tài có chất lƣợng âm thanh chƣa tốt, khả năng kết nối với internet trong dịch vụ radio streamline chƣa nhanh ( mất khoảng 5s cho việc phát các kênh đến khách hàng).

o Các dịch vụ trong đề tài này chƣa hỗ trợ tiếng Việt cho khách hàng, vấn đề này có thể đƣợc giải quyết nếu tổng đài đƣợc tích hợp khả năng nhận diện và trả lời

Một phần của tài liệu XÂY DỰNG CÁC DỊCH VỤ TỔNG ĐÀI ASTERISK DỰA TRÊN LẬP TRÌNH PHPAGI (Trang 40)

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

(94 trang)