Giảm băng thông yêu cầu cho VoIP

Một phần của tài liệu NGHIÊN CỨU HOẠT ĐỘNG VÀ TRIỂN KHAI MẠNG IP PBX ASTERISK (Trang 29)

Có 3 phương pháp để làm giảm băng thông được yêu cầu cho các cuộc gọi VoIP: + Nén RTP header

+ IAX trunked

+ VoIP tải (payload)

1.8.10.a Nén RTP Header

Trong mạng Frame-relay và PPP, ta có thể sử dụng nén RTP header, nén RTP header được định nghĩa trong RFC 2508. Nó là một chuẩn IETF cho nhiều router. Tuy nhiên chú ý rằng một vài loại router yêu cầu một tập đặc tính khác cho tài nguyên này được sẵn sàng.

Sự ảnh hưởng của việc sử dụng nén RTP header này là không có cơ sở. Nó giảm băng thông được yêu cầu trong ví dụ của chúng ta từ 26.8 Kbps cho mỗi cuộc đàm thoại xuống 11.2 Kbps, giảm được 58.2%.

1.8.10.b IAX2 trunk mode

Nếu đang kết nối 2 server Asterisk, ta có thể sử dụng giao thức IAX2 trong dạng trunk mode. Công nghệ tiên phong này không yêu cầu bất kỳ một router cụ thể nào và nó có thể áp dụng cho bất kỳ loại datalink nào. IAX2 trunk mode sử dụng lại cùng phần header từ các cuộc gọi thứ 2 và các cuộc gọi sau đó. Sử dụng G.729 và một đường PPP link, cuộc gọi đầu tiên tốn 30 Kbps băng thông, nhưng cuộc gọi thứ hai sử dụng cùng phần header như cuộc gọi thứ nhất nên đã giảm mức băng thông cần thiết cho cuộc gọi này xuống 9.6 Kbps.

1.8.10.c Giảm VoIP tải

Thật không may phương pháp này không có trong Asterisk. Nó thường sử dụng lược đồ trong các gateway trên Internet. Việc sử dụng phần tải (payload) lớn làm tăng độ trễ của hệ thống.

CHƯƠNG 2: CÀI ĐẶT TỔNG ĐÀI IP PBX ASTERISK 2.1 Cái đặt từng phần

Để cài đặt thành công một tổng đài IP PBX Asterisk ta tiến hành cài đặt các phần sau:  Cài đặt 1 hệ điều hành Linux. Ở đây ta chọn hệ điều hành CentOS 5.2  Cài đặt các gói trong tổng đài Asterisk.

 Cài đặt Asterisk-GUI để hỗ trợ việc thiết lập và quản lý tổng đài bằng WEB một cách nhanh, dễ sử dụng.

2.1.1 Cài đặt hệ điều hành CentOS

Download CentOS DVD tại địa chỉ:

http://mirror.nsc.liu.se/CentOS/5.2/isos/i386/CentOS-5.2-i386-bin-DVD.iso

Các bước cài đặt chính:

Hình 14: Cài đặt CentOS - Khởi động việc cài đặt

Hình 16: Cài đặt CentOS - Chọn ngôn ngữ

Hình 17: Cài đặt CentOS - Chọn kiểu bàn phím

Hình 19: Cài đặt CentOS - Phân vùng ổ cứng cho CentOS

Trong kỹ thuật phân vùng trong Linux hay CentOS thì người ta thường chia ra làm 4 phần chính:

Phân vùng /boot: khoảng 100MB dùng để lưu dữ liệu khởi động hệ thống.

Phân vùng swap: tốt nhất là dung lượng gấp 2 lần RAM, đối với hệ thống >4GB RAM thì ta chọn bằng với dung lượng RAM. Phần vùng swap sẽ là một phân vùng giúp cho hệ điều hành hoạt động nhanh hơn, tương tự như vùng nhớ Virtual Memory trong Windows.

Phân vùng /home: dung lượng khoảng một nửa dung lượng còn lại chứa dữ liệu cho user. Phân vùng / : đây là phân vùng root chiếm phần dung lượng còn lại.

Hình 20: Cài đặt CentOS - Thiết lập địa chỉ IP

Phần thiết lập địa chỉ IP: ta có thể sử dụng Dynamic cấp địa chỉ IP tự động hoặc tự thiết lập địa chỉ IP bằng tay. Phần thiết lập địa chỉ IPv6 có thể bỏ qua vì không sử dụng.

Hình 21: Cài đặt CentOS - Chọn múi giờ

Hình 22: Cài đặt CentOS - Nhập password Console cho hệ thống

Phần thiết lập cách cài đặt: để đơn giản ta chỉ cần cài theo kiểu server. Không cần cài những kiểu có giao diện như Gnome hay KDE vì sau này ta sẽ cấu hình trực tiếp qua Console hoặc bằng phần mềm Putty.

Chọn Customize now để cài đặt thêm các gói hỗ trợ cho Asterisk. (adsbygoogle = window.adsbygoogle || []).push({});

Hình 24: Cài đặt CentOS - Chọn các gói hỗ trợ cho Asterisk

Phần chọn các gói hỗ trợ cho Asterisk: ta cần chọn Development Tools, chi tiết các gói trong này ta có thể bấm nút Optional packages để tìm hiểu chi tiết hơn. Các gói này sẽ hỗ trợ các chương trình và thư viện đủ để ta cài đặt và vận hành thành công Asterisk sau này.

Hình 26: Cài đặt CentOS - Chuẩn bị cài đặt

Hình 27: Cài đặt CentOS - Quá trình cài đặt

Quá trình cài đặt CentOS diễn ra khoảng 20 phút sau đó ta khởi động lại hệ thống và tiến trình cài đặt CentOS thành công, tiếp theo là cài đặt các gói thực hiện chức năng tổng đài IP PBX Asterisk.

2.1.2 Cài đặt các gói trong tổng đài Asterisk2.1.2.a Chuẩn bị các tập tin trước khi cài đặt 2.1.2.a Chuẩn bị các tập tin trước khi cài đặt

+ Tạo thư mục lưu trữ các tập tin cài đặt Asterisk

# cd /usr/src # mkdir asterisk # cd asterisk

+ 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.asterisk.org/downloads bằng các 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.

 Asterisk-1.4.21.2  Zaptel-1.4.21.1  Libpri-1.4.7  Addons-1.4.7 + Ta sử dụng các lệnh sau: # wget http://downloads.digium.com/pub/asterisk/releases/asterisk-1.4.21.2.tar.gz # wget http://downloads.digium.com/pub/zaptel/releases/zaptel-1.4.12.1.tar.gz # wget http://downloads.digium.com/pub/libpri/releases/libpri-1.4.7.tar.gz # wget http://downloads.digium.com/pub/asterisk/releases/asterisk-addons-1.4.7.tar.gz

Hình 28: Tải các gói cài đặt Asterisk

+ Vì các gói tin download về dưới dạng tập tin nén nên ta phải giải nén trước khi compile vào trong hệ thống. Ta sử dụng các câu lệnh sau để giải nén các gói cài đặt:

# tar -xzvf asterisk-1.4.21.2.tar.gz # tar -xzvf zaptel-1.4.12.1.tar.gz # tar -xzvf libpri-1.4.7.tar.gz

# tar -xzvf asterisk-addons-1.4.7.tar.gz

Khi giải nén xong trong thư mục /usr/src/asterisk ta có 4 thư mục con:  asterisk-1.4.21.2

 zaptel-1.4.12.1  libpri-1.4.7

 asterisk-addons-1.4.7

2.1.2.b Compiling và cài đặt các gói

+ Cài đặt Zaptel

Gói Zaptel nên cài đặt trước tiên. Ta dùng lần lượt các lệnh sau để cài đặt:

# cd zaptel-1.4.12.1 # ./configure

# make # make install + Cài đặt libpri # cd ../ libpri-1.4.7 # make # make install + Cài đặt Asterisk # cd ../asterisk-1.4.21.2 # ./configure

Hình 29: Khi chạy configure cho compile

# make menuselect

Hình 30: Tuỳ chọn menu sau khi tạo menu bằng lệnh make menuselect

# make

Hình 31: Sau khi dùng lệnh make install thành công

Tạo các tập tin cấu hình mẫu

# make samples

Hình 32: Tạo các tập tin cấu hình mẫu (adsbygoogle = window.adsbygoogle || []).push({});

Tạo các tài liệu chương trình của Asterisk

# make progdocs

+ Cài đặt asterisk-addons # asterisk-addons-1.4.7 # ./configure # make Hình 34: Cài đặt asterisk-addons # make install

Quá trình cài đặt Asterisk thành công.

Chú ý sau khi cài đặt thành công Asterisk ta có các thư mục quan trọng sau:

/etc/asterisk/ : chưa các file configuration dạng *.conf, bạn có thể thay đổi trực tiếp các file config bằng một editor (vi) và reload asterisk để thay đổi có hiệu lực.

/var/lib/asterisk/ : Chứa các file library, sound ..etc của Asterisk.

2.1.2.c Cài đặt Asterisk-GUI

+ Ta dùng lệnh svn để tải Asterisk-GUI về và tiến hành cài đặt. Ta lần lượt sử dụng các lệnh sau: # svn co http://svn.digium.com/svn/asterisk-gui/branches/2.0 asterisk-gui # cd asterisk-gui # ./configure # make # make install

+ Sau khi cài đặt xong ta cần cấu hình 2 file sau: - Sửa tập tin manager.conf trong thư mục /etc/asterisk/ # vi /etc/asterisk/manager.conf

Sửa tập tin manager.conf thành:

[general] enabled=yes

webenabled=yes ; cho phép truy cập qua web port=5038

bindaddr=0.0.0.0 ; lắng nghe trên tất cả các port

secret=password ; password của user vinh

read=system,call,log,verbose,command,agent,user,config,originate,read,write write=system,call,log,verbose,command,agent,user,config,originate,read,write Bấm “ESC:, bấm tiếp “:wq” và “Enter” để lưu tập tin manager.conf mới sửa.

- Sửa tập tin http.conf trong thư mục /etc/asterisk/ # vi /etc/asterisk.http.conf

Sửa tập tin http.conf thành:

[general] enabled=yes bindaddr=0.0.0.0 bindport=8088 prefix=gui enablestatic=yes

Bấm “ESC:, bấm tiếp “:wq” và “Enter” để lưu tập tin manager.conf mới sửa.

+ Vào thư mục /usr/src/asterisk/asterisk-gui và kiểm tra xem quá trình cài đặt Asterisk-GUI thành công không:

# cd /usr/src/asterisk/asterisk-gui # make checkconfig

+ Khởi động lại Asterisk

# asterisk -r CLI> restart now

+ Vào đường dẫn sau để truy cập vào Asterisk-GUI (ip là địa chỉ IP của server cài Asterisk)

http://ip:8088/gui/static/config/cfgbasic.html

2.2 Giới thiệu Trixbox các thành phần

Có rất nhiều cách để thực hiện cài đặt một tổng đài Asterisk. Ngoài cách cài đặt từng bước ở trên ta có những sản phẩm khác đóng gói thành một bộ, khi cài đặt là ta có ngay một giải pháp hoàn chỉnh của một tổng đài IP PBX Asterisk.

Trixbox là một ví dụ điển hình cho gói phần mềm hoàn chỉnh cho một tổng đài Asterisk. Cài đặt và vận hành rất dễ dàng. Khi cài đặt xong Trixbox ta có các chức năng: Asterisk trên hệ điều hành CentOS, cấu hình tổng đài qua Web, có thể xem các báo cáo về hệ thống, thống kê các thông số trong tổng đài, chi tiết cuộc gọi, có thể thêm các ứng dụng về voicemail, điện thoại hội nghị …

2.2.1 Cài đặt Trixbox (adsbygoogle = window.adsbygoogle || []).push({});

Download Trixbox CD tại địa chỉ:

Các bước cài đặt chính:

Hình 35: Giao diện bắt đầu cài đặt Trixbox

Hình 36: Chọn loại bàn phím

Hình 38: Password để cấu hình Asterisk

Hình 39: Tiến trình cài đặt Trixbox 1

2.3 Các hỗ trợ trong vận hành và cấu hình Asterisk

2.3.1 Một số lệnh chính trong CLI của Asterisk

Để vào CLI của Asterisk ta dùng lệnh # asterisk -r

2.3.1.a Các lệnh chung

abort halt : huỷ các tiến trình đang bị treo

add extension : thêm 1 số nội bộ vào trong ngữ

debug channel : dò lỗi trên một kênh nào đó

no debug channel : hủy dò lỗi trên một kênh nào đó

help : hiển thị danh sách hỗ trợ

show agents : hiển thị trạng thái của các agent

show applications : hiển thị danh sách các ứng dụng Asterisk hỗ trợ

show application : mô tả chi tiết một ứng dụng

show channel : hiển thị thông tin một kênh

show channels : hiển thị thông tin nhiều kênh

show codecs : hiện thị thông tin các codec

show conferences : hiển thị trạng thái của các phòng hội nghị

show dialplan : hiển thị sơ đồ quay số

show locals : hiển thị trạng của các kênh nội bộ

show queues : hiển thị trạng thái các hàng đợi

show voicemail users : hiển thị các hộp thư thoại của người dùng đã đăng ký

2.3.1.b Các lệnh cho SIP

sip debug : dò lỗi SIP

sip no debug : hủy dò lỗi SIP

sip reload : reload sip.conf (adsbygoogle = window.adsbygoogle || []).push({});

sip show channels : hiển thị các kênh SIP đang hoạt động

sip show channel : hiển thị thông tin kênh SIP chi tiết

sip show peers : hiển thị danh sách các số SIP trong tổng đài

2.3.1.c Quản trị Server

restart now : khởi động lại Asterisk lập tức

restart when convenient: khởi động Asterisk khi không có cuộc gọi nào

reload : reload cấu hình

stop now : tắt Asterisk lập tức

stop when convenient : tắt Asterisk khi không có cuộc gọi nào

2.3.2 Các công cụ hỗ trợ vận hành và cấu hình Asterisk2.3.2.a Phần mềm Putty 2.3.2.a Phần mềm Putty

Phần mềm Putty hỗ trợ ta trong việc cấu hình trực tiếp lên hệ điều hành Linux từ xa dùng SSH. Đây là một công cụ rất thông dụng để cấu hình Linux ở dạng Console lệnh.

Ta có thể tải phần mềm từ: http://the.earth.li/~sgtatham/putty/0.60/x86/putty.exe Sau đây là một số hình ảnh của chương trình Putty

Hình 42: Giao diện phần mềm Putty - Đăng nhập

2.3.2.b Phần mềm WINSCP

Phần mềm WINSCP giúp ta thao tác trên các tập tin và phân vùng ổ cứng trong môi trường Linux giống như chương trình Windows Commander trong Windows, hay NC dùng trong DOS.

WINSCP giúp ta tiết kiệm rất nhiều thời gian trong việc cập nhật và quản lý các tập tin trong Linux, bằng các thao tác rất đơn giản.

Ta có thể tải phần mềm từ: http://winscp.net/eng/index.php Sau đây là một số hình ảnh của chương trình WINSCP

Hình 44: Giao diện phần mềm WINSCP - Đăng nhập

CHƯƠNG 3: TÌM HIỂU CÁCH CẤU HÌNH ASTERISK 3.1 Tìm hiểu các tập tin cấu hình trong Asterisk

Ta có thể cấu hình Asterisk trong console mode, hoặc có một cách tiện lợi hơn là biên tập trực tiếp các tập tin cấu hình trong /etc/asterisk. Mỗi ứng dụng riêng của Asterisk như voicemail, zaptel, music-on-hold, meetme, conference, iax… đề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

extension.conf:

- sip.conf : tập tin cấu hình về các thông tin của các số nội bộ client như username, password, IP, type, security, codec là thành phần căn bản nhất lưu giữ thông tin trong Asterisk.

- extension.conf: tập tin cấu hình về các luật định tuyến cuộc gọi, luật quay số (sơ đồ quay số), các extension trong ngoài và những tính năng đặc biệt khác. extensions.conf là tập tin quan trọng nhất trong bất kỳ cấu hình Asterisk nào.

Các tập tin cấu hình khác:

- voicemail.conf : tập tin cấu hình cho hệ thống hộp thư thoại (voice-mail) của Asterisk. Asterisk có thể dùng lệnh Sendmail trên CentOS để gởi mail đến cho các địa chỉ được lưu trong tập tin cấu hình này.

- zaptel.conf : tập tin này nằm ngoài /etc, là tập tin chứa thông số index, driver dành cho Linux khi kích hoạt các thiết bị điện thoại cắm trực tiếp vào Asterisk thông qua cổng PCI.

- zapata.conf : cũng thuộc module zaptel, nhưng là tập tin kết nối các thiết bị điện thoại đã được khai báo vào hệ thống chính của Asterisk.

- iax(2).conf : các thông số về IAX (inter-asterisk protocol) dùng khi kết nối 2 Asterisk box với nhau.

- meetme.conf : một chức năng tạo room conference căn bản.

3.2 Ngữ pháp của Asterisk (adsbygoogle = window.adsbygoogle || []).push({});

Asterisk được điều khiển bằng các tập tin cấu hình dạng văn bản (text) được lưu trong thư mục /etc/asterisk. Kiểu định dạng tập tin này tương tự như tập tin “.ini” trong Windows. Dấy chẩm phẩy “;” được sử dụng để ghi chú, dấu “=” và “=>” tương đương nhau và dấu khoảng trống được bỏ qua.

[Session]

Key = value ; Khởi tạo biến [Session 2]

Key => value ; Khai báo đối tượng

Asterisk biên dịch “=” và “=>” cùng một cách thức. Điều khác biệt là cú pháp được sử dụng ở đây khác nhau cho đối tượng và biến. Cú pháp là giống nhau giữa tất cả các tập tin và có 3 loại ngữ pháp được chỉ ra bên dưới:

Loại ngữ pháp

Đối tượng được tạo ra Tập tin cấu hình Ví dụ Nhóm đơn Tất cả trên cùng một dòng extensions.conf exten=>4000,1,Dial(SIP/4000) Tuỳ chọn kế thừa Tuỳ chọn được tạo trước, đối tượng kế thừa các tuỳ chọn zapata.conf [channels] context=default signalling=fxs_ks group=1 channel => 1 Dạng thực thể phức hợp Mỗi thực thể nhận một ngữ cảnh sip.conf iax.conf [cisco] type=friend secret=mysecret host=10.1.30.50 context=trusted [xlite] type=friend secret=xlite host=dynamic

Bảng 2: Các kiểu ngữ pháp trong Asterisk

3.2.1 Nhóm đơn

Kiểu định dạng nhóm đơn được sử dụng trong các tập tin extensions.conf,

meetme.confvoicemail.conf là ngữ pháp cơ bản nhất. Mỗi đối tượng được khai báo với các tùy chọn trong cùng một hàng.

Ví dụ:

[Session]

Object 1 => op1,op2,op3 Object 2=> op1b,op2b,op3b

Trong ví dụ này, Object 1 được tạo ra với các tùy chọn op1, op2, op3 trong khi object 2 được tạo ra với các tùy chọn op1b, op2b, op3b.

3.2.2 Các tùy chọn đối tượng kiểu ngữ pháp thừa kế

Kiểu định dạng này được sử dụng bởi zapata.confagents.conf nơi có nhiều tùy

Một phần của tài liệu NGHIÊN CỨU HOẠT ĐỘNG VÀ TRIỂN KHAI MẠNG IP PBX ASTERISK (Trang 29)