Xây dựng giải pháp công nghệ áp dụng cho tổng đài quà tặng âm nhạc

Một phần của tài liệu Nghiên cứu, thiết kế và xây dựng tổng đài quà tặng âm nhạc giá rẻ trên nền tảng (Trang 38 - 44)

nhạc giá rẻ

Trong phần này, tác giả xin trình bày các giải pháp công nghệ sẽ đƣợc tác giả áp dụng trong việc xây dựng tổng đài quà tặng âm nhạc. Tác giả chọn tổng đài asterisk là nền tảng để xây dựng tổng đài quà tặng âm nhạc, vì Asterisk có các công nghệ đảm bảo giải quyết các vấn đề của bài toán mà tác giả đã nêu trong phần 2.2.1

IVR – Interactive Voice Response

IVR là công nghệ tự động hóa các tƣơng tác dịch vụ của khách hàng qua phím bấm.Khả năng và sự linh hoạt của một hệ thống điện thoại dựa vào chƣơng trình đƣa đến cho hệ thống khả năng để đáp ứng khách hàng theo các cách đầy ý nghĩa. Hệ thống có thể dùng Asterisk để cung cấp dịch vụ trong suốt 24 giờ. Asterisk cho phép phát các lại các file thu âm - hƣớng dẫn, đọc văn bản, và truy lục thông tin từ cơ sở dữ liệu. Đây là kỹ thuật mà chúng ta tiếp cận trong việc trả tiền cƣớc điện

39

thoại qua hệ thống ngân hàng. Khi chúng ta gọi đến ngân hàng, chúng ta sẽ nghe một số loại bản tin đã đƣợc thu và đƣa ra lệnh, thƣờng là sử dụng điện thoại ấn phím ở chế độ tone. Ví dụ chúng ta có thể nghe một lời chào và bản tin trạng thái, chúng ta gõ vào số tài khoản và thông tin cá nhân hoặc giấy ủy quyền đã chứng thực. Chúng ta cũng thƣờng nghe thông tin riêng, thông tin riêng này đƣợc truy lục từ cơ sở dữ liệu, nhƣ một vài phiên giao dịch mới nhất hoặc số dƣ tài khoản. Các hệ thống với tính năng nhƣ vậy đƣợc thực thi bằng cách sử dụng Asterisk.

Cụ thể trong luận văn, tác giả đã áp dụng công nghệ IVR của asterisk, xây dựng kịch bản giao tiếp tự động giữa ngƣời gọi và hệ thống qua các phím bấm trên điện thoại. Hệ thống hƣớng dẫn đến đâu, ngƣời dùng lựa chọn phím thao tác phù hợp nhƣ nhập số điện thoại ngƣời nhận, ghi âm lời chúc, nhập thời gian gửi tặng, … các thông tin này đều đƣợc lƣu vào cơ sở dữ liệu.

Tác giả xin trình bày chi tiết việc áp dụng công nghệ IVR vào tổng đài quà tặng âm nhạc:

Trƣớc khi trình bày, tác giả xin giới thiệu kế hoạch quay số - Dialplan của asterisk. Kế hoạch quay số là trái tim của hệ thống Asterisk. Nhƣ đã trình bày ở trên, asterisk là một tổng đài IP PBX – tổng đài mềm, kế hoạch quay số cho biết các cuộc gọi sẽ đƣợc xử lý nhƣ thế nào qua hệ thống Asterisk. Kế hoạch quay số bao gồm tập hợp các dòng lệnh hay các ứng dụng của Asterisk theo một trình tự nào đó mà hệ thống phải thực hiện để đáp ứng nhu cầu chuyển mạch cuộc gọi. Các kế hoạch quay số có thể coi nhƣ các kịch bản thoại cho ngƣời dùng.

Khi ngƣời dùng gọi điện vào hệ thống asterisk, toàn bộ kịch bản thoại (dialplan) sẽ đƣợc asterisk quản lý trong file extensions.conf thông qua tập lệnh của asterisk: Phát file, bắt phím, ghi âm, …

[xem thêm phụ lục 1 – Công nghệ IVR-Asterisk] Ta có:

Exten => 1900575769,2,AGI(/var/lib/asterisk/agi-bin/QTAN/QTAN.php)

Cuộc gọi của khách hàng đƣợc kết nối đến kịch bản thoại đƣợc viết bằng ngôn ngữ PHP ở file QTAN.php

40

IVR của asterisk còn hỗ trợ thƣ viện lập trình xử lý kịch bản thoại với các ngôn ngữ bậc cao nhƣ php, java, perl, …. Giúp việc lập trình xử lý sự kiện bắt phím và thực thi các lệnh dễ dàng hơn.

Thư viện lập trình kịch bản thoại cho tổng đài asterisk

Hình 14: Sơ đồ giao tiếp giữa ứng dụng viết bằng ngôn ngữ cấp cao với tổng đài Asterisk

Thƣ viện Asterisk Gateway Interface (AGI, tƣơng tự nhƣ CGI) - cơ chế kích hoạt ứng dụng bên ngoài, cho phép viết kịch bản thoại phức tạp với một số ngôn ngữ nhƣ PHP hay Perl (gọi chung là AGI script). Các AGI script giao tiếp với asterisk qua hai dòng dữ liệu chuẩn – STDIN (tiêu chuẩn đầu vào) và STDOUT (tiêu chuẩn đầu ra). Nếu đứng từ AGI script thì bất kỳ đầu vào đến từ asterisk sẽ đƣợc xem nhƣ là STDIN của AGI script, và mọi đầu ra tới asterisk đƣợc xem nhƣ STDOUT của AGI script. Biểu đồ dƣới miêu tả các bƣớc xảy ra khi 1 AGI script đƣợc thực thi trong kịch bản thoại asterisk

41

Hình 15: Sơ đồ các bƣớc thực thi 1 AGI script

Do kịch bản tổng đài quà tặng âm nhạc phức tạp, nên tác giả sẽ chọn AGI script php, để viết kịch bản thoại cho tổng đài. PHP là ngôn ngữ thông dịch rất tiện cho việc xây dựng các kịch bản thoại phức tạp. Chi tiết của việc phân tích kịch bản và xây dựng tổng đài quà tặng âm nhạc sẽ đƣợc tác giả trình bày bên dƣới.

Công nghệ auto-dial out của asterisk

Để giải quyết vấn đề tự động gọi điện thoại ra cho ngƣời gửi, tác giả đã áp dụng công nghệ auto-dial out của asterisk. Dƣới đây tác giả xin trình bày việc áp dụng công nghệ này vào thành phần gọi điện gửi quà trong hệ thống tổng đài quà tặng âm nhạc.

Asterisk Call Files

File call asterisk là các file có cấu trúc, khi di chuyển chúng tới thƣ mục thích hợp, có khả năng tự động tạo ra các cuộc gọi, sử dụng Asterisk. Các file Call là cách tuyệt vời để tạo ra các cuộc gọi tự động mà không sử dụng nhiều các tính năng Asterisk phức tạp hơn nhƣ AGI, AMI, và Dialplan.

42

Sử dụng phƣơng thức file call, bạn phải cung cấp tới Asterisk những thông tin sau: - Cách thức thi hành file call, tƣơng tự nhƣ ứng dụng Dial().

- Điều gì sẽ đƣợc làm khi cuộc gọi nhận đƣợc sự trả lời.

Bạn tạo các file call với thông tin cần nhƣ trên theo đúng cú pháp và đặt nó vào trong thƣ mục spooling outgoing, mặc định là /var/spool/asterisk/outgoing/ (đƣợc cấu hình trong asterisk.conf).

Module pbx_spool của asterisk kiểm tra nội dung thƣ mục trên mỗi giây, nó tạo ra một cuộc gọi mới cho mỗi file call mà nó tìm thấy. Không nên viết hoặc tạo file call trực tiếp trong thƣ mục outgoing, mà tạo file call trong thƣ mục khác của hệ thống file và sau đó di chuyển file tới /var/spool/asterisk/outgoing/, vì nếu không

asterisk có lẽ chỉ đọc đƣợc 1 phần nội dung file.

Cách module pbx_spool làm việc xem thêm trong phụ lục 2

Cài đặt ứng dụng file call trong hệ thống quà tặng âm nhạc:

# file call: 79_0904251325.call Channel: IAX2/ToGate/10904251325 Callerid: 0473058768 MaxRetries: 1 RetryTime: 20 WaitTime: 50 Context: Call-To-Customer Extension: Music Priority: 1 Set: id=79 Set: sdt=0904251325

File 79_0904251325.call đƣợc tạo ra ở thƣ mục /DATA/QTAN1900/CallDir/, sau khi tạo xong nó đƣợc copy tới thƣ mục : /var/spool/asterisk/outgoing/.

Sau khi copy, asterisk tạo ra cuộc gọi tới số 0904251325, khi thuê bao nhấc máy thì kịch bản thoại ở địa chỉ tới context: Call-To-Customer, extension là Music,priority 1 sẽ đƣợc chạy để phát bài hát và lời chúc tới ngƣời nhận.

43

Công nghệ play file Mp3 trên môi trƣờng thoại

Giới thiệu MP3Player và mpg123

Asterisk hỗ trợ chơi(play) các file MP3 và các stream với lệnh MP3Player.

MP3Player thi hành chƣơng trình mpg123 với các tùy chọn để tạo ra âm thanh phù

hợp với cái mà Asterisk mong chờ.

Do đó, để play đƣợc file mp3 trong ứng dụng MP3Player của Asterisk, ta cần cài đặt gói mpg123 khi bạn biên dịch gói asterisk trong suốt quá trình khởi tạo của Asterisk PBX.

Mpg123 là một chƣơng trình phần mềm nghe nhạc MPEG audio player nhanh, miễn phí và sử dụng ở dạng console cho các hệ điều hành UNIX và Linux. Nó hỗ trợ MPEG-1 và MPEG-2, lớp 1, 2 và 3. Nó đƣợc sử dụng phổ biến để play file MP3. Mpg123 đƣợc cấp phép theo LGPL 2.1.

Sử dụng MP3Player

Location: File MP3 hoặc URL của MP3 stream.

Trong quá trình nghe ngƣời gọi có thể thoát bằng việc bấm một số bất kì trên điện thoại. Mã trả về là -1 nếu hangup hoặc 0 nếu ngƣợc lại.

Ví dụ: (trong extension.conf)

#define MPG_123 "/usr/bin/mpg123" static char *app = "MP3Player"; # file apps/app_mp3.c

# filename: tên file mp3

execl(MPG_123, "mpg123", "-q", "-s", "-f", "8192", "--mono", "-r", "8000", filename, (char *)NULL);

#tar zxvf mpg123-1.5.0.tar.gz #cd mpg123-1.5.0 #./configure #make #make install MP3Player (location) exten => 19450902,1,MP3Player(/root/tuyenngondoclap.mp3) exten => 19450902,2,Hangup

44

Ngƣời dùng sử dụng thiết bị đầu cuối x-lite (softphone) có kết nối đến server asterisk. Khi ngƣời dùng quay số 19450902, hệ thống sẽ phát file mp3: tuyenngondoclap.mp3

Trong ứng dụng hệ thống tổng đài quà tặng âm nhạc Vmusic, MP3Player giúp cho việc phát các file nhạc mp3 tới khách hàng.

Một phần của tài liệu Nghiên cứu, thiết kế và xây dựng tổng đài quà tặng âm nhạc giá rẻ trên nền tảng (Trang 38 - 44)

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

(90 trang)