Tải bản đầy đủ (.pdf) (16 trang)

Tìm hiểu tổng quan về giao thức SIP và hệ thống SIP

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (782.41 KB, 16 trang )

1

Tìm hiểu tổng quan về giao thức SIP và hệ thống SIP

1.1 Giới thiệu
Trước hết cần nói giao thức là gì? Giao thức là một hệ thống các quy tắc để trao
đổi tin nhắn trong hoặc giữa các máy tính, điện thoại hoặc các thiết bị kỹ thuật số
khác. Để cho các thiết bị để giao tiếp với nhau, các nhà phát triển phải sử dụng các
chuẩn định dạng được xác định rõ cho trao đổi thông điệp. Một giao thức định nghĩa
cú pháp, ngữ nghĩa, và đồng bộ hóa các thông tin liên lạc. Các giao thức phải được
thỏa thuận trước trước khi các thiết bị trao đổi với nhau. Vì lý do này, các giao thức có
xu hướng phát triển thành tiêu chuẩn, làm cho các nhà cung cấp để tạo ra thiết bị đầu
cuối có thể giao tiếp với nhau dễ dàng hơn.
SIP (viết tắt của Session Initiation Protocol) là một giao thức dùng để quản lý một
phiên truyền thông đa phương tiện như gọi thoại và gọi video. Do đó SIP được sử
dụng trong rất nhiều ứng dụng liên lạc trên môi trường mạng IP, giúp người dùng tiếp
cận những dịch vụ liên lạc khác nhau, kết nối tới bạn bề khi biết địa chỉ liên lạc. SIP là
một trong những giao thức cụ thể mà cho phép thực hiện cuộc gọi VOIP trên đó, hơn
nữa, có thể cài đặt các giao thức khác phục vụ hội nghị video call, nhắn tin và các ứng
dụng khác.
SIP là chuẩn được miêu tả trong RFC 3261 được IETF đưa ra, và được ứng dụng
rất nhiều trong VoIP trong thời gian gần đây và vẫn đang tiếp tục được thay đổi và mở
rộng. Cần nói thêm rằng, SIP chỉ là một giao thức thiết lập, quản lý, hủy phiên
(signaling protocol) chứ không có chức năng truyền dẫn (mã hóa, giải mã, truyền …)
dữ liệu, để truyền được dữ liệu trong quá trình thoại cần phải cài đặt một giao thức
khác (như RTP/RTCP, SRVP, SDP…).
VOIP viết tắt của Voice Over Internet Protocol. VOIP là một khái niệm rộng bao
gồm bất kỳ cuộc gọi điện thoại qua Internet nào, phân biệt với đường dây điện thoại
truyền thống, hay còn gọi là mạng PSTN (Public Switched Telephone Network). Các
thuật ngữ như điện thoại IP, điện thoại Internet, truyền thông qua mạng IP đều gắn liền
với VOIP và cho thấy rằng Internet đang được ứng dụng phổ biến kỹ thuật số truyền


tín hiệu thoại đến các thiết bị đầu cuối, thậm chí là điện thoại qua mạng IP.


1.2

Giao thức SIP và hệ thống SIP

1.2.1 Hệ thống SIP
SIP
SIP là một giao thức điểu khiển trên mạng IP, nằm trên tầng ứng dụng theo mô
hình OSI dùng để:








Định vị đích (user location)
Xác định khả năng (user capability)
Xác định tính sẵn sàng và tham số (user availability)
Mở phiên gọi (call setup)
Quản lý phiên (session management)
Xử lý cuộc gọi (call handing)
Kết thúc phiên (session close)

Cần làm rõ rằng, SIP không định nghĩa toàn bộ giao thức truyền thông, nó chỉ là
giao thức thiết lập phiên, cần được dùng kết hợp với các giao thức khác để thực hiện
các ứng dụng cụ thể như gọi thoại, video hội nghị…


Hình 1: SIP và các giao thức truyền thông.


Như trên hình, một ứng dụng gọi thoại, video call… được xây dựng trên giao thức
thiết lập phiên SIP, trong đó SIP có thể kết hợp với các giao thức khác như RSVP,
RTP, RTCP, SAP, SDP nằm phía trên UDP/IP hoặc TCP/IP trong mô hình OSI.

Kiến trúc hệ thống SIP
Trong SIP, các đối tượng tương tác với nhau gọi chung là User Agents (UA).
Có 2 kiểu UA:
 User Agent Client (UAC): tạo các request và gửi tới các máy chủ (thường
là máy chủ proxy).
 User Agent Server (UAS): nhận các request và tạo và gửi response.
Một UA có thể có cả chức năng của UAC và UAS.

Các clients:
-

Các thiết bị người dùng sử dụng, như softphone chạy trên PC, điện thoại IP…

Các servers:
1. Proxy Server
Có nhiệm vụ chuyển tiếp yêu cầu.
Cụ thể, khi một yêu cầu được gửi từ client, địa chỉ người nhận chưa biết trước, do
đó client sẽ gửi yêu cầu đến một máy chủ proxy mà nó biết, máy chủ này sẽ chuyển
yêu cầu đến máy chủ proxy khác hoặc đến client đích.
2. Redirect Server
Máy chủ chuyển hướng yêu cầu.
Thường dùng khi người nhận đã chuyển vị trí trong mạng, redirect server sẽ khi

địa chỉ URI mới của người nhận vào gói tin response gửi trả lại client gửi, sau đó
client sẽ gửi lại yêu cầu tới URI mới.
3. Registrar


Máy chủ đăng ký vị trí người dùng.
Khi người dùng thay đổi vị trí trong mạng, địa chỉ của người dùng phải được cập
nhật về máy chủ registrar.
4. Location Server
Máy chủ lưu trữ dữ liệu các địa chỉ người dùng được đăng ký qua registrar.

1.2.2 Giao thức SIP.
Cấu trúc gói tin SIP
Hoạt động của SIP dựa trên việc trao đổi các thông điệp bản tin giữa các thực thể
trong hệ thống, các bản tin dưới dạng văn bản text tuân theo định dạng RFC 2822
tương tự HTTP.
Địa chỉ SIP có dạng:
sip: user@domain
Trong đó, user: Tên hoặc số điện thoại.
domain: Tên miền hoặc địa chỉ IP.
Ví dụ : SIP:
SIP message được chia làm hai kiểu:
 Request: gửi từ client đến server và xác định các hoạt động từ client
 Respone: gửi từ server cho client, và cung cấp các trạng thái của request đó.
Sip request
Các request thường dùng
Method

Description


INVITE

Được sử dụng để thiết lập một phiên SIP. thông số phiên được
đàm phán.

REGISTER

Xác minh User Agent và cung cấp một vị trí hiện tại


BYE

Kết thúc một phiên mở cửa.

ACK

Xác nhận response thành công cho INVITE. Bước thứ ba
trong bắt tay 3 bước.

CANCEL

Hủy bỏ một yêu cầu mở

OPTIONS

Truy vấn các khả năng của máy chủ.
Bảng 1: Các loại SIP-request

Extension Methods
INFO


Cung cấp giữa thông tin giữa cuộc gọi liên quan đến
phiên. Nó Hiếm khi được sử dụng.

MESSAGE

Được sử dụng để chuyển tin nhắn tức thì.

NOTIFY

Công bố kết quả của các sự kiện. Sử dụng kết hợp với
các yêu cầu đăng ký.

PRACK

Một tạm ứng ACKnowledgment tạm thời.

PUBLISH

Publish thông tin trạng thái. Được sử dụng cho các
dịch vụ hiện diện Instant Messaging.

REFER

Cơ chế để chuyển một requestt đến một người nào đó
thích hợp hơn để nhận nó.

SUBSCRIBE

Được sử dụng để nhận request PUBLISH hoặc

NOTIFY trong tương lai.

UPDATE

Sửa đổi các thông số phiên vào giữa cuộc gọi.

SIP Response


SIP Response luôn gửi trả lời một request. Nó truyền đạt thông tin cập nhật tình
trạng, xác nhận, hướng dẫn, và các mã lỗi trở lại User Agent Client gửi yêu cầu.
Response được mô tả bằng một mã gồm 3 chữ số:

1xx Provisional

Xác nhận nhận được request và chờ xử lý được tiếp tục.
Phản ứng tạm thời tới INVITEs không bao giờ ACKed.

2xx Success

Các yêu cầu được nhận, xử lý, và được chấp nhận.

3xx Redirection

Cung cấp thông tin vị trí hoặc dịch vụ thay thế để thử.

4xx Request Failure

Các yêu cầu có lỗi hay không thể xử lý bởi máy chủ.


5xx Server Failure

Server là không thể thực hiện yêu cầu vì một lỗi nội bộ.

6xx Global Failure

Không tìm thấy dịch vụ có thể để thực hiện yêu cầu.

Cụ thể:
100

Trying

The next hop received the request.

180

Ringing

Attempting to alert the user.

182

Queued

Temporarily unavailable and request is
in a queue (not rejected).

200


OK

The request has succeeded.

301

Moved Permanently

User is no longer available at the
address given in the Request URI.

302

Moved Temporarily

Retry the request at a new address given
in the Contact header.

400

Bad Request

Could not understand or process
correctly the request.

401

Unauthorised

The request either failed authentication

or needs more information.

403

Forbidden

The server is refusing to process the


request. Do not retry.
404

Not Found

The server cannot identify the user in its
domain.

408

Request Timeout

The server could not process the request
in a reasonable time.

415

Unsupported Media

The format is not supported by the
server.


480

Temporarily Unavailable

The called party is currently
unavailable.

485

Ambiguous

The Request URI is ambiguous.

486

Busy Here

The called party is currently not willing
or able to take the call.

500

Server Internal Error

The server encountered an unexpected
condition.

513


Message Too Large

The message length exceeded a
determined limit.

603

Decline

The user explicitly refused to accept the
request.

Bảng 2: Các loại SIP-response.
Cấu trúc một gói tin SIP
SIP được xây dựng trên tầng ứng dụng, nằm trên TCP/IP và UDP/IP, nên một
thông điệp SIP được đóng gói vào một gói IP và truyền qua mạng. Cấu trúc thông điệp
như sau.
Mỗi thông điệp SIP bắt đầu với một Start-Line, theo sau là một chuỗi headers, và
tách ra khỏi body thông qua một chuỗi carriage-return line-feed.


Hình 1: Cấu trúc gói tin SIP.
Giải thích:
Start Line
Với SIP Request sẽ là Request-Line, bao gồm: Method, URI, và kết thúc với phiên
bản giao thức ("SIP / 2.0"). Ví dụ: INVITE SIP/2.0
Với SIP Response sẽ là Status-Line, bắt đầu với phiên bản của giao thức, theo sau
là một mã Response, cuối cùng sẽ là tên của mã Response. Ví dụ: SIP/2.0 200 OK
Header
Mỗi tiêu đề có thể có một hoặc nhiều tham số dấu chấm phẩy tách nối vào giá trị

Format:
header-name: header-value(;parameter-name=parameter-value)*[CRLF]
Mỗi tiêu đề có thể được tách ra trên các dòng khác nhau bằng cách sử dụng chuỗi
[CRLF] (xuống dòng). Đặc biệt, nhiều tiêu đề có cùng header-name (ví dụ: Contact)
có thể xuất hiện trên các dòng riêng biệt, hoặc, có thể được đặt trên cùng một dòng
cách nhau bởi dấu phẩy. Header bao gồm:
-

Via:

Ví dụ: Via: SIP/2.0/UDP pc33.server1.com;branch=z9hG4bK776asdhds MaxForwards: 70


Gồm địa chỉ trung gian và Max-Forwards: Dùng để hạn chế số lượng hop rằng
request này có thể mất trước khi đến người nhận.
-

To:
Ví dụ: To: user2 <sip:>
Chứa địa chỉ người nhận.

-

From:
From: user1 <sip:>;tag=1928301774

Tag mà là một chuỗi giả ngẫu nhiên chèn vào bởi các ứng dụng SIP. Tác dụng như
một định danh của người gọi trong hộp thoại.
-


Call-ID:
Call-ID:

Nó là một ID global của cuộc gọi tạo ra như là sự kết hợp của một chuỗi giả ngẫu
nhiên và địa chỉ IP của phần mềm thoại.
-

CSeq:
CSeq: 314159 INVITE

Chứa một số nguyên và tên của method. Khi transaction bắt đầu, thông điệp đầu
tiên được đưa ra một số CSeq ngẫu nhiên. Sau đó nó được tăng bởi một với mỗi tin
nhắn mới. Nó được sử dụng để phát hiện một tin nhắn không được cung cấp hoặc sự
chuyển tin không theo thứ tự.
-

Contact:
Contact: sip:

Nó chứa tên SIP hoặc SIP URI là 1 direct route để tới user1. Nó chứa tên người
dùng và miền đầy đủ và cũng có thể có địa chỉ IP.
Trường Via sử dụng để gửi các đáp ứng 1 yêu cầu. Trường Contact được sử dụng
để gửi các yêu cầu trong tương lai. Đó là lý do tại sao response 200 OK từ user2 tới
user1 thông qua proxy. Nhưng khi user2 tạo ra một request BYE (một request mới và
không phải là một response cho INVITE), nó đi trực tiếp để User1 bỏ qua proxy.


-

Content-Type:

Content-Type: application/sdp
Mô tả kiểu body, có nhiều loại như text, audio, application, …

-

Content-Length:
Content-Length: 142 Số byte có trong nội dung body.

SDP là viết tắt của Session Description Protocol. Nó được sử dụng để mô tả
multimedia sessions dưới một định dạng được hiểu bởi những người tham gia qua
mạng. Tùy thuộc vào mô tả này mà các phe quyết định có tham gia một cuộc họp hoặc
khi nào tham gia hoặc làm thế nào để tham gia một hội nghị.
Separator:
Chuỗi CRLF= Carriage Return + Line Feed để phân tách Header và Body.
Ví dụ gói tin SIP


Hình 3: Gói tin SIP ví dụ.
(1) (2) là địa chỉ IP/Port gửi và nhận của gói tin IP.
Phần header đã được giải thích bên trên, sau đây ta chú ý đến phần body của thông
điệp.
(7) Định nghĩa cấu trúc SDP (Session Description Protocol).
(8) Địa chỉ IP của SIP client tạo message.
(9) Địa chỉ IP mà SIP client cần kết nối đến để tạo phiên RTP để thực hiện gọi
thoại,…
(10) Quy định các tham số như port, codecs… để thiết lập RTP. Thông tin quan
trọng nhất là audio 33428 RTP/AVP.
 audio quy định đây là cuộc gọi âm thanh (audio).
 33438 là port kết nối RTP.
 RTP/AVP là giao thức được lựa chọn.


1.2.3 Truyền dữ liệu âm thanh
SIP có thể dùng kết hợp với nhiều giao thức khác nhau để truyền tín hiệu âm
thanh, trong khuôn khổ báo cáo này chỉ xét giao thức RTP.
RTP là một giao thức tầng ứng dụng dùng để truyền dữ liệu thời gian thực giữa hai
bên, hỗ trợ tạo dựng lại dữ liệu gốc kể cả khi packets đến không theo thứ tự hoặc bị
trễ. Do đó, RTP rất phù hợp truyền dữ liệu theo thời gian thực, điển hình là các dữ liệu
đa phương tiên như audio, video, cho nên cũng rất phù hợp kết hợp với SIP để truyền
tiếng nói thoại. RTP thường sử dụng UDP/IP.
Hoạt động của IP phone trong truyền dữ liệu âm thanh:
Giả sử IP phone đã sử dụng giao thức SIP để kết nối và biết các tham số để thiết
lập RTP (như trình bày phần trước).
(1) Âm thanh được microphone được lấy mẫu, sau đó được xử lý, nén và đóng gói
vào các gói RTP. Thông thường âm thanh được đóng gói 20ms/RTP packet.


(2) Mỗi gói RTP được đóng gói vào một gói UDP và được truyền tới đích qua
mạng.

Hình 4: SIP và RTP server

Hình 5: SIP, SDP và RTP.

Có thể thấy RTP server có thể nắm ngoài các SIP server, địa chỉ IP và port để kết
nối tới RTP server được quy định trong thông điệp SIP, và các SIP client sau khi thiết
lập phiên thì trao đổi thông điệp qua RTP server.
Tóm lại, SIP thiết lập phiên gọi, và gói tin SIP chứ SDP định nghĩa các thông tin
để thiết lập phiên truyền dòng RTP giữa các client.

1.2.4 Thiết lập phiên và thực hiện cuộc gọi

Để hiểu rõ hơn về hoạt động của SIP, ta xét trường hợp cụ thể như sau.
Hai thiết bị IP phone A và B muốn gọi thoại trên mạng Internet, A và B đều đã
được đăng ký với tổng đài SIP như hình vẽ, gồm các Proxy Server, RedirectServer và
Location Server.
Để tiện theo dõi, kí hiệu người dùng A, B là A và B, Proxy server A, B là PA, PB.


Hình 6: Cấu trúc hệ thống SIP và thiết lập kết nối.

(1) A muốn liên lạc với B qua IP Phone. Để kết nối qua mạng Internet, A cần biết
địa chỉ IP của B, nhưng nhờ giao thức SIP, A chỉ cần biết ID của B. A gửi request
INVITE, do chưa biết địa chỉ IP của B, nên A gửi request tới PA.
(2) Server PA chưa biết thông tin của B, nó chuyển request tới Redirect Server, và
gửi message Trying cho A thông báo thông báo được chuyển tiếp.
(3) Server RS tra thông tin địa chỉ IP của B trên Location Server bằng ID của B,
sau đó Location Server gửi trả kết quả cho Redirect Server.
(4) Redirect Server gửi trả lại thông tin của B cho PA.
(5) PA khi biết thông tin trao đổi với B cần đi qua PB, đóng gói và gửi request tới
PB yêu cầu kết nối tới B.
(6) PB nhận được yêu cầu, chuyển tiếp yêu cầu tới B.

Khi đó, máy bên B đổ chuông. Lúc này B đã biết địa chỉ IP của A, gửi response
Ringing về A. Nếu B nhấc máy, B gửi lại response 200 OK cho A. A nhận được thì
gửi lại response ACK cho B và kết nối giữa A và B được thiết lập.


Sau bước thiết lập phiên, A và B gọi thoại với nhau bằng giao thức truyền thông
khác như RTP/RTCP. Để hủy cuộc gọi, A hoặc B gửi request BYE tới bên còn lại, và
gửi lại response 200 OK để xác nhận.
Như hình dưới mô tả trực quan tên các request và response cụ thể như giải thích

trên.

Hình 7: Thiết lập kết nối trong SIP

1.2.5 Đăng ký tài khoản mới
Việc đăng ký tài khoản mới thông qua Registrar server.
Xét hệ thống gồm Location Server và Registrar server.
(1) Một máy IP phone vừa kết nối vào mạng Internet và muốn kết nối tới tổng đài,
điều đầu tiên nó cần biết địa chỉ IP của Registrar Server.
(2) IP phone gửi request tới Registrar Server để đăng ký địa chỉ IP và ID của nó.
(3) Registrar server gửi request tới Location Server, tại đây địa chỉ IP của IP phone
được lưu vào cơ sở dữ liệu.


Hình 8: Đăng ký với SIP server.

2

Khảo sát, tìm hiểu hệ thống SIP triển khai thực tế

Giới thiệu Openscape
Ở đây, chúng em tìm hiểu về hệ thống phần mềm OpenScape của công ty Unify và
được công ty viễn thông Siemens ở Đức áp dụng với thiết bị điện thoại của mình.
OpenScape là một ứng dụng mở dựa trên SIP cung cấp cho người dùng với quyền
truy cho tất cả các tài nguyên truyền thông doanh nghiệp tích hợp trong ứng dụng của
Microsoft, bao gồm các tính năng và dịch vụ thoại, e-mail, tin nhắn tức thời, và đa tài
nguyên cộng tác.


Hình 9:Hình ảnh của openscape

Ta thấy OpenScape rất phù hợp cho ứng dụng cấp doanh nghiệp, ví dụ như:
Thông báo tình trạng của người khác:
 Tình trạng hiện tại của người khác (online hoặc offline)
 Tính sẵn sàng của họ (đang gọi điện, ăn trưa, trong phòng họp, vv...)
 Họ muốn được liên lạc ntn (qua gửi thư, điện thoại di động hoặc điện thoại
văn phòng, vv).
Cung cấp cơ chế audio/video conferencing, web collaboration,…
OpenScape giải quyết tình trạng quá tải thông tin hàng ngày bằng cách cung cấp
truy cập duy nhất với nhiều nguồn thông tin liên lạc khác nhau. Nó cung cấp một điểm
truy cập duy nhất thông qua giao diện người dùng cho nhiều nguồn như máy tính, điện
thoại di động, và các loại máy tính bỏ túi PDA và cho các ứng dụng như e-mail, tin
nhắn tức thời, tài liệu điện tử, và hội nghị thông qua cổng thông tin cá nhân.



×