Máy chủ tổng đài thoại (FusionPBX và FreePBX)

Một phần của tài liệu Giải pháp mở rộng hệ thống VOIP với giao thức SIP và các phần mềm mã nguồn mở cho hạ tầng nghiệp vụ ngành thuế (Trang 47)

- Phần mềm tổng đài FreePBX [8]: là một mã nguồn mở dựa trên web GUI (giao diện đồ họa người dùng), điều khiển và quản lý tổng đài Asterisk. FreePBX được cấp phép theo giấy phép GNU General Public và là một thành phần của FreePBX Distro (một hệ thống với các PBX CentOS linux cài đặt sẵn). FreePBX ra phiên bản đầu tiên vào năm 2004 và được đăng ký bởi công ty Digium. Năm 2013 và 2015, FreePBX lần lượt được tiếp quản bởi công ty Schmooze.Com và Sangoma Technologies Corporation. Phiên bản hiện tại của FreePBX là: FreePBX 2.11 - hỗ trợ cho Asterisk 11 và FreePBX 12 bản BETA hỗ trợ cho Asterisk 12. Trong phần triển khai này tôi sử dụng phiên bản FreePBX 2.11 để cài đặt và cấu hình tích hợp với hệ thống tổng đài hiện có của Tổng cục Thuế, thông số máy chủ FreePBX theo bảng 4.1 bên dưới.

Bảng 4.1. Bảng thông số máy chủ tổng đài FreePBX Máy chủ Tổng đài FreePBX

Server BL460 G1 OS SHMZ release 6.5 (Final) CPU 2 Cores, 2,66 GHz Ram 8Gb HDD 2 x 73Gb IP 10.64.90.250 Netmask 255.255.255.0 Gateway 10.64.90.1

- Phần mềm tổng đài FusionPBX [10]: cũng tương tự như FreePBX, FusionPBX là một dự án mã nguồn mở dựa trên web GUI được phát triển từ năm 2009 bởi một nhóm các nhà phát triển. FusionPBX có tính năng phong phú, đa nền

48

tảng, tùy biến cao, khả năng mở rộng và giao diện web nhanh để quản lý FreeSWITCH. Dự án được bắt đầu với gói FreeSWITCH trên pfSense, được phát triển trên nhiều hệ điều hành với các phiên bản khác nhau của Linux, BSD, Windows, MAC OS X và nhiều hệ điều hành khác. Việc lưu trữ dữ liệu được chuyển từ lưu trữ dữ liệu XML của pfSense đến PHP Data Objects (PDO), cung cấp khả năng sử dụng SQLite, PostgreSQL, MySQL và các công cụ dữ liệu khác. Phiên bản mới nhất được phát triển là 3.8, trong phần triển khai này tôi sử dụng phiên bản 3.6.3 để cài đặt và kiểm tra năng lực hệ thống, thông số máy chủ FusionPBX theo bảng 4.2 bên dưới.

Bảng 4.2. Bảng thông số máy chủ tổng đài FusionPBX Máy chủ Tổng đài FusionPBX

Server BL460 G1 OS Ubuntu 14.04 CPU 2 Cores, 2,66 GHz Ram 8Gb HDD 2 x 73Gb IP 10.64.90.252 Netmask 255.255.255.0 Gateway 10.64.90.1 4.3.2. Máy chủ solarwinds

- Phần mềm Solarwinds: Solarwinds [7] là bộ công cụ hỗ trợ đắc lực cho nhà quản trị mạng nhằm phân tích, giám sát, cũng như các công cụ quản lý việc thực thi trên hệ thống mạng. Trong tài liệu này tôi chỉ nghiên cứu và sử dụng bộ công cụ VoIP and Network Quality Manager (VNQM) nhằm mục đích đánh giá chất lượng dịch vụ VoIP trên hệ thống tổng đài VoIP. Solarwinds được kết nối đến tổng đài CUCM: sử dụng giao thức SNMP để lấy các thông tin trạng thái của máy chủ; các thông tin về Call Detail Records (CDR) và Call Management Records (CMR) để đánh giá chất lượng cuộc gọi. Các thành phần chính phục vụ đánh giá chất lượng trong VNQM gồm:

 Latency: độ trễ là thước đo của sự khác biệt về thời gian khi một người nói và một người nghe nhận được giọng nói đó. Độ trễ mạng quá nhiều có thể gây ra những khoảng trống nhận thấy và các mất mát trong truyền thoại.

 Jitter: là thước đo của sự thay đổi trong độ trễ mạng. Trong các cuộc gọi điện thoại VoIP, người dùng trải nghiệm Jitter như tiếng ồn mất tập trung,

49

nhấp chuột. Để đảm bảo chất lượng có thể chấp nhận được trong dịch vụ VoIP thì jitter nên được cô lập và giải quyết.

 Packet Loss: mất gói tin là một thước đo định lượng mất mát thông tin qua mạng. Mất gói tin là không thể tránh khỏi trong bất kỳ môi trường mạng nào nên mục tiêu là luôn luôn xác định nơi các gói tin bị mất trong qua trình truyền tải. Do đó, bạn có thể hành động để giảm thiểu tổn thất thông tin và duy trì QoS cao cho dịch vụ của bạn.

 Mean Opinion Score (MOS): là thước đo tiêu chuẩn về chất lượng cuộc gọi thể hiện trên một quy mô tăng chất lượng cảm nhận (từ 1 đến 5). MOS được tính toán như một thuật toán tiêu chuẩn của ITU liên quan đến các codec trong mạng VoIP và các giá trị độ trễ, jitter và mất gói tin. Độ trễ, jitter và mất gói tin là số lượng biến đo trong thời gian thực để tính toán MOS. MOS phản ánh chất lượng cuộc gọi theo bảng 4.3 sau:

Bảng 4.3. Bảng chất lượng cuộc gọi

Chất lượng cuộc gọi MOS

Rất hài lòng 4,3 - 5,0

Hài lòng 4,0 - 4,3

Một số người dùng hài lòng 3,6 - 4,0 Nhiều người dùng không hài lòng 3,1 - 3,6 Gần như tất cả người dùng không hài lòng 2,6 - 3,1

Không được đề xuất 1,0 - 2,6

- Thông số máy chủ solarwinds theo bảng 4.4 bên dưới.

Bảng 4.4. Bảng thông số máy chủ giám sát Solarwinds Máy chủ giám sát solarwinds

Server VMware Virtual Platform

OS Windows Server 2008 R2 Ent

CPU 4 Cores, 2,4 GHz Ram 8Gb HDD 200Gb IP 10.64.90.251 Netmask 255.255.255.0 Gateway 10.64.90.1

50

4.3.3. Phần mềm SIPp

- SIPp [4] là một công cụ mã nguồn mở miễn phí dùng để kiểm tra hiệu suất của giao thức SIP. Nó bao gồm một vài kịch bản cơ bản (UAC và UAS) dùng để thiết lập và tạo ra các phiên đa cuộc gọi với các phương thức INVITE và BYE. Nó cũng có thể đọc các tập kịch bản XML để mô tả cấu hình kiểm tra hiệu năng riêng cho từng trường hợp. SIPp có thể được sử dụng để kiểm tra các hệ thống thực chạy SIP như SIP Proxies, B2BUAs, SIP media servers, SIP PBX..., nó cũng được sử dụng để giả lập hàng nghìn cuộc gọi trong hệ thống SIP của bạn.

- Một số tính năng nâng cao khác bao gồm hỗ trợ cho IPv6, TLS, SCTP, xác thực SIP, kịch bản có điều kiện, truyền tải UDP, các biến đặc biệt cho cuộc gọi. Nó có thể sử dụng các file mở rộng CSV để giả lập người dùng thực tế. SIPp cũng có thể gửi các lưu lượng media qua RTP, media ở đây có thể là audio hoặc video.

- Trong luận văn này tôi sử dụng SIPp phiên bản 3.3 để thực hiện đánh giá hiệu năng các tổng đài, thông số máy chủ chạy SIPp:

Bảng 4.5. Bảng thông số máy chủ chạy SIPp Máy chủ giám sát solarwinds

Server Laptop OS Ubuntu Server 12.04 CPU 4 Cores, 2,6 GHz Ram 8Gb HDD 500Gb IP 10.64.29.117 Netmask 255.255.255.0 Gateway 10.64.29.1

51 4.4. Đánh giá hệ thống

4.4.1. Đánh giá năng lực hệ thống 4.4.1.1. Mô hình đánh giá 4.4.1.1. Mô hình đánh giá

Hình 4.2. Mô hình đánh giá năng lực hệ thống

4.4.1.2. Thực hiện đánh giá

Với mô hình trên ta đánh giá lần lượt các tổng đài FusionPBX và FreePBX, kịch bản đánh giá được thực hiện như sau:

- Luồng dữ liệu: SIPp thực hiện cuộc gọi (có xác thực); Thực hiện cuộc gọi đến số cố định (số cố định này được cấu hình trả lời tự động khi thực hiện kiểm thử năng lực hệ thống) qua FreePBX (hoặc FusionPBX); Chạy media qua RTP với file g711a.pcap (mặc định có trên SIPp); Khoảng thời gian thực hiện một cuộc gọi trong 60s (giả định với một cuộc gọi trung bình trong khoảng 1 phút).

- Xác thực cuộc gọi: sử dụng file .CSV chứa các thông tin tài khoản đính kèm (tài khoản đã được tạo trên hệ thống tổng đài) trong câu lệnh SIPp để xác thực khi có yêu cầu. Các thông tin chính gồm: Số gọi đi, IP tổng đài, username, password và số được gọi đến.

- Số lượng cuộc gọi: Dự kiến có 600 số điện thoại trên tổng đài mới bao gồm: 570 số cho Cục Thuế (trung bình mỗi Cục Thuế sẽ có 9 số, riêng Hà Nội, Hồ Chí Minh và Đà Nẵng sẽ có 10 số), 30 số cho đội hỗ trợ tại Tổng cục Thuế. Thời gian thực hiện một cuộc gọi trung bình 60s. Do đó, lần lượt thực hiện đánh giá tải với 10%, 20%, 30% và 50% số cuộc gọi đồng thời theo cách tính sau:

 Với 10% trong 600 số thì có 60 số thực hiện cuộc gọi đồng thời (60 số luôn gọi trong vòng 60s).

 Với 20% trong 600 số thì có 120 số thực hiện cuộc gọi đồng thời.

 Với 30% trong 600 số thì có 180 số thực hiện cuộc gọi đồng thời.

 Với 50% trong 600 số thì có 300 số thực hiện cuộc gọi đồng thời.

52

 Với 100% trong 600 số thì có 600 số thực hiện cuộc gọi đồng thời.

- Mỗi lần kiểm tra tải thực hiện 1000 cuộc gọi để đánh giá xem có bao nhiêu cuộc gọi thành công hay lỗi.

Các tham số cơ bản của kịch bản kiểm thử theo bảng 4.6 dưới đây. Bảng 4.6. Các tham số thực hiện kiểm thử hiệu năng % Số điện thoại

đang thực hiện gọi

Số cuộc gọi đồng thời/60s

Số cuộc gọi được thực hiện

Tham số thực hiện (theo dòng lệnh SIPp) 10% 60 1000 r = 1, m =1000 20% 120 1000 r = 2, m =1000 30% 180 1000 r = 3, m =1000 50% 300 1000 r = 5, m =1000 80% 480 1000 r = 8, m =1000 100% 600 1000 r = 10, m =1000

Với r: là số cuộc gọi được thực hiện trong vòng 1s, m là tổng số cuộc gọi. Một số tham số lấy log trong quá trình chạy SIPP gồm:

- trace_screen: dump trạng thái màn hình kết quả của quá trình chạy SIPp, sử dụng để thống kê số cuộc gọi thành công, thất bại và các tham số response time.

- trace_rtt: thống kê các response theo kịch bản, được sử dụng để vẽ biểu đồ response time theo số lượng cuộc gọi.

- trace_err: đưa ra các thông tin lỗi gặp phải trong quá trình chạy SIPp.

4.4.1.3. Kết quả

Kết quả thực hiện kiểm thử hiệu năng theo kịch bản trên đối với hai tổng đài mã nguồn mở được cài đặt như sau:

- Tổng đài FreePBX: kết quả kiểm thử hiệu năng được tổng hợp theo bảng 4.7 và biểu đồ thời gian đáp ứng cho các cuộc gọi theo hình 4.3.

Bảng 4.7. Kết quả kiểm thử hiệu năng trên tổng đài FreePBX Số cuộc gọi đồng thời trong 60s Tổng số cuộc gọi được thực hiện Số cuộc gọi thành công Số cuộc gọi không thành công Trung bình 01 CPU được sử dụng 60 1000 1000 0 4,2% 120 1000 1000 0 7% 180 1000 1000 0 12,8%

53

300 1000 1000 0 22,2%

480 1000 1000 0 33,6%

600 1000 984 16 38,4%

Hình 4.3. Thời gian đáp ứng cho các cuộc gọi của FreePBX

- Tổng đài FusionPBX: kết quả kiểm thử hiệu năng được tổng hợp theo bảng 4.8 và biểu đồ thời gian đáp ứng cho các cuộc gọi theo hình 4.4.

Bảng 4.8. Kết quả kiểm thử hiệu năng trên tổng đài FusionPBX Số cuộc gọi đồng thời trong 60s Tổng số cuộc gọi được thực hiện Số cuộc gọi thành công Số cuộc gọi không thành công Trung bình 01 CPU được sử dụng (max) 60 1000 1000 0 5,1% 120 1000 1000 0 12,1% 180 1000 1000 0 19,3% 300 1000 1000 0 35,1%

54

480 1000 1000 0 56,5%

600 1000 895 105 59,6%

Hình 4.4. Thời gian đáp ứng cho các cuộc gọi của FusionPBX

Đối với các trường hợp chạy 600 cuộc gọi đồng thời trong vòng 60s, do có số lượng cuộc gọi không thành công nên kết quả trên là kết quả trong trường hợp có lượng cuộc gọi không thành công ở mức giữa (trong 03 cuộc kiểm thử).

Nhìn vào biểu đồ thời gian đáp ứng, ta thấy: đối với FreePBX thời gian đáp ứng trung bình ở mức 30 - 40ms tốt hơn so với FusionPBX trung bình ở mức 60 - 70ms. Tuy nhiên, ở mức cao thì có một số cuộc gọi của FreePBX thời gian đáp ứng lên đến gần 700ms so với khoảng 350 của FusionPBX.

Kết luận: Với các kết quả đạt được theo thống kê ở trên, có thể kết quả kiểm thử chưa chính xác hoàn toàn do phụ thuộc vào nhiều yếu tố (môi trường kiểm thử, cấu hình kiểm thử...). Tuy nhiên, tôi có thể kết luận rằng hai tổng đài này đều phù hợp cho giải pháp ban đầu của tôi đưa ra. Để lựa chọn một trong hai tổng đài tiếp tục thực hiện các bước tiếp theo, tôi chọn tổng đài FreePBX do có thời gian đáp ứng trung bình và cuộc gọi không thành công ít hơn so với tổng đài FusionPBX.

55

4.4.2. Đánh giá chất lượng cuộc gọi 4.4.2.1. Mô hình đánh giá 4.4.2.1. Mô hình đánh giá

IP

IP

Hình 4.5. Mô hình đánh giá chất lượng cuộc gọi

4.4.2.2. Thực hiện đánh giá

Các thành phần trong mô hình đánh giá theo hình 4.5 gồm: Tổng đài FreePBX; máy chủ chạy Solarwinds; các softphone hỗ trợ giao thức báo hiệu SIP; hệ thống tổng đài đang chạy của Tổng cục Thuế với các IP Phone.

Sau khi các hệ thống đã được cài đặt hoàn chỉnh, tôi tiến hành: khai báo và kết nối từ Solarwinds vào CUCM để lấy các thông tin phục vụ đánh giá (từ SNMP và các thông tin từ CDR, CMR); tạo các tài khoản trên FreePBX và thực hiện trunking giữa hai hệ thống tổng đài (CUCM và FreePBX).

Trong phần đánh giá này tôi thực hiện đánh giá theo kịch bản: thực hiện 10 cuộc gọi giữa hai IP Phone trên hệ thống CUCM và thực hiện 10 cuộc gọi từ Softphone trên hệ thống FreePBX đến IP Phone trên hệ thống CUCM; các thông tin thu được sẽ được Solarwinds xử lý để đưa ra điểm chất lượng theo từng cuộc gọi (sử dụng điểm MOS theo bảng 4.3).

4.4.2.3. Kết quả

Chất lượng cuộc gọi được thực hiện giữa hai thiết bị IP Phone trên hệ thống CUCM.

Bảng 4.9. Bảng kết quả cuộc gọi giữa 2 IP Phone Call Origin Call Destination Call Status Jitter (ms) Latency (ms) Packet Loss (%) MOS (1-5) 46468 46336 Success 1 0 0 4,5

56 46468 46509 Success 0 0 0 4,5 46468 46401 Success 0 0 0 4,5 46468 46509 Success 1 0 0 0,0 46468 46803 Success 1 0 0 4,5 46468 46555 Success 0 0 0 4,5 46468 46509 Success 0 0 0 4,5 46468 46509 Success 0 0 0 4,5 46468 46504 Success 0 0 0 4,5 46468 46422 Success 1 0 0 4,5

Chất lượng cuộc gọi được thực hiện giữa softphone trên hệ thống FreePBX và IP Phone trên hệ thống CUCM.

Bảng 4.10. Bảng kết quả cuộc gọi giữa hệ thống CUCM và FreePBX Call Origin Call Destination Call Status Jitter (ms) Latency (ms) Packet Loss (%) MOS (1-5) 1000 46456 Success 3 0 0 4,5 1000 48888 Success 16 0 0 4,5 1000 46468 Success 4 0 0 4,5 1000 46468 Success 4 0 0 0,0 1000 46468 Success 3 0 0 4,5 1000 48888 Success 5 0 0 4,5 1000 48888 Success 5 0 0 4,5 1000 48888 Success 5 0 0 4,5 1000 48888 Success 4 0 0 4,5 1000 48888 Success 3 0 0 4,5

Thông tin các trường theo bảng trên: - Call Origin: số gọi đi.

- Call Destination: số được gọi đến. - Call status: trạng thái cuộc gọi.

- Các tham số đánh giá chất lượng cuộc gọi đính kèm gồm: Jitter, Latency, Packet Loss và điểm đánh giá MOS.

57

Đối với các trường hợp điểm MOS là 0,0 trong bảng 4.9 và bảng 4.10 là các trường hợp mà cuộc gọi chưa đến 8s (khi người nhận bắt đầu nhấc máy) nên chưa được đánh giá.

Căn cứ theo bảng chất lượng cuộc gọi (bảng 4.3) thì các kết quả trên đều đáp ứng tốt về chất lượng cuộc gọi (mức rất hài lòng). Tuy nhiên, việc đánh giá vẫn còn khá hạn chế do chỉ thực hiện kiểm thử trong hệ thống mạng người dùng tại Tổng cục mà chưa qua môi trường mạng hạ tầng truyền thông ngành Tài chính.

4.5. Thực hiện đánh giá chất lượng hỗ trợ

Trong chương 1, tôi đã đưa ra một số vấn đề còn tồn tại và cần có giải pháp để khắc phục. Trong đó, việc hỗ trợ người dùng (hỗ trợ về ứng dụng, hệ thống phần cứng và phần mềm) tại các Cục Thuế cũng hết sức quan trọng nhưng chưa được đánh giá chính xác chất lượng hỗ trợ. Để giải quyết vấn đề trên, trong phần này tôi dự kiến giải pháp thực hiện như sau:

- Lập danh sách đội hỗ trợ người dùng, có kế hoạch đánh số và quay số cho từng cán bộ hỗ trợ cụ thể. Kế hoạch quay số sẽ đề ra các quy tắc bấm số khi thực hiện các cuộc gọi. Kế hoạch đánh số và quay số sẽ ảnh hưởng tới toàn bộ các thông số, cấu hình định tuyến của hệ thống.

- Tạo các tài khoản (các số điện thoại) cho đội hỗ trợ trên hệ thống FreePBX, kích hoạt tính năng record cho các tài khoản này. Các thông tin chính của bản ghi record trên hệ thống FreePBX được liệt kê theo bảng 4.11.

Bảng 4.11. Các thông số chính trong bản ghi CDR Reports

Tên trường Chức năng

Call Date

Đưa ra ngày, tháng, năm của cuộc gọi và thời gian bắt đầu gọi

Recording

Là nơi chưa file được ghi âm, người quản trị có thể

Một phần của tài liệu Giải pháp mở rộng hệ thống VOIP với giao thức SIP và các phần mềm mã nguồn mở cho hạ tầng nghiệp vụ ngành thuế (Trang 47)