You are on page 1of 8

Chương 1: Tổng quan về SIP

1.1. Định nghĩa và các thành phần SIP


1.1.1. SIP là gì?
SIP (Session Initiation Protocol) là giao thức khởi tạo phiên, là một trong những
giao thức phổ biến nhất sử dụng trong công nghệ VoIP. SIP là một giao thức lớp
ứng dụng hoạt động cùng các giao thức lớp ứng dụng khác để điều khiển các phiên
truyền thông đa phương tiện qua Internet.
1.1.2. Công nghệ VoIP
VoIP là công nghệ cho phép chúng ta truyền tải nội dung thoại và đa phương tiện
(ảnh, video) qua Internet. Đây là một trong những cách rẻ nhất để liên lạc mọi lúc,
mọi nơi với khả năng của Internet.
Một số ưu điểm của công nghệ VoIP:
- Giá thành rẻ
- Tính di động cao
- Linh hoạt
- Không cần sử dụng dây cáp
- Họp trực tuyến
Với VoIP, những gì ta cần chỉ là một thiết bị kết nối Internet như laptop, điện
thoại.

Hình(hình số mấy) mô tả hoạt động VoIP


Ở trên là những điều cơ bản về VoIP, để hiểu rõ hơn chúng ta quay trở lại với SIP:
- SIP là một giao thức báo hiệu được sử dụng để tạo, sửa đổi, và giải phóng một
phiên đa phương tiện thông qua giao thức Internet. Mỗi phiên có thể là một
cuộc gọi đơn giản giữa hai điểm đầu cuối. Điểm đầu cuối này có thể là
smartphone, laptop hoặc thiết bị bất kì có thể gửi và nhận nội dung đa phương
tiện qua Internet.
- SIP là giao thức lớp ứng dụng được xác định theo chuẩn IETF (Internet
Engineering Task Force), được định nghĩa trong RFC 3261.
- SIP thể hiện kiến trúc client-server, sử dụng URL và URI từ HTTP, mã hóa
văn bản và kiểu tiêu đề từ SMTP.
- SIP sử dụng giao thức mô tả phiên SDP (Session Description Protocol) để mô
tả một phiên và giao thức truyền tải thời gian thực RTP (Real Time Transport
Protocol) để phân phối thoại và video qua mạng IP.
- SIP có thể được sử dụng cho các phiên hai bên (unicast) hoặc nhiều bên
(multicast).
- Các ứng dụng SIP khác bao gồm truyền tệp, nhắn tin tức thời, họp trực tuyến,
trò chơi trực tuyến và phân phối đa phương tiện hấp dẫn.
1.1.3. SIP được sử dụng ở đâu? (chức năng)
Về cơ bản SIP là một giao thức lớp ứng dụng. Nó là một giao thức báo hiệu mạng
đơn giản cho tạo và giải phóng phiên với một hoặc nhiều người tham gia. Giao thức
SIP được thiết kế để độc lập với giao thức truyền tải cơ bản, vì vậy các ứng dụng SIP
có thể chạy trên TCP, UDP hoặc các giao thức mạng lớp thấp hơn.
Hình (hình số mấy) sơ đồ minh họa vị trí của SIP
Thông thường, giao thức SIP được sử dụng cho điện thoại internet và phân phối đa
phương tiện giữa hai hoặc nhiều điểm đầu cuối. Ví dụ: một người có thể bắt đầu cuộc
gọi điện thoại tới một người khác sử dụng SIP hoặc có thể tạo một cuộc gọi với
nhiều người tham gia.
Giao thức SIP được thiết kế rất đơn giản, với một số lệnh hạn chế. Vì nó dựa trên
dạng văn bản, do đó bất kỳ ai cũng có thể đọc một thông báo SIP được truyền giữa
các điểm đầu cuối trong một phiên SIP.
1.1.4. Các thành phần SIP
Các thành phần trong mạng báo hiệu SIP
 Đầu cuối SIP (User Agent Client/User Agent Server)
 Proxy Server
 Registrar Server
 Redirect Server
 Location Server
User Agent
- User Agent: thiết bị đầu cuối trong mạng SIP, nó có thể là điện thoại hoặc máy
tính chạy phần mềm đầu cuối SIP.
- User Agent có thể khởi tạo, thay đổi hoặc giải phóng cuộc gọi.
- UAC (User Agent Client) thực hiện việc khởi tạo một cuộc gọi.
- UAS (User Agent Server) thực hiện việc nhận cuộc gọi.
- Cả UAC và UAS đều có thể giải phóng cuộc gọi.
Proxy Server
- Proxy Server: thực thể trung gian giúp User Agent định tuyến và quản lý việc User
Agent truy nhập vào tài nguyên mạng bằng việc xác thực và cấp phép.
- Nếu Proxy Server không trực tiếp đáp ứng các yêu cầu của User Agent thì nó 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.
Registrar Server
- Registrar Server: phần mềm nhận các yêu cầu đăng ký từ User Agent để cập
nhật thông tin về vị trí của chúng. Registrar Server có thể đảm nhiệm một số
chức năng an ninh như xác nhận người sử dụng.
- Registrar Server thường được cài đặt cùng với Proxy hoặc Redirect Server.
- Registrar Server có thể cung cấp dịch vụ định vị thuê bao.
Redirect Server
- Redirect Server: phần mềm nhận yêu cầu SIP và chuyển đổi địa chỉ SIP sang địa
chỉ khác và gửi lại các địa chỉ SIP này cho đầu cuối.
- Redirect Server trả về một hoặc nhiều địa chỉ tùy thuộc vào yêu cầu từ client (UA
hoặc Proxy)
- Nó không khởi tạo bất cứ một yêu cầu nào, Redirect Server không hoạt động như
một đầu cuối, cũng không thực hiện việc chấp nhận hay huỷ cuộc gọi.
- Chỉ thực hiện chức năng đáp trả client và cung cấp các địa chỉ mới để chuyển
hướng cuộc gọi.
Location Server
- Location Server: 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 (có thể lấy từ registrar server) cho các phần mềm Proxy Server
và Redirect Server.

1.2. Bản tin SIP


Bản tin SIP có hai kiểu: Requests và Responses. Dòng mở đầu của một tin Request
chứa một phương thức xác định yêu cầu và Request-URI xác định nơi gửi yêu cầu.
Tương tự thì dòng mở đầu của một tin Response thì chứa một mã phản hồi.
1.2.1. Requests
Bản tin yêu cầu (Request): Được gửi từ client tới server. RFC 3261 định nghĩa 6 kiểu
bản tin request cho phép UA và proxy có thể xác định người dùng, khởi tạo, sửa đổi,
hủy một phiên.
Trong các phiên bản RFC khác còn định nghĩa thêm một số bản tin mở rộng của SIP.
INVITE
- INVITE được User Agent sử dụng để bắt đầu một phiên cuộc gọi.
- INVITE có thể chứa thông tin phương tiện của người gọi trong nội dung bản tin.
- Một phiên được coi là đã thiết lập nếu một INVITE nhận được phản hồi thành
công (2xx) hoặc ACK đã được gửi.
- Một INVITE thành công sẽ thiết lập một hộp thoại giữa hai User Agent cho đến
khi 1 BYE được gửi để kết thúc phiên.
BYE
- BYE là phương thức được sử dụng để kết thúc một phiên đã thiết lập. Đây là một
yêu cầu SIP có thể được gửi bởi người gọi hoặc người gọi để kết thúc phiên.
- Nó không thể được gửi bởi một máy chủ proxy.
- Yêu cầu BYE thông thường được gửi từ đầu cuối đến đầu cuối, bỏ qua máy chủ
proxy.
- BYE không thể được gửi đến một INVITE đang chờ xử lý hoặc một phiên chưa
được thiết lập.
REGISTER
- REGISTER được client gửi đến máy chủ đăng ký để đăng ký thông tin người dùng
và SIP servers.
- REGISTER có thể được chuyển tiếp hoặc ủy quyền cho đến khi gặp được nhà
đăng ký có thẩm quyền của miền được chỉ định.
- Nó mang AOR (Address of Record) trong tiêu đề “To” của người dùng đang được
đăng ký.
- Bản tin REGISTER tồn tại trong 3600 giây.
CANCEL
- CANCEL được sử dụng để kết thúc một phiên không được thiết lập. User Agent
sử dụng cái này yêu cầu hủy cuộc gọi đang chờ xử lý được thực hiện trước đó.
- Nó có thể được gửi bởi một User Agent hoặc một máy chủ proxy.
- CANCEL là một yêu cầu nhảy từng bước, tức là nó đi qua các phần tử giữa User
Agent.

Hình (hình số mấy) mô tả hoạt động của bản tin CANCEL


ACK
- ACK được sử dụng để xác nhận các phản hồi cuối cùng đối với phương thức
INVITE. ACK luôn đi theo hướng INVITE.ACK có thể chứa nội dung SDP (đặc
điểm phương tiện), nếu không có sẵn trong INVITE.
- ACK có thể không được sử dụng để sửa đổi mô tả phương tiện đã được gửi đi
trong INVITE ban đầu.
- Một proxy sau khi nhận ACK phải xác định xem có ACK chuyển tiếp xuống một
proxy hoặc User Agent khác hay không.
OPTION
- OPTION: UA sử dụng request OPTION để truy vấn một UAS về khả năng của nó.
PRACK: đảm bảo độ tin cậy tạm thời của các response lớp 1xx
REFER
- REFER: Chuyển giao call đến bên thứ ba sử dụng các thông tin liên quan được
cung cấp trong các request.
SUBCRIBE
- SUBSCRIBE được sử dụng bởi các User Agent để thiết lập một đăng ký nhằm
mục đích nhận được thông báo về một sự kiện cụ thể.
NOTIFY
- NOTIFY: sử dụng để thông báo sự kiện đã diễn ra.

Hình (hình số mấy) Mô tả hoạt động của bản tin SUBCRIBE và NOTIFY
1.2.2. Responses
Một bản tin response là một bản tin được gửi bởi UAS hoặc SIP server để trả lời cho
một bản tin request trước đó.
SIP định nghĩa sáu lớp của các bản tin responses, các lớp từ 1xx tới 5xx hầu như là
tương tự với các bản tin response của giao thức HTTP, riêng lớp 6xx được định
nghĩa riêng cho SIP:
- 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 Server
- 6xx – Sự cố toàn mạng

Hình (hình số) Các bản tin Response thường gặp

1.3. Thiết lập và hủy cuộc gọi SIP

Hình (hình số) Cuộc gọi SIP qua Proxy Server


Các bước thiết lập và hủy một cuộc gọi SIP qua Proxy Server:
1. Alice gửi INVITE gửi đến máy chủ proxy yêu cầu bắt đầu một phiên cuộc gọi.
2. Máy chủ proxy gửi bản tin 100 Trying phản hồi ngay lập tức tới người gọi (Alice)
để yêu cầu UA1 ngừng truyền lại yêu cầu INVITE.
3. Máy chủ proxy tìm kiếm địa chỉ của Bob trong máy chủ định vị. Sau khi nhận
được địa chỉ, nó sẽ chuyển tiếp yêu cầu INVITE.
4. Sau đó, bản tin 180 Ringing do Bob tạo được trả lại cho Alice qua máy chủ
proxy.
5. Phản hồi 200 OK sẽ được tạo ngay sau khi Bob nhấc máy, truyền qua máy chủ
proxy rồi đến Alice.
6. Bob nhận được bản tin ACK xác nhận từ Alice, khi Alice nhận được bản tin 200
OK.
7. Đồng thời, phiên được thiết lập và các gói RTP (hội thoại) bắt đầu chảy từ cả hai
đầu.
8. Sau cuộc trò chuyện, bất kỳ người tham gia nào (Alice hoặc Bob) đều có thể gửi
yêu cầu BYE tới kết thúc phiên.
9. BYE đến trực tiếp từ Alice đến Bob bằng cách bỏ qua máy chủ proxy.
10. Cuối cùng, Bob gửi một phản hồi 200 OK để xác nhận BYE và phiên chấm dứt.
11. Trong luồng cuộc gọi cơ bản ở trên, cuộc gọi hoàn chỉnh (từ INVITE đến 200
OK) được gọi là hộp thoại.

You might also like