SIP là Giao Thức khởi tạo phiên. Trong điện thoại IP và điện thoại truyền thống, các kỹ sư mạng luôn phân biệt rõ ràng giữa hai giai đoạn khác nhau của cuộc gọi thoại. Giai đoạn đầu tiên là “thiết lập cuộc gọi”, bao gồm tất cả các chi tiết cần thiết để hai điện thoại có thể nói chuyện với nhau. Khi cuộc gọi đã được thiết lập, điện thoại sẽ bước vào giai đoạn “truyền dữ liệu” của cuộc gọi, bằng cách sử dụng một nhóm giao thức hoàn toàn khác để thực sự di chuyển các gói thoại giữa hai điện thoại. Trong thế giới của VoIP, SIP là một giao thức thiết lập cuộc gọi hoạt động ở lớp ứng dụng.
SIP là một giao thức rất linh hoạt có chiều sâu lớn. Nó được thiết kế để trở thành một cách có mục đích chung để thiết lập các phiên đa phương tiện thời gian thực giữa các nhóm người tham gia. Ví dụ, ngoài các cuộc gọi điện thoại đơn giản, SIP cũng có thể được sử dụng để thiết lập các cuộc họp đa hướng video và âm thanh, hoặc hội nghị nhắn tin tức thì. Trong tài liệu này, sẽ tập trung vào các khả năng của SIP đối với VoIP và cách nó thiết lập các cuộc gọi sau đó sử dụng RTP (Giao thức truyền tải thời gian thực) để thực sự gửi dữ liệu thoại giữa các điện thoại.
SIP cũng có nhiều chức năng vì nó không chỉ xử lý thiết lập cuộc gọi. Bảng dưới đây cho thấy năm chức năng chính trong SIP theo quan điểm VoIP.
Thông Số |
Mô Tả |
Vị trí người dùng và đăng ký |
Điểm cuối (điện thoại) thông báo cho proxy SIP về vị trí của chúng; SIP xác định điểm cuối nào sẽ tham gia vào cuộc gọi. |
Tính khả dụng của người dùng |
SIP được sử dụng bởi các điểm cuối để xác định xem họ có “trả lời” một cuộc gọi hay không. |
Khả năng của người dùng |
SIP được sử dụng bởi các điểm cuối để đàm phán các khả năng của phương tiện, chẳng hạn như thỏa thuận về voice codec được hỗ trợ lẫn nhau. |
Thiết lập phiên |
SIP cho biết điểm cuối rằng điện thoại của nó phải “đổ chuông;” SIP được sử dụng để đồng ý về các thuộc tính phiên được sử dụng bởi bên gọi và bên được gọi. |
Quản lý phiên |
SIP được sử dụng để chuyển cuộc gọi, kết thúc cuộc gọi và thay đổi các thông số cuộc gọi giữa phiên (chẳng hạn như thêm hội nghị 3 chiều). |
Một trong những điều tuyệt vời về SIP là nó là dựa trên định dạng văn bản được mô hình hóa tương tự như trong HTTP. Điều này giúp bạn dễ dàng gỡ lỗi vì các thông báo dễ tạo (nếu bạn là nhà phát triển) và dễ thấy (nếu bạn là người quản lý mạng). Trái ngược với H.323, SIP là một giao thức cực kỳ đơn giản. Tuy nhiên, nó có đủ các tính năng mạnh mẽ để mô hình hóa hoạt động của một tổng đài điện thoại truyền thống rất phức tạp.
SIP có thể chạy qua IPv4 và IPv6 và nó có thể sử dụng TCP hoặc UDP. Tuy nhiên, các triển khai phổ biến nhất sử dụng IPv4 và UDP. Điều này giảm thiểu chi phí, do đó tăng tốc hiệu suất.
Mặc dù hai thiết bị SIP có thể nói chuyện trực tiếp với nhau, nhưng nhìn chung chúng sẽ sử dụng một hệ thống trung gian hoạt động như một proxy SIP. Lưu ý rằng proxy SIP chỉ tham gia vào các bản tin SIP --- sau khi cuộc gọi được thiết lập, các điện thoại sẽ gửi lưu lượng thoại trực tiếp cho nhau mà không liên quan đến proxy. SIP proxy rất hữu ích trong việc giảm tải các tác vụ và đơn giản hóa việc triển khai các điện thoại trạm cuối. Ví dụ: một điện thoại SIP có thể muốn thực hiện cuộc gọi đến một điện thoại khác theo số máy lẻ 4094. Mặc dù điện thoại có thể có một số cách kỳ diệu để dịch 4094 đó thành địa chỉ IP hoặc vị trí, nó thường sẽ chỉ gửi yêu cầu cuộc gọi đến của chính nó SIP proxy. Công việc của proxy SIP là biết “4094” thực sự có nghĩa là gì: Đó có phải là điện thoại không? Một hệ thống trả lời tự động? Có lẽ một số điện thoại, tất cả sẽ được rung cùng một lúc?
Chúng ta thường nghĩ trong điện thoại có địa chỉ số. Trong SIP, một trạm cuối có SIP URI (một dạng URL). Vì điện thoại thường có bàn phím số nên điện thoại có trách nhiệm dịch những gì bạn quay số (chẳng hạn như mã số này 4094) thành một URL SIP (ví dụ như sip này: 4094@sip.ilabs.interop.net). Bạn có thể tìm hiểu thêm về cách các URI SIP, số điện thoại truyền thống, DNS và địa chỉ IP trong sách về labpro của VnPro chúng tôi.
Một hoạt động phổ biến khác trong SIP được gọi là Đăng ký. Trong cuộc gọi ví dụ của chúng tôi, đây có thể là cách proxy Biloxi biết được vị trí của Bob. Khả năng đăng ký đặc biệt hữu ích trong môi trường mà điện thoại không có địa chỉ IP tĩnh (chẳng hạn như môi trường DHCP hoặc khi điện thoại di chuyển với chủ nhân của nó). Trong SIP, máy chủ đăng ký có thể được đặt cùng vị trí với máy chủ proxy hoặc chúng có thể là các hệ thống khác nhau. Bob cũng không giới hạn đăng ký từ một vị trí duy nhất. Anh ta có điện thoại SIP ở nhà và tại văn phòng mà cả hai đều đăng ký với máy chủ SIP. Sau đó, máy chủ proxy có trách nhiệm quyết định điện thoại nào sẽ “đổ chuông” khi có cuộc gọi đến cho Bob. Với SIP, điều đó có nghĩa là chọn một điện thoại để đổ chuông hoặc chỉ đổ chuông tất cả các điện thoại cùng một lúc.
Bởi vì SIP được sử dụng để điều khiển cuộc gọi, các tính năng như thư thoại và người trả lời tự động không phải là một phần của giao thức SIP. Thay vào đó, chúng được cung cấp bởi các điểm cuối gửi và nhận các cuộc gọi. Điều này có nghĩa là mạng VoIP dựa trên SIP không thực sự song song với “PBX” trong điện thoại truyền thống. Bạn có thể nghe thấy thuật ngữ “SIP Server” hoặc “SIP PBX” được sử dụng để mô tả máy chủ proxy SIP, nhưng chức năng hoàn toàn khác. Tuy nhiên, có thể tích hợp một số tính năng PBX truyền thống, chẳng hạn như hội nghị vào một máy chủ proxy SIP. Ví dụ: máy chủ proxy Asterisk SIP được thử nghiệm như một phần của cuộc trình diễn iLabs của chúng tôi bao gồm cả thư thoại và người trả lời tự động. Trong các trường hợp khác, chẳng hạn như máy chủ hội nghị với các yêu cầu xử lý tín hiệu kỹ thuật số.
Định dạng dễ đọc của SIP đã làm cho việc triển khai và gỡ lỗi SIP dễ dàng hơn so với các giao thức tương tự khác, chẳng hạn như H.323
INVITE sip:bob@biloxi.com SIP/2.0
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK77ds Max-Forwards: 70
To: Bob <sip:bob@biloxi.com>
From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710@pc33.atlanta.com
CSeq: 314159 INVITE
Contact: <sip:alice@pc33.atlanta.com> Content-Type: application/sdp
Content-Length: 142 Next: