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.