4 THUẬT NGỮ VIẾT TẮT Từ viết 3GPP Third Generation Partnership Project Tổ chức chuẩn hóa các công nghệ mạng thông tin di động tế bào AH Authentication Header Tiêu đề nhận dạng CMS Cryp
Trang 11
Mục lục
THUẬT NGỮ VIẾT TẮT 4
DANH SÁCH CÁC HÌNH VẼ 7
LỜI NÓI ĐẦU 9
CHƯƠNG I: GIỚI THIỆU CHUNG 10
I Khái niệm giao thức SIP 10
II Sự phát triển của SIP 11
III Đặc điểm của SIP 11
IV Chức năng của SIP 13
CHƯƠNG II: CÁC THÀNH PHẦN CỦA SIP 15
I User Agents (UA) 15
II Registrar 16
III Location Server 17
IV Proxy Server 18
V Redirect Server 20
CHƯƠNG III: BẢN TIN SIP (SIP MESSENGER) 22
I Phân loại bản tin 22
1 SIP Requests 22
2 SIP Responses 22
3 Địa chỉ SIP (SIP Address) 23
II Cấu trúc bản tin 24
III Star line 25
1 Trong SIP requests 25
2 Trong SIP response 26
IV Header field 26
1 From 27
2 To 28
Trang 22
3 Call-ID 28
4 Via 29
5 Contact 30
6 Cseq 30
7 Max-Forwards 31
V Message Body (thân bản tin) 31
VI Các loại bản tin yêu cầu 34
1 REGISTER 34
2 INVITE 35
3 ACK 36
4 CANCEL 37
5 BYE 38
6 OPTIONS 38
VII Tổng hợp các mã đáp ứng thường dùng 39
CHƯƠNG IV: CÁCH THỨC HOẠT ĐỘNG CỦA SIP 44
I Mô hình hoạt động tổng quan của SIP 44
1 Giao dịch SIP (SIP Transaction) 44
2 Định tuyến SIP 45
II Quá trình định vị tới máy chủ 46
III Xác định vị trí người dùng 48
IV Thiết lập và giải phóng một phiên hoạt động SIP (cuộc gọi SIP) 49
1 Phiên gọi SIP đơn giản giữa 2 điện thoại 50
2 Phiên gọi có sự tham gia của Proxy 51
3 Cuộc gọi có sự tham gia của Redirect Server 52
4 Thay đổi một phiên hiện tại 53
CHƯƠNG V: MÔ PHỎNG 54
I Mô hình 54
Trang 33
II Cài đặt và cấu hình 54
1 Cấu hình 2 PC 54
2 Cài đặt SIP Server 54
3 Cấu hình SIP Server 55
4 Cài đặt và cấu hình SoftPhone X-Lite 57
5 Quá trình thiết lập cuộc gọi 58
6 Cuộc gọi đang diễn ra 59
7 Các gọi tin bắt đƣợc trong quá trình thiết lập cuộc gọi 60
TÀI LIỆU THAM KHẢO 61
Trang 44
THUẬT NGỮ VIẾT TẮT
Từ viết
3GPP Third Generation Partnership Project
Tổ chức chuẩn hóa các công nghệ mạng thông tin di động
tế bào
AH Authentication Header Tiêu đề nhận dạng
CMS Cryptographic Message Syntax Cú pháp bản tin mã hóa DES Data Encrytion Standard Một chuẩn mã hóa dữ liệu HMAC Hash Message Authentication Code Mã nhận thực bản tin băm ICMP Internet Control Message Protocol Giao thức điều khiển bản tin Internet
IETF Internet Engineering Task Force Tổ chức đặc trách về kỹ thuật
Internet IMCP Internet Control Message Protocol Giao thức bản tin điều khiển
Internet IMS IP Multimedia Subsystem Một kiến trúc gồm nhiều
chức năng
IPsec IP sercurity protocol Giao thức an ninh mạng ISO International Standard Organization Tổ chức chuẩn quốc tế
IPDC IP Device Control Điều khiển thiết bị IP
ISC International Softswich Consortium Tổ chức chuyển mạch mềm
quốc tế ISDN lntegrated Service Digital Network Mạng số liên kết đa dịch vụ
ISP Internet Service Proveder
Nhà cung cấp dịch vụ Internet
MAP Mobile Application Part Phần ứng dụng di động
MDCP Media Device Control Protocol Giao thức điều khiển thiết bị
phương tiện
Trang 55
MGC Media Gateway Controler Bộ điều khiển cổng phương
PSTN Public Switched Telephone Network Mạng điện thoại chuyển
mạch công cộng
RTCP Real Time Transport Control
SIP Session lntiation Protocol Giao thức khởi đầu phiên
SIP-T Session lntiation Protocol for
Telephony
Phần mở rộng giao thức SLP dành cho thoại
SNMP Simple Network Management
Protocol
Giao thức quản lý mạng đơn giản
Trang 66
STP Signal Transfer Point Điểm truyền tải báo hiệu
SUA SCCP User Adatatton Thích ứng người dùng SCCP
TCP Transmission Control Protocol Giao thức điều khiển truyền
tải
dùng
dùng UDP User Datagram Protocol Giao thức gói tin người dùng
URL Uniform Resoure Identier Nhận dạng tài nguyên đồng
nhất
URL Uniform Resoure Locator Bộ định vị tài nguyên đồng
nhất
XML Extensible Markup Language Ngôn ngữ đánh dấu có thể
mở rộng
Trang 77
DANH SÁCH CÁC HÌNH VẼ
Hình 1.2 Vị trí của SIP trong mô hình OSI 11
Hình 2.1 Các thành phần của SIP 15
Hình 2.1 cấu trúc User Agent 16
Hình 2.2 Registrar Server 17
Hình 2.3 Quá trình để đăng kí thông tin trong 1 Location Server 18
Hình 2.4 Quá trình yêu cầu đi qua ProxyServer 20
Hình 2.5 Redirect Server 21
Hình 3.1.2 SIP Response 23
Hình 3.2 Khuôn dạng bản tin SIP 24
Hình 3.4.3 Dialog và cuộc hội thoại 29
Hình 3.6.1 REGISTER 34
Hình 3.6.2 INVITE 36
Hình 3.6.3 ACK 37
Hình 3.6.4 CANCEL 37
Hình 3.6.5 BYE 38
Hình 3.6.5 OPTIONS 38
Hình 4.1 Hoạt động của SIP 44
Hình 4.1.3 Quá trình định tuyến của bản tin SIP 46
Hình 4.2.1 UA gửi trực tiếp yêu cầu cho ProxyServer đã biết 46
Hình 4.2.2 UA gửi yêu cầu khi chƣa biết ProxyServer 48
Hình 4.4.1 Phiên gọi SIP đơn giản giữa 2 điện thoại 50
Hình 4.4.2 Phiên gọi có sự tham gia của ProxyServer 51
Hình 4.4.3 Cuộc gọi có sự tham gia của Redirect Server 52
Hình 5.1 Mô hình 54
Hình 5.2.3.1 Đăng nhập vào Server 55
Hình 5.2.3.2 Cấu hình địa chỉ của Server 55
Trang 88
Hình 5.2.3.3 Cấu hình User Huy 56
Hình 5.2.3.4 Cấu hình User Thành 56
Hình 5.2.4 Cấu hình Softphone Huy 57
Hình 5.2.5 Tiến hành cuộc gọi 58
Hình 5.2.6 Cuộc gọi đang diễn ra 59
Hình 5.2.7.1 Các gói tin bắt đƣợc 60
Hình 5.2.7.1 Gói tin INVITE 60
Trang 99
LỜI NÓI ĐẦU
Xã hội ngày càng hiện đại và không ngừng phát triển, nhu cầu trao đổi thông tin của con người cũng chính vì thế mà tăng lên Do đó, các mạng viễn thông hiện có với các loại hình dịch vụ sẽ không đáp ứng được nhu cầu ngày càng tăng cao của xã hội như: điện thoại, fax, điện báo… Vì vậy, yêu cầu đặt ra
là cần phải đưa ra giải pháp xây dựng một mạng mới, cung cấp được nhiều dịch
vụ hơn cùng với những thiết bị đầu cuối dễ sử dụng để đáp ứng người dùng Không chỉ vậy, mạng mới này phải có cấu trúc hiện đại, linh hoạt, dễ tích hợp các mạng cũ lại để tiết kiệm chi phí lắp đặt, sửa chữa
Xu hướng của hầu hết các tổ chức cũng như các quốc gia trên thế giới hiện nay là hướng tới xây dựng mạng NGN, vì mạng này là mạng duy nhất có
cơ sở hạ tầng thông tin dựa trên công nghệ chuyển mạch gói, đáp ứng được yêu cầu là dễ mở rộng và nâng cấp, triển khai các dịch vụ đa dạng và nhanh chóng
SIP là một giao thức mới xuất hiện nhằm phục vụ cho mạng điện thoại IP nhưng đã được ứng dụng rộng rãi Trong cấu trúc mạng NGN, SIP đã được lựa chọn làm giao thức báo hiệu chính SIP rất được chú ý và ngày càng được sử dụng rộng rãi trong các kiến trúc mạng NGN Tháng 11/2000, SIP được chấp nhận như một giao thức báo hiệu của 3GPP và trở thành một thành phần chính thức của cấu trúc IMS Đặc điểm của SIP là đơn giản, mở, dễ dàng triển khai và tương thích với các giao thức IP đã có
Do hạn chế về mặt thời gian cũng như kiến thức cho nên không thể tránh khỏi những thiếu sót và sai lầm rất mong được sự góp ý của Thầy, cùng các bạn
để có thể sữa chữa, nâng cao sự hiểu biết của mình
Chúng em xin cảm ơn Thầy đã tận tình giúp đỡ và tạo điều kiện tốt nhất
để chúng em có thể hoàn thành đề tài này
Bắc Ninh, ngày 1 tháng 10 năm 2015
Nhóm sinh viên thực hiện
Trang 1010
CHƯƠNG I: GIỚI THIỆU CHUNG
I Khái niệm giao thức SIP
Phiên (Session): là tập hợp các bên tham gia cùng với luồng dữ liệu trao
đổi giữa bên gửi và bên nhận Nó được xác định bởi chuỗi tên người dùng, phiên nhận dạng, kiểu mạng, kiểu địa chỉ và địa chỉ các phần tử trong trường nguồn
Giao thức SIP
SIP là viết tắt của cụm từ “Session Initiation Protocol”, được xây dựng bởi IETF Theo IETF, SIP là giao thức báo hiệu lớp ứng dụng mô tả việc khởi tạo, thay đổi và giải phóng các phiên kết nối tương tác đa phương tiện giữa những người sử dụng
SIP có thể sử dụng cho rất nhiều dịch vụ khác nhau trong mạng IP như dịch vụ thông điệp thoại, hội nghị thoại, E-mail, dạy học từ xa, quảng bá (MPEG, MP3 ), truy nhập HTML, XML, hội nghị video
SIP là 1 giao thức đơn giản, dựa trên dạng văn bản (text based) SIP được đưa ra trên cơ sở nguyên lý giao thức trao đổi thông tin của mạng Internet (HTTP) SIP là giao thức ngang cấp (peer-to-peer), hoạt động theo nguyên tắc hỏi/đáp (Server/client)
SIP làm việc cùng các giao thức khác trong tầng ứng dụng để nhận dạng
và truyền Session Media Sự nhận dạng và thỏa thuận về Media được thực hiện với Session Description Protocol (SDP) Đối với việc truyền các media stream (voice, video), SIP kết hợp Real-time Transport Protocol (RTP) hay Secure Real-time Transport Protocol (SRTP) Còn bảo mật trong quá trình truyền các thông điệp thì được mã hóa bởi Transport Layer Security (TLS)
SDP được sử dụng để miêu tả các loại media session nhằm mục đích thông báo, mời gọi và thỏa thuận về các tham số dành cho một session Do đó,
để tạo ra một session, một SIP message luôn mang theo SDP mà cho phép các bên tham gia đồng ý thiết lập một vài các thông số cần thiết vể trao đổi media, cũng như kiểu media, địa chỉ truyền tải, v.v
Tóm lại, nhiệm vụ của SIP là liên kết các peer lại với nhau, nó kết hợp với SDP để miêu tả về tính năng media sẽ thực hiện sau đó Còn việc thực hiện các tính năng media là nhiệm vụ của giao thức khác
Trang 1111
II Sự phát triển của SIP
Đầu tiên SIP chỉ đơn thuần là 1 giao thức dùng để thiết lập phiên quảng
bá cho Internet SIP được phát triển bởi SIP working group trong IETF Phiên bản đầu tiên được ban hành vào tháng 3 năm 1999 trong tài liệu RFC 2543 Sau
đó, SIP trải qua nhiều thay đổi và cải tiến Phiên bản mới nhất hiện nay được ban hành trong IETF RFC 3261 hoàn toàn tương thích ngược với RFC 2543, do
đó các hệ thống thực thi theo RFC 2543 hoàn toàn có thể sử dụng với các hệ thống trong RFC 3261 Từ khi SIP được công bố, hàng trăm nhà sản xuất đã bắt đầu bán ra trên toàn cầu máy chủ và điện thoại có tính năng SIP Một điều đáng chú ý là Microsoft cũng đã hỗ trợ sẵn cho SIP trong Window XP
Vị trí của SIP trong mô hình OSI và TCP/IP SIP là 1 giao thức thuộc lớp ứng dụng trong mô hình TCP/IP Còn nếu nói đến mô hình OSI 7 lớp thì SIP là
1 giao thức nằm ở cả 3 lớp trên cùng tức Application/Presentation/Seasion (hình 1.2)
Trong lập trình triển khai SIP, người ta xem SIP thuộc cả 3 lớp trên để dễ lập trình, dễ integration (hội nhập), và dễ sử dụng trong communicate software (giao tiếp phần mềm)
III Đặc điểm của SIP
SIP được thiết kế với những tiêu chí hỗ trợ tối đa cho các giao thức khác
đã ra đời trước đó, phục vụ cho mục đích lâu dài của điện thoại Internet và hội nghị đa phương tiện Rất nhiều sự quan tâm được tập trung vào việc phát triển SIP để đảm bảo giao thức này trở thành cơ sở cho thông tin trên Internet Dưới đây là 5 đặc điểm nổi bật tổng quát của SIP
Hình 1.2 Vị trí của SIP trong mô hình OSI
Trang 1212
Tích hợp với các giao thức đã có của IETF
Đơn giản và có khả năng mở rộng
Hỗ trợ tối đa sự di động của đầu cuối
Dễ dàng tạo tính năng mới cho dịch vụ và dịch vụ mới
Khả năng liên kết hoạt động với mạng điện thoại hiện tại
Tích hợp với các giao thức đã có của IETF
Các giao thức khác của IETF có thể sử dụng để xây dựng những ứng dụng SIP SIP có thể hoạt động cùng với nhiều giao thức như:
RSVP (Reource Revervation Protocol): Giao thức chiếm trước tài nguyên mạng
RTP (Real-time Tranpsport Protocol): Giao thức vận chuyển thời gian thực
RTSP (Real Time Streaming Protocol): Giao thức tạo luồng thời gian thực
SAP (Session Advertisement Protocol): Giao thức thông báo phiên kết nối
SDP ( Session Description Protocol): Giao thức mô tả phiên kết nối đa phương tiện
MIME (Multipurpose Internet Mail Extension): Mở rộng thư tín Internet đa mục đích
HTTP (Hypertext Transfer Protocol): Giao thức truyền siêu văn bản
COPS (Commom Open Policy Service): Dịch vụ chính sách mở rộng chung
OSP (Open Settlement Protocol): Giao thức thỏa thuận mở
Đơn giản và có khả năng mở rộng
SIP có rất ít bản tin, không có các chức năng thừa nhưng SIP có thể sử dụng để thiết lập những phiên kết nối phức tạp như hội nghị Đơn giản, gọn nhẹ dựa trên khuôn dạng văn bản (text), SIP là giao thức ra đời sau và đã khắc phục được điểm yếu của nhiều giao thức trước đây
Các phần mềm Proxy Server, Registrar Server, Redirect Server, Location Server… có thể chạy trên các máy chủ khác nhau và việc cài đặt thêm máy chủ hoàn toàn không ảnh hưởng đến các máy chủ đã có Chính vì thế hệ thống SIP
có thể dễ dàng nâng cấp
Trang 1313
Hỗ trợ tối đa sự di động của đầu cuối
Do có Proxy Server, Registrar Server và Redirect Server hệ thống luôn nắm được địa điểm chính xác của thuê bao Thí dụ thuê bao với địa chỉ SIP: huyhckt@t36.vn có thể nhận được cuộc gọi thoại hay thông điệp ở bất cứ địa điểm nào qua bất cứ đầu cuối nào như máy tính để bàn, máy tính xách tay, điện thoại SIP Với SIP rất nhiều dịch vụ di động mới được hỗ trợ như Presence (biết trạng thái hiện thời của đầu cuối) và Call Forking (phân nhánh cuộc gọi)
Dễ dàng tạo tính năng mới cho dịch vụ và dịch vụ mới
Là giao thức khởi tạo phiên trong mạng chuyển mạch gói, SIP cho phép tạo ra những tính năng mới hay dịch vụ mới một cách nhanh chóng Ngôn ngữ
xử lý cuộc gọi CPL (Call Processing Language) và giao diện cổng chung CGL (Com mon Gateway Interface) là một số công cụ để thực hiện điều này SIP hỗ trợ các dịch vụ thoại như: chờ cuộc gọi (Call Waiting), chuyển tiếp cuộc gọi (Call Forwarding), chặn cuộc gọi (Call Blocking), hỗ trợ thông điệp thống nhất
Khả năng liên kết hoạt động với mạng điện thoại hiện tại
PTSN là hệ thống chuyển mạch điện thoại trong nhiều năm Hệ thống nầy truyền tải các cuộc gọi điện thoại bằng tín hiệu analog bằng cáp đồng xoắn từ nhà và văn phòng đến nhà truyền tải Giao thức khởi tạo phiên SIP có khả năng liên kết với PTSN (mạng điện thoại truyền thống) chứ không chỉ dừng lại ở hoạt động trong mạng IP
IV Chức năng của SIP
SIP là một giao thức điều khiển lớp ứng dụng mà nó có thể thiết lập, sửa đổi và kết thúc các phiên truyền thông đa phương tiện (các hội nghị) hay các cuộc gọi điện thoại qua Internet SIP có thể mời các thành viên tham gia vào các phiên truyền thông đơn hướng hoặc đa hướng; bên khởi tạo phiên không nhất thiết phải là thành viên của phiên đó Phương tiện và các thành viên có thể được
bổ sung vào một phiên đang tồn tại
SIP hỗ trợ việc ánh xạ tên và các dịch vụ chuyển tiếp một cách trong suốt,
vì thế nó cho phép thực hiện các dịch vụ thuê bao điện thoại của mạng thông minh và mạng ISDN Những tiện ích này cũng cho phép thực hiện các dịch vụ của các thuê bao di động SIP hỗ trợ 5 khía cạnh của việc thiết lập và kết thúc các truyền thông đa phương tiện sau:
Trang 1414
Định vị người dùng (User Location): xác định hệ thống đầu cuối được
sử dụng trong truyền thông
Các khả năng người dùng (User capabilities): xác định phương tiện và các thông số phương tiện được sử dụng
Tính khả dụng người dùng (User availability): xác định sự sẵn sàng của bên được gọi để tiến hành truyền thông
Thiết lập cuộc gọi (Call setup): “đổ chuông”, thiết lập các thông số của cuộc gọi tại cả hai phía bị gọi và chủ gọi
Xử lý cuộc gọi (Call handling): bao gồm chuyển tải và kết thúc cuộc gọi
Trang 1515
CHƯƠNG II: CÁC THÀNH PHẦN CỦA SIP
Các thành phần chính trong mạng SIP bao gồm:
User Agents (UA)
Proxy Server
Redirect Server
Registrar Server
Location Server
I User Agents (UA)
User Agent (UA) là hệ thống đầu cuối trong mạng SIP, hoạt động đại diện cho người sử dụng UA phải có khả năng thiết lập một phiên của phương tiện này với các UA khác Điều đó có nghĩa là UA có thể khởi tạo, thay đổi hay giải phóng cuộc gọi
Một SIP User Agent (UA) bao gồm 2 thành phần: User Agent Client (UAC) và User Agent Server (UAS)
Nhiệm vụ của UAC: tạo ra các bản tin SIP yêu cầu (request) gửi cho UAS và nhận các bản tin SIP đáp ứng (response) được gửi từ UAS
Nhiệm vụ của UAS: nhận các request được gửi từ UAC và tạo ra các response gửi cho UAC
Hình 2.1 Các thành phần của SIP
Trang 1616
UAC và UAS của 1 UA không bao giờ liên lạc với nhau, nên nói "UAC gửi request đến UAS" thì bạn phải hiểu UAC thuộc UA1 và UAS thuộc UA2 , cũng như nói "UAS gửi reponse đến UAC" thì bạn cũng phải hiểu UAS và UAC thuộc 2 UA khác nhau
SIP UA là bộ phận quan trọng của 1 ứng dụng về truyền media SIP UA
có thể là:
Một máy điện thoại IP
Một phần mềm chạy trên PC
Một ứng dụng trên mobile phone
Một trạng thái nào đó trong network Server: gửi phản hồi tự động khi
có yêu cầu, tự động gửi media chúc mừng sinh nhật,
Máy điện thoại IP giống như điện thoại VoIP hay điện thoại mềm Đây là điện thoại cho phép thực hiện các cuộc gọi bằng cách sử dụng công nghệ VoIP giao thức truyền giọng nói qua internet, điện thoại IP chạy trên nền phần cứng giống như điện thoại để bàn nhưng có thể nhận và thực hiện các cuộc gọi thông qua mạng internet thay vì hệ thống PSTN truyền thống, điện thoại IP cũng có thể chạy trên phần mềm Các tùy chọn này cho phép mọi máy tính được sử dụng như điện thoại qua tai nghe có micro hoặc card âm thanh Ngoài ra phải có kết nối băng thông rộng và kết nối với nhà cung cấp dịch vụ VoIP hoặc máy chủ SIP
II Registrar
Registrar là một Server mà chấp nhận các yêu cầu đăng kí (registration request) từ các UA UA cung cấp địa chỉ hiện tại của nó trong resgistration request gửi đến Registrar Server Khi Registrar nhận registration request, nó lấy một số thông tin và lưu vào trong 1 cơ sở dữ liệu được gọi là Location Server
Hình 2.1 cấu trúc User Agent
Trang 1717
Tức là, Registrar là 1 đầu cuối SIP mà nhận các registration request và đưa các thông tin nó nhận được trong request này vào Location service để xử lý Trong nhiều trường hợp Registrar Server đảm nhiệm luôn một số chức năng an ninh như xác nhận người sử dụng
Mỗi UA phải được đăng ký trước khi nó có thể gửi và nhận media Mỗi lần đầu cuối được bật lên (thí dụ máy điện thoại IP hoặc phần mềm SIP) thì đầu cuối lại đăng ký với Registrar Server Nếu đầu cuối cần thông báo với Server về địa điểm của mình thì bản tin Register được gửi đi Nói chung các đầu cuối đều thực hiện việc đăng ký lại một cách định kỳ
III Location Server
Location Server là phần mềm định vị thuê bao, cung cấp thông tin về những vị trí có thể của phía bị gọi cho Proxy Server và Redirect Server
Location Server chứa một cơ sở dữ liệu là một tập danh sách được ánh xạ giữa Adresses of Record (AORs – địa chỉ công khai của UA) và Contact Addresses (địa chỉ IP của UA) AOR là một bản ghi căn bản và quan trọng nhằm ánh xạ, diễn dịch một domain thành địa chỉ IP
Ví dụ: Ánh xạ www.cpanel.com.vn thành 112.78.6.9
Hình 2.2 Registrar Server
Trang 1818
Khi Registrar nhận một registration request từ một UA, Registrar sẽ đưa thông tin nó nhận được vào Location Server Location Server liên hệ với Proxy Server chỉ ra tên miền (domain) chính xác để lấy về thông tin địa chỉ mà có thể được thực hiện cuộc gọi đến người dùng
Ví dụ:
Address of Record Contact Address
sip:tranhuy@t36.com sip:tranhuy@212.33.34.16
sip:huyd3a@d3a.vn sip:huyd3a@214.22.45.1
IV Proxy Server
Chức năng của Proxy Server trong Internet
Một số hãng và công ty sử dụng Proxy với mục đích: Giúp nhiều máy tính truy cập Internet thông qua một máy tính với tài khoản truy cập nhất định, máy tính này được gọi là Proxy Server Chỉ duy nhất máy Proxy này cần modem và account truy cập internet, các máy client (các máy trực thuộc) muốn truy cập internet qua máy này chỉ cần nối mạng LAN tới máy Proxy và truy cập địa chỉ yêu cầu Những yêu cầu của người sử dụng sẽ qua trung gian Proxy Server thay thế cho Server thật sự mà người sử dụng cần giao tiếp, tại điểm trung gian này
Hình 2.3 Quá trình để đăng kí thông tin trong 1 Location Server
Trang 1919
công ty kiểm soát được mọi giao tiếp từ trong công ty ra ngoài internet và từ internet vào máy của công ty Sử dụng Proxy, công ty có thể cấm nhân viên truy cập những địa chỉ web không cho phép, cải thiện tốc độ truy cập nhờ sự lưu trữ cục bộ các trang web trong bộ nhớ của Proxy Server và giấu định danh địa chỉ của mạng nội bộ gây khó khăn cho việc thâm nhập từ bên ngoài vào các máy của công ty
Đối với các nhà cung cấp dịch vụ đường truyền internet: Do internet có nhiều lượng thông tin mà theo quan điểm của từng quốc gia, từng chủng tộc hay địa phương mà các nhà cung cấp dịch vụ internet khu vực đó sẽ phối hợp sử dụng Proxy với kỹ thuật tường lửa để tạo ra một bộ lọc gọi là firewall Proxy nhằm ngăn chặn các thông tin độc hại hoặc trái thuần phong mỹ tục đối với quốc gia, chủng tộc hay địa phương đó Địa chỉ các website mà khách hàng yêu cầu truy cập sẽ được lọc tại bộ lọc này, nếu địa chỉ không bị cấm thì yêu cầu của khách hàng tiếp tục được gửi đi đến các DNS Server của các nhà cung cấp dịch
vụ Firewall Proxy sẽ lọc tất cả các thông tin từ internet gửi vào máy của khách hàng và ngược lại
Chức năng của Proxy Server trong SIP
Tương tự như chức năng của Proxy Server trong Internet, Proxy Server trong SIP là một thực thể trung gian, vai trò chính của Proxy là định tuyến, nghĩa là bảo đảm một request sẽ được gửi đến người dùng
Proxy Server thực hiện các hoạt động như xác định tính hợp lệ của bản tin, xác thực người sử dụng, phân nhánh các bản tin yêu cầu, phân giải địa chỉ, hủy bỏ các cuộc gọi đang chờ Tất cả các yêu cầu được xử lý tại chỗ bởi Proxy Server (nếu có thể) hoặc nó được chuyển đến cho các Server khác
Một Proxy Server quyết định định tuyến và thay đổi các bản tin yêu cầu trước khi chuyển đến một Server khác hoặc một UA.Trong trường hợp này, trường “Via” trong bản tin yêu cầu và bản tin đáp ứng sẽ chỉ ra các Proxy Server trung gian tham gia vào quá trình xử lí
Có nhiều loại Proxy khác nhau trong SIP, nhưng 2 loại Proxy thường được nhắc đến là: outbound Proxy và inbound Proxy
Outbound Proxy: Outbound Proxy giúp đỡ UAC để định tuyến các request đi ra từ UAC UAC thường được cấu hình truyền các request của nó đến một outbound Proxy
Trang 2020
Inbound Proxy: định tuyến các request đi ra từ Inbound Proxy, sẽ trực tiếp đến UAS Khi Inbound Proxy nhận một request yêu cầu gửi đến 1 User, đầu tiên inbound Proxy sẽ truy cập Location Service để xác định contact address của User, sau đó mới gửi trực tiếp đến User
V Redirect Server
Là Server nhận yêu cầu SIP và chuyển đổi địa chỉ SIP sang một số địa chỉ khác và gửi lại cho đầu cuối Không giống như máy chủ ủy quyền, máy chủ chuyển đổi địa chỉ không bao giờ hoạt động như một đầu cuối, tức là không gửi
đi bất cứ yêu cầu nào
Máy chủ chuyển đổi địa chỉ cũng không nhận hoặc huỷ cuộc gọi Là thực thể mà nhận yêu cầu và gửi trả lại câu trả lời với 1 danh sách vị trí hiện tại của một User đặc biệt được gọi là Redirect Server Một Redirect Server nhận yêu cầu và tìm kiếm người nhận trong vùng cơ sở dữ liệu, sau đó nó tạo ra một danh sách các vị trí hiện thời của User và gửi chúng tới người tạo yêu cầu Người tạo yêu cầu sau đó trích một danh sách các đích và gửi các yêu cầu khác một cách trực tiếp đến chúng
Hình 2.4 Quá trình yêu cầu đi qua Proxy Server
Trang 2121
Hình 2.5 Redirect Server
Trang 2222
CHƯƠNG III: BẢN TIN SIP (SIP MESSENGER)
I Phân loại bản tin
Có hai loại bản tin chính là bản tin yêu cầu (Request) và bản tin đáp ứng (Response)
Request: Gửi từ client tới Server
Response: Gửi từ Server tới client
INVITE Khởi tạo một phiên (bắt đầu thiết lập cuộc gọi bằng cách
gửi bản tin mời đầu cuối khác tham gia) ACK Thông báo máy trạm đã nhận được bản tin INVITE
BYE Yêu cầu kết thúc phiên
CANCEL Hủy yêu cầu nằm trong hàng đợi (quá trình tìm kiếm và rung chuông) REGISTER Đăng kí danh sách địa chỉ liên hệ của người dùng với máy
chủ đăng kí OPTIONS Sử dụng để xác định khả năng của máy chủ
Bảng 3.1.1 Bảng phân loại các bản tin yêu cầu
Trang 2323
Không giống như HTTP, trong SIP, 1 request có nhiều response Bất kỳ request nào cũng phải có ít nhất 1 bản tin đáp ứng cuối cùng (final repsonse) và
có thể có nhiều bản tin đáp ứng trung gian (provisional responses)
3 Địa chỉ SIP (SIP Address)
Trong SIP, mỗi người dùng đều có 1 SIP URI tương ứng, đó được gọi là địa chỉ của SIP
3xx: Redirect Định hướng lại cuộc gọi, chuyển tiếp
4xx: Client-Error Yêu cầu không được đáp ứng (lỗi client)
Trang 24II Cấu trúc bản tin
Bản tin SIP được mã hóa dưới dạng văn bản sử dụng bộ kí tự UTF-8 Cú pháp của SIP gần giống với giao thức HTTP Có nghĩa là thông tin được trao đổi bên trong giao thức được mã hóa dưới dạng chuỗi hay ký tự SIP Messages được chia thành nhiều dòng ký tự riêng biệt được gọi là Line Mỗi Line là 1 chuỗi các
ký tự nối liền nhau và ngăn cách với Line khác bởi một ký tự xuống dòng (CRLF)
Hình 3.2 Khuôn dạng bản tin SIP
Trang 2525
Có hai loại bản tin chính là bản tin yêu cầu (Request) và bản tin đáp ứng
(Response) Cả hai loại đều có 1 Start line, 1 hay nhiều Header fields (trường tiêu đề), một Empty line chỉ ra kết thúc của Header fields, và 1 Message
body (nếu có)
Star line: Các bản tin phân biệt với nhau dựa vào dòng bắt đầu Mỗi bản
tin SIP được bắt đầu với một Start Line, Start Line vận chuyển loại bản tin (phương thức trong các bản tin yêu cầu, mã đáp ứng trong các bản tin đáp ứng)
và phiên bản của giao thức Start line có thể là Request-Line (trong các Request) hoặc là Status-Line (trong các Response)
Header fields: bao gồm field name và field value, ngăn cách nhau bởi
dấu 2 chấm và kết thúc bằng ký tự xuống dòng
Message body: Thân bản tin không bắt buộc phải có được sử dụng để mô
tả phiên được khởi tạo (ví dụ: Trong một phiên multimedia phần này sẽ mang loại mã hóa audio và video, tốc độ lấy mẫu …), hoặc nó có thể được sử dụng để mang dữ liệu dưới dạng text hoặc nhị phân (không được dịch) mà liên quan đến phiên đó Phần thân bản tin có thể xuất hiện trong cả bản tin yêu cầu và đáp ứng Chúng được sử dụng để chứa một vài loại thông tin khác như thông tin SDP
III Star line
1 Trong SIP requests
Các bản tin yêu cầu có Start line là Request-Line Dòng này gồm ba thành phần:
Bắt đầu bằng tên chỉ thị (Method) dùng để phân biệt các bản tin yêu cầu Có 6 loại SIP Request thông dụng: REGISTER, INVITE, ACK, CANCEL, BYE, OPTIONS như trong bảng 3.1.1
Tiếp theo là Request-URI địa chỉ nơi gửi bản tin yêu cầu có khuôn dạng như SIP URI
Cuối cùng là SIP/Version phiên bản giao thức SIP được sủ dụng
Các thành phần được ngăn cách bằng một kí tự trống (SP: Space) Cũng
như các dòng khác dòng bắt đầu được kết thúc bằng một kí tự xuống dòng (CRLF)
Cấu trúc:
Trang 2626
Ví dụ:
INVITE sip:huyhaha@ita.bb.co SIP/2.0
Trong đó:
2 Trong SIP response
Các bản tin yêu cầu có Start line là Respone-Line Dòng này gồm ba thành phần:
Bắt đầu là SIP/Version phiên bản giao thức SIP được sủ dụng
Tiếp theo là Status-code là một mã kết quả nguyên gồm 3 chữ số, chỉ
ra kết quả của việc cố gắng thực hiện và mức độ thỏa mãn yêu cầu Chữ số đầu tiên dùng để phân loại đáp ứng, hai chữ số sau không có vai trò phân loại Cuối cùng là Reason-Phrase thì dùng để đưa ra một lời giải thích ngắn cho Status-code
Các thành phần được ngăn cách bằng một kí tự trống (SP: Space) Cũng như các dòng khác dòng bắt đầu được kết thúc bằng một kí tự xuống dòng (CRLF)
OK là cụm từ giải thích nghĩa của mã 200
IV Header field
Các trường tiêu đề (Hearder) của SIP được sử dụng để vận chuyển các thuộc tính của bản tin và để thay đổi ý nghĩa của bản tin Chúng tương tự như các trường tiêu đề của bản tin HTTP theo cả cú pháp và ngữ nghĩa (thực tế có
Trang 2727
một vài tiêu đề được mượn từ HTTP) cho nên chúng luôn có khuôn dạng như sau:
< field name>:< field value>
Field name và field value ngăn cách nhau bởi dấu 2 chấm và kết thúc bằng ký tự xuống dòng
Ví dụ:
To: sip:huyd3a@niit.com
Contact: sip:tranhuy@214.25.100.2
Trong đó:
value
Thứ tự các trường tiêu đề khác tên là không quan trọng (nhưng các tiêu đề
mà được sử dụng để định tuyến bởi các Proxy Server sẽ được đặt trước) Thứ tự các tiêu đề có cùng tên là quan trọng
Nếu 1 header field có nhiều field value khác nhau thì các field value này được tách biệt nhau bằng dấu phẩy và thứ tự của chúng rất quan trọng
Header fields có thể chứa nhiều tham số (parameter), mỗi tham số bao gồm tên tham số và giá trị tham số được tách biệt nhau bằng dấu bằng “ =”, tham số này cách biệt tham số khác hoặc field value bằng dấu chấm phẩy “;”
Trang 2828
From: Quang Huy <sip:huy@niit.com>
From header field cũng chứa tham số bắt buộc tag Tham số tag này đƣợc
sử dụng cho mục đích nhận biết 1 dialog
To: Tranhuy <sip:tranhuy@niit.com>
To header field cũng chứa tham số tag không định nghĩa trong request nhƣng bắt buộc phải định nghĩa giá trị tham số tag này trong response đầu tiên phản hồi request này, giá trị tham số tag của To header cùng với tag của From header đƣợc sử dụng để nhận dạng 1 dialog
Dialog: là mối quan hệ peer-to-peer giữa 2 UA tồn tại 1 thời gian nào đó
1 dialog đƣợc nhận dạng bởi Call-ID, tag của From header field (trong request)
và tag của To header field (trong response)
Trang 2929
Trong 1 Dialog mà có sự trao đổi media thì Dialog được gọi là phiên, ngược lại nếu trong 1 Dialog mà không có sự trao đổi media thì Dialog không được gọi là phiên
Call-ID được sử dụng để nhận biết 1 cuộc hội thoại, 1 cuộc hội thoại có thể có nhiều dialog Tag của From được sử dụng để nhận biết 1 dialog được tạo
từ UAC Tag của To sử dụng để nhận biết 1 dialog được tạo từ UAS
Ví dụ: ban đầu A gọi cho B sau đó A mời thêm C vào cuộc hội thoại thì trao đổi giữa A và B là dialog 1, trao đổi của A và C là dialog 2… và A, B, C đều cùng nằm trong 1 cuộc hội thoại
4 Via
Via header field ghi lại tất cả địa chỉ host hoặc IP của UAC và các Proxy Server mà 1 request đi qua, để bắt buộc 1 response trả về cũng phải đi đúng theo con đường này nhưng theo chiều ngược lại với request Cách thức hoạt động tìm hiểu ở chương sau phần định tuyến
Via header field bao gồm 2 trường:
Trường sent-protocol: chứa giao thức gửi message
Ví dụ: SIP/2.0/UDP , SIP/2.0/TCP,…
Trường sent-by: chứa tên host hoặc địa chỉ IP và port nếu có
Các tham số dành cho Via:
Hình 3.4.3 Dialog và cuộc hội thoại
Trang 3030
Received: Nếu request đi qua 1 Proxy mà địa chỉ IP chỉ là địa chỉ mạng
cục bộ Lúc này, received sẽ chứa địa chỉ IP của NAT (tức là địa chỉ Internet)
Ví dụ:
Via: SIP/2.0/TCP 92.168.1.2;received=112.4.25.50
Trong đó 192.168.1.2 là địa chỉ mạng cục bộ nên received chứa địa chỉ IP internet của NAT
Branch: được tính toán từ hàm băm của các header: Request-URI, To,
From, Call-ID và CSeq Branch được sử dụng để nhận biết 1 transaction (cuối phần này chúng tôi sẽ giải thích dialog, call và transaction)
Ví dụ:
Contact: <sip:huyd3a@115.44.23.2>
Contact header bắt buộc phải hiện diện INVITE request và 200 OK response của 1 cuộc gọi Contact ngoài bắt buộc chứa URI, nó cũng có thể chứa
tên hiển thị Nếu trường Request-URI có chứa giá trị SIP URI thì trường Contact
cũng phải chứa giá trị URI tương ứng
Ví dụ:
Contact: Huyd3a<sip:huyd3a@115.44.23.2>
Lưu ý: Via được sử dụng để gửi response theo đúng tuyến đường của
request, còn Contact được dùng cho các response và request tương lai
6 Cseq
Trường này phục vụ cho mục đích định danh và sắp xếp thứ tự cho các giao dịch CSeq header field là 1 header field bắt buộc trong mỗi request CSeq chứa số nguyên (gọi là CSeq number) và kiểu request