Chương 5 : CÀI ĐẶT ASTERISK VÀ A2BILLING
5. Sơ lược tập tin cấu hình asterisk
Tất cả các tập tin cấu hình cho hệ thống Asterisk đều nằm tại thư mục /etc/asterisk, ngoại trừ file system.conf cấu hình cho phần cứng TDM nằm tại thư mục /etc/dahdi. Các nội dung sau dấu
chấm phẩy (;) là nội dung chú thích. Tất cả các khoảng trắng trong tập tin cấu hình đều được bỏ qua khơng có ý nghĩa trong file cấu hình.
Trong file cấu hình có hai phép gán thường được sử dụng, phép gán “=” dùng cho việc gán biến, phép gán “=>” dùng cho việc gán các đối tượng.
v Các kiểu ảnh hưởng trong tập tin cấu hình:
Ba kiểu cách thức hoạt động của tập tin cấu hình
Kiểu Cách hoạt động File cấu hình Ví dụ Simple Group Có hiệu lực trên từng
dịng trong file Extensions.conf
Exten=>_9XXX,1,dial(sip/$ {EXTEN},20, trT)
Option Inheritance
Dòng khai báo sau thừa kế những thơng số của dịng khai báo trước Zapata.conf [channels] context=default switchtype=national signalling=fxo_ks usecallerid=yes hidecallerid=no callwaiting=yes usecallingpres=yes callwaitingcallerid=yes Complex Entity Mỗi entity nhận một ngữ cảnh Sip.conf Iax.conf [9000] type=friend username=9000 secret=123 context=incoming host=dynamic nat=yes
v Các file cấu hình thơng dụng nhất: agents.conf, chan_dahdi.conf, dahdi-channels.conf, extconfig.conf, extensions.conf, features.conf ,iax.conf, meetme.conf, musiconhold.conf, mysql.conf, queues.conf, res_mysql.conf, sip.conf, voicemail.conf.
Việc trình bày chi tiết ý nghĩa các thông số trong từng file sẽ rất dài dịng và khó hiểu khi không đặt vào một ngữ cảnh cụ thể. Tuy nhiên, để có một chút khái niệm, ở đây sẽ trình bày những
phần cơ bản nhất.
v Khai báo kênh SIP: Khai báo kênh sip là tạo tài khoản trong file /etc/asterisk/sip.conf
Ø Các lựa chọn cho việc cấu hình:
[general]
• Context: thiết lập context mặc định cho các cuộc gọi đến Server. Thiết lập mặc định của
hệ thống là “default”.
• Port: thiết lập potr UDP cho việc lắng nghe các connection. Mặc định là port 5060, chúng
ta không nên thay đổi mặc định này nếu không thật sự cần thiết.
• Bindaddr: chỉ định địa chỉ IP mà chúng ta mong muốn dịch vụ sip cho phép. Một máy có
nhiều địa chỉ IP, chúng ta có thể chỉ định cho nó tìm đến tất cả bằng cách gán cho
Bindaddr=0.0.0.0.
• Maxexpiry: thời gian tối đa cho phép việc đăng kí có giá trị. Mặc định là 3600 giây, qua
thời gian này việc đăng kí sẽ tự động timeout.
• Videosupport: việc thiết lập “yes” sẽ cho phép hỗ trợ video trong giao thức SIP. Asterisk
là được phép hỗ trợ video H263 từ Linphones, Microsoft Windows Messenger và
Wooksung WVP-2000 videophone.
• Musicclass: thiết lập mặc định lớp music on hold cho tất cả cuộc gọi SIP. Mặc định là
“default”.
• Accountcode: thiết lập mã tài khoản để sử dụng cho các cuộc gọi SIP từ user này, điều này
có thể giúp cho việc “billing”.
• Rtptimeout: là thời gian mà khi RTP stream không lưu thông trên đường truyền cuộc gọi
sẽ “timeout” trước khi Asterisk kết thúc cuộc gọi.
• Externip: thiết lập địa chỉ IP ngoài mạng nội bộ của Server Asterisk (gọi ra Internet hoặc
• Localnet: định nghĩa tất cả các địa chỉ IP nội. Điều này sẽ báo cho Asterisk thơng điệp SIP
dùng IP ngồi tại một nơi chỉ sử dụng IP nội bộ
• Codec: định nghĩa tất cả các chuẩn mã hóa và giải mã mà chúng ta cho phép. Có hai trạng
thái là “allow” và “disallow”. Đầu tiên nên cấm tất cả các chuẩn codec bằng cách thực hiện “disallow=all”; sau đó cho phép các chuẩn mà ta mong muốn, ví dụ “allow= ulaw”,
“allow=alaw”… Ø Định nghĩa các user:
[username]
• Type: kiểu kết nối thơng tin.Có 3 lựa chọn lần lượt là User, Peer hay Friend. Kiểu User chỉ
cho phép thực hiện cuộc gọi đến, kiểu Peer chỉ cho phép thực hiện cuộc gọi đi, kiểu Friend cho phép thực hiện nhận cuộc gọi đến và gửi cuộc gọi đi.
• Username: thiết lập username cho việc chứng thực
• Host: địa chỉ IP hay tên miền mà client kết nối với kênh này, thường dùng giá trị là
“dynamic” cho tất cả các client kết nối đến.
• Secret: mật khẩu để sử dụng những kênh này. Máy điện thoại phía client phải khai báo
thông số trùng với thơng số này thì mới sử dụng được
• Callerid: thiết lập định danh caller ID
• Nat: thiết lập “yes” hoặc “no” tùy theo client có nằm sau firewall hay khơng
• Mailbox: thiết lập hộp mail cho việc kiểm tra thông điệp từ các user khác
• Outgoinglimit: thiết lập số lượng tối đa cuộc gọi mà thiết bị có thể thực hiện trong một
thời gian nhất định.
• Incominglimit: thiết lập số lượng tối đa cuộc gọi mà thiết bị có thể khởi tạo tại một thời
điểm
• Callgroup: nhóm gọi
• Pickupgroup: nhóm pickup cuộc gọi
• Deny: danh sách các địa chỉ IP loại khỏi máy chủ Asterisk
• Permit: danh sách các địa chỉ IP được phép truy cập máy chủ Asterisk.
Dialplan được xem là trung tâm xử lý của Asterisk, nó định nghĩa tất cả các cuộc gọi vào ra trong tổng đài IP PBX, bao gồm một danh sách những cấu trúc hoặc những bước mà Asterisk sẽ thực hiện. Dialplan được cấu hình qua tập tin extensions.conf, một số khái niệm cần nắm rõ khi cấu hình dialplan:
• Contexts- các ngữ cảnh:
Contexts là tên của một nhóm các nhánh, và mỗi nhánh có một ứng dụng. Như vậy, mỗi
context sẽ thực hiện mốt số chức năng mà người dùng mong muốn.
Các nhánh trong các contexts khác nhau là cách ly hoàn toàn, tức là nhánh trong context này có thể giống với nhánh trong context khác nhưng Asterisk vẫn phân biệt được các nhánh này.
Context được chứa trong dấu ngoặc vuông “[]”.
Tên của context có thể được thiết lập với các chữ cái, chữ số và dấu gạch nối.
• Extensions:
Dialplan là một tập hợp gồm nhiều extension, khi một cuộc gọi tương ứng với extension nào thì ứng dụng cho cuộc gọi đó sẽ được thực hiện.
Cú pháp thực hiện extension là: exten=>name, priority, application()
name: tên hoặc số.
priority: thứ tự thực hiện lệnh.
Application(): ứng dụng hoặc lệnh èthực hiện hành động trong cuộc gọi.
Ta có thể thiết lập các nhánh tuỳ biến, bằng cách sử dụng những ký tự hoặc ký hiệu để đại diện cho những số co thể chúng ta mong muốn làm cho phù hợp. Những hình thức ln bắt đầu bằng dấu gạch dưới (_).
Sau dấu gạch dưới có thể sử dụng 1 hoặc nhiều ký tự sau đây: X: những số từ 0-9.
N: những số từ 2-9. Z: mọi chữ số trừ số 0.
.(period): từ kết hợp 1 hoặc nhiều ký tự. “.”: dùng cho nhiều số.
Để sử dụng tuỳ biến trong Dialplan, đặt tuỳ biến tại tên (số). • Priorities - thứ tự ưu tiên:
Priorities là thứ tự thực hiện các ứng dụng trong dialplan, khi thứ tự “1” được thực hiện thì kế tiếp là ứng dụng tại số thứ tự “2” được thực hiện. Kể từ version 1.2 của Asterisk, thay vì gán một con số cụ thể cho thứ tự thực hiện thì ta co thể gán ký tự “n” cho mọi dòng “exten=>”, điều này sẽ nói với Asterisk là ứng dụng với thứ tự tiếp theo sẽ được thực hiện.
• Application – Các hàm ứng dụng:
Đây là phần quan trọng trong Dial plan, tức là các ứng dụng nào sẽ được thực hiện trên mỗi dòng,
các ứng dụng như thực hiện quay số, trả lời cuộc gọi hay đơn giản chỉ là nhấc gác máy… Để biết thêm về các ứng dụng cũng như các thông số kèm theo, ta dùng lệnh show application trên giao tiếp dòng lệnh của Asterisk.
Chương 6:MỘT SỐCHỨC NĂNG CỦA TỔNG ĐÀI PBX 1. Tạo số điện thoại cho softphone trong Free PBX