III. CÁC GIAO THỨC BÁO HIỆU TRONG VoIP
2. Giao thức khởi tạo phiờ n SIP
Giao thức khởi tạo phiờn SIP (Session Initiation 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).[7]
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) và xử lý cuộc gọi (call handling).
SIP 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). IETF cũng bao gồm cỏc giao thức sau: Giao thức nguồn dành riờng RSVP (Resource Reservation Protocol: RFC 2005), giao thức truyền vận thời gian thực RTP (Realtime Transport Protocol: RFC 1889), giao thức luồng thời gian thực RTSP (Realtime Streaming Protocol: RFC 2326), giao thức cảnh bỏo phiờn SAP (Session Annoucement Protocol) và giao thức mụ tả phiờn SDP (Session Description Protocol: RFC 2327). 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.[7]
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.
SIP cú phần mào đầu đa năng, hơn nữa, cỏc chức năng bổ sung khỏc cú thể đƣợc đăng ký với số nhận thực Internet dành riờng IANA (Internet assigned numbers authority). Sự mềm dẻo của thụng điệp SIP cũng cho phộp cỏc phần tử kiến tạo nờn cỏc dịch vụ thoại cao cấp (Advanced Telephony Services) bao gồm cỏc dịch vụ di động.
Do SIP chƣa thực sự đƣợc IETF thụng qua, nờn ở phần này chỉ tập trung vào cỏc khỏi niệm cơ bản của giao thức SIP chứ khụng đi sõu vào tớnh mở rộng hay cỏc dịch vụ của SIP.
Khỏi quỏt về SIP: cỏc thành phần, đỏnh địa chỉ, thụng điệp mời.
Cỏc thụng điệp SIP.
2.1 Khỏi quỏt về SIP
Phần này miờu tả cỏc chức năng cơ bản và cỏc phần tử mấu chốt (key elements) của 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ị ra server và ngƣời sử dụng.
o 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ụ.[7]
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ọi.
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ọi. o Cỏc mỏy phục vụ mạng (Network Servers)
Cú hai loại Server mạng SIP, đú 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 chỳng đ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ẽ quay 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.
o Đỏnh địa chỉ (Addressing):
Đị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 address), 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 hosts cú thể là tờn miền hoặc địa chỉ mạng.
Vớ dụ SIP: ciscopress@cisco.com SIP: 4085262222@171.171.1711 o Đị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 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ới.
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ầu.
o 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 (response).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.[7]
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ối. 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.
o Đị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: nhà cung cấp dịch vụ Internet) 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 (mỏy chủ) 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 Proxy 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.[7]
2.2 Cỏc thụng điệp SIP (SIP messages)
Cỏc thụng điệp SIP (SIP messages)
Cú hai loại thụng điệp SIP, đú là: thụng điệp yờu cầu (request) do cỏc client tạo ra và thụng điệp đỏp ứng (response) do cỏc server đỏp ứng lại. Phần mào đầu (header) của cỏc thụng điệp này sẽ mụ tả chi tiết sự thụng tin. SIP là giao thức dựa trờn cỏc ký tự văn bản (text-based protocol) với cỳ phỏp và cỏc trƣờng cú trong phần mào đầu của thụng điệp giống hệt giao thức truyền siờu văn bản HTTP (HyperText Transfer Protocol). Cỏc thụng điệp SIP đƣợc truyền đi trờn cựng kết nối TCP hoặc UDP.[7]
o Cỏc mào đầu thụng điệp SIP (message headers)
Cỏc mào đầu của thụng điệp đƣợc dựng để xỏc định bờn gọi, bờn nhận, tuyến và xỏc định loại thụng điệp của cuộc gọi. Sau đõy là 4 nhúm mào đầu của cỏc thụng điệp SIP:
Mào đầu chung (General Header): ỏp dụng cho cỏc thụng điệp yờu cầu (request) và đỏp ứng (response).
Mào đầu thực thể (Entity Header): xỏc định thụng tin về loại thõn thụng điệp và chiều dài.
Mào đầu thụng điệp yờu cầu (Request Headers): cho phộp cỏc client đƣa thờm vào cỏc thuộc tớnh yờu cầu.
Mào đầu thụng điệp đỏp ứng (Response Headers): cho phộp cỏc server đƣa thờm vào cỏc thụng điệp đỏp ứng.
General Headers Entity Headers Request Headers Response Headers
Accept Content-
Encoding
Authorization Allow
Accept-Encoding Content-Length Contact Proxy-Authenticate
Accept-Language Content-Type Hide Retry-After
Call-ID Max-Forward Server
Contact Organization Unsupported
Date Proxy- Authorization www- Authenticate Encryption Proxy-Require Expires Route From Require Record-Route Response-Key Timestamp Subject To User-Agent Via
Bảng 1: Cỏc thụng điệp mào đầu SIP
Cỏc yờu cầu thụng điệp (message requests)
SIP cung cấp 6 loại thụng điệp yờu cầu. Cỏc thụng điệp này thực chất tƣơng ứng với cỏc phƣơng phỏp cho phộp cỏc user-agent và cỏc server mạng định vị, mời (invite) và quản lý cỏc cuộc gọi.
Thụng điệp mời (INVITE): chỉ ra một ngƣời sử dụng hoặc một dịch vụ đƣợc mời tham gia vào phiờn. Nú bao gồm sự mụ tả phiờn và nếu là cuộc gọi hai chiều, bờn gọi sẽ phải mụ tả phƣơng thức truyền thụng trong thụng điệp này. Một thụng điệp đỏp ứng thành cụng (successful response) tới hai bờn tham gia cuộc gọi (two-part Invite) sẽ mang thụng tin về phƣơng thức truyền thụng mà bờn đớch dựng để nhận thụng tin. Theo phƣơng phỏp đơn giản này, bờn gọi cú thể nhận ra đƣợc cỏc khả năng của bờn nhận và qua đú hai bờn sẽ mở phiờn hội thoại vơớ số lƣợng giới hạn cỏc thụng điệp và chu kỳ truyền tin (round trip). [7]
Thụng điệp phỳc đỏp (ACK): cỏc thụng điệp phỳc đỏp này tƣơng ứng với thụng điệp yờu cầu INVITE. Chỳng chỉ ra sự xỏc nhận (confirm) cuối cựng từ hệ thống cuối và kết thỳc sự giao dịch do lệnh INVITE khởi tạo.
Thụng điệp tuỳ chọn (OPTIONS): yờu cầu này cho phộp truy vấn, lựa chọn cỏc khả năng của user-agent và của server mạng. Tuy nhiờn nú khụng đƣợc để thiết lập phiờn.
Thụng điệp giải phúng (BYE): thụng điệp này đƣợc hai bờn (nguồn và đớch) sử dụng để giải phúng cuộc gọi. Trƣớc khi thực sự giải phúng cuộc gọi, tỏc nhõn ngƣời sử dụng gửi yờu cầu này tới server để yờu cầu giải phúng phiờn.
Thụng điệp huỷ (CANCEL): cho phộp cỏc tỏc nhõn ngƣời sử dụng và cỏc network server hoón lại yờu cầu đang thực hiện tại bất cứ thời điểm nào trong quỏ trỡnh yờu cầu (request). Yờu cầu CANCEL khụng làm ảnh hƣởng tới thụng điệp yờu cầu nào đó đƣợc nhận từ trƣớc đú.
Thụng điệp đăng ký (REGISTER): cỏc client dựng thụng điệp này để đăng ký thụng tin định vị vựng với SIP Server.
Cỏc đỏp ứng thụng điệp (Message Response)
Cỏc đỏp ứng thụng điệp SIP đƣợc gửi đi để đỏp ứng lại cỏc thụng điệp yờu cầu tƣơng ứng, chỳng chỉ ra sự thành cụng hoặc sự cố của cuộc gọi, bao gồm cả trạng thỏi của Server. Cú 6 loại đỏp ứng thụng điệp khỏc nhau. Cỏc mó trạng thỏi (status codes) và cỏc giải thớch tƣơng ứng về cỏch hoạt động của chỳng đƣợc liệt kờ trong bảng 4-16. Trong đú cú 2 loại đỏp ứng giỏm sỏt mang thụng tin về quỏ trỡnh gọi cỏc loại cũn lại dựng để kết thỳc.