3. Ngày giao nhiệm vụ luận văn:
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 bằng tiếng Việt cho khách hàng
- 43 -
o Cơ sở dữ liệu đƣợc sử dụng trong đề tài này là MySQL, thông tin đƣợc cập
nhật nhờ vào ngƣời quản trị cơ sở dữ liệụ Do đó, dịch vụ khó có thể xây dựng các dịch vụ có thông tin thay đổi thƣờng xuyên nhƣ: giá vàng, dự báo thời tiết hay tỉ số các trận bóng đá… Để có thể giải quyết các vấn đề này, sự kết hợp giữa Asterisk và Web service sẽ là hƣớng phát triển cho việc triển khai các dịch vụ.
Phần tiếp theo sẽ đề cập đến Web Service, ứng dụng và khả năng kết nối giữa Asterisk và Web Servicẹ
6.2. Hướng phát triển đề tài 6.2.1. Giới thiệu về Web service
Khi bạn xây dựng và phát triển một ứng dụng phân tán với số lƣợng ngƣời dùng lên đến hàng trăm, hàng nghìn ngƣời ngƣời ở nhiều địa điểm khác nhau, khó khăn đầu tiên mà chúng ta gặp phải là sự giao tiếp giữa Client và Server bị tƣờng lửa ( firewalls) và Proxy Server ngăn chặn lạị
DCOM (Distribited companent Object Model) làm việc thông qua việc gởi các thông tin dƣới dạng nhị phân(binary) và chủ yếu hoạt động dựa trên giao thức TCP/IP, không dễ dàng để sử dụng DCOM trong trƣờng hợp nàỵ
Hình 6.1 Hoạt động của DCOM
Web service có thể giúp chúng ta giải quyết vấn đề khó khăn nêu trên. Web Service là tập