Phần mềm tổng đài 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 do
Trang 1Bài 6 Triển khai tổng đài Asterisk với phần mềm đóng gói Trixbox
CÔNG NGHỆ THOẠI IP
Trang 2Phần mềm tổng đài 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 được viết bởi Mark Spencer (sinh năm
1977) bằng ngôn ngữ C chạy trên hệ điều hành
Linux khi đang là sinh viên tại Đại học Auburn ở
Alabama
• Giờ đây Asterisk chạy trên OpenBSD, FreeBSD và Mac OS X vàMicrosoft Windows
Trang 4Phần mềm IP PBX Asterisk
• Phần mềm IP PBX Asterisk có đầy đủ tính năng của tổng
đài IP 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.
• Phần mềm IP PBX Asterisk 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 5Cài đặt Asterisk với gói phần mềm TrixBox
• TrixBox là gói phần mềm tổng hợp được phát triển bởi cộng đồng phát triển nguồn mở Asterisk dưới
bản quyền GPL
• TrixBox bao gồm nhân là hệ điều hành 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
• Sau khi cài gói TrixBox vào máy tính thì máy tính trở thành một tổng đài PBX
Trang 6Cá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
• Web server Apache với PHP và Mysql dành cho các truy
cập qua Web vào hệ thống.
• FreePBX: Đây là công cụ với giao diện web dành cho việc cấu hình hệ thống Asterisk.
• 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).
Trang 7Các thành phần của TrixBox (tiếp)
• 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
• Web MeetMe Control: Quản lý triển khai hệ thống điện thoại hội nghị
• Hệ thống Lưu trữ dự phòng và thống kê: Là 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
Trang 8Cài đặt TrixBox
• Download file ISO tại http://www.trixbox.org/
• trixbox-2.8.0.2.iso
• trixbox-2.6.2.3.iso
• Ghi lên đĩa CD và cài lên máy
• Chú ý : dữ liệu trên đĩa cứng sẽ bị xóa sạch để cài đặt TrixBox
Trang 9Chức năng hoạt động của Asterisk
• Chức năng Dynamic Module Loader thực hiện nạp driver của thiết bị, nạp các kênh giao tiếp, các format, codec và các ứng dụng, các hàm API.
• PBX Switching Core sẵn sàng hoạt động chuyển mạch cuộc gọi, các cuộc gọi được chuyển mạch tuỳ vào kế hoạch quay
số (Dialplan) được cấu hình.
• Application Launchar rung chuông thuê bao, quay số, định hướng cuộc gọi, kết nối với hộp thư thoại…
• Scheduler and I/O Manager đảm nhiệm các ứng dụng nâng cao, các chức năng được phát triển mới cài đặt
• Codec Translator xác nhận các kênh nén dữ liệu ứng với các chuẩn khác nhau có thể kết hợp liên lạc được với nhau.
Trang 10Cấu hình với FreePBX
• Việc cấu hình Asterisk sẽ thao tác trực tiếp trên các file
.conf, và rất mất thời gian + dễ sai sót
• Chúng ta có thể phải viết hàng trăm, thậm chí hàng nghìn dòng để cấu hình các tính năng cơ bản và khai báo
extension.
• Để tránh việc cấu hình Asterisk bằng tay, FreePBX ra đời Với giao diện WEB dễ dùng, tự động sinh mã code, miễn phí,
• Trixbox đã cài sẵn CentOS, Asterisk, FreePBX, Zaptel
cùng một số gói hỗ trợ khác,
cấu hình với FreePBX
Trang 11Các giải pháp cấu hình trong Asterisk
Asterisk
Chỉnh sửa các files cấu hình
Sử dụng Asterisk
Console
Sử dụng các chương trình cấu hình trên nền
WEB
Trang 12Cá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 13Ví dụ file sip.conf
Chú ý: Trường Context trong file sip.conf phải đúng với một context – được định nghỉa bởi ký hiểu [ ] trong file extensions.conf, như thế SIP Entry đó có thể gọi được các dial-plan bên trong một context.
Trên 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
Trang 14Các file cấu hình Asterisk
• Voicemail.conf: file cấu hình cho hệ thống
voice-mail của asterisk Asterisk có thể dùng lệnh Sendvoice-mail 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 15Cấu hình và quản trị TrixBox qua Web
• TrixBox cung cấp chức năng cấu hình, quản trị Asterisk thông qua giao diện web
• Admin là maint, password là password
Trang 16Xem hoạt động của tổng đài với System Status
Trang 17Cài đặt các package cho tổng đài
• Asterisk cho phép cài bổ sung chức năng thông qua việc cài đặt các package dịch vụ mới từ Internet
• Vào trang Web quản lý với FreePBX -> Packages
• Cho phép cài đặt, gỡ bỏ, nâng cấp các chức năng
• Đây là điểm mạnh của một tổng đài dùng phần mềm
• Các package phần mềm đã được kiểm tra bởi cộng đồng mã nguồn mở Asterisk
Trang 18Lựa chọn cài đặt Packages
Trang 19Sửa các files cấu hình
• Trixbox cho phép xem và sửa chữa các file cấu hình trên giao diện WEB
• Lựa chọn “Config File Editor” trong PBX
Trang 20PBX settings
• Là trang cài đặt Trixbox
• Bao gồm 4 mục con
Trang 21• Extension là thành phần mà Asterisk thực hiện theo
Dialplan, được kích hoạt khi có cuộc gọi vào,
extension chính là con số cần gọi
• 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
• Không có quy tắc về chọn số phần mở rộng cho người dùng, nhóm chuông, hoặc hàng đợi Tuy nhiên, cần có
số lượng ký tự hợp lý.
• Có 3 loại Device thông thường cho extension là:
SIP, IAX và ZAP
Trang 22Khai báo extention,
Vào trang PBX setup và lựa chọn mục Extension
Trang 23Quy định về Extension
• Extension có thể đơn giản với một đích danh cụ thể như 8068, UIT hay là một chuỗi so mẫu được thực hiện như _9xxx Một số quy định trong Dialplan:
• “_” là ký tự bắt đầu của một pattern
Trang 24Hiện thực một extension
• 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
Trang 252 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 26Các hàm ứng dụng - Applications
• Các ứng dụng như thực hiện quay số,trả lời cuộc gọi hay đơn giản là nhấc gác máy …
• Background(): Ứng dụng thực hiện phát một file âm
thanh và chờ nhận con số từ bàn phím nhấn để chuyển
đến số thứ tự priority tương ứng.
• Dial(): Ứng dụng thực hiện quay số điện thoại
• Hangup(): ứng dụng thực hiện kết thúc cuộc gọi.
• Record() : thu lại những tin nhắn thoại
• Để biết thêm thông tin về các ứng dụng cũng như
các thông số kèm theo thì dùng lệnh show
Aplications
Trang 27• Cũng như trong nhiều cuốn sách lập trình, ta cũng
có ví dụ đầu tiên là “Hello World!”
• Chương trình Hello World trong Asterisk:
exten => 200,1,Answer()
same => n,Playback(hello-world)
same => n,Hangup()
• Khi gọi tới số nội bộ 200:
Đầu tiên, bắt cuộc gọi
Thứ hai, chạy file âm thanh “hello-world”
Thứ ba, ngắt cuộc gọi
Chương trình Hello World
Trang 28Extension với nhiều thiết bị thoại
Trang 29Ví dụ các extension trong công ty
Trang 30Cài âm thanh vào tổng đài
• Thư mục /var/lib/asterisk/mohmp3/ chứa các tập tin mp3 mà khi cấu hình Asterisk sử dụng tính năng
Music on Hold, tính năng hoạt động sẽ thực hiện
• Các tập tin định dạng theo chuẩn của Asterisk nên khi sử dụng các file Mp3 thông thường cần có sự
chuyển đổi thích hợp trước khi chép vào thư mục trên để sử dụng
Trang 31System Recordings
• Cho phép đưa âm thanh vào tổng đài Asterisk
Trang 32Cấu hình mạng VoIP với Asterisk
• Để triển khai một hệ thống mạng VoIP với tổng đài
Asterisk cần thiết phải lập 1 kế hoạch chi tiết
• Xem xét cơ sở hạ tầng vật lý cho sự ổn định và an ninh của hệ thống VoIP.
• Khảo sát nhu cầu trong cơ quan và doanh nghiệp trong
đó có nhu cầu gọi thoại, Voice mail, gọi ra đường
PSTN.
• Xác định yêu cầu phần cứng như IP phone, soft phone
để lập bảng các Extentions.
• Xác định yêu cầu các dịch vụ như IVR – Interactive
Voice Response, nhóm chuông,,
Trang 33IVR (Interactive Voice Response)
• Dịch vụ tương tác thoại trả lời thông tin tự động,
• Cung cấp tự động thông tin, giải đáp, tin nóng qua điện thoại một các nhanh nhất
• Tính năng trả lời tự động được gói gọn thành một dịch vụ trong hệ thống
• Ứng dụng xem điểm thi, tiền cước điện thoại của thuê bao, tỉ giá Đôla … có thể thực hiện qua chức năng tương tác thoại
Trang 34Ứng dụng của IVR
• Chức năng tương tác thoại có rất nhiều ứng dụng
trong thực tế, khi gọi điện thoại đến một cơ quan
hay xí nghiệp thuê bao thường nghe thông điệp
• “Xin chào mừng bạn đã gọi đến công ty chúng
Tôi hãy nhấn phím 1 để gặp phòng kinh doanh,
Trang 35Ví dụ: cây IVR
Trang 36Cài đặt IVR
Trang 37Nhóm chuông (ring group)
• Ring group là một nhóm extension mà tất cả có thể được rung chuông cùng một lúc khi người dùng
quay đến 1 số nhất định
• Điều này là một tính năng hữu ích trong một công ty
vì nó cho phép gọi tới một ai trong nhóm đang sẵn sàng trả lời điện thoại
• Ring group có thể được cấu hình “ring all”, hoặc
“hunt” Khi cấu hình “ring all” cuộc gọi đến sẽ đổ
chuông đồng thời, trong khi “hunt” sẽ thử rung
chuông lần lượt các extension trong nhóm
Trang 38Ring group
Trang 39Cài đặt Ring Group
Trang 40Hàng đợi cuộc gọi (Call Queue)
• Call Queue khác với Ring group là người gọi không tới tất cả các extension có sẵn
• Khi cuộc gọi tới sẽ được gửi đến một hàng đợi cuộc gọi tại khu vực chờ đợi cho đến khi có 1 extension rảnh để tiếp
• Trong thời gian chờ đợi, họ có thể được nghe nhạc giữ và được cho biết vị trí của họ trong hàng đợi và thời gian dự kiến
Trang 41Ví dụ: ứng dụng Call Queue
• Công ty có khả năng tiếp nhận cùng một lúc 10 cuộc gọi như thế cuộc gọi thứ 11 gọi đến thì hệ thống giải quyết như thế nào?
• Như bình thường sẽ nghe tín hiệu bận nhưng với
chức năng Call Queue sẽ đưa thuê bao đó vào hàng đợi để chờ trả lời,
• Trong khi chờ trả lời cuộc gọi thuê bao có thể nghe những bài hát hay do Asterisk cung cấp, trong lúc
này nếu 1 trong mười số điện thoại trở về trạng thái rỗi thì cuộc gọi đang chờ sẽ được trả lời
Trang 42Call Queue
• Call Queue có giá trị trong bán hàng và các tổ chức
tư vấn vì đôi khi số lượng cuộc gọi có thể vượt quá
số lượng extension trả lời
Trang 43Cài đặt Call Queue
Trang 44• Đây là tính năng cho phép hệ thống nhận các thông
điệp tin nhắn thoại, mỗi máy điện thoại được khai báo trong hệ thống Asterisk cho phép khai báo thêm chức năng hộp thư thoại.
• Mỗi khi số điện thoại bận hay ngoài “vùng phủ sóng” thì hệ thống asterisk định hướng trực tiếp các cuộc gọi đến hộp thư thoại tương ứng đã khai báo trước.
• Voicemail cung cấp cho người sử dụng nhiều tính
năng lựa chọn như: password xác nhận khi truy cập
vào hộp thư thoại, gửi mail báo khi có thông điệp mới.
Trang 45Đường trung kế (trunk) IAX2
• Để tất cả các điện thoại IP từ tổng đài Trixbox này
có thể liên lạc được với các điện thoại IP ở tổng đài Trixbox kia, một trong những giải pháp để giải
quyết vấn đề là kết nối hai server lại với nhau qua đường trung kế (trunk) IAX2
• Chúng ta cần phải khai báo trên mỗi tổng đài
• Outgoing Settings
• Incoming Settings
Trang 46Ví dụ kết nối trung kế
Trang 47Kết nối qua trung kế IAX2
• Để tất cả các điện thoại IP từ tổng đài Trixbox này
có thể liên lạc được với các điện thoại IP ở tổng đài Trixbox kia chúng ta kết nối hai server lại với nhau qua đường trung kế - IAX2 Trunk
Trang 48Cài đặt IAX2 Trunk
• Chúng ta cần cài đặt các thông tin Outgoing và Incoming trong từng tổng đài để kết nối Trunk
Trang 49Khai báo Outbound Routes
• Chúng ta cần thiết lập một Outbound Routes để sử dụng Trunk
Trang 50Inbound 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 51Inbound Route
• Cấu hình Inbound Route cho cuộc gọi từ bên ngoài vào tổng đài, có nhiều lựa chọn cho cuộc gọi vào
Trang 52HẾT BÀI 6