1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn thạc sĩ Kỹ thuật điện tử: Xây dựng hệ thống VOIP và phát triển Module quản lý trên Board Raspberry PI

76 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Hiện nay, các hệ thống tổng đài VoIP IP-PBX rất đa dạng về nhãn hiệu và chủng loại nhưng giá thành vẫn còn khá cao so với khả năng đầu tư của các doanh nghiệp nhỏ, các cơ quan, công sở n

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOA

TRÊN BOARD RASPBERRY PI

Trang 2

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOA

BOARD RASPBERRY PI

Trang 3

Công trình được hoàn thành tại: Trường Đại học Bách Khoa – ĐHQG-HCM

Cán bộ hướng dẫn khoa học: TS LƯU THANH TRÀ

Cán bộ chấm nhận xét 1: TS ĐỖ HỒNG TUẤN

Cán bộ chấm nhận xét 2: PGS.TS PHẠM HỒNG LIÊN

Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày 07 tháng 01 năm 2015

Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: (Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ) 1 TS Lương Vinh Quốc Danh

2 TS Huỳnh Phú Minh Cường 3 TS Đỗ Hồng Tuấn

4 PGS.TS Phạm Hồng Liên 5 TS Hà Hoàng Kha

Xác nhận của Chủ tịch Hội đồng đánh giá luận văn và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)

TS Lương Vinh Quốc Danh

Trang 4

ĐẠI HỌC QUỐC GIA TP.HCM

TRƯỜNG ĐẠI HỌC BÁCH KHOA

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc lập - Tự do - Hạnh phúc

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Ngày, tháng, năm sinh: 06-07-1989 Nơi sinh: Hậu Giang

I TÊN ĐỀ TÀI: Xây dựng hệ thống VoIP và phát triển module quản lý trên board

Raspberry Pi

NHIỆM VỤ VÀ NỘI DUNG: Thiết kế, xây dựng hệ thống VoIP và nghiên cứu giải

pháp phát triển một module quản lý khách sạn trên board Raspberry Pi

II NGÀY GIAO NHIỆM VỤ: ngày 10 tháng 02 năm 2014 III NGÀY HOÀN THÀNH NHIỆM VỤ: ngày 14 tháng 11 năm 2014 IV CÁN BỘ HƯỚNG DẪN: TS Lưu Thanh Trà

Tp HCM, ngày tháng năm

TRƯỞNG KHOA

Trang 5

LỜI CẢM ƠN Trước tiên tôi xin chân thành cảm ơn Quý thầy cô của trường Đại học Bách Khoa

TP.HCM đã tận tình truyền đạt kiến thức, kinh nghiệm cho tôi trong suốt quá trình học

tập tại trường Tôi rất cảm ơn Thầy TS Lưu Thanh Trà đã tận tình hướng dẫn tôi hoàn thành luận văn này Tôi cũng xin cảm ơn Bộ môn Viễn Thông, Phòng Đào Tạo Sau Đại Học đã rất quan tâm giải quyết kịp thời các vấn đề học vụ trong suốt quá trình học

tập

Tôi cũng xin cảm ơn Lãnh đạo Sở Thông tin và Truyền thông tỉnh Hậu Giang đã tạo điều kiện cho tôi được tham dự khóa học, cảm ơn các đồng nghiệp trong cơ quan, đặc biệt là Phòng Bưu chính Viễn thông đã chia sẻ, động viên và gánh vác phần công việc

của tôi để tôi có thêm thời gian thực hiện luận văn

Tôi đặc biệt cảm ơn cha, mẹ tôi đã quan tâm, lo lắng, tạo mọi điều kiện tốt nhất để tôi

có thể hoàn thành khóa học này

Lê Duy

Trang 6

TÓM TẮT ĐỀ TÀI

Trong những năm gần đây, cùng với sự phát triển mạnh mẽ của mạng internet thì các ứng dụng Voice trên nền IP cũng phát triển nhanh chóng Với lợi thế hạ tầng mạng ngày càng được cải thiện, tốc độ đường truyền ngày càng tăng, VoIP đang có được nhiều sự quan tâm và ứng dụng trong thực tế vì những lợi ích mà nó mang lại, nhất là về mặt giá thành

Hiện nay, các hệ thống tổng đài VoIP (IP-PBX) rất đa dạng về nhãn hiệu và chủng loại nhưng giá thành vẫn còn khá cao so với khả năng đầu tư của các doanh nghiệp nhỏ, các cơ quan, công sở nhà nước Do đó, các đơn vị này vẫn sử dụng nhiều kênh thoại PSTN thế hệ cũ riêng rẽ hơn là đầu tư một hệ thống tổng đài IP-PBX Thêm vào đó, việc phát triển, mở rộng các chức năng của các hệ thống IP – PBX còn rất hạn chế và chưa được quan tâm đúng mức Luận văn này sẽ tập trung giải quyết vấn đề trên bằng cách xây dựng hệ thống tổng đài VoIP sử dụng phần mềm nguồn mở Asterisk kết hợp với board Raspberry Pi có giá thành tương đối rẻ (khoảng 45$), cùng với đó là phát triển module quản lý tích hợp vào phần mềm tổng đài phù hợp với nhu cầu của đơn vị sử dụng là các doanh nghiệp, khách sạn vừa và nhỏ

Trang 7

LỜI CAM ĐOAN

Tôi xin cam đoan rằng đây là công trình nghiên cứu của tôi Các nội dung nghiên cứu và kết quả trong đề tài này là trung thực Những dữ liệu phục vụ cho việc phân tích, nhận xét, đánh giá được chính tác giả thu thập từ các nguồn khác nhau có ghi trong phần tài liệu tham khảo Ngoài ra, trong đề tài còn sử dụng một số nhận xét, đánh giá cũng như số liệu của các tác giả khác, cơ quan tổ chức khác và đều có chú thích nguồn gốc sau mỗi trích dẫn để thuận tiện tra cứu, kiểm chứng

Tôi xin hoàn toàn chịu trách nhiệm về lời cam đoan này

Thành phố Hồ Chí Minh, ngày 18 tháng 12 năm 2014

TÁC GIẢ

Lê Duy

Trang 8

MỤC LỤC

MỞ ĐẦU 1

Chương 1: TỔNG QUAN 2

1.1 Giới thiệu 2

1.2 Khó khăn trong việc mở rộng các tính năng của hệ thống VOIP 3

1.3 Một số công trình nghiên cứu có liên quan 4

Chương 2: GIẢI PHÁP XÂY DỰNG HỆ THỐNG VOIP VÀ PHÁT TRIỂN MODULE QUẢN LÝ TRÊN BOARD RASPBERRY PI 6

2.1 Tổng quan board Raspberry Pi 6

2.2 Các giải pháp triển khai VoIP trên board Raspberry Pi 8

2.2.1 XiVO 8

2.2.2 uElastix 10

2.3 Giải pháp phát triển module tích hợp vào uElastix 11

2.3.1 Asterisk Gateway Interface 11

2.3.2 Framework module của uElastix 18

2.3.3 Tổng quan về Elastix Developer 20

2.3.4 Thư viện các lớp (class) thông dụng được hỗ trợ bởi Elastix 24

Chương 3: TRIỂN KHAI GIẢI PHÁP XÂY DỰNG HỆ THỐNG VOIP TRÊN NỀN ELASTIX VÀ TÍCH HỢP MODULE QUẢN LÝ LÊN BOARD RASPBERRY PI 33

3.1 Cài đặt uElastix trên board Raspberry Pi: 33

3.2 Thiết kế module quản lý khách sạn tích hợp vào uElastix 36

Trang 9

3.2.1 Ý tưởng thiết kế 36

3.2.2 Thiết kế module QLKS 37

3.2.3 Thiết kế module “Loại phòng” 39

3.2.4 Thiết kế module “Thêm phòng” 41

3.2.5 Thiết kế module “Tổng quát” 41

3.2.6 Thiết kế module “Thuê phòng” 43

3.2.7 Thiết kế module “Tình trạng phòng” 44

3.2.8 Thiết kế module “Trả phòng” 44

3.2.9 Thiết kế module “Giao diện chính” 46

Chương 4: ĐÁNH GIÁ KẾT QUẢ CỦA GIẢI PHÁP TRIỂN KHAI HỆ THỐNG VOIP TRÊN BOARD RASPBERRY PI VÀ PHÁT TRIỂN MODULE TÍCH HỢP 47

4.1 Đánh giá hoạt động của Elastix trên board Raspberry Pi 47

4.2 Giải pháp phát triển module tích hợp 53

KẾT LUẬN 59

Kết luận 59

Hướng phát triển của đề tài 59

TÀI LIỆU THAM KHẢO 60

PHỤ LỤC 61

Trang 10

MỤC LỤC HÌNH

Hình 1.1: Mô hình tổng quát hệ thống IP – PBX 2

Hình 1.2: Tổng đài Panasonic KX – TDE 100 3

Hình 2.1: Sơ đồ các cổng kết nối board Raspberry Pi 6

Hình 2.2: Giao diện XiVO 8

Hình 2.3: Kiến trúc của XiVO 9

Hình 2.4: Trang chủ dự án phát triển của Xivo cho Raspberry Pi 10

Hình 2.5: Kiến trúc của uElastix 10

Hình 2.6: Minh họa chức năng của AGI trong Asterisk 12

Hình 2.7: Framework module của Elastix 18

Hình 2.8: Nguyên tắc đặt tên file chuyển đổi ngôn ngữ 19

Hình 2.9: Addon Developer – 2.3.0 – 5 trên Elastix Market Place 20

Hình 2.10: Addon Developer – 2.3.0 – 5 sau khi cài đặt thành công 21

Hình 2.11: Giao diện của menu Build Module 22

Hình 2.12: Phần thông tin chung của menu Build Module 22

Hình 2.13: Các vị trí module trên giao diện Web của Elastix 23

Hình 2.14: Phần lựa chọn vị trí của module 23

Hình 2.15: Các trường lựa chọn khi thiết kế module mức 3 23

Hình 2.16: Các lớp được hỗ trợ bởi Elastix 25

Hình 3.1: Định dạng phân vùng cài đặt đúng 33

Hình 3.2: Tạo file system trên 2 phân vùng 34

Hình 3.3: Giải nén file BOOT.tar.gz 34

Hình 3.4: Các giai đoạn khởi động của uElastix 35

Hình 3.5: Màn hình đăng nhập của uElastix 35

Hình 3.6: Các module thực hiện chức năng quản lý khách sạn 36

Hình 3.7: Cơ sở dữ liệu cần thiết đã được tạo thành công 39

Hình 3.8: Phác họa thiết kế của module “Loại phòng” 40

Trang 11

Hình 3.9: Phác họa thiết kế của module “Thêm phòng” 41

Hình 3.10: Phác họa thiết kế của module “Tổng quát” 42

Hình 3.11: Phác họa thiết kế của module “Thuê phòng” 43

Hình 3.12: Phác họa thiết kế của module “Tình trạng phòng” 44

Hình 3.13: Phác họa thiết kế của module “Trả phòng” 45

Hình 3.14: Phác họa thiết kế của module “Giao diện chính” 46

Hình 4.1: Giao diện Elastix sau khi cài đặt thành công trên board Raspberry Pi 47

Hình 4.2: Giao diện của Developer sau khi được cài đặt thành công 48

Hình 4.3: Tạo 2 extension 101, 102 để thực hiện cuộc gọi 49

Hình 4.4: Thiết lập thông số cho ext 101 trên softphone X – lite 3.0 49

Hình 4.5: Thiết lập thông số cho ext 102 trên softphone X – lite 3.0 50

Hình 4.6: ext 101 được đăng ký thành công với uElastix 50

Hình 4.7: ext 102 được đăng ký thành công với uElastix 51

Hình 4.8: ext 101 thông báo đang gọi đến ext 102 51

Hình 4.9: ext 102 thông báo có cuộc gọi đến từ ext 101 52

Hình 4.10: Cuộc gọi diễn ra thông suốt từ ext 101 ở giây thứ 12 52

Hình 4.11: Cuộc gọi diễn ra thông suốt từ ext 102 ở giây thứ 41 53

Hình 4.12: Module “Giao diện chính” 54

Trang 12

FAT File Allocation Table

Trang 13

MỞ ĐẦU

Hệ thống VoIP hiện đang mang lại nhiều lợi ích to lớn cho các cơ quan, doanh nghiệp… Với lợi thế chất lượng dịch vụ ngày càng tăng, chi phí vận hành thấp cùng với khả năng quản lý toàn diện hệ thống, VoIP đang ngày càng được ứng dụng nhiều hơn và dần thay thế mạng PSTN truyền thống

Tuy nhiên, vẫn còn đó một số khó khăn khi triển khai hệ thống VoIP nhất là về chi phí đầu tư ban đầu Hiện nay, các hệ thống tổng đài VoIP chuyển mạch cứng của các hãng tên tuổi còn khá đắt đỏ, hơn nữa, việc phát triển, mở rộng các tính năng của hệ thống tổng đài VoIP để đáp ứng tốt hơn nhu cầu thực tế của các cơ quan, doanh nghiệp…vẫn còn đang bỏ ngỏ

Xuất phát từ tình hình trên, tác giả chọn thực hiện đề tài “Xây dựng hệ thống VoIP và

phát triển module quản lý trên board Raspberry Pi” nhằm đưa ra giải pháp tiết kiệm chi

phí đầu tư ban đầu của hệ thống VoIP cũng như phát triển, mở rộng tính năng của hệ thống tùy theo nhu cầu sử dụng Bố cục của đề tài gồm 4 chương và kết luận, trong đó:

Chương 1: Tổng quan – Giới thiệu về hệ thống VoIP, thực trạng và các giải pháp triển

khai VoIP hiện nay So sánh các giải pháp và lựa chọn giải pháp phù hợp

Chương 2: Giải pháp xây dựng hệ thống VoIP và phát triển module quản lý trên board Raspberry Pi – Giới thiệu board Raspberry Pi, cách triển khai hệ thống VoIP trên nền

Elastix, giải pháp thiết kế, tích hợp module vào Elastix

Chương 3: Triển khai giải pháp xây dựng hệ thống voip trên nền elastix và tích hợp module quản lý lên board Raspberry Pi – Tiến hành triển khai Elastix trên board

Raspberry Pi, xây dựng module dựa trên giải pháp thiết kế đã lựa chọn và tích hợp vào Elastix

Chương 4: Đánh giá giải pháp – Đánh giá kết quả triển khai của giải pháp triển khai hệ

thống VoIP trên board Raspberry Pi và phát triển module tích hợp

Kết luận – Trình bày các kết quả đã đạt được và hướng phát triển của đề tài

Trang 14

Chương 1: TỔNG QUAN

1.1 Giới thiệu

VoIP - Voice over Internet Protocol - công nghệ cho phép truyền thoại sử dụng giao thức IP trên cơ sở hạ tầng của mạng Internet VoIP sử dụng công nghệ chuyển mạch gói thay thế cho các mạng PSTN kiểu cũ sử dụng chuyển mạch kênh, các gói tin thoại được truyền trên mạng Internet do đó làm giảm chi phí phát sinh

Tổng đài điện thoại nội bộ dùng giao thức Internet - Internet Protocol Private Branch eXchange (IP-PBX) được xem như là một mạng điện thoại riêng sử dụng giao thức Internet để thực hiện các cuộc gọi nội bộ hoặc gọi ra bên ngoài Tổng đài IP-PBX chia làm 02 loại: hệ thống tổng đài được đóng gói với cấu hình phần cứng có sẵn và thường có bản quyền kèm theo Các loại tổng đài này do các hãng lớn cung cấp như Siemens, Alcatel-Lucent, Panasonic, Ericsson, LG, Loại phổ biến thứ hai theo xu hướng công nghệ mã nguồn mở vận hành dựa trên các tổng đài IP dạng chuyển mạch mềm (softswitch) Khi đó, phần mềm được cài đặt lên Server/PC, sử dụng các card Voice Gateway để kết nối với mạng PSTN thông qua các port FXO/FXS đầu cuối sử dụng là các điện thoại Analog/IP, phần mềm softphone (phần mềm gọi điện thoại qua máy tính)

Hình 1.1: Mô hình tổng quát hệ thống IP – PBX

Gatew

Internet PSTN

Trang 15

Với lợi thế có chi phí thấp và sử dụng công nghệ mã nguồn mở nên có thể điều chỉnh tùy theo nhu cầu sử dụng, các tổng đài IP chuyển mạch mềm đang được sử dụng rất rộng rãi, trong đó, hệ thống tổng đài chuyển mạch mềm Asterisk được dùng khá phổ biến Hiện nay, Asterisk trên đà phát triển rất nhanh và được rất nhiều doanh nghiệp triển khai ứng dụng cho công ty của mình Đây là xu thế tất yếu của người sử dụng điện thoại, vì các công ty đều có mạng máy tính, cần liên lạc với nhau trong công việc giữa các phòng ban hoặc chi nhánh và cần một chi phí thấp thậm chí không phải tốn chi phí khi thực hiện các cuộc gọi trên mạng nội bộ của công ty

1.2 Khó khăn trong việc mở rộng các tính năng của hệ thống VOIP

Đối với các hệ thống tổng đài chuyển mạch cứng: đa số là sản phẩm của các hãng tên

tuổi như Panasonic, Siemens… được đóng gói với cấu hình phần cứng có sẵn và thường có bản quyền kèm theo Do đó, việc mở rộng, tùy biến các chức năng tùy thuộc vào nhu cầu sử dụng gần như là không thể, cùng với đó là giá thành của các hệ thống này thường khá cao

Hình 1.2: Tổng đài Panasonic KX – TDE 100 Đối với hệ thống tổng đài chuyển mạch mềm: nổi bật nhất là Asterisk, sử dụng

máy tính (PC, Server) cài đặt phần mềm thực hiện chức năng tổng đài điện thoại Các hệ thống này được triển khai trên nền tảng phần mềm nguồn mở nên tiềm năng

Trang 16

phát triển, mở rộng các tính năng là rất lớn Hiện nay, có khá nhiều module với những chức năng khác nhau được phát triển dành riêng cho việc tích hợp vào Asterisk Tuy nhiên, phần lớn các module này không phù hợp với nhu cầu thực tế của các cơ quan, doanh nghiệp ở nước ta nên chưa được ứng dụng rộng rãi Tình trạng này dễ nhận thấy nhất trong lĩnh vực quản lý của các doanh nghiệp kinh doanh hệ thống khách sạn, nơi các hệ thống tổng đài điện thoại VoIP được triển khai rất phổ biến

Từ thực tế đó, giải pháp hiện nay của các cơ quan, doanh nghiệp là phát triển một hệ thống quản lý riêng hoạt động trên hạ tầng mạng LAN song song với hệ thống tổng đài điện thoại VoIP Hạn chế của giải pháp này là chi phí triển khai khá lớn và không tận dụng hết được tài nguyên của hệ thống VoIP Thêm vào đó, đối với các doanh nghiệp, khách sạn vừa và nhỏ, việc đầu tư một hệ thống tổng đài chuyển mạch cứng hoặc một máy server/PC để triển khai hệ thống tổng đài chuyển mạch mềm là khá lãng phí dẫn đến việc đầu tư thêm phần mềm dành riêng cho việc quản lý gần như là không thể

1.3 Một số công trình nghiên cứu có liên quan

Một số các nghiên cứu có liên quan đến hệ thống tổng đài chuyển mạch mềm

Asterisk như [1], tác giả đã nêu lên những khó khăn khi thực hiện nghiên cứu về lý

thuyết và triển khai thực nghiệm hệ thống tổng đài chuyển mạch Asterisk và tiến

hành kết nối client – server với đầy đủ các dịch vụ, tính năng [2], tác giả đã nghiên

cứu triển khai việc tích hợp hệ thống Asterisk vào hệ thống chuyển mạch cứng sẵn có, trong đó tập trung nghiên cứu khả năng tương tác lẫn nhau giữa hai hệ thống này, đây là một hướng đi rất đáng quan tâm trong việc tận dụng các hệ thống chuyển mạch cứng hiện có khi chúng ta muốn triển khai hệ thống chuyển mạch mềm mới để tiết

kiệm chi phí vận hành [3], bài báo trình bày việc thiết kế và thực hiện hệ thống tổng

đài Asterisk cho phép sử dụng điện thoại hoặc laptop kết nối vào mạng không dây để thực hiện cuộc gọi, mục tiêu của bài báo là cấu hình hệ thống để đạt được chất lượng dịch vụ mạng tối ưu, đảm bảo chất lượng cuộc gọi Có thể nói nghiên cứu này

Trang 17

rất cần thiết khi hiện nay mạng không dây được sử dụng rất rộng rãi và một khi áp dụng thành công vào thực tế sẽ mang đến sự tiện lợi rất lớn cho người dùng

Phần lớn các nghiên cứu đều nhấn mạnh vào khả năng tùy biến, phát triển mở rộng của hệ thống tổng đài chuyển mạch mềm nguồn mở Asterisk để đáp ứng tùy theo nhu cầu sử dụng cụ thể Thêm vào đó, các nghiên cứu này đều triển khai Asterisk trên các máy chủ chuyên dụng, sẽ gây lãng phí khi cơ quan, doanh nghiệp có quy mô nhỏ không tận dụng hết khả năng hoạt động của các máy chủ

Từ những lý do trên, luận văn này sẽ tập trung nghiên cứu vào việc triển khai hệ thống VoIP mã nguồn mở Asterisk trên board Raspberry Pi để tiết kiệm chi phí thiết bị phần cứng ban đầu cũng như chi phí vận hành, đồng thời phát triển thêm một module tích hợp để thuận tiện hơn cho việc quản lý của các khách sạn, doanh nghiệp

Trang 18

Chương 2: GIẢI PHÁP XÂY DỰNG HỆ THỐNG VOIP VÀ PHÁT TRIỂN

MODULE QUẢN LÝ TRÊN BOARD RASPBERRY PI

2.1 Tổng quan board Raspberry Pi

Raspberry Pi thực chất là một chiếc máy tính giá rẻ (khoảng 45$ tại Việt Nam) có kích thước nhỏ gọn và cấu hình đủ để sử dụng các ứng dụng cơ bản như một chiếc máy tính cá nhân thông thường với CPU Broadcom ARM 1176JZF - S 700 MHz, RAM 512 MB, hỗ trợ thẻ nhớ SDHC Class 10 Raspberry Pi có các cổng kết nối cụ thể như sau:

Hình 2.1: Sơ đồ các cổng kết nối board Raspberry Pi

Trang 19

Số ký hiệuLoại kết nối Chức năng

1 Thẻ nhớ SD - Chứa hệ điều hành và lưu trữ dữ liệu

- Kiểm tra tính tương thích giữa Raspberry Pi với các thiết bị thẻ nhớ SD trên trang web:

http://elinux.org/RPi_SD_cards

2a Cổng HDMI Được sử dụng để hiển thị hình ảnh từ Raspberry Pi

thông qua kết nối HDMI 2b Cổng RCA Được sử dụng để hiển thị hình ảnh Raspberry Pi

thông qua kết nối RCA 3 USB Giao tiếp với các thiết bị ngoại vi như chuột, bàn

phím… 4 Cổng RJ45 Kết nối Raspberry Pi với các thiết bị mạng 5 Nguồn Raspberry Pi yêu cầu bộ nguồn với hiệu điện thế 5V

và cường độ dòng điện 700 - 1200 mA đối với board phiên bản B

Trang 20

2.2 Các giải pháp triển khai VoIP trên board Raspberry Pi

Có khá nhiều giải pháp triển khai VoIP mã nguồn mở trên các hệ thống server hoặc PC có cấu hình cao như AsteriskNOW, FreePBX, Elastix…Các giải pháp này được xây dựng với đầy đủ các tính năng và tích hợp đầy đủ các dịch vụ Tuy nhiên, số lượng các giải pháp triển khai VoIP trên board với cấu hình khiêm tốn hơn lại khá hạn chế, hầu hết được tích hợp các dịch vụ cơ bản, cần thiết nhất cho nhu cầu của các cơ quan, doanh nghiệp Nổi bật trong số đó là XiVO và uElastix

2.2.1 XiVO

XiVO là một sản phẩm được Avencall phát triển, XiVO có tốc độ xử lý khá nhanh cùng với đó là giao diện người dùng trực quan và thân thiện

Hình 2.2: Giao diện XiVO

Kiến trúc của XiVO rất phức tạp, các thành phần liên kết với nhau chặt chẽ thông qua một cơ sở dữ liệu dùng chung Trong đó, hệ thống VoIP mã nguồn mở Asterisk được xem như một dịch vụ tích hợp vào XiVO thông qua các kết nối AGI (Asterisk Gateway Interface) và AMI (Asterisk Manager Interface)

Trang 21

Hình 2.3: Kiến trúc của XiVO

Như vậy có thể thấy, VoIP chỉ là dịch vụ tích hợp của XiVO, không phải là thành phần cốt lõi của cả hệ thống Thêm vào đó, tài liệu hỗ trợ cho XiVO khá ít, cộng đồng sử dụng XiVO tương đối nhỏ, phần lớn sử dụng tiếng Pháp nên việc tiếp cận thông tin cần thiết cho việc triển khai và vận hành rất khó khăn Trang Web dự án phát triển XiVO cho Raspberry Pi đã không còn cập nhật thông tin mới từ ngày 28/10/2012

Trang 22

Hình 2.4: Trang chủ dự án phát triển của Xivo cho Raspberry Pi

2.2.2 uElastix

uElastix là một sản phẩm mã nguồn mở của Palosanto Solutions được phát triển dành riêng cho board Raspberry Pi và board pico - SAM9G45, uElastix có tốc độ xử lý khá nhanh và tích hợp nhiều tính năng vào hệ thống tổng đài Hình 2.5 thể hiện kiến trúc và các dịch vụ cơ bản của uElastix

Hình 2.5: Kiến trúc của uElastix

Trang 23

Các tính năng cơ bản của uElastix bao gồm: - Thoại trên nền IP

- Voicemail - Fax - to – Email - Hỗ trợ Softphones - Cấu hình các chức năng thông qua giao diện web - Ghi âm cuộc gọi

- Mail server… uElastix được xây dựng với kiến trúc gồm lõi là phần mềm tổng đài VoIP nguồn mở Asterisk, các tính năng của hệ thống là các dịch vụ được phát triển và tích hợp dựa trên nền tảng Asterisk Do đó, khả năng phát triển mở rộng các tính năng mới cũng như khả năng hỗ trợ việc tích hợp của eElastix có nhiều thuận lợi hơn so với XiVO Thêm vào đó, với lợi thế có cộng đồng sử dụng khá lớn và sự hỗ trợ đầy đủ từ nhà phát triển, các phiên bản mới vẫn đang được cập nhật thường xuyên, uElastix sẽ là giải pháp được chọn để triển khai

2.3 Giải pháp phát triển module tích hợp vào uElastix

Do uElastix được phát triển hoàn toàn từ Asterisk nên các giải pháp phát triển module tích hợp vào uElastix phải hoàn toàn dựa vào cấu trúc của Asterisk Trong đó, những thành phần quan trọng nhất cần quan tâm là các kết nối AGI (Asterisk Gateway Interface) và cấu trúc cơ bản của một module

2.3.1 Asterisk Gateway Interface

Asterisk Gateway Interface (AGI) cung cấp một giao thức chuẩn để các chương trình từ bên ngoài có thể điều khiển được Asterisk dialplan (là các ngữ cảnh đã thiết lập sẵn để quay số thực hiện cuộc gọi), mở rộng các chức năng của Asterisk Các chương trình từ bên ngoài này được gọi chung là các AGI scripts thực chất là đoạn mã được viết với các thuật toán mở rộng dùng để giao tiếp với cơ sở dữ liệu có liên quan hoặc các

nguồn tài nguyên bên ngoài hệ thống [4]

Trang 24

AGI scripts giao tiếp với Asterisk thông qua các kênh thông tin STDIN, STDOUT và STDERR Trong đó:

- STDIN: các thông tin do AGI scripts gửi đến Asterisk - STDOUT: các thông tin do Asterisk gửi về AGI scripts - STDERR: các AGI scripts gửi các thông tin lỗi thông qua kênh STDERR

đến Asterisk

Hình 2.6: Minh họa chức năng của AGI trong Asterisk

Hình 2.6 thể hiện mối liên hệ giữa AGI scripts và Asterisk thông qua các kênh thông tin STDIN, STDOUT và STDERR Có thể thấy AGI có khả năng giao tiếp đa dạng bao gồm việc truy xuất từ cơ sở dữ liệu, giao tiếp với các ứng dụng trên nền web và thực hiện các dịch vụ cơ bản của hệ thống như liệt kệ các extension, kiểm tra mật khẩu, cấu hình hệ thống…Có một số loại AGI khác nhau tương ứng với việc sử dụng

cho nhiều mục đích khác nhau [5]:

Asterisk Switching

Core Asterisk AGI

Module

AGI Script

Database www Coffee Maker

TDME1 ANALOG

SIP IAX2 MGCP

Trang 25

AGI: là loại AGI thông thường với các chức năng cơ bản nhất bao gồm khả năng điều

khiển Dialplan Có thể lập trình AGI scripts bằng nhiều ngôn ngữ khác nhau nhưng yêu cầu đặt ra là các AGI scripts này phải cùng đặt trên máy chủ Asterisk

- EAGI (Enhanced AGI): AGI đã được nâng cấp mở rộng với chức năng cho phép

AGI scripts đọc các luồng âm thanh đầu vào theo chuẩn file descriptor 3

- DeadAGI: có chức năng tương tự như AGI nhưng DeadAGI còn có khả năng

mà AGI thông thường không có được, đó là khả năng làm việc trên các kênh “chết” (kênh “chết” là kênh thoại đã được kết thúc)

- FastAGI: cho phép các AGI scripts có thể giao tiếp qua lại với nhau giữa

các máy chủ Asterisk AGI cung cấp một số hàm cơ bản như sau:

Bảng 2.1: Một số hàm AGI cơ bản

ANSWER

ANSWER Trả lời các kênh truyền Trả về các giá trị:

 -1 nếu không thành công  0 nếu thành công

CHANNEL STATUS

CHANNEL STATUS [<channel name>] Xác định trạng thái của kênh truyền đuợc xác định bởi channel name hoặc nếu không chỉ định kênh nào thì mặc định là kênh hiện tại

Trả về giá trị:  0 nếu kênh bị nghẽn và tồn tại  1 nếu kênh bị nghẽn nhưng được duy trì  2 nếu kênh bị ngắt

 4 nếu đường truyền đang tồn tại cuộc gọi

Trang 26

 5 nếu thiết bị đầu cuối đang đổ chuông  6 nếu đường dây bận

DATABASE DEL

DATABASE DEL <family> <key> Xóa một chỉ mục trong cơ sở dữ liệu của Asterisk xác định thông qua một khóa

Trả về giá trị:  0 nếu không thành công  1 nếu thành công

DATABASE DELTREE

DATABASE DELTREE <family> <key> Xóa một một họ trong cơ sở dữ liệu của Asterisk xác định thông qua một khóa cụ thể

Trả về giá trị:  0 nếu không thành công  1 nếu thành công

DATABASE GET

DATABASE GET <family> <key> Nhận giá trị từ cơ sở dữ liệu của Asterisk thông qua một khóa được chỉ định

Trả về giá trị:  0 nếu không được  1 (giá trị) giá trị được lập bao gồm cả dấu ngoặc

đơn

DATABASE PUT

DATABASE PUT <family> <key> <value> Thêm hoặc cập nhật một chỉ mục trong cơ sở dữ liệu của Asterisk thông qua một khóa và giá trị chỉ định

Trả về giá trị:  0 nếu không thành công  1 nếu thành công

EXEC EXEC <application> <options>

Thực thi các tùy chọn của ứng dụng quay số cụ thể

Trang 27

Trả về giá trị:  -2 nếu không tìm thấy ứng dụng  <Giá trị> nếu ứng dụng trả về giá trị

STREAM FILE

STREAM FILE <filename> <escape_digits> Phát các tập tin âm thanh chỉ định bởi filename, ngắt khi ấn số escape Chú ý định dạng của tập tin phải bao gồm trong filename

Trả về các giá trị:  0 nếu phát thành công mà không ấn số escape  -1 nếu lỗi hoặc gác máy

 giá trị của số được ấn, dạng thập phân

GET OPTION

GET OPTION <filename> <escape_digits> [timeout] giống như STREAM FILE nhưng có tùy chọn timeout

HANGUP

HANGUP [channelname] Gác máy một kênh thoại, nếu không chỉ định kênh nào thì mặc định là kênh hiện tại

Trả về giá trị:  -1 kênh chỉ định không tồn tại  1 gác máy thành công

NoOp

NoOp [text] Thường dùng để mục đích debug, lệnh này sẽ in ra màn hình Asterisk text

Trang 28

Nhận một ký tự text trên kênh truyền Chỉ định một timeout là thời gian tối đa chờ việc nhập ký tự, hoặc thiết lập 0 để không giới hạn thời gian chờ Tuy nhiên phần lớn các kênh là không hỗ trợ nhận text

Trả về giá trị:  -1 nếu không thành công  0 nếu thành công

SAY DIGITS

SAY DIGITS <number> <escape_digits> Đọc chuỗi các số chỉ định, kết thúc nếu người dùng nhấn số escape

Trả về các giá trị:  -1 nếu lỗi hoặc gác máy  0 nếu đọc thành công mà không nhấn số escape  giá trị các số được nhấn

SEND TEXT

SEND TEXT “<text_to_send>” Gửi văn bản được chỉ định trên kênh hiện tại, tuy nhiên phần lớn các kênh không hỗ trợ việc truyền văn bản

Trang 29

Trả về các giá trị:  -1 nếu lỗi hoặc gác máy  0 nếu văn bản được gửi đi hoặc kênh không hỗ trợ

gửi văn bản

SET VARIABLE

SET VARIABLE <variablename> <value> Các biến này được tạo ra bên trong kênh truyền khi cuộc gọi được thiết lập và sẽ tự mất đi khi người dùng gác máy Trả về giá trị 1 biến đã được thiết lập

WAIT FOR DIGIT

WAIT FOR DIGIT <timeout> Chờ cho tới thời gian timeout để kênh nhận được các trị số được xác định từ người dùng Đặt timeout bằng -1 nếu muốn không giới hạn

Trả về các giá trị:  -1 lỗi hoặc kênh không tồn tại  0 hết timeout

 giá trị của số được ấn

Cũng giống như đa phần các dự án nguồn mở khác, hiện nay có rất nhiều các framework của AGI scripts được viết với nhiều ngôn ngữ lập trình khác nhau và được cung cấp miễn phí Trong đó, một số framework AGI scripts thông dụng nhất có thể tìm thấy tại địa chỉ được liệt kê tại bảng 2.2

Bảng 2.2: Địa chỉ cung cấp các framework AGI scripts thông dụng

Library http://asterisk.gnuinter.net/PHP PHP-AGI http://sourceforge.net/projects/phpagi/

http://py-asterisk.berlios.de/pyasterisk.php

Trang 30

C libagiNow http://www.open-tk.de/libagiNow/

JAVA Asterisk-java http://www.asterisk-java.org

Các framework này rất hữu ích trong quá trình phát triển, mở rộng thêm những tính năng mới của hệ thống tổng đài uElastix Do đó, đề tài này sẽ tận dụng thư viện framework PHP-AGI sẵn có và tập trung tìm hiểu giải pháp phát triển module tích hợp vào uElastix

2.3.2 Framework module của uElastix

Với việc lựa chọn uElastix để triển khai trên board Raspberry Pi, giải pháp phát triển một module tích hợp phải tuân thủ hoàn toàn theo framework của uElastix Framework module của uElastix là toàn bộ các tập tin cần thiết cho quá trình hoạt động của module

được chứa trong các thư mục có cấu trúc và tên gọi theo quy chuẩn cố định [6]

Hình 2.7: Framework module của Elastix

Trong đó, các thư mục chính id_module được đặt tại vị trí /var/www/html/modules Chức năng của từng thành phần cụ thể như sau:

Trang 31

id_module Tên của module tích hợp configs Thư mục này được tạo ra mặc định chứa file có tên là

default.conf.php bao gồm các thông tin thiết lập cơ bản cho module

help Thư mục này chứa file “tên_module.hlp” được dùng để

hiển thị thông tin trợ giúp trong module images Thư mục này chứa toàn bộ các hình ảnh được sử dụng trong

module bao gồm các icon, các ảnh nhúng vào file trợ giúp… lang Thư mục này lưu trữ các file chuyển đổi ngôn ngữ sử dụng

trong module

Hình 2.8: Nguyên tắc đặt tên file chuyển đổi ngôn ngữ

libs Thư mục này là thư viện chứa các hàm, các thông tin về truy

vấn cơ sở dữ liệu…

Trang 32

themes Thư mục này chứa các thiết lập, các thông tin cần thiết cho

việc hiển thị (view layer)

index.php File thực thi chính, điều khiển toàn bộ các chức năng của

module Để thuận lợi hơn cho việc phát triển, mở rộng các chức năng của uElastix dưới dạng các module tích hợp, nhà phát triển Palosanto Solutions hỗ trợ một công cụ khá hữu ích được cung cấp miễn phí trên Elastix Market Place, đó là Elastix Developer

2.3.3 Tổng quan về Elastix Developer 2.3.3.1 Cài đặt Elastix Developer

Elastix Market Place cho phép người sử dụng có thể dễ dàng tích hợp các addon của bên thứ ba để mở rộng chức năng cho hệ thống tổng đài VoIP của họ, các addon này có thể cung cấp dưới dạng tính phí hoặc miễn phí Trong đó, addon Developer với phiên bản mới nhất là 2.3.0 – 5 được cung cấp hoàn toàn miễn phí sẽ hỗ trợ người sử dụng tự phát triển module tích hợp vào uElastix một cách thuận tiện nhất

Từ giao diện của uElastix chọn menu Addons, xuất hiện giao diện của Elastix Market Place và chọn cài đặt addon Developer – 2.3.0 – 5 như Hình 2.9

Hình 2.9: Addon Developer – 2.3.0 – 5 trên Elastix Market Place

Trang 33

Sau khi ấn nút Install, đợi một vài phút để tiến trình cài đặt kết thúc

Hình 2.10: Addon Developer – 2.3.0 – 5 sau khi cài đặt thành công

2.3.3.2 Tính năng của Elastix Developer

Elastix Developer Module giúp chúng ta tiết kiệm khá nhiều thời gian và công sức cho việc thiết kế và tích hợp một module mới vào Elastix Elastix Developer có 3 menu con, trong đó quan trọng nhất là menu “Build Module” Chức năng của menu “Build Module” là tạo ra một bộ khung (skeleton) các đoạn mã cần thiết, từ đó chúng ta có thể phát triển, mở rộng các tính năng của module từ các đoạn mã ban đầu này

Khi tạo ra một module mới, Elastix Developer tiến hành các bước như sau:  Tự tạo ra các menu cần thiết của module trên giao diện Web của uElastix thay vì

chúng ta phải thay đổi cơ sở dữ liệu “menu.db” của uElastix một cách thủ công  Sinh ra một bộ khung các đoạn mã theo đúng framework của uElastix, bộ khung này được đặt trong thư mục có tên trùng với tên của module theo đường dẫn /var/www/html/modules

Trang 34

Hình 2.11: Giao diện của menu Build Module

Giao diện của menu “Build Module” được chia thành 3 phần: thông tin chung (General information), vị trí của module (Location) và mô tả loại module (Module description)

Thông tin chung (General information)

Phần này cho phép chúng ta định nghĩa các thông tin cần thiết về tên, mã nhận dạng module, tên, email của người thiết kế module, các thông tin này sẽ được thể hiện qua các dòng chú thích tại header của tập tin index.php của mỗi module

Hình 2.12: Phần thông tin chung của menu Build Module

Vị trí của module (Location)

Giúp chúng ta lựa chọn vị trí module trên giao diện Web của Elastix, mặc định sẽ là mức 2

Trang 35

Hình 2.13: Các vị trí module trên giao diện Web của Elastix

Hình 2.14: Phần lựa chọn vị trí của module

Nếu lựa chọn thiết kế module ở mức 3, các trường lựa chọn thông tin cho module

mức 1 và mức 2 sẽ tự động xuất hiện như Hình 2.15

Hình 2.15: Các trường lựa chọn khi thiết kế module mức 3

Mức 1 Mức 2

Mức 3

Trang 36

Mô tả loại module (Module description)

Phần này giúp chúng ta có thể lựa chọn loại module phù hợp với mục đích và yêu cầu đặt ra, có 3 kiểu module được hỗ trợ bởi Elastix Developer

o Form: được dùng để thu thập dữ liệu, ghi nhận thông tin từ người sử dụng,

Elastix Developer hỗ trợ việc lấy dữ liệu từ các trường thông dụng theo chuẩn HTML như text, selection, date, text area, check box, radio

o Grid: thường được dùng để hiển thị thông tin từ cơ sở dữ liệu, thường

thông tin sẽ được hiển thị ở dạng biểu bảng

o Framed: được dùng để tích hợp một ứng dụng bên ngoài vào giao diện

Web của Elastix thông qua URL

2.3.4 Thư viện các lớp (class) thông dụng được hỗ trợ bởi Elastix

Elastix hỗ trợ các lớp chứa các hàm (function) được viết bằng ngôn ngữ PHP được phân chia theo từng chức năng cụ thể Các lớp này được lưu trữ trong thư mục /var/www/html/libs

Trang 37

Hình 2.16: Các lớp được hỗ trợ bởi Elastix

Trong đó, các lớp dưới đây có vai trò quan trọng trong việc hỗ trợ các giải pháp thiết kế module tích hợp vào Elastix

2.3.4.1 Lớp paloSantoForm.class.php

Lớp này thường được sử dụng để quản lý các module dạng form, khi sử dụng lớp này cần dùng lệnh include trong tập tin index.php của module Lớp paloSantoForm.class.php được xây dựng thành hàm (function) có cấu trúc như sau:

Trang 38

function paloForm(&$smarty, $arrFormElements)

Trong đó, biến $smarty thể hiện việc sử dụng hệ thống tạo mẫu web smarty viết trên nền PHP, biến $arrFormElements là một mảng chứa các phần tử cần thiết cho việc hiển thị giao diện trong module dạng form Luôn luôn có một chỉ mục tên “INPUT_TYPE” dùng để xác định loại phần tử cần được sử dụng, các giá trị có thể có của “INPUT_TYPE” bao gồm

- “TEXTAREA”: cần thiết cho việc hiển thị hoặc ghi nhận dữ liệu theo dạng khối

được xác định theo kích thước hàng x cột Ví dụ: một phần tử “TEXTAREA” với kích thước 6 cột x 4 dòng với nhãn là

“Description” sẽ được gán vào biến $arrFormElements như sau:

- “TEXT”: cần thiết cho việc hiển thị hoặc ghi nhận dữ liệu theo dạng đơn dòng

Ví dụ: một phần tử “TEXT” cho việc nhập tên khách hàng vào cơ sở dữ liệu với nhãn là “name” sẽ được gán vào biến $arrFormElements như sau:

Ngày đăng: 24/09/2024, 04:35

HÌNH ẢNH LIÊN QUAN

Hình 2.1: Sơ đồ các cổng kết nối board Raspberry Pi. - Luận văn thạc sĩ Kỹ thuật điện tử: Xây dựng hệ thống VOIP và phát triển Module quản lý trên Board Raspberry PI
Hình 2.1 Sơ đồ các cổng kết nối board Raspberry Pi (Trang 18)
Hình 2.3: Kiến trúc của XiVO. - Luận văn thạc sĩ Kỹ thuật điện tử: Xây dựng hệ thống VOIP và phát triển Module quản lý trên Board Raspberry PI
Hình 2.3 Kiến trúc của XiVO (Trang 21)
Hình 2.5: Kiến trúc của uElastix. - Luận văn thạc sĩ Kỹ thuật điện tử: Xây dựng hệ thống VOIP và phát triển Module quản lý trên Board Raspberry PI
Hình 2.5 Kiến trúc của uElastix (Trang 22)
Hình 2.4: Trang chủ dự án phát triển của Xivo cho Raspberry Pi. - Luận văn thạc sĩ Kỹ thuật điện tử: Xây dựng hệ thống VOIP và phát triển Module quản lý trên Board Raspberry PI
Hình 2.4 Trang chủ dự án phát triển của Xivo cho Raspberry Pi (Trang 22)
Hình 2.11: Giao diện của menu Build Module. - Luận văn thạc sĩ Kỹ thuật điện tử: Xây dựng hệ thống VOIP và phát triển Module quản lý trên Board Raspberry PI
Hình 2.11 Giao diện của menu Build Module (Trang 34)
Hình 2.13: Các vị trí module trên giao diện Web của Elastix. - Luận văn thạc sĩ Kỹ thuật điện tử: Xây dựng hệ thống VOIP và phát triển Module quản lý trên Board Raspberry PI
Hình 2.13 Các vị trí module trên giao diện Web của Elastix (Trang 35)
Hình 3.4: Các giai đoạn khởi động của uElastix. - Luận văn thạc sĩ Kỹ thuật điện tử: Xây dựng hệ thống VOIP và phát triển Module quản lý trên Board Raspberry PI
Hình 3.4 Các giai đoạn khởi động của uElastix (Trang 47)
Hình 3.7: Cơ sở dữ liệu cần thiết đã được tạo thành công. - Luận văn thạc sĩ Kỹ thuật điện tử: Xây dựng hệ thống VOIP và phát triển Module quản lý trên Board Raspberry PI
Hình 3.7 Cơ sở dữ liệu cần thiết đã được tạo thành công (Trang 51)
Hình 3.8: Phác họa thiết kế của module “Loại phòng”. - Luận văn thạc sĩ Kỹ thuật điện tử: Xây dựng hệ thống VOIP và phát triển Module quản lý trên Board Raspberry PI
Hình 3.8 Phác họa thiết kế của module “Loại phòng” (Trang 52)
Hình 3.10: Phác họa thiết kế của module “Tổng quát”. - Luận văn thạc sĩ Kỹ thuật điện tử: Xây dựng hệ thống VOIP và phát triển Module quản lý trên Board Raspberry PI
Hình 3.10 Phác họa thiết kế của module “Tổng quát” (Trang 54)
Hình 3.11: Phác họa thiết kế của module “Thuê phòng”. - Luận văn thạc sĩ Kỹ thuật điện tử: Xây dựng hệ thống VOIP và phát triển Module quản lý trên Board Raspberry PI
Hình 3.11 Phác họa thiết kế của module “Thuê phòng” (Trang 55)
Hình 3.13: Phác họa thiết kế của module “Trả phòng” - Luận văn thạc sĩ Kỹ thuật điện tử: Xây dựng hệ thống VOIP và phát triển Module quản lý trên Board Raspberry PI
Hình 3.13 Phác họa thiết kế của module “Trả phòng” (Trang 57)
Hình 3.14: Phác họa thiết kế của module “Giao diện chính” - Luận văn thạc sĩ Kỹ thuật điện tử: Xây dựng hệ thống VOIP và phát triển Module quản lý trên Board Raspberry PI
Hình 3.14 Phác họa thiết kế của module “Giao diện chính” (Trang 58)
Hình 4.1: Giao diện Elastix sau khi cài đặt thành công trên board Raspberry Pi. - Luận văn thạc sĩ Kỹ thuật điện tử: Xây dựng hệ thống VOIP và phát triển Module quản lý trên Board Raspberry PI
Hình 4.1 Giao diện Elastix sau khi cài đặt thành công trên board Raspberry Pi (Trang 59)
Hình 4.4: Thiết lập thông số cho ext 101 trên softphone X – lite 3.0. - Luận văn thạc sĩ Kỹ thuật điện tử: Xây dựng hệ thống VOIP và phát triển Module quản lý trên Board Raspberry PI
Hình 4.4 Thiết lập thông số cho ext 101 trên softphone X – lite 3.0 (Trang 61)
Hình 4.5: Thiết lập thông số cho ext 102 trên softphone X – lite 3.0. - Luận văn thạc sĩ Kỹ thuật điện tử: Xây dựng hệ thống VOIP và phát triển Module quản lý trên Board Raspberry PI
Hình 4.5 Thiết lập thông số cho ext 102 trên softphone X – lite 3.0 (Trang 62)
Hình 4.6: ext 101 được đăng ký thành công với uElastix. - Luận văn thạc sĩ Kỹ thuật điện tử: Xây dựng hệ thống VOIP và phát triển Module quản lý trên Board Raspberry PI
Hình 4.6 ext 101 được đăng ký thành công với uElastix (Trang 62)
Hình 4.7: ext 102 được đăng ký thành công với uElastix. - Luận văn thạc sĩ Kỹ thuật điện tử: Xây dựng hệ thống VOIP và phát triển Module quản lý trên Board Raspberry PI
Hình 4.7 ext 102 được đăng ký thành công với uElastix (Trang 63)
Hình 4.8: ext 101 thông báo đang gọi đến ext 102. - Luận văn thạc sĩ Kỹ thuật điện tử: Xây dựng hệ thống VOIP và phát triển Module quản lý trên Board Raspberry PI
Hình 4.8 ext 101 thông báo đang gọi đến ext 102 (Trang 63)
Hình 4.12: Module “Giao diện chính”. - Luận văn thạc sĩ Kỹ thuật điện tử: Xây dựng hệ thống VOIP và phát triển Module quản lý trên Board Raspberry PI
Hình 4.12 Module “Giao diện chính” (Trang 66)
Hình 4.16: Module “Tình trạng phòng”. - Luận văn thạc sĩ Kỹ thuật điện tử: Xây dựng hệ thống VOIP và phát triển Module quản lý trên Board Raspberry PI
Hình 4.16 Module “Tình trạng phòng” (Trang 68)
Hình 4.18: Module “Thêm  phòng”. - Luận văn thạc sĩ Kỹ thuật điện tử: Xây dựng hệ thống VOIP và phát triển Module quản lý trên Board Raspberry PI
Hình 4.18 Module “Thêm phòng” (Trang 69)
Hình 4.19: Module “Tổng quát”. - Luận văn thạc sĩ Kỹ thuật điện tử: Xây dựng hệ thống VOIP và phát triển Module quản lý trên Board Raspberry PI
Hình 4.19 Module “Tổng quát” (Trang 70)
Hình 1.1: Giao diện phần mềm PuTTY - Luận văn thạc sĩ Kỹ thuật điện tử: Xây dựng hệ thống VOIP và phát triển Module quản lý trên Board Raspberry PI
Hình 1.1 Giao diện phần mềm PuTTY (Trang 73)
Hình 1.2: Màn hình của máy cần remote - Luận văn thạc sĩ Kỹ thuật điện tử: Xây dựng hệ thống VOIP và phát triển Module quản lý trên Board Raspberry PI
Hình 1.2 Màn hình của máy cần remote (Trang 74)
Hình 2.1: Giao diện của WinSCP - Luận văn thạc sĩ Kỹ thuật điện tử: Xây dựng hệ thống VOIP và phát triển Module quản lý trên Board Raspberry PI
Hình 2.1 Giao diện của WinSCP (Trang 75)