TỔNG ĐÀI IP-PBX Asterisk
Trang 1PHẦN 4 TỔNG ĐÀI
IP-PBX Asterisk
Trang 2Phần mềm IP-PBX Asterisk
Asterisk được khởi xướng bởi Mark Spencer (sinh năm
1977) khi đang là sinh viên tại đại học Auburn ở Alabama USA Asterisk
Năm 1999 Mark thành lập công ty cung cấp dịch vụ hỗ trợ người dùng Linux qua điện thoại Để tiết kiệm chi phí, thay
vì mua tổng đài PBX có sẵn (giá rất đắt), Mark đã quyết
định tự xây dựng phần mềm thực hiện chức năng tổng đài chạy trên PC dùng hệ điều hành Linux và kết quả là
Trang 3Mark Spencer năm 2008
Trang 4Sơ đồ tổng quát của IP-BPX Asterisk
Trang 5IP-BPX Asterisk
Trang 6http://www.zapatatelephony.org) để thiết kế card
giao tiếp dùng cho PC
Điều này cho phép với PC gắn thêm card giao tiếp, cài đặt Asterisk là có tổng đài PBX đầy đủ tính
năng Card giao tiếp Zaptel thực hiện tốt việc kết nối máy chủ Asterisk trực tiếp với PSTN
Asterisk cũng hỗ trợ các giao thức VoIP phổ biến
như SIP (chuẩn IETF), H.323 (chuẩn ITU), MGCP, VoFR
Trang 7Asterisk PBX Card – 1 FXO
Trang 8Asterisk PBX Card – 4 FXO/FXS
Trang 9Công ty Digium
Với thành công của dự án Zaptel, Mark Spencer
thành lập công ty Digium chuyên phát triển và bán phần cứng Zaptel đồng thời hỗ trợ phát triển phần mềm Asterisk
Digium là sản xuất card giao tiếp làm việc với
Asterisk, cung cấp các ứng dụng bổ sung cho
Asterisk, hỗ trợ kỹ thuật và tư vấn
Trang 11Phần mềm mã nguồn mở Asterisk
Asterisk là một phần mềm mang tính cách mạng, tin cậy, mã nguồn mở và miễn phí mà biến một PC rẻ tiền thông thường chạy Linux thành một hệ thống điện thoại doanh nghiệp mạnh mẽ
Asterisk là một bộ công cụ mã nguồn mở cho các ứng dụng thoại và là một server xử lý cuộc gọi đầy
Trang 12Tính năng của phần mềm Asterisk
Asterisk có đầy đủ tính năng của tổng đài PBX thương mại: phân luồng cuộc gọi, thư thoại, hội đàm, tương tác (menu thoại) , hỗ trợ nhiều giao thức VoIP như SIP và H.323.
Cung cấp các dịch vụ như Voice mail, Video
conferencing, Call conferencing, Interactive voice
response, Call queue
Asterisk tích hợp một số công nghệ như TDM và IP
Phone, 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)
Asterisk hỗ trợ những kiểu truyền tín hiệu theo chuẩn
của Mỹ và Châu Âu hiện đang tại các doanh nghiệp, cho phép nó bắc cầu giữa những mạng tích hợp thoại - dữ liệu thế hệ kế tiếp với hạ tầng kỹ thuật hiện tại
Trang 13Asterisk với các thuê bao
Trang 14Asterisk với các thuê bao (kênh RTP
đi trực tiếp)
Trang 15IAX – Inter Asterisk eXchange
Không thích H.323 cồng kềnh, Mark Spencer thiết kế một giao thức khác gọn nhẹ hơn là giao thức IAX Với bốn byte của mào đầu, so sánh với 12 byte mào đầu của SIP hay H.323, bản tin IAX có thể nói là nhỏ hơn rất nhiều IAX hỗ trợ xác thực đối với các cuộc gọi đến và đi
IAX chuyển tải thoại và báo hiệu trên cùng một kênh(in
band) không giống như giao thức SIP chuyển tải thoại và báo hiệu trên hai kênh khác nhau (out of band),
IAX có cơ chế chuyển tải nhiều cuộc gọi trên cùng một gói
IP được gọi là trung kế(Trunk) IAX có đoạn mào đầu rất nhỏ IAX giải quyết được vấn đề NAT trong giao thức SIP Mặc khác IAX là giao thức tối ưu trong việc sử dụng băng thông, cho phép nhiều gói dữ liệu thoại trên cùng một IP header,
Trang 16IAX
Ethernet Ethernet
SIP
Hệ thống chuyển mạch mềm Asterisk
Trang 17Kiến trúc của Asterisk
Phần mềm Asterisk được thiết kế dạng môđun Các
thành phần chức năng được thiết kế thành từng môđun riêng biệt và tách rời với phần chuyển mạch lõi, điều này tạo khả năng dễ điều chỉnh và mở rộng cao
Ưu điểm của Asterisk là phần quản lý extension Từng bước của cuộc gọi được định nghĩa như một ứng dụng Quay số là một ứng dụng; trả lời, phát lại, thư thoại là những ví dụ ứng dụng khác Ta có thể tạo kịch bản thực hiện gọi ứng dụng bất kỳ trên kênh bất kỳ
Ví dụ, có thể thiết lập một số extension được đổ
chuông cùng lúc ở 2 kênh (có thể nối đến 2 máy điện thoại: 1 analog và 1 digital) trước khi chuyển cuộc gọi đến điện thoại di động, và sau đó chuyển qua hệ
thống thư thoại
Trang 18Các bộ API dùng cho việc giao tiếp với các modul của Asterisk
Channel API: cho phép phần lõi PBX giao tiếp với các
nguồn tín hiệu khác nhau, hỗ trợ các giao thức VoIP gồm SIP, H.323 và MGCP.
Codec Translator API: cung cấp khả năng làm việc với các định dạng âm thanh mã hóa như MP3, GSM, G.7123,
ADPCM
File Format API: Cho phép đọc và phát âm thanh từ các
định dạng file WAV, MP3 đem đến sự linh hoạt cho các ứng dụng trên nền Asterisk trong việc xử lý âm chuông,
DTMF (âm thanh phát ra khi nhấn phím)
Application API: Có thể dùng cho ứng dụng thứ ba như thư thoại, hội đàm cho phép viết các ứng dụng mới có thể
tương tác trực tiếp với phần lõi PBX
Trang 19Kiến trúc của Asterisk
Trang 20Inbound call
Cuộc thoại gọi vào (Inbound call): cuộc thoại gọi từ bên ngoài tổng đài qua đường trung kế tới các điện thoại IP trong
Dịch vụ gọi vào (Inbound Service): Dịch vụ tại Call center
(Trung tâm cuộc gọi) cho phép các điện thoại viên tiếp nhận các cuộc điện thoại của khách hàng gọi tới để giải đáp thông tin, tư vấn cho khách hàng
Trang 21gửi qua các trung kế
tới các điện thoại
ngoài
Dịch vụ gọi ra (Outbound service): Dịch vụ tại Call center
(Trung tâm cuộc gọi) cho phép các điện thoại viên sử dụng điện thoại để gọi tới khách hàng với mục tiêu chăm sóc khách hàng, nâng cao hình ảnh và thương hiệu của Công ty.
Trang 22Quay số của thuê bao
North American Numbering Plan (NANP)
Trang 23Cuộc gọi Inbound với mạng PSTN
PSTN
Phone1-1
2001 Phone1-22002
User dials 14085552001.
Call setup from PSTN:
DNIS 4085552001
2
Cisco Unified CME Gateway DID 4085552XXX
15125556001
Gateway modifies DNIS to 2001 and routes to voice port.
3
1
Phone1-1 rings.
4
Trang 24Cuộc gọi Outbound với mạng PSTN
PSTN
Phone1-2 2002
PSTN phone rings.
Q.931 call setup:
DNIS 15125556001 ANI 4085552001
4
Cisco Unified CME Gateway DID: 408555XXXX
H.323 call setup:
DNIS 915125556001
ANI 2001 Gateway modifies DNIS and ANI 2
Trang 26Đòi hỏi hệ thống cài đặt Asterisk
Thông thường yêu cầu tối thiểu là máy PIII với
500 MHz, máy > 1.5 GHz cho các hệ thống đa
Có thể dùng máy ảo VMWare Loader
Trang 27Cài đặt Asterisk
hành trên máy tính.
bison, gcc, kernel-source, libtermcap-devel,
ncurses-devel, openssl096b, openssl-devel
Zaptel, libpri, asterisk, sounds, addones
Trang 28asterisk-Các gói phần mềm Asterisk
kết giao tiếp với asterisk do Digium phân phối
tiếp trung kế PRI và một số phần cứng khác
Ngay cả Asterisk không giao tiếp với card PRI
nào chúng ta cũng nên cài đặt gói này bởi một số module của Asterisk yêu cầu thư viện này
format MP3 và ghi CDR vào CSDL MySQL
Trang 29Một số thư mục chính của Asterisk
/usr/sbin/asterisk thư mục cài đặt Asterisk
/var/spool/asterisk/ - chứa nhiều thư mục con bao gồm outgoing/, qcall, tmp/, voicemail/
Asterisk luôn kiểm qua thư mục outgoing/ và qcall/
vì đây là hai thư mục chứa các file dạng text chứa thông tin yêu cầu cuộc gọi theo cấu trúc quy định
Trang 30Các file cấu hình Asterisk
/etc/asterisk/ - chứa các tập tin cấu hình của hệ thống Asterisk, riêng file zaptel.conf về phần
cứng được đặt tại thư mục /etc/
Extensions.conf là file cấu hình về các luật định tuyến cuộc gọi, luật quay số, các extension trong ngoài và những tính năng đặc biệt khác
Sip.conf là file cấu hình về các thông tin của các UAC như username, password, IP, type, security, codec, là file lưu giữ thông tin trong Asterisk
Iax.conf dùng cấu hình các kênh truyền của giao thức IAX, các thông số về IAX (inter-asterisk
protocol) dùng khi kết nối 2 asterisk box với nhau
Trang 31Các file cấu hình Asterisk
Voicemail.conf: file cấu hình cho hệ thống mail của asterisk Asterisk có thể dùng lệnh
voice-Sendmail trên CentOS để gởi mail đến cho các địa chỉ được lưu trong file cấu hình này
Zaptel.conf: File này nằm ngoài /etc, là file chứa thông số index, driver dành cho Linux khi kích
hoạt các thiết bị Telephony 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à file kết nối các thiết bị Telephony đã được khai
báo vào hệ thống chính của Asterisk
MeetMe.conf: Một chức năng tạo room
conference căn bản
Trang 32Dialplan
Dialplan là trái tim của hệ thống asterisk Dialplan
cho biết các cuộc gọi sẽ được xử lý như thế nào qua
hệ thống asterisk
Dialplan bao gồm tập hợp các dòng lệnh hay các
ứng dụng theo một trình tự nào đó mà hệ thống phải thực hiện để đáp ứng nhu cầu chuyển mạch cuộc
gọi File etc/asterisk/extention.conf
Dialplan là một tập gồm nhiều extention, khi một cuộc gọi tương ứng với extention nào thì ứng dụng cho
cuộc gọi đó sẽ được thực hiện
Extension là thành phần mà asterisk thực hiện theo, được kích hoạt khi có cuộc gọi vào extension chính
là con số mà thuê bao đó cần gọi
Trang 33context 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.
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
Trang 342 là các priorites tức là thứ tự thực hiện các
lệnh
Khi thuê bao quay số 8051 thì đổ chuông máy
IP SIP 8051 nếu trong vòng 20 giây mà thuê bao không nhấc máy thì kết thúc cuộc gọi.
Trang 35Trên File extensions.conf
[test-dialplan]
Exten => 101,1,Dial(SIP/101,20) Exten => 102,2,Dial(SIP/102,20) Config trên sẻ cho phép 2 end-point softphone, tương tự bạn có thể thêm vào nhiều ID hơn trong file SIP.conf và tạo dial- plan tương ứng với extensions.conf
Trên File sip.conf:
Trang 36Contexts - Ngữ cảnh
Như vậy ngữ cảnh (context) đã được giới hạn trong một tình huống cụ thể, hệ thống có thể có nhiều ngữ cảnh(context) khác nhau.
Ví dụ:
Khi gọi đến tổng đài Asterisk có một thông điệp thông báo
“Chào các đã đến trường Đại học CNTT, bấm phím 22 để gặp phòng đào tạo, bấm phím 21 để gặp phòng kế toán …”
Nếu người gọi chọn phím 22 thì hệ thống sẽ chuyển đến một ngữ cảnh (context) là [phongdaotao] khi người gọi nhấn phím
21 thì hệ thống sẽ định hướng cuộc gọi qua ngữ cảnh
(context) [Phongketoan]
Mỗi trường hợp hệ thống sẽ có ngữ cảnh khác nhau, ngữ
cảnh được đặt trong dấu []
Trang 37Visual Dialplan cho Asterisk của APSTEL
Trang 38Visual Dialplan dùng cho Asterisk
Trang 39Quản trị và cấu hình Asterisk qua Web
giới trong việc cấu hình tổng đài Asterisk
nhiều công cụ như FreePBX được sử dụng phổ biết.
Trang 41Gói phần mềm TrixBox
triển bởi cộng đồng phát triển nguồn mở
Asterisk dưới bản quyền GPL
CentOS và những thành phần dành cho việc cấu hình ứng dụng, thống kê tình trạng hoạt động hệ thống, lưu trữ dự phòng, và kết hợp với nhau tạo thành một gói hoàn chỉnh
tính trở thành một tổng đài PBX.
Trang 42Các thành phần của TrixBox
Hệ điều hành Linux CentOS
Phần mềm Asterisk PBX: Thành phần chính của gói TrixBox
SugarCRM: Hệ thống quan hệ khách hàng CRM
A2Billing – Là thành phần dành cho việc xây dựng
hệ thống điện thoại trả trước hay còn gọi là điện
thọai thẻ (Calling Card)
Flash Operator Panel - Bảng điều khiển giám sát
tình trạng hoạt động của các máy điện thoại trong
hệ thống
Trang 43Các thành phần của TrixBox
thống điện thoại hội nghị.
dành cho việc cấu hình hệ thống Asterisk.
thành phần của TrixBox, cung cấp các công
cụ cần thiết cho việc bảo trì hệ thống.
cho các truy cập qua Web vào hệ thống.
Trang 44Cài đặt TrixBox
trixbox-2.8.0.2.iso
trixbox-2.6.2.3.iso
Chú ý : dữ liệu trên đĩa cứng sẽ bị xóa sạch để cài đặt TrixBox
Trang 45Màn hình khởi động TrixBox
Trang 46Lệnh help-trixbox
Trang 47Quản trị TrixBox qua Web
trị Asterisk thông qua giao diện web
Trang 48Màn hình theo dõi hoạt động
Trang 49Quản trị Asterisk
Trang 50 Version hiện tại là IAX2, IAX2 làm việc với các luồng video hay bất kỳ loại hình đa phương tiện khác
Việc sử dụng một cổng UDP 4569, điều này giúp
cho dễ dàng kiểm soát hoạt động của hệ thống
3
Trang 51Hoạt động của giao thức IAX
Trang 52Mục đích của giao thức IAX
Cung cấp khả năng kiểm tra và truyền dữ liệu
Dùng lệnh ở dạng nhị phân nên tín hiệu truyền đi có
độ trễ rất thấp so với các giao thức khác dùng lệnh bằng bảng mã ASCII
IAX hỗ trợ việc truyền ngôn ngữ và ngữ cảnh đang
sử dụng trong môi trường Asterisk Đó là một việc đang được quan tâm
Giao thức có nhiều cơ chế thông minh trong việc xử
lý tín hiệu trong điều kiện băng thông hoặc tín hiệu kém
4
Trang 53Giao thức IAX
Khi kết hợp với chuẩn nén G729 và với đường
truyền 1Mbps, IAX có thể truyền đến 103 cuộc gọi, cao gần gấp 3 lần so với các giao thức khác
Mục tiêu giao thức IAX cũng mong muốn VoIP trở nên đơn giản, cắm một điện thoại IP vào và tiến hành gọi ngay lập tức
Giao thức IAX, IAX2 mới có một vài tài liệu và tiêu chuẩn chưa được công nhận Tuy vậy giao thức IAX vẫn được nhiều công ty hỗ trợ hoặc mở rộng thiết bị hiện tại để tương thích
Trang 54Báo hiệu
biệt nhau
đều được xác định trạng thái và được truyền
đi theo 1 dạng xác định
cuộc gọi sẽ ngắt cùng lúc, cho dù không có nhận được báo hiệu
Trang 55Báo hiệu
một kênh(in band) IAX giải quyết được vấn
đề NAT như giao thức SIP
băng thông, cho phép nhiều gói dữ liệu thoại trên cùng một IP header,
một gói IP được gọi là trung kế(Trunk)
Trang 56Hoạt động của giao thức IAX
định người gọi và người nhận
chặng, hai định danh duy nhất đánh dấu một chặng
khác, ví dụ như giao thức SIP
Trang 576
Call Teardown – can be
started by either side
Call Link Management
and Call Control
Actual media transfer
using full, mini and meta
frames Full frames must
be sent every 65536 ms.
Trang 58Frame tin cậy (Reliable Frame)
Còn được gọi là một full frame, có thể mang
hoặc tín hiệu hoặc dữ liệu thoại
Kiểm soát các hoạt động chính của một cuộc gọi IAX, còn có thể là gói ACK hoặc thích hợp cần thiết
Chứa thông tin nhận diện đầy đủ - một chỉ số
cuộc gọi cho một cặp nguời gọi/nhận tham gia
Có đánh dấu thời gian - Số mili giây kể từ khi
truyền dẫn đầu tiên của cuộc gọi
7
Trang 59Reliable Frame
1kHZ clock used (RTP uses 90 kHz clock) Usually an extension
(e.g 1002)
Trang 60Frames không bảo đảm
Non-guaranteed frames
4 octet header, có Source Call Number
Không có thông tin tín hiệu, phương tiện truyền
thông chỉ có dữ liệu, chỉ chứa tham số cuộc gọi
để nhận diện cuộc gọi
Lower 16 bits
of full timestamp
Trang 61 Meta-Frames
Meta Indicator – 15 bits, tất cả các thiết lập là 0
Meta video frames - mang dữ liệu video với một tiêu đề tối ưu hóa
Frames không bảo đảm
Non-guaranteed frames
Trang 62Kết nối đường trục
Trunking
Trunk là một liên kết điểm nối điểm giữa 2 tổng đài thông qua đó trao đổi các kênh truyền
thông bằng cách kết hợp nhiều phương tiện
truyền tải trọng vào một gói tin.
Có thể xảy ra theo hướng nào giữa thực thể
gọi/nhận, dữ liệu trong kênh được gửi bằng
cách sử dụng Meta Frame
Chức nội dung của một cuộc gọi, số cuộc gọi Chiều dài của các phương tiện truyền dữ liệu tính bằng octet
Trang 63Kết nối đường trục Trunking
Trang 64Bảo mật
chứng thực giữa hai máy chủ
Trang 65So sánh IAX với giao thức SIP
not many devices can support it.
Standardized by IETF (2002) and many additional
RFCs have also been released
servers and few softswitches
Has been used widely
Trang 66HẾT PHẦN 4