SIP - Nhắn tin
Thông điệp SIP có hai loại - requests và responses.
Dòng mở đầu của một yêu cầu chứa một phương thức xác định yêu cầu và URI Yêu cầu xác định nơi gửi yêu cầu.
Tương tự, dòng mở đầu của phản hồi chứa mã phản hồi.
Yêu cầu phương thức
SIP requestslà những mã được sử dụng để thiết lập giao tiếp. Để bổ sung cho chúng, cóSIP responses thường cho biết một yêu cầu thành công hay không thành công.
Các yêu cầu SIP này được gọi là PHƯƠNG PHÁP làm cho thông báo SIP có thể hoạt động được.
METHODS có thể được coi là yêu cầu SIP, vì chúng yêu cầu một hành động cụ thể được thực hiện bởi tác nhân người dùng hoặc máy chủ khác.
PHƯƠNG PHÁP được phân biệt thành hai loại -
Phương pháp cốt lõi
Phương pháp mở rộng
Phương pháp cốt lõi
Có sáu phương pháp cốt lõi như được thảo luận dưới đây.
MỜI GỌI
INVITE được sử dụng để bắt đầu một phiên với tác nhân người dùng. Nói cách khác, phương thức INVITE được sử dụng để thiết lập phiên truyền thông giữa các tác nhân người dùng.
INVITE có thể chứa thông tin phương tiện của người gọi trong nội dung thư.
Một phiên được coi là đã được thiết lập nếu INVITE nhận được phản hồi thành công (2xx) hoặc ACK đã được gửi.
Yêu cầu INVITE thành công thiết lập dialog giữa hai tác nhân người dùng tiếp tục cho đến khi một BYE được gửi để kết thúc phiên.
INVITE được gửi trong hộp thoại đã thiết lập được gọi là re-INVITE.
MỜI lại được sử dụng để thay đổi đặc điểm phiên hoặc làm mới trạng thái của hộp thoại.
Ví dụ về INVITE
Đoạn mã sau đây cho thấy cách INVITE được sử dụng.
INVITE sips:[email protected] SIP/2.0
Via: SIP/2.0/TLS client.ANC.com:5061;branch = z9hG4bK74bf9
Max-Forwards: 70
From: Alice<sips:[email protected]>;tag = 1234567
To: Bob<sips:[email protected]>
Call-ID: [email protected]
CSeq: 1 INVITE
Contact: <sips:[email protected]>
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
Supported: replaces
Content-Type: application/sdp
Content-Length: ...
v = 0
o = Alice 2890844526 2890844526 IN IP4 client.ANC.com
s = Session SDP
c = IN IP4 client.ANC.com
t = 3034423619 0
m = audio 49170 RTP/AVP 0
a = rtpmap:0 PCMU/8000
TẠM BIỆT
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 một phiên.
Nó không thể được gửi bởi một máy chủ proxy.
Yêu cầu BYE thường các tuyến kết thúc để kết thúc, 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.
ĐĂNG KÝ
Yêu cầu ĐĂNG KÝ thực hiện việc đăng ký tác nhân người dùng. Yêu cầu này được gửi bởi một tác nhân người dùng đến một máy chủ đăng ký.
Yêu cầu ĐĂNG KÝ có thể được chuyển tiếp hoặc ủy quyền cho đến khi nó đến được nhà đăng ký có thẩm quyền của miền được chỉ định.
Nó mang AOR (Địa chỉ của Bản ghi) trong To tiêu đề của người dùng đang được đăng ký.
Yêu cầu ĐĂNG KÝ chứa khoảng thời gian (3600 giây).
Một tác nhân người dùng có thể gửi yêu cầu ĐĂNG KÝ thay mặt cho một tác nhân người dùng khác. Điều này được gọi làthird-party registration. Đây,From thẻ chứa URI của bên gửi đăng ký thay mặt cho bên được xác định trong To đầu trang.
HỦY
CANCEL được sử dụng để kết thúc một phiên không được thiết lập. Tác nhân người dùng sử dụng yêu cầu này để hủy một 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 tác nhân người dùng hoặc một máy chủ proxy.
CANCEL là một hop by hop yêu cầu, tức là, nó đi qua các phần tử giữa tác nhân người dùng và nhận phản hồi do phần tử trạng thái tiếp theo tạo ra.
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 tính phương tiện), nếu nó không có sẵn trong INVITE.
ACK không được sử dụng để sửa đổi mô tả phương tiện đã được gửi trong INVITE ban đầu.
Một proxy trạng thái nhận ACK phải xác định xem ACK có nên được chuyển tiếp xuôi dòng tới proxy hoặc tác nhân người dùng khác hay không.
Đối với các phản hồi 2xx, ACK là kết thúc để kết thúc, nhưng đối với tất cả các phản hồi cuối cùng khác, nó hoạt động trên cơ sở từng bước khi các proxy trạng thái có liên quan.
TÙY CHỌN
Phương pháp OPTIONS được sử dụng để truy vấn tác nhân người dùng hoặc máy chủ proxy về khả năng của nó và khám phá tính khả dụng hiện tại của nó. Phản hồi cho một yêu cầu liệt kê các khả năng của tác nhân người dùng hoặc máy chủ. Một proxy không bao giờ tạo yêu cầu TÙY CHỌN.
Phương pháp mở rộng
Đăng ký
SUBSCRIBE được các tác nhân người dùng sử dụng để thiết lập đăng ký nhằm mục đích nhận thông báo về một sự kiện cụ thể.
Nó chứa một Expires trường tiêu đề cho biết thời lượng của một đăng ký.
Sau khi khoảng thời gian trôi qua, đăng ký sẽ tự động chấm dứt.
Đăng ký thiết lập một hộp thoại giữa các tác nhân người dùng.
Bạn có thể đăng ký lại một lần nữa bằng cách gửi một SUBSCRIBE khác trong hộp thoại trước khi hết hạn.
200 OK sẽ được nhận cho một đăng ký từ Người dùng.
Người dùng có thể hủy đăng ký bằng cách gửi một phương thức SUBSCRIBE khác với giá trị Expires 0 (không).
THÔNG BÁO
NOTIFY được sử dụng bởi các tác nhân người dùng để nhận được sự xuất hiện của một sự kiện cụ thể. Thông thường, THÔNG BÁO sẽ kích hoạt trong hộp thoại khi có đăng ký giữa người đăng ký và người thông báo.
Mỗi NOTIFY sẽ nhận được 200 phản hồi OK nếu nó được người thông báo nhận được.
CHÚ Ý chứa một Event trường tiêu đề cho biết sự kiện và subscriptionstate trường tiêu đề cho biết trạng thái hiện tại của đăng ký.
THÔNG BÁO luôn được gửi khi bắt đầu và kết thúc đăng ký.
CÔNG BỐ
PUBLISH được sử dụng bởi tác nhân người dùng để gửi thông tin trạng thái sự kiện đến máy chủ.
PUBLISH hầu hết hữu ích khi có nhiều nguồn thông tin sự kiện.
Yêu cầu PUBLISH tương tự như NOTIFY, ngoại trừ việc nó không được gửi trong hộp thoại.
Yêu cầu PUBLISH phải chứa một Expires trường tiêu đề và một Min-Expires trường tiêu đề.
THAM KHẢO
REFER được tác nhân người dùng sử dụng để giới thiệu một tác nhân người dùng khác truy cập vào URI cho hộp thoại.
REFER phải chứa một Refer-Tođầu trang. Đây là tiêu đề bắt buộc để THAM KHẢO.
THAM KHẢO có thể được gửi bên trong hoặc bên ngoài hộp thoại.
A 202 Accepted sẽ kích hoạt yêu cầu THAM KHẢO cho biết rằng tác nhân người dùng khác đã chấp nhận tham chiếu.
THÔNG TIN
INFO được sử dụng bởi một tác nhân người dùng để gửi thông tin báo hiệu cuộc gọi đến một tác nhân người dùng khác mà nó đã thiết lập một phiên truyền thông.
Đây là một yêu cầu từ đầu đến cuối.
Một proxy sẽ luôn chuyển tiếp một yêu cầu INFO.
CẬP NHẬT
UPDATE được sử dụng để sửa đổi trạng thái của một phiên nếu một phiên không được thiết lập. Người dùng có thể thay đổi codec với UPDATE.
NẾU một phiên được thiết lập, một Lời mời lại được sử dụng để thay đổi / cập nhật phiên.
PRACK
PRACK được sử dụng để xác nhận việc nhận được một chuyển phản hồi tạm thời đáng tin cậy (1XX).
Nói chung PRACK được tạo bởi máy khách khi nó nhận được phản hồi tạm thời có chứa RSeq số thứ tự đáng tin cậy và một supported:100rel đầu trang.
PRACK chứa giá trị (RSeq + CSeq) trong rack đầu trang.
Phương pháp PRACK áp dụng cho tất cả các phản hồi tạm thời ngoại trừ 100 phản hồi Đang thử, không bao giờ được vận chuyển một cách đáng tin cậy.
PRACK có thể chứa nội dung thư; nó có thể được sử dụng để trao đổi đề nghị / câu trả lời.
THÔNG ĐIỆP
Nó được sử dụng để gửi tin nhắn tức thì bằng SIP. IM thường bao gồm các tin nhắn ngắn được trao đổi trong thời gian thực bởi những người tham gia vào cuộc trò chuyện bằng văn bản.
MESSAGE có thể được gửi trong hộp thoại hoặc bên ngoài hộp thoại.
Nội dung của MESSAGE được đưa vào nội dung thư dưới dạng MIME tập tin đính kèm.
A 200 OK phản hồi thường được nhận để cho biết rằng thông điệp đã được gửi đến đích của nó.