4.1.1. Các đặc điểm và chức năng của SIP 4.1.1.1. Các đặc điểm
Theo định nghĩa của IETF, “Giao thức khởi tạo phiên” SIP (Session Initiation Protocol) là “giao thức báo hiệu lớp ứng dụng mô tả việc khởi tạo, thay đổi và giải phóng 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ụ thông điệp thoại, hội nghị thoại, E-mail, dạy học từ xa, quảng bá (MPEG, MP3...), truy nhập HTML, XML, hội nghị video...
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 chủ 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 nội dung luồng thông tin theo mào đầu thực thể (mô tả nội dung - kiểu loại) và cho phép xác nhận các phương pháp sử dụng giống nhau được sử dụng trên Web. Kinh nghiệm trong sử dụng các giao thức Internet mail (SMTP) đã cung cấp rất nhiều cho việc 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 đị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. 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.
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 sự 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.
Đồ án tốt nghiệp Đại học Chương 4. Các giao thức ngang hàng
Giao thức SIP được thiết kế với những tiêu chí hỗ trợ tối đa cho các giao thức khác đã ra đời trước đó. Giao thức SIP nó được tích hợp với các giao thức đã có của tổ chức IETF, nó có khả năng mở rộng, hỗ trợ đầu cuối và với SIP thì việc cung cấp dịch vụ mới trở nên dễ dàng và nhanh chóng khi triển khai. SIP có 5 tính năng 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ụ và dịch vụ mới. Khả năng liên kết hoạt động với mạng điện thoại hiện tại.
4.1.1.2. Các chức năng
SIP là một giao thức điều khiển lớp ứng dụng mà nó có thể thiết lập, sửa đổi và kết thúc các phiên truyền thông đa phương tiện (các hội nghị) hay các cuộc gọi điện thoại qua Internet. SIP có thể mời các thành viên tham gia vào các phiên truyền thông đơn hướng hoặc đa hướng; bên khởi tạo phiên không nhất thiết phải là thành viên của phiên đó. Phương tiện và các thành viên có thể được bổ sung vào một phiên đang tồn tại.
SIP hỗ trợ việc ánh xạ tên và các dịch vụ chuyển tiếp một cách trong suốt, vì thế nó cho phép thực hiện các dịch vụ thuê bao điện thoại của mạng thông minh và mạng ISDN. Những tiện ích này cũng cho phép thực hiện các dịch vụ của các thuê bao di động.
SIP hỗ trợ 5 khía cạnh của việc thiết lập và kết thúc các truyền thông đa phương tiện sau:
Định vị người dùng (User location): xác định hệ thống đầu cuối được sử dụng trong truyền thông.
Các khả năng người dùng (User capabilities): xác định phương tiện và các thông số phương tiện được sử dụng.
Tính khả dụng người dùng (User Availability): xác định sự sẵn sàng của bên được gọi để tiến hành truyền thông.
Thiết lập cuộc gọi (Call setup): “đổ chuông”, thiết lập các thông số của cuộc gọi tại cả hai phía bị gọi và chủ gọi.
Đồ án tốt nghiệp Đại học Chương 4. Các giao thức ngang hàng
4.1.2. Các khái niệm và các thành phần của hệ thống SIP4.1.2.1. Các khái niệm 4.1.2.1. Các khái niệm
Phần này đưa ra một số thuật ngữ liên quan đến các quy tắc được sử dụng bởi các thành viên trong các truyền thông SIP:
Call: Một cuộc gọi bao gồm tất cả các thành viên sử dụng một tài nguyên chung trong
một hội nghị. Một cuộc gọi SIP được nhận dạng bởi một nhận dạng cuộc gọi (call – ID) duy nhất. Do đó, một ví dụ là nếu một người sử dụng được mời vào phiên truyền thông đa hướng bởi đồng thời một vài người, thì mỗi một lời mời này sẽ là một cuộc gọi duy nhất.
Call leg: Một call leg được nhận dạng bằng sự kết hợp của trường mào đầu Call – ID và
địa chỉ xác định, thẻ của các trường mào đầu “To” và “From”.
Client: là một chương trình ứng dụng gửi các yêu cầu SIP. Các Client có thể hoặc
không thể tương tác một cách trực tiếp với một người sử dụng. Các User agent
(UA) và các Proxy chứa các client (và các Server).
Conference (hội nghị): là một phiên truyền thông đa phương tiện được nhận biết bởi một sự mô tả phiên chung. Một hội nghị có thể không có hoặc có nhiều thành viên và bao gồm những trường hợp của một hội nghị đa phương, hội nghị nhiều mắt lưới (full – mesh) và một “cuộc gọi điện thoại” hai bên, cũng như các hỗn hợp của các trường hợp này. Bao nhiêu cuộc gọi cũng có thể được sử dụng để tạo ra một hội nghị.
Downstream (luồng xuống): gồm các yêu cầu được gửi trực tiếp từ phía chủ gọi đến
phía bị gọi (nghĩa là từ UA Client đến UA Server).
Final response (phúc đáp cuối cùng): là một phúc đáp kết thúc một phiên giao dịch
SIP, trái lại một phúc đáp tạm thời không kết thúc một phiên giao dịch SIP. Tất cả các phúc đáp: 2xx, 3xx, 4xx, 5xx và 6xx đều là các phúc đáp cuối cùng.
Initiator, calling party, caller (Bên khởi tạo, bên đang gọi, người gọi): Là bên khởi
tạo một lời mời phiên. Chú ý rằng bên đang gọi không phải là bên tạo ra hội nghị.
Invitation (lời mời): Là một yêu cầu được gửi đến một người sử dụng (hay một dịch
vụ) để yêu cầu tham gia vào một phiên. Một lời mời SIP thành công gồm 2 giao dịch: một yêu cầu INVITE được theo sau bởi một yêu cầu ACK.
Invitee, invited user, called party, callee (bên được mời, người bị gọi): Là người hay
Đồ án tốt nghiệp Đại học Chương 4. Các giao thức ngang hàng
Yêu cầu hay phúc đáp đồng hình: Hai yêu cầu hoặc hai phúc đáp được định nghĩa là
đồng hình theo các ý đồ của tài liệu này nếu chúng có cùng các giá trị trong các trường mào đầu của Call – ID, To, From và Cseq. Thêm vào đó, các yêu cầu đồng hình phải có cùng Request – URI và cùng thông số nhánh trong trường mào đầu Via của chúng.
Location server (máy chủ định vị): chi tiết ở phần dịch vụ định vị.
Location service (dịch vụ định vị): Một dịch vụ định vị được sử dụng bởi một SIP
redirect hay proxy server để có được thông tin về các vị trí có thể có của người bị gọi. Các ví dụ về các tài nguyên của thông tin định vị gồm các đăng ký SIP, các cơ sở dữ liệu hay các giao thức đăng ký di động. Các dịch vụ định vị được đưa ra bởi các máy chủ định vị. Các máy chủ định vị có thể là một phần của một máy chủ SIP, nhưng cách thức mà một máy chủ SIP yêu cầu các dịch vụ định vị nằm ngoài phạm vi của tài liệu này.
Outbound proxy: Là một proxy nằm gần nơi tạo ra các yêu cầu. Nó nhận tất cả các yêu cầu đi ra từ một UAC cụ thể, các Request – URL của các yêu cầu này nhận dạng một host không phải là outbound proxy. Sau bất kỳ một xử lý cục bộ nào, outbound proxy sẽ gửi những yêu cầu này đến các địa chỉ được chỉ ra trong Request – URL. (Tất cả các proxy server khác đều được xem xét một cách đơn giản như là các proxy, chứ không phải là các inbound proxy).
Parallel search (tìm kiếm song song): Trong một tìm kiếm song song, một proxy đưa
ra một vài yêu cầu đến các vị trí có thể có của người sử dụng trong khi nhận một yêu cầu đầu vào. Hơn là đưa ra một yêu cầu và sau đó đợi cho đến khi nhận được phúc đáp cuối cùng trước khi đưa ra một yêu cầu kế tiếp như trong một tìm kiếm tuần tự, một tìm kiếm song song đưa ra các yêu cầu mà không cần đợi kết quả của các yêu cầu trước đó.
Provisional response (phúc đáp tạm thời): Là một phúc đáp được sử dụng bởi máy chủ
để chỉ thị tiến trình nhưng nó không kết thúc một giao dịch SIP. Phúc đáp 1xx là phúc đáp tạm thời, các phúc đáp khác là các phúc đáp cuối cùng.
Proxy, proxy server: Là một chương trình trung gian hoạt động cả như là một máy chủ
và một máy khách cho mục đích tạo ra các yêu cầu với tư cách của các máy khách khác. Các yêu cầu được cung cấp một cách nội bộ hoặc đưa chúng qua các máy chủ khác sau những biên dịch cần thiết. Một proxy biên dịch và nếu cần thiết nó ghi lại một bản tin yêu cầu trước khi chuyển tiếp bản tin đó. Ví dụ, các proxy
Đồ án tốt nghiệp Đại học Chương 4. Các giao thức ngang hàng
server được sử dụng để định tuyến các yêu cầu, thực thi các chính sách, điều khiển các tường lửa.
Redirect server: Một redirect server là một máy chủ mà nó nhận một yêu cầu SIP, ánh
xạ địa chỉ hiện có thành một số địa chỉ mới và gửi trả lại các địa chỉ này cho máy khách. Không giống như một proxy server, nó không khai báo yêu cầu SIP của bản thân nó. Không giống như một UA Server, nó không chấp nhận các cuộc gọi.
Registrar (trạm đăng ký): Một trạm đăng ký là một máy chủ mà nó nhận các yêu cầu
REGISTER. Một trạm đăng ký được định vị chung với một proxy hoặc redirect server và có thể tạo ra sẵn sàng thông tin của nó thông qua máy chủ định vị (location server).
Ringback (hồi âm chuông): Hồi âm chuông là chuông báo hiệu được tạo ra bởi ứng
dụng của máy khách phía gọi để chỉ ra rằng bên bị gọi đang được thông báo (đổ chuông).
Server (máy chủ): Một máy chủ là một chương trình ứng dụng mà nó nhận các yêu cầu
để xử lý và gửi trả lại các đáp ứng cho những yêu cầu đó. Các máy chủ là các proxy, redirect, UAS hoặc registrar.
Session (phiên): Từ định nghĩa SDP: “Một phiên truyền thông đa phương tiện là một
tập các phía gửi và nhận đa phương tiện và các luồng dữ liệu từ phía gửi đến phía nhận. Một hội nghị đa phương tiện là một ví dụ của một phiên truyền thông đa phương tiện.” Như được định nghĩa, một bên bị gọi có thể được mời tham gia cùng 1 phiên một vài lần bởi các cuộc gọi khác nhau. Nếu SDP được sử dụng, một phiên được định nghĩa bằng sự ghép nối của các phần tử: tên người dùng, ID của phiên,
kiểu mạng, kiểu địa chỉ và địa chỉ trong các trường gốc.
(SIP) transaction (giao dịch SIP): Một giao dịch SIP xuất hiện giữa một máy khách và
một máy chủ và bao gồm tất cả các bản tin từ yêu cầu đầu tiên được gửi từ máy khách đến máy chủ cho đến phúc đáp cuối cùng được gửi từ máy chủ về máy khách. Một giao dịch được nhận biết bởi chuỗi số Cseq trong một call leg đơn lẻ. Yêu cầu ACK có cùng chuỗi số Cseq với yêu cầu INVITE tương ứng, nhưng bao gồm một giao dịch của riêng nó.
Stateless Proxy (proxy phi trạng thái): Là một thực thể logic mà nó không duy trì trạng
thái của một phiên giao dịch SIP. Một proxy phi trạng thái chuyển tiếp tất cả các yêu cầu nó nhận ở đường xuống và tất cả các phúc đáp nó nhận ở đường lên.
Đồ án tốt nghiệp Đại học Chương 4. Các giao thức ngang hàng
Stateful Proxy (proxy trạng thái): Là một thực thể logic duy trì thông tin trạng thái của
ít nhất một giao dịch SIP.
Upstream (đường lên): Các phúc đáp được gửi trực tiếp từ máy chủ UA đến máy khách
UA.
URL – encoded (mã URL): Là một chuỗi ký tự được mã hoá theo RFC 1738.
User agent client (UAC): Một UAC là một ứng dụng khách khởi đầu một yêu cầu SIP User agent server (UAS): Một UAS là một ứng dụng chủ mà nó giao tiếp với người sử
dụng khi một yêu cầu SIP được nhận và nó gửi trả lại một phúc đáp cho người sử dụng đó. Phúc đáp đó chấp nhận, từ chối hoặc chuyển tiếp yêu cầu đó.
User agent (UA): Một ứng dụng hoạt động cả như UAC và UAS.
Các Proxy, Redirect, Location và Registrar Server được định nghĩa ở trên là các thực thể logic; các sự thực thi có thể kết hợp chúng thành một chương trình ứng dụng đơn nhất. Các thuộc tính của các kiểu máy chủ SIP khác nhau được cho trong bảng 4.1.
Bảng 4.1. Các thuộc tính của các kiểu máy chủ SIP khác nhau
4.1.2.2. Các thành phần của hệ thống SIP
Xét trên quan điểm Client / Server, các thành phần chính của một hệ thống SIP bao gồm (Hình 4.1):
Đầu cuối SIP (UAC/UAS). Proxy server.
Location server. Redirect server. Registrar server.
Đồ án tốt nghiệp Đại học Chương 4. Các giao thức ngang hàng
Hình 4.1. Cấu trúc của hệ thống SIP
User Agent là thiết bị đầu cuối trong mạng SIP, nó có thể là một máy điện thoại
SIP hay một máy tính chạy phần mềm đầu cuối SIP. UA có thể khởi tạo, thay đổi hay giải phóng cuộc gọi. Trong đó phân biệt hai loại UA: UAC (User Agent Client) và UAS (User Agent Server). UAC là một thực thể thực hiện việc khởi tạo một cuộc gọi còn UAS là một thực thể thực hiện việc nhận cuộc gọi. Nhưng cả UAC và UAS đều có thể giải phóng cuộc gọi.
Proxy Server là phần mềm trung gian hoạt động cả như Server và cả như Client
để thực hiện các yêu cầu thay thế cho các đầu cuối khác. Tất cả các yêu cầu được xử lý tại chỗ bởi Proxy Server (nếu có thể) hoặc nó chuyển đến cho các máy chủ khác. Trong trường hợp Proxy Server không trực tiếp đáp ứng các yêu cầu này thì Proxy Server sẽ thực hiện khâu chuyển đổi hoặc dịch sang khuôn dạng thích hợp trước khi chuyển đi.
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 phía bị gọi cho các phần mềm Proxy Server và Redirect Server.
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 những địa chỉ này cho đầu cuối. Không giống như Proxy Server, Redirect Server không bao giờ hoạt động như một đầu cuối, tức là không gửi đi bất cứ một yêu cầu nào. Redirect Server cũng không thực hiện việc chấp nhận hay huỷ cuộc gọi.
Registrar Server là phần mềm nhận các yêu cầu đăng ký Register. Trong nhiều
trường hợp Registrar Server đả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 Registrar Server được cài đặt cùng với Proxy hoặc Redirect Server hoặc cung cấp dịch vụ định vị thuê bao. Mỗi lần đầu cuối được bật lên
Đồ án tốt nghiệp Đại học Chương 4. Các giao thức ngang hàng
(thí dụ máy điện thoại hoặc phần mềm SIP) thì đầu cuối lại đăng ký với Server. Nếu đầu cuối cần thông báo với Server về địa điểm của mình thì bản tin Register đượ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ỳ.
4.1.3. Khái quát về hoạt động của SIP
Trong hội thoại SIP, mỗi bên tham gia (bên chủ gọi và bên bị gọi) được gắn một địa chỉ SIP hay còn gọi là SIP URL. Người sử dụng phải đăng ký vị trí của họ với SIP