Phần thân được sử dụng để mở rộng các ứng dụng của khác nhau của SIP ví dụ như SIP-Tcho liên vận PSTN-SIP-PSTN hoặc MSCML Media Server Control Markup Language cho dịch vụ hội nghị.. SIP
Trang 1Mục Lục
A.GIỚI THIỆU GIAO THỨC SIP 5
1 Quá trình hình thành và phát triển 5
2.Tổng quan về SIP 5
3 Các khía cạnh mà SIP hỗ trợ trong việc thiết lập và kết thúc các truyền thông đa phương tiện 6
B.KIẾN TRÚC VÀ CHỨC NĂNG CỦA SIP 7
I.Các Thành phần mạng báo hiệu của SIP 7
II.Bản tin SIP 9
1.Các bản tin SIP mào đầu và đánh số 9
2.Khuôn dạng thông điệp 11
2.1 SIP response 11
2.2 SIP request 15
3.Phương thức SIP 15
3.1 Các trường header 16
3.2 Message body 16
III.Cấu trúc bản tin SIP 16
IV Kiến trúc chức năng SIP 19
C.HOẠT ĐỘNG CỦA GIAO THỨC SIP 21
I Thủ tục thông tin SIP 21
1.Quá trình định vị máy chủ SIP 21
2.Giao dịch SIP 22
3.Lời mời SIP 22
4.Định vị người dùng 23
1
Trang 25.Thay đổi 1 phiên hiện tại 23
II Một số giao thức mà SIP có thể hoạt động cùng 23
1.Giao thức SDP 23
2.Giao thức RSVP 25
3.RTSP (Real time streaming protocol) 25
4.RTP(Real time tranpsport protocol) 25
2
Trang 3A.GIỚI THIỆU VỀ SIP
1. Quá trình hình thành và phát triển.
Đầu tiên SIP chỉ đơn thuần là một giao thức dùng để thiết lập phiên quảng bá cho Internet2 ( từ giữa đến cuối thập kỉ 90 ) 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àiliệ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 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 theo RFC 3261
Một bản tin SIP có hai phần, phần mào đầu và phần thân Phần thân cho phép phục vụ các ứng dụng khác nhau một cách linh hoạt Ban đầu phần thân chỉ dùng để chuyển tải các tham số miêu tả phiên SDP như codec, địa chỉ IP đầu cuối, Phần thân được sử dụng để mở rộng các ứng dụng của khác nhau của SIP ví dụ như SIP-Tcho liên vận PSTN-SIP-PSTN hoặc MSCML (Media Server Control Markup
Language) cho dịch vụ hội nghị
Sự phổ cập của SIP đã dẫn tới việc một loạt nhóm làm việc liên quan đến SIP được thành lập Nhóm SIPPING (Session Initiation Protocol investigation working group) được thành lập với mục đích nghiên cứu các ứng dụng và phát triển các yêu cầu mở rộng cho SIP Nhóm SIMPLE (SIP for Instant Messaging and Presence Leveraging Extensions) có nhiệm vụ chuẩn hoá các giao thức cho các ứng dụng nhắntin tức thời Các nhóm làm việc khác là PINT (PSTN and Internet,internet working),
SPIRITS (PSTN/IN requesting Internet Services)
2.Tổng quan về SIP
Theo định nghĩa của IETF, “Giao thức khởi tạo phiên” SIP (Session InitiationProtocol) 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 dựa trên ý tưởng và cấu trúc của HTTP (HyperText Transfer Protocol) là giao thức trao đổi thông tin của World Wide Web SIP được định nghĩa như một giao thức chủ/tớ (Client/Server), trong đó các yêu cầu được chủ gọi (Client) đưa ra và bên bị gọi (Server) trả lời SIP sử dụng một số kiểu bản tin và các trường mào đầu của HTTP, xác định nội dung luồng thông tin theo mào đầu thực thể (mô tả nội dung - kiểu loại) và cho phép xác nhận các phương pháp sử dụng giống nhau được sử dụng trên Web
Các phiên truyền thông mà có giao thức SIP thiết lập bao gồm :
+ Hội họp đa phương tiện qua internet
+ Các cuộc gọi điện thoại qua internet
+ Các phiên video qua internet
Trang 4SIP sử dụng các bản tin mời ( INVITE ) để thiết lập các phiên và để mang các thông tin
mô tả phiên truyền dẫn SIP hỗ trợ các phiên đơn bá ( unicast ) và quảng bá ( multicast )tương ứng các cuộc gọi điểm tới điểm và cuộc gọi đa điểm SIP định nghĩa các bản tin INVITE và ACK giống như bản tin Setup và Connect trong H.225, trong đó cả hai đều định nghĩa quá trình mở một kênh đáng tin cậy mà thông qua đó cuộc gọi có thể đi qua Tuy nhiên khác với H.225, độ tin cậy của kênh này không phụ thuộc vào TCP mà có thểtích hợp vào lớp ứng dụng nhằm nâng cao khả năng tối ưu hóa
Các phần tử của SIP có thể liên lạc thông qua :
+ Liên lạc cá nhân
+ Phát quảng bá
+Thông qua tổ hợp của các quan hệ liên lạc cá nhân hoặc một tổ hợp
của tất cả những phương tiên trên
Trong các môi trường IPv4 và IPv6 thông qua :
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.(ví dụ : đường truyền ta chọn là đường
truyền vô tuyến và xác định các bộ tham số liên quan đến đường truyền đó để
Trang 5 Thiết lập cuộc gọi (Call setup): 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.(do năng lực của đầu cuối có thể khác
nhau nên cần thiết lập thông số trước – có thỏa thuận)
Xử lý cuộc gọi (Call handling): bao gồm truyền tải và kết thúc cuộc gọi
B.KIẾN TRÚC VÀ CHỨC NĂNG CỦA SIP
I Các Thành phần mạng báo hiệu của SIP
Các thành phần chính của một hệ thống SIP bao gồm các thành phần sau: Đầu cuối SIP(UAC/UAS); Proxy server; Location server; Redirect server; Registrar server
User Agent : gửi và nhận các yêu cầu và trả lời của SIP , nó là điểm cuối của
luồng đa phương tiện và nó luôn là Người dùng Equiment ( UE ) – bao gồm ứng dụng trong thiết bị đầu cuối hoặc ứng dụng phần cứng chuyên dụng UA gồm haiphần :
+ Người dùng Agent Client ( UAC ) : ứng dụng của người gọi –khởi tạo request
+ Người dùng Agent Server ( UAS ) : chấp nhận , gửi lại , từ chối request vàgửi trả lời cho request đến thay mặt cho người sử dụng
Trang 6+ User Agent là thực thể SIP mà tương tác với với người sử dụng Nóthường xuyên sử dụng giao diện với người sử dụng.
Các thành phần còn lại có thể gọi là SIP server :
Proxy Server : là phần mềm trung gian hoạt động cả như Server và cả như
Client để thực hiện các yêu cầu thay thế cho các đầu cuối khác 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ó chuyển đến cho các máy chủ khác Trong trường hợp Proxy Server không trực tiếp đáp ứng các yêu cầu này thì Proxy Server sẽ thực hiện khâu chuyển đổi hoặc dịch sang khuôn dạng thích hợp trước khi chuyển đi Chuẩn về SIP cho phép các Proxy thực hiện các hoạt động chẳng hạn như xác định tính hợp lệ của bản tin, xác thực người sử dụng, phânnhánh các request, phân giải địa chỉ, hủy bỏ các cuộc gọi đang chờ Sự linh hoạt của các proxy SIP cho phép các nhà khai thác và quản trị mạng sử dụng các proxy cho các mục đích khác nhau và trong các vị trí khác nhau trong mạng (chẳng hạn như Proxy biên, Proxy lõi, và Proxy của các doanh nghiệp)
+ Forking proxy: SIP proxy server định tuyến thông điệp đến nhiều hơn một đích được gọi là proxy phân nhánh Forking Proxy có thể định tuyến thông điệp song song hoặc theo thứ tự Ví dụ của Forking Proxy song song là việc báo hiệu đồng thời của tất cả các điện thoại trong nhà Forking Proxy theo thứ tự chứa proxythử báo hiệu lần lượt các vị trí khác nhau, có thể rung chuông trong một chu kỳ thời gian nhất định nếu người dùng không nhấc máy thì thử User Agent mới
Trang 7 Redirect Server: là phần mềm 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 những địa chỉ này cho đầu cuối
( Truy nhập dữ liệu và dịch vụ định vị để tìm địa chỉ của user và gửi trả về bản tinlớp 300 để thông báo thiết bị chuyển hướng bản tin tới địa chỉ khác – tự liên lạc thông qua địa chỉ trả về)
+ Không bao giờ hoạt động như một đầu cuối.( không gửi đi bất cứ một yêu cầu nào)
+ Không thực hiện việc chấp nhận hay huỷ cuộc gọi
Location Sever: 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 các phần mềm Proxy Server và Redirect Server
Registrar Sever: là sever nhận bản tin SIP REGISTER yêu cầu và cập nhật
thông tin từ bản tin request vào “ location database “ nằm trong Location Sever
+ 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
+ Cung cấp dịch vụ định vị thuê bao
+ Mỗi lần đầu cuối được bật lên (ví dụ máy điện thoại hoặc phần mềm SIP)thì đầu cuối lại đăng ký với 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ựchiện việc đăng ký lại một cách định kỳ
II Bản tin Sip
1. Các bản tin SIP mào đầu và đánh số :
Dưới đây là các bản tin của SIP :
Trang 8INVITE : 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 : bản tin này khẳng định máy trạm đã nhận được bản tin trả lời bản tin INVITE BYE : bắt đầu kết thúc cuộc gọi
CANCEL : hủy yêu cầu nằm trong hàng đợi
REGISTER : đầu cuối SIP sử dụng bản tin này để đăng ký với máy chủ đăng ký OPTION : sử dụng để xác định năng lực của máy chủ
INFO : sử dụng để tải các thông tin như âm báo DTMF
Những bản tin trao đổi giữa A và B để thiết lập một phiên :
Trang 92. Khuôn dạng thông điệp:
Thông điệp SIP gồm 3 phần: start line, header của thông điệp và body
Client gửi yêu cầu (request) và server trả lời bằng response Giao dịch SIP bao gồm yêu cầu từ client, 0 hoặc nhiều provisional response và final response từ server
2.1
SIP response
Status line là dòng bắt đầu của response
Các bản tin đáp ứng được chia thành thành hai nhóm bao gồm 6 loại bản tin, mỗi bản dùng một mã trạng thái nằm trong một dải mã
Khuôn dạng thông điệp SIP
SIP version Status code Reason Phrase
Cấu trúc Response Line
SIP response
Trang 10 Provisional (1xx): Bản tin này dùng để chỉ thị tiến trình nhưng không kết thúc
giao dịch SIP (tìm kiếm, rung chuông, xếp hàng)
Final (2xx, 3xx, 4xx, 5xx, 6xx): Bản tin này chỉ thị kết thúc giao dịch SIP.
1xx: Provisional – đã nhận yêu cầu và đang tiếp tục xử lý yêu cầu Tìm kiếm,
rung chuông, xếp hàng đợi, nó được phát khi quá trình xử lý chưa thể kết thúc ngayđược Phía phát cần phải dừ ng quá trình truyền các yêu cầu khi
nhân
đươ
c bản tin này
nhận)
2xx: Success – Các yầu đã được xử lý thành công (nhận, hiểu và đã được tiếp
3xx: Redirection – Cần tiến hành thêm các hoạt động để có thể đáp ứng được các
yêu cầu Chúng đươc gử i bở i các Redirect Server
4xx: Client Error – Lỗi do phía Client, các yêu cầu sai cú pháp hoặc không đáp
ứng đúng yêu cầu của Server
5xx: Server Error – Lỗi phía Server, server bị sự cố và không đáp ứng được các
yêu cầu hợp lệ
6xx: Global Failure – Lỗi tổng thể, các yêu cầu không thể được đáp ứng tại bất kỳ
server nào
cụ thể :
1xx: Phản hồi thông tin :
100: đang thử : máy đựợc gọi đã tiếp nhận được yêu cầu bên gọi và gửi bản tin này mang tính chất phản hồi để thử
180: đổ chuông : Máy được gọi đổ chuông, và gửi bản tin chuông về cho bêngọi
181: cuộc gọi đang chuyển hướng: May được gọi lập trình chuyển hướng đếnmột máy khác trong khi nó đang bận hoặc không xử lý cuộc gọi của bên gọi
182 : đang xếp hàng đợi : chờ đợi vì có nhiều yêu cầu đến cùng lúc
Trang 11183: Phiên đang tiến hành: Có phiên cuộc gọi khác đang đựơc tiến hành với máy đựợc gọi
301: đã dời đi vĩnh viễn
302: tạm thời dời đi 305:
dùng proxy
380: dịch vụ thay thế
4xx: Yêu câu thất bại
400: yêu cầu sai
401: không được quyền: chỉ dùng với cơ quan đăng kiểm , các proxy phải dùng yêu cầu cấp phép cho proxy 407
402: yêu cầu trả tiền :Dự trữ để phòng trong tương lai
Trang 12410: đã không còn , người dùng đã từng tồn tại nhưng bây giờ không còn được sử dụng nữa:"Thuê bao quý khách vừa gọi hiện đang tạm khóa, mong quý kháchvui lòng gọi lại sau"
413: Đơn vị yêu cầu quá lớn: "cuộc gọi không thể thực hiện được"
414: URI của yêu cầu quá tải :"mạng quá tải"
415: kiểu phương tiện không được hỗ trợ: ví dụ : tin nhắn đa phương tiện không thể gửi đến và nhận từ một số máy di động không hỗ trơn GPRS
416: giản đồ URI không được hỗ trợ
420: phần mở rộng không đúng: Sử dụng phần mở rộng của giao thức SIP khôngđúng nên máy chủ không hiểu được
421: Yêu cầu có phần mở rộng
423: Quãng quá ngắn
480: tạm thời không hoạt động
481: cuộc gọi/giao dịch không tồn tại
482: phát hiện thấy lặp
483: quá nhiều chặng trung tuyến
484:địa chỉ không hoàn chỉnh 485:
Trang 13491: yêu cầu đang chờ
493: không thể giải mã được : Không thể giải mã phần thân của S/MIME
5xx: Lỗi máy chủ
500: lỗi bên trong máy chủ
501: chưa khai báo: Phương thức yêu cầu SIP này chưa đựơc khai báo ở đây502: gateway sai
Request line là dòng đầu tiên của request Tên giao thức chỉ ra mục đích của request
và request-URI chứa đích của request
3. Các phương thức SIP
Các phương thức SIP có thể xem như là các kiểu thông điệp Chúng xác định yêu cầuđang được tạo bởi thiết bị của người dùng (hoặc thực thể mạng trong một số trườnghợp)
Các phương thức SIP cơ bản hiện tại được định nghĩa để sử dụng trong IMS: ACK,BYE, CANCEL, INVITE, REGISTER, UPDATE
Trang 14Các trường header
- Khuôn dạng của các trường header:
- Tên của trường header: giá trị của trường header
- Có các trường header bắt buộc và tùy chọn trong mỗi thông điệp
-Có 6 trường header có tính bắt buộc trong mỗi SIP thông điệp: To, From,Cseq, Call-ID, Max- Forward, Via
3.2
Message Body
Message Body được tách khỏi trường header bởi dòng trống
Thông điệp SIP có thể mang bất kỳ kiểu nào của body, kể cả body nhiều phần sửdụng mã hóa MIME (Multipurpose Internet Mail Extension )
SIP sử dụng MIME để mã hóa body của nó Do đó, body của SIP được mô tảgiống như phần đính kèm vào email
Đặc tính quan trọng của body là chúng truyền từ đầu cuối đến đầu cuối Proxykhông cần phân tích cú pháp của thông điệp body để định tuyến thông điệp Thực tế,
UA có thể lựa chọn để mã hóa nội dung của thông điệp body end to end Trongtrường hợp này, proxy sẽ không thể biết kiểu phiên nào đang được thiết lập giữa haiUA
III Cấu trúc bản tin SIP
Cả hai loại bản tin trên đều sử dụng chung một định dạng cơ bản được quy định trong
RFC 2822 với cấu trúc gồm một dòng khởi đầu (start – line), một số trường tiêu đề
16
Trang 15và một phần thân bản tin tuỳ chọn
- Dòng bắt đầu, các dòng tiêu đề hay các dòng trắng phải được kết thúc bằng một ký
tự xuống dòng (CRLF)
- Dòng trắng vẫn phải có để ngăn cách phần tiêu đề và phần thân của bản tin ngay cảkhi phần thân bản tin là rỗng
Start line: 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 Request, và 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 yêu cầu) hoặc là Status-Line (trong cácđáp ứng)
Headers: Các trường 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 63
để của bản tin HTTP theo cả cú pháp và ngữ nghĩa
Tiêu đề bản tin bao gồm bốn loại:
17
Trang 16-Thân bản tin được sử dụng để mô tả phiên được khởi tạo
- Nó có thể được sử dụng để mang dữ liệu dưới dạng text hoặc nhị phân (không đượcdị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 Các loạiBody bao gồm:
+ giao thức mô tả phiên SDP,
+ mở rộng thư điện tử internet đa mục đích MIME (Multipurpose Internet MailExtentions)
+ Các phần định nghĩa trong IETF
-SDP là một giao thức lớp ứng dụng được IETF thiết kế để mô tả các phiên đa
phương tiện và là giao thức dựa trên văn bản
=> thông thường SDP được chứa trong phần tải tin của các giao thức khác Chẳng hạn phần tải tin trong bản tin INVITE có thể chứa SDP nếu có chỉ thị về nó trong tiêu
đề content-type và content-application
Một bản tin SDP bao gồm các mức thông tin sau:
- Mô tả mức phiên Mức này bao gồm nhận dạng phiên và các thông số mức