Nghiên cứu về hoạt động và cách triển khai tổng đài IP PBX Asterisk

CHƯƠNG I: TỔNG QUAN VỀ TỔNG ĐÀI IP PBX ASTERISK 1

1.1 Giới thiệu Asterisk - Asterisk là gì? 1

1.1.1 Vai trò của Digium đối với Asterisk 1

1.1.2 Dự án Zapata và các mối quan hệ của nó với Asterisk 2

1.2 Vì sao chọn Asterisk? 2

1.2.1 Giảm chi phí một cách mạnh mẽ 2

1.2.2 Môi trường phát triển nhanh chóng và dễ dàng 2

1.2.3 Giàu tính năng 3

1.2.4 Nội dung động trên điện thoại 3

1.2.5 Kiểu quay số linh hoạt và mạnh 3

1.2.6 Mã nguồn mở chạy trên nền Linux 3

1.2.7 Các giới hạn trong kiến trúc của Asterisk 3

1.3 Kiến trúc của Asterisk 4

1.3.1 Các kênh 4

1.3.2 Codec và chuyển dịch codec 5

1.3.3 Các giao thức 5

1.3.4 Các ứng dụng 5

1.4 Mô tả tổng quan tổng đài IP PBX Asterisk 6

1.5 So sánh giữa các loại tổng đài 7

1.5.1 Điện thoại sử dụng mô hình PBX/Softswitch cũ 7

1.5.2 Điện thoại dùng hệ thống Asterisk 7

1.6 Xây dựng một hệ thống kiểm tra 8

1.6.1 Một FXO, một FXS 8

1.6.2 Nhà cung cấp dịch vụ VoIP, ATA 8

1.6.3 Board FXO không đắt tiền, ATA 8

1.7 Một số ứng dụng của Asterisk 9

1.7.1 IP PBX 9

1.7.2 Sử dụng IP trong các tổng đài PBX cũ 10

1.7.3 Bỏ qua chi phí gọi điện thoại đường dài 11

1.7.4 Server ứng dụng (IVR, điện thoại hội nghị, Voicemail) 11

1.7.5 Media Gateway 12

1.7.6 Trung tâm giao tiếp chăm sóc khách hàng - Contact Center Platform (Call Center) 13

1.8 VoIP với Asterisk 13

1.8.1 Các ưu điểm của VoIP 13

1.8.1.a Tính hội tụ 13

1.8.1.b Chi phí cơ sở hạ tầng 14

1.8.1.c Tiêu chuẩn mở 14

1.8.1.d Sự tích hợp giữa máy tính và điện thoại 14

1.8.2 Kiến trúc VoIP của Asterisk 14

1.8.3 Các giao thức VoIP và mô hình OSI 15

1.8.4 Làm sao để chọn một giao thức? 16

1.8.4.a SIP - giao thức thiết lập phiên 16

1.8.4.b IAX - Inter Asterisk eXchange 16

1.8.4.c Giao thức điều khiển cổng phương tiện MGCP 17

1.8.4.d H.323 17

1.8.4.e Bảng so sách các giao thức 17

1.8.5 User, Peer và Friend 17

1.8.6 Các codec và chuyển đổi codec 18

1.8.7 Làm sao để chọn một codec phù hợp 18

1.8.8 Phần mào đầu do phần Header của giao thức 18

1.8.9 Kỹ thuật lưu lượng 19

1.8.9.a Sự đơn giản hoá 19

1.8.9.b Phương pháp Erlang B 19

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

1.8.10.a Nén RTP Header 20

1.8.10.b IAX2 trunk mode 21

1.8.10.c Giảm VoIP tải 21

CHƯƠNG 2: CÀI ĐẶT TỔNG ĐÀI IP PBX ASTERISK 22

2.1 Cái đặt từng phần 22

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

2.1.2 Cài đặt các gói trong tổng đài Asterisk 27

2.1.2.a Chuẩn bị các tập tin trước khi cài đặt 27

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

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

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

2.2.1 Cài đặt Trixbox 32

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

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

2.3.1.a Các lệnh chung 35

2.3.1.b Các lệnh cho SIP 35

2.3.1.c Quản trị Server 35

2.3.2 Các công cụ hỗ trợ vận hành và cấu hình Asterisk 36

2.3.2.a Phần mềm Putty 36

2.3.2.b Phần mềm WINSCP 37

CHƯƠNG 3: TÌM HIỂU CÁCH CẤU HÌNH ASTERISK 38

3.1 Tìm hiểu các tập tin cấu hình trong Asterisk 38

3.2 Ngữ pháp của Asterisk 38

3.2.1 Nhóm đơn 39

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

3.2.3 Dạng thực thể phức hợp 40

3.3 Tìm hiểu cấu hình một giao tiếp PSTN 40

3.3.1 Cài đặt X100P 41

3.3.2 Cài và cấu hình driver card X100P 41

3.4 Tìm hiểu cấu hình điện thoại IP SIP 41

3.4.1 Phần chung [general] 41

3.4.2 Phần Client 42

3.5 Tim hiều sơ đồ quay số 43

3.5.1 Số nội bộ (Extensions) 43

3.5.1.a Một số mẫu số (pattern) 43

3.5.1.b Các ví dụ về số nội bộ (extensions) 44

3.5.2 Số ưu tiên (Priorities) 44

3.5.3 Ứng dụng (Applications) 44

3.5.4 Ngữ cảnh (Contexts) 45

3.6 Tìm hiểu cách tạo một sơ đồ quay số 46

3.6.1 Ví dụ cơ bản 46

3.6.2 Một ví dụ khác 46

3.6.3 Các kênh cầu nối sử dụng ứng dụng dial() 47

3.7 Tìm hiểu cách tạo một hệ thống IVR 48

3.7.1 Ứng dụng background() 48

3.7.2 Ứng dụng record() 48

3.7.3 Ứng dụng playback() 49

3.7.4 Ứng dụng read() 49

3.7.5 Ứng dụng gotoif() 49

3.8 Xây dụng một hệ thống IVR 49

3.8.1 Thu âm lời chào 50

3.8.2 Tạo ra hệ thống IVR 50

CHƯƠNG 4: XÂY DỰNG MỘT TỔNG ĐÀI THỰC TẾ 51

4.1 Mô tả các bước thực hiện 51

4.2 Mô tả chức năng và hoạt động của tổng đài 51

4.3 Cấu hình phần cứng 51

4.4 Cài đặt tổng đài Asterisk 51

4.5 Chuẩn bị và cài đặt các thiết bị FXS, FXO 51

4.6 Cấu hình các thông số trong tổng đài 55

4.7 Thiết lập các Client và kiểm tra cuộc gọi 56

CHƯƠNG 5: ĐÁNH GIÁ CHUNG VÀ HƯỚNG MỞ CỦA ĐỀ TÀI 57

5.1 Đánh giá chung 57

5.1.1 Ưu điểm 57

5.1.2 Những điểm hạn chế 57

5.1 Hướng mở của đề tài 58

TÀI LIỆU THAM KHẢO 59

 

 

doc68 trang | Chia sẻ: lethao | Lượt xem: 6597 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Nghiên cứu về hoạt động và cách triển khai tổng đài IP PBX Asterisk, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
P MGCP là một giao thức được sử dụng chung với H.323, SIP và IAX. Nó có ưu điểm lớn là tính mềm dẻo. Nó được cấu hình trong cuộc gọi tác nhân thay vì các gateway. Điều này làm đơn giản tiến trình cấu hình và cho phép quản lý tập trung. Tính thực thi của Asterisk thì không toàn diện và nó dường như không có nhiều người dùng nó. 1.8.4.d H.323 H.323 được sử dụng nhiều trong VoIP. Nó là một trong những giao thức VoIP đầu tiên và cơ bản cho việc thiết lập kết nối cho những hệ thống hạ tầng VoIP cũ dựa trên các gateway. H.323 vẫn chuẩn trong thị trường gateway, mặc dù thị trường đang chuyển dịch chậm qua SIP. Sức mạnh của H.323 bao gồm sự chấp thuận lớn của thị trường và tính tự nhiên. Các điểm yếu của H.323 liên quan đến sự phức tạp trong việc thực hiện và các chi phí kết hợp chuẩn. 1.8.4.e Bảng so sách các giao thức Giao thức Chuẩn Được sử dụng IAX2 IETF nháp Các trung kế Asterisk. Điện thoại IAX2. Kết nối giữa IAX với nhà cung cấp dịch vụ. SIP IETF chuẩn Điện thoại SIP. Kết nối giữa SIP với nhà cung cấp dịch vụ. MGCP IETF/ITU chuẩn Điện thoại MGCP. Hiện tại không được hỗ trợ trong kết nối giữa MGCP với nhà cung cấp dịch vụ. H.323 ITU chuẩn Điện thoại H.323. H.323 gateway. Hiện tại không được hỗ trợ để trở thành một gatekeeper nhưng có thể kết nối đến 1 gatekeeper bên ngoài. SCCP Thuộc Cisco Điện thoại của Cisco. Bảng 1: Bảng so sách các giao thức 1.8.5 User, Peer và Friend Có 3 loại client của SIP và IAX: “User”, “Peer” và “Friend” “User” chỉ tạo được kết nối đến server Asterisk. “Peer” chỉ nhận được cuộc gọi từ server Asterisk. “Friend” làm được cả hai. Thông thường một server hay một thiết bị sẽ yêu cầu cả hai khái niệm này cùng một lúc. Một “friend” là một shortcut đến một “user” + “peer”. Một điện thoại sẽ có thể rơi vào loại này, vì nó cần tạo và nhận các cuộc gọi. 1.8.6 Các codec và chuyển đổi codec Ta sẽ sử dụng một codec để chuyển đổi tín hiệu thoại từ dạng tương tự sang dạng số. Các bộ codec thì khác nhau tuỳ thuộc vào chất lượng thoại, tỷ lệ nén, băng thông và các yêu cầu tính toán. Các dịch vụ, phone và các gateway thường hỗ trợ nhiều loại, codec G.729 là một codec rất thông dụng và yêu cầu bản quyền. Asterisk hỗ trợ các loại codec sau: • GSM: 13 Kbps • iLBC: 13.3 Kbps • ITU G.711: 64 Kbps • ITU G.723.1: 5.3/6.3 Kbps • ITU G.726: 16/24/32/40 Kbps • ITU G.729: 8 Kbps • Speex - 2.15 to 44.2 Kbps • LPC10 - 2.5 Kbps Asterisk cho phép chuyển dịch giữa các codec. Nhiều trường hợp không thể chuyển đổi như trường hợp G.723 chỉ được hỗ trợ trong dạng pass-through. Chuyển từ một kiểu codec này sang một kiểu khác làm tiêu tốn nhiều tài nguyên từ CPU. Vì vậy nên tránh việc chuyển đổi này nếu có thể. 1.8.7 Làm sao để chọn một codec phù hợp Việc chọn lựa loại codec tùy thuộc vào nhiều khía cạnh khác nhau: + Chất lượng thoại. + Chi phí nghe. + Mức độ tiêu tốn xử lý của CPU. + Băng thông yêu cầu. + Khả năng khắc phục mất gói. + Tính sẵn sàng cho Asterisk và thiết bị điện thoại. 1.8.8 Phần mào đầu do phần Header của giao thức Mặc dù các codec sử dụng ít băng thông nhưng chúng ta phải phải bàn luận về mào đầu (overhead) do phần header của giao thức tạo ra giống như Ethernet, IP, UDP và RTP. Quan sát điều này chúng ta có thể nói rằng băng thông phụ thuộc vào phần header sử dụng. Nếu chúng ta là một mạng Ethernet, băng thông yêu cầu là cao hơn khi sử dụng một mạng PPP vì PPP header ngắn hơn trong mạng Ethernet. Chúng ta hãy xem qua một vài ví dụ: Codec g.711 (64 Kbps) • Ethernet (Ethernet+IP+UDP+RTP+G.711) = 95.2 Kbps • PPP (PPP+IP+UDP+RTP+G.711) = 82.4 Kbps • Frame-Relay (FR+IP+UDP+RTP+G.711) = 82.8 Kbps Codec G.729 (8 Kbps) • Ethernet (Ethernet+IP+UDP+RTP+G.729) = 31.2 Kbps • PPP (PPP+IP+UDP+RTP+G.729) = 26.4 Kbps • Frame-Relay (FR+IP+UDP+RTP+G.729) = 26.8 Kbps 1.8.9 Kỹ thuật lưu lượng Vấn đề chính trong thiết kế các mạng VoIP là kích thước số đường line và băng thông được yêu cầu cho từng kích thước cụ thể như văn phòng từ xa hay một nhà cung cấp dịch vụ, số cuộc gọi đồng thời trong Asterisk cũng quan trọng (thông số chính quyết định kích thuớc của Asterisk). 1.8.9.a Sự đơn giản hoá Điều đầu tiên và được sử dụng rộng rãi là tính đơn giản hoá để 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 yê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 yêu cầu Chúng ta chọn G.729 codec vì băng thông yê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ể yê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 toá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 toán số đường line yêu cầu. Mỗi đường line được biết đến có thể tính cho băng thông yê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ị khoá 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 yê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 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ỉ: 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 15: Cài đặt CentOS - Giao diện bắt đầu cài đặt CentOS 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 18: Cài đặt CentOS - Cấu hình thiết lập ổ cứng và phân vùng ổ cứng 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 Hình 23: Cài đặt CentOS - Chọn cách cài đặt 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 25: Cài đặt CentOS - Chọn kiểu loader khởi động 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 Asterisk 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 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. + Ta lần lượt download các gói tin về thư mục /usr/src/asterisk gồm: 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 # wget # wget # wget 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 # make install 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 Hình 33: Tạo các tài liệu chương trình của Asterisk + 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 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 [vinh] ; tạo một user admin để login qua web cấu hình 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) 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 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 37: Chọn Vủng thời gian cho hệ thống Hình 38: Password để cấu hình Asterisk Hình 39: Tiến trình cài đặt Trixbox 1 Hình 40: Tiến trình cài đặt Trixbox 2 Hình 41: Giao diện cấu hình qua Web của Trixbox 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 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 show version : 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 Asterisk 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ừ: 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 Hình 43: Giao diện phần mềm Putty - Cửa sổ lệnh 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ừ: 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 Hình 45: Giao diện phần mềm WINSCP - Sử dụng 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 và 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 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.conf và voicemail.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.conf và agents.conf nơi có nhiều tùy chọn sẵn sàng, hầu hết các giao tiếp, các đối tượng chia sẻ và khai báo các kênh. Các tùy chọn cho đối tượng được khai báo phía trên đối tượng và có thể được thay đổi trong đối tượng khác. Mặc dù khái niệm này hơi khó hiểu nhưng nó rất dễ sử dụng. Ví dụ: [Session] op1 = bas op2 = adv object=>1 op1 = int object => 2 Hai dòng cấu hình đầu tiên giá trị của tùy chọn op1 và op2 là “bas” và “adv”. Khi đối tượng 1 được tạo ra nó được tạo ra sử dụng option 1 như là “bas” và option 2 như là “adv”. Sau khi định nghĩ đối tượng 1 chúng ta thay đổi option 1 sang “int”. Sau đó chúng ta tạo ra đối tượng 2 với option 1 là “int” và option 2 là “adv”. 3.2.3 Dạng thực thể phức hợp Kiểu định dạng này được sử dụng trong iax.conf, sip.conf và trong những tập tin cấu hình nơi mà có nhiều thực thể với nhiều tùy chọn. Cơ bản, kiểu định dạng này không chia sẽ một luợng lớn các cấu hình chung. Mỗi một thực thể nhận một ngữ cảnh. Đôi khi ngữ cảnh được dành riêng giống như [general] cho cấu hình toàn cục. Các tùy chọn được khai báo trong nội dung khai báo. Ví dụ: [entity1] op1=value1 op2=value2 [entity2] op1=value3 op2=value4 Thực thể [entity1] có các giá trị “value1” và value2” cho các tùy chọn op1 và op2. Thực thể [entity2] có các giá trị “value3” và value4” cho các tùy chọn op1 và op2. 3.3 Tìm hiểu cấu hình một giao tiếp PSTN Để kết nối đến một PSTN ta sẽ phải cần có một card giao tiếp FXO và một đường dây điện thoại. Ta có thể sử dụng một số PBX có sẵn. Ta có thể làm được bằng một card giao tiếp điện thoại với với một giao tiếp FXO từ nhiều nhà cung cấp khác nhau. Trong ví dụ này chúng ta tìm hiểu cách cài đặt một mạch Zaptel: Ghi chú: có nhiều card FXO khác. Card X100P có thể tìm thấy trên thị trường với giá khá rẻ. Những mạch này dựa trên nền fax/modem 56K của Motorola và Intel chipset. Những chipset này là: - Motorola 68202-51 - Intel 537PU - Intel 537 PG - Intel Ambient MD3200 Không có đảm bảo để mạch này sẽ làm việc được. Việc sử dụng là tùy, một vài vấn đề về tiếng dội và âm lượng thấp. Nếu ta muốn chất luợng tốt, đảm bảo độ tin cậy thì nên dùng board của Digium. 3.3.1 Cài đặt X100P Trước khi cài đặt một card X100P vào trong máy tính, ta phải disable tất cả các phần cứng không cần dùng đến hay không sử dụng từ mạch chính. Điều này sẽ giúp cho chúng ta tránh được các vấn đề về chia sẽ các ngắt (interrupt). Để cài đặt đúng X100P, ta sẽ phải gắn card vào trong một khe PCI và điểu chỉnh 2 tập tin cấu hình: • 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

Các file đính kèm theo tài liệu này:

  • docNghiên cứu về hoạt động và cách triển khai tổng đài IP PBX Asterisk.doc