Đồ án GIAO THỨC KHỞI TẠO PHIÊN (SIP) Nội dung đồ án bao gồm ba phần: 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 là hướng tới xây dựng mạng NGN, vì NGN 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, dễ mở rộng và nâng cấp, triển khai các dịch vụ đa dạng và nhanh chóng. Phần I: Giới thiệu về giao thức khởi tạo phiên (SIP) Phần II:Nội dung. Phần III: Ứng dụng của SIP
Trang 1MỤC LỤC
Thuật ngữ viết tắt 3
Lời nói đầu 5
Phần I: Giới thiệu về giao thức khởi tạo phiên (SIP) 6
1.1 Định nghĩa giao thức khởi tạo phiên 6
1.2 SIP đem lại ba năng lực chính cho mạng viễn thông 6
1.3 Sự phát triển của SIP 7
1.4 Một số khái niệm trong SIP 8
Phần II: Nội dung 11
2.1 Các thành phần của SIP 11
2.1.1 User Agent (UA) 11
2.1.2 Máy chủ mạng 12
2.2 Địa chỉ SIP 13
2.3 Bản tin SIP 14
2.3.1 Cấu trúc bản tin SIP 14
2.3.2 Các bản tin yêu cầu 15
2.3.2.1 Method (chỉ thị) 15
2 2.3.2.2 Request_URI……… 20
2.3.2.3 SIP Version……… 20
2.3.2.4 Thân bản tin SIP……… 20
2.3.3 Nhãn Tag ……… ………
Đơn giản và có khả năng mở rộng 21 2.3.4 Bản tin đáp ứng ……… 21
2.3.5 Bản tổng hợp các bản tin trả lời của SIP……… 22
2.4 Thiết lập và hủy cuộc gọi SIP……… 25
2.4.1 Phiên gọi SIP giữa hai điện thoại……… 25
2.4.2 Hoạt động của máy chủ uỷ quyền……… 26
2.4.3 Họat động của máy chủ chuyển đổi địa chỉ……… 27
2.5 Tính năng của SIP……… 28
2.5.1 Tích hợp với các giao thức đã có của IETF……… 28
2.5.2 Đơn giản và có khả năng mở rộng……… 28
2.5.3 Hỗ trợ tối đa sự di động của đầu cuối……… 28
2.5.4 Dễ dàng tạo tính năng mới cho dịch vụ và dịch vụ mới……… 29
Phần III: Ứng dụng……… 30
3.1 Các ứng dụng thương mại……… 30
3.2 Ứng dụng trong mạng IMS……… 30
3.2.1 Giới thiệu mạng IMS……… 30
3.2.2 Ứng dụng của SIP trong kiến trúc IMS……… 32
Kết luận……… 34
Trang 2THUẬT NGỮ VIẾT TẮT
Từ viết
tắt
AH Authentication Header Tiêu đề nhận dạng
CA Certificate Authority Đơn vị chứng thực
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
Trang 3ESP Encapsulating Security Payload Đóng gói tải tin an toàn
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
InternetIEC International Electrotechnical
Commission
Uỷ ban điện tử quốc tế
IETF Internet Engineering Task Force Tổ chức đặc trách về kỹ thuật
InternetIKE Internet Key Exchange Trao đổi khóa Internet
IKE Internet Key Exchange Giao thức trao đổi khóa InternetIMCP Internet Control Message Protocol Giao thức bản tin điều khiển
Internet
IPsec IP security protocol Giao thức an ninh Internet
ISAKMP Internet Security Association and
Key Management Giao thức liên kết an ninh và quản lý khóa qua InternetISO International Standard
ITU-T International Telecommunication
Union-Telecommunication
Standardization Sector
Tiểu ban chuẩn hoá viễn thông thuộc tổ chức viễn thông quốc tếMAC Message Authentication Code Mã nhận thực bản tin
MIME Multipurpose Internet Mail
Extension
Mở rộng thư internet đa mục đích
NAT Network Access Translation Biên dịch địa chỉ mạng
RFC Request for Comment Các chuẩn khuyến nghị của IETFRSA Rivest-Shamir-Adlenman Một loại giải thuật mã hóa bằng
khóa công khaiS/MIME Secure/ Multipurpose Internet Mail
Extension
MIME đảm bảo
SA Security Association Liên kết an ninh
SDP Session Description Protocol Giao thức mô tả phiên
Trang 4SIP Session Initiation Protocol Giao thức khởi tạo phiên
SPIT Spam over Internet Telephony Spam qua thoại internet
TCP Transmission Control Protocol Giao thức điều khiển truyền tảiTLS Transmission Layer Security An ninh lớp truyền dẫn
UDP User Datagram Protocol Giao thức dữ liệu đồ người sử
dụng URI Uniform Resourse Indicator Chỉ thị dạng thức tài nguyên
URL Uniform Resource Locator Dạng nguồn nội bộ
VPN Virtual Private Network Mạng riêng ảo
LỜI NÓI ĐẦU
Cùng với sự phát triển của xã hội, nhu cầu trao đổi thông tin của con người ngàycàng tăng, và các mạng viễn thông truyền thống với các loại hình dịch vụ như: điệnthoại, điện báo, fax…sẽ không đáp ứng được yêu cầu hiện tại Vì vậy, cần phải đưa ragiải pháp xây dựng một mạng mới, cung cấp được nhiều dịch vụ cùng với những thiết
bị đầu cuối dễ sử dụng để đáp ứng nhu cầu của người dùng Hơn thế nữa, mạng nàyphải có cấu trúc hiện đại, linh hoạt, dễ tích hợp với các mạng cũ để tiết kiệm chi phílắp đặt, đổi mới
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 là hướngtới xây dựng mạng NGN, vì NGN là mạng duy nhất có cơ sở hạ tầng thông tin dựatrên công nghệ chuyển mạch gói, dễ mở rộng và nâng cấp, triển khai các dịch vụ đadạ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ác cấu trúc mạng NGN, SIP đã được lựa chọn làmgiao 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 trongcác kiến trúc của mạng NGN Tháng 11 năm 2000, SIP được chấp nhận như một giaothứ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ó
Trang 5Nội dung đồ án bao gồm ba phần:
Phần I: Giới thiệu về giao thức khởi tạo phiên (SIP)
Phần II:Nội dung.
Phần III: Ứng dụng của SIP
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ỏinhững thiếu sót và sai lầm, rất mong được sự góp ý của Cô, cùng các bạn để có thể sửachữa, nâng cao sự hiểu biết của mình
Em xin chân thành cảm ơn Cô đã tận tình chỉ bảo 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
Hà nội, ngày Tháng Năm 2011
Nhóm sinh viên thực hiện
Phần I GIỚI THIỆU VỀ GIAO THỨC KHỞI TẠO PHIÊN (SIP)
1.1 Định nghĩa giao thức khởi tạo phiên
Giao thức khởi tạo phiên (SIP): là một giao thức báo hiệu mới xuất hiện thực
hiện điều khiển phiên cho các kết nối đa dịch vụ Về cơ bản, hoạt động điều khiển baogồm khởi tạo, thay đổi và kết thúc một phiên có liên quan đến các phần tử đa phươngtiện như video, thoại, tin nhắn, game trực tuyến, vân vân
Giao thức khởi tạo phiên (Session Initiation Protocol) là một giao thức báo hiệu được sử dụng để thiết lập các phiên trong mạng IP, một phiên có thể đơn giản
là một cuộc gọi điện thoại 2 chiều, một thông báo danh sách các tin nhắn hoặc một hội nghị sử dụng truyền thông đa chiều
1.2 SIP đem lại ba năng lực chính cho mạng viễn thông
- Thứ nhất, nó kích thích sự phát triển của các mô hình ứng dụng và dịch vụ dựatrên web Đây là một điều hết sức thuật lợi cho nhà cung cấp dịch vụ do có thể sửdụng một nguồn tài nguyên dồi dào các công cụ sẵn có, đồng thời cũng thuận lợiđối với người sử dụng khi người sử dụng đã quen thuộc với kỹ thuật web và nó
Trang 6cũng đã được triên khai trên phần lớn các thiết bị thông minh ngày nay Điều nàytăng cường khả năng cung cấp các dịch vụ mới một cách nhanh chóng.
- Năng lực thứ hai là khả năng mở rộng, do SIP là giao thức báo hiệu đồng cấp và
có tính phân bố cao Khác với các giao thức báo hiệu truyền thống thường có tính
xử lý tập trung cao, điển hình là SS7, trong đó hoạt động của nó tập trung tại một
số điểm báo hiệu trong một cấu trúc mạng báo hiệu phức tạp; các phần tử của SIPphân tán đến tận biên của mạng và được nhúng tới tận các điểm đầu cuối
- Thứ ba là khả năng phổ cập của SIP Được phát triển bởi IETF, SIP kế thừa cácđặc điểm của hai giao thức Internet đã được phát triển rất phổ biến: đó là HyperText Transport Protocol (HTTP) sử dụng cho Web và Simple Mail TransportProtocol (SMTP) sử dụng cho e-mail Dựa vào các nguyên tắc có được từ môitrường IP, SIP được thiết kế là giao thức độc lập với ứng dụng, rất mềm dẻo và cókhả năng áp dụng trong nhiều môi trường khác nhau và cung cấp các dịch vụ đadạng
SIP là giao thức điều khiển báo hiệu thuộc lớp ứng dụng.
Ưu điểm chính của SIP so với các phương thức báo hiệu khác là cung cấp một sựmềm dẻo Nó được thiết kế nhanh và đơn giản
Ý tưởng đằng sau SIP là cung cấp phương tiện đơn giản, nhẹ nhàng cho việc tạo
và kết thúc các kết nối truyền thông tương tác theo thời gian thực trên mạng IP; chủyếu cho thoại và cho cả hội đàm qua video, chat, trò chơi và thậm chí cả chia sẻ ứngdụng
1.3 Sự phát triển của SIP
SIP được phát triển bởi SIP working Group trong IETF Phiên bản đầu tiên đượcban hành vào 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 theo IETF 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 theoRFC 3261 Từ khi SIP được công bố, hàng trăm nhà sản xuất đã bắt đầu bán ra trêntoàn cầu máy chủ và điện thoại có tính năng SIP Một điều đáng lưu ý là Microsoftcũng đã hỗ trợ sẵn cho SIP trong Windows XP
Để thực hiện chức năng điều khiển phiên, SIP hỗ trợ 5 chức năng sau:
Trang 7- Định vị người dùng (User Location) : Xác định vị trí thiết bị đầu cuối khách
hàng
- Năng lực người dùng (User capabilities): Xác định phương tiện và các thông
số được sử dụng
- Khả dụng người dùng (User availability): Xác định trạng thái và tính sẵn sàng
của thuê bao bị gọi để bắt đầu thiết lập đường truyền
- Thiết lập phiên (session setup): Thiết lập các thông số của phiên cho cả thuê
bao chủ gọi và thuê bao bị gọi
- Quản lý phiên (Session management): Tạo, kết thúc, và sửa đổi phiên.
SIP là một phần trong bộ giao thức chuẩn cho truyền dòng tin đa phương thức doIETF khuyến nghị như RSVP (giao thức giữ trước tài nguyên), RTP (giao thức truyềntải theo thời gian thực), RTCP (giao thức điều khiển truyền tải thời gian thực), SAP(giao thức thông báo phiên), SDP (giao thức mô tả phiên) SIP không phải là một giaothức hoạt động độc lập
Vị trí của SIP trong ngăn xếp giao thức đa phương tiện: SIP là một giao thứcthuộc lớp ứng dụng trong mô hình TCP/IP
Báo hiệu Phương tiện Tiện ích
Hình 1.3 SIP trong mô hình IP/TCP
1.4 Một số khái niệm trong SIP
Cuộc gọi (call): một cuộc gọi gồm tất cả các thành viên trong phiên được mờibởi một tài nguyên chung
Trang 8 Client: là một chương trình ứng dụng gửi đi những yêu cầu SIP Client có thểảnh hưởng trực tiếp hoặc không đến người sử dụng Client được chứa trong cácProxy và UA (Uers Agent).
Hội nghị (Conference): hội nghị là một phiên đa phương tiện Một hội nghị cóthể không có hoặc có nhiều thành viên và bao gồm các trường hợp như hội nghị
đa phương, thoại hai thành viên
Đoạn thoại (dialog): một đoạn giữa các UA có quan hệ “ngang hàng” và nóđược duy trì trong một khoảng thời gian Một đoạn thoại được thiết lập bởi cácbản tin SIP, chẳng hạn như 2xx đáp ứng cho yêu cầu INVITE (Trong RFC
2543 thì nó chính là Call leg: Call leg được nhận biết bởi sự kết hợp của
Tìm kiếm song song (Parallel search): trong một quá trình tìm kiếm song song,một proxy đưa ra một vài yêu cầu tới người dùng hiện tại trong khi nhận mộtyêu cầu đến
Đáp ứng tạm thời (provisional respone): đáp ứng tạm thời là đáp ứng đượcServer dùng để thông báo tiến trình gọi nhưng chưa kết thúc một phiên giaodịch SIP, đáp ứng 1xx là đáp ứng tạm thời
Server: là một chương trình ứng dụng có nhiệm vụ nhận các yêu cầu hợp lệ từcác dịch vụ và gửi trả lại các đáp ứng Server có thể là Proxy, Redirect, UAS,Registrars
Phiên (session) : theo đặc tả của SDP thì một phiên đa truyền thông là tập hợpnhững người gửi và nhận cùng với dòng dữ liệu từ nơi gửi đến nơi 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 địachỉ và địa chỉ các phần tử trong trường nguồn
Giao dịch SIP (SIP transaction): giao dịch SIP là quá trình xảy ra giữa mộtClient và một Server gồm tất cả các bản tin từ yêu cầu đầu tiên gửi đi từ clientđến server cho đến đáp ứng kết thúc từ Server gửi trả lại Client Nó được nhậnbiết bởi số thứ tự CSeq Yêu cầu ACK có cùng số CSeq với yêu cầu INVITEtương ứng nhưng chứa một giao dịch của riêng nó
Bản tin: dữ liệu gửi giữa các phần tử SIP, nó như là một phần của giao thức Cóhai loại bản tin đó là bản tin yêu cầu và bản tin đáp ứng
Trang 9 Yêu cầu: là một bản tin SIP được gửi từ client tới server nhằm mục đích yêucầu hoạt động.
Đáp ứng: là bản tin SIP được gửi từ server tới client, nó chỉ ra trạng thái củayêu cầu gửi từ client tới server
Proxy hướng ra: một proxy mà nhận yêu cầu từ một client Thông thường, UAcấu hình với proxy hướng ra, hoặc là nó có thể học thông qua việc cấu hình tựđộng
Proxy, Proxy Server: nó là phần tử trung gian, hoạt động giống như là server vàclient
Stateful Proxy: là proxy có duy trì trạng thái giao dịch client và server trong quátrình xử lý yêu cầu
Stateless Proxy: là proxy mà không duy trì trạng thái giao dịch client và serverkhi nó xử lý yêu cầu
Redirect Server: máy chủ chuyển tiếp, nó là UAS và phát các đáp ứng 3xx đáplại các yêu cầu mà nó nhận được
TU (Transaction User): giao dịch người dùng là quá trình xử lý lớp giao thức
mà nằm trên lớp giao dịch
UAC (User Agent Client): là thực thể mà tạo yêu cầu mới, và sau đó dùng cơcấu trạng thái giao dịch client để gửi yêu cầu
UAS (User Agent Server): là thực thể mạng mà phát đáp ứng trả lời yêu cầuSIP Đáp ứng có thể chấp nhận, từ chối, chuyển tiếp yêu cầu
Trang 10Phần II NỘI DUNG 2.1 Các Thành phần của SIP
Giao thức SIP gồm hai thành phần chính là:
- Đại lý trạm người dùng (user agent )
- Máy chủ mạng (Network Server )
Hình 2.1: Cấu trúc của SIP
2.1.1 User Agent (UA)
- User Agent ( UA) là một hệ thống cuối cùng hoạt động trên nhân danh của
người dùng, User Agent phải có khả năng thiết lập một session của phương tiện này
Trang 11với các user agent khác UA bao gồm User Agent Client (UAC) khởi tạo cuộc gọi và User Agent Server (USA) trả lời cuộc gọi.
- User Agent (UA) có thể là máy điện thoại SIP hoặc máy tính chạy phần mềm
đầu cuối SIP ( Điện thoại SIP giống như Điện thoại VoIP hoặc điện thoại mềm,đây là các đ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 SIP chạy trê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 qua internet thay vì hệ thống PSTN truyền thống, điện thoại SIP 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ó micrô hoặc card âm thanh Ngoài ra, cần phải kết nối băng thông rộng và kết nối với nhà cung cấp VOIP hoặc máy chủ SIP)
Hình 2.2.1 Sơ đồ User Agent
2.1.2 Máy chủ mạng (Network Server )
Máy chủ mạng bao gồm:
2.1.2.1 Máy chủ ủy quyền (Proxy server) : là một chương trình trung gian, hoạt
động như là một server và một client cho mục đích tạo các yêu cầu thay mặt cho các client khác Các yêu cầu được phục vụ bên trong hoặc truyền chúng đến các server khác Một proxy có thể dịch và nếu cần thiết có thể tạo lại các bản tin yêu cầu SIP trước khi chuyển chúng đến server khác hoặc một UA Trong trường hợp này trường Via trong bản tin đáp ứng, yêu cầu chỉ ra các proxy trung gian tham gia vào tiến trình
xử lý yêu cầu
Trang 122.1.2.2 Máy chủ định vị (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 thuê bao bị gọi cho các phần mềm máy chủ ủy quyền và máy chủ chuyển đổi địa chỉ
2.1.2.3 Máy chủ chuyển đổi địa chỉ (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 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
2.1.2.4 Máy chủ đăng ký (Register Server): là phần mềm nhận các yêu cầu
đăng ký,trong nhiều trường hợp máy chủ đăng ký đảm nhiệm luôn một số chức năng
an ninh như xác nhận người sử dụng Thông thường máy chủ đăng ký được cài đặt cùng với máy chủ ủy quyền và máy chủ hay địa chỉ hoặc 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 máy chủ Nếu đầu cuối cần thông báo cho máy chủ về địa điểm của mình thì bản tin REGISTER cũng đượ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ỳ
2.2 Địa chỉ SIP
Địa chỉ SIP thường là URI với giản đồ sip, hoặc là sips được sử dụng trong một
số trường header như là To, From và Contact để chỉ ra đích SIP URI chứa giản đồ
“sip” với dấu ‘:’, sau đó sẽ là địa chỉ có dạng username@host hoặc là địa chỉ IPv4, tiếptheo đó là dấu ‘:’ sau đó là port number, và sau đó là ‘;’ và các thông số của URI đượcphân cách bởi dấu ‘;’
Thí dụ: sip: lop.h09vt9@transform.org: 5060; transport=udp; user=ip; method =INVITE; ttl =1; maddr =240.101.102.103
Một số SIP URI, chẳng hạn như REGISTER, Request-URI không có
“username”, nhưng nó bắt đầu với host hoặc là địa chỉ IPv4 Trong thí dụ trên, số cổng
là 5060 là cổng dành cho SIP Với SIP URI nếu như không có số cổng, thì nó giả định
là 5060 Với SIPS URI cổng được giả định là 5061 Trong thí dụ trên thông số truyềntải “transport” là UDP được sử dụng Các thông số transport khác có thể được dùng làTCP, TLS
Thông số user được sử dụng để xác định đối tượng được dùng của URI Khikhông có mặt thông số này, thì nó có giá trị mặc định là “ip”.Nếu thông số user =phone, thì nó chỉ thị giá trị là số điện thoại Thông số này không được sử dụng để
Trang 13phỏng đoán với các đặc điểm hoặc khả năng của UA Nếu user = phone thì URI trongSIP lúc này sẽ là tel URI (thí dụ tel URI, tel: +84906264755).
Thông số method được sử dụng để chỉ thị phương thức được sử dụng Giá trị mặcđịnh là INVITE Thông số này không có trong các trường header To và From, nhưng
mà có thể được sử dụng trong header Contact để đăng kí
Với thông số ttl (time-to-live), nó chỉ được sử dụng nếu như thông số maddrchứa địa chỉ multicast và thông số truyền tải chứa UDP Giá trị mặc định là 1 Giá trịnày có nghĩa là phiên multicast
Thông số maddr thường chứa địa chỉ multicast khi mà các yêu cầu có thể đượcchuyển hướng Tuy nhiên nó cũng có thể chứa địa chỉ unicast của một server khác đểyêu cầu
Giản đồ sips URI có cấu trúc giống như sip URI nhưng nó bắt đầu với tên giảnđồ là sips Chú ý sips URI có yêu cầu bảo mật cao hơn sip URI, thông số transport củasips URI luôn có giá trị là tls Với sips URI, với lớp truyền tải TLS được sử dụng l àend-to-end cho đường truyền SIP
2.3 Bản tin SIP
SIP là giao thức dạng TEXT sử dụng bộ kí tự UTF-8 Bản tin SIP có thể chia ralàm 2 loại chính là: yêu cầu và đáp ứng Bản tin yêu cầu có 6 loại, được khai báo trongtrường thông số chỉ thị (Method) Bản tin đáp ứng được phân theo lớp, nó có thông số
mã trạng thái (Status Code) và ta có thể xem các loại bản tin
2.3.1 Cấu trúc bản tin SIP
Bản tin SIP gồm nhiều dòng text, mỗi dòng kết thúc bằng một kí tự CRLF(Carriage-Return Line-Feed: hết dòng bắt đầu dòng mới) và phải lưu ý rằng dòng trốngvẫn phải có để ngăn cách phần tiêu đề và thân của bản tin ngay cả khi phần thân bảntin là rỗng Cả bản tin yêu cầu và đáp ứng đều sử dụng chung một định dạng cơ bảnđược quy định trong RFC 3261 với cấu trúc gồm một dòng bắt đầu (start - line), một
số trường header (tiêu đề) và và một phần thân bản tin tùy chọn
Bản tin SIP có khuôn dạng như sau:
Trang 14Dòng bắt đầu
Header 1: Giá trị header 1 Header 2: Giá trị header 2 Header 3: Giá trị header 3 Header 4: Giá trị header 4
2.3.2 Các bản tin yêu cầu
Các bản tin SIP được phân biệt với nhau dựa vào dòng tiêu đề (Start-line).Trong đó, các bản tin yêu cầu có dòng khởi đầu là một dòng yêu cầu Dòng này chứatên phương thức (Method), Request–URI, và phiên bản giao thức Các thành phầnđược ngăn cách bằng một kí tự trống (SP: space)
Khuôn dạng bản tin yêu cầu:
Bản tin yêu cầu = Dòng yêu cầu
*header yêu cầu
CRLF [ thân bản tin ]Trong đó:
Dòng yêu cầu = Method SP Request-URI SP SIP-Version CRLF
Bảng phân loại các bản tin yêu cầu:
Trang 15INVITE 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 bản tin này khẳng định máy trạm đã nhận được bản tin
trả lời bản tin INVITEBYE Yêu cầu kết thúc phiên
CANCEL Huỷ yêu cầu đang 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ý OPTIONS 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
2.3.2.1 Method (Chỉ thị)
SIP định nghĩa 6 chỉ thị chính đó là: REGISTER, INVITE, ACK, CANCEL,OPTIONS REGISTER để đăng kí thông tin liên lạc, INVITE, ACK và CANCEL đểthiết lập phiên, BYE để kết thúc phiên, và OPTION để đòi hỏi về khả năng của SIPServer
i.INVITE
Chỉ thị INVITE được dùng để thiết lập phiên phương tiện giữa các UA Trả lờiINVITE luôn luôn được thông báo với chỉ thị ACK Một bản tin INVITE thường cóphần thân bản tin chứa thông tin của người gọi Thân bản tin cũng có thể chứa cácthông phiên khác như là QoS hoặc là thông tin bảo mật Nếu INVITE không chứathông tin phương tiện UAC, thì ACK chứa thông tin phương tiện của UAC Nếu thôngtin phương tiện trong ACK không được chấp nhận, thì phía bị gọi sẽ gửi bản tin BYE
để hủy phiên CANCEL không được gửi vì phiên đã sẵn sàng để thiết lập Một phiênphương tiện được xem như là đã thiết lập khi mà các bản tin INVITE, 200 OK, vàACK đã trao đổi giữa UAC và UAS Bản tin INVITE thành công sẽ thiết lập thoạigiữa hai UA, nó kết thúc khi bản tin BYE được gửi bởi một trong hai bên để kết thúcphiên
UAC khởi tạo INVITE để thiết lập thoại tạo ra một Call-ID mà được sử dụng trong
Trang 16địa chỉ remote(địa chỉ xa) và local(địa chỉ nội bộ) Nhãn From nằm trong INVITE, vàUAS tính đến nhãn To trong bất kỳ đáp ứng nào Nhãn To trong 200 OK (báo yêu cầuthành công) đáp trả INVITE được sử dụng trong trường header To của ACK, và tất cả
các yêu cầu sau trong thoại Việc kết hợp các nhãn To, From, và Call-ID để nhận dạng
cho cho thoại
UAS INVITE
UAC
180 Trying
100 Trying
Media session ACK
200 OK
sdp UAC sdp UAS
Hình 2.3.2 Thí dụ đơn giản về thiết lập phiên SIPINVITE được gửi cho một cho một đoạn thoại đang tồn tại với cùng Call-ID
giống như INVITE ban đầu và chứa cùng cùng nhãn To và From Đôi khi được gọi là
re-INVITE, yêu cầu để thay đổi các đặc tính hoặc “refresh” (làm mới) trạng thái củathoại CSeq điều khiển chuỗi số được tăng do đó UAS có thể phân biệt re-INVITE củaINVITE gốc
Nếu INVITE bị từ chối hoặc xảy ra bất kỳ lỗi nào, phiên tiếp tục như thể INVITE chưa từng được gửi Một re-INVITE không được gửi bởi UAC cho tới khiđáp ứng kết thúc cho INVITE ban đầu được nhận Ngoài ra còn có trường hợp khi mà
re-2 UA đồng thời gửi re-INVITE cho nhau Nó có thể được xử lý bằng cách gửi headerRetry-After Trường hợp này được gọi là xung đột trong thoại, và xảy ra khi mà cả haiđầu cuối của cùng nhóm trung kế bắt tín hiệu của cùng trung kế tại cùng thời điểm
Header Expires trong INVITE cho UAS biết yêu cầu của cuộc gọi tồn tại trongbao lâu Thí dụ, UAS có thể loại bỏ và không đáp trả yêu cầu INVITE được hiển thịtrong suốt quá trình chỉ định trong header Expires Một phiên được thiết lập, header
Expires không có ý nghĩa, header này chỉ có ý nghĩa trong quá trình thiết lập phiên.
Trang 17Các trường header bắt buộc phải có trong một yêu cầu INVITE đó là: Call-ID,CSeq, From, To, Via, Contact, Max-Forwards Thêm vào đó, yêu cầu này chứa thêmheader Subject tùy chọn.
ii.ACK
Chỉ thị ACK được sử dụng để báo nhận đáp ứng kết thúc cho yêu cầu INVITE
Nó không được dùng để thông báo cho các yêu cầu khác Đáp ứng kết thúc được xácđịnh như là 2xx, 3xx, 4xx, 5xx, 6xx
Một ACK có thể chứa thân bản tin có kiểu application/sdp Điều này được phépnếu như yêu cầu INVITE ban đầu không chứa thân bản tin SDP Nếu như INVITE đãchứa thân bản tin, ACK có thể không chứa thân bản tin ACK có thể không được sửdụng để thay đổi sự mô tả phương tiện mà đã được gửi trong INVITE ban đầu; bản tinre-INVITE sẽ được sử dụng trong trường hợp này SDP trong ACK được sử dụngtrong một số kịch bản phối hợp với các giao thức khác, trong trường hợp mà các đặcđiểm phương tiện có thể không được biết khi mà INVITE ban đầu được khởi tạo vàgửi
Với đáp ứng 2xx, ACK là “toàn trình” (end-to-end), nhưng đối với tất cả cácđáp ứng kết thúc khác, nó được thực hiện theo kiểu “nhảy bước” (hop-by-hop) khi cómặt stateful proxy Đặc tính end-to-end của ACK với đáp ứng 2xx cho phép thân bảntin được truyền Một ACK khởi tạo trong báo nhận kiểu hop-by-hop sẽ chỉ chứa mộtheader Via với địa chỉ của proxy server mà làm phát sinh ACK Sự khác nhau giữa báonhận hop-by-hop với đáp ứng báo nhận end-to-end được minh họa trong hình 2.3.3.Một stateful proxy nhận bản tin ACK phải xác định ACK sẽ được chuyển haykhông trên luồng về tới proxy hay UA khác hay không Có nghĩa là: ACK theo kiểuhop-by-hop hay end-to-end Điều này được thực hiện bằng cách so sánh branch ID(sốnhận dạng nhánh) với một branch ID chờ xử lý Nếu kết quả là không chính xác, ACKđược ủy quyền chuyển tới UAS ACK trong bước này không được proxy chuyển tiếp Các trường header bắt buộc trong yêu cầu ACK là: Call-ID, CSeq, From, To, Via,Max-Forwards
iii.BYE
Chỉ thị BYE được sử dụng để kết thúc một phiên truyền thông đã được thiếtlập Một phiên được coi là đã được thiết lập, khi mà một INVITE đã nhận đáp ứng báothành công (2xx) hoặc một ACK đã được gửi Chỉ thị BYE chỉ được gửi bởi các UA