GIAO THỨC KHỞI TẠO PHIÊN (SIP)
Tác giả; Nguyễn Thanh Phước
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
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. 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ý)
ITU-T không phải là tổ chức tiêu chuẩn duy nhất đưa ra kế hoạch kết nối thoại IP và đóng gói audio. Hơn hẳn bất kỳ một tổ chức quản lý các chuẩn mực Internet, IETF cũng có những yêu cầu của riêng mình đối với những hệ thống VoIP và được gọi là «giao thức điều khiển phiên »- SIP
Những người đề xuất SIP cho rằng H.323 đang xuất hiện trong mạng báo hiệu ATM và ISDN, là không thích hợp cho điều khiển hệ thống VoIP nói chung và trong thoại Internet nói riêng. Yêu cầu này khẳng định là H.323 vốn dĩ rất phức tạp, hỗ trợ các chức năng phần lớn là không cần thiết cho thoại IP và do đó đòi hỏi chi phí cao và không hiệu quả. Ví dụ H.323 xác định 3 phương pháp khác nhau để phối hợp hoạt động giữa H.225 và H.245, với các kết nối khác nhau, H.245 ngang qua kết nối H.225 và tiến hành phương pháp ‘kết nối nhanh’ của hai giao thức tích hợp. Mặc dù hầu hết các chức năng chỉ hỗ trợ cho các kết nối nhanh, tính tương thích H.323 liên quan đến yêu cầu hỗ trợ của cả 3 phương pháp
Đồng thời, với những người ủng hộ SIP cũng cho rằng H.323 không có khả năng mở rộng yêu cầu đối với giao thức báo hiệu cho công nghệ chẳng hạn như VoIP, là những công nghệ chắc chắn sẽ phát triển và hỗ trợ các dịch vụ và đặc tính mới. Kinh nghiệm trong sử dụng các giao thức Internet mail (SMTP) đã cung cấp rất nhiều triết lý phát triển SIP, trong đó tập trung vào khả năng thích ứng của báo hiệu trong tương lai.
SIP dựa trên ý tưởng và cấu trúc của HTTP (Hypertext Transfer Protocol), giao thức trao đổi thông tin của World Wide Web. Nó được định nghĩa như một giao thức client-server trong đó các yêu cầu được bên gọi (client) đưa ra và bên bị gọi (server) trả lời. SIP sử dụng một số kiểu bản tin và các trường mào đầu của HTTP, xác định luồng thông tin theo mào đầu thực thể và cho phép các phương pháp sử dụng giống nhau được sử dụng trên Web
SIP còn định nghĩa các bản tin INVITE và ACK giống như bản tin Setup và Connect trong H.225, trong đó cả hai đều định nghĩa quá trình mở một kênh đáng tin cậy mà thông qua đó cuộc gọi có thể đi qua. Tuy nhiên khác với H.225, độ tin cậy của kênh này không phụ thuộc vào TCP. Các nhà đề xuất SIP kiến nghị rằng việc tích hợp độ tin cậy vào lớp ứng dụng này cho phép kết hợp một cách chặt chẽ các giá trị điều chỉnh để ứng dụng, có thể tối ưu hoá VoIP hơn là phụ thuộc vào những giá trị ‘mục đích chung chung của TCP’
Cuối cùng, SIP dựa vào giao thức mô tả phiên (SDP), một tiêu chuẩn khác của IETF, để thực hiện việc sắp xếp tương tự theo cơ cấu chuyển đổi dung lượng của H.245. SDP được dùng để nhận dạng mã tổng đài trong những cuộc gọi sử dụng một mô tả nguyên bản đơn. SDP cũng được sử dụng để chuyển các phần tử thông tin của giao thức báo hiệu thời gian thực RTSP để sắp xếp các tham số hội nghị đa điểm và định nghĩa khuôn dạng chung cho nhiều loại thông tin khi được chuyển trong SIP
Cuộc tranh luận tiêu chuẩn H.323/H.225 hay SIP phù hợp cho thoại Internet hay không thì chỉ mang tính chất học thuật. Cả hai cách đều có những thuận lợi và bất lợi. Trong khi H.323 có thuận lợi rất lớn trong thị trường (đã xuất hiện trước SIP) thì SIP có lợi thế của IETF là một trong số các tổ chức tiêu chuẩn hoạt động tích cực. Với mục đích nghiên cứu các giao thức và giải pháp cho vấn đề VoIP, tốt nhất là lưu ý đến cả H.323 và SIP
Theo định nghĩa của IETF, SIP là giao thức báo hiệu lớp ứng dụng mô tả việc khởi tạo, thay đổi và hủy các phiên kết nối tương tác đa phương tiện giữa những người sử dụng. SIP có thể sử dụng cho rất nhiều dịch vụ khác nhau trong mạng IP như dịch vụ thoại, hội nghị thoại, email, dạy học từ xa, truy nhập HTLM, hội nghị truyền hình...
3.1 Phần mềm chuyển mạch cuộc gọi SIP
Phần mềm chuyển mạch cuộc gọi SIP có cấu trúc như sau :
Các thành phần của SIP
Trong hình trên, đại lý người dùng (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 điện thoại SIP, có thể là máy tính chạy phần mềm đầu cuối SIP
+ 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 Các bản tin SIP, mào đầu và đánh số
Dưới đây là các bản tin của SIP :
INVITE : bắt đầu thiết lập cuộc gọi bằng cách gửi bản tin mời đầu cuối khác tham gia
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
BYE : bắt đầu kết thúc cuộc gọi
CANCEL : hủy yêu cầu nằm trong hàng đợi
REGISTER : đầu cuối SIP sử dụng bản tin này để đăng ký với máy chủ đăng ký
OPTION : sử dụng để xác định năng lực của máy chủ
INFO : sử dụng để tải các thông tin như âm báo DTMF
Giao thức SIP có nhiều điểm trùng hợp với giao thức HTTP. Các bản tin trả lời các bản tin SIP nêu trên gồm có :
1xx – các bản tin chung
2xx – thành công
3xx - chuyển địa chỉ
4xx – yêu cầu không được đáp ứng
5xx - sự cố của máy chủ
6xx - sự cố toàn mạng
Các bản tin SIP có khuôn dạng text, tương tự như HTTP. Mào đầu của bản tin SIP cũng tương tự như HTTP và SIP cũng hỗ trợ MIME (một số chuẩn về email)
3.3 Thiết lập và hủy cuộc gọi SIP
Trước tiên ta tìm hiểu hoạt động của máy chủ ủy quyền và máy chủ chuyển đổi
+ Hoạt động của máy chủ ủy quyền (Proxy Server)
Hoạt động của Proxy server được trình bày như trong hình ….Client SIP userA@yahoo.com gửi bản tin INVITE cho userB@hotmail.com để mời tham gia cuộc gọi.
Các bước như sau:
+ Bước 1: userA@yahoo.com gửi bản tin INVITE cho UserB ở miền hotmail.com, bản tin này đến proxy server SIP của miền hotmail.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 hotmail.com).
+ Bước 2: Proxy server của miền hotmail.com sẽ tham khảo server định vị (Location server) để quyết định vị trí hiện tại của UserB.
+ Bước 3: Server định vị trả lại vị trí hiện tại của UserB (giả sử là UserB@hotmail.com).
+ Bước 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.
+ Bước 5: UAS của UserB đáp ứng cho server Proxy với bản tin 200 OK.
+ Bước 6: Proxy server gửi đáp ứng 200 OK trở về userA@yahoo.com.
+ Bước 7: userA@yahoo.com gửi bản tin ACK cho UserB thông qua proxy server.
+ Bước 8: Proxy server chuyển bản tin ACK cho userB@hostmail.com
+ Bước 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.
+ Bước 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):
Hoạt động của Redirect Server được trình bày như hình .
Các bước như sau:
+ Bước 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).
+ Bước 2: Redirect server truy vấn server định vị địa chỉ của B.
+ Bước 3: Server định vị trả lại địa chỉ của B cho Redirect server.
+ Bước 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.
+ Bước 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.
+ Bước 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.
Ngoài ra SIP còn có các mô hình hoạt động liên mạng với SS7 (đến
PSTN) hoặc là liên mạng với chồng giao thức H.323.
Tổng quát lại trong mạng SIP quá trình thiết lập và hủy một phiên kết nối:
Hình 4.6: Thiết lập và hủy cuộc gọi SIP
1. đăng ký, khởi tạo và định vị đầu cuối
2. xác định phương tiện của cuộc gọi, tức là mô tả phiên mà đầu cuối được mời tham gia
3. xác định mong muốn của đầu cuối bị gọi, trả lời hay không. Phía bị gọi phải gửi bản tin xác nhận chấp thuận cuộc gọi hay từ chối
4. thiết lập cuộc gọi
5. thay đổi hay điều khiển cuộc gọi (ví dụ như chuyển cuộc gọi)
6. hủy cuộc gọi
Quá trình thiết lập và hủy cuộc gọi SIP cơ bản được mô tả trong hình 4.6 sau
3.4 Tính năng của SIP
Giao thức SIP được thiết kế với những chỉ tiêu sau:
Tích hợp với các giao thức đã có của IETF
Đơn giản và có khả năng mở rộng
Hỗ trợ tối đa sự di động của đầu cuối
Dễ dàng tạo tính năng mới cho dịch vụ
a) Tích hợp với các giao thức đã có của IETF
Các giao thức khác của IETF có thể xây dựng để xây dựng những ứng dụng SIP. SIP có thể hoạt động cùng với nhìu giao thức như :
- RSVP (Resource Reservation Protocol) : Giao thức giành trước tài nguyên mạng.
- RTP (Real-time transport Protocol) : Giao thức truyền tải thời gian thực
- RTSP (Real Time Streaming Protocol) : Giao thức tạo luồng thời gian thực
- SAP (Session Advertisement Protocol) : Giao thức thông báo trong phiên kết nối
- SDP (Session Description Protocol) : Giao thức mô tả phiên kết nối đa phương tiện
- MIME (Multipurpose Internet Mail Extension - Mở rộng thư tín Internet đa mục đích) : Giao thức thư điện tử
- HTTP (Hypertext Transfer Protocol) : Giao thức truyền siêu văn bản
- COPS (Common Open Policy Service) : Dịch vụ chính sách mở chung
- OSP (Open Settlement Protocol) : Giao thức thỏa thuận mở
b) Đơn giản và có khả năng mở rộng
SIP có rất ít bản tin, không có các chức năng thừa nhưng SIP có thể sử dụng để thiết lập những phiên kết nối phức tạp như hội nghị… Đơn giản, gọn nhẹ, dựa trên khuôn dạng văn bản, SIP là giao thức ra đời sau và đã khắc phục được điểm yếu của nhiều giao thức trước đây.
Các phần mềm của máy chủ ủy quyền, máy chủ đăng kí, máy chủ chuyển đổi địa chỉ, máy chủ định vị… có thể chạy trên các máy chủ khác nhau và việc cài đặt thêm máy chủ hoàn toàn không ảnh hưởng đến các máy chủ đã có. Chính vì thế hệ thống chuyển mạch SIP có thể dễ dàng nâng cấp.
c) Hỗ trợ tối đa sự di động của đầu cuối
Do có máy chủ ủy quyền, máy chủ đăng ký và máy chủ chuyển đổi địa chỉ hệ thống luôn nắm được địa điểm chính xác của thuê bao. Thí dụ thuê bao với địa chỉ ptit@vnpt.com.vn có thể nhận được cuộc gọi thoại hay thông điệp ở bất cứ địa điểm nào qua bất cứ đầu cuối nào như máy tính để bàn, máy xách tay, điện thoại SIP… Với SIP rất nhiều dịch vụ di động mới được hỗ trợ.
d) Dễ dàng tạo tính năng mới cho dịch vụ và dịch vụ mới.
Là giao thức khởi tạo phiên trong mạng chuyển mạch gói SIP cho phép tạo ra những tính năng mới hay dịch vụ mới một cách nhanh chóng. Ngôn ngữ xử lý cuộc gọi (Call Processing Language) và Giao diện cổng kết nối chung (Common Gateway Interface) là một số công cụ để thực hiện điều này. SIP hỗ trợ các dịch vụ thoại như chờ cuộc gọi, chuyển tiếp cuộc gọi, khóa cuộc gọi… (call waiting, call forwarding, call blocking…), hỗ trợ thông điệp thống nhất…