Điều đầu tiên và được sử dụng rộng rãi là tính đơn giản hố để giảm số cuộc gọi bởi kiểu user. Ví dụ:
Các tổng đài PBX thương mại (một cuộc gọi đồng thời cho mỗi 5 extension) Người sử dụng gia đình (một cuộc gọi đồng thời cho 16 user)
Ví dụ: Cơng ty có một văn phịng chính với 120 extension và 2 chi nhánh, chi nhánh đầu tiên có 30 extension và chi nhánh thứ 2 với 15 extension. Mục tiêu của chúng tơi là định kích thước số đường trung kế E1 trong văn phịng chính và băng thơng được u cầu cho mạng Fram-Relay:
1.a Số đường T1
Tổng số extension sử dụng đường T1: 120+30+15=165 lines
Việc sử dụng 1 đường trung kế cho mỗi 5 extension cho thương mại sử dụng tổng số đường line = 33 và xấp xỉ 2xT1 lines
1.b Băng thơng u cầu
Chúng ta chọn G.729 codec vì băng thơng u cầu, chất lượng thoại và môi trường tiêu tốn CPU.
Với một đường trung kế cho mỗi 5 extension:
Băng thông yêu cầu cho chi nhánh số 1 (Frame-relay): 26.8*6=160.8 Kbps Băng thông yêu cầu cho chi nhánh số 2 (Frame-relay): 26.8*3= 80.4 Kbps
1.8.9.b Phương pháp Erlang B
1.a Số cuộc gọi đồng thời trong VoIP
Đơi khi, tính đơn giản khơng phải là phưong pháp tốt nhất. Khi bạn có dữ liệu phía trước, bạn có thể u cầu lên nhiều đặc tính khác. Agner Karup Erlang (công ty điện thoại Copenhagen, 1909) đã phát triển một cơng thức để tính tốn số đường line trong một nhóm trung kế giữa hai thành phố. Chúng ta sẽ sử dụng công thức này. Erlang là một đơn vị đo đạc lưu lượng thường được sử dụng trong viễn thơng, nó được sử dụng để miêu tả độ lớn của lưu lượng trong một giờ.
Ví dụ: 20 cuộc gọi trong một giờ với 5 phút trung bình cho mỗi cuộc gọi. Bạn tính số erlang như sau:
Lưu lượng tính theo phút trong một giờ là: 20x5=100 phút Giờ lưu lượng trong một giờ: 100/60=1,66 Erlangs
Bạn có thể tính được con số này từ một cuộc gọi đã được ghi nhật ký vào hệ thống và sử dụng nó để thiết kế ra mạng của bạn để tính tốn số đường line u cầu. Mỗi đường line được biết đến có thể tính cho băng thơng u cầu.
Erlang B là phương pháp được sử dụng nhiều nhất để tính số đường line trong một nhóm trung kế. Nó giả sử các cuộc gọi đến một cách ngẫu nhiên (dạng phân bố
Poisson) và các cuộc gọi bị khoá ngay lập tức được giải toả. Phương pháp này yêu cầu bạn phải biết về lưu lượng giờ cao điểm Busy Hour Traffic (BHT). Bạn có thể có được BHT này từ nhật ký cuộc gọi hay một cách đơn giản là BHT =17% số cuộc gọi phút trong một ngày.
Một biến số quan trọng khác là cấp độ dịch vụ GoS (Grade of Service). GoS định nghĩa số cuộc gọi có thể bị khố trong nhóm đường line. Bạn có thể điều chỉnh thơng số này. Nó thường nằm ở 0.05 (5% các cuộc gọi bị mất) hay 0.01 (1% cuộc gọi bị mất).
Ví dụ: Sử dụng cùng ví dụ trên chúng ta cho một vài dữ liệu trong thành phần lưu lượng. Từ nhật ký cuộc gọi hệ thống chúng ta khám phá ra dữ liệu này.
Dữ liệu từ cuộc gọi ghi nhật ký (phút cuộc gọi và BHT)
Chi nhánh chính đến chi nhánh con 1 = 2000 phút, BHT= 300 phút Chi nhánh chính đến chi nhánh con 2 = 1000 phút, BHT = 170 phút Chi nhánh 1 đến chi nhánh 2 = 0, BHT = 0, GoS=0.01
Chi nhánh chính đến chi nhánh con 1 - BHT = 300phút/60 = 5 Erlangs Chi nhánh chính đến chi nhánh con 2 - BHT = 170phút/60 = 2.83 Erlangs Sử dụng bảng tính Erlang tại www.erlang.com
1.b Băng thơng yêu cầu
Chúng ta sử dụng một mạng WAN nơi mà gói mất hiếm khi xảy ra. Chúng ta sẽ chọn G.729 codec vì chất lượng thoại tốt của nó và dữ liệu được nén (8Kbps).
Chọn codec: G.729
Lớp Datalink: Frame-relay
Ước lượng băng thông cho chi nhánh 1: 28.8x11 = 294.8 Kbps Ước lượng băng thông cho chi nhánh 2: 26.8x8 = 214.40 Kbps
1.8.10 Giảm băng thơng u cầu cho VoIP
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 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.
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:
# ./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
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
Q 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 port=5038 bindaddr=0.0.0.0 [vinh]
; cho phép truy cập qua web ; 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 q 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 hồ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 hồ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
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 chungabort halt abort halt add extension debug channel no debug channel help show agents show applications show application show channel show channels show codecs show conferences show dialplan show locals show queues
show voicemail users
2.3.1.b Các lệnh cho SIP
sip debug sip no debug sip reload
sip show channels sip show channel sip show peers
2.3.1.c Quản trị Server
restart now
: huỷ các tiến trình đang bị treo : thêm 1 số nội bộ vào trong ngữ : dị lỗi trên một kênh nào đó : hủy dị lỗi trên một kênh nào đó : hiển thị danh sách hỗ trợ
: hiển thị trạng thái của các agent
: hiển thị danh sách các ứng dụng Asterisk hỗ trợ : mô tả chi tiết một ứng dụng
: hiển thị thông tin một kênh : hiển thị thông tin nhiều kênh : hiện thị thông tin các codec
: hiển thị trạng thái của các phòng hội nghị : hiển thị sơ đồ quay số
: hiển thị trạng của các kênh nội bộ : hiển thị trạng thái các hàng đợi
: hiển thị các hộp thư thoại của người dùng đã đăng ký : dò lỗi SIP
: hủy dò lỗi SIP : reload sip.conf
: hiển thị các kênh SIP đang hoạt động : hiển thị thông tin kênh SIP chi tiết
: hiển thị danh sách các số SIP trong tổng đài : 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
stop now
stop when convenient show version
: reload cấu hình : tắt Asterisk lập tức
: tắt Asterisk khi khơng có cuộc gọi nào : hiển thị phiên bản Asterisk
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