Nghiên cứu giao thức khởi tạo phiên SIP trong mạng NGN - Chương 3 - Pdf 99

Đồ án tốt nghiệp đại học Chơng III. Giao thức khởi tạo phiên SIP
CHƯƠNG III
GIAO thức khởi tạo phiên sip
3.1 Giới thiệu giao thức SIP
3.1.1 Chức năng của SIP
SIP là một giao thức điều khiển tầng ứng dụng có thể thiết lập, duy trì và giải tỏa
các cuộc gọi hoặc các phiên truyền thông. Các phiên truyền thông có thể là điện thoại
hội nghị, học từ xa, điện thoại Internet và các ứng dụng tơng tự khác. SIP có thể đem
lại cho các thành viên cả các phiên đơn hớng và đa hớng (đơn phát hoặc đa phát). Ngời
bắt đầu không cần thiết phải là một thành viên của phiên truyền thông. Phơng tiện và
các thành viên có thể bổ sung vào phiên hiện tại. SIP cũng có thể đợc dùng để bắt đầu
các phiên cũng nh mời các thành viên tới phiên hội thoại mà đã đợc thông báo và thiết
lập bởi các phơng tiện khác. SIP hỗ trợ các dịch vụ ánh xạ tên và các dịch vụ gián tiếp
một cách trong suốt. Vì thế nó cho phép thi hành một cách đầy đủ các dịch vụ trên
ISDN, mạng thoại thông minh và hỗ trợ các cuộc gọi di động của ngời dùng có địa chỉ
không cố định.
SIP hỗ trợ 5 dịch vụ trong việc thiết lập và kết thúc các phiên truyền thông:
- Định vị ngời dùng: Xác định vị trí của ngời dùng tiến hành hội thoại.
- Năng lực ngời dùng: Xác định các phơng thức (phơng tiện) và các tham số t-
ơng ứng trong hội thoại.
- Xác định những ngời sẵn sàng tham gia hội thoại.
- Thiết lập các tham số cần thiết cho cuộc gọi.
- Điều khiển cuộc gọi: Bao gồm cả quá trình truyền và kết thúc cuộc gọi.
SIP là một phần trong bộ giao thức chuẩn cho truyền dòng tin đa phơng thức do
IETF khuyến nghị nh RSVP ( giao thức giữ trớc tài nguyên ), RTP ( giao thức truyền
tải theo thời gian thực ), RTSP ( giao thức phân phối dòng tin đa phơng thức ), SAP
( giao thức thông báo phiên ), SDF ( giao thức mô tả phiên ). Tuy nhiên SIP hoạt động
độc lập với các giao thức trên.
SIP cũng có thể kết hợp với các giao thức báo hiệu và thiết lập cuộc gọi khác.
Theo cách đó, một hệ thống đầu cuối dùng SIP để xác định địa chỉ hợp lệ của một hệ
thống và giao thức từ một địa chỉ gửi đến là giao thức độc lập. Ví dụ, SIP có thể dùng

các dịch vụ và gửi trả lại các đáp ứng. Server có thể là Proxy, Redirect, UAS,
Registrars.
Session: Theo đặc tả của SDP thì một phiên đa truyền thông là tập hợp nhữ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
Lữ Văn Thắng, D2001VT
57
Đồ án tốt nghiệp đại học Chơng III. Giao thức khởi tạo phiên SIP
định bởi chuỗi các tên User, Session ID, kiểu mạng, kiểu địa chỉ và địa chỉ các
phần tử trong trờng nguồn.
SIP transaction: là quá trình xảy ra giữa một Client 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 cuối
cùng từ Server gửi trả lại Client. Nó đợc nhận biết bởi số thứ tự CSeq. Yêu cầu
ACK có cùng số CSeq với yêu cầu INVITE tơng ứng nhng chứa một giao dịch
của riêng nó.
Upstream: Đáp ứng gửi trực tiếp từ UAS đến UAC.
URL - encoded: Là chuỗi ký tự mã hoá theo chuẩn RFC 1738.
3.1.2.2 Các thành phần của kiến trúc SIP
Xét trên quan điểm khách hàng / phục vụ ( Client /Server ), các thành phần chính
của một hệ thống SIP đợc mô tả bởi hình vẽ sau:

Trong hình trên User Agent là thiết bị đầu cuối trong mạng SIP, có thể là một máy
điện thoại SIP, có thể là máy tính chạy phần mềm đầu cuối SIP.
Proxy Server là phần mềm trung gian hoạt động cả nh server và client để thực hiện
các yêu cầu thay mặt 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 đợc chuyể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.
Lữ Văn Thắng, D2001VT
58
Hình 3.1 Cấu trúc của một hệ thống SIP

nhận các phúc đáp từ Server. Một yêu cầu cùng với những phúc đáp ứng cho những
Lữ Văn Thắng, D2001VT
59
Đồ án tốt nghiệp đại học Chơng III. Giao thức khởi tạo phiên SIP
nhu cầu đó tạo nên một giao dịch SIP. Tất cả các đáp ứng cho một yêu cầu phải chứa
cùng các giá trị trong trờng Call - ID Cseq, To và From. Điều đó làm cho các đáp ứng
phù hợp với các yêu cầu. Mỗi cuộc gọi trong SIP đợc định danh bởi một bộ định danh
cuộc gọi ( Call - ID ).
Yêu cầu đợc gửi đi từ đâu ( From ) tới đâu ( To ). Trờng From và To đều theo
khuôn dạng SIP - URL. Trờng CSeq lu trữ thông tin về phơng thức sử dụng trong
phiên, có dạng:
CSeq="CSeq": "DIGIT Method"
DIGIT là số nguyên không dấu 32 bit.
Nếu giao thức TCP đợc sử dụng, các yêu cầu và đáp ứng trong một giao dịch
SIP đơn giản đều đợc truyền qua cùng một kết nối TCP. Một số yêu cầu SIP từ
cùng một khách hàng đến cùng một Server có thể dùng một kiểu nối TCP hoặc
có thể dùng một kiểu kết nối mới cho mỗi yêu cầu.
Nếu khách hàng gửi yêu cầu thông qua giao thức UDP đơn hớng, các đáp ứng
sẽ đợc gửi đến các địa chỉ nằm trong trờng mào đầu "Via" của đáp ứng nếu yêu
cầu đợc gửi qua giao thức UDP đa hớng thì các đáp ứng sẽ đợc đa tới cùng một
điạ chỉ quảng bá và cổng đích. Khuôn dạng bản tin SIP không phụ thuộc vào
giao thức truyền.
3.1.3.3 Lời mời SIP
Một lời mời SIP gồm hai yêu cầu INTIVE và ACK. Yêu cầu INTIVE mời thành
viên tham gia hội thoại khi phía bị gọi đồng ý tham gia, bên gọi xác nhận đã nhận đợc
đáp ứng đó bằng cách gửi một yêu cầu ACK. Nếu phía gọi không muốn mời thành viên
tham gia cuộc gọi nữa nó sẽ gửi yêu cầu BYE thay cho ACK.
Thông điệp INTIVE chứa thành phần mô tả phiên ( SDP ) và phơng thức tiến hành
trao đổi ứng với phiên đó. Với các phiên đa hớng, "mô tả phiên" liệt kê kiểu và khuôn
dạng của các phơng tiện để phân phối cho phiên hội thoại. Với một phiên đơn hớng,

( Location Server ) có thể sử dụng một hay nhiều giao thức nh finger ( RFC1288[17] ),
rwhois (RFC2167[18]), LDAP(RFC1777[19], multicast - based[[20], ... để xác định hệ
thống đầu cuối mà User có thể tới. Một Location Server có thể trả lại vài vị trí mà User
đã đăng kí đồng thời tại nhiều Host hoặc bởi Location Server có lỗi. SIP server sẽ tổng
kết các kết quả để đa ra danh sách các vị trí.
Đối với các loại SIP server thì hoạt động sau khi nhận đợc các vị trí là khác nhau.
Một SIP Redirect Server sẽ trả lại danh sách cho khách hàng với tiêu đề Contact. Một
SIP Proxy Server có thể liên tục thử các địa chỉ cho đến khi cuộc gọi thành công hay
ngời đợc gọi từ chối cuộc gọi với cách thử tuần tự các địa chỉ. Một Proxy Server có thể
thực hiện một dịch vụ "anycast". Nếu Proxy Server gửi một yêu cầu SIP, nó phải bổ
sung thêm địa chỉ của chính nó vào phần đầu danh sách của "forwardes noted" trong
Lữ Văn Thắng, D2001VT
61
Đồ án tốt nghiệp đại học Chơng III. Giao thức khởi tạo phiên SIP
tiêu đề Via. Dấu hiệu Via đảm bảo rằng bản tin trả lời có thể lấy ra từ cùng một đờng
( hớng ). ở hớng đáp ứng, mỗi Host phải gỡ bỏ tiêu đề Via của chính nó, vì thế thông
tin đợc truyền nội bộ sẽ "ẩn " đối với phía bị gọi và mạng bên ngoài. Proxy Server phải
kiểm tra xem nó có phát yêu cầu tới danh sách Host (host listed) chứa trong các tham
số Via rent - by, Via received hay Via - maddr.
3.1.3.5 Thay đổi một phiên hiện tại
Trong một vài trờng hợp cần phải thay đổi các thông số của một phiên hội thoại
hiện tại. Việc đó đợc thực hiện bởi việc phát lại các INTIVE. Các INTIVE đó có cùng
trờng Call - ID nhng có trờng tiêu đề và thân bản tin khác để mang những thông tin
mới. Các bản tin INVITE đó phải có CSeq cao hơn các yêu cầu trớc.
Ví dụ: Có hai thành viên đang hội thoại và muốn có thêm một ngời thứ ba. Một
trong các thành viên sẽ mời thành viên thứ ba tham gia với một địa chỉ "multicast" mới
và đồng thời gửi một bản tin INTIVE đến thành viên thứ hai với trờng miêu tả phiên
multicast nhng có Call - ID cũ.
3.1.4 Các loại bản tin SIP
SIP là giao thức dạng TEXT sử dụng bộ kí tự ISO 10646 trong mã hoá. Điều này

Khuôn dạng bản tin Request:
Request = Request - line ( general - header/Request - header/entity - header )
CLRF
[ message - body ]
Request - line = Method SP Request - URIP SIP - Version CRF
a) Methods (Các chỉ thị)
SIP định nghĩa 6 chỉ thị sau:
Methods = INTIVE/ACK/OPTION/BYE/CANCEL/REGISTER
INTIVE
Chỉ thị INTIVE thông báo rằng User hoặc dịch vụ đợc mời tham gia vào một
phiên hội thoại. Một Server sẽ tự động trả lời một lời mời tham gia hội thoại nếu User
đã sẵn sàng tham gia bằng đáp ứng 200 OK - Respone.
Nếu nh một UA ( User Agent ) nhận đợc một yêu cầu INVITE cho Call leg với số
CSeq cao hơn các INVITE trớc có cùng Call - ID, nó sẽ kiểm tra các từ định danh
Version thì nội dung của phần miêu tả phiên sẽ đợc xem xét nếu nó muốn thay đổi và
UA phải xem xét các trờng tiêu đề cho việc thay đổi. Nếu nh có một sự thay đổi, UA
phải cập nhật những trạng thái nội bộ hoặc những thông tin phát ra nh kết quả của tiêu
đề đó. Nếu miêu tả phiên thay đổi, UAS phải điều chỉnh lại các thông số phiên hội
thoại cho phù hợp sau khi yêu cầu User xác nhận. Chỉ thị này đợc đa ra bởi SIP Proxy,
Redirect Server và UAS cũng nh khách hàng.
Lữ Văn Thắng, D2001VT
63
Đồ án tốt nghiệp đại học Chơng III. Giao thức khởi tạo phiên SIP
ACK
Yêu cầu ACK xác nhận rằng khách hàng đã nhận đợc đáp ứng cuối cùng cho yêu
cầu INVITE ( ACK chỉ sử dụng cho yêu cầu INVITE ). Khi UAC chấp nhận đáp ứng
2xx, tất cả các đáp ứng cuối cùng khác của Proxy đầu tiên hay của UAC đều nhận đợc
trả lời. Trờng Via đợc đa vào Host để phát ra yêu cầu ACK sau khi UAC nhận đợc một
đáp ứng 2xx hoặc Proxy đầu tiên nhận đợc một đáp ứng non - 2xx.
Yêu cầu ACK có thể chứa một thân bản tin ( message body ) với phần miêu tả

gốc ( yêu cầu mà nó muốn huỷ bỏ ). Tuy nhiên để khách hàng phân biệt đợc các đáp
ứng cho CANCEL với các đáp ứng cho yêu cầu gốc thì thành phần CSeq Method sẽ đ-
ợc thiết lập trong CANCEL.
Khi một UAS nhận đợc yêu cầu CANCEL, nó không phải phát ra một đáp ứng
2xx cho yêu cầu huỷ bỏ.
Redirect Server và UAS khi nhận đợc một yêu cầu CANCEL sẽ đáp ứng bằng một
trạng thái là 200 nếu nh tồn tại giao dịch SIP và trạng thái là 481 nếu không tồn tại
giao dịch .
REGISTER
Chỉ thị REGISTER đợc dùng để đăng kí danh sách địa chỉ của ngời dùng trong tr-
ờng tiêu đề To với SIP server. Nh vậy chỉ thị này dùng để đăng kí thông tin ngời dùng.
b) Request - URI
Trờng Request - URI có khuôn dạng theo SIP URL. Nó thông báo cho ngời dùng
hoặc dịch vụ về địa chỉ hiện tại. Khác với trờng To, Request - URI có thể đợc ghi lại
bởi Proxy (máy phục vụ uỷ quyền). Khi sử dụng nh một Request - URI, SIP URL
phải chứa các tham số transport - param, maddr - param, ttl - param và các thành phần
tiêu đề. Một Server khi nhận đợc một SIP URL, địa chỉ SIP với những thành phần đó
sẽ huỷ bỏ chúng trớc khi tiến hành xử lí.
Điển hình là, UAS thiết lập trờng Request - URI và trờng To trong cùng một SIP
URL coi nh không thay đổi trong một khoảng thời gian dài. Tuy nhiên, nếu nh UAC
dành cho phía bị gọi nhiều hớng trực tiếp, từ trờng tiêu đề Contact của một đáp ứng cho
yêu cầu trớc đó, trờng To sẽ vẫn chứa các thông số long - term, địa chỉ "public" trong
khi Request - URI có thể thiết lập các địa chỉ dự phòng. Proxy Server và Redirect
Server dùng những thông tin chứa trong trờng Request - URI và trờng tiêu đề của yêu
cầu để quản lí các yêu cầu và ghi lại trờng Request - URI.
Host - port của Request - URI điển hình phù hợp với một trong các "host name"
của Server nhận. Nếu không, Server phải uỷ quyền cho yêu cầu tới địa chỉ "Indicate"
hoặc trả lại đáp ứng 404 ( not found: không tìm thấy ) nếu nó không muốn hay không
thể thực hiện đợc.
Lữ Văn Thắng, D2001VT

[ message - body ]
Trong đó:
Status - Line = SIP - Version SP status - Code SP Reason - Phrase CRLF
Lữ Văn Thắng, D2001VT
66
Đồ án tốt nghiệp đại học Chơng III. Giao thức khởi tạo phiên SIP
Status - Code là một mã kết quả nguyên gồm 3 digit chỉ ra kết quả của việc cố
gắng hiểu và đáp ứng yêu cầu.
Status - Phrase thì đa ra một bản yêu cầu ngắn theo đúng nguyên văn của Status -
Code. Status - Code dùng cho máy còn Reason - Phrase là dùng cho ngời sử dụng.
Khách hàng không thể yêu cầu hiển thị hay kiểm tra Status - Phrase.
Status - code gồm 3 digit. Digit đầu tiên định nghĩa loại đáp ứng. Hai digit sau
không có vai trò phân loại. Bản SIP /2.0 cho phép 6 giá trị của digit đầu tiên nh sau:
1xx: Informational : Nhận và xử lý yêu cầu
2xx: Success : Thành công
3xx: Redirect : Chuyển tiếp yêu cầu
4xx: Client - Error : Lỗi ngời dùng, cú pháp của yêu cầu lỗi
không thoả mãn Server
5xx: Server - Error : Lỗi máy phục vụ
6xx: Global - Farlure : Yêu cầu không đợc đáp ứng tại mọi Server
Dới đây là ví dụ một số giá trị riêng của 6 digit đầu tiên của Response Code và
Reason Phrase chú thích mã tơng ứng là đáp ứng gì:
Informational = "100" ; Trying
Success = "200" ; OK
Redirection = "300" ; Multiple Choices
Client - Error = "400" ; Bad Request
Server - Error = "500" ; Internal Server Error
Global - Failure = 600 ; Busy Everywhere
Mã đáp ứng SIP có thể mở rộng đợc. Các ứng dụng SIP không yêu cầu phải hiểu
rõ về ý nghĩa của tất cả mã đáp ứng đợc đăng ký mà chỉ cần hiểu các loại mã đáp ứng,

e Content - Encoding
f From
i Call - ID
m Contract
l Content - Length
s Subject
t To
v Via
Client có thể dùng cả tên trờng ngắn và tên trờng dài trong cùng một yêu cầu và
Server cũng chấp nhận điều đó.
Lữ Văn Thắng, D2001VT
68
Đồ án tốt nghiệp đại học Chơng III. Giao thức khởi tạo phiên SIP
3.2 Định nghĩa các trờng tiêu đề và mã trạng thái trong bản tin SIP
3.2.1 Định nghĩa các trờng tiêu đề
Các trờng tiêu đề của SIP giống với các trờng tiêu đề của HTTP về cả cú pháp và
ngữ nghĩa. Các trờng tiêu đề gồm tiêu đề chung, tiêu đề yêu cầu, tiêu đề đáp ứng, tiêu
đề thực thể.
Các trờng tiêu đề yêu cầu và tùy chọn, không dùng đợc cho mỗi chỉ thị đợc liệt kê
trong bảng 3.1.
Trong đó:
o (optional): chỉ ra tùy chọn. Tùy chọn có nghĩa rằng một UA có thể
chứa trờng tiêu đề trong một yêu cầu và đáp ứng và UA có thể bỏ qua tr-
ờng tiêu đề nếu nó tồn tại trong một yêu cầu và đáp ứng.
m (mandatory): bắt buộc. Một trờng tiêu đề yêu cầu bắt buộc phải có
mặt trong một yêu cầu, và trờng tiêu đề phải đợc UAC hiểu trong quá trình
xử lý đáp ứng.
_ (not applicate): không sử dụng đợc. Có nghĩa là các trờng tiêu đề
không đợc tồn tải trong một yêu cầu. Nếu một trờng nào đó có trong yêu
cầu do lỗi thì nó phải đợc UAS bỏ qua trong quá trình nhận yêu cầu.

Accept - Language R - o o o o o
Accept - Language 415 - o o o o o
Alert - Info R am - - - o - -
Allow R o o o o o o
Allow 200 - - - o o o
Allow 405 m m m m m m
Also R - o - - - -
Authorization R o o o o o o
Authorization r o o o o o o
Call - ID gc r m m m m m m
Call - Info g am - - - o o o
Contact R o - - m o o
Contact 1xx - - - o o -
Contact 2xx - - - m o o
Contact 3xx - o - o o o
Bảng 3.1 Tóm tắt các trờng tiêu đề (tiếp)
(1) (2) (3) (4) (5) (6) (7) (8) (9)
Contact 485 - o - o o o
Content - Disposition e o o - o o o
Content - Encoding e o o - o o o
Content - Language e o o o o o o
Content - Length e r m* m* m* m* m* m*
Content - Type e * * - * * *
CSeq gc r m m m m m m
Date g a o o o o o o
Encryption g r o o o o o o
Lữ Văn Thắng, D2001VT
70
Đồ án tốt nghiệp đại học Chơng III. Giao thức khởi tạo phiên SIP
Error - Info R o o o o o o

503,
600,
603
o o o o o o
Route R r o o o o o o
Server r o o o o o o
Subject R - - - o - -
Supported g - o o o o o
Timestamp g o o o o o o
To gc(1) r m m m m m m
Unsupported R o o o o o o
Unsupported 420 o o o o o o
User - Agent g o o o o o o
Via gc acmr m m m m m m
Lữ Văn Thắng, D2001VT
71

Trích đoạn Các trờng tiêu đề yêu cầu Các trờng tiêu đề đáp ứng
Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status