|
||||||||
|
||||||||
|
Asterisk Thảo luận về Asterisk |
|
Công Cụ | Xếp Bài |
03-10-2009, 09:44 AM | #1 |
Guest
Trả Lời: n/a
|
Asterisk PBX
Asterisk PBX
Asterisk là một gói phần mềm Open source chạy trên HĐH Linux (Linux based), nó có đầy đủ chức năng của một hệ thống tổng đài PBX. Nó thực hiện thoại thông qua các gói tin IP truyền qua mạng và có thể giao tiếp với hầu hết các thiết bị thoại thông qua các phần cứng giao tiếp phù hợp. Nó cung cấp các dịch vụ như Voice mail, Video conferencing, Call conferencing, Interactive voice response, Call queue..... Nó cũng cung cấp chức năng chuyển mạch trung tâm cho phép thực hiện chuyển mạch giữa các giao tiếp mà nó hỗ trợ. Nó tích hợp một số công nghệ như TDM và ip phone, nó có thể hoạt động như một softswitch, media gateway, voicemail,audio conference, nó cũng có các chức năng IVR (Interactive Voice Response) và ACD (Automatic call distribution) ... hình vẽ sao minh hoạ một hệ thống Asterisk kết nối với các hệ thống PBX truyền thống, sử dụng các giao tiếp số và tương tự, hỗ trợ các analog và ip phone... Trước khi cài Asterisk hệ thống của bạn cần có các gói sau GCC, ncurses-devel, ibtermcap-devel, Kernel Development Headers, Kernel Development Headers (SMP), GCC C++, OpenSSL (optional), newt-devel (optional), zlib-devel (optional), unixODBC; unixODBC-devel (optional), libtool (optional;recommended), GNU make (version 3.80 or higher). Những gói option là không bắt buộc, lưu ý với CentOS các gói trên bạn có thể cài đặt hoặc update bằng yum. để cài đặt asterisk bạn cần download source code asterisk tại http://www.asterisk.org, nếu hệ thống của bạn có card giao tiếp với PSTN bạn cần cài thêm Zaptel drive, ISDN bạn cần cài thêm LibPRI Drive.... Với mục đích thử nghiệm bạn chỉ cần duy nhất gói source code của asterisk là đủ. compile asterisk tar xzvf asterisk-1.4-current.tar.gz ./configure make menuselect make && make install make samples make menuselect: cho phép chọn module để compile, những mudule đánh dấu [xxx] nghĩa là phụ thuộc vào package khác cần phải cài đặt thêm. make samples: để cài đặt các file cấu hình mặc định (default config file). Cấu trúc thư mục Asterisk sau khi cài đặt /etc/asterisk thư mục chính, chứa tất cả các file cấu hình /usr/lib/asterisk/modules chứa các loadable modules (các application, codec, format và channel mà asterisk sử dụng) của asterisk. Mặc định Asterisk load tất cả các module tuy nhiên bạn có thể loại bỏ những modules không sử dụng bằng cách cấu hình trong file /etc/asterisk/modules.conf. /var/lib/asterisk chứa các file cơ sở dữ liệu nội tại của asterisk (local Asterisk database information). /var/log/asterisk chứa các thông tin log của Asterisk. bạn có thể cấu hình những loại thông tin cần được ghi log thông qua file /etc/astreisk/logger.conf. Sau khi cài đặt thành công bạn chạy Asterisk bằng lệnh asterisk –vvvvc Với mục đích thử nghiệm tôi xin giới thiệu một ví dụ liên lạc giữa hai “sip phone” thông qua Asterisk. Khai báo “sip phone” với Asterisk. mở file /etc/astersik/sip.conf đã có sẵn hoặc tạo mới và thêm các dòng sau. [2000] type=friend username=2000 secret=abc2000 host=dynamic context=from-sip [2001] type=friend username=2001 secret=abc2001 host=dynamic context=from-sip mở file /etc/asterisk/extensions.conf đã có sẵn hoặc tạo mới và thêm các dòng sau [from-sip] exten => 2000,1,Dial(SIP/2000,20) exten => 2000,2,Hungup exten => 2001,1,Dial(SIP/2001,20) exten => 2001,2,Hungup Khi bạn config file sip.conf (khai báo “sip phone”), cũng đồng nghĩa với việc bạn config các Sip channel để cho bạn thực hiện các cuộc gọi đến/từ các “sip phone”. Channel :thể hiện môi trường thực hiện nhận và thực hiện cuộc gọi. Asterisk hỗ trợ nhiều loại channel tương ứng với những cách cấu hình khác nhau trong những file cấu hình khác nhau như: Zap.conf: kênh giao tiếp với các thiết bị thoại số và tượng tự truyền thống thông qua card giao tiếp và drive của nó cung cấp bởi Digium. iax.conf: loại channel này được dùng để kết nối các server Asterisk với nhau, kết nối tới IAXtel (một dịch vụ được cung cấp bởi Digium), kết nối tới các IAX client .... Khi bạn config file extension.conf nghĩa là bạn đang tạo dialplan cho hệ thống của mình. Dial plan: Mô tả cách thức Asterisk xử lý cuộc gọi. Nó bao gồm một một loạt các điều khiển (một số bước) mà asterisk lần lượt theo đó thực hiện. Dialplan được tạo bởi bốn thành phần: - context Dialplan được chia thành nhiều phần mỗi phần gọi là một context. Context bao gồm một loạt các điều khiển phục vụ cho một số chức năng nào đó. Tên context được đặt trong dấu ngoặc vuông, tất cả các điều khiển sau đó đều thuộc về context này cho đến context tiếp theo, khi bạn khai báo kênh bạn cũng phải khai báo để kênh đó hoạt động theo context nào. Ở ví dụ trên các điều khiển “sip phone” được đặt trong context “from-sip và các kênh SIP cũng được cấu hình để hoạt động theo context “from-sip” (tham số context=from-sip). Mỗi context gồm nhiều extension. - extension là một chuỗi những điều khiển mà Asterisk sẽ thực hiện khi nó nhận hoặc thực hiện một cuộc gọi. Một extension được định nghĩa trong một context là hoàn toàn tách biệt so với các extension được định nghĩa trong các context khác. Cú pháp của extension có dạng exten => name,priority,application() name : tên của extension tương ứng với số được gọi. priority: thể hiện thứ tự thực hiện application: một chương trình thực hiện một hoạt động nào đó của cuộc gọi Ở ví dụ trên, exten => 2000,1,Dial(SIP/2000,20) thực hiện cuộc gọi đến Sip phone 2000 , exten => 2001,1,Dial(SIP/2001,20) thực hiện cuộc gọi đến Sip phone 2001 thông qua application Dial(). để test hệ thống đã cấu hình bạn phải dùng “Sip phone”, có nhiều loại “Sip phone”, bạn có thể dùng X-lite download tại http://www.counterpath.com. Sau khi cài đặt và chạy X-lite ( trên máy chạy Window ), bạn vào phần SIP Account setting => nhấn Add để tạo Sip account và điền các thông tin tương ứng với tài khoản Sip phone mà bạn đã tạo như hình vẽ sau. phần domain nhập địa chỉ ip của Server Asterisk. Khi Sip phone của bạn đăng ký thành công phần màn hình của điện thoại sẽ báo Ready Your username is: 2000 như hình sau. tương tự như vậy, bạn cài đặt một Sip phone lên một máy khác cho username 2001 và thực hiện cuộc gọi giữa hai máy này. để gọi username 2000 thì quay số 2000, username 2001 thì quay số 2001. |
|
|