SIP là giao thức điều khiển báo hiệu thuộc lớp ứng dụng, được phát triển như là một chuẩn mở RFC 2543 của IEFT. Khác với H.323, nó dựa trên nguồn gốc Web (HTTP) và có thiết kế kiểu modul, đơn giản và dễ dàng mở rộng với các ứng dụng thoại SIP. SIP là một giao thức báo hiệu để thiết lập, duy trì và kết thúc các phiên đa phương tiện như: thoại IP, hội nghị và các ứng dụng tương tự khác liên quan đến việc truyền thông tin đa phương tiện.
Ư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. Giao thức SIP cung cấp các chức năng sau :
- Định vị người dùng thông qua địa chỉ tương tự như email.
- Năng lực người dùng : các tham số phiên có thể thương lượng giữa hai phía.
- Lợi ích người dùng : xác định dựa trên kiểu bên bị gọi muốn tiến hành truyền thông.
3.2.1 Các thành phần của SIP:
Giao thức SIP gồm hai thành phần: đại lý trạm của người sử dụng (user agent) và máy chủ mạng (network server). User agent là một ứng dụng kết cuối hệ thống mà nó bao gồm cả user agent client (UAC) khởi tạo cuộc gọi và user agent server (UAS) nó sẽ trả lời cuộc gọi. Cả UCA và UAS đều có thể kết thúc cuộc gọi.
Kiến trúc của SIP cho phép thông tin ngang cấp sử dụng giao thức máy khách/máy chủ Network server gồm 4 kiểu là: Proxy server (máy chủ ủy quyền), Location server (máy chủ định vị), Redirect server (máy chủ chuyển tiếp), Register server (máy chủ đăng ký):
+ 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.
+ 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ỉ.
+ 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.
+ 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ỳ.
3.2.2 Các bản tin trong giao thức SIP và phản hồi:
• Các bản tin:
- INVITE: Khi một UAC muốn khởi tạo một phiên mới như: video, audio hay game thì nó sẽ tạo ra một bản tin INVITE. Bản tin này gửi yêu cầu về server cho phép thiết lập một phiên làm việc. Bản tin này có thể được gửi qua các proxy, các UAS. Các UAS sẽ kiểm tra thường xuyên xem người sử dụng có đồng ý lời mời không. Nếu đồng ý (nghĩa là phiên làm việc được thiết lập) thì các UAS sẽ gửi bản tin phản hồi 2xx về. Còn nếu lời mời không dược chấp nhận thì phản hồi 3xx, 4xx, 5xx hay 6xx sẽ được gửi đi tùy theo lý do từ chối. Trước khi gửi tín hiệu phản hồi cuối cùng này, UAS còn gửi kèm một bản tin 1xx để thông báo UAC tiếp tục giữ quá trình liên lạc với người được gọi.
- 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 INVITE. SIP thực thi quá trình bắt tay qua ba bước: Phía gọi gửi bản tin INVITE; Phía được gọi gửi bản tin ACK chấp nhận yêu cầu; Phía gọi gửi bản tin ACK để thông báo quá trình bắt tay đã hoàn tất và quá trình thiết lập cuộc gọi bắt đầu. Cho dù bản tin INVITE đầu tiên bao gồm gói tin SDP (Session Description Protocol) hay không thì bản tin ACK đầu tiên sẽ có SDP của phía được gọi. Các bản tin ACK khác đượcgửi đi để kết thúc quá trình bắt tay và bao gồm SDP cần để thiết lập cuộc gọi.
- BYE: Được sử dụng để kết thúc một phiên làm việc cụ thể hoặc một phiên làm việc tạm thời.
- CANCEL: Giống như tên gọi, bản tin CANCEL được sử dụng để hủy yêu cầu trước đó được gửi từ phía cilent. Nó yêu cầu UAS tạm dừng xử lý yêu cầu và tạo ra một phản hồi lỗi cho yêu cầu đó. Bản tin này sẽ không có tác dụng đối với yêu cầu mà UAS gửi đi phản hồi cuối cùng.Vì vậy bản tin này sẽ rất có ích đối với những yêu cầu mà server mất nhiều thời gian để phản hồi. Do đó, bản tin CANCEL thích hợp nhất với bản tin INVITE, là bản tin mất nhiều thời gian để phản hồi.
- REGISTER: Bản tin này sử dụng để đăng ký UA với UAS.
- OPTIONS: Bản tin này cho phép một UA xác định khả năng có thể của Proxy Server hay UA khác.
- Ngoài ra còn một số giao thức khác nữa được sử dụng như: INFO, NOTIFY, SUBCRIBE, UNSUBCRIBE, UPDATE, MESSAGE, REFER…
• Các phản hồi:
- 1xx ( PROVISIONAL): phản hồi tạm thời, cho biết đã nhận được yêu cầu , tiếp tục quá trình yêu cầu.
- 2xx (SUCCESS): thông báo đã nhận được đầy đủ, hiểu và chấp nhận.
- 3xx (REDIRECTION): thông báo cần có các bản tin khác để hoàn thành yêu cầu.
- 4xx (CLIENT ERORR): thông báo yêu cầu chứa cấu trúc sai hoặc không được đáp ứng ở server.
- 5xx (SERVER ERORR): thông báo server không thể đáp ứng được yêu cầu có cấu trúc hợp lệ.
- 6xx (GLOBAL FAILURE): thông báo yêu cầu không thể xử lý được ở bất cứ server nào.
3.2.3 Các bước thiết lập, duy trì và hủy cuộc gọi:
g Đăng ký, khởi tạo và xác định vị trí người dùng. g Xác định băng thông cần thiết được sử dụng.
g Xác định sự sẵn sàng của phía được gọi, phía được gọi phải gửi một bản tin
phản hồi thể hiện cuộc gọi (chấp nhận hay từ chối).
g Cuộc gọi được thiết lập.
g Chỉnh sửa cuộc gọi (chuyển cuộc gọi và duy trì). g Kết thúc cuộc gọi.
3.2.4 Hoạt động của SIP:
• Địa chỉ SIP tồn tại dưới dạng user@host. Trong đó: +) User : tên người dùng hoặc số điện thoại. +) Host: tên miền hoặc địa chỉ mạng.
Mỗi địa chỉ SIP là duy nhất.
• Mô tả cuộc gọi SIP:
+) Hoạt động của máy chủ ủy quyền (proxy server): Cuộc gọi SIP được định tuyến qua Proxy server.
Hình 3.11 thiết lập cuộc gọi qua Proxy server
1. userA@yahoo.com gửi bản tin INVITE cho UserB ở miền hostmail.com, bản tin này đến proxy server SIP của miền hostmail.com (Bản tin INVITE có thể đi từ Proxy server SIP của miền yahoo.com và được Proxy này chuyển đến Proxy server của miền hostmail.com).
2. Proxy server của miền hostmail.com sẽ tham khảo server định vị (Location server) để quyết định vị trí hiện tại của UserB.
3. Server định vị trả lại vị trí hiện tại của UserB (giả sử là UserB@hostmail.com).
4. Proxy server gửi bản tin INVITE tới userB@hotmail.com. Proxy server thêm địa chỉ của nó trong một trường của bản tin INVITE.
5. UAS của UserB đáp ứng cho server Proxy với bản tin 200 OK. 6. Proxy server gửi đáp ứng 200 OK trở về userA@yahoo.com.
7. userA@yahoo.com gửi bản tin ACK cho UserB thông qua proxy server. 8. Proxy server chuyển bản tin ACK cho userB@hostmail.com.
9. Sau khi cả hai bên đồng ý tham dự cuộc gọi, một kênh RTP/RTCP được mở giữa hai điểm cuối để truyền tín hiệu thoại.
10.Sau khi quá trình truyền dẫn hoàn tất, phiên làm việc bị xóa bằng cách sử dụng bản tin BYE và ACK giữa hai điểm cuối.
+) Hoạt động của máy chủ chuyển đổi địa chỉ (Redirect Server):
Hình 3.12 thiết lập cuộc gọi qua Redirect Server
1. Redirect server nhân được yêu cầu INVITE từ người gọi (Yêu cầu này có thể đi từ một proxy server khác).
2. Redirect server truy vấn server định vị địa chỉ của B. 3. Server định vị trả lại địa chỉ của B cho Redirect server.
4. Redirect server trả lại địa chỉ của B đến người gọi A. Nó không phát yêu cầu INVITE như proxy server.
5. User Agent bên A gửi lại bản tin ACK đến Redirect server để xác nhận sự trao đổi thành công.
6. Người gọi A gửi yêu cầu INVITE trực tiếp đến địa chỉ được trả lại bởi Redirect server (đến B). Người bị gọi B đáp ứng với chỉ thị thành công (200 OK), và người gọi đáp trả bản tin ACK xác nhận. Cuộc gọi được thiết lập.