TÓM TẮT LUẬN VĂN Luận văn trình bày các công việc để xây dựng một hệ thống tổng đài dịch vụVoIP cơ bản cho doanh nghiệp và cơ sở lý thuyết có liên quan. Nội dung luận văn được trình bày trong 6 chương với nội dung chính của từng chương được mô tả cụ thể như sau: Chương 1: Tổng quan về VoIP. Chương này sẽ trình bày tổng quan về công nghệ VoIP, các đặc tính, các thành phần và giao thức sử dụng trong mạng VoIP. Chương 2: Giới thiệu về Asterisk. Chương này sẽ trình bày về kiến trúc, mô hình và các dịch vụ cơ bản của phần mềm Asterisk. Chương 3: Mô hình triển khai và thực hiện các dịch vụ cơ bản. Chương này đưa ra mô hình triển khai tổng đài dịch vụ VoIP trên nền Asterisk, cách kết nốicác thành phần và thiết lập các dịch vụ cơ bản của một tổng đài dịch vụ VoIP. Chương 4: Xây dựng giao diện quản trị. Chương này trình bày việc thiết lập giao diện quản trị cũng như hướng dẫn cách quản lý và thiết lập cho tổng đài qua giao diện này. Chương 5: Xây dựng dịch vụ quà tặng âm nhạc. Chương này sẽ trình bày các bước để xây dựng dịch vụ quà tặng âm nhạc. Chương 6: Kết luận và hướng phát triên đề tài. Chương này nhóm sẽ trình bàylại các kết quả đạt được của đề tài. Các công việc mà nhóm đã thực hiện cũng như đưa ra hướng phát triển cho đề tài.
Trang 1ÐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ÐẠI HỌC BÁCH KHOA KHOA ÐIỆN – ÐIỆN TỬ
BỘ MÔN VIỄN THÔNG
LUẬN VĂN TỐT NGHIỆP
TỔNG ĐÀI DỊCH VỤ VOIP
- Tp Hồ Chí Minh, Tháng 12-20
Trang 2i
Trang 3ii
LỜI CẢM ƠN
Lời đầu tiên, sinh viên muốn gửi lời cảm ơn chân thành đến giáo viêntrong thời gian vừa qua, đã hướng dẫn và giúp đỡ sinh viên trong quá trình thực hiện đồ án Những lời nhận xét, góp ý và hướng dẫn của giáo viên đã giúp sinh viên có một định hướng đúng trong quá trình thực hiện đề tài, giúp sinh viên nhìn ra được ưu khuyết điểm của đề tài và từng bước khắc phục để ngày một tốt hơn
Đồng thời sinh viên cũng muốn gửi lời cảm ơn sâu sắc đến gia đình và bạn bè đã động viên và cổ vũ tinh thần sinh viên trong suốt quãng thời gian học tập, đặc biệt
là bố mẹ sinh viên, người đã chăm lo và hi sinh rất nhiều cho sinh viên để sinh viên
có thể chuyên tâm học tập
Bên cạnh đó, sinh viên muốn nói lời cảm ơn đến những giáo viên đã đứng trên bục giảng truyền đạt kinh nghiệm, kiến thức cho sinh viên trong suốt 4 năm đại học vừa qua
Một lần nữa, sinh viên xin gửi lời cảm ơn chân thành và sâu sắc đến bố mẹ, thầy cô
và bạn bè, những người luôn ở cạnh động viên, giúp đỡ và cổ vũ tinh thần cho sinh viên
Hồ Chí Minh, ngày 11 tháng 12 năm 2013
Trang 4
iii
TÓM TẮT LUẬN VĂN
Luận văn trình bày các công việc để xây dựng một hệ thống tổng đài dịch vụ VoIP cơ bản cho doanh nghiệp và cơ sở lý thuyết có liên quan Nội dung luận văn được trình bày trong 6 chương với nội dung chính của từng chương được
mô tả cụ thể như sau:
Chương 1: Tổng quan về VoIP Chương này sẽ trình bày tổng quan về công
nghệ VoIP, các đặc tính, các thành phần và giao thức sử dụng trong mạng VoIP
Chương 2: Giới thiệu về Asterisk Chương này sẽ trình bày về kiến trúc, mô
hình và các dịch vụ cơ bản của phần mềm Asterisk
Chương 3: Mô hình triển khai và thực hiện các dịch vụ cơ bản Chương này
đưa ra mô hình triển khai tổng đài dịch vụ VoIP trên nền Asterisk, cách kết nối các thành phần và thiết lập các dịch vụ cơ bản của một tổng đài dịch vụ VoIP
Chương 4: Xây dựng giao diện quản trị Chương này trình bày việc thiết lập
giao diện quản trị cũng như hướng dẫn cách quản lý và thiết lập cho tổng đài qua giao diện này
Chương 5: Xây dựng dịch vụ quà tặng âm nhạc Chương này sẽ trình bày các
bước để xây dựng dịch vụ quà tặng âm nhạc
Chương 6: Kết luận và hướng phát triên đề tài Chương này nhóm sẽ trình bày
lại các kết quả đạt được của đề tài Các công việc mà nhóm đã thực hiện cũng như đưa ra hướng phát triển cho đề tài.
Nhóm sinh viên thực hiện
Trang 5iv
MỤC LỤC
TÓM TẮT LUẬN VĂN iii
Chương 1 2
TỔNG QUAN VỀ VOIP 2
1.1 Khái niệm 2
1.2 Các thành phần cơ bản trong mạng VoIP 2
1.3 Các hình thức truyền thoại qua IP 2
1.4 Các giao thức của VoIP 2
1.5 Đặc tính của VoIP 2
1.1 Khái niệm 3
1.2 Các thành phần cơ bản trong mạng VoIP 3
1.3 Các hình thức truyền thoại qua IP 4
1.3.1 Mô hình PC to PC 4
1.3.2 Mô hình PC to Phone 5
1.3.3 Mô hình phone to phone 5
1.4 Các giao thức của VoIP 6
1.4.1 Giao thức H.323 6
1.4.2 Giao thức SIP 8
1.4.3 Giao thức IAX (Inter Asterisk eXchange) 12
1.5 Đặc tính của VoIP 13
1.5.1 Ưu điểm 13
1.5.2 Nhược điểm 13
Chương 2 14
GIỚI THIỆU VỀ ASTERISK 14
2.1 Giới thiệu 15
2.2 Kiến trúc hệ thống Asterisk 16
2.3 Các mô hình ứng dụng của Asterisk 17
2.3.1 Tổng đài VoIP IP PBX 18
2.3.2 Kết nối IP PBX với PBX 19
2.3.3 Kết nối giữa các server Asterisk 20
2.3.4 Các ứng dụng IVR, VoiceMail, Conference Call 21
2.3.5 Chức năng phân phối cuộc gọi tự động ACD 22
2.4 Các dịch vụ cơ bản của Asterisk 22
2.4.1 Voicemail 22
Trang 6v
2.4.3 Caller ID 23
2.4.4 Interactive Voice Response 23
2.4.5 Time and Date 23
2.4.6 Call Parking 24
2.4.7 Remote call pickup 24
2.4.8 Privacy Manager 24
2.4.9 Backlist 24
2.5 File cấu hình 24
2.5.1 Giới thiệu 24
2.5.2 Channel interfaces 25
2.6 Dial Plan 25
2.6.1 Contexts 26
2.6.2 Extension 26
2.6.3 Priorities 27
2.6.4 Applications 27
2.7 Tiện ích Dial Out 28
2.8 AGI 29
2.8.1 Tổng quan về AGI 29
2.8.2 Nguyên tắc hoạt động của AGI 30
2.9 Asterisk Realtime Architecture 31
Chương 3 34
MÔ HÌNH TRIỂN KHAI VÀ THỰC HIỆN CÁC DỊCH VỤ CƠ BẢN 34
3.1 Mô hình triển khai hệ thống Asterisk 35
3.2 Thiết lập cấu hình cơ bản cho hệ thống 36
3.2.1 Lắp đặt card TDM400P và cấu hình 36
3.2.2 Thiết lập cuộc gọi qua internet 39
3.2.3 Cấu hình các kênh SIP cho softphone 42
3.2.4 Cấu hình cho softphone 43
3.3 Xây dựng dialplan để thực hiện các thao tác gọi cơ bản 46
3.3.1 Xây dựng dialplan 46
3.3.2 Thực hiện cuộc gọi giữa 2 softphone 47
3.3.3 Thực hiện cuộc gọi giữa softphone với analog phone 49
3.4 Thiết lập các dịch vụ cơ bản 49
3.4.1 Video Call 49
Trang 7vi
3.4.2 Voicemail 50
3.4.3 Call Transfer 51
3.4.4 Call Pickup 51
3.4.5 Call Parking 52
3.4.6 Meetme (Conference) 53
3.4.7 DND (Do not Disturb) 53
3.4.8 Call Forward 54
3.4.9 Dịch vụ IVR 57
Chương 4 58
XÂY DỰNG GIAO DIỆN QUẢN TRỊ 58
4.1 Giải pháp tổng quan 59
4.2 Thiết lập và kết nối cơ sở dữ liệu cho server Asterisk 59
4.2.1 Cài đặt và cấu hình MySQL trên CentOS 59
4.2.2 Cài đặt và cấu hình ODBC 60
4.2.3 Quản lý cơ sở dữ liệu 63
4.3 Thiết lập Asterisk Realtime 63
4.3.1 Thiết lập các file cấu hình 63
4.3.2 Xây dựng cơ sở dữ liệu cho Asterisk Realtime 64
4.4 Thiết lập cho các dịch vụ người dùng 68
4.4.1 Xây dựng cơ sở dữ liệu cho các dịch vụ 68
4.4.2 Thiết lập fund_odbc 69
4.5 Xây dựng giao diện quản trị nền Web cho tổng đài 69
4.5.1 Trang login 70
4.5.2 Trang chủ 71
4.5.3 Các tính năng 72
Chương 5 80
XÂY DỰNG DỊCH VỤ QUÀ TẶNG ÂM NHẠC 80
5.1 Kịch bản hệ thống 81
5.1.1 Kịch bản cho người tặng 81
5.1.2 Kịch bản cho người được tặng 81
5.2 Xây dựng cơ sở dữ liệu của dịch vụ quà tặng âm nhạc 81
5.3 Viết AGI thực hiện dịch vụ 82
5.4 Thiết lập Dialplan 84
5.5 Xây dựng giao diện Web tra cứu bài hát 85
Chương 6 88
Trang 8vii
6.1 Kết luận 896.2 Hướng phát triển 90
TÀI LIỆU THAM KHẢO 91
Trang 9viii
DANH SÁCH HÌNH VẼ
Hình 1 Các thành phần trong mạng VoIP 4
Hình 2 Mô hình PC to PC 5
Hình 3 Mô hình PC to Phone 5
Hình 4 Mô hình Phone to Phone 5
Hình 5 Các thành phần của H.323 7
Hình 6 Tiến hành cuộc gọi trong H.323 7
Hình 7 Các thành phần trong SIP 8
Hình 8 Hoạt động của Proxy Server 10
Hình 9 Tiến trình cuộc gọi qua Proxy Server 11
Hình 10 Hoạt động của Redirect Server 11
Hình 11 Tiến trình cuộc gọi qua Redirect Server 12
Hình 12 Sơ đồ giao tiếp tổng quát 15
Hình 13 Sơ đồ khối của Asterisk 16
Hình 14 IP PBX 18
Hình 15 Kết nối IP PBX với PBX 19
Hình 16 Kết nối giữa các server Asterisk 20
Hình 17 Triển khai server IVR, Voicemail, Conference 21
Hình 18 Phân phối cuộc gọi với hàng đợi 22
Hình 19 Sơ đồ giao tiếp của AGI 30
Hình 23 Mô hình triển khai hệ thống 35
Hình 24 Card TDM400P 37
Hình 25 Đăng kí tên miền cho server 40
Hình 26 Giao diện NAT port trên router 41
Hình 27 Thiết lập STUN trên softphone 42
Hình 28 Giao diện softphone Linphone 44
Hình 29 Cấu hình cho Linphone 44
Hình 30 Cấu hình cho Linphone 45
Hình 31 Cấu hình cho Linphone 45
Hình 32 Cấu hình cho Linphone 46
Hình 33 Thực hiện cuộc gọi giữa 2 softphone 47
Hình 34 Thực hiện cuộc gọi giữa 2 softphone 48
Hình 35 Video Call 49
Trang 10ix
Hình 42 Giao diện đăng nhập phpMyAdmin 64
Hình 43 Trang chủ phpMyAdmin 65
Hình 44 Cơ sở dữ liệu cho Asterisk Realtime Architecture 69
Hình 45 Cấu trúc trang Web quản trị 70
Hình 46 Thư mục gốc của trang Web 70
Hình 47 Giao diện login trang quản trị 71
Hình 48 Trang chủ 72
Hình 49 Trang quản lý User 73
Hình 50 Trang khai báo User 74
Hình 51 Trang quản lý Service 75
Hình 52 Trang Block Outbound Call 76
Hình 53 Trang quản lý Voicemail 77
Hình 54 Trang thiết lập Voicemail 78
Hình 55 Trang khai báo Conference Room 79
Hình 36 Cơ sở dữ liệu của dịch vụ quà tặng âm nhạc 82
Hình 37 Sơ đồ giải thuật 83
Hình 38 Form tìm kiếm bài hát 86
Hình 39 Giao diện trang tìm kiếm 86
Hình 40 Kết quả tìm kiếm 87
Trang 11x
DANH MỤC TỪ VIẾT TẮT
ACD: Automatic Call Distribution
API: Application Program Interface
ATA: Analog Telephone Adaptor
DND: Do Not Disturb
DTMF: Dual Tone Multi Frequency
FXO: Foreign Exchange Office
FXS: Foreign Exchange Station
IAX: Inter Asterisk eXchange
ICMP: Internet Control Message Protocol
IETF: Internet Engineering Task Force
IP: Internet Protocol
ISDN: Intergrated Services Digital Network
ITU-T: International Telecommunications Union Telecommunication IVR: Interactive voice response
LAN: Local Area Network
MCU: Multiple Control Unit
NAT: Network Address Translator
PBX: Private Branch eXchange
PSTN: Public Switched Telephone Network
QoS: Quality of Service
RTP: Real Time Protocol
SIP: Session Initation Protocol
UAC: User Agent Client
UAS: User Agent Server
UDP: User Data Protocol
VoIP: Voice over Internet Protocol
WAN: Wide Area Network
Trang 12Phần I
CƠ SỞ LÝ THUYẾT
Chương 1: Tổng quan về VoIP
Chương 2: Giới thiệu về Asterisk
Trang 13Chương 1
TỔNG QUAN VỀ VOIP
Nội dung chính
Trang 141.1 Khái niệm
VoIP (Voice over Internet Protocol) là một công nghệ cho phép truyền thoại sử dụng giao thức mạng IP, trên cơ sở hạ tầng sẵn có của mạng internet Voip là một trong những công nghệ viễn thông đang được quan tâm nhất hiện nay không chỉ đối với nhà khai thác, các nhà sản xuất mà còn cả với người sử dụng dịch vụ
VoIP có thể vừa thực hiện mọi loại cuộc gọi như trên mạng điện thoại kênh truyền thống (PSTN) đồng thời truyền dữ liệu trên cơ sở mạng truyền dữ liệu Do các ưu điểm về giá thành dịch vụ và
sự tích hợp nhiều loại hình dịch vụ nên voip hiện nay được triển khai một các rộng rãi
Dịch vụ điện thoại voip là dịch vụ ứng dụng giao thức IP, nguyên tắc của VoIP bao gồm việc số hoá tín hiệu tiếng nói, thực hiện việc nén tín hiệu số, chia nhỏ các gói nếu cần và truyền gói tin này qua mạng, tới nơi nhận các gói tin này được ráp lại theo đúng thứ tự của bản tin, giải mã tín hiệu tương tự phục hồi lại tiếng nói ban đầu
Các cuộc gọi trong VoIP dựa trên cơ sở sử dụng kết hợp cả chuyển mạch kênh và chuyển mạch gói Trong mỗi loại chuyển mạch đều có ưu, nhược điểm riêng của nó Trong kỹ thuật chuyển mạch kênh giành riêng cho một kênh truyền giữa hai thiết bị đầu cuối thông qua các node chuyển mạch trung gian Trong chuyển mạch kênh tốc độ truyền dẫn luôn luôn cố định (nghĩa là băng thông không đổi), với mạng điện thoại PSTN tốc độ này là 64kbps, truyền dẫn trong chuyển mạch kênh có độ trễ nhỏ
Trong chuyển mạch gói các bản tin được chia thành các gói nhỏ gọi là các gói, nguyên tắc hoạt động của nó là sử dụng hệ thống lưu trữ và chuyển tiếp các gói tin trong nút mạng Đối với chuyển mạch gói không tồn tại khái niệm kênh riêng, băng thông không cố định có nghĩa là có thể thay đổi tốc độ truyền, kỹ thuật chuyển mạch gói phải chịu độ trễ lớn vì trong chuyển mạch gói không quy định thời gian cho mỗi gói dữ liệu tới đích, mỗi gói có thể đi bằng nhiều con đường khác nhau để tới đích, chuyển mạch gói thích hợp cho việc truyền dữ liệu vì trong mạng truyền dữ liệu không đòi hỏi về thời gian thực như thoại, để sử dụng ưu điểm của mỗi loại chuyển mạch trên thì trong voip kết hợp sử dụng cả hai loại chuyển mạch kênh và chuyển mạch gói
1.2 Các thành phần cơ bản trong mạng VoIP
Một mạng VoIP có thể bao gồm các phần tử sau:
Mạng truy nhập IP: là các loại mạng dữ liệu sử dụng giao thức TCP/IP, phổ biến nhất là
Internet
Thiết bị đầu cuối kết nối với mạng IP:
Softphone: là một phần mềm được cài đặt trên máy tính cá nhân PC hoặc Laptop được
kết nối Internet Máy tính cài softphone phải được trang bị card âm thanh, headphone Các phần mềm softphone miễn phí phổ biến như Linphone, X-lite…
Điện thoại thông thường analog phone được gắn với Analog Telephone Adaptor (ATA): để sử dụng được trong mạng VoIP thì các điện thoại thông thường phải được gắn
với ATA để có thể kết nối với VoIP Server ATA gồm có hai loại port: RJ-11 để kết nối với điện thoại analog thông thường còn RJ-45 để kết nối với mạng VoIP
Trang 15CHƯƠNG 1: TỔNG QUAN VỀ VOIP
IP phone: là các điện thoại dùng riêng cho mạng VoIP Các IP phone có thể kết nối trực
tiếp với VoIP server mà không cần thông qua Adaptor và cần phải thực hiện cấu hình trước khi sử dụng
VoIP server: là các máy chủ trung tâm có chức năng định tuyến và bảo mật cho các cuộc gọi
VoIP
Card giao tiếp với PSTN: Muốn cho phép các máy điện thoại nội bộ trong hệ thống Asterisk
kết nối và thực hiện cuộc gọi với mạng PSTN chúng ta cần sử dụng card TDM Thiết bị này sử dụng cho hệ thống Asterisk do chính công ty Digium phân phối bao gồm port FXS và FXO
Trang 16Hình 2 Mô hình PC to PC
1.3.2 Mô hình PC to Phone
Mô hình PC to Phone là một mô hình được cải tiến hơn so với mô hình PC to PC Mô hình này cho phép người sử dụng máy tính có thể thực hiện cuộc gọi đến mạng PSTN thông thường và ngược lại Trong mô hình này mạng Internet và mạng PSTN có thể giao tiếp với nhau nhơ một thiết bị đặc biệt đó là Gateway Đây là mô hình cơ sở để dẫn tới việc kết hợp giữa mạng Internet
và mạng PSTN cũng như các mạng GSM hay đa dịch vụ khác
Hình 3 Mô hình PC to Phone
1.3.3 Mô hình phone to phone
Đây là mô hình mở rộng của mô hình PC to Phone sử dụng Internet làm phương tiện liên lac giữa các mạng PSTN Tất cả các mạng PSTN đều kết nối với mạng Internet thông qua các gateway Khi tiến hành cuộc gọi mạng PSTN sẽ kết nối đến gateway gần nhất Tại gateway địa chỉ sẽ được chuyển đổi từ địa chỉ PSTN sang địa chỉ IP để có thể định tuyến các gói tin đến được mạng đích Đồng thời gateway nguồn có nhiệm vụ chuyển đổi tín hiệu thoại tương tự thành dạng
số sau đó mã hoá, nén, đóng gói và gửi qua mạng Mạng đích cũng được kết nối với gateway và tại gateway đích, địa chỉ lại được chuyển đổi trở lại thành địa chỉ PSTN và tín hiệu được giải nén, giải mã chuyển đổi ngược lại thành tín hiệu tương tự gửi vào mạng PSTN đến đích
Hình 4 Mô hình Phone to Phone
Trang 17CHƯƠNG 1: TỔNG QUAN VỀ VOIP
1.4 Các giao thức của VoIP
VoIP cần 2 loại giao thức: Signaling protocol và Media protocol
Signaling protocol: là giao thức báo hiệu chịu trách nhiệm thiết lập, duy trì và kết nối
cuộc gọi Một số signaling protocol thông dụng bao gồm: H.323, MGCP, SIP, IAX…
Media Protocol: là giao thức truyền thông chịu trách nhiệm điều khiển việc truyền tải dữ
liệu voice qua môi trường mạng IP Có các media protocol như: RTP (Real-Time Protocol), RTCP (RTP Control Protocol), SRTP (Secure Real-Time Transport Protocol) và SRTCP (Secure RTCP)
1.4.1 Giao thức H.323
H.323 là một khuyến nghị của ITU-T xác định phương thức luồng multimedia được truyền qua mạng chuyển mạch gói H.323 sử dụng lại một số chuẩn sẵn có (ví dụ như Q.931) để đạt được mục đích này Trong giao thức H.323, việc truyền các luồng voice chỉ là một trong các ứng dụng của nó và tphaafn chính của giao thức chính là việc chia sẻ dữ liệu và video
Các thành phần của H.323:
Terminal: là các đầu cuối trong mạng, có thể là điện thoại IP hoặc các PC cài
softphone…
Gateway: thực hiện chuyển đổi giữa các định dạng audio, video và dữ liệu Nó đồng thời
thực hiện việc thiết lập và hủy bỏ cuộc gọi trong mạng IP và mạng chuyển mạch
Gatekeeper: cung cấp việc điều khiển cấp độ cuộc gọi đến các đầu cuối của H.323
MCU: hỗ trợ hội nghị với 3 hay nhiều đầu cuối H.323
Trang 18Hình 5 Các thành phần của H.323
Tiến hành cuộc gọi trong H.323
Hình 6 Tiến hành cuộc gọi trong H.323
Cuộc gọi được tiến hành theo các bước:
Trang 19CHƯƠNG 1: TỔNG QUAN VỀ VOIP
Gateway gởi một thông điệp ARQ đến gatekeeper để bắt đầu quá trình gọi Gateway này được cấu hình với vùng miền và địa chi của gatekeeper
Gatekeeper trả lời đáp ứng thông điệp ARQ vừa gởi bằng thông điệp ACF
Khi đầu cuối muốn gọi nhận diện được đầu cuối cần gọi, nó sẽ bắt đầu thiết lập cuộc gọi căn bản
Trước khi đầu cuối được gọi đồng ý nhận cuộc gọi đến nó gởi thông điệp ARQ đến gatekeeper
để nhận được quyền cho phép
1.4.2 Giao thức SIP
1.4.2.1 Giới thiệu
SIP (Session Initiation Protocol) được phát triển bởi IETF (Internet Engineering Task Force) là giao thức thuộc lớp ứng dụng dùng để thiết lập, duy trì và kết thúc các phiên truyền thông đa phương tiện như thoại IP, conference và các ứng dụng khác bao gồm cả âm thanh, hình ảnh và
Các điểm đầu cuối và server trong hệ thống SIP được gọi là các node Một SIP phone được coi
là một node Các SIP phone có thể giao tiếp trực tiếp với nhau để thiết lập phiên truyền thông Tuy nhiên điều này ít khi diễn ra, đặc biệt là trong môi trường doanh nghiệp, SIP được sử dụng với một SIP server Các SIP phone thường thông báo cho máy chủ để tiến hành đăng kí mỗi khi khởi động
Trang 20Hai thành phần cơ bản trong hệ thống SIP bao gồm tác nhân người sử dụng (User Agent)
và các máy chủ phục vụ mạng (Network Server) Bên chủ gọi và bên nhận cuộc gọi được nhận dạng bằng các địa chỉ SIP
a) User Agent
Là một ứng dụng để khởi tạo, nhận và kết thúc cuộc gọi:
Client (UAC): Khởi tạo các yêu cầu SIP, đóng vai trò như tác nhân chủ gọi
Server (UAS): Nhận các yêu cầu và gửi trả các đáp ứng, đóng vai trò như tác nhân bị gọi
b) Network Server
Proxy Server: tiếp nhận và xử lý khi có các yêu cầu từ bên ngoài vào mạng, đại diện cho
các thuê bao trong mạng, có thể sửa đổi nội dung trước khi chuyển đi
Location Server: định vị thuê bao và cung cấp thông tin cho proxy server hoặc redirect
server
Redirect Server: là server nhận các yêu cầu SIP, xử lý để xác định server chuyển hướng
và gửi trả lại cho client để tự gửi yêu cầu Redirect Server không tạo và gửi yêu cầu SIP của riêng nó
Registrar Server: tiếp nhận và xử lý các yêu cầu REGISTER, thực hiện nhận thực thuê
bao
1.4.2.3 Các bản tin SIP và phản hồi
Các bản tin trong SIP được chia thành nhiều loại, mỗi loại thực hiện một chức năng khác nhau:
1xx Informational (e.g 100 Trying, 180 Ringing)
2xx Successful (e.g 200 OK, 202 Accepted)
Trang 21CHƯƠNG 1: TỔNG QUAN VỀ VOIP
3xx Redirection (e.g 302 Moved Temporarily)
4xx Request Failure (e.g 404 Not Found, 482 Loop Detected)
5xx Server Failure (e.g 501 Not Implemented)
6xx Global Failure (e.g 603 Decline)
1.4.2.4 Quá trình thiết lập cuộc gọi theo giao thức SIP
a) Theo kiểu Proxy Server
Hình 8 Hoạt động của Proxy Server
(1) Client gửi bản tin INVITE chứa thông tin về bên bị gọi tới Proxy Server
(2) Proxy server xác định vị trí của bên bị gọi bằng cách sử dụng các địa chỉ được cung cấp trong bản tin INVITE và location server
(3) Location Server gửi trả lại Proxy Server thông tin đã yêu cầu
(4) Proxy server gửi yêu cầu INVITE tới địa chỉ mà nó vừa xác định được
(5) Bên bị gọi (server) đáp ứng lại bằng bản tin thành công 200 OK
(6) Proxy server lại đáp ứng lại bên Client bằng bản tin 200 OK
(7)(8) Client xác nhận bằng bản tin ACK Bản tin này được gửi qua Proxy server hoặc được gửi trực tiếp tới bên bị gọi
Trang 22Hình 9 Tiến trình cuộc gọi qua Proxy Server
b) Theo kiểu Redirect Server
Hình 10 Hoạt động của Redirect Server
(1) Client gửi bản tin INVITE chứa thông tin về bên bị gọi tới Redirect Server
(2 Redirect Server xác định vị trí của bên bị gọi bằng cách sử dụng các địa chỉ được cung cấp trong bản tin INVITE và location server
Trang 23CHƯƠNG 1: TỔNG QUAN VỀ VOIP
(3) Location Server gửi trả lại Proxy Server thông tin đã yêu cầu
(4) Sau khi đã xác định được vị trí của thuê bao thì Redirect server gửi trực tiếp địa chỉ vừa nhận được cho phía Client
(5) Client gửi bản tin ACK tới Redirect server để hoàn tất phiên giao dịch
(6) Client gửi trực tiếp yêu cầu INVITE tới bên bị gọi
(7)(8) Bên bị gọi đáp ứng bằng bản tin 200 OK và bên chủ gọi xác nhận bằng bản tin ACK
Hình 11 Tiến trình cuộc gọi qua Redirect Server
1.4.3 Giao thức IAX (Inter Asterisk eXchange)
IAX là giao thức báo hiệu VoIP được phát triển bởi tác giả của phần mềm Asterisk để khắc phục những hạn chế trong giao thức SIP 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 chuyển tải thoại và báo hiệu trên cùng một kênh (in band) IAX giải quyết được vấn đề của SIP khi thực hiện cuộc gọi với máy client nằm sau NAT Mặt 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 cuungf một IP header, 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 là giao thức giành riêng cho VoIP với nhiều ưu điểm như:
Tối thiểu việc sử dụng băng thông
Trong suốt với NAT
Hiệu quả với cơ chế trung kế
Trang 241.5 Đặc tính của VoIP
1.5.1 Ưu điểm
Tối ưu hóa hiệu suất sử dụng băng thông: Trong PSTN, băng thông cung cấp cho một cuộc
gọi là cố định Trong VoIP, băng thông được cung cấp một cách linh hoạt và mềm dẻo hơn nhiều
Giá thành thấp: tổng đài VoIP có thể tận dụng đường truyền internet để truyền thoại đồng thời
vẫn có thể tương thích với hệ thống tổng đài nội bộ sẵn, đồng thời cước phí thoại được tính như cước internet thông thường, từ đó giảm chi phí cho doanh nghiệp
Tính thống nhất: Hệ thống VoIP có thể tích hợp cả mạng thoại , mạng số liệu và mạng báo
hiệu Các tín hiệu thoại, dữ liệu, báo hiệu có thể cùng đi trên một mạng IP Việc này sẽ giảm đáng kể chi phí đầu tư
Khả năng cung cấp đa dạng các dịch vụ: Tính linh hoạt của mạng IP cho phép tạo ra nhiều
tinh năng mới trong dịch vụ thoại Đồng thời tính mềm dẻo còn tạo khả năng mở rộng mạng và
các dịch vụ
1.5.2 Nhược điểm
Chất lượng dịch vụ chưa cao: Các mạng số liệu vốn dĩ không phải xây dựng với mục đích
truyền thoại thời gian thực, vì vậy khi truyền thoại qua mạng số liệu cho chất lượng cuộc gọi không được đảm báo trong trường hợp mạng xảy ra tắc nghẽn hoặc có độ trễ lớn Tính thời gian thực của tín hiệu thoại đòi hỏi chất lượng truyền dữ liệu cao và ổn định Một yếu tố làm giảm chất lượng thoại nữa là kỹ thuật nén để tiết kiệm đường truyền Nếu nén xuống dung lượng càng thấp thì kỹ thuật nén càng phức tạp, cho chất lượng không cao và đặc biệt là thời gian xử lý sẽ lâu, gây trễ
Độ trễ do truyền dẫn gây ra tiếng vọng: Nếu như trong mạng thoại, độ trễ thấp nên tiếng vọng
không ảnh hưởng nhiều thì trong mạng IP, do trễ lớn nên tiếng vọng ảnh hưởng nhiều đến chất lượng thoại
Vấn đề bảo mật: trong VoIP, do dữ liệu thoại được truyền trên mạng IP có tính rộng khắp, do đó
chịu nhiều sự tấn công từ nhiều nguồn phá hoại khác nhau Mạng VoIP còn nhiều kẽ hở mà người triển khai cần quan tâm và khắc phục
Trang 25Chương 2
GIỚI THIỆU VỀ ASTERISK
Trang 262.1 Giới thiệu
Asterisk là phần mềm nguồn mở, được viết bằng ngôn ngữ C, ra đời năm 1999 bởi Mark Spencer, đầu tiên được thiết kế và triển khai trên GNU/Linux nền x86 (của Intel) Nhưng hiện nay Asterisk có thể chạy trên các hệ điều hành khác như: Mac OS X, FreeBSD, OpenBSD và Microsoft Windowns
Asterisk được xem như là một tổng đài PBX (Private Branch eXchange) và được thêm nhiều tính năng mới Ngoài những tính năng của một tổng đài PBX thông thường, Asterisk còn được tích hợp cả chuyển mạch TDM và chuyển mạch VoIP, có khả năng mở rộng đáp ứng nhu cầu cho từng ứng dung như mở rộng giao tiếp với mạng PSTN (Public Switched Telephone Network) Với một máy tính rẻ tiền đã cài hệ điều hành (một trong các hệ điều hành nói trên, ở đây ta thiên
về hệ điều hành Microsoft Windowns) và có thêm phần mềm Asterisk đã cấu hình, khi đó máy tính này sẽ có đầy đủ tính năng của một tổng đài điện thoại và có thể hơn thế
Asterisk là một phần mềm nguồn mở, miễn phí, có độ tin cậy cao nên được xem là phần mềm mang tính cách mạng
Bởi những tiện ích: hệ thống và giá cước rẻ, dễ sử dụng, đầy đủ các tính năng của một tổng đài
và con hơn thế nên đã có nhiều hệ thống Asterisk được cài đặt thành công trên thế giới Hiện nay
hệ thống Asterisk đang được phát triển mạnh, nhiều doanh nghiệp, công ty đã và đang triển khai
hệ thống tạo liên lạc bên trong và ra cả mạng ngoài thông qua mạng máy tính, gọi điện thoại
Hình 12 Sơ đồ giao tiếp tổng quát
Trang 27CHƯƠNG 2: GIỚI THIỆU VỀ ASTERISK
Asterisk không chỉ giao tiếp, kết nối giữa các điện thoại với nhau mà còn có thể mở rộng kết nối đến các tổng đài khác, với IP Phone và nhiều dịch vụ như: Softswitch, Media Gateway, Voicemail Services, Conference Server, Music on hold…
2.2 Kiến trúc hệ thống Asterisk
Asterisk là thiết bị trung gian dùng để liên kết công nghệ điện thoại và Internet Asterisk được ứng dụng để kết nối điện thoại, đường dây điện thoại hoặc gói thoại đến một kết nối dịch vụ khác Asterisk có độ tin cậy cao và dễ dàng triển khai cho các hệ thống ( từ hệ thống nhỏ đến các
hệ thống lớn), Asterisk hỗ trợ ở mật độ cao và yêu cầu sự phức tạp
Asterisk hỗ trợ cho nhiều loại điện thoại có công nghệ khác nhau Các công nghệ điện thoại: VoIP, SIP, H.323, IAX và BGCP (dùng cho điện thoại đi quốc tế) Asterisk có thể kết nối với hầu hết loại điện thoại truyền thống mạng ISDN qua luồng T1 và E1 Các ứng dụng cho điện thoại: chuyển mạch cuộc gọi, cuộc gọi hội nghị, voicemail, chuyển hướng cuộc gọi, …
Một Asterisk server được kết nối tới một mạng vùng nội hạt sẽ điều khiển các điện thoại trong mạng kết nối đến mạng khác, các điện thoại trong mạng có thể thực hiện cuộc gọi và kết nối Internet thông qua Asterisk server
Cổng FXS dùng để Asterisk server điều khiển các điện thoại tương tự trong nội hat Cổng FXO
và kênh T được dùng để kết nối giữa Asterisk server với mạng PSTN Thuê bao trong mạng PSTN thực hiện cuộc gọi đến các thuê bao được quản lý bởi Asterisk server, các thuê bao của Asterisk cũng có thể thực hiện cuộc gọi đến thuê bao trong mạng PSTN
Hình 13 Sơ đồ khối của Asterisk
Một số chức năng của Ast eri sk trong hệ thống chuyển mạch cuộc gọi:
Trang 28Khi khởi động hệ thống Asterisk thì Dynamic Module Loader thực hiện nạp driver của thiết
bị, nạp các kênh giao tiếp, định dạng file, thu thập thông tin đầu cuối, codec và các ứng dụng liên quan, đồng thời các hàm API cũng được liên kết nạp vào hệ thống
Hệ thống Asterisk PBX Switching Core chuyển sang trạng thái sẵn sàng thực hiện chuyển mạch cuộc gọi, các cuộc gọi được thực hiện tuỳ vào kế hoạch quay số (Dialplan)
Chức năng Application Launchar để rung chuông thuê bao, kết nối với hộp thư thoại hoặc gọi
ra đường trung kế…
Scheduler and I/O Manager đảm nhiệm các ứng dụng nâng cao như: lập thời biểu và quản lý các cuộc gọi đến – đi ra ngoài Đây là các chức năng được phát triển bởi cộng đồng phát triển asterisk 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
Tất cả các cuộc gọi định hướng qua hệ thống Asterisk đều thông qua các giao tiếp như: SIP, DAHDI or IAX Mọi cuộc gọi vào và ra ngoài đều được thực hiện thông qua các giao tiếp trên Vì thế hệ thống Asterisk phải đảm trách nhiệm vụ liên kết các giao tiếp khác nhau đó để xử
lý cuộc gọi
Chức năng của các giao tiếp chương trình ứng dụng (API: Application Program Interface):
Codec translator API: các hàm đảm nhiệm thực thi và giải nén các chuẩn khác nhau như:
GMS, G723, Mu-Law…
Asterisk Channel API: Giao tiếp với các kênh liên lạc khác nhau, đây là đầu mối cho
việc kết nối các cuộc gọi tương thích với nhiều chuần khác nhau như SIP, ISDN, H323, DAHDI…
Asterisk file format API: Asterisk tương thích với việc xử lý các loại file có định dạng
khác nhau như: Mp3, WAV, GSM, AU…
Asterisk Aplication API: Bao gồm tất cả các ứng dụng được thực thi trong hệ thống
Asterisk như: cuộc gọi hội nghị, VoiceMail, CallerID…
Ngoài ra, Asterisk còn có thư viện Asterisk Gateway Interface (AGI, tương tự như CGI) - cơ chế kích hoạt ứng dụng bên ngoài, cho phép viết kịch bản phức tạp với một số ngôn ngữ như PHP hay Perl
2.3 Các mô hình ứng dụng của Asterisk
Asterisk thực hiện rất nhiều ngữ cảnh ứng dụng khác nhau tuỳ vào nhu cầu sử dụng, dưới dây s ẽ
g i ớ i t h i ệ u m ộ t s ố ngữ cảnh ứng dụng thường được sử dụng trong thực tế và đã được triển khai trên hệ thống asterisk
Trang 29CHƯƠNG 2: GIỚI THIỆU VỀ ASTERISK
2.3.1 Tổng đài VoIP IP PBX
Hình 14 IP PBX
Đây là hệ thống chuyển mạch VoIP được xây dựng phục vụ các công ty có nhu cầu thực hiện trên nền tảng mạng nội bộ đã triển khai Thay vì lắp đặt một hệ thống PBX cho nhu cầu liên lạc nội bộ thì nên lắp đặt hệ thống VoIP, vớ mô hình này chi phí phải trả sẽ được giảm đáng kể Hệ thống liên lạc với mạng PSTN qua giao tiếp TDM
Trang 302.3.2 Kết nối IP PBX với PBX
Hình 15 Kết nối IP PBX với PBX
Một ngữ cảnh đặt ra ở đây là hiện tại Công ty đã trang bị hệ thống PBX bây giờ cần trang bị thêm để đáp ứng nhu cầu liên lạc trong công ty sao cho với chi phí thấp nhất, giải pháp để thực hiện đó là trang bị hệ thống Asterisk và kết nối với hệ thống PBX đang tồn tại qua luồng E1 Ngoài ra để tăng khả năng liên lạc với mạng PSTN và VoIP khác, Công Ty sẽ đăng ký kết nối dịch vụ với nhà cung cấp dịch vụ VoIP
Trang 31CHƯƠNG 2: GIỚI THIỆU VỀ ASTERISK
2.3.3 Kết nối giữa các server Asterisk
Hình 16 Kết nối giữa các server Asterisk
Phương pháp trên ứng dụng rất hiệu quả cho các công ty nằm rãi rác ở các vị trị địa lý khác nhau nhằm giảm chi phí đường dài Ví dụ Công ty Mẹ có trụ sở đặt tại nước Mỹ và có các Chi nhánh đặt tại Việt Nam với hai địa điểm là Hà Nội và thành phố Hồ Chí Minh Thông qua mạng WAN của Công Ty các cuộc gọi nội bộ giữa các vị trí khác nhau sẽ làm giảm chi phí đáng kể
Trang 322.3.4 Các ứng dụng IVR, VoiceMail, Conference Call
Hình 17 Triển khai server IVR, Voicemail, Conference
Ứng dụng thực hiện các server kết nối với hệ thống PSTN hay tổng đài PBX để triển khai các ứng dụng như tương tác thoại IVR Một ví dụ cho ứng dụng tương tác thoại đó là cho biết kết quả sổ số, kiểm tra cước cuộc, dịch vụ giải trí – tra cứu thông tin thông qua số 19001260 Ứng dụng VoiceMail thu nhận những tin nhắn thoại từ phía thuê bao giống như chức năng hộp thư thoại của Bưu Điện triển khai
Chức năng cuộc gọi hội nghị được thiết lập cho nhiều máy điện thoại cùng nói chuyện với nhau
Trang 33CHƯƠNG 2: GIỚI THIỆU VỀ ASTERISK
2.3.5 Chức năng phân phối cuộc gọi tự động ACD
Hình 18 Phân phối cuộc gọi với hàng đợi
ACD (Automatic Call Distribution): Phân phối cuộc gọi tự động
Chức năng được ứng dụng cho nhu cầu chăm sóc khách hàng hay nhận phản hổi từ phía khách hàng
Giả sử một Công ty hệ thống điện thoại có khả năng tiếp nhận cùng một lúc 10 cuộc gọi, như thế nếu có thêm cuộc gọi thứ 11 gọi đến thì hệ thống giải quyết như thế nào? Bình thường thì sẽ nghe tín hiệu bận nhưng với chức năng phân phối cuộc gọi 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 và khi nào một trong mười số điện thoại đang gọi trở về trạng thái rỗi thì cuộc gọi đang chờ
sẽ được trả lời Giống như chức năng của dịch vụ: dịch vụ hỗ trợ thông tin 1080, dịch vụ hẹn giờ 116 của Bưu Điện, dịch vụ hỗ trợ khách hàng của các tổng đài điện thoại
2.4 Các dịch vụ cơ bản của Asterisk
2.4.1 Voicemail
Voicemail: hộp thư thoại với 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 Khi số điện thoại bị gọi bận hay ngoài vùng phủ sóng thì hệ thống asterisk định hướng trực tiếp 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 như: xác nhận password 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 342.4.2 Call Forwarding
Call Forwarding: chuyển hướng cuộc gọi
Khi bạn không ở nhà, hoặc đi công tác nhứng bạn không muốn bỏ lỡ tất cả các cuộc gọi đến thì tại sao lại không nghĩ đến việc chuyển cuộc gọi? Asterisk có tính năng chuyển hướng cuộc gọi để giúp bạn việc đó
Đây là tính năng thường được sử dụng trong hệ thống Asterisk Chức năng cho phép chuyển một cuộc gọi đến một hay nhiều số máy điện thoại được định trước
Một số trường hợp cần chuyển cuộc gọi như : Chuyển cuộc gọi khi bận, chuyển cuộc gọi khi không trả lời, chuyển cuộc gọi tức thời, chuyển cuộc gọi với thời gian định trước
2.4.3 Caller ID
Caller ID: cuộc gọi có hiển thị số
Với chức năng này thí số điện thoại của người gọi đến máy điện thoại của bạn sẽ được hiển thị, nhằm giúp bạn có thể biết được ai đang gọi tới
Ngoài ra Caller ID cũng cho phép chúng ta xác nhận số thuê bao gọi đến có nghĩa là dựa vào caller ID chúng ta có tiếp nhận hay không tiếp nhận cuộc gọi từ phía hệ thống Asterisk Ngăn một số cuộc gọi ngoài ý muốn
2.4.4 Interactive Voice Response
Interactive Voice Response (IVR) hay Automated Attendant (AA): đều được dùng để chỉ chức năng tương tác thoại (tổng đài trả lời tự động)
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 đượ c nghe thông điệp như:“Xin chào mừng bạn đã gọi
đến công ty chúng XXX hãy nhấn phím 1 để gặp phòng kinh doanh, phím 2 gặp phòng kỹ thuật, phím 3 gặp phòng hỗ trợ khách hàng…” sau đó tuỳ vào sự tương tác của thuê bao gọi đến, hệ
thống Asteisk sẽ định hướng cuộc gọi theo mong muốn
Dịch vụ xem điểm thi, tiền cước điện thoại của thuê bao, tỉ giá t i ề n t ệ hiện nay như thế nào, hay kết quả sổ số, bản tin dự báo thời tiết… tất các những mong muốn trên đều có thể thực hiện qua chức năng tương tác thoại
2.4.5 Time and Date
Nhằm chỉ định các khoảng thời gian cụ thể cuộc gọi sẽ định hướng đến một số điện thoại hay một chức năng cụ thể khác, ví dụ trong công ty giám đốc muốn chỉ cho phép nhân viên sử dụng máy điện thoại trong giờ hành chánh còn ngoài giờ thì sẽ hạn chế hay không cho phép gọi ra bên ngoài
Trang 35CHƯƠNG 2: GIỚI THIỆU VỀ ASTERISK
2.4.6 Call Parking
Chức năng Call Parking cũng thực hiện việc chuyển cuộc gọi nhưng có quản lý Có một số điện thoại trung gian và hai thuê bao có thể gặp nhau khi thuê bao được gọi nhấn vào số điện thoại mà thuê bao chủ gọi đang chờ trên đó và từ đây có thể gặp nhau và đàm thoại
2.4.7 Remote call pickup
Với tính năng này sẽ cho phép chúng ta từ máy điện thoại này có thể nhận cuộc gọi từ máy điện thoại khác đang rung chuông
2.4.8 Privacy Manager
Khi một người chủ doanh nghiệp triển khai Asterisk cho hệ thống điện thoại của công ty mình nhưng lại không muốn nhân viên trong công ty gọi đi ra ngoài trò chuyện với bạn bè, khi đó Asterisk cung cấp một tính năng tiện dụng là chỉ cho phép số điện thoại được lập trình được phép gọi đến những số máy cố định nào đó thôi, còn những số không có trong danh sách định sẵn
sẽ không thực hiện cuộc gọi được
2.4.9 Backlist
Backlist cũng giống như Privacy Manager nhưng có một sự khác biệt là những máy điện thoại nằm trong danh sách sẽ không gọi được đến máy của mình (sử dụng trong tình trạng hay bị quấy rối điện thoại)
Và còn rất nhiều tính năng nữa mà hệ thống asterisk có thể cung cấp cho người sử dụng, trên đây chỉ là một số tính năng thường được sử dụng
2.5 File cấu hình
2.5.1 Giới thiệu
Sự linh động của Asterisk được điều khiển thông qua các file cấu hình được chứa trong thư mục etc/asterisk ngọai trừ file system.conf cấu hình cho phần cứng TDM nằm tại thư mục /etc/dahdi
Định dạng của các file cấu hình trong Asterisk tương tự với dạng file ini (trong Window) File
này định dạng theo mã ASCII được chia ra thành nhiều phần (sections) Các nội dung sau dấu chấm phẩy là chú thích trong file cấu hình Các dòng trắng, khoảng trắng không có ý nghĩa trong file cấu hình Các phép gán được sử dụng: “=” dùng để gán các biến, “=>”để gán các đối tượng
;
; The first non-comment line in a config file
; must be a section title
;
[section1]
keyword = value ; Variable assignment
[section2]
Trang 36keyword = value
object => value ; Object declaration
2.5.2 Channel interfaces
Phần này giới thiệu các file cấu hình cho các Asterisk channel drivers
Asterick có thể được cấu hình với nhiều mục đích khác nhau, nhưng mô hình thông thường nhất
là Client/Server Mô hình này cho phép các client – hay còn gọi là UAC – user agent client kết nối vào server là Asterisk – hay còn gọi là UAS – User Agent Server Các UAC là nơi sinh ra các session trong khi UAS thì xử lý thụ động các session nhận được dựa trên tập hợp rule có sẳn Phần IV sẽ đi rỏ hơn về các dạng ứng dụng này
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à edit trực tiếp các file 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ó configuration riêng của mình, tuy nhiên có 2 file cấu hình quan trọng nhất là sip.conf và extension.conf:
Sip.conf : file cấu hình về các thông tin của các UAC 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: 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 Extensions.conf là file quan trọng nhất trong bất kỳ cấu hình Asterisk nào
Các file cấu hình khác:
Voicemail.conf: file cấu hình cho hệ thống 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 file cấu hình này
System.conf: file này nằm trong thư mục /etc/dahdi, 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
Chan_dahdi.conf: là file kết nối các thiết bị Telephony đã được khai báo vào hệ thống
Trang 37CHƯƠNG 2: GIỚI THIỆU VỀ ASTERISK
Dialplan của Asterisk chỉ được đặc tả trong file cấu hình “extensions.conf” Dialplan được tạo thành từ 4 phần chính: contex, extensions, priorities và application Các thành phần này làm việc với nhau để tạo nên một dialplan
2.6.1 Contexts
Dialplan được chia thành các phần gọi là context Context tách biệt các nhóm thuê bao Nó giữ cho các thành phần khác nhau không tác động lẫn nhau, mỗi extension được định nghĩa trong 1 context hoàn toàn tách biệt với bất kì extension nào trong context khác, trừ khi việc tương tác giữa chúng được đặc biệt cho phép
Lấy một ví dụ đơn giản để dễ hiểu, giả sử 2 công ty cùng chia sẽ một Asterisk Server Khi đặt menu voice của mỗi công ty trong context của chính công ty đó, khi đó sẽ có sự cách biệt rõ ràng giữa chúng với nhau, khi cả hai cùng gọi extension 0 thì chuyện gọi này sẽ là độc lập giữa 2 công
ty, không có một sự liên hệ nào ở đây
Context được chỉ định bằng cách đặt tên của context đó vào trong dấu ngoặc vuông Tên của context có thể là kí tự từ a z, 0 9, - và _ Ví dụ: [outcommingcall]
Tất cả các chỉ dẫn đặt sau đó là các phần của context đó cho tới khi context tiếp theo được định nghĩa Trong phần đầu của dialplan đó, có 2 context đặc biệt là [general] và [globals]
Một trong những công dụng quan trọng của context là thực thi bảo mật Bằng cách sử dụng context chính xác, có thể giúp cho caller A có thể truy cập vào các dịch vụ, đặc tính mà các caller khác không có Nếu hệ thống không được xây dựng một cách cẩn thận, nó có thể bị gian lân, sử dụng lậu bởi người khác Điều này là đặc biệt nghiêm trọng
Hệ thống Asterisk chứa file SECURITY rất quan trọng, nó phát thảo các bước thực hiện để giúp cho hệ thống chúng ta được an toàn Từ chối các cảnh báo này có thể “giúp” cho nhiều người có thể truy cập và gọi các cuộc gọi đường dài, mà chi phí là chúng ta phải chịu
2.6.2 Extension
Chúng ta cần xác định, định nghĩa một hoặc nhiều extension Một extension là một lệnh mà Asterisk phải theo, nó được kích bởi một cuộc gọi đến hay là một phím được nhấn trên kênh Extension đặc tả việc xử lý cuộc gọi khi nó đi xuyên qua dialplan
Cú pháp cho extension như sau:
exten => name,priority,application( )
Ví dụ:
exten => 123,1,Answer() Theo sau là tên của extension Trong hệ thống điện thoại, extension như là một số dùng để gọi Trong Asterisk, extension được tạo thành từ sự tổng hợp của các số và các kí tự Đây là đặc điểm giúp cho Asterisk hoạt động một cách mạnh mẽ và linh hoạt bởi hầu hết các giao thức VoIP đều hỗ trợ việc sử dụng tên, địa chỉ email thay vì sử dụng số
Trang 38Unnumbered Priorities: Trong phiên bản Asterisk mới, có thể dùng ‘n’ thay cho số thứ tự để chỉ
độ ưu tiên kế tiếp Cách làm này rất thuận tiện, người viết không cần phải nhớ số thứ tự
2.6.4 Applications
Application (ứng dụng) gánh vác hầu như toàn bộ công việc của dialplan Mỗi ứng dụng thực hiện một hành động cụ thể trên kênh đang hoạt đông, như: nghe máy, gác máy, chơi nhạc, chấp nhận dial tone…
Trong vài ứng dung, như answer(), hangup(), không cần các lệnh khác để thực hiện Tuy nhiên, trong vài ứng dụng lại cần them các thông tin bổ xung Các phần thông tin thêm vào đó được gọi
là argument Argument được đặt trong dấu ngoặc đơn, các argument phân biệt với nhau bằng dấu phẩy
Một vài ứng dụng thường hay được sử dụng:
Trang 39CHƯƠNG 2: GIỚI THIỆU VỀ ASTERISK
Ứng dụng này cho phép user lắng nghe các tin nhắn thoại, cũng như ghi âm các lời chào, tên và thiết lập các tùy chọn cấu hình khác
Dial(technology/id,options,timeout)
Đây là nơi chúng ta báo cho Asterisk biết để rung chuông một điện thoại khi nó được quay số Các tùy chọn bao gồm:
t: cho phép user bị gọi chuyển cuộc gọi bằng cách nhấn phím #
T: cho phép user gọi chuyển cuộc gọi bằng cách nhấn phím #
r: rung chuông
m: cung cấp nhạc chờ
H: cho phép gác máy bằng cách nhấn phím
2.7 Tiện ích Dial Out
Để có thể thực hiện được việc gửi quà tặng trong tương lai, phải sử dụng đến một tiện ích gọi là Auto dial out trong Asterisk đó là asterisk call file
Asterisk call file là một cấu trúc file mà khi chuyển vào thư mục thích hợp, có thể tự động thực hiện các cuộc gọi sử dụng Asterisk Call file là cách tuyệt vời để thực hiện các cuộc gọi tự động
mà không cần sử dụng các tính năng phức tạp của Asterisk như AMI
Cách thức hoạt động của Call file:
Di chuyển call file vào thư mục /var/spool/asterisk/outgoing/
Trong file modules.conf đặt autoload=no để chắc chắn rằng file pbx_spool.so được load, ngược lại thì nó sẽ không hoạt động
Nếu thay đổi thời gian call file trong tương lai, Asterisk sẽ chờ cho đến khi giờ hệ thống phù hợp với thời gian thay đổi ở lần trước đó để thực hiện call file
Asterisk sẽ thông báo và ngay lập tức thự hiện các chỉ thị được xác định trong file call Điều này có thể bao gồm kết nối với một bối cảnh Asterisk dialplan, hoặc thực hiện một dialplan
Sau đó asterisk sẽ gỡ bỏ call file ra khỏi thư mục /var/spool/asterisk/outgoing/
Cú pháp 1 call file:
Channel: kênh để sử dụng cho cuộc gọi
CallerID: Caller ID được gọi
MaxRetries: số lần thử gọi lại tối đa khi thất bại (không bao gồm cuộc gọi ban đầu, ví dụ
0 thì tổng số cuộc gọi thực hiện là 1) Mặc định là 0
RetryTime: thời gian(s) giữa hai lần thử Mặc định là 300 (5 phút)
WaitTime: thời gian (s) để đợi câu trả lời Mặc định là 45
Account: thiết lập các mã tài khoản để sử dụng.
Nếu cuộc gọi được trả lời, kết nối nó ở đây:
Trang 40 Context: bối cảnh trong extensions.conf
Extension: được định nghĩa trong extensions.conf
Priority: ưu tiên extension để bắt đầu
Set: Thiết lập một biến để sử dụng trong logic extension
Application: ứng dụng Asterisk để chạy (sử dụng thay vì xác định bối cảnh extension và
ưu tiên)
Data: Các tùy chọn dữ liệu cho ứng dụng.
Ví dụ: tạo 1 call file đơn giản
Hệ thống sẽ tự động kiểm tra liên tục tất cả các file call trong thư mục
/var/spool/asterisk/outgoing, nếu thời gian tạo ra file call bằng đúng thời gian hệ thống thì hệ
thống sẽ tự động gọi đến số điện thoại theo context được tạo trong file call
2.8 AGI
2.8.1 Tổng quan về AGI
AGI (asterisk gateway interface) cung cấp một giao diện chuẩn để các chương trình bên ngoài có thể điều khiển Asterisk thông qua cấu hình hệ thống dialplan Thông thường AGI scripts được sử dụng để thực hiện những logic bậc cao, giao tiếp với cơ sở dữ liệu quan hệ như PostgreSQL hay MySQL và truy cập những tài nguyên bên ngoài khác Thông qua sự điều khiển dialplan, AGI scripts cho phép Asterisk dễ dàng thực thi các nhiệm vụ mà ở một khía cạnh khác lại khó thực thi hoặc là không thể thực thi
AGI scripts có thể được viết vởi các ngôn ngữ lập trình hiện đại nhưng trong phạm vi của báo cáo sẽ chỉ tập trung vào việc trình kịch bản AGI thông qua ngôn ngữ PHP
Ba giao tiếp cơ bản của AGI và Asterisk là STDIN, STOUT, STDERR