MỤC LỤC
Trang Trang bìa lót ... Nhiệm vụ đồ án tốt nghiệp ... Lịch trình thực hiện đồ án tốt nghiệp ... Lời cảm ơn ... i Mục lục ... ii Liệt kê bảng ... vii Liệt kê hình ... viiiLiệt kê từ viết tắt ... xii
Tóm tắt ... xiv
Abstract ... xv
Chương 1 GIỚI THIỆU ... Error! Bookmark not defined. 1.1 Mở đầu ... Error! Bookmark not defined. 1.2 Lý do thực hiện đề tài ... Error! Bookmark not defined. 1.3 Mục tiêu của đề tài ... Error! Bookmark not defined. 1.3.1 Xây dựng hệ thống IP PBX ... Error! Bookmark not defined. 1.3.1.1 Yêu cầu ... Error! Bookmark not defined. 1.3.1.2 Các bước thực hiện ... Error! Bookmark not defined. 1.3.2 Giải pháp tính cước cuộc gọi ... Error! Bookmark not defined. 1.3.2.1 Yêu cầu ... Error! Bookmark not defined. 1.3.2.2 Các bước thực hiện ... Error! Bookmark not defined. 1.4 Đối tượng cần tìm hiểu ... Error! Bookmark not defined. 1.5 Giới hạn của đề tài ... Error! Bookmark not defined. 1.6 Bố cục của đồ án... Error! Bookmark not defined. Chương 2 TỔNG QUAN VỀ VOIP ... 9
2.1 Mạng điện thoại chuyển mạch công cộng ... 9
2.1.1 PSTN lúc ban đầu ... 9
2.1.2 Những kiến thức cơ bản về PSTN ... 11
2.1.2.1 Tín hiệu tương tự và tín hiệu số ... 11
2.1.2.2 Điều chế xung mã PCM ... 11
2.1.2.3 Local loop và Trunk ... 11
2.1.2.4 Truyền tín hiệu trong PSTN ... 12
2.1.2.5 Những dịch vụ và ứng dụng của PSTN ... 13
2.1.3 Những hạn chế của PSTN ... 13
2.2 Voice over Internet Protocol (VoIP) ... 14
2.2.1 Chuyển mạch gói ... 14
2.2.2 CODEC – Mã hóa và giải mã ... 15
2.2.3 Các giao thức điều khiển ... 16
2.2.4 Những ưu điểm của VoIP ... 19
2.2.5 Những hạn chế của VoIP ... 20
2.2.6 Một số dịch vụ của VoIP ... 20
2.2.6.1 Dịch vụ điện thoại qua Internet ... 20
2.2.6.2 Thoại thông minh ... 20
2.2.6.4 Dịch vụ Callback Web ... 20
2.2.6.5 Dịch vụ fax qua IP ... 20
2.2.6.6 Dịch vụ Call Center ... 21
2.3 Kết luận ... 21
Chương 3 GIAO THỨC KHỞI TẠO PHIÊN SIP ... 22
3.1 Giới thiệu giao thức SIP ... 22
3.2 Các thành phần của SIP ... 23
3.2.1 User Agent ... 23
3.2.1.1 User Agent Client ... 23
3.2.1.2 User Agent Server ... 23
3.2.2 Các loại Server trong mạng SIP ... 23
3.2.2.1 Proxy Server ... 23
3.2.2.2 Redirect Server ... 24
3.2.2.3 Registrar Server ... 24
3.2.3 Back to Back User Agent (B2BUA) ... 25
3.2.4 Các cơ chế hoạt động của SIP ... 26
3.2.4.1 Mô hình Peer to Peer ... 26
3.2.4.2 Mô hình thông qua proxy server ... 27
3.2.4.3 Cuộc gọi SIP thông qua mô hình Redirect Server ... 28
3.3 SIP và H.323 ... 31
3.3.1 Mức độ phức tạp ... 31
3.3.2 Khả năng mở rộng ... 31
3.4 SIP và IAX ... 32
3.5 Kết luận ... 33
Chương 4 GIỚI THIỆU VÀ CÀI ĐẶT ASTERISK ... 34
4.1 Tổng đài IP PBX ... 34
4.1.1 Khái quát về tổng đài IP PBX ... 34
4.1.2 Các ưu điểm so với tổng đài PBX truyền thống ... 34
4.1.3 So sánh giữa IP PBX và PBX truyền thống ... 34
4.1.4 Khả năng áp dụng trong các doanh nghiệp vừa và nhỏ ... 35
4.2 Tìm hiểu về Asterisk ... 35
4.2.2 Kiến trúc cơ bản của Asterisk ... 38
4.2.3 Hệ thống cũng bao gồm 4 chức năng API chính ... 39
4.2.4 Các mô hình ứng dụng triển khai ... 39
4.2.4.1 Tổng đài VoIP IP PBX ... 39
4.2.4.1 Kết nối IP PBX với PBX ... 40
4.2.4.2 Kết nối giữa các server Asterisk ... 41
4.2.4.3 Các ứng dụng IVR, VoiceMail, Điện Thoại Hội Nghị ... 42
4.2.4.4 Chức năng phân phối cuộc gọi tự động ACD ... 43
4.2.5 Sự ra đời của giao thức IAX – Inter Asterisk Exchange... 43
4.3 Cài đặt và cấu hình Asterisk ... 44
4.3.1 Yêu cầu về cấu hình phần cứng ... 44
4.3.2 Kết nối Internet ... 44
4.3.3 Cài đặt hệ điều hành Linux ... 44
4.3.3.1 Thiết lập địa chỉ IP ... 44
4.3.3.3 Download và cài đặt các gói phụ hỗ trợ cài đặt Linux ... 45 4.3.3.4 Cài đặt Apache 2 ... 45 4.3.3.5 Cài đặt PHP5 ... 45 4.3.3.6 Cài đặt MySQL ... 46 4.3.4 PUTTY ... 46 4.3.5 WinSCP ... 48 4.4 Cài đặt Asterisk ... 49
4.4.1 Download các gói cài đặt của Asterisk ... 49
4.4.2 Giải nén và cài đặt các gói của hệ thống Asterisk ... 50
4.4.2.1 Cài đặt gói DAHDI ... 50
4.4.2.2 Cài đặt gói Lipri ... 50
4.4.2.3 Cài đặt gói Asterisk ... 51
4.4.2.4 Cài đặt gói Asterisk-addons ... 51
4.4.2.5 Cài đặt gói Extra Sound ... 51
4.5 Kết luận ... 51
Chương 5 GIỚI THIỆU VÀ CÀI ĐẶT FREEPBX ... 52
5.1 Giới thiệu FreePBX ... 52
5.2 Cài đặt chương trình FreePBX ... 52
5.3 Cấu hình Card X100P giao tiếp với PSTN ... 56
5.3.1 Giới thiệu Card X100P ... 56
5.3.2 Khái niệm FXO và FXS ... 57
5.3.3 Cấu hình Card X100P giao tiếp với PSTN ... 58
5.4 Kết luận ... 61
Chương 6 GIỚI THIỆU VÀ CÀI ĐẶT A2BILLING ... 63
6.1 Giới thiệu A2Billing ... 63
6.2 Tìm hiểu về AGI (Asterisk Gateway Interface) ... 64
6.2.1 Cấu trúc cơ bản AGI ... 64
6.2.2 Phân loại AGI ... 65
6.2.3 Một số hàm cơ bản của AGI ... 66
6.3 Cấu trúc và nguyên tắc hoạt động của A2Billing ... 71
6.4 Cài đặt A2Billing ... 73
6.5 Một số khái niệm trong A2Billing ... 79
6.6 Kết luận ... 81
Chương 7 XÂY DỰNG HỆ THỐNG PBX ASTERISK VÀ GIẢI PHÁP TÍNH CƯỚC A2BILLING ... 82 7.1 Mô hình hệ thống thực tế... 82 7.2 Các thiết bị phần cứng và phần mềm sử dụng... 83 7.2.1 Phần cứng ... 83 7.2.2 Phần mềm ... 83 7.3 Một số chức năng của hệ thống IP PBX ... 83
7.3.1 Add Extension (Tạo tài khoản thuê bao) ... 83
7.3.2 Call Waiting (Cuộc gọi chờ) ... 89
7.3.3 Music On Hold (Nhạc chờ khi giữ máy) ... 89
7.3.4 Blacklist (Danh sách loại trừ) ... 93
7.3.5 Ring Groups (Đổ chuông chóm) ... 94
7.3.7 Do Not Disturb (Từ chối nhận cuộc gọi) ... 97
7.3.8 Conference (Xây dựng hệ thống hội thoại) ... 97
7.3.9 Follow Me (Chuyển cuộc gọi khi bận) ... 99
7.3.10 Callback (Tự động gọi lại) ... 101
7.3.11 Voicemail (Hộp thư thoại) ... 103
7.3.12 Call Forward (Chuyển hướng gọi) ... 104
7.3.13 Call Pickup (Nhận cuộc gọi từ xa trong cùng một nhóm) ... 105
7.3.14 IVR (Ứng dụng tương tác thoại) ... 106
7.3.15 Time Conditions (Xác lập thời gian biểu)... 109
7.3.16 Day/Night Mode Control (Chuyển đổi chế độ ngày đêm) ... 112
7.3.17 Speed Dial (Quay số nhanh) ... 114
7.3.18 System Recordings (Hệ thống ghi âm) ... 115
7.3.18.2 Ghi âm trực tiếp ... 116
7.3.18.3 Tải lên các bản ghi âm có sẵn ... 117
7.3.19 Calls Recordings (Ghi âm cuộc gọi) ... 118
7.3.19.1 Đăng nhập tài khoản Voicemail ... 118
7.3.19.2 Ghi âm tất cả cuộc gọi ... 120
7.3.19.3 Ghi âm cuộc gọi khi có yêu cầu ... 120
7.3.20 Call Parking and Transfer (Chuyển cuộc gọi) ... 121
7.3.20.1 Chuyển cuộc gọi có quản lý ... 122
7.3.20.2 Chuyển cuộc gọi không có quản lý ... 123
7.3.20.3 Duy trì cuộc gọi ... 123
7.3.21 Remote Extension (Extension đăng nhập từ xa) ... 123
7.3.21.1 NAT port (Forwarding Port) ... 123
7.3.21.2 Giới thiệu về No-IP ... 124
7.3.21.3 Cấu hình Remote Extension ... 126
7.3.22 Thiết lập Trunk cho các cuộc gọi trong FreePBX ... 129
7.3.22.1 Trunks ... 129
7.3.22.1.2 Tạo ZAP Trunk ... 130
7.3.22.1.3 Tạo SIP Trunk ... 131
7.3.23 Outbound Routes (Định tuyến cuộc gọi ra) ... 132
7.3.24 Một số kết quả thực hiện ... 133
7.4 Một số chức năng của A2Billing ... 137
7.4.1 Providers and trunks ... 137
7.4.1.1 Providers ... 137 7.4.1.2 Trunks ... 138 7.4.2 Rate Cards ... 140 7.4.3 Rates ... 142 7.4.4 Call plan ... 147 7.4.5 Customers ... 148 7.4.6 Kết hợp FreePBX và A2Billing ... 151
7.4.7 Một số kết quả thực hiện với A2Billing. ... 153
7.4.8 Một số chức năng khác của A2Billing ... 156
7.4.8.1 Call Report ... 156
7.4.8.2 Tự động cập nhật Card Number cho các Extension ... 157
7.4.9 Giao diện web người dùng A2Billing ... 160
7.4.9.1 Giới thiệu ... 160
7.4.9.2 Một số chức năng sử dụng trên giao diện người dùng ... 162
7.4.9.2.1 Call history (Lịch sử các cuộc gọi) ... 162
7.4.9.2.2 Speed dial (Quay số nhanh) ... 162
7.4.9.2.3 Ratecard ... 163
7.4.9.2.4 Simulator (Mô phỏng cuộc gọi) ... 163
7.5 Kết luận ... 163
Chương 8 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ... 165
8.1 Kết luận ... 165
8.2 Hướng phát triển ... 165
LIỆT KÊ BẢNG
Trang
Bảng 2.1 So sánh các chuẩn CODEC ... 16
Bảng 3.1 Các loại Frame trong giao thức IAX ... 32
Bảng 4.1 So sánh giữa PBX truyền thống và IP-PBX ... 35
Bảng 4.2 Yêu cầu về phần cứng đối với tổng đài Asterisk ... 44
LIỆT KÊ TỪ VIẾT TẮT
AAA Authentication – Authorization - Accounting ACD Automatic Call DistributionACK Acknowledgement
ADSL Asymmetric Digital Subcriber Line AGI Asterisk Gateway Interface
API Application Program Interface ATA Analog Telephone Adapter B2BUA Back to Back User Agent BRI Basic Rate Interface CDR Call Detail Record
CGI Common Gateway Interface
CLASS Custom Local Area Signaling Service CLI Command Line Interface
CODEC Compression/Decompression Algorithm CRM Customer Relationship Management
Cseq Command Sequence
DAHDI Digium Asterisk Hardware Device Interface DHCP Dynamic Host Configuration Protocol DID Direct Inward Dialing
DISA Direct Inward System Access DNID Dial Number Identifier
DNS Domain Name System
DSL Digital Subcriber Line DUC Dynamic Update Client DTMF Dual Tone Multi-Frequency FXO Foreign Exchange Office FXS Foreign Exchange Station GPL General Public License
GSM Global System For Mobile Communications GUI Graphical User Interface
HTTP Hyper Text Transport Protocol IAX Inter Asterisk Exchange
ISDN Integrated Services Digital Network ISP Internet Service Provider
IVR Interactive Voice Response LAN Local Area Network
LCD Least Cost Dialing LCR Least Cost Routing
MF Multi-Frequency
MOH Music On Hold
MP3 MPEG-1 Audio Layer 3 NAT Network Address Translation
NGN Next Generation Networks OSS Operations Support System PBX Private Branch Exchange
PC Personal Computer
PCM Pulse Code Modulation
PIN Personal Identification Number PRI Primary Rate Interface
PSTN Public Switch Telephone Network RCTP RTP Control Protocol
RPM Red Hat Package Manager RTP Real Time Protocol
SDP Session Description Protocol SER SIP Express Router
SIP Session Initial Protocol SS7 Signaling System 7
TCP Transmission Control Protocol
UA User Agents
UAC User Agent Client UAS User Agent Server UDP User Datagram Protocol URI Universal Resource Identifier URL Universal Resource Location URL Uniform Resource Locator VoIP Voice Over Internet Protocol VSP VoIP Service Provider
WAN Wide Area Network
TỔNG QUAN VỀ VOIP
Chương 1
Mạng điện thoại chuyển mạch công cộng 1.1
Mạng điện thoại chuyển mạch công cộng, hay còn gọi là PSTN (Public Switch Telephone Network), là mô hình mạng điện thoại truyền thống được sử dụng rộng rãi hiện nay. Trong phần này, chúng ta sẽ tìm hiểu một cách sơ lược về những vấn đề cơ bản của PSTN.
PSTN lúc ban đầu 1.1.1
Ban đầu, việc truyền giọng nói được thực hiện bằng một mạch gọi là ring-down, trong đó không sử dụng các số điện thoại để gọi như bây giờ mà dùng dây nối trực tiếp giữa hai thiết bị. Thiết kế đơn giản này dần dần được cải tiến, từ việc chỉ có một người nói phát triển thành hệ thống cho phép hai người cùng trao đổi trực tiếp với nhau. Việc truyền tín hiệu thoại trên các cặp dây đồng đòi hỏi phải có các thành phần kèm theo khác như micro bằng cacbon, pin, nam châm điện và màng rung. Ngoài ra phải có dây nối trực tiếp các thiết bị của người nói và người nghe với nhau. Những yêu cầu như vậy làm cho hệ thống điện thoại không hiệu quả, chi phí cao và không linh hoạt.
Sơ đồ kết nối 4 máy Hình 1.1
Điều này cũng dễ hiểu, ví dụ chúng ta có 4 máy điện thoại cần liên lạc với nhau, các máy đó phải nối trực tiếp với nhau như hình 2.1. Khi số lượng máy càng nhiều thì sơ đồ kết nối càng chằn chịt. Nếu muốn kết nối một hệ thống có 8 máy thì số lượng cặp dây đồng là 28 như hình 2.2.
Sơ đồ kết nối 8 máy Hình 1.2
Một cách tổng quát, khi có N máy trong hệ thống thì phải có N(N-1)/2 cặp dây nối. Rõ ràng, với cách thức cấu hình và hoạt động như trên, hệ thống không những đòi hỏi một một chi phí quá cao, mà cách thức tổ chức quản lý cũng rất khó khăn. Chẳng hạn, khi cần thêm một máy vào một hệ thống đang có sẵn N máy thì phải nối thêm vào N cặp dây mới. Để khắc phục những khuyết điểm của hệ thống trên, một cơ chế mới ra đời cho phép kết nối các cuộc gọi một cách dễ dàng và thuận lợi hơn nhiều. Cơ chế này sử dụng một thiết bị chuyển mạch (switch), nó giúp cho người sử dụng có thể thực hiện cuộc gọi với máy điện thoại khác thông qua trung tâm chuyển mạch. Mỗi máy chỉ cần kết nối với trung tâm chuyển mạch mà không cần phải nối trực tiếp với các máy khác.
Mô hình chuyển mạch lúc sơ khai Hình 1.3
Ban đầu khi mới phát triển, bộ phận chuyển mạch do con người trực tiếp đảm nhận. Hình 2.3 mô tả một sơ đồ cơ bản của hệ thống chuyển mạch lúc mới hình thành.
Trải qua hơn 100 năm phát triển, các hệ thống chuyển mạch điện thoại ngày nay đã được thay thế bằng những hệ thống chuyển mạch tự động, sử dụng các công nghệ điện tử mới. PSTN là mạng điện thoại sử dụng hệ thống chuyển mạch tự động đang được dùng một cách rộng rãi hiện nay.
Những kiến thức cơ bản về PSTN 1.1.2
Tín hiệu tương tự và tín hiệu số 1.1.2.1
Các tín hiệu trong tự nhiên vốn là các tín hiệu tương tự. Tín hiệu tương tự được thể hiện bằng các đại lượng vật lý biến thiên liên tục theo thời gian, ví dụ như biên độ dòng điện, sóng âm,… Tuy nhiên, trong thực tế, khi sử dụng tín hiệu tương tự để truyền tin tức đi xa thường gây ra nhiều tổn thất về năng lượng, nhất là độ tin cậy của tín hiệu do quá trình thâm nhập của các nhiễu và mất mát trên đường truyền. Do đó người ta thường chuyển các tín hiệu tương tự thành tín hiệu số trong các hệ thống viễn thông. Tín hiệu số về cơ bản đó là một chuỗi các ký hiệu rời rạc được chọn từ một tập hữu hạn các ký hiệu rời rạc, ví dụ như các chuỗi các ký tự chữ hay số.
Hệ thống thông tin số đã chứng tỏ được những ưu thế của mình so với hệ thống tương tự. Chính vì vậy, trong hệ thống điện thoại người ta đã sử dụng các phương pháp điều chế số để chuyển đổi giữa tương tự và số. Phương pháp điều chế xung mã PCM (Pulse Code Modulation) là một ví dụ được sử dụng rộng rãi.
Điều chế xung mã PCM 1.1.2.2
PCM là phương pháp mã hóa phổ biến được sử dụng trong các hệ thống điện thoại truyền thống. Nó cho phép chuyển đổi các tín hiệu tương tự thành các chuỗi các bit 0 và 1. Quá trình này phải tuân theo định luật Nyquist, tức là một tín hiệu liên tục theo thời gian có thể được phục hồi chính xác nếu như băng thông của nó là hữu hạn và tần số lấy mẫu lớn hơn hoặc bằng hai lần băng thông tín hiệu.
Trong các hệ thống mã hóa thoại, quá trình của PCM như sau:
• Tín hiệu thoại là tín hiệu tương tự được cho qua bộ lọc thông thấp để loại bỏ các thành phần có tần số cao hơn 4000 Hz.
• Tín hiệu sau đó được lấy mẫu ở tần số 8000 Hz.
• Sau khi được lấy mẫu, tín hiệu sẽ được chuyển thành dạng rời rạc qua quá trình lượng tử hóa. Thông thường trong hệ thống thoại người ta sử dụng 8 bit để lượng tử và dùng giải thuật nén để có thể gán nhiều bit hơn cho các tín hiệu có biên độ nhỏ.
Từ cách thức hoạt động như trên, có thể thấy được tốc độ của hệ thống thoại phổ biến là 64 kbps. Có hai loại PCM 64 kbps được dùng nhiều là µ-law ở các nước Bắc Mỹ và a-law ở các nước Châu Âu. Cả hai dạng này đều khá giống nhau, thay vì phải dùng đến 12 hay 13 bit như trong PCM tuyến tính thì chúng chỉ dùng 8 bit cho từ mã. Tuy nhiên µ-law tỏ ra hiệu quả hơn so với a-law trong những trường hợp tỷ số tín hiệu trên nhiễu thấp.
Local loop và Trunk 1.1.2.3
Local loop dùng để chỉ vòng lặp trong đôi dây nối từ trung tâm chuyển mạch đến máy điện thoại của khách hàng. Quá trình giao tiếp giữa các thuê bao với trung tâm được thực hiện trong vòng lặp này. Trunk là đường giao tiếp giữa các trung tâm chuyển mạch với nhau.
Mô hình mạng điện thoại dạng cây
Các thuê bao không nối trực tiếp với nhau mà kết nối với một trung tâm chuyển mạch. Các trung tâm này lại kết nối với nhau và kết nối với trung tâm chuyển mạch cấp cao hơn. Cứ như thế tạo ra một mô hình mạng điện thoại dạng hình cây như hình vẽ 2.4.
Với việc kết nối như vậy, khi có quá nhiều cuộc gọi xảy ra cùng một lúc thì các trung tâm có thể điều khiển các cuộc gọi đi theo các hướng phù hợp để tránh gây ra nghẽn mạng.
Truyền tín hiệu trong PSTN 1.1.2.4
PSTN có hai dạng truyền tín hiệu (signaling), đó là user – network signaling và network – network signaling.
Trong kiểu thứ nhất, user – network signaling, thiết bị đầu cuối người sử dụng liên lạc với mạng điện thoại thông qua cặp dây xoắn. Signaling phổ biến trong trường hợp này là DTMF (Dual Tone Multi-Frequency). Hình vẽ 2.5 dưới dây mô tả cấu trúc của một bàn phím DTMF.
Cấu trúc bàn phím DTMF Hình 1.5
Bàn phím DTMF cấu thành từ một ma trận 4x4, mỗi hàng tương ứng với một tần số thấp và mỗi cột tương ứng với một tần số cao. Mỗi phím bấm tương ứng với
một tín hiệu sin có hai xung ở các vị trí thấp và cao tương ứng. Ví dụ, khi phím 9 được bấm thì một tín hiệu sin có hai xung ở các tần số 852 Hz và 1477 Hz được gửi đi. Tín hiệu này được bộ phận chuyển mạch tiếp nhận, giải mã và xác định phím nào đã được bấm. DTMF là phương pháp in-band signaling.
Trong ISDN (Intergrated Services Digital Network), phương pháp truyền tín hiệu là out-of-band signaling. Với phương pháp này, tín hiệu được truyền trong những kênh khác nhau. Kênh truyền các tín hiệu voice, data, fax gọi là kênh bearer hay còn gọi là kênh B với tốc độ 64 kbps. Kênh truyền các tín hiệu mang gọi là kênh điều khiển hay là kênh D.
Đối với các văn phòng nhỏ thì chỉ cần dùng BRI (Basic Rate Interface) với 2 kênh B 64 kbps và một kênh D 16 kpbs. Tuy nhiên với các công ty lớn hơn, lượng thông tin cần truyền nhiều hơn thì phải dùng PRI (Primary Rate Interface) với 23 kênh B 64 kbps và 1 kênh D 64 kpbs.
Việc sử dụng out-of-band signaling có những ưu điểm như dùng được một cách phức hợp trong các kênh thông thường, giảm nhiễu, hạn chế trễ tín hiệu,…
Kiểu thứ hai là giao tiếp network – network signaling, thường dùng các phương tiện truyền dẫn như:
• T1/E1 với các cặp dây xoắn đôi: T1 là đường truyền có tốc độ 1.554 Mbps thường dùng ở Bắc Mỹ và Nhật. E1 cũng là đường truyền số nhưng tốc độ cao hơn 2.048 Mbps dùng ở Châu Âu.
• T3/E3, T4 với cáp xoắn đồng trục: T3 chứa 28 kênh T1, E3 chứa 16 kênh E1 và T4 chứa 168 kênh T1.
• T3 và T4 dùng sóng vi ba.
• SONET (Synchronous Optical Network) truyền qua cáp quang tốc độ lên đến vài Gbps.
Network – network signaling sử dụng phương pháp in-band signaling như MF (Multi-Frequency) hay RBS (Robbed Bit Signaling). MF khá giống với DTMF nhưng khác ở chỗ nó dùng tập các giá trị tần số khác và thay vì trao đổi giữa người dùng với nhau như DTMF thì MF lại trao đổi giữa các bộ phận chuyển mạch với nhau.
Ngoài ra network – network signaling còn sử dụng các out-of-band signaling như SS7 (Signaling System 7). SS7 là phương thức trao đổi thông tin giữa các bộ phận chuyển mạch với nhau nhằm điều khiển các cuộc gọi và dịch vụ CLASS (Custom Local Area Signaling Services).
Những dịch vụ và ứng dụng của PSTN 1.1.2.5
PSTN cung cấp nhiều dịch vụ cho người sử dụng, ngoài những chức năng nghe nói thông thường, có thể kể ra một vài ứng dụng của PSTN như: cuộc gọi chờ, chuyển hướng cuộc gọi, conference, hiển thị số người gọi, tự động gọi lại,…
Những hạn chế của PSTN 1.1.3
Mạng điện thoại PSTN đã đáp ứng được khá tốt nhu cầu trao đổi thông tin thông qua âm thoại. Tuy nhiên, ngày nay với sự phát triển của hệ thống mạng IP
các doanh nghiệp luôn muốn tích hợp cả dữ liệu và tiếng nói lên một hạ tầng chung. Các mạng này sẽ đáp ứng được những yêu cầu mới, dịch vụ mới với giá thành thấp và chất lượng chấp nhận được.
Qua một thời gian hình thành và phát triển của PSTN, người ta thấy rằng nó có một số nhược điểm nổi bậc như:
• PSTN không thể tạo ra và triển khai các ứng dụng một cách nhanh chóng. Khi sự cạnh tranh ngày càng cao trong thị trường, biện pháp hữu hiệu nhất để tạo nên ưu thế cho mình chính là tạo ra các dịch vụ mới nhất và nhanh nhất. PSTN là hệ thống mạng dựa trên một hạ tầng khép kín, nghĩa là chỉ có nhà cung cấp dịch vụ có quyền phát triển các ứng dụng trên dịch vụ đó. Điều này gây khó khăn cho các công ty khi muốn đáp ứng đầy đủ nhu cầu của khách hàng. Do đó người ta hướng đến một giải pháp mở cho phép nhiều nhà khai thác phát triển một cách sáng tạo và hiệu quả các ứng dụng.
• Không thể truyền đồng thời data, voice và video trên hạ tầng mạng PSTN truyền thống với các dây điện thoại analog như hiện nay. Cần phải sử dụng hệ thống truyền dẫn băng rộng tốc độ cao như DSL, cáp, hay wireless để có thể tích hợp đồng thời voice, data và video.
• Hạ tầng mạng xây dựng cho voice không thích hợp cho truyền dẫn data. • Sử dụng băng thông không hiệu quả. PSTN dùng kiểu chuyển mạch circuit
switching đòi hỏi 64-kpbs cho một cuộc thoại trên đôi dây.Nghĩa là khi có người đang thực hiện một cuộc gọi trên đôi dây nào đó thì 64-kpbs sẽ được sử dụng cho suốt cả quá trình thoại mà không có thành phần thứ ba nào có thể chen vào sử dụng nó.
• Giá thành cho xây dựng và chi phí phải trả cho các nhà cung cấp dịch vụ cao.
Xu thế tích hợp voice và data trên một mạng chung là nhu cầu tất yếu trong thời đại hiện nay khi mà Internet đã trở nên phổ biến rộng rãi. VoIP được xem như là một bước tiến mới giúp cải thiện đáng kể những nhược điểm của PSTN và phát triển được nhiều ứng dụng mới.
Voice over Internet Protocol (VoIP) 1.2
VoIP là công nghệ truyền tín hiệu thoại trên đường truyền mạng nền tảng IP. Công nghệ này sử dụng những kỹ thuật riêng để mã hóa tín hiệu voice thành các gói tin có thể truyền tải qua mạng IP như LAN hay Internet. VoIP không chỉ giải quyết được vấn đề nội bộ mà còn có thể kết nối với PSTN thông qua các Gateway. VoIP làm được những gì mà PSTN có thể làm được với chi phí thấp hơn nhiều.
Chuyển mạch gói 1.2.1
Điểm khác biệt trước hết giữa hệ thống điện thoại truyền thống PSTN và hệ thống VoIP là cách thức truyền tín hiệu thoại.
Trong PSTN người ta sử dụng phương thức truyền bằng circuit switching. Điều này có nghĩa là khi ai đó đang thực hiện cuộc gọi thì circuit switching tạo ra một liên kết đòi hỏi các tài nguyên như đường dây, các switch, các kết nối phải được sử dụng liên tục cho cuộc gọi này và một người khác không thể sử dụng các tài
nguyên đó. Sử dụng phương pháp này cho phép thu được chất lượng khá tốt nhưng làm hao phí tài nguyên.
VoIP sử dụng packet switching để truyền tín hiệu thoại. Phương thức hoạt động của packet switching khác với phương thức hoạt động của circuit switching. Thay vì phải tạo ra một kết nối liên tục như là circuit switching, packet switching chia tín hiệu cần truyền ra làm các phần nhỏ, các phần này sẽ được đóng gói thành các packet để truyền đi và sẽ được tái hợp lại thành tín hiệu ban đầu ở nơi nhận. Cách làm này cho phép tận dụng tài nguyên một cách hiệu quả.
Circuit switching và packet switching Hình 1.6
CODEC – Mã hóa và giải mã 1.2.2
Tín hiệu dải băng nằm giữa 0.3 và 3.4 KHz được xem như là tín hiệu voice. Thông thường tín hiệu voice được lấy mẫu ở tần số 8 KHz. Các mẫu này được lượng tử hóa đều hay không đều sử dụng một mức lượng tử cho trước. Ví dụ khi dùng 8 bit lượng tử, tức là có 256 mức lượng tử, thì tốc độ tín hiệu là 64 Kbps. Cơ chế này được gọi là mã hóa PCM và được dùng rộng rãi trong hệ thống PSTN hiện nay với các luật A và µ.
VoIP đòi hỏi tốc độ bit thấp hơn so với PSTN nên không dùng phương pháp mã hóa và giải mã của PSTN. Cùng với sự phát triển của các công nghệ vi xử lý, tín hiệu và bộ nhớ, nhiều kỹ thuật mã hóa và giải mã ra đời để phục vụ cho các ứng dụng với tốc độ bit thấp như VoIP, trong đó được sử dụng rộng rãi nhất là các chuẩn G.723.1 và G.729A.
G.723.1 có tốc độ từ 5.3 đến 6.1 Kbps với 30-ms frame và G.729A có tốc độ bit là 8 Kbps với 10-ms frame. Frame ở đầu ra của G.723.1 có 159 bit khi hoạt động ở tốc độ 5.3 Kbps và có 192 bit khi hoạt động ở 6.4 Kbps. Trong khi đó với G.729A thì độ dài frame đầu ra chỉ có 80.
G.729A được lắp đặt đơn giản hơn và sử dụng hiệu quả hơn G.723.1 nên được sử dụng rộng rãi hơn. Cả hai thiết kế này đều sử dụng cùng một lượng bộ nhớ là 10K
ROM và 2K RAM, nhưng G.723.1 cần đến 16 MIP (Message Tranfer Parts) của dung lượng xử lý trong khi G.729.A chỉ cần dùng 10 MIPS.
Ngoài ra còn có một số chuẩn CODEC khác. Bảng 2.1 mô tả so sánh các chuẩn CODEC khác nhau.
So sánh các chuẩn CODEC Bảng 1.1
Các giao thức điều khiển 1.2.3
Nền tảng của công nghệ VoIP là hai giao thức cơ bản H323 và SIP (Session Initiation Protocol). Để truyền tín hiệu voice cả hai đều dùng chung một chuẩn RTP/UDP/IP.
Chuẩn H.323 là chuẩn được phát triển đầu tiên bởi ITU (International Telecommunications Union), được sử dụng khá lâu và được tích hợp dễ dàng vào các hệ thống tổng đài nội bộ PBX (Private Branch eXchange) để thực hiện các cuộc gọi qua VoIP thông qua các kênh truyền như ISDN. Hiện nay các thiết bị VoIP theo chuẩn H.323 cũng có khả năng hoạt động tốt trên đường truyền băng thông rộng ADSL (Asymmetric Digital Subcriber Line). Chuẩn H.323 cho phép truyền dẫn các tín hiệu voice, data, video và các ứng dụng chia sẻ trên đường truyền IP với các kỹ thuật bảo mật khá tốt. Để thiết lập hệ thống VoIP dựa trên nền H.323 cần có một số thiết bị như điện thoại (Terminal), MCU (MultiPoint Control Unit), Gateway, GateKeeper. Hình 2.8 mô tả các thành phần cơ bản của H.323.
Các thành phần cơ bản của H.323 Hình 1.7
Chuẩn SIP được phát triển bởi IETF (Internet Engineering Task Force) như một giao thức peer-to-peer gọn nhẹ và hiệu quả trên đường truyền mạng internet hay LAN. Dựa trên nền tảng HTTP (Hyper Text Transfer Protocol) và MIME (Multi purpose Internet Mail Extensions), SIP hiệu quả hơn trong việc tích hợp voice và data theo thời gian thực và chiếm ít băng thông trên đường truyền. SIP hỗ trợ đặt tên các account thông qua DNS (Domain Name System) hay URL (Uniform Resource Locator) và ứng dụng PC-based phone do đó linh hoạt hơn khi thiết kế mạng.
Các thành phần cơ bản của SIP Hình 1.8
Các vấn đề về SIP sẽ được đề cập kỹ hơn trong chương sau.
Ngoài H.323 và SIP ra, khi nói đến VoIP cần phải quan tâm đến một số protocol khác như MGCP (Media Gateway Control Protocol), H.248/MEGACO, RTP, RCTP.
MGCP là sự kết hợp giữa giao thức đơn giản để điều khiển gateway SGCP (Simple Gateway Control Protocol) phát triển bởi Cisco và Telcordia với giao thức Internet để điều khiển các thiết bị IPDC (Internet Protocol Device Control). MGCP điều khiển và quản lý cuộc gọi thông qua các media gateway. Nhiệm vụ của các media gateway là tạo nên sự chuyển đổi tương thích giữa các tin tức được dùng trong PSTN và trong mạng IP bằng cách chuyển các dạng mã hóa và giải mã từ G.711 trong PSTN sang G.723 hay G.729 trong VoIP. Bên cạnh đó, media gateway cũng hỗ trợ loại trừ tiếng vọng thông qua phần cứng.
RTP (Real-time Transport Protocol) và RCTP (RTP Control Protocol) là những giao thức điều khiển vận chuyển tín hiệu thời gian thực. Các giao thức này rất quan trọng để đảm bảo real-time cho cuộc gọi.
Một cuộc gọi thông thường chia làm nhiều phiên khác nhau bao gồm báo hiệu cuộc gọi, điều khiển cuộc gọi, thỏa thuận các phương thức truyền thông và phiên hội thoại. Vị trí của RTP chính là ở phiên hội thoại.
Qua việc thỏa thuận phương thức truyền thông, các bên tham gia hội thoại sẽ tiến hành mở hai cổng UDP kề nhau, cổng chẵn dùng để truyền tiếng nói (RTP) và cổng lẻ dùng để truyền thông tin trạng thái giám sát (RCTP). Thông thường hai cổng mặc định được chọn là 5004 và 5005.
Tín hiệu thoại tại phía phát sau khi được số hóa, qua bộ CODEC sẽ được nén thành các gói tin. Các gói tin này được gắn thêm các header tương ứng khi đến tầng UDP/IP. Các header thường có kích thuớc là 40 bytes chứa các thông tin về địa chỉ nguồn, địa chỉ đích, cổng tương ứng, header RTP và một số thông tin có liên quan khác.
Cấu trúc gói tin Hình 1.9
Header RTP cho biết các thông tin quan trọng về gói như phương pháp mã hóa, chỉ mục gói, nhãn thời gian,…Các thông tin này cho phép xác định sự ràng buộc giữa gói tin với thời gian. Nhờ đó, các gói tin được sắp xếp theo đúng thứ tự thời gian thực trước khi được giải mã và phát lại.
RCTP có nhiệm vụ giám sát đánh giá quá trình truyền tin dựa trên việc truyền một cách định kỳ các gói tin điều khiển tới các thành viên tham gia hội thoại cùng với cơ chế truyền dữ liệu. Có thể kể ra bốn chức năng chính của RCTP như sau:
• Cung cấp cơ chế phản hồi chất lượng truyền dữ liệu. Bên gửi thống kê quá trình gửi qua các bản tin người gửi cho các thành viên. Bên nhận cũng làm nhiệm vụ thống kê các tin nhận qua bản tin người nhận. Từ việc giám sát các thông tin từ bên gửi và bên nhận có thể điều khiển lại các thông số cần thiết để tăng chất lượng cuộc gọi. Đây là chức năng quan trong nhất của RCTP.
• Mỗi nguồn cung cấp gói tin RTP được định dạng bởi một tên CNAME. RCTP sẽ cho các thành viên biết tên này.
• Quan sát số thành viên tham gia hội thoại bằng việc thống kê các bản tin. • Mang các thông tin thiết lập cuộc gọi, các thông tin về người dùng. Đây là
chức năng tùy chọn. Nó đặc biệt hữu hiệu khi điều khiển các phiên lỏng, cho phép thêm bớt thành viên một cách dễ dàng mà không có ràng buộc nào.
Thực ra để hệ thống VoIP hoạt đông hiệu quả nhất còn phải sử dụng nhiều giao thức khác. Có thể tham khảo các chuẩn mà ITU hay EITF đưa ra để biết rõ hơn về các giao thức này.
Những ưu điểm của VoIP 1.2.4
VoIP ra đời khai thác được một cách hiệu quả những tính năng của mạng truyền số liệu, khai thác tính linh hoạt trong việc phát triển các ứng dụng mới của mạng IP. Những ưu điểm nổi bật của VoIP có thể kể ra dưới đây:
• Giảm đáng kể chi phí cuộc gọi: đây là ưu điểm rất lớn của VoIP so với dịch vụ điện thoại truyền thống. VoIP có khả năng cung cấp những cuộc điện thoại đường dài với chi phí thấp và chất lượng dịch vụ chấp nhận được. Một khi VoIP đã được triển khai, chi phí các cuộc gọi đường dài tương đương với chi phí sử dụng internet. Nguyên nhân là các tín hiệu voice đã được mã hoá và truyền trong mạng IP nên khả năng sử dụng kênh đạt hiệu quả cao hơn. Bên cạnh đó, tín hiệu thoại bây giờ đã được nén từ 64 Kbps trước đây xuống còn 8 Kbps, kết hợp với tốc độ xử lý nhanh hiện nay đảm bảo cho VoIP có thể đáp ứng đòi hỏi thời gian thực trong điều kiện băng thông hạn chế. Khi thực hiện cuộc gọi trong mạng PSTN, chi phí bỏ ra là để duy trì một kênh truyền 64 Kbps xuyên suốt từ máy này đến máy kia thông qua các tổng đài. Với các cuộc gọi đường dài thì chí phí này rõ ràng là rất lớn. Trong khi đó, khi gọi từ mạng PSTN dùng VoIP thì chi phí phải bỏ ra chỉ là để duy trì một kênh 64 Kbps từ máy gọi đến gateway. Do đó hiệu quả kinh tế cao hơn nhiều.
• Tích hợp mạng thoại, mạng số liệu và mạng báo hiệu: trong VoIP, tất cả các tín hiệu voice, data hay các báo hiệu đều có thể đi chung trong mạng IP. Điều này cho phép tiết kiệm được một chi phí đáng kể khi đầu tư xây dựng cơ sở hạ tầng.
• Khả năng mở rộng: các hệ thống tổng đài cũ thường là hệ thống kín nên rất khó thêm vào những tính năng mới. Trong khi đó khi dùng VoIP với các mã nguồn mở cho phép tự do thêm vào các tính năng mới, đồng thời hệ thống sẽ linh hoạt hơn và dễ dàng mở rộng hơn.
• Không cần thông tin điều khiển để thiết lập kênh truyền vật lý: các gói thông tin trong mạng IP được truyền đến đích mà không cần phải thiết lập nên một kênh truyền riêng nào.
• Quản lý băng thông hiệu quả: như đã nói ở trên, VoIP đã nén tín hiệu xuống còn 8 Kbps nên tiết kiệm được băng thông đáng kể. Ngoài ra việc quản lý băng thông cũng linh hoạt hơn do khả năng điều tiết băng thông phù hợp.
• Dịch vụ đa dạng: VoIP cho phép tạo ra nhiều tính năng dịch vụ mới như thông tin người gọi tới, nhiều số cho một thiết bị đầu cuối, truyền file, chia sẻ dữ liệu, xem hình ảnh người gọi,…
Những hạn chế của VoIP 1.2.5
• Kỹ thuật phức tạp: Đảm bảo thời gian thực trong truyền tín hiệu bằng các gói là rất khó do tình trạng mất gói và độ trễ không cố định
• Vấn đề bảo mật: VoIP sử dụng mạng Internet làm cơ sở hạ tầng nên vấn đề bảo mật cần phải được đề cao vì Internet là môi trường phổ biến toàn cầu và rất phức tạp đồng thời nó cũng là hạ tầng chung cho rất nhiều các ứng dụng khác.
Một số dịch vụ của VoIP 1.2.6
Dịch vụ điện thoại qua Internet 1.2.6.1
Với VoIP, người sử dụng có thể thực hiện các cuộc gọi không chỉ giữa các máy tính với nhau qua mạng internet mà còn giữa điện thoại với máy tính hay điện thoại với điện thoại. Hơn nữa, các thiết bị đầu cuối dùng cũng rất đa dạng, có thể là analoge phone, IP phone hay softphone...
Thoại thông minh 1.2.6.2
Sự kết hợp giữa Internet và mạng PSTN cho phép tạo ra những dịch vụ điện thoại thông minh. Internet cho phép giám sát và điều khiển cuộc gọi hiệu quả hơn.
Dịch vụ tính cước cho cuộc gọi 1.2.6.3
Thoại qua Internet cho phép nhà cung cấp những dịch vụ tính cước cuộc gọi cho các khách hàng trong và ngoài nước. Chỉ cần có PC kết nối Internet và phần mềm chuyển đổi như Quicknet‟s Technologies Internet PhoneJACK là có thể thực hiện được điều này.
Dịch vụ Callback Web 1.2.6.4
“World Wide Web” đã làm một cuộc cách mang trong cách giao dịch với khách hàng của các doanh nghiệp. Với tất cả các tiềm năng của web, điện thoại vẫn là phương tiện kinh doanh không thể thiếu. “Điện thoại web” cho phép đưa các phím bấm lên trên web để kết nối các cuộc gọi.
Dịch vụ fax qua IP 1.2.6.5
Khi sử dụng fax qua IP sẽ tiết kiệm được chi phí và kênh thoại. Lúc này fax được truyền trực tiếp qua Internet chứ không dùng line điện thoại như thông thường.
Dịch vụ Call Center 1.2.6.6
Gateway Call Center với công nghệ thoại qua Internet cho phép nhà kiểm duyệt trang web với các PC trang bị multimedia kết nối được với bộ phân phối các cuộc gọi tự động. Một ưu điểm của thoại Ip là khả năng kết hợp thoại và dữ liệu trên cùng một kênh.
Kết luận 1.3
Mặc dù khi mới ra đời, dịch vụ VoIP còn có nhiều điểm hạn chế so với dịch vụ gọi điện thoại đường dài truyền thống như thời gian kết nối lâu, cuộc gọi có khả năng bị đứt giữa chừng, tiếng thoại có độ trễ, kết nối lúc được lúc không. Tuy nhiên, sau những bước tiến lớn về tốc độ đường truyền Internet, VoIP đã cho thấy nhưng ưu điểm nổi trội của nó so với hệ thống PSTN truyền thống. Theo ước tính, dịch vụ VoIP hiện đang chiếm 60% thị phần điện thoại đường dài trong nước và quốc tế. VoIP sẽ không mất thời gian quá lâu để chiếm một vị trí thống trị tuyệt đối trong dịch vụ điện thoại đường dài trong nước và quốc tế.
GIAO THỨC KHỞI TẠO PHIÊN SIP
Chương 2
Giới thiệu giao thức SIP 2.1
Giao thức khởi tạo phiên (Session Initiation Protocol - SIP) là giao thức thuộc lớp ứng dụng dùng để khởi tạo, hiệu chỉnh và kết thúc cuộc gọi.
Các chức năng cơ bản của SIP bao gồm:
• Định vị người sử dụng: xác định hệ thống đầu cuối mà người dùng sử dụng cho truyền thông.
• Tính sẵn có của người sử dụng: xem người sử dụng có sẵn sàng để giao tiếp không.
• Khả năng người sử dụng: xác định các phương tiện truyền thông và các tham số cho các phương tiện sử dụng.
• Khởi tạo phiên: báo chuông, thiết lập các thông số phiên.
• Quản lý phiên: bao gồm việc chuyển đổi và kết thúc một phiên, thay đổi các thông số phiên và yêu cầu các dịch vụ.
SIP là một thành phần được sử dụng chung với các giao thức khác để tạo thành hệ thống đa phương tiện hoàn chỉnh. Hai giao thức thường được sử dụng chung với
SIP là giao thức vận chuyển thời gian thực RTP (Real-time Transport Protocol) và
giao thức đặc tả phiên SDP (Session Description Protocol). RTP là giao thức cho
phép vận chuyển các tín hiệu (gồm cả audio, video và text) đáp ứng theo thời gian thực. Các tín hiệu này được mã hoá và chia thành các gói để truyền qua Internet. SDP dùng để đặc tả các thông số của phiên.
Một mạng SIP bao gồm nhiều thành phần, các thành phần đó có thể tương tác với nhau để thực hiện một phiên nào đó, đồng thời có thể tương tác với các thành phần của một mạng SIP khác một khi user có nhu cầu thực hiện kết nối tới một user khác không cùng mạng với nó.
Các thành phần của một mạng SIP Hình 2.1
Các thành phần của SIP 2.2
User Agent 2.2.1
User Agent bao gồm hai loại: User Agent Client và User Agent Server. Để dễ hiểu, ta có thể định nghĩa User Agent (UA) là một ứng dụng mà có thể khởi tạo (thiết
lập), chấp nhận và kết thúc một cuộc gọi trong một phiên kết nối. Khi UA khởi tạo
cuộc gọi bằng việc gửi bản tin yêu cầu INVITE thì UA sẽ đóng vai trò là một client. Ngược lại UA nhận bản tin yêu cầu thì nó lại có vai trò là một server.
Trong một phiên kết nối của SIP, UA thường tồn tại trên các máy user dưới dạng các ứng dụng như PC cài softphone nhưng nó cũng có thể là phần cứng được “nhúng” sẵn phần mềm hỗ trợ giao thức SIP như IP phone…hoặc là cell phone, các cổng PSTN, thiết bị hỗ trợ cá nhân PDA…
User Agent Client 2.2.1.1
User Agent Client (UAC) có nhiệm vụ gửi bản tin yêu cầu để khởi tạo phiên kết nối. Chức năng này chỉ tồn tại trong quá trình gửi bản tin yêu cầu ( tạm gọi là quá trình giao dịch). Vì sau khi gửi xong bản tin, nó lại có thể nhận một yêu cầu từ một UA khác. Vào lúc này, nó không còn là UAC nữa mà lại là UAS (User Agent Server).
Một UAC có thể gửi các bản tin yêu cầu như INVITE, ACK, OPTIONS, BYE, CANCEL và REGISTER.
User Agent Server 2.2.1.2
User Agent Server (UAS) có nhiệm vụ nhận bản tin yêu cầu, sau đó xử lý bản
tin yêu cầu này và cuối cùng là gửi bản tin phản hồi về nơi đã phát bản tin yêu cầu đến
cho nó. Cũng như UAC, UAS chỉ có vai trò trong thời gian nhận bản tin yêu cầu và gửi lại bản tin phản hồi, khi quá trình này kết thúc thì nó lại có thể là một UAC nếu nó gửi yêu cầu cho một Client hoặc một Server khác.
Như vậy, một thiết bị đầu cuối trong mạng SIP vừa có thể là UAC và vừa có thể
là UAS. Tuy nhiên nó chỉ có thể đảm nhiệm một chức năng duy nhất trong một quá
trình giao dịch. Tùy thuộc vào việc nhận hay là gửi bản tin yêu cầu mà nó có thể là UAC hoặc UAS.
Các loại Server trong mạng SIP 2.2.2
Proxy Server 2.2.2.1
Proxy Server là một thực thể trung gian có nhiệm vụ nhận các bản tin yêu cầu SIP, gửi lại bản tin đáp ứng về nơi đã gửi bản tin yêu cầu và cuối cùng là forward bản
tin yêu cầu này đến UAS hoặc một Server khác. Như vậy, Proxy Server vừa là một
UAC vừa là một UAS. Khi nó nhận bản tin yêu cầu từ một UAC thì nó đóng vai trò như một UAS. Ngược lại, khi nó forward bản tin yêu cầu mà nó nhận được thì nó lại là một UAC.
Tuy nhiên, Proxy Server không trực tiếp tạo ra bản tin yêu cầu như một UAC mà tiếp nhận bản tin yêu cầu rồi chỉnh sửa bản tin này cho phù hợp rồi forward chúng đi mà thôi. Hơn nữa, Proxy Server chỉ có thể nhận và forward các bản tin báo hiệu SIP chứ không nhận hoặc forward bản tin thoại.
Stateless Proxy chỉ đơn giản là forward bản tin đi. Khi nhận một bản tin yêu cầu, Stateless Proxy sẽ xử lý yêu cầu này sau đó nó forward bản tin yêu cầu đã được xử lý mà không có lưu lại bất kì trạng thái nào của quá trình giao dịch. Điều này có nghĩa là Stateless Proxy sẽ không nhớ là nó đã từng nhận và xử lý bản tin yêu cầu này. Đây cũng chính là nhược điểm của Stateless Proxy. Vì Stateless Proxy hoàn toàn không biết được quá trình giao dịch có thành công hay không và nó cũng không thể truyền lại các bản tin yêu cầu hay bản tin phản hồi đã gửi trước đó trong trường hợp bản tin bị mất hay thất lạc.
Statefull Proxy phức tạp hơn Stateless Proxy. Trong lúc nhận bản tin yêu cầu,
Stateful Proxy sẽ tạo ra một trạng thái và giữ nó cho đến khi sự giao dịch kết thúc. Vì
thế nó có thể truyền lại các bản tin mà nó đã gửi trước đó.
Ví dụ như khi một bản tin Request được forward đi thì đồng thời bộ định thời được bật lên, nếu như trong khoảng thời gian nào đó mà không nhận được bản tin Response thì Proxy Server sẽ tiến hành gửi lại bản tin Request đó. Statefull còn có ưu điểm là có khả năng “fork” (rẻ nhánh). Có nghĩa là trong khi nhận một bản tin yêu cầu, nó cũng có thể gửi đi một hay nhiều bản tin khác.
Hầu hết các Proxy Server ngày nay đều là Statefull Proxy vì chúng đòi hỏi cấu hình phức tạp, các chức năng giám sát, rẻ nhánh, tính toán…và các chức năng thiết yếu của một Statefull Proxy.
Redirect Server 2.2.2.2
Redirect Server là một thực thể có nhiệm vụ nhận bản tin yêu cầu và đáp ứng
lại bằng một bản tin 3XX. Bản tin này sẽ chứa danh sách các vị trí có thể có của phía
bị gọi. UAC hoặc Proxy sẽ căn cứ vào danh sách địa chỉ này để trực tiếp liên lạc mà
không cần phải thông qua Redirect Server. Registrar Server
2.2.2.3
Registrar Server có nhiệm vụ nhận bản tin đăng kí từ phía user. Trong bản tin
đăng kí này sẽ có username, password, IP address hoặc SIP URI và các thông tin này sẽ được Registrar Server lưu lại trong một vùng cơ sở dữ liệu. Vùng cơ sở dữ liệu này còn được gọi là Location Service - một vùng database trừu tượng để cho Proxy hay Redirect truy xuất đến nó khi cần thiết.
Thông thường với các hệ thống nhỏ, Registrar server được cài đặt cùng với Proxy Server/ Redirect Server. Tuy nhiên với các hệ thống lớn, nếu tích hợp Registrar Server cùng với Proxy hoặc Redirect thì sẽ gây ra hiện tượng quá tải (over load), và một khi có lỗi xãy ra sẽ ảnh hưởng đến toàn bộ hệ thống. Do đó, trong trường hợp đòi hỏi phải lưu trữ nhiều cơ sở dữ liệu thì Registrar được cài đặt trên một máy tính ở xa. Khi đó, các Proxy Server/ Redirect Server muốn truy xuất để lấy database thì lại phải sử dụng một giao thức khác (không phải giao thức SIP) – giao thức LDAP.
Back to Back User Agent (B2BUA) 2.2.3
\ Mô hình B2BUA
Hình 2.2
B2BUA là một thực thể logic của mạng SIP. Nó tương tự như một Proxy
Server: vừa là một UAC vừa là một UAS trong việc nhận và forward bản tin yêu cầu
cũng như gửi lại bản tin phản hồi.
Tuy nhiên, B2BUA khác với Proxy Server ở chỗ nó tham gia vào suốt quá trình
hội thoại giữa hai đầu cuối. Bản tin báo hiệu và bản tin thoại đều phải thông qua
B2BUA. B2BUA có khả năng ngắt kết nối trong khi Proxy Server thì không thể.
Điều đặc biệt ở chỗ là B2BUA sẽ “ẩn” danh tính (địa chỉ IP hoặc SIP URIs) của bên đã gửi bản tin đến nó, thậm chí cho phép sửa đổi các thông tin trong bản tin như port, codecs, địa chỉ IP.
Tuy nhiên, một số trường hợp vẫn có thể cấu hình B2BUA sao cho nó hoạt động như một Proxy. Tức là bản tin báo hiệu vẫn thông qua B2BUA còn bản tin thoại thì lúc này sẽ trực tiếp gửi qua lại giữa các đầu cuối mà không thông qua B2BUA. Asterisk Server hoạt động như một B2BUA, ta có thể cấu hình trong file sip.conf với thông số canreinvite=yes/no để gói tin thoại có thể hoặc không thể qua Asterisk Server.
Cấu hình Asterisk với canreinvite Hình 2.3
Các cơ chế hoạt động của SIP 2.2.4
Mô hình Peer to Peer 2.2.4.1
Mô hình Peer to Peer Hình 2.4
Trong mô hình này, cả Tesla và Marconi đều đã biết địa chỉ của nhau.
Đầu tiên, Tesla muốn thiết lập cuộc gọi với Marconi nên gửi bản tin yêu cầu INVITE đến Marconi. Giả sử Marconi không sẳn sàng thiết lập phiên kết nối thì sau một khoảng thời gian khi Marconi không gửi lại bản tin đáp ứng nào chứng tỏ mình có khả năng thực hiện cuộc gọi thì một bản tin Request Timeout được gửi từ Marconi đến Tesla.
Nếu Marconi đang rảnh, một tín hiệu chuông sẽ được gửi từ Marconi về cho Tesla, lúc này Tesla hiểu rằng Marconi đã nhận được bản tin INVITE. Khi Marconi nhấc máy, một bản tin 200 OK từ Marconi gửi về Tesla báo cho Tesla biết rằng Marconi chấp nhận yêu cầu thiết lập phiên kết nối với Tesla. Khi đó, Tesla sẽ gửi lại một bản tin ACK để Marconi biết rằng Tesla đã nhận được bản tin 200 OK. Phiên kết nối lúc này chính thức được thiết lập. Dòng Media từ Tesla tới Marconi và ngược lại được truyền theo giao thức RTP.
Trong quá trình đàm thoại, cả hai bên Tesla và Marconi đều có quyền yêu cầu chấm dứt phiên kết nối bằng cách gửi một bản tin yêu cầu BYE. Khi đó bên còn lại sẽ xác nhận việc nhận bản tin BYE bằng bản tin 200 OK để kết thúc phiên kết nối.
Mô hình Peer to Peer là mô hình không thông dụng bởi vì đòi hỏi các SIP phones phải lưu trữ lại tên và địa chỉ của các SIP Phones khác. Vậy với một số lượng lớn các SIP phones thì sao? Lúc này cuộc gọi sẽ thực hiện qua một cơ chế khác đó là thông qua Proxy Server hoặc Redirect Server.
Mô hình thông qua proxy server 2.2.4.2
Cơ chế hoạt động của SIP thông qua Proxy server Hình 2.5
Mô hình SIP thông qua Proxy Hình 2.6
Đầu tiên, user1 sẽ gửi bản tin INVITE để yêu cầu được thiết lập phiên kết nối với user2. Tuy nhiên user1 không biết chính xác địa chỉ của user1 trong mạng IP nên nó gửi INVITE này đến cho Proxy Server - quản lý miền của user1.
Proxy Server lúc này sẽ gửi một đáp ứng 100 TRYING về cho user1 để thông báo cho user1 rằng proxy đang thay mặt user1 forward bản tin này đến cho user2.
Proxy Server sẽ truy xuất lên vùng dữ liệu của nó để tìm kiếm địa chỉ hiện tại của user2.
Nếu user2 đã đăng kí với Registrar Server thì các thông tin như username, password của nó sẽ được lưu trữ trong vùng dữ liệu database để Proxy/Redirect có thể truy xuất bất cứ lúc nào.
Location Service sẽ gửi trả lại cho proxy địa chỉ hiện tại của user2.
Proxy Server sẽ gửi một bản tin INVITE mới dựa trên bản tin INVITE mà nó đã nhận được từ user1 để gửi đến user2. Nhưng lúc này, Request URI trong dòng Start Line đã được đổi thành [email protected] (địa chỉ hiện tại của User2).
User2 đáp ứng lại bản tin INVITE từ Server bằng bản tin 100 TRYING.
SIP phone của User2 xuất hiện tín hiệu chuông để cảnh báo với user2 rằng có một cuộc gọi đang đến. Đồng thời, một bản tin 180 RINGING từ SIP phone của user2 gửi về cho user1 thông qua Proxy để thông báo với user1 rằng user2 đã nhận được bản tin INVITE của user1.
Khi user2 nhấc máy, một bản tin 200 OK được gửi từ sip phone của user2 đến user1 để thông báo với user1 rằng user2 đã nhận cuộc gọi.
Khi user1 nhận được bản tin 200 OK, user1 hiểu rằng user2 đã nhấc máy và chấp nhận kết nối vói user1. Lúc này user1 sẽ gửi một xác nhận ACK về cho user2 để thông báo với user2 rằng nó đã nhận được đáp ứng 200 OK và lúc này cuộc gọi chính thức được thiết lập.
Cuộc gọi SIP thông qua mô hình Redirect Server 2.2.4.3
Cuộc gọi SIP thông qua Redirect Server Hình 2.7
Đầu tiên user1 gửi một bản tin INVITE đến Redirect Server là [email protected] để yêu cầu được thiết lập cuộc gọi với user2.
Redirect Server lúc này sẽ tìm kiếm trong cơ sở dữ liệu của nó (location service) vị trí hiện tại của user2.
Location sau khi tìm được địa chỉ của user2 sẽ gửi địa chỉ này về user1 thông qua bản tin đáp ứng 302. Địa chỉ của user2 lúc này là [email protected].
Sau khi nhận được đáp ứng 302 từ phía redirect server, user1 sẽ xác nhận việc đã nhận được bản tin này bằng bản tin ACK.
Dựa vào địa chỉ của user2 trong bản tin đáp ứng 302 từ Redirect Server, user1 sẽ trực tiếp gửi bản tin INVITE đến cho user2 ở địa chỉ sev.alp.com
User2 nhấc máy để chấp nhận cuộc gọi, đồng thời một bản tin 200 OK được gửi từ user2 đến user1.
User1 sẽ gửi bản tin ACK đến user2 để xác nhận với user2 rằng nó đã nhận được đáp ứng 200 OK của user2.
Lúc này cuộc gọi được thiết lập. SIP Registration
Quá trình đăng kí của User Hình 2.8
Hầu hết các cuộc gọi SIP thường có sự tham gia của Server. Vì vậy Server có vai trò quan trọng trong việc tìm kiếm vị trí của user bị gọi.
Mỗi user phải được đăng kí với Registrar Server về vị trí hiện tại của user đó bằng cách gửi một bản tin REGISTER. Bản tin này sẽ chứa các thông tin về user như username và password, địa chỉ IP…Registrar Server sẽ lưu các thông tin này vào vùng cơ sở dữ liệu của nó. Proxy và Redirect có thể truy xuất lên cơ sở dữ liệu này để định vị được user bị gọi.
Các bước đăng kí lên Registrar Server Hình 2.9
Registrar Server sẽ gửi một bản tin phản hồi 401 Unauthenticate về cho userB, thông báo với userB rằng Registrar server chưa nhận dạng được userB.
Sau đó user B sẽ gửi lại bảng tin REGISTER tới Registrar Server kèm theo các thông tin về chứng thực trong trường Authentication như Username, password đã được mã hóa MD5, địa chỉ SIP URI…
Registrar Server sẽ gửi lại cho userB bảng tin 200 OK thông báo cho user B rằng việc đăng kí đã thành công.
Cuộc gọi SIP thông qua mô hình B2BUA:
Cuộc gọi SIP qua B2BUA Hình 2.10
Về cơ bản, B2BUA hoạt động giống như một Proxy Server ở chức năng báo hiệu. Tuy nhiên, B2BUA khác ở một Proxy ở chỗ là bản tin thoại cũng phải thông qua B2BUA chứ không trực tiếp truyền giữa hai user.
Đầu tiên, UserA muốn thiết lập cuộc gọi với userB nhưng lại không biết chính xác vị trí của UserB nên userA gửi bản tin INVITE đến B2BUA.
B2BUA tìm kiếm vị trí của userB trong cơ sở dữ liệu của nó rồi forward bản tin INVITE mới đến userB. Bản tin INVITE này đã được B2BUA thay đổi trường Via với địa chỉ của chính nó.
Khi userB nhận được bản tin INVITE từ B2BUA, một tín hiệu chuông 180 RINGING sẽ được gửi từ userB đến B2BUA báo với B2BUA rằng userB đã nhận được bản tin yêu cầu INVITE và đang rung chuông để cảnh báo bên bị gọi là có cuộc gọi đang đến.
B2BUA gửi bản tin 180 RINGING về cho userA.
Khi userB nhấc máy, một bản tin 200 OK sẽ được gửi đến B2BUA để thông báo rằng userB đã chấp nhận cuộc gọi.
B2BUA lại forward bản tin 200 đến cho userA.
UserA xác nhận bằng bản tin ACK gửi đến B2BUA, B2BUA lại forward bản tin này đến userB.
Phiên cuộc gọi được thiết lập.
Lưu ý: Đến đây userA muốn gửi tín hiệu thoại đến userB thì trước tiến nó phải gửi bản tin thoại đến B2BUA, B2BUA mới chuyển bản tin thoại đến userB và ngược lại. B2BUA hoàn toàn giấu danh tính của hai bên cho dù cuộc gọi đã được thiết lập. Vì thế hai bên tham gia cuộc gọi không hề biết thông tin về nhau.
SIP và H.323 2.3
Như đã trình bày ở trên, SIP và H.323 là hai dạng cơ bản tạo nên VoIP. Trong phần này chúng ta sẽ so sánh các đặc điểm nổi bậc của chúng.
Mức độ phức tạp 2.3.1
H.323 là giao thức phức tạp, riêng tài liệu hướng dẫn của nó thôi cũng đã lên đến 736 trang, trong khi đó, SIP là giao thức đơn giản hơn với 128 trang chỉ dẫn. H.323 định nghĩa ra hàng trăm thành phần, còn SIP chỉ có 37 header, trong đó mỗi phần nhỏ chứa ít tham số và biến hơn nhưng lại mang nhiều thông tin hơn. Về cơ bản, trong điện thoại Internet, SIP sử dụng chủ yếu 4 header (To, From, Call-ID và Cseq) và 3 dạng yêu cầu (INVITE, ACK và BYE).
H.323 dùng dạng trình diễn nhị phân cho các bản tin dựa trên ASN.1 và PER (Packet Encoding Rules). SIP thì sử dụng một dạng trình diễn khác, đó là dạng text, khá giống với HTTP và RTSP (Real Time Streaming Protocol), làm cho cú pháp cũng như là quá trình xử lý đơn giản hơn. Bên cạnh đó, với dạng text, SIP còn tận dụng được sức mạnh của các ngôn ngữ xử lý như Perl.
Sự phức tạp của H.323 còn thể hiện ở chỗ nó dùng nhiều protocol khác như H.450, H.225.0 và H.245. Việc sử dụng như vậy làm nẩy sinh nhiều vấn đề liên quan đến firewall. Ngược lại, SIP sử dụng protocol đơn giản hơn, và chỉ yêu cầu những thông tin cần thiết mà thôi.
Khả năng mở rộng 2.3.2
Khả năng mở rộng là một thước đo rất quan trọng để đánh giá một protocol. SIP dựa trên nền tảng của HTTP và SMTP (Simple Mail Tranfer Protocol), những protocol đã và đang được sử dụng rộng rãi, và được thiết kế với những tính năng cho phép mở rộng về sau. Theo mặc định, những header không rõ ràng sẽ bị loại bỏ. Các clients sử dụng header Require để yêu cầu các tính năng nào đó từ server. Chú ý rằng các tính năng này phải được server lưu trữ và nhận biết. Khi nhận được yêu cầu, server sẽ kiểm tra xem thử những tính năng này có tồn tại hay không và cho câu trả lời tương ứng. Các tính năng mới có thể được đăng ký với server, điều này có nghĩa là người sử dụng có thể viết ra những tính năng mới và đăng ký với server để sử dụng.
Để tăng cường khả năng mở rộng, các lỗi trong SIP được chia làm 6 lớp, mỗi lớp tương ứng với một dạng lỗi. SIP giống như HTTP nên cơ chế mở rộng của nó cũng giống với HTTP. PEP (Protcol Extension Protocol) là một cách được sử dụng phổ biến.
H.323 cũng cung cấp cơ chế mở rộng khá tốt. Tuy nhiên vẫn có một số giới hạn. Thứ nhất, việc mở rộng chỉ cho phép với những nơi có các tham số non-standard. Khách hàng không thể thêm giá trị mới vào cho tham số sẵn có. Thứ hai,
H.323 không cung cấp cơ chế để các thiết bị đầu cuối trao đổi thông tin với các mở rộng mà nó hỗ trợ. Những giá trị tham số này không tự nói lên ý nghĩa của nó. Đó là những giá trị của riêng các nhà sản xuất.
SIP và IAX 2.4
Các thành phần thông tin trong IAX được mã hóa theo bit nhị phân thay vì mã hóa ASCII.
Kích thước của gói báo hiệu IAX nhỏ hơn nhiều so với giao thức SIP, nhưng đó không phải là vấn đề cần quan tâm trừ khi có một số lượng lớn các client đăng ký thường xuyên. Nói chung, IAX2 hiệu quả hơn trong việc mã hóa, giải mã và xác định thông tin. Tuy nhiên rất khó để ứng dụng IAX vào thực tế để xem nó tương thích như thế nào với những công nghệ khác bởi vì có quá ít tài liệu nói về chúng.
Chỉ sử dụng duy nhất một đường để truyền media và báo hiệu nên IAX cho phép nó được định hướng NAT trong suốt và chỉ sử dụng một port duy nhất nên dễ dàng trong việc quản lý. Vì vậy không bao giờ có tình huống cuộc gọi đã được thiết lập mà không thể chuyển tín hiệu âm thanh (ngoại trừ vấn đề không đủ băng thông).
SIP tuân theo chuẩn IETF, trong khi đó IAX chỉ mới có một vài tài liệu mới xuất bản nên tiêu chuẩn của nó vẫn chưa được công nhận.
IAX cho phép một đầu cuối kiểm tra tính hợp lý của số điện thoại quay để biết việc quay số đã hoàn tất chưa hay vẫn còn dang dở. Điều này không được hỗ trợ trong giao thức SIP.
Các bản tin trong IAX được gọi là các frame và được chia làm 3 loại chính là full, mini và meta frame. Để xác định bản tin thuộc loại nào thì dựa vào bit F trong bản tin, nếu F=1thì bản tin thuộc loại full frame, còn F=0 thì có thể là mini hay meta frame.
Loại
Frame Đặc tính chính Kích thước Mục đích sử dụng Mini Không yêu cầu bản tin
ACK từ IAX bên kia 4 bytes Vận chuyển dữ liệu thoại Full Yêu cầu sự xác nhận từ
bên kia 12 bytes
Vận chuyển dữ liệu đòi hỏi độ tin cậy như bản tin báo hiệu
Meta Không yêu cầu bản tin ACK từ IAX bên kia
Video frame:6 bytes
Trunk frame:8 bytes
Vận chuyển video hay nhiều miniframe chỉ với một header
Các loại Frame trong giao thức IAX Bảng 2.1
Tóm lại là IAX là giao thức dành cho VoIP mới nhất cho đến thời điểm này với nhiều ưu điểm hấp dẫn như: