Đồ án: Xây dựng tổng đài nội bộ Asterisk và các dịch vụ giá trị gia tăng

Đồ án xây dựng dịch vụ giá trị gia tăng Asterisk. Tìm hiểu quy trình, giải pháp và ứng dụng Asterisk để phát triển các dịch vụ hiệu quả.

Người đăng

Ẩn danh

Thể loại

Đồ án tốt nghiệp

2012-2016

66
1
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

MỤC LỤC

1. CHƯƠNG 1: TỔNG QUAN VỀ TỔNG ĐÀI ASTERISK

1.1. GIỚI THIỆU CHƯƠNG

1.2. GIỚI THIỆU ASTERISK

1.3. KIẾN TRÚC CỦA ASTERISK

1.4. MỘT SỐ TÍNH NĂNG CƠ BẢN CỦA ASTERISK

1.5. TIME AND DATE

1.6. CÁC NGỮ CẢNH ỨNG DỤNG

1.7. TỔNG ĐÀI VOIP IP PBX

1.8. KẾT NỐI IP PBX VỚI PBX

1.9. KẾT NỐI GIỮA CÁC SERVER ASTERISK

1.10. CÁC KHÁI NIỆM TRONG HỆ THỐNG ASTERISK

1.11. PBX - PRIVATE BRANCH EXCHANGE

1.12. VOIP –VOICE OVER INTERNET PROTOCOL

1.13. CÁC HÌNH THỨC BÁO HIỆU GIAO TIẾP TDM

1.14. FXO VÀ FXS

1.15. BÁO HIỆU ANALOG GIỮA ĐẦU CUỐI VÀ TỔNG ĐÀI

1.16. BÁO HIỆU GIỮA CÁC TỔNG ĐÀI

1.17. BÁO HIỆU TRÊN MẠNG ĐIỆN THOẠI VOIP

1.18. RTP VÀ NAT

1.19. IAX – INTER ASTERISK EXCHANGE

2. CHƯƠNG 2: XÂY DỰNG TỔNG ĐÀI NỘI BỘ ASTERISK

2.1. CÀI ĐẶT TỪNG PHẦN

2.2. CÀI ĐẶT ASTERISK TRÊN CENTOS 6

2.3. CHUẨN BỊ MÁY ẢO CENTOS 6

2.4. CÀI ĐẶT ASTERISK 13

2.5. TẢI CÁC GÓI PHẦN MỀM CẦN THIẾT TRƯỚC KHI CÀI ĐẶT

2.6. CÁC CÔNG CỤ HỖ TRỢ VẬN HÀNH VÀ CẤU HÌNH ASTERISK

2.7. CÁC PHẦN MỀM SOFTPHONE

2.8. CÁCH CẤU HÌNH ASTERISK

2.9. CẤU HÌNH TRUNG KẾ

2.10. THI CÔNG HỆ THỐNG TỔNG ĐÀI ASTERISK CƠ BẢN

2.11. MÔ HÌNH THI CÔNG

2.12. CẤU HÌNH TỔNG ĐÀI

2.13. CẤU HÌNH FILE SIP

2.14. CẤU HÌNH FILE EXTENSIONS

2.15. THIẾT LẬP CÁC SOFTPHONE VÀ KIỂM TRA CUỘC GỌI

2.16. PHÂN TÍCH BẢN TIN SIP

2.17. QUÁ TRÌNH REGISTER

2.18. THIẾT LẬP CUỘC GỌI

3. CHƯƠNG 3: XÂY DỰNG CÁC DỊCH VỤ GIÁ TRỊ GIA TĂNG TRÊN NỀN ASTERISK

3.1. TỔNG QUAN MYSQL VÀ PHPAGI

3.2. KHÁI NIỆM CƠ BẢN VỀ CƠ SỞ DỮ LIỆU (CSDL)

3.3. CÁC LỆNH CƠ BẢN TRONG MYSQL

3.4. CÀI ĐẶT MYSQL TRÊN CENTOS 6

3.5. PHPAGI- LỚP THƯ VIỆN SỬ DỤNG NGÔN NGỮ PHP

3.6. GIỚI THIỆU VỀ PHPAGI

3.7. CẤU TRÚC FILE CỦA PHPAGI

3.8. GỌI MỘT AGI SCRIPT TỪ DIAPLAN

3.9. LẬP TRÌNH AGI SCRIPT BẰNG PHP

3.10. XÂY DỰNG DỊCH VỤ TRA CỨU KẾT QUẢ XỔ SỐ VIETLOTT, THÔNG TIN TUYỂN DỤNG

3.11. GIỚI THIỆU TỔNG QUAN VỀ HỆ THỐNG

3.12. DỊCH VỤ TRA CỨU KẾT QUẢ XỔ SỐ

3.13. TẠO DATABASE CHO DỊCH VỤ

3.14. DỊCH VỤ TRA CỨU THÔNG TIN TUYỂN DỤNG

3.15. CẤU HÌNH HỆ THỐNG CHO HAI DỊCH VỤ

3.16. CẤU HÌNH FILE EXTENSIONS

3.17. CẤU HÌNH AGI SCRIPT

3.18. KẾT QUẢ ĐẠT ĐƯỢC

4. CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI

4.1. ĐÁNH GIÁ CHUNG

4.2. NHƯỢC ĐIỂM

4.3. HƯỚNG PHÁT TRIỂN ĐỀ TÀI

DANH MỤC TỪ VIẾT TẮT

TÀI LIỆU THAM KHẢO

MỤC LỤC HÌNH

MỤC LỤC BẢNG

LỜI MỞ ĐẦU

Tóm tắt

I. Tổng Quan Về Tổng Đài Asterisk Giới Thiệu và Ứng Dụng

Chương này giới thiệu các khái niệm cơ bản về Asterisk, cung cấp kiến thức nền tảng để thiết kế và triển khai hệ thống tổng đài VoIP Asterisk. Asterisk là phần mềm PBX (Private Branch Exchange) cho phép các máy nhánh (extension) gọi nhau và kết nối với các hệ thống khác, bao gồm mạng analog (PSTN) và VoIP. Asterisk có đầy đủ tính năng của tổng đài thương mại: hộp thư thoại, hội đàm, IVR. Hỗ trợ nhiều giao thức VoIP như SIP và H.323. Hoạt động như trạm kết nối giữa điện thoại IP và mạng PSTN. Asterisk là hệ thống chuyển mạch mềm, mã nguồn mở, viết bằng C, chạy trên Linux. Ban đầu được xây dựng để đáp ứng nhu cầu cá nhân. Asterisk không chỉ gói gọn thông tin liên lạc trong công ty mà còn có thể giao tiếp với mạng PSTN hoặc mạng VoIP cho phép gọi ra bất cứ số điện thoại nào có trên mạng PSTN. Asterisk thoạt đầu được phát triển trên GNU/Linux nền x86(Intel), nhưng giờ đây nó cũng có thể biên dịch và chạy trên OpenBSD, FreeBSD và Mac OSX và Microsoft Windows. Theo Spencer, Asterisk là giải pháp “viễn thông cho đại chúng” ngoài chi phí rẻ và dễ dàng thiết lập.

1.1. Khái niệm cơ bản về Tổng đài IP Asterisk

PBX (Private Branch Exchange) là hệ thống tổng đài nội bộ đặt tại nhà thuê bao, kết nối nhiều điện thoại nội bộ bên trong. Mục tiêu là chia sẻ nhiều thuê bao nội bộ gọi ra thế giới bên ngoài thông qua một vài đường trung kế. Vì số lượng máy điện thoại nội bộ luôn nhiều hơn số đường dây nối đến PBX từ bên ngoài. PBX thực hiện chuyển mạch cuộc gọi các máy điện thoại nội bộ với nhau và với các máy điện thoại bên ngoài thông qua đường trung kế. Đồng thời thực hiện chuyển mạch các cuộc gọi điện thoại từ bên ngoài vào các máy điện thoại nội bộ. Ngoài việc chuyển mạch cuộc gọi PBX cung cấp nhiều tính năng sử dụng cho nhiều mục đích khác nhau của khách hàng mà bản thân các đường dây điện thoại từ công ty điện thoại kết nối đến không thể thực hiện được, các tính năng như tương tác thoại(IVR), Voicemail, phân phối cuộc gọi tự động(ADC)…Hiện nay với việc phát triển mạnh mẽ của công nghệ VoIP, chúng ta còn có thêm thuật ngữ IP PBX. Đây là hệ thống chuyển mạch PBX với công nghệ Voip.

1.2. Kiến trúc và chức năng chính của Asterisk PBX

Kiến trúc của Asterisk là sự kết hợp giữa công nghệ điện thoại (VoIP, TDM) và ứng dụng điện thoại (chuyển mạch cuộc gọi, IVR, Caller ID). Khi khởi động, Dynamic Module Loader nạp driver thiết bị, kênh giao tiếp, codec, ứng dụng và API. Sau đó, PBX Switching Core chuyển sang trạng thái sẵn sàng chuyển mạch cuộc gọi. Chức năng Application Launcher rung chuông, quay số, định hướng cuộc gọi, kết nối voicemail. Scheduler and I/O Manager đảm nhiệm các ứng dụng nâng cao. Codec Translator xác nhận các kênh nén dữ liệu ứng với các chuẩn khác nhau có thể kết hợp liên lạc được với nhau. Mọi cuộc gọi được xuất phát hoặc được nhận qua một giao tiếp trên kênh riêng biệt của chính nó. Một kênh có thể được kết nối đến một kênh vật lí -ví dụ như một đường dây POTS, hoặc đến một kênh logic-ví dụ như một kênh IAX hoặc SIP.

II. Hướng Dẫn Cài Đặt Asterisk Phương Pháp Từng Bước Chi Tiết

Để cài đặt thành công tổng đài IP PBX Asterisk, cần cài đặt các phần mềm và gói tin cần thiết. Do đề tài thực hiện cài tổng đài Asterisk trên máy tính cá nhân chạy hệ điều hành Windows 10 của Microsoft, nên cần cài thêm phần mềm máy ảo Oracle VM VirtualBox để cài hệ điều hành CentOS sau đó dựng tổng đài Asterisk trên đó. Các bước bao gồm: Cài đặt máy ảo Oracle VM VirtualBox, cài đặt CentOS, cài đặt các gói tổng đài Asterisk, cài đặt công cụ hỗ trợ vận hành, cấu hình Asterisk (MobaXterm, softphone X-lite, Zoiper). Mục tiêu: Cài đặt Asterisk từ source trên CentOS 6.

2.1. Cài đặt Asterisk trên Linux CentOS 6.7 chi tiết

Tiến hành đăng nhập với usename và password đã đăng ký khi cài CentOS Tiến hành update cho CentOS6.7 bằng lệnh sau: #Yum update –y : lệnh dùng nâng cấp CenOS lênh phiên bản cao nhất. #Reboot : khởi động lại CentOS. Sau đó tải các gói cài đặt Asterisk từ trang web chính thức. Giải nén các gói tin và cài đặt các gói phụ trợ. Cài đặt các gói phụ bằng lệnh #yum groupinstall "Development Tools" –y. Cài đặt các gói cần thiết cho Asterisk bằng các lệnh ./contrib/scripts/install_prereq install, ./contrib/scripts/install_prereq install-unpackaged. Cấu hình bằng lệnh ./configure --libdir=/usr/lib64 (hoặc ./configure --libdir=/usr/lib nếu dùng CentOS 32bit). Thực hiện #make menuselect để chọn cài đặt các định dạng âm thanh và các module cần thiết.

2.2. Các công cụ hỗ trợ vận hành và cấu hình Asterisk FreePBX

MobaXterm là SSH Client hỗ trợ quản trị máy chủ từ xa thông qua SSH, có các tính năng như lưu trữ thông tin server, Multi Execution, hỗ trợ lưu session. Các phần mềm softphone (X-lite, Zoiper, PortGo, Jitsi) dùng để gọi điện thoại VoIP.

2.3. Chi tiết cấu hình Asterisk Elastix qua file sip.conf và extensions.conf

Thư mục /etc/asterisk chứa tất cả các tập tin cấu hình cho Asterisk. Mỗi ứng dụng riêng của Asterisk đều có tập tin cấu hình riêng của mình, tuy nhiên có 2 tập tin cấu hình quan trọng nhất là sip.conf và extensions.conf trong /etc/asterisk.CONF Tệp tin này chứa chi tiết cấu hình thuê bao SIP, bao gồm cấu hình chung (trong thẻ [general]) và cấu hình từng thuê bao (trong thẻ [tên thuê bao]), cấu hình từng thuê bao về các thông tin của số nội bộ client như username, password, IP, type, security…vv Tệp tin extensions.conf là tập tin cấu hình Dialplan của hệ thống Asterisk. Dialplan cho biết các cuộc gọi sẽ được xử lý như thế nào qua hệ thống Asterisk. Dialplan sẻ thiết lập cho hoạt động của hệ thống như định hướng các cuộc gọi vào và ra hệ thống, đó là một danh sách các bước hay các lệnh liên tục nhau để thực hiện một tác vụ nào đó mà hệ thống phải thực hiện theo.

III. Cấu Hình Asterisk Trung Kế SIP và Thiết Lập Softphone

Với các doanh nghiệp, hệ thống tổng đài nội bộ cần kết nối với mạng điện thoại truyền thống, di động, quốc tế. Để làm được điều đó, công ty cần đăng ký dịch vụ trung kế với các nhà mạng viễn thông (CO, E1, SIP Trunking). Phần này thực hiện cấu hình Asterisk, khởi tạo các Account cho softphone đăng ký trong file sip.conf, cấu hình định tuyến cho các softphone có thể gọi nhau trong file extension.conf, cấu hình sip trunk để các softphone có thể gọi ra mạng PSTN trong file sip.

3.1. Thiết lập SIP trunking để kết nối ra mạng PSTN

Để kết nối Asterisk với mạng PSTN, cần cấu hình trung kế SIP (SIP Trunking). Cấu hình thông tin tài khoản SIP Trunk do nhà cung cấp dịch vụ cung cấp vào file sip.conf. Điều này cho phép hệ thống tổng đài Asterisk giao tiếp với mạng PSTN và thực hiện các cuộc gọi ra bên ngoài.

3.2. Thiết lập softphone để kiểm tra cuộc gọi nội bộ và gọi ra PSTN

Cài đặt và khởi động các chương trình softphone : X-Lite, Zoiper. Thiết lập các thông số của số nộ bộ để kết nối với tổng đài như: Account name: tên đại diện của số nội bộ, User ID: là số nội bộ, Domain: là IP của server Asterisk, Passwork: là mật khẩu của số nội bộ (secret). Kiểm tra cuộc gọi nội bộ dùng softphone, ta thiết lập đăng ký các tài khoản sip đã tạo trước đó ( 201, 202) cho softphone như sau:

IV. Dịch Vụ GTGT Asterisk Tra Cứu Xổ Số Tuyển Dụng

Hệ thống tổng đài VoIP ngày càng phát triển với lợi thế cuộc gọi nội bộ miễn phí, chuyển tiếp, cuộc gọi chờ. Tổng đài VoIP có tính ứng dụng cao, cung cấp dịch vụ thiết thực như quà tặng âm nhạc, tra xổ số, tra cứu điểm thi. Người dùng mong muốn nhiều tiện ích hơn, và Asterisk đáp ứng được điều này. Đề tài này nghiên cứu xây dựng các dịch vụ trên tổng đài Asterisk: dịch vụ tra cứu kết quả xổ số VIETLOTT, dịch vụ tra cứu thông tin tuyển dụng ngành viễn thông. Các dịch vụ này được thực hiện dựa trên giao tiếp giữa Asterisk và AGI, sử dụng ngôn ngữ lập trình PHP để cung cấp những thông tin trên cơ sở dữ liệu của hệ thống cho khách hàng. Dựa trên PHP, các dịch vụ có thể được mở rộng một cách linh hoạt, đáp ứng được nhu cầu thực tế của khách hàng. Qua đó, các doanh nghiệp có thể sử dụng để tăng tính năng cho tổng đài nhằm chăm sóc khách hàng tốt hơn.

4.1. Xây dựng hệ thống tra cứu kết quả xổ số Vietlott trên Asterisk

Khách hàng nhấn phím 1 để sử dụng dịch vụ xổ số vietlott. Tiếp theo khách hàng sẽ được nghe lời chào về dịch vụ xổ số và được hướng dẫn cú pháp để tra cứu xổ số, nhập ngày cần tra kết quả, ngày khách hàng nhập phải có số 0 phía trước đối với các ngày bé hơn 10 và khác 0, ngày được người quản trị hệ thống cập nhật vào database. Sau khi khách hàng nhập ngày đúng với ngày mà vietlott mở thưởng thì kết quả sẽ được đọc cho khách hàng dò số (kết quả xổ số có 12 chữ số chia thành 6 cặp số). Nếu khách hàng nhập sai ngày cần tra, hệ thống sẽ thông báo sai cú pháp và yêu cầu nhập lại ngày. Khi kết quả được đọc hết sẽ có một yêu cầu, hỏi khách hàng có muốn nghe lại kết quả hay muốn tra thêm kết quả xổ số khác hoặc là quay về menu chính (chon loại dịch vụ).

4.2. Triển khai dịch vụ tra cứu thông tin tuyển dụng ngành viễn thông

Khách hàng nhấn phím 2 để sử dụng dịch vụ tra cứu thông tin tuyển dụng. Khách hàng sẽ được nghe lời chào về dịch vụ tra cứu thông tin tuyển dụng ngành viễn thông của khoa viễn thông thuộc học viện công nghệ bưu chính viễn thông TP.HCM và được hướng dẫn cú pháp để tra cứu tuyển dụng, như chọn công ty muốn tra cứu thông tin tuyển dụng. công ty tuyển dụng em demo gồm có 3 công ty lớn VNPT, VIETTEL và FPT. Nếu khách hàng nhập sai mã cần tra, hệ thống sẽ thông báo sai cú pháp và yêu cầu nhập lại mã. Sau khi khách hàng chọn mã công ty, sẽ có một thông báo yêu cầu chọn chuyên ngành viễn thông muốn tra cứu, có 3 chuyên ngành lớn Mạng viễn thông, Vô tuyến và Truyền dẫn.

4.3. Ứng dụng của API Asterisk và ngôn ngữ PHP để phát triển dịch vụ

Các dịch vụ được thực hiện dựa trên giao tiếp giữa Asterisk và AGI, sử dụng ngôn ngữ lập trình PHP để cung cấp những thông tin trên cơ sở dữ liệu của hệ thống cho khách hàng. Dựa trên PHP, các dịch vụ có thể được mở rộng một cách linh hoạt, đáp ứng được nhu cầu thực tế của khách hàng. Qua đó, các doanh nghiệp có thể sử dụng để tăng tính năng cho tổng đài nhằm chăm sóc khách hàng tốt hơn.

V. Lập Trình PHPAGI Cơ Bản Ví Dụ Tra Cứu Xổ Số và Tuyển Dụng

PHPAGI (PHP Asterisk Gateway Interface) được xem như là lớp thư viện cơ sở sử dụng ngôn ngữ PHP. PHPAGI cung cấp cho người sử dụng một thư viện để viết một AGI script dễ dàng và hiệu quả hơn. 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ố. AGI scripts thường được đặt trong thư mục: /var/lib/asterisk/agi-bin. File thư viện lớp phpagi.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 em chọn PHP làm ngôn ngữ để lập trình

5.1. Giới thiệu về PHPAGI và các lớp thư viện cơ bản

PHPAGI cung cấp một thư viện để viết AGI script dễ dàng và hiệu quả hơn. Thư viện lớp PHPAGI bao gồm hai file sau: phpagi.php: Lớp thư viện được dùng cho Asterisk AGI API. phpagi-asmanager.php: Lớp thư viện được dùng cho giao diện manager của 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.

5.2. Ví dụ về AGI Script sử dụng PHP để tương tác với Asterisk

Từ softphone gọi vào tổng đài thông qua số 201, sau đó sẽ suất ra một lời chào rồi kết thúc cuộc gọi. Chương trình viết bằng ngôn ngữ php với tập tin là xinchao.php. Tạo 1 file xinchao.php như sau: vào thư mục #cd /var/lib/asterisk/agi-bin. Gõ lệnh #touch xinchao.php sau đó mở file lên #vim xinchao. #!/usr/bin/php 2. $agi = new AGI(); 5. $agi->stream_file("xinchao0"); 7. ?>

22/09/2025

Trích đoạn nội dung tài liệu

CHƯƠNG 1: TỔNG QUAN VỀ TỔNG ĐÀI ASTERISK 1. BÁO HIỆU TRÊN MẠNG ĐIỆN THOẠI VOIP 1. SIP (SESSION INITIATION PROROCOL) SIP là giao thức Internet dành cho báo hiệu VoIP được phát triển bởi IETF cung cấp vài chức năng giống hệ thống báo hiệu số 7 nhưng dựa trên nền IP. Một chức năng giống báo hiệu số 7 đó là báo hiệu và thoại chuyển tải trên hai kênh riêng.

Giao thức SIP thực hiện chức năng thiết lập và báo hiệu cuộc gọi, khi nói đến báo hiệu cuộc gọi là chỉ định các tín hiệu báo hiệu như: tín hiệu mời quay số, tín hiệu bận… SIP là phần thiết lập mặc định của Astersik (SIP được hỗ trợ trong Asterisk với module chan_sip. Hầu hết thiết bị VoIP mới đều có hỗ trợ giao thức SIP. Nó có một số ưu điểm, như: code thì nhỏ hơn. Lý do là SIP chỉ hỗ trợ các tính năng rất cơ bản.

Các tính năng tiên tiến được hổ trợ qua các chuẩn Internet riêng biệt. Cú pháp điều khiển SIP giống như SMTP, HTTP, FTP và các giao thức IETF khác. SIP là một tiêu chuẩn nổi bật trong VoIP vì nó đơn giản so với giao thức khác ví dụ như H. Chúng ta cấu hình giao thức SIP bằng cách soạn thảo trong tập tin /etc/asterisk/sip.

Tập tin này có một số thiết lập trong một session [general], tiếp theo là các định nghĩa của chúng ta cho người sử dụng (sẽ phân tích kỹ hơn trong phần cấu hình Asterisk). PROXY SERVER Mặc dầu hai thiết bị SIP có thể liên lạc trực tiếp với nhau để khởi tạo cuộc gọi nhưng trong giao thức SIP còn có chức năng Proxy để linh hoạt hơn trong thiết lập cuộc gọi. Proxy Server sẽ làm nhiệm vụ ghi nhận tất cả các số điện thoại được phía client đăng ký đến qua bản tin “Registration”. Khi một client khác thực hiện cuộc gọi thì thực sự Client đó không biết số điện thoại cần gọi đang ở đâu nên thông qua Proxy server để tìm kiếm thiết lập cuộc gọi.7: Đăng ký từ Client đến SIP Proxy 1.

RTP VÀ NAT RTP (Real Time Transport Protocol): Các cuộc gọi trên Internet với giao thức SIP được chia thành các gói thoại và được chuyển qua giao thức RTP. RTP là giao thức không chỉ thực hiện chuyển các gói thoại qua Internet mà còn có cả Video nữa. Một cuộc gọi thông SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 12 CHƯƠNG 1: TỔNG QUAN VỀ TỔNG ĐÀI ASTERISK thường có hai hướng thông tin là nhận và phát, RTP làm việc chuyển các gói dữ liệu thoại cũng trên hai hướng. RTP cố gắng đảm bảo dữ liệu sẽ được truyền và nhận trong một chu kỳ thời gian ngắn.

Rõ ràng độ trễ trong liên lạc thoại có thể là một vấn đề. Vì vậy RTP ngăn ngừa độ trễ này ở mức tối đa có thể. NAT (Network Address Translator) Mạng sử dụng NAT là một mạng chia sẻ nhiều địa chỉ IP nội bộ với một địa chỉ IP công cộng để kết nối với thế giới bên ngoài. NAT dùng để chia sẻ nhiều máy tính trong mạng LAN nội bộ sử dụng được Internet, nhưng cũng chính vì thế mà các máy tính nội bộ gặp khó khăn trong việc thực hiện cuộc gọi VoIP qua Inetrnet.

Đó chính là vấn đề trở ngại khi truyền thoại qua giao thức RTP. Trong Giao thức RTP như chúng ta đã biết đó là thoại được chuyển trên hai đường khác nhau là đường phát và đường thu, Vấn đề NAT nằm ở chỗ tín hiệu thoại từ bên ngoài vào bên trong qua giao thức RTP không thực hiện được còn chiều ngược lại thì thực hiện tốt. Hay nói cách khác vấn đề NAT làm cho các cuộc gọi từ Internet đàm thoại vào các máy nội bộ qua NAT thì không nghe được, còn trong trường hợp các cuộc gọi từ các máy nội bộ ra các máy internet thì nghe tốt. Vấn đề NAT trên được giải quyết trong Asterisk bằng việc khai báo thông số NAT=yes trong cấu hình kênh giao thức SIP.

IAX – INTER ASTERISK EXCHANGE IAX là một giao thức được tạo bởi các tác giả của phần mềm Asterisk. Bởi vì sự hạn chế của SIP và H. Họ chọn để tạo ra một chuẩn mới cho phép Asterisk server làm được rất nhiều thứ mà không thể làm được với các chuẩn khác. IAX xuyên qua NAT một cách dễ dàng.

Hầu hết các tường lửa (firewall) và các Gateway Internet tại nhà đều sử dụng NAT, cũng như các nhà cung cấp dịch vụ.323 phải làm việc gian khổ để phát triển các chuẩn cho phép chúng đi qua các dạng khác nhau của NAT. Trong khi đó, IAX có thể làm việc qua hầu hết các thiết bị NAT để ra ngoài. IAX có khả năng cấu hình hơn là các giao thức khác khi giao tiếp với Asterisk. Kể từ khi mã nguồn (source code) được biết đến, chúng ta có thể sửa nó nếu muốn, và sau đó đệ trình những thay đổi này để được đánh giá với mục đích là bao gồm trong các version tương lai của Asterisk.

IAX hỗ trợ trung kế cho các cuộc gọi (trunking of call). Điều này có nghĩa là nhiều cuộc gọi có thể được kết hợp trong một luồng đơn.Thông qua khả năng của trung kế, một số lượng băng thông đáng kể có thể được tiết kiệm bởi không có các overhead của nhiều luồng. IAX kết nối giữa các server hỗ trợ chức năng “ switch command ”, để các cuộc gọi được định tuyến một cách hiệu quả giữa các Asteriskserver. SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 13 CHƯƠNG 2: XÂY DỰNG TỔNG ĐÀI ASTERISK CHƯƠNG 2: XÂY DỰNG TỔNG ĐÀI NỘI BỘ ASTERISK 2.

CÀI ĐẶT TỪNG PHẦN Do đề tài thực hiện cài tổng đài Asterisk trên máy tính cá nhân chạy hệ điều hành Windows 10 của Microsoft, nên cần cài thêm phần mềm máy ảo Oracle VM VirtualBox để cài hệ điều hành CentOS sau đó dựng tổng đài Asterisk trên đó. Để cài đặt thành công một tổng đài IP PBX Asterisk tiến hành cài đặt các phần sau: ✓ Cài đặt máy ảo Oracle VM VirtualBox, hướng dẫn cài tại địa chỉ : http://forum.vn/forum/bkav-forum/bkav-contest/29597-huong-dan- tao-may-ao-bang-virtualbox-complete ✓ Cài đặt một hệ điều hành Linux lên máy ảo, ở đây em dùng CentOS 6.7 Hướng dẫn cài tại địa chỉ: https://www.com/cai-dat-centos-tren- virtualbox/ ✓ Cài đặt các gói tổng đài Asterisk. ✓ Cài đặt công cụ hỗ trợ vận hành, cấu hình Asterisk. - Phần mềm MobaXterm, phần mềm softPhone (X-lite, Zoiper).

CÀI ĐẶT ASTERISK TRÊN CENTOS 6.7 Mục tiêu: Cài đặt Asterisk từ source trên CentOS 6. CHUẨN BỊ MÁY ẢO CENTOS 6.1: Giao diện CentOS 6.7 Tiến hành đăng nhập với usename và password đã đăng ký khi cài CentOS Tiến hành update cho CentOS6.7 bằng lệnh sau: - #Yum update –y : lệnh dùng nâng cấp CenOS lênh phiên bản cao nhất SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 14 CHƯƠNG 2: XÂY DỰNG TỔNG ĐÀI ASTERISK - #Reboot : khởi động lại CentOS 2. CÀI ĐẶT ASTERISK 13. TẢI CÁC GÓI PHẦN MỀM CẦN THIẾT TRƯỚC KHI CÀI ĐẶT ▪ Tạo thư mục lưu trữ các tập tin cài đặt Asterisk #yum install wget vim -y #cd /usr/src ▪ Dùng lệnh wget để tải các gói cài đặt Asterisk.

Các gói này được lấy từ trang web chính của Asterisk http://www.org/downloads bằng cách click chuột phải vào dòng download của các gói cài đặt và chọn Copy link location. ▪ Lần lượt download các gói tin về thư mục /usr/src/asterisk gồm: ✓ Asterisk 13.x ✓ dahdi-linux-complete Gói dahdi-linux-complete này chứa các driver cho các phần cứng giao tiếp với asterisk do Digium phân phối, và một số thư viện cho việc có thực hiện giao tiếp với phần cứng hay không.0 “Thư viện libpri cung cấp các driver cho các card giao tiếp trung kế PRI và một số phần cứng khác. Ngay cả Asterisk không giao tiếp với card PRI nào chúng ta cũng nên cài đặt gói này bởi một số module của Asterisk yêu cầu thư viện này.” Ta dùng các lệnh sau: # wget http://downloads.org/pub/telephony/dahdi-linux- complete/dahdi-linux-complete-current.gz # wget http://downloads.org/pub/telephony/libpri/libpri-current.gz # wget http://downloads.org/pub/telephony/asterisk/asterisk-13 current.gz ▪ Vì các gói tin download về dưới dạng nén nên ta phải giải nén trước khi compile vào hệ thống. ta dùng các câu lệnh sau để giải nén các gói cài đặt: # tar -zxvf asterisk-13-current.gz # tar -zxvf dahdi-linux-complete-current.gz # tar -zxvf libpri-current.gz ▪ Cài đặt các gói phụ # yum groupinstall "Development Tools" –y # cd dahdi-linux-complete-* # make && make install && make config # cd.

# cd libpri-* SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 15 CHƯƠNG 2: XÂY DỰNG TỔNG ĐÀI ASTERISK # make && make install # cd. ▪ Cài đặt các gói cần thiết cho Asterisk: #cd /usr/src/asterisk-* #./contrib/scripts/install_prereq install #./contrib/scripts/install_prereq install-unpackaged #./configure --libdir=/usr/lib64 (./configure --libdir=/usr/lib nếu bạn sử dụng CentOS 32bit) #make menuselect #./contrib/scripts/get_mp3_source.sh (Chọn như Picture để cài thêm format .2: Cài định dạng đuôi .mp3 #make && make install && make config && make install-logrotate #make samples (cai đặt các file cấu hình mẫu) #chkconfig asterisk on (tự start asterisk khi khởi động server) #sed -i -e s,'SELINUX=enforcing','SELINUX=disabled', /etc/selinux/config #chkconfig iptables off #service iptables stop #reboot (restart lại server) #service asterisk start (start asterisk) SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 16 CHƯƠNG 2: XÂY DỰNG TỔNG ĐÀI ASTERISK Sau khi cài xong Asterisk sẽ có giao diện như sau: Hình 2.3: Giao diện server Asterisk 2. CÁC CÔNG CỤ HỖ TRỢ VẬN HÀNH VÀ CẤU HÌNH ASTERISK 2. MOBAXTERM Đây là một SSH Client , ứng dụng quản trị máy chủ từ xa thông qua SSH dành cho máy khách, MobaXterm có các tính năng sau: • Lưu trữ thông tin của nhiều server theo dạng profile.

Muốn kết nối vào server nào thì click 1 cái, nó sẽ tự mở tab mới. • Có tính năng Multi Execution – Nghĩa là gõ một lệnh thực thi cùng lúc trên nhiều server. • Hỗ trợ lưu session, không cần gõ lại mật khẩu mà chỉ cần nhập username là nó tự tìm session phù hợp. • Remote vào máy tính khác, giống như Teamviewer.4: Giao diện Mobaxterm khi ssh vào server SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 17 CHƯƠNG 2: XÂY DỰNG TỔNG ĐÀI ASTERISK 2.

CÁC PHẦN MỀM SOFTPHONE Các phần mềm dùng gọi điện thoại VoIP thông dụng nhất hiện nay: ▪ X-lite ▪ Zoiper ▪ PortGo ▪ Jitsi Hình 2.5a: phần mềm Zoiper Hình 2.5b: phần mềm Jitsi Hình 2.5c: phần mềm X-Lite Hình 2.5d: phần mềm PortGo SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 18 CHƯƠNG 2: XÂY DỰNG TỔNG ĐÀI ASTERISK 2. CÁCH CẤU HÌNH ASTERISK Thư mục /etc/asterisk chứa tất cả các tập tin cấu hình cho Asterisk. Mỗi ứng dụng riêng của Asterisk đều có tập tin cấu hình riêng của mình, tuy nhiên có 2 tập tin cấu hình quan trọng nhất là sip.conf và extensions.conf trong /etc/asterisk.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ