1. Trang chủ
  2. » Công Nghệ Thông Tin

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

16 797 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm hiểu tổng quan về giao thức SIP và hệ thống SIP
Định dạng
Số trang 16
Dung lượng 782,41 KB

Nội dung

Để 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.. SIP viết tắt của Session Initiation Protocol là

Trang 1

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

Trang 2

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

Trang 3

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

Trang 4

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: dung@iptel.com

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

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

Trang 5

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

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

Trang 6

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

182 Queued Temporarily unavailable and request is

in a queue (not rejected)

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

Trang 7

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

Trang 8

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 hoangnightstar@ippi.fr 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 Max-Forwards: 70

Trang 9

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:user2@server2.com>

Chứa địa chỉ người nhận

- From:

From: user1 <sip:user1@server1.com>;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: a84b4c76e66710@pc33.server1.com

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:user1@pc33.server1.com

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

Trang 10

- 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

Trang 11

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

Trang 12

(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

Trang 13

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

Trang 14

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

Ngày đăng: 07/02/2017, 17:02

TỪ KHÓA LIÊN QUAN

w