1.3. Các giao thức trong mạng VoIP
1.3.5. Giao thức SIP (Session Initial Protocol)
Giao thức khởi tạo phiên SIP (Session Initial Protocol) là giao thức ựiều khiển báo hiệu lớp ứng dụng, dùng ựể thiết lập, duy trì, kết thúc các phiên ựa truyền thông. Các phiên ựa truyền thông gồm: thoại Internet, các hội nghị và các ứng dụng tương tự khác (bao gồm: audio, video và data)[6].
SIP hỗ trợ các phiên ựiểm Ờ ựiểm hoặc ựa ựiểm. 5 chức năng giao thức SIP sau dùng ựể thiết lập và kết thúc truyền tin.
định vị thuê bao (user location)
Khả năng thuê bao (user capability)
Tắnh hiệu lực (sự sẵn sàng trong việc ựược quyền sử dụng các dịch vụ: user availability)
Thiết lập cuộc gọi (call-setup)
Xử lý cuộc gọi (call handling)
SIP ựược xây dựng theo RFC 2543. Là giao thức dựa trên kắ tự văn bản (textbased protocol). SIP là một phần của kiến trúc ựa truyền thông thuộc nhóm phát triển kĩ thuật mạng Internet IETF (Internet Engineering Task Force). Các chức năng của SIP ựộc lập với nhau, một ựiều quan trọng khác là SIP có thể giao tiếp, liên kết với các giao thức báo hiệu khác như giao thức H.323.
Redirect Server Location Server Registrar Server
User Agent Gateway
SIP Components Proxy Server Proxy Server PSTN Hình 1-12 Mô hình mạng SIP
Mạng thoại IP hiện nay vẫn ựang ựược phát triển và trong tương lai nó sẽ cần thêm nhiều các chức năng báo hiệu khác. Với khả năng mở rộng của SIP, ựiều này có thểựược ựáp ứng.
Khái quát về SIP
Hệ thống SIP có hai thành phần: các tác nhân người sử dụng (user agents) và các server mạng. Bên gọi và bên nhận ựược nhận dạng qua các ựịa chỉ SIP, các bên cần ựịnh vị server và người sử dụng.
Tác nhân người sử dụng (User agents)
Các tác nhân người sử dụng là các ứng dụng hệ thống cuối bao gồm cả máy khách tác nhân người dùng UAC (User-agents Client) và máy phục vụ tác nhân người dùng UAS (User-agents Server) theo cách gọi khác là máy khách và máy phục vụ.
Client
Khởi tạo các yêu cầu SIP, ựóng vai trò như tác nhân gọi của người dùng gọị
Server
Nhận các yêu cầu của SIP rồi phản hồi ựáp ứng lại thay cho người dùng. Nó ựóng vai trò như tác nhân người dùng ựược gọị
Các máy phục vụ mạng (Network Servers)
Có hai loại Server mạng STP, ựó là: Proxy Server và Redirect Server.
- Proxy Server ựóng vai trò ựại diện cho các client. Proxy Server mang chức năng của cả server và client (máy khách). Nó dịch và viết lại phần mào ựầu của thông ựiệp yêu cầu trước khi gửi chung ựi tới các server khác. Việc viết lại mào ựầu làm cho Proxy Server có vai trò như nơi tạo ra yêu cầu và ựảm bảo các thông ựiệp phúc ựáp sẽ quy lại Proxy Server thay vì tới Client.
- Redirect Server nhận các thông ựiệp yêu cầu SIP và gửi lại Client, các thông ựiệp này bao gồm ựịa chỉ của server kế tiếp. Redirect Server không tiếp nhận cuộc gọi cũng như không xử lý hay chuyển tiếp thông ựiệp yêu cầu SIP.
đánh ựịa chỉ (Ađressing)
địa chỉ SIP hay còn gọi là ựịa chỉ ựịnh vị tài nguyên tổng quan URL (SIP Univeral Resource Locator) ựược ựánh theo dạng sau: user@hosts (người_sử_dụng@máy_chủ) giống nhưựịa chỉ thư ựiện tử (email ađress), SIP URL ựược xác ựịnh qua user@hosts, phần user của ựịa chỉ có thể là tên người sử dụng hoặc sốựiện thoại người sử dụng còn phần host có thể là tên miền hoặc ựịa chỉ mạng.
định vị máy phục vụ (Locating a server)
Một máy khách Client có thể gửi một thông ựiệp yêu cầu SIP theo hai cách sau: trực tiếp với 1 proxy server nội hạt ựã ựược cấu hình với nó hoặc tới ựịa chỉ IP với cổng tương ứng ựịa chỉ SIP URL. Theo cách thứ nhất gửi một thông ựiệp yêu cầu SIP tương ựối dễ dàng. Còn theo cách thứ hai sẽ gặp một số rắc rối vì những nguyên nhân sau:
- Client phải xác ựịnh ựược ựịa chỉ IP số hiệu cổng của Server mà thông ựiệp sẽ tớị Nếu số hiệu cổng (Port number) chưa ựược liệt kê trong ựịa chỉ yêu cầu SIP URL thì cổng mặc ựịnh là 5060.
- Nếu loại giao thức (protocol type) chưa ựược liệt kê trong SIP URL, client phải cố gắng liên kết với server thông qua giao thức UDP sau ựó là TCP. - Tiếp theo, client truy vấn DNS Server (Domain Name System: máy phục
vụ hệ thống tên miền) ựể tìm ra ựịa chỉ IP của Server ựắch. Nếu, không tìm ựược ựịa chỉ này, client không thểựịnh vị ựược server và do ựó không thể gửi ựi thông ựiệp yêu cầụ
Giao dịch SIP (SIP Transaction)
Sau khi phân tắch ựịa chỉ, client gửi các thông ựiệp yêu cầu (request) tới server và nhận lại một hoặc nhiều thông ựiệp ựáp ứng (respone). Mọi yêu cầu và ựáp ứng có liên quan tới cùng một hoạt ựộng (activity) ựều là một phần của giao dịch SIP. để cho ựơn giản và nhất quán, các trường trong phần mào ựầu (header) của các thông ựiệp yêu cầu phải phù hợp với các trường trong phần mào ựầu của các thông ựiệp ựáp ứng.
Các giao dịch SIP có thể ựược truyền ựi trong các gói UDP hoặc TCP. Nếu sử dụng gói TCP, mọi thông ựiệp yêu cầu và ựáp ứng liên quan ựến phiên giao dịch SIP có thểựược truyền trên cùng một kết nốị Hơn nữa, các giao dịch SIP riêng biệt cũng có thểựược truyền qua cùng một kết nối TCP. Nếu dùng UDP, thông ựiệp ựáp ứng gửi tới ựịa chỉ lấy từ phần mào ựầu của thông ựiệp request.
định vị người sử dụng (Locating a user)
Trong thực tế một user ựắch có thể di chuyển từ một endsystem (hệ thống cuối) tới nhiều endsystem khác, vắ dụ một user có thể di chuyển từ một mạng Lan ựộc lập về nhà thông qua một kết nối tới ISP (Internet Service Provider) hoặc qua kết nối Internet công cộng (Public Internet) trong khi ựang tham gia hội nghị. Tuy nhiên, ựể ựịnh vị các dịch vụ, SIP cần ựiều tiết tắnh mềm dẻo và tắnh di ựộng của các hệ thống IP. Vị trắ các hệ thống cuối này có thểựược ựăng ký với một SIP server hoặc với các server ựịnh vị khác bên ngoài phạm vi của SIP. Theo cách sau, SIP lưu trữ danh sách các vị trắ dựa trên các server ựịnh vị, các server này có thể phản hồi lại danh sách các host thắch hợp (multihost possibility).
Việc ựịnh vị và kết quả của việc ựịnh vị một user phụ thuộc loại SIP server ựang ựược sử dụng. Một SIP redirect server chỉ ựơn giản gửi lại toàn bộ danh sách các vị trắ và cho phép client ựịnh vị user một cách trực tiếp, còn một SIP Proxỵ Server sẽ thử các ựịa chỉ một cách song song cho tới khi cuộc gọi hoàn thành.
Các bản tin của SIP
SIP là một giao thức dựa trên ký tự văn bản với cú pháp bản in và các trường mào ựầu ựồng nhất với giao thức truyền siêu văn bản HTTP (Hypper Text Transfer Protocol). Các bản tin của SIP truyền trên cùng một kết nối TCP hoặc bó dữ liệu UDP.
Hình 1-13 Vắ dụ một bản tin SIP
Một số trường mào ựầu ựơn giản :
Hình 1-14 Một số trường mào ựầu SIP
INVITE : để chỉ thị rằng thuê bao hoặc dịch vụ ựược mời tham gia vào một phiên. Nó bao gồm một mô tả phiên và ựối với các cuộc gọi song công thì bên chủ gọi chỉ thị phương thức truyền thông (media) trong bản tin nàỵ Theo phương pháp ựơn giản này các bên có thể xác ựịnh ựược các khả năng của bên kia và bắt ựầu một phiên hội thoại .
ACK : Những yêu cầu này tương ứng với một yêu cầu INVITẸ Chúng là sự xác nhận cuối cùng từ một hệ thống cuối và chấm dứt một giao dịch ựược khởi tạo bởi INVITẸ
--- SIP Header
--- INVITE sip:5120@192.168.36.180 SIP/2.0 Via: SIP/2.0/UDP 192.168.6.21:5060 From: sip:5121@192.168.6.21 To: <sip:5120@192.168.36.180> Call-ID: c2943000-e0563-2a1ce-2e323931@192.168.6.21 CSeq: 100 INVITE Expires: 180
User-Agent: Cisco IP Phone/ Rev. 1/ SIP enabled Accept: application/sdp
Contact: sip:5121@192.168.6.21:5060 Content-Type: application/sdp
OPTIONS : Bản tin này cho phép truy vấn và tập hợp các khả năng của user agent và network server. Tuy nhiên yêu cầu này không ựược dùng ựể thiết lập phiên.
BYE: Bên chủ gọi và bị gọi sử dụng yêu cầu này ựể giải phóng cuộc gọị Trước khi thực sự giải phóng cuộc gọi, user agent gửi yêu cầu này tới server ựể cảnh báo rằng nó muốn giải phóng phiên làm việc.
CANCEL: Yêu cầu này cho phép user agent và network server xoá bỏ bất kỳ một yêu cầu nào ựang thi hành.
REGISTER: yêu cầu này ựược client dùng ựểựăng ký thông tin với SIP server.
Các bản tin ựáp ứng
- 1xx Informational (vd 100 Trying, 180 Ringing) - 2xx Successful (vd 200 OK, 202 Accepted) - 3xx Redirection (vd 302 Moved Temporarily)
- 4xx Request Failure (ẹg. 404 Not Found, 482 Loop Detected) - 5xx Server Failure (ẹg. 501 Not Implemented)
- 6xx Global Failure (ẹg. 603 Decline)
Quá trình thiết lập cuộc gọi
Theo kiểu Proxy :
Location Server
Client Proxy Server UAS 1. INVITE 4. INVITE
7. ACK 8. ACK
6. OK 5. OK
2 3
Hình 1-17 Thiết lập cuộc gọi SIP qua Proxy Server
(1) Client gửi bản tin INVITE chứa thông tin về bên bị gọi tới Proxy Server
(2) Proxy server xác ựịnh vị trắ của bên bị gọi bằng cách sử dụng các ựịa chỉựược cung cấp trong bản tin INVITE và location server .
(3) Location Server gửi trả lại Proxy Server thông tin ựã yêu cầu
(4) Proxy server gửi yêu cầu INVITE tới ựịa chỉ mà nó vừa xác ựịnh ựược. (5) Bên bị gọi (server) ựáp ứng lại bằng bản tin thành công 200 OK. (6) Proxy server lại ựáp ứng lại bên Client bằng bản tin 200 OK.
(7)(8) Client xác nhận bằng bản tin ACK. Bản tin này ựược gửi qua Proxy server hoặc ựược gửi trực tiếp tới bên bị gọị Theo kiểu redirect : UAC Client UAS Redirect server Location server 2 3 1. INVITE 4. 5. ACK 6. INVITE 7.OK 8. ACK
Hình 1-18 Thiết lập cuộc gọi SIP qua Redirect Server
(2 Redirect Server xác ựịnh vị trắ của bên bị gọi bằng cách sử dụng các ựịa chỉ ựược cung cấp trong bản tin INVITE và location server .
(3) Location Server gửi trả lại Proxy Server thông tin ựã yêu cầu
(4) Sau khi ựã xác ựịnh ựược vị trắ của thuê bao thì Redirect server gửi trực tiếp ựịa chỉ vừa nhận ựược cho phắa Client.
(5) Client gửi bản tin ACK tới Redirect server ựể hoàn tất phiên giao dịch. (6) Client gửi trực tiếp yêu cầu INVITE tới bên bị gọị
(7)(8) Bên bị gọi ựáp ứng bằng bản tin 200 OK và bên chủ gọi xác nhận bằng bản tin ACK.