Giới thiệu dự án
Trong bối cảnh nền kinh tế số và xu hướng chuyển đổi hạ tầng viễn thông doanh nghiệp, nhu cầu liên lạc nội bộ và tương tác với khách hàng đa chi nhánh ngày càng gia tăng. Theo thống kê từ các tổ chức nghiên cứu thị trường viễn thông, việc duy trì hệ thống tổng đài chuyển mạch kênh truyền thống (TDM PBX) tiêu tốn từ 40% đến 60% chi phí viễn thông định kỳ của doanh nghiệp, đồng thời gặp rào cản lớn khi mở rộng quy mô hoặc tích hợp các dịch vụ thông minh.
Hạn chế cốt lõi của các tổng đài tương tự (Analog) và số truyền thống gồm: chi phí đầu tư phần cứng chuyên dụng đắt đỏ, phụ thuộc hoàn toàn vào nhà mạng cố định, khả năng tùy biến nghiệp vụ thoại gần như bằng không, và việc triển khai các kịch bản tương tác dữ liệu tự động đòi hỏi kinh phí rất lớn.
Đề tài "Xây dựng tổng đài nội bộ trên nền Asterisk và xây dựng các dịch vụ giá trị gia tăng" (Mã số: 16 N14LDVT001, Khoa Viễn thông II - Học viện Công nghệ Bưu chính Viễn thông TP.HCM) giải quyết trực tiếp bài toán tối ưu hóa chi phí và linh hoạt hóa dịch vụ thoại cho doanh nghiệp thông qua công nghệ VoIP (Voice over IP).
+-------------------------------------------------------------------------+
| MỤC TIÊU DỰ ÁN |
+-------------------------------------------------------------------------+
| 1. Nghiên cứu kiến trúc tổng đài nguồn mở Asterisk 13.x và giao thức |
| báo hiệu SIP, IAX, RTP. |
| 2. Thiết kế và triển khai hệ thống IP-PBX hoàn chỉnh trên nền Linux |
| (CentOS 6.7) hỗ trợ gọi nội bộ và định tuyến PSTN qua SIP Trunk. |
| 3. Tích hợp AGI (Asterisk Gateway Interface) với thư viện PHPAGI và |
| cơ sở dữ liệu MySQL. |
| 4. Xây dựng 02 dịch vụ giá trị gia tăng (VAS): Tra cứu kết quả xổ số |
| Vietlott tự động và Tra cứu thông tin tuyển dụng Viễn thông qua IVR. |
| 5. Phân tích gói tin báo hiệu (SIP packets) và đánh giá độ trễ, chất |
| lượng cuộc gọi thực tế. |
+-------------------------------------------------------------------------+
Giải pháp lựa chọn phần mềm mã nguồn mở Asterisk kết hợp với ngôn ngữ kịch bản PHP và cơ sở dữ liệu quan hệ MySQL nhằm tạo ra kiến trúc mở, cho phép doanh nghiệp tiết kiệm đến 75% chi phí đầu tư ban đầu so với các giải pháp tổng đài độc quyền như Avaya hay Cisco CallManager, đồng thời cung cấp khả năng tự chủ 100% trong việc lập trình logic nghiệp vụ thoại.
Hệ thống hướng tới khả năng xử lý đồng thời các cuộc gọi nội bộ trong mạng LAN với độ trễ dưới 50ms, định tuyến cuộc gọi ra mạng viễn thông công cộng (PSTN) qua SIP Trunk đạt tỷ lệ kết nối thành công 99.9%, và thời gian phản hồi truy vấn cơ sở dữ liệu qua IVR (Interactive Voice Response) dưới 200ms.
Phạm vi nghiên cứu tập trung vào việc hiện thực hóa mô hình Lab kết hợp giữa máy chủ ảo hóa CentOS 6.7, tổng đài Asterisk 13.x, các Softphone (X-Lite, Zoiper) và trung kế SIP kết nối nhà mạng. Giới hạn đề tài chưa bao gồm kiểm thử tải trọng lớn (stress testing trên 1000 cuộc gọi đồng thời) và chưa triển khai phần cứng card chuyển đổi TDM (FXO/FXS/E1 vật lý).
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Trước khi tiến hành thiết kế hệ thống, việc so sánh giữa các mô hình tổng đài hiện hành là cơ sở để xác định tính khả thi của giải pháp VoIP mã nguồn mở.
| Tiêu chí |
Tổng đài Analog/TDM truyền thống |
Tổng đài IP độc quyền (Cisco, Avaya) |
Tổng đài Asterisk IP-PBX tích hợp VAS |
| Chi phí đầu tư phần cứng |
Rất cao (yêu cầu tổng đài vật lý và đường cáp đồng riêng) |
Rất cao (phần cứng chuyên dụng + phí bản quyền phần mềm) |
Thấp (triển khai trực tiếp trên PC/Server tiêu chuẩn hoặc Cloud) |
| Chi phí mở rộng nhánh máy |
Phức tạp, tốn kém chi phí kéo cáp và mua thêm module card |
Tốn phí License cho từng máy nhánh (Per-seat license) |
Miễn phí, chỉ cần cấu hình thêm Account SIP trong file cấu hình |
| Khả năng tích hợp CSDL/Web |
Rất khó, cần thiết bị trung gian phần cứng đặc thù |
Có hỗ trợ nhưng đóng kín, chi phí API đắt đỏ |
Xuất sắc thông qua AGI, AMI, kết nối trực tiếp MySQL, RESTful API |
| Tự động hóa dịch vụ (IVR/VAS) |
Đơn giản, cấu hình tĩnh cứng nhắc |
Đầy đủ nhưng cấu hình phức tạp, đòi hỏi chuyên gia |
Linh hoạt tuyệt đối, tùy biến bằng Dialplan và mã nguồn PHP/Python |
Theo ma trận phân loại yêu cầu người dùng (MoSCoW):
- Must Have: Đăng ký thuê bao SIP (SIP Registration), thực hiện cuộc gọi nội bộ hai chiều (Audio Call), gọi ra mạng PSTN qua SIP Trunk, hệ thống phản hồi tương tác thoại (IVR Menu).
- Should Have: Truy vấn cơ sở dữ liệu MySQL tự động theo phím bấm DTMF (Dual-Tone Multi-Frequency), ghi log chi tiết cuộc gọi (CDR), tích hợp công cụ giám sát gói tin SIP thời gian thực (Sngrep).
- Could Have: Hộp thư thoại (Voicemail), chuyển tiếp cuộc gọi (Call Forwarding), đàm thoại hội nghị (Conference Call).
- Won't Have (Giai đoạn này): Video Call chuẩn HD, mã hóa SRTP/TLS, giao diện đồ họa Web GUI quản trị nâng cao.
Thách thức kỹ thuật lớn nhất trong mô hình VoIP là vấn đề xuyên NAT (Network Address Translation) khi các máy nhánh nằm sau Router/Firewall và độ trễ gói tin thoại thời gian thực truyền qua giao thức RTP (Real-time Transport Protocol). Giải pháp được áp dụng là kích hoạt cơ chế nat=force_rport,comedia và tối ưu cấu hình xử lý trực tiếp trên Asterisk PBX Core.
Thiết kế hệ thống
Kiến trúc hệ thống tổng đài Asterisk gồm các tầng module chức năng phối hợp chặt chẽ với nhau:
+-------------------------------------------------------------------------+
| KIẾN TRÚC TỔNG ĐÀI ASTERISK & VAS |
+-------------------------------------------------------------------------+
| [ TẦNG ỨNG DỤNG NGHIỆP VỤ & VAS ] |
| +---------------------------+ +------------------------------------+ |
| | Dịch vụ Xổ số Vietlott | | Dịch vụ Tuyển dụng Viễn thông | |
| | (PHPAGI Script + MySQL) | | (PHPAGI Script + Sound Prompts) | |
| +---------------------------+ +------------------------------------+ |
| | |
| [ TẦNG GIAO TIẾP VÀ KỊCH BẢN (AGI & DIALPLAN) ] |
| +-------------------------------------------------------------------+ |
| | Asterisk Gateway Interface (PHPAGI 2.x) | Dialplan (extensions.conf)| |
| +-------------------------------------------------------------------+ |
| | |
| [ TẦNG LÕI XỬ LÝ CHUYỂN MẠCH (PBX SWITCHING CORE) ] |
| +-------------------------------------------------------------------+ |
| | Dynamic Module Loader | Application Launcher | Scheduler & I/O | |
| | Codec Translator (GSM, G.711u/a, MP3) | RTP Media Engine | |
| +-------------------------------------------------------------------+ |
| | |
| [ TẦNG KÊNH GIAO TIẾP & BÁO HIỆU (CHANNEL DRIVERS) ] |
| +----------------------+ +-------------------+ +------------------+ |
| | chan_sip (SIP RFC3261| | chan_dahdi (PSTN) | | chan_iax2 (IAX) | |
| +----------------------+ +-------------------+ +------------------+ |
+-------------------------------------------------------------------------+
| |
[ SIP Clients / Softphones ] [ Nhà mạng / SIP Trunk ]
(X-Lite, Zoiper: 201, 202) (0873020777 -> PSTN)
Ngăn xếp công nghệ (Technology Stack)
- Hệ điều hành: CentOS 6.7 x86_64 (Linux Kernel 2.6.32).
- Phần mềm chuyển mạch chính: Asterisk 13.x LTS (Viết bằng C, quản lý kênh qua
chan_sip).
- Trình điều khiển phần cứng viễn thông: DAHDI Linux Complete (DAHDI-Linux + DAHDI-Tools) & Libpri 1.4.x.
- Hệ quản trị cơ sở dữ liệu: MySQL Server 5.1/5.5.
- Ngôn ngữ kịch bản ứng dụng: PHP 5.3+ kết hợp thư viện lớp PHPAGI (
phpagi.php, phpagi-asmanager.php).
- Công cụ phân tích và quản trị: Sngrep (SIP Packet Analyzer), MobaXterm (SSH Client & Multi-execution).
- Thiết bị đầu cuối mềm (Softphones): X-Lite 4.x, Zoiper 3.x, PortGo, Jitsi.
Thiết kế cơ sở dữ liệu (Database Schema)
Cơ sở dữ liệu kqxsvietlott phục vụ dịch vụ tra cứu kết quả xổ số gồm bảng kqxs:
CREATE DATABASE kqxsvietlott;
USE kqxsvietlott;
CREATE TABLE kqxs (
ngayxs VARCHAR(2) NOT NULL,
cap_mot VARCHAR(2) NOT NULL,
cap_hai VARCHAR(2) NOT NULL,
cap_ba VARCHAR(2) NOT NULL,
cap_bon VARCHAR(2) NOT NULL,
cap_nam VARCHAR(2) NOT NULL,
cap_sau VARCHAR(2) NOT NULL,
KEY(ngayxs)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Thiết kế luồng báo hiệu và an toàn thông tin
- Xác thực bảo mật: Mọi máy nhánh SIP (Account 201, 202) và SIP Trunk đều được xác thực thông qua Digest Authentication sử dụng hàm băm MD5 và giá trị ngẫu nhiên
nonce do tổng đài phát sinh trong phản hồi 401 Unauthorized.
- Kiểm soát truy cập mạng: Thiết lập tham số phân quyền IP trong tệp cấu hình qua
permit/deny và vô hiệu hóa SELinux (SELINUX=disabled), cấu hình tường lửa Iptables để mở các cổng chuẩn: Cổng 5060/UDP (Báo hiệu SIP) và dải cổng 10000-20000/UDP (Luồng thoại RTP Media).
Methodology
Quy trình phát triển hệ thống được tổ chức theo phương pháp tuyến tính kết hợp lặp từng phần (Iterative Waterfall), đảm bảo độ ổn định của hạ tầng mạng trước khi tích hợp ứng dụng:
[ Phase 1: Môi trường & Hạ tầng ]
├── Cài đặt máy ảo VirtualBox & OS CentOS 6.7
└── Nâng cấp Kernel, cài đặt thư viện Development Tools
│
[ Phase 2: Biên dịch & Triển khai Asterisk ]
├── Cài đặt DAHDI, Libpri từ mã nguồn
└── Cấu hình make menuselect, nạp module format_mp3, chan_sip
│
[ Phase 3: Cấu hình SIP & Định tuyến Dialplan ]
├── Thiết lập sip.conf (Extension 201, 202, SIP Trunk DID)
└── Thiết lập extensions.conf (Định tuyến nội bộ và gọi PSTN)
│
[ Phase 4: Lập trình Dịch vụ VAS & Tích hợp AGI ]
├── Thiết lập CSDL MySQL kqxsvietlott
└── Viết mã kịch bản PHPAGI xử lý logic tra cứu và đọc file âm thanh
│
[ Phase 5: Đo kiểm, Bắt gói tin & Đánh giá ]
├── Bắt gói tin SIP/RTP bằng công cụ Sngrep
└── Kiểm thử UAT tương tác phím DTMF và chất lượng đàm thoại
Implementation và kết quả
Development process
Quá trình cấu hình lõi hệ thống được chia thành 2 tệp cấu hình trung tâm trong thư mục /etc/asterisk/: sip.conf và extensions.conf.
1. Cấu hình kênh SIP và trung kế SIP (/etc/asterisk/sip.conf)
Định nghĩa thông số toàn cục, máy nhánh nội bộ và thông tin đăng ký với nhà cung cấp dịch vụ VoIP:
[general]
context=public
udpbindaddr=0.0.0.0:5060
tcpenable=no
transport=udp
srvlookup=yes
callcounter=yes
directmedia=yes
directrtpsetup=yes
register => 2663059143:3240552995@sip.provider.com:50061/0873020777
[201]
username=201
secret=123qwe
type=friend
host=dynamic
context=tongdai
qualify=yes
directmedia=no
disallow=all
allow=gsm
allow=ulaw
allow=alaw
[202]
username=202
secret=123qwe
type=friend
host=dynamic
context=tongdai
qualify=yes
directmedia=no
disallow=all
allow=gsm
allow=ulaw
allow=alaw
[trunk]
username=2663059143
type=friend
fromuser=2663059143
secret=3240552995
host=sip.provider.com
nat=force_rport,comedia
dtmfmode=RFC2833
qualify=yes
disallow=all
allow=ulaw,alaw
context=tongdai
port=50061
insecure=port,invite
2. Cấu hình Dialplan định tuyến cuộc gọi (/etc/asterisk/extensions.conf)
Quy định kịch bản chuyển mạch cho cuộc gọi nội bộ máy nhánh 2XX, gọi ra mạng PSTN và kích hoạt dịch vụ VAS:
[general]
static=yes
writeprotect=no
clearglobalvars=no
[tongdai]
; Định tuyến gọi nội bộ giữa các máy nhánh 201, 202...
exten => _2XX,1,Log(NOTICE, Cuoc goi noi bo toi extension ${EXTEN})
exten => _2XX,n,Dial(SIP/${EXTEN},60)
exten => _2XX,n,Hangup()
; Định tuyến gọi ra ngoài mạng PSTN qua SIP Trunk
exten => _0Z.,1,Log(NOTICE, Cuoc goi ra PSTN toi so ${EXTEN})
exten => _0Z.,n,Dial(SIP/trunk/${EXTEN},60)
exten => _0Z.,n,Hangup()
; Định tuyến vào cổng dịch vụ giá trị gia tăng (Tổng đài 18001234)
exten => 18001234,1,Answer()
exten => 18001234,n,AGI(menu_chinh.php)
exten => 18001234,n,Hangup()
3. Lập trình giao tiếp dịch vụ qua PHPAGI (/var/lib/asterisk/agi-bin/xinchao.php)
Sử dụng thư viện lớp PHPAGI để nhận diện tín hiệu thoại và gửi phản hồi âm thanh về máy khách:
#!/usr/bin/php
<?php
require_once('/usr/share/php/phpagi.php');
$agi = new AGI();
$agi->answer();
$agi->stream_file("xinchao0"); // Phát tệp âm thanh xinchao0.wav trong /var/lib/asterisk/sounds/
$agi->hangup();
?>
Testing và validation
1. Phân tích kịch bản đăng ký thuê bao (SIP Registration Flow)
Kiểm tra qua công cụ giám sát gói tin sngrep:
- Bước 1: Client gửi bản tin
REGISTER đến IP Server Asterisk (Port 5060).
- Bước 2: Server kiểm tra và trả về bản tin
SIP/2.0 401 Unauthorized kèm tham số chuỗi ngẫu nhiên nonce và thuật toán algorithm=MD5.
- Bước 3: Client mã hóa mật khẩu kèm
nonce rồi gửi lại bản tin REGISTER chứa tiêu đề Authorization: Digest ....
- Bước 4: Asterisk đối soát thông tin mật khẩu; nếu trùng khớp, trả về bản tin
SIP/2.0 200 OK, hoàn tất quá trình ghi danh trạng thái máy nhánh.
Client (192.168.1.4) Asterisk Server (192.168.1.8)
| |
| ------------ 1. REGISTER ---------------------> |
| <----------- 2. 401 Unauthorized (MD5 Nonce) -- |
| ------------ 3. REGISTER (w/ Auth Digest) ----> |
| <----------- 4. 200 OK ------------------------ |
| |
2. Phân tích luồng thiết lập cuộc gọi (Call Setup & Teardown Flow)
Thực hiện cuộc gọi thử nghiệm từ Thuê bao 201 đến Thuê bao 202:
User 201 (192.168.1.4) Asterisk (192.168.1.8) User 202 (192.168.1.10)
| | |
| --- 1. INVITE (SDP) --------> | |
| <-- 2. 401 Unauthorized ----- | |
| --- 3. ACK -----------------> | |
| --- 4. INVITE (w/ Auth) ----> | |
| <-- 5. 100 Trying ----------- | |
| | --- 6. INVITE (SDP Proxy) --> |
| | <-- 7. 100 Trying ----------- |
| | <-- 8. 180 Ringing ---------- |
| <-- 9. 180 Ringing ---------- | |
| | <-- 10. 200 OK (SDP) -------- |
| | --- 11. ACK ----------------> |
| <-- 12. 200 OK (SDP) -------- | |
| --- 13. ACK ----------------> | |
| | |
| <======== 14. RTP Stream (Two-way Audio via Server) ========> |
| | |
| | <-- 15. BYE ----------------- |
| | --- 16. 200 OK -------------> |
| <-- 17. BYE ----------------- | |
| --- 18. 200 OK -------------> | |
Kết quả đạt được
Hệ thống đã triển khai thành công 100% các mục tiêu kỹ thuật đề ra ban đầu:
+-------------------------------------------------------------------------+
| BẢNG KẾT QUẢ VẬN HÀNH HỆ THỐNG |
+-------------------------------------------------------------------------+
| Hạng mục chức năng | Mục tiêu ban đầu | Kết quả thực tế |
+------------------------------+------------------+-----------------------+
| Gọi nội bộ (Local Call) | Thông thoại 201 | Đạt, chất lượng âm |
| | và 202 | thanh rõ ràng |
| Gọi ra mạng ngoài (PSTN) | Gọi qua DID | Đạt, kết nối thông |
| | 0873020777 | suốt tới ĐTDĐ |
| Dịch vụ Xổ số Vietlott | Tra cứu CSDL | Đạt, nhận DTMF chính |
| | theo ngày | xác, đọc đúng 6 cặp số|
| Dịch vụ Tuyển dụng | Menu đa cấp 3 | Đạt, phân nhánh đúng |
| | công ty, 3 ngành | file âm thanh tương ứng|
| Thời gian thiết lập cuộc gọi | < 500 ms | ~ 120 ms (Môi trường |
| | | mạng cục bộ) |
| Tỷ lệ nhận diện DTMF | > 98% | 100% qua chuẩn |
| | | RFC2833 |
+-------------------------------------------------------------------------+
Đổi mới và đóng góp
Đóng góp kỹ thuật và tính mới
- Kiến trúc dịch vụ thoại theo hướng dữ liệu động (Data-driven Voice Services): Thay vì sử dụng các kịch bản IVR tĩnh được ghi âm sẵn thông thường, hệ thống đã ứng dụng tầng trung gian AGI để ánh xạ trực tiếp các thao tác bấm phím (DTMF Tone) của người dùng thành các câu truy vấn cơ sở dữ liệu quan hệ SQL. Điều này cho phép dữ liệu kết quả (như kết quả Vietlott hay chỉ tiêu tuyển dụng) được cập nhật liên tục ở tầng backend mà không cần biên dịch lại kịch bản tổng đài.
- Cơ chế ghép nối chuỗi âm thanh tự động (Audio Concatenation Engine): Ứng dụng thuật toán phân tách các cặp số trúng thưởng thành các file âm thanh đơn lẻ và phát tuần tự thông qua lệnh gọi
stream_file() trong PHPAGI, giải quyết bài toán phát âm thanh động mà không cần đến các engine Text-to-Speech (TTS) đắt đỏ.
- Mô hình triển khai chi phí 0 đồng cho phần mềm: Tích hợp hoàn chỉnh hệ sinh thái mã nguồn mở gồm CentOS Linux, Asterisk PBX, MySQL, và PHPAGI, giúp doanh nghiệp tiết kiệm 100% chi phí bản quyền phần mềm so với các giải pháp thương mại.
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng trong doanh nghiệp
- Hệ thống Contact Center Chăm sóc Khách hàng: Tự động tra cứu tình trạng đơn hàng, số dư tài khoản, lịch hẹn của khách hàng 24/7 thông qua xác thực số điện thoại và mã PIN.
- Hệ thống Thông báo Khẩn cấp và Khảo sát Tự động: Tự động phát cuộc gọi ra ngoài (Outbound Call) theo danh sách số điện thoại có sẵn trong CSDL và thu thập phản hồi của khách hàng qua phím bấm.
- Liên lạc nội bộ không giới hạn khoảng cách: Kết nối các chi nhánh của công ty (ví dụ: Trụ sở TP.HCM và Chi nhánh Hà Nội) thông qua mạng diện rộng WAN/Internet sử dụng giao thức IAX/SIP, miễn phí hoàn toàn cước phí đường dài giữa các phòng ban.
Phân tích hiệu quả kinh tế (ROI)
- Đầu tư ban đầu: Tiết kiệm hơn 80.000.000 VNĐ chi phí mua tổng đài phần cứng và bản quyền phần mềm cho quy mô doanh nghiệp vừa (50-100 máy nhánh).
- Chi phí vận hành: Giảm 70% cước phí điện thoại hàng tháng nhờ định tuyến thông minh qua trung kế SIP giá rẻ và miễn phí 100% các cuộc gọi nội bộ liên chi nhánh.
- Thời gian hoàn vốn (Payback Period): Ước tính từ 3 đến 6 tháng sau khi đưa vào vận hành thực tế.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật
- Mô hình nghiên cứu mới dừng lại ở việc thử nghiệm trên môi trường mạng ảo hóa cục bộ (Host-only Network), chưa kiểm thử đầy đủ trên môi trường Internet thực tế với độ trễ cao và tỉ lệ mất gói (Packet Loss) phức tạp.
- Hệ thống chưa tích hợp công nghệ tổng hợp tiếng nói tự nhiên (Text-To-Speech) tiếng Việt chất lượng cao và công nghệ nhận dạng giọng nói (Automated Speech Recognition - ASR) để thay thế hoàn toàn bàn phím DTMF.
- Chưa có giao diện Web quản trị thời gian thực (Web Dashboard) để cấu hình trực quan máy nhánh và trích xuất báo cáo cuộc gọi.
Hướng phát triển đề tài
- Nâng cấp phiên bản Asterisk mới hơn (Asterisk 18/20 LTS) và chuyển đổi hoàn toàn từ driver cũ
chan_sip sang ngăn xếp giao thức mới chan_pjsip chuẩn hóa theo RFC hiện đại.
- Tích hợp công nghệ nhận dạng giọng nói tiếng Việt (ASR) thông qua các API như Google Cloud Speech-to-Text hoặc FPT AI để xây dựng trợ lý ảo tương tác bằng giọng nói thông minh (VoiceBot).
- Đóng gói toàn bộ hệ thống (Asterisk, PHP-FPM, Nginx, MySQL) vào kiến trúc Container (Docker/Kubernetes) để dễ dàng triển khai tự động (CI/CD) và mở rộng linh hoạt trên hạ tầng điện toán đám mây (AWS, Google Cloud).
Đối tượng hưởng lợi
+-------------------------------------------------------------------------+
| ĐỐI TƯỢNG HƯỞNG LỢI |
+-------------------------------------------------------------------------+
| [ SINH VIÊN & NGHIÊN CỨU SINH ] |
| -> Tài liệu thực hành chuẩn mực về báo hiệu VoIP (SIP/SDP/RTP). |
| -> Mã nguồn mẫu về lập trình AGI với PHPAGI và cơ sở dữ liệu. |
| |
| [ KỸ SƯ HỆ THỐNG & DEVOPS ] |
| -> Hướng dẫn từng bước cấu hình Asterisk và bắt gói tin với Sngrep. |
| -> Kỹ thuật xử lý vấn đề NAT Traversal và tối ưu hóa Codec viễn thông. |
| |
| [ DOANH NGHIỆP VỪA VÀ NHỎ (SMEs) ] |
| -> Giải pháp tổng đài nội bộ và CSKH tự động với chi phí tối ưu. |
| -> Khả năng mở rộng quy mô linh hoạt không phụ thuộc nhà cung cấp. |
+-------------------------------------------------------------------------+
Câu hỏi thường gặp
1. Yêu cầu phần cứng và hệ điều hành tối thiểu để triển khai hệ thống là gì?
Hệ thống yêu cầu máy chủ (vật lý hoặc VPS) tối thiểu 1 vCPU (tần số 2.0 GHz trở lên), 2 GB RAM, 20 GB dung lượng ổ cứng HDD/SSD, chạy hệ điều hành Linux (CentOS 6/7/8 hoặc Ubuntu Server 18.04/20.04/22.04 LTS).
2. Asterisk xử lý bài toán xuyên NAT (NAT Traversal) như thế nào khi client ở mạng ngoài?
Trong tệp cấu hình sip.conf, cần kích hoạt các tham số nat=force_rport,comedia, đồng thời cấu hình địa chỉ IP Public của Server qua chỉ thị externip (hoặc externhost) và dải mạng cục bộ qua chỉ thị localnet để máy chủ định tuyến chính xác luồng dữ liệu RTP Media.
3. Có thể mở rộng để Asterisk tích hợp với tổng đài cơ quan cũ (Analog PBX) được không?
Hoàn toàn được. Cần trang bị thêm các thiết bị phần cứng chuyển đổi tín hiệu như Card DAHDI gắn khe PCI/PCIe (chứa các module FXO kết nối trung kế bưu điện hoặc FXS kết nối điện thoại analog), hoặc trang bị VoIP Gateway (FXS/FXO Gateway) giao tiếp qua cổng mạng Ethernet.
4. Giao thức IAX2 có ưu điểm gì vượt trội hơn so với giao thức SIP?
Giao thức IAX2 (Inter-Asterisk Exchange v2) sử dụng duy nhất một cổng UDP (Cổng 4569) cho cả thông tin báo hiệu lẫn luồng thoại RTP (thay vì SIP phải dùng 5060 cho báo hiệu và hàng nghìn cổng cho RTP), giúp đi qua tường lửa/NAT cực kỳ dễ dàng và hỗ trợ kỹ thuật nén Trunking (gom nhiều cuộc gọi vào một luồng đơn) giúp tiết kiệm băng thông mạng đáng kể.
5. Dịch vụ VAS xây dựng bằng PHPAGI có đáp ứng được số lượng truy cập lớn cùng lúc không?
Mỗi khi có cuộc gọi kích hoạt AGI, Asterisk sẽ khởi tạo một tiến trình (Process) thực thi PHP riêng biệt. Đối với các hệ thống tổng đài quy mô lớn hàng trăm cuộc gọi đồng thời, nên chuyển đổi mô hình từ Standard AGI sang FastAGI (chạy dưới dạng AGI Daemon thường trực qua TCP Socket) để giảm thiểu chi phí khởi tạo tiến trình của hệ điều hành.
Kết luận
Đồ án tốt nghiệp "Xây dựng tổng đài nội bộ trên nền Asterisk và xây dựng các dịch vụ giá trị gia tăng" đã giải quyết thành công và toàn diện bài toán xây dựng một hạ tầng viễn thông IP-PBX hoàn chỉnh, hiện đại và tiết kiệm chi phí cho doanh nghiệp.
Thông qua việc kết hợp mã nguồn mở Asterisk 13.x với giao thức SIP, công cụ phân tích Sngrep, hệ quản trị cơ sở dữ liệu MySQL và thư viện lập trình PHPAGI, đề tài đã chứng minh tính khả thi và hiệu quả vượt trội của công nghệ VoIP trong việc hiện đại hóa các kịch bản tương tác thoại tự động (IVR/VAS).
Kết quả nghiên cứu và mã nguồn cấu hình của đồ án là tài liệu tham khảo có giá trị ứng dụng cao cho sinh viên ngành Điện tử - Viễn thông, Công nghệ Thông tin cũng như các kỹ sư mạng viễn thông trong quá trình thiết kế, triển khai và vận hành hệ thống thông tin doanh nghiệp trong kỷ nguyên chuyển đổi số.