Cài đặt Asterisk

Một phần của tài liệu nghiên cứu và triển khai hệ thống voip cho doanh nghiệp (Trang 38 - 86)

3.2.1. Yêu cầu phần cứng

Tùy theo mục đích sử dụng và số lượng người dùng hệ thống sẽ được trang bị phần cứng theo các mức độ khác nhau. Dưới đây là một khuyến nghị từ cộng đồng sử dụng Asterisk.

Mục đích Số lượng các kênh Cấu hình tối thiểu

Thử nghiệm, học tập 1-5 400-MHz x86, 256 MB RAM

Hệ thống cho văn phòng hoặc

nhà riêng 5-10 1-GHz x86, 512 MB RAM

Hệ thống cho doanh nghiệp

nhỏ Tới 15 kênh 3-GHz x86, 1 GB RAM

Hệ thống thương mại cỡ vừa và

lớn Hơn 15

Dual CPUs hoặc triển khai trên nhiều server

3.2.2. Lắp đặt phần cứng

Máy chủ: chú ý thông số điện thế trên khe PCI phải tương thích với các card giao tiếp cần kết nối

Card giao tiếp mạng: Kết nối máy chủ với mạng IP

Card giao tiếp analog: Kết nối máy chủ với mạng PSTN. Card này có hai loại : FXO – Foreign eXchange Office – Kết nối tới nhà cung cấp PSTN

FXS – Foreign eXchange Station – Kết nối các điện thoại PSTN vào PBX

Thông tin về các loại card cũng như giá cả của chúng có thể tham khảo tại trang web http://www.digium.com

3.2.3. Yêu cầu phần mềm

• Hệ điều hành: Linux based. Để thử nghiệm và xây dựng tài liệu này, tôi sử dụng bản phân phối CentOS 5.6

• Gói phần mềm Asterisk: Download từ asterisk

http://www.asterisk.org/downloads

• Zapata driver – zaptel trong trường hợp sử dụng các card kết nối FXO/FXS để nối với mạng PSTN. Nếu hệ thống ko sử dụng các card này (chỉ là IP đơn thuần) thì có thể sử dụng module ztdummy thay thế. Zapata driver có thể download tại http://downloads.digium.com/pub/telephony/zaptel/

• Các yêu cầu về thư viện và trình biên dịch:

o Trình biên dịch gcc phiên bản 3.x trở lên

o Gói mã nguồn nhân kernel-source (với phiên bản nhân 2.4)

o Thư viện bison: giúp Asterisk phân tích câu lệnh CLI

o Thư viện openssl và openssl-devel trợ giúp việc mã hóa

o Thư viện libnewt và gói devel liên quan để biên dịch zaptel driver Các gói phần mềm cần thiết ở thời điểm hiện tại bao gồm

• asterisk-1.4.4.tar.gz • zaptel-1.4.2.1.tar.gz

Các gói rpm cần cài đặt thêm cho bản CentOS 5.6 (nếu chưa cài) • gcc-3.2.2-5 • bison-1.35-6 • openssl-devel-0.9.7a-2 • openssl-0.9.7a-2 • newt-0.51.4-1 • newt-devel-0.51.4-1 • kernel-source-2.4.20-8

Chú ý : khi cài các gói trên sẽ có thông báo cần cài đặt một số gói khác liên quan. 3.2.4. Biên dịch và cài đặt

Để đơn giản, ta copy các file nén vào thư mục /usr/src rồi dùng lệnh sau giải nén :

cd /usr/src/

tar -zxvf zaptel-*.tar.gz tar -zxvf asterisk-*.tar.gz

Sau khi giải nén, ta có các thư mục chứa mã nguồn tương ứng. Thực hiện biên dịch và cài đặt cho với từng gói này như các phần dưới đây

Biên dịch và cài đặt Zaptel

Asterisk sử dụng module chan_zap để giao tiếp với nhân hệ điều hành và điều khiển phần cứng. Giao diện điều khiển zaptel là một module động được nạp vào nhân hệ điều hành. Ở đây chúng ta sẽ biên dịch và sử dụng hai module chính đó là zaptel.o và wctdm.o

Để biên dịch được module zaptel trong với nhân hệ điều hành Redhat Linux 9.0 (bản nhân 2.4), trình biên dịch cần tìm kiếm các file tiêu đề và thư viện kernerl- source tại thư mục /usr/linux-2.4. Tuy nhiên, gói kernel-source lại đặt các file này trong thư mục /usr/src/linux-2.4.20-8. Vậy nên cần tạo một slink với tên linux-2.4 đến thư mục này như sau:

ln –s /usr/src/linux-2.4.20-8 /usr/srv/linux-2.4

Thông tin cụ thể về tính năng cũng như tối ưu hóa thiết bị dựa trên các tham số này sẽ được tìm hiểu và trình bày trong một phần khác. Để đơn giản, tôi sử dụng thông số mặc định để biên dịch và cài đặt module zaptel. Các lệnh biên dịch và cài đặt như sau: cd /usr/src/zaptel-version make distclean ./configure make make install

make config

Lưu ý với lệnh ./configure, chúng ta có thể thêm vào một số tham số. Để biết chi tiết các tham số này, gõ lệnh ./configure –help. Lệnh make config sẽ tạo script trong thư mục khởi động hệ điều hành để nạp module vào nhân khi hệ thống khởi động.

Với lệnh make instal, module zaptel và một số ứng dụng sẽ được cài đặt vào hệ thống trong đó có hai công cụ hỗ trợ rất hiệu quả đó là ztcfg và zttool. Công cụ ztcfg dùng để kiểm tra và cấu hình thiết bị dựa trên file cấu hình /etc/zaptel.conf. Công cụ zttool được sử dụng để kiểm tra trạng thái của thiết bị. Sử dụng lệnh man để xem thông tin chi tiết về hai chương trình này.

Để bắt đầu khởi động trình điều khiển thiết bị, tôi sử dụng lệnh sau đây:

/etc/init.d/zaptel start

Biên dịch Asterisk

Để biên dịch và cài đặt mặc định, ta thực hiện các lệnh sau

make config cd /usr/src/asterisk-version make distclean ./configure make make install make samples

Lệnh make samples sẽ tạo ra các file cấu hình mẫu với các tham số mặc định giúp cho việc thiết lập và cài đặt Asterisk được nhanh chóng và dễ dàng hơn. Chúng ta sẽ điều chỉnh các tham số này trong các phần sau.

Sau khi biên dịch và cài đặt thành công, chúng ta có thể khởi động và sử dụng Asterisk với các tham số mặc định như trên. Có nhiều cách để khởi động Asterisk nhưng cách đơn giản nhất là thực hiện lệnh sau:

/usr/sbin/asterisk

/user/sbin/asterisk –cvvvv

Nếu Asterisk chưa chạy hoặc

/user/sbin/asterisk –rvvvv

Nếu Asterisk đang hoạt động

Để tạo các script khởi động Asterisk khi boot hệ thống, sử dụng lệnh sau khi

make install make config

3.3. Cấu trúc hệ thống Asterisk3.3.1. Cấu trúc thư mục của Asterisk 3.3.1. Cấu trúc thư mục của Asterisk

Asterisk sử dụng một số thư mục trong hệ thống file Linux để lưu trữ các lệnh thực thi, dữ liệu và các tham số cấu hình. Vị trí và tên các thư mục này có thể thay đổi khi ta biên dịch hệ thống (khi chạy lệnh configure trước khi make – gõ ./configure –help để xem chi tiết). Theo mặc định, Asterisk sử dụng các thư mục sau:

/etc/asterisk: Chứa các file cấu hình của Asterisk (trừ file zaptel.conf được đặt tại thư mục /etc)

/usr/lib/asterisk/modules: Chứa các module động của Asterisk server. Các module này sẽ được nạp khi chạy hoặc khởi động lại dịch vụ

/var/lib/asterisk: Chứa các file và một số thư mục dữ liệu phục vụ cho hoạt động của Asterisk như các file sound, các file thực thi kịch bản cuộc gọi, khóa mã hóa dữ liệu…

/var/spool/asterisk/: Chứa một số file và thư mục liên quan đến hoạt động của Asterisk server như lưu trữ voice mail, ghi nhớ cuộc gọi…

/var/run/: Chứa file ghi process ID của Asterisk server phục vụ việc quản lý tiến trình

/var/log/asterisk/: Chứa các file log hoạt động của Asterisk server trong đó có thư mục /var/log/asterisk/cdr-csv chứa dữ liệu phục vụ việc ghi cước sử dụng

Ngoài ra, các lệnh thực thi của Asterisk server được lưu trữ trong các thư mục của hệ thống như /usr/sbin, /user/lib …

3.3.2. Các file cấu hình của Asterisk

Ngoại trừ file cấu hình thiết bị zaptel.conf, các file chứa các tham số cấu hình của Asterisk server đều được đặt trong thư mục /etc/asterisk (theo mặc định). Asterisk sử dụng rất nhiều tham số cấu hình trong các file khác nhau để thiết lập các tham số hoạt động của dịch vụ như tham số trả lời tự động (amd.conf), tham số phục vụ ghi cước (cdr.conf), tham số mã hóa (codecs.conf). Ở đây tôi chỉ xin tập trung vào một số file cấu hình chính quyết định đến hoạt động của Asterisk server như kịch bản cuộc gọi, dữ liệu người dùng, kết nối PSTN… Các tham số khác có thể thiết lập mặc định nhờ lệnh make samples như hướng dẫn ở phần trên.

Chúng ta sẽ cần xem xét các tham số cấu hình trong các file sau: • zaptel.conf : Các tham số cấu hình cho trình điều khiển card giao tiếp • zapata.conf : Cấu hình cho Asterisk giao tiếp với phần cứng

• extensions.conf : Thiết lập các kịch bản cuộc gọi

• sip.conf : Thông tin cấu hình người dùng và giao thức báo hiệu SIP • iax.conf : Thông tin cấu hình người dùng và cuộc gọi theo kênh IAX

Chú ý khi thay đổi các tham số trong các file cấu hình trên, cần khởi động lại Asterisk server để dịch vụ hoạt động với các tham số mới.

3.4. Dịch vụ tính cước phí A2billing trên Asterisk3.4.1. Giới thiệu 3.4.1. Giới thiệu

A2billing là một mã nguồn mở được dùng để triển khai thanh toán cước phí viễn thông (VoIP) và hỗ trợ tính cước phí cho tổng đài Asterisk.

A2billing là một ứng dụng dạng LAMP (yêu cầu hệ thống phải có : linux, Apache, Mysql (PostgreSQL), PHP) và cấu hình thông qua giao diện web.

3.4.2. Tìm hiểu A2billing

Mô hình bao gồm 2 phần chính là hệ thống tổng đài Asterisk và phần quản lý các chức năng sử dụng A2Billing.

• Phần hệ thống tổng đài Asterisk: là phần thể hiện việc quản lý các thuê bao người dùng(Extensions). Các thuê bao này có thể nạp tiền vào tài khoản của

mình và thực hiện cuộc gọi cho đến khi hết tiền hoặc hết thời gian sử dụng dịch vụ.

• Phần A2Billing: được chia ra làm 2 phần nhỏ là phía người quản trị và phía giao diện người dùng. Ở phía người quản trị ta có thể quản lý mọi họat động của các thuê bao với quyền cao nhất. Phần này cũng cho phép chúng ta tạo ra và quản lý các loại thẻ, bảng giá dịch vụ, hóa đơn,... Còn ở phía giao diện người dùng cho phép người dùng có cách nhìn tổng quan nhất về dịch vụ mà mình đang sử dụng như thông tin tài khoản, lịch sử cuộc gọi, hóa đơn liên quan....

Trong mô hình minh họa các thực thể chính ảnh hưởng và tương tác với nhau đó là:

• Cuộc gọi sẽ được cài đặt trên nền tảng Asterisk

• Sự xác thực thông qua các trường chính là cardnumber, callerID,Sip/iAX friends với tài khoản mà bạn đăng nhập.

• Các loại card có thuộc tính khác nhau nhưng phần chính là tariffgroup(nhóm bảng giá) luôn liên kết với nhau. Tariffgroup sẽ được xác định rõ trong quy trình tính cước.Tariffgroup có thể hiểu là một hoặc nhiều loại card. Mỗi loại card đều bao gồm thông tin về một hoặc nhiều nơi đến(và có nhiều mức cho các nơi đến khác nhau).

• Quy tắc chính của Tariffgroup là tất cả các thực thể sẽ quyết định tới mức giá cho người sử dụng nếu có nhiều mức giá cho một nơi đến(chúng ta sẽ thấy sự cần thiết trong mỗi loại thẻ).

• LCR/LCD(chi phí tối thiểu cho 1 lộ trình/một nhóm) là 2 thuộc tính có thể định nghĩa và cùng nhau đưa ra tính xác thực cho sự hoàn thành thích hợp.

3.5. Dịch vụ FAX qua VoIP 3.5.1. Tìm hiểu về công nghệ Fax 3.5.1. Tìm hiểu về công nghệ Fax

Fax là kỹ thuật điện tử gửi bản sao (copy) trực tiếp qua hệ thống dây dẫn điện. Máy gửi có khả năng rà quét bản gốc, đổi thông tin thành tín hiệu rồi phát qua

đường dây điện đến máy nhận ở một nơi khác. Máy nhận sau đó đổi tín hiệu ngược lại và in bản sao lên giấy.Mỗi máy Fax có một số Fax. Số Fax cũng như số điện thoại, nhưng kết nối với thiết bị đầu cuối là máy Fax.

Thông qua máy Fax có thể nhận và gửi dữ liệu dạng sao chụp. Có thể hình dung đơn giản như sau: máy Fax là máy photocopy từ xa, văn bản gốc được máy gửi sao chụp rồi gửi dữ liệu qua đường truyền để tới máy nhận và in ra.

Kỹ thuật Fax thay thế kỹ thuật liên lạc bằng điện tín trong thập niên 1980. Ngày nay tuy Fax dần dần bị email thay thế trong nhiều lĩnh vực truyền thông, Fax vẫn còn được sử dụng vì những lợi điểm sau:

• Nhiều loại hồ sơ quan trọng không nên dùng email để tránh bị mất hay đánh cắp.

• Ở một số quốc gia chữ ký điện tử trên email không được tín nhiệm bằng chữ ký trên giấy Fax.

Ngoài ra, các hãng công ty lớn dùng Fax servers, máy tính phục vụ với khả năng chuyển các loại hồ sơ thành tín hiệu Fax gửi đi, nhận Fax, chuyển thành email và phát vào máy tính cá nhân của nhân viên, không cần in ra giấy.

3.5.2. Các loại Fax

• Máy Fax đơn thuần

• Máy đa năng gồm khả năng gửi và nhận Fax, scan rà hình và in • Máy Fax analog

• Máy Fax digital • Máy Fax trắng đen • Máy Fax màu

• Phần mềm phát tín hiệu Fax thẳng từ máy tính vào dây dẫn điện thoại (như WinFax của Windows).

3.5.3. Công nghệ Fax qua VoIP

Ứng dụng công nghệ của Fax VoIP giúp nhận và gửi Fax trên bất cứ thiết bị kỹ thuật số nào dễ như in một tài liệu hay gửi một E-mail. Giải pháp giúp tiết kiệm chi phí tối đa cho người sử dụng.

Fax được xây dựng trên nền tảng công nghệ IP, cho phép nhận và gửi tín hiệu Fax qua đường truyền Internet, tự động thông qua việc kết nối với đường dây Fax PSTN để giao tiếp với các máy Fax truyền thống. Fax cung cấp cả phần mềm và giao diện quản lý, cho phép chúng ta có thể nhận fax ở bất kỳ địa điểm nào khi bạn truy cập E-mail và gửi Fax từ bất kỳ ứng dụng nào có thể in được.

Χη ν γ 4. HỆ THỐNG VOIP VOIPSWITCH

4.1. Tổng quát

VoIPSwitch là một nền tảng cho phép để thực hiện các loại hình thoại qua dịch vụ VoIP, với sự chia sẻ, quản lý giao diện đồng bộ. Các tính năng phân biệt của nền tảng này là việc triển khai thực hiện tích hợp hệ thống thanh toán kết hợp với cơ sở dữ liệu MS SQL hoặc MySQL.

Phần mềm VoIPSwitch bao gồm các module sau đây :

VoIPSwitch manager : quản lý các phần chính của ứng dụng. Nó cho phép

để giám sát Toàn bộ các lưu lượng truy cập. Ngoài tình trạng kết nối hiện nay và các loại hình đăng nhập của khách hàng, nó cũng trình bày một số thông tin thêm về các quy trình được diễn ra.

VoIPSwitch Config : quản lý giao diện. Đây là một công cụ cấu hình cho toàn

hệ thống. Nó có một số tính năng cho phép để quản lý thanh toán cước phí của khách hàng và phân tích lưu lượng truy cập thông tin trên cơ sở dữ liệu thống kê.

Web CDR : mô-đun cho phép các khách hàng để kiểm tra xem tài khoản hiện

thời và tình trạng trong lịch sử của những cuộc gọi được thực hiện. Có một khả năng xuất dữ liệu vào tập tin.

PC to Phone Client : SoftPhone dựa trên chuẩn g723.1.

Webphone : SoftPhone có thể được khởi động trực tiếp từ trang web.

Callback Client : phần mềm của khách hàng mà cho phép để bắt đầu cuộc gọi

giữa hai máy điện thoại.

Webcallback : khách hàng bản khởi xướng cuộc gọi trực tiếp từ trang web.

SMS callback : mô-đun dùng hợp tác với các nhà điều hành SMS. Nó cũng

cho phép để tạo số lượng truy cập cho các dịch vụ tin nhắn SMS bằng cách sử dụng điện thoại di động.

IVR module : mô-đun chịu trách nhiệm về phát lại các thông tin đã cấu hình

vd: số dư tài khoản hoặc IP PBX.

Online Shop : mô-đun cho phép để thực hiện thanh toán bằng cách sử dụng

thẻ tín dụng hoặc dịch vụ Paypal.

Reseller.s module : hệ thống dựa trên trang web mà cho phép để tạo ra các tài

khoản người sử dụng, quản lý chung, các ban quản lý, và phân tích các thông tin trên được lưu lượng truy cập diễn ra ..vv..

4.2. Lợi thế của hệ thống quản lý VoIPSwitch

• Đơn giản hóa các quy trình quản trị và thay đổi cấu hình mạng của Thiết bị VoIP. Thống nhất thiết bị hỗ trợ giao thức khác nhau

Một phần của tài liệu nghiên cứu và triển khai hệ thống voip cho doanh nghiệp (Trang 38 - 86)