LỜI CẢM ƠN
Lời đầu tiên em xin chân thành cảm ơn thầy Huỳnh Minh Quang là
người đã tận tình hướng dẫn, chỉ bảo em trong lúc thực hiện đề tài. Những
ý kiến của thầy là vô cùng quý giá đối với em không những trong lúc thực
hiện đề tài này mà còn là kinh nghiệm hữu ích cho em sau này.
Em cũng xin chân thành cảm ơn các thầy cô trong khoa Tin Học
trường đại học Mở TP.HCM đã nhiệt tình dạy dỗ và cung cấp cho em
những kiến thức hữu dụng trong cuộc sống.
Xin cảm ơn bạn bè, anh chị em đã động viên và chia sẻ thông tin cho
em trong khi thực hiện đề tài.
Cuối cùng con xin cảm ơn ba mẹ đã chăm sóc, nuôi dưỡng con thành
người.
Mặc dù đã cố gắng nhưng với những hiểu biết giới hạn chắc chắn sẽ
không tránh khỏi những thiếu sót. Rất mong thầy cô và các bạn cảm thông
và chỉ bảo.
Sinh viên thực hiện
Lưu Mạnh Hùng
i
Mục lục
Lời cảm ơn ..............................................................................................................i
Nhận xét của giáo viên hướng dẫn .........................................................................ii
Mục lục .................................................................................................................iii
Phần I Giới thiệu đề tài ....................................................................................... 1
Chương 1 Tổng quan, vai trò và ý nghĩa của SIP ............................................ 1
1.1. Tổng quan ........................................................................................................ 1
1.2. Vai trò và ý nghĩa của SIP............................................................................... 2
1.3. Các loại dịch vụ sử dụng SIP .......................................................................... 3
1.3.1. Các dịch vụ quản lý phiên cơ bản........................................................ 3
1.3.2. Các dịch vụ điều khiển nâng cao ......................................................... 4
1.3.3. Các dịch vụ đa phương tiện ................................................................. 4
1.3.4. Các dịch vụ hội nghị ............................................................................ 5
1.4. Mục tiêu của luận văn...................................................................................... 5
Phần II Cơ sở lý luận ........................................................................................... 6
Chương 2 Cấu trúc mạng SIP ............................................................................ 6
2.1. Địa chỉ SIP ..................................................................................................... 6
2.2. Chức năng SIP ............................................................................................... 6
2.2.1. Cài đặt, chỉnh sửa và kết thúc phiên .................................................... 6
2.2.2. Định vị người dùng.............................................................................. 8
2.3. Các thành phần............................................................................................... 9
2.3.1. User Agents (UAs) ............................................................................. 9
2.3.2. Proxy server ......................................................................................... 9
2.3.3. Redirect Server .................................................................................. 10
2.3.4. Registrars .......................................................................................... 11
2.3.5. Location service................................................................................. 11
Chương 3 Tổ chức của giao thức SIP .............................................................. 12
3.1.Thông điệp SIP ............................................................................................... 12
3.1.1.Khái niệm Dialog................................................................................ 12
3.1.2.Yêu cầu ............................................................................................... 14
3.1.3.Các câu trả lời ..................................................................................... 15
3.1.4.Field header......................................................................................... 17
3.2.SIP identity ..................................................................................................... 24
3.3.Giao thức SDP ................................................................................................ 25
Chương 4 Mã tình trạng SIP ............................................................................ 28
4.1.Nhóm 1 (1xx Provisional Codes) ................................................................... 28
4.2.Nhóm 2 (2xx Successful Status Codes) ......................................................... 29
4.3.Nhóm 3 (3xx Redirection Status Codes) ........................................................ 30
4.4.Nhóm 4 (4xx Client Failure Status Codes) .................................................... 31
4.5.Nhóm 5 (5xx Server Failure Status Codes).................................................... 37
4.6.Nhóm 6 (6xx Global Failure Status Codes) ................................................... 38
Chương 5 Thủ tục đăng ký và thành lập phiên trong mạng SIP .................. 40
5.1. Thủ tục đăng ký ............................................................................................. 40
5.1.1 .Đăng ký cơ bản .................................................................................. 40
5.1.2. Khai báo sự kiện ................................................................................ 41
5.2. Thành lập một phiên trong SIP...................................................................... 42
5.2.1. Truy cập mạng ................................................................................... 42
iii
5.2.2. Khởi tạo cuộc gọi............................................................................... 42
5.2.3. Yêu cầu từ máy khách ....................................................................... 44
5.2.4. Trả lời từ máy chủ.............................................................................. 44
5.2.5. Định tuyến SIP................................................................................... 45
5.3. Chỉnh sửa phiên SIP ...................................................................................... 46
5.4. Chấm dứt phiên SIP....................................................................................... 46
Chương 6 Bảo mật SIP...................................................................................... 47
5.1. Các tấn công mạng ........................................................................................ 47
6.1.1. Registration Hijacking ....................................................................... 47
6.1.2. Session Hijacking .............................................................................. 47
6.1.3. Impersonating a Server ...................................................................... 47
6.1.4. Tampering with Message Bodies....................................................... 47
6.1.5. Tearing Down Sessions47
6.1.6. Denial of Service and Amplification ................................................. 48
6.1.7. Bots and DDoS Attacks ..................................................................... 48
6.2. Giải pháp bảo mật.......................................................................................... 48
6.2.1. Network-layer security (IPSec) ......................................................... 48
6.2.2. Transport-layer security(TLS) ........................................................... 49
6.2.3. SIPS URI scheme .............................................................................. 50
6.2.4. HTTP authentication.......................................................................... 51
6.2.5. S/MIME ............................................................................................. 52
Phần III Cài đặt giao thức và xây dựng ứng dụng minh họa giao thức SIP 55
Chương 7 Cài đặt giao thức và xây dựng ứng dụng LEO ............................. 55
7.1. Thư viện lớp SIP............................................................................................ 55
7.1.1. Các thành phần của thư viện.............................................................. 55
7.2. Mô tả ứng dụng.............................................................................................. 56
7.2.1. Tổng quan về ứng dụng ..................................................................... 56
7.2.2. Môi trường xây dựng ......................................................................... 56
7.3. Cấu trúc ứng dụng ......................................................................................... 56
7.3.1. Thành phần của ứng dụng.................................................................. 56
7.4. Giao diện người dùng và cấu hình................................................................. 56
7.4.1. Giao diện người dùng ........................................................................ 56
7.4.2. Cấu hình............................................................................................. 58
7.5. Xử lý logic của ứng dụng .............................................................................. 59
Nhận xét đánh giá ................................................................................................ 60
Tài liệu tham khảo ............................................................................................... 61
iv
Đề tài:
Tìm hiểu giao thức SIP và xây dựng ứng dụng
minh họa
Phần I:
Giới thiệu đề tài
Chương 1:
Tổng quan, vai trò và ý nghĩa của SIP
1.1. Tổng quan:
Sự quan tâm đối với internet và các dịch vụ truyền thông đa phương tiện ngày
càng tăng. Những người sử dụng internet trước đây chỉ để lướt web bây giờ lại say mê
các dịch vụ như chat (Instant Messaging), game trực tuyến, gọi điện thoại và trao đổi
Video trên mạng.
Có nhiều dịch vụ cung cấp trên mạng internet dựa trên mạng IP, có thể chia làm
3 nhóm theo quan điểm của người sử dụng là:
• Dịch vụ Infotainment:
là dịch vụ người dùng có thể truy cập thông tin và các ứng dụng giải trí từ
các máy chủ từ xa ví dụ như Web.
• Dịch vụ Streaming:
cho phép người dùng truy cập trực tuyến hoặc download các media (phim,
nhạc,v.v).
• Dịch vụ Communication:
cho phép người này giao tiếp với người khác sử dụng các media khác nhau
như điện thoại hay gửi thư.
1
Dịch vụ Communication có thể chia làm 2 loại: dịch vụ trực tuyến và dịch vụ
không trực tuyến.
• Trong dịch vụ trực tuyến chúng ta cần phải nối kết đồng thời để việc truyền
thông có thể xảy ra ngay lập tức như điện thoại, chơi cờ hay chat.
• Trong dịch vụ không trực tuyến không cần thiết phải kết nối cùng lúc để
truyền thông xảy ra như gửi thư điện tử.
Không như những loại dịch vụ khác, tín hiệu đóng vai trò quan trọng trong dịch
vụ truyền thông đa phương tiện trên mạng IP. SIP (Session Initiation Protocol) là giao
thức tín hiệu mức ứng dụng nên vai trò của nó rất quan trọng trong các dịch vụ truyền
thông đa phương tiện.
SIP không thay thế các dịch vụ khác đang tồn tại như HTTP, SMTP, POP3,
IMAP4 mà nó được thiết kế để bổ sung cho những dịch vụ và các giao thức đang tồn
tại như web hay thư điện tử và khi kết hợp với những giao thức này, SIP hứa hẹn một
hệ thống truyền thông trên mạng IP bao gồm tất cả các dịch vụ có thể thực hiện trong
thế giới thực.
1.2. Vai trò và ý nghĩa của SIP:
Giả sử có hai người cần truyền thông giọng nói trên internet là A và B, cả hai
người đều có máy tính kết nối internet, microphone, loa chương trình chuyển đổi âm
thanh thành tín hiệu số, đóng gói và gửi đi thông qua giao thức RTP và ngược lại. Khi
A nói vào microphone, giọng nói sẽ được chuyển đổi thành tín hiệu số và được
chương trình máy tính gửi đến B thông qua giao thức RTP. Để gói dữ liệu âm thanh
đến được B, gói dữ liệu phải chứa địa chỉ của B. Khi máy của B nhận được gói dữ liệu
sẽ chuyển đổi gói thành tín hiệu số và phát ra loa.
2
Có một số vấn đề cần xem xét như sau:
• Khi một bên muốn báo hiệu cho bên kia là sẽ bắt đầu giao tiếp thì làm thế
nào?
• Bên gửi yêu cầu cũng muốn biết là yêu cầu của mình được thực hiện chưa, bên
nhận đang chấp nhận yêu cầu và đã chấp nhận chưa để bên gửi bắt đầu nói.
• Phương thức mã hóa dữ liệu media của bên gửi và bên nhận có giống nhau
không?
• Nếu thay vì một người sử dụng máy tính thứ nhất thì họ muốn sử dụng máy
tính thứ hai có địa chỉ IP khác thì làm sao?
Những vấn đề trên chứng tỏ cần những thông tin thêm để điều khiển cách
truyền thông thực hiện. Những thông tin điều khiển này là các tín hiệu và được gửi
giữa 2 máy tính của A và B theo giao thức tín hiệu. SIP là giao thức vận chuyển những
loại thông tin này.
1.3. Các loại dịch vụ sử dụng SIP:
1.3.1. Các dịch vụ quản lý phiên cơ bản:
SIP có thể sử dụng trong các loại truyền thông đa phương tiện sau:
Voice communication:
Truyền thông giọng nói.
3
Video communication:
Instant Messaging communication (IM):
Text over IP:
Peer-to-peer gaming:
Whiteboarding:
File transfer:
Truyền thông video.
Trao đổi tin nhắn trực tuyến.
Trao đổi văn bản thời gian thực.
game trực tuyến.
Sử dụng một bảng vẽ để trao đổi
thông tin giữa những người dùng.
Chia sẻ file.
Ngoài ra có thể kết hợp những dịch vụ này một số như:
• Voice và video.
• Voice và IM.
• Voice và Real-Time Text.
• Voice và File Transfer.
• Voice và Gaming.
• Voice và Whiteboarding.
1.3.2. Các dịch vụ điều khiển nâng cao:
Một số dịch vụ SIP cung cấp thêm là:
• Xác định người khởi tạo phiên:
SIP bao gồm thông tin định danh của người gọi có thể được thể hiện
đến người nhận. Ngược lại SIP cũng có thể ngăn định danh của người gọi
thể hiện cho người nhận.
• Xác định có multimedia trong phiên hay không?
Khởi tạo cũng có thể bao gồm nội dung đa phương tiện trong yêu cầu
khởi tạo phiên để cảnh báo cho người nhận. Nội dung đa phương tiện có thể
là nhạc chuông, hình ảnh,v.v.
• Chặn cuộc gọi:
Ứng dụng chặn cuộc gọi có thể căn cứ vào các tham số khác nhau.
Chẳng hạn như dựa vào người khởi tạo, nơi đến, nội dung đa phương tiện
hay những tham số khác như ngày giờ.
• Giữ cuộc gọi:
Dịch vụ này dễ dàng sử dụng với SIP/SDP vì SDP đã cung cấp định
nghĩa cho việc hoạt động và không hoạt động của media được gửi hoặc
được nhận.
• Chuyển cuộc gọi.
Dịch vụ này dễ dàng sử dụng bằng cách chỉnh sửa các tham số SIP cái
thể hiện nơi đến của cuộc gọi khi các điều kiện phù hợp diễn ra (chẳng hạn
người nhận không trả lời)..
1.3.3. Các dịch vụ đa phương tiện:
Một số dịch vụ:
• Voice mail:
Cho phép người gọi có thể để lại tin nhắn của họ để người nhận có thể
nghe lại sau.
4
• Music on hold:
Cho nghe nhạc khi chờ đợi.
• Ringback tones:
Chuông cảnh báo cuộc gọi đến.
• Do not disturb:
Người gọi được chuyển đến một menu với một số tham số được cấu
hình.
1.3.4. Các dịch vụ hội nghị:
• Multiparty call:
Nhiều người cùng hội thoại.
• Dial-in conferences:
Những người tham gia quay 1 số định trước tham gia.
• Dial-out conferences:
Server được cấu hình để bắt đầu hội nghị ở thời gian xác định.
1.4. Mục tiêu của luận văn:
Với tầm quan trọng của hệ thống SIP như ta đã thấy mục tiêu của luận văn là tìm
hiểu giao thức SIP và cài đặt giao thức, xây dựng ứng dụng minh họa giao thức SIP.
Với mục tiêu tìm hiểu giao thức SIP luận văn sẽ trình bày về hệ thống SIP bao
gồm cấu trúc mạng SIP, chức năng SIP, các thành phần hệ thống SIP. Bên cạnh đó nó
miêu tả cách thức tổ chức của hệ thống SIP, thủ tục đăng ký trong mạng SIP. Ngoài ra
nó còn trình bày vấn đề bảo mật trong mạng SIP.
Với mục tiêu cài đặt giao thức, xây dựng ứng dụng minh họa luận văn sẽ tập
trung vào cài đặt giao thức với các lớp hỗ trợ cho hoạt động mạng SIP. Bên cạnh đó là
ứng dụng nhỏ sử dụng thư viện lớp giao thức đã cài đặt nhằm minh họa rõ nét hơn một
ứng dụng của SIP.
5
Phần II:
Cơ sở lý luận
Chương 2:
Cấu trúc mạng SIP
2.4. Địa chỉ SIP:
Trong mạng SIP một người sử dụng được xác định thông qua SIP URI. SIP URI
là một URI (Universal Resource Identifier) chứa đựng thông tin để khởi tạo và duy trì
một phiên truyền thông với các tài nguyên.
Ví dụ SIP URI:
sip:
[email protected]
Một SIP URI là lược đồ sip: bao gồm 2 phần được chia bởi ký hiệu @.
• Phần người dùng chọn để xác định tài nguyên được cấp địa chỉ. Trong ví dụ
trên là: client1.
• Phần 2 dùng xác định nguồn cung cấp tài nguyên. Nó có thể là tên domain
hoặc địa chỉ IP và port.Ví dụ trên là: abc.com.
SIP URI có thể chỉ người sử dụng ,server và một số loại sau:
• Định danh chung của người dùng như sip:
[email protected]
• Địa phương của người dùng.
• Server SIP như: sip:193.53.24.3
• Một nhóm người dùng.
• Một dịch vụ.
2.5. Chức năng SIP:
SIP là giao thức tín hiệu nó giải quyết 2 khía cạnh chủ chốt là:
• Cài đặt, chỉnh sửa và kết thúc phiên.
• Định vị người dùng.
2.5.1. Cài đặt, chỉnh sửa và kết thúc phiên:
Chức năng chính của SIP là khởi tạo phiên truyền thông đa phương tiện. Sử
dụng SIP một người có thể gửi tín hiệu muốn truyền thông của họ đến một người
khác và người đó có thể chấp nhận hay từ chối lời mời đó.
SIP cũng có thề sử dụng để chỉnh sửa phiên. Ví dụ như thêm một thành
phần media mới vào phiên.
Chức năng cuối cùng của việc quản lý phiên là chấm dứt phiên. Bất kỳ
người nào tham gia vào phiên có thể sử dụng SIP để chấm dứt việc truyền thông
và việc gửi nhận media.
Một phiên có thể diễn ra như sau:
6
Bên muốn thành lập cuộc gọi sẽ gửi yêu cầu cho bên nhận. Hệ thống SIP
sẽ chuyển lời mời này đến bên nhận.
Khi yêu cầu được chuyển nó sẽ mất chút thời gian để bên nhận chấp
nhận hoặc từ chối lời mời do đó bên gửi cần phải được thông báo là yêu
cầu đang được xử lý. Hệ thống SIP sẽ chuyển những thông tin báo đang
được xử lý đến bên gửi để tránh bên gửi tiếp tục gửi lại yêu cầu.
Nếu bên nhận yêu cầu chấp nhận yêu cầu thì bên gửi cần biết được thông
tin đó để bắt đầu thành lập cuộc gọi. SIP sẽ chuyển thông tin về sự chấp
nhận đến bên gửi.
Việc thống nhất các tham số để giao tiếp như sự mã hóa và giải mã giọng
nói và video. SIP sẽ sử dụng việc mô tả phiên để thực hiện chức năng
này.
Giả sử lúc đầu phiên có truyền thông cả audio và video. Trong khi giao
tiếp một bên có thể muốn không truyền video nữa. Lúc này SIP sẽ chỉnh
sửa phiên, một mô tả phiên mới không có video sẽ gửi đến bên kia và
nếu yêu cầu được chấp nhận thì lúc này chỉ còn truyền giọng nói.
Sau khi giao tiếp một bên muốn ngắt cuộc gọi chấm dứt đàm thoại thì hệ
thống SIP sẽ chấm dứt phiên.
7
2.5.2. Định vị người dùng:
Để khởi tạo phiên cần định tuyến từ bên gửi đến bên nhận. Trong mạng IP
việc định tuyến cần dựa vào địa chỉ IP mà bên gửi không biết địa chỉ IP của bên
nhận (địa chỉ IP của người nhận có thể thay đổi), nhưng người gửi phải biết định
danh chung của người nhận. Hơn nữa người nhận có thể sử dụng các thiết bị khác
nhau để giao tiếp do đó địa chỉ IP của thiết bị của người nhận là không cố định.
Với yêu cầu đó hệ thống cần xác định vị trí của người dùng dựa trên định
danh chung. Điều đó cần ánh xạ định danh chung với địa chỉ IP. Do vậy để một
thiết bị nhận được cuộc gọi nó cần đăng ký.
Sau khi đăng ký địa chỉ IP thiết bị của người dùng và định danh chung được
lưu vào bảng chứa dữ liệu. Khi có cuộc gọi đến thiết bị của người dùng, cuộc gọi
sẽ định tuyến đến server kết hợp với thiết bị đó, truy vấn DNS để có địa chỉ IP và
gửi tín hiệu đến người dùng.
8
2.6. Các thành phần:
2.6.1. User Agents (UAs):
Một UA bao gồm 2 thành phần: User Agent Client (UAC) và User Agent
Server (UAS). UAC chịu trách nhiệm tạo yêu cầu SIP mới và nhận câu trả lời.
UAS chịu trách nhiệm nhận yêu cầu SIP và tạo câu trả lời thích hợp.
UA được tích hợp trong thiết bị của người dùng do đó người dùng có thể
tương tác với nó thông qua giao diện. SIP UA là một phần không thể thiếu của
một ứng dụng truyền thông đa phương tiện. Những UA có thể được cài đặt theo
nhiều cách khác nhau. Nó có thể là phần mềm chạy trên máy tính hay là ứng
dụng chạy trên điện thoại di động.
2.6.2. Proxy server:
Proxy Server hoạt động như là client và server cho mục đích tạo yêu cầu
thay cho client khác.Vai trò chính của Proxy server là định tuyến tức là công việc
của nó là chuyển yêu cầu đến server tiếp theo cho đến người dùng đích.
Có thể có một tập hợp proxy server giúp định tuyến yêu cầu giữa UAC và
UAS. Có các loại proxy sau:
2.3.2.1. Outbound proxy:
Một Outbound proxy giúp UA định tuyến các yêu cầu gửi đi. UA
thường cấu hình để gửi yêu cầu đến outbound proxy, sau đó proxy sẽ định
tuyến cho chúng.
9
2.3.2.2. Inbound proxy:
Inbound proxy nắm giữ các yêu cầu đến sau đó sẽ chuyển cho UA
thích hợp trong miền mà nó chịu trách nhiệm. Khi nhận được yêu cầu đến
người dùng trong miền của nó, nó truy vấn Location Service để xác định
Contact Address rồi chuyển yều cầu đến địa chỉ này.
2.3.2.3. Forking:
Có trường hợp người dùng đăng ký nhiều địa chỉ cho một định danh
lúc đó proxy có thể thực hiện theo 2 cách như sau: Tìm kiếm lần lượt từng
địa chỉ hoặc tìm kiếm đồng thời nhiều địa chỉ.
2.3.3. Redirect Server:
Redirect server là server UA, nó nhận yêu cầu từ UAC và tạo câu trả lời cho
những yêu cầu này. Những câu trả lời này sẽ hướng dẫn UAC liên hệ với URI
khác.
10
2.3.4. Registrars:
Registrar là máy chủ chấp nhận các yêu cầu đăng ký từ UA. Một UA cần
đăng ký trước khi nó có thể nhận cuộc gọi. Khi registrar chấp nhận yều cầu đăng
ký từ UA nó đặt những thông tin nhận được trong một cơ sở dữ liệu gọi là
Location Service. Những thông tin trong Location Service được ánh xạ giữa vị trí
người dùng và định danh chung của người dùng.
2.3.5. Location service:
Location Service không phải là thực thể SIP. Nó là cơ sở dữ liệu chứa đựng
danh sách sự ánh xạ giữa Addresses of Record (AORs) là các định danh chung và
Contact Addresses là vị trí người dùng trong miền cụ thể. AORs và Contact
Addresses là các SIP URIs. Khi Registrar nhận yêu cầu đăng ký từ UA nó đưa
thông tin đến Location Service, Location Service cũng liên hệ với Proxy Server
của một miền để nhận thông tin vị trí của người dùng được gọi.
11
Chương 3:
Tổ chức của giao thức SIP
3.1. Thông điệp SIP:
Các thành phần SIP là các thành phần logic chứ không phải là thành phần vật lý.
Một thành phần vật lý như Server có thể hỗ trợ nhiều thành phần logic. Các thành phần
SIP phải có khả năng xử lý thông điệp SIP gọi là các lớp. Có các lớp sau:
• Cú pháp và mã hóa: Là lớp cần thiết, cú pháp và mã hóa cần phải hiểu để
thông dịch hoặc xử lý các thông điệp SIP.
• Lớp vận chuyển: dùng để tạo các thông điệp và gửi trên mạng đến các thành
phần SIP khác.
• Lớp giao dịch: chịu trách nhiệm quản lý, truyền lại các câu trả lời đến các yêu
cầu.
• Các người dùng giao dịch: chịu trách nhiệm tạo các thông điệp như INVITE,
hủy bỏ giao dịch, xác định địa chỉ.
Trong các lớp trên 2 lớp đầu là cần thiết phải có.
3.1.1. Khái niệm Dialog:
Khi 2 thiết bị giao tiếp với nhau chúng trao đổi những thông điệp (là các
giao dịch). Ví dụ một điện thoại gửi yêu cầu INVITE đến điện thoại nhận. Nếu
điện thoại nhận chấp nhận yêu cầu thì nó gửi câu trả lời đến yêu cầu và trao đổi
các thông điệp khác (xem như là một dialog với thiết bị khác). Một phiên có thể
có nhiều dialog như hình sau:
12
Mỗi dialog cần một dialog ID bắt nguồn từ SIP header. Khi UAC gửi yêu
cầu nó mong chờ câu trả lời. Câu trả lời cần những header như TO, FROM
CALL ID. Header TO và FROM cần tham số TAG sử dụng để tính dialog ID.
Dialog ID là duy nhất trong UAC và UAS.
SIP là giao thức dạng text có nghĩa thông tin được mã hóa trong giao thức
là các chuỗi ký tự. Thông điệp SIP là những hàng ký tự, mỗi hàng được phân biệt
bởi hai ký tự là ký tự về đầu dòng và ký tự xuống hàng Carriage Return and Line
Feed (CRLF).
Có hai loại thông điệp là yêu cầu và câu trả lời cho yêu cầu. Cả hai loại
thông điệp đều bao gồm một hàng bắt đầu, một hoặc nhiều các field header, một
dòng trắng để xác định kết thúc các field header và một phần thân thông điệp tùy
chọn. Field header là một hàng bao gồm tên header, dấu “:”, giá trị của header và
kết thúc bởi CRLF.
13
3.1.2. Yêu cầu:
Một yêu cầu được gửi từ SIP client đến SIP server. Dạng yêu cầu có hàng
bắt đầu như sau:
METHOD
REQUEST_URI SIP_VERSION
METHOD xác định loại yêu cầu được gửi:
REGISTER:
Sử dụng để đăng ký User.
INVITE:
Dùng để mời một user đến một session.
ACK:
Xác nhận việc nhận yêu cầu khi cài đặt phiên
CANCEL:
Hủy giao dịch
BYE:
Kết thúc phiên.
OPTIONS:
Truy vấn server.
INFO:
Sử dụng để trao đổi thông tin như số đã gọi.
MESSAGE:
Sử dụng cho những thông điệp ngắn.
NOTIFY:
Sử dụng để thông báo cho các thành phần.
SUBSCRIBE:
Đăng ký nhận thông báo.
UPDATE:
Cập nhật thông tin phiên.
Request-URI là một SIP URI chỉ rõ người dùng hay dịch vụ mà yêu cầu này
gửi đến. Request-URI là khá quan trọng vì sử dụng để định tuyến yêu cầu.
Hình trên minh họa giá trị của Request-URI qua các hop khác nhau từ
người gửi đến người nhận trong mạng SIP. Ta có thể thấy trong bước 1 và 2 SIP
URI chứa định danh public của người nhận. Tuy nhiên khi yêu cầu đến inbound
proxy của người nhận nó truy vấn Location service và nhận địa chỉ của người
nhận sau đó thay thế URI gốc. Trong chuỗi định tuyến trên thì Request-URI luôn
chỉ nơi đến của yêu cầu và giá trị của nó thay đổi khi đến inbound proxy của
người nhận vì đã có thông tin chính xác.
14
Trong hình trên inbound proxy của người nhận cài đặt một dịch vụ chuyển
tiếp đơn giản, khi nó nhận một yêu cầu có đích đến là abc nó tự động thay đổi giá
trị Request-URI đến SIP URI của cba người mà abc muốn chuyển tất cả các cuộc
gọi đến của abc.
3.1.3. Các câu trả lời:
Câu trả lời gửi từ server đến client theo yêu cầu. Dạng của câu trả lời là:
SIP VERSION (space)STATUS CODE(space)REASON PHRASE(crlf)
SIP VERSION là phiên bản SIP, mặc định là 2.0
Status code được định nghĩa theo lớp. Có 6 lớp mã tình trạng
1xx: Mã tạm thời:
Các mã thuộc nhóm này chỉ ra rằng yêu cầu đã được nhận và đang
được xử lý. Đây là mã trả lời thường xuyên từ server đến client, nó như là
một sự xác nhận. Mục đích là ngăn chặn việc gửi lại yêu cầu nhiều lần.
2xx: Thành công:
Chỉ ra rằng yêu cầu đã được xử lý và hành động đã hoàn thành.
3xx: Chuyển tiếp.
Chuyển tiếp được gửi khi một phiên được chuyển tiếp đến một địa chỉ
khác. Câu trả lời sẽ giải thích lý do chuyển tiếp và chi tiết nơi thông điệp
được chuyển tiếp.
4xx: Lỗi client:
Lỗi client thể hiện sai cú pháp của request và server không thể xử lý
request.
5xx: Lỗi server.
Lỗi server thể hiện rằng yêu cầu đúng nhưng một lỗi đã xảy ra trên
server và yêu cầu không thể được xử lý. Lý do được chỉ rõ trong thông điệp
gửi client.
6xx: Lỗi chung.
Lỗi xảy ra không ở phía client hoặc server mà có thể do mạng.
Chi tiết một số mã như sau:
15
16
3.1.4. Field header:
Field header chứa thông tin chi tiết về yêu cầu hoặc trả lời. Header có thể
chứa thông tin nơi đến hoặc thôn tin định tuyến. Dạng của header như sau:
header_ name: header_value
Có thể có nhiều khoảng trắng giữa tên và giá trị của header nhưng khuyến
cáo là chỉ nên có một khoảng trắng.
ROUTE:
ROUTE:
Như trên có thể có nhiều tên header giống nhau trong một yêu cầu như tên
header ROUTE. Khi header giống nhau này xuất hiện nhiều lần thứ tự không
được chỉ rõ nhưng khuyến cáo rằng việc định tuyến nên được liệt kê đầu yêu cầu
để cho proxy nhanh chóng xử lý thông điệp.
17