SIP là giao thức dạng văn bản, sử dụng bộ ký tự ISO 10646 trong mã hoá UTF-8 trong RFC 2279. Điều này tạo cho SIP tính linh hoạt, mở rộng và dễ thực thi các ngôn ngữ lập trình cấp cao nhƣ Java, Tol, Perl. Cú pháp của SIP gần giống với giao thức HTTP, nó cho phép dùng lại mã và đơn giản hóa sự liên kết của các máy phục vụ SIP với các máy phục vụ Web. Tuy nhiên, SIP không phải là một dạng mở rộng của HTTP và có thể sử dụng với giao thức UDP. Các dạng bản tin của SIP nhƣ sau: INVITE - Bắt đầu thiết lập cuộc gọi bằng cách gửi bản tin mời đầu cuối khác tham gia
ACK - Bản tin này khẳng định client đã nhận đƣợc bản tin trả lời bản tin INVITE BYE - Bắt đầu kết thúc cuộc gọi
CANCEL - Huỷ yêu cầu đang nằm trong hàng đợi
REGISTER - Đầu cuối SIP sử dụng bản tin này để đăng ký với Registrar Server OPTIONS - Sử dụng để xác định năng lực của server
INFO - Sử dụng để tải các thông tin nhƣ tone DTMF
Giao thức SIP có nhiều điểm trùng hợp với giao thức HTTP. Các bản tin trả lời các bản tin SIP nêu trên gồm có:
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.
Cấu trúc bản tin SIP
Cả hai loại bản tin trên đều sử dụng chung một định dạng cơ bản đƣợc quy định trong RFC 2822 với cấu trúc gồm một dòng khởi đầu (start – line), một số trƣờng tiêu đề và một phần thân bản tin tuỳ chọn (hình 2.18).
Hình 2.18: Cấu trúc bản tin SIP
Trong đó, dòng bắt đầu, các dòng tiêu đề hay các dòng trắng phải đƣợc kết thúc bằng một ký tự xuống dòng (CRLF) và phải lƣu ý rằng dòng trắng vẫn phải có để ngăn cách phần tiêu đề và phần thân của bản tin ngay cả khi phần thân bản tin là rỗng.
Start line: Mỗi bản tin SIP đƣợc bắt đầu với một Start Line, Start Line vận chuyển
loại bản tin (phƣơng thức trong các Request, và mã đáp ứng trong các bản tin đáp ứng) và phiên bản của giao thức. Start line có thể là Request-Line (trong các yêu cầu) hoặc là Status-Line (trong các đáp ứng).
Headers: Các trƣờng Hearder của SIP đƣợc sử dụng để vận chuyển các thuộc tính
để của bản tin HTTP theo cả cú pháp và ngữ nghĩa. Tiêu đề bản tin bao gồm bốn loại: tiêu đề chung, tiêu đề yêu cầu, tiêu đề đáp ứng và tiêu để thực thể.
Body: Thân bản tin đƣợc sử dụng để mô tả phiên đƣợc khởi tạo (ví dụ: trong một
phiên multimedia phần này sẽ mang loại mã hóa audio và video, tốc độ lấy mẫu …), hoặc nó có thể đƣợc sử dụng để mang dữ liệu dƣới dạng text hoặc nhị phân (không đƣợc dịch) mà liên quan đến phiên đó. Phần thân bản tin có thể xuất hiện trong cả bản tin yêu cầu và đáp ứng. Các loại Body bao gồm: giao thức mô tả phiên SDP, mở rộng thƣ điện tử internet đa mục đích MIME (Multipurpose Internet Mail Extentions) và các phần định nghĩa trong IETF.
SDP là một giao thức lớp ứng dụng đƣợc IETF thiết kế để mô tả các phiên đa phƣơng tiện và là giao thức dựa trên văn bản. SDP mang thông tin về các luồng phƣơng tiện để các bên tham gia phiên đa phƣơng tiện có thể biết đƣợc thông tin thiết lập tƣơng ứng. SDP chỉ có mục đích mô tả phiên chứ không phải để đàm phán các phƣơng thức mã hoá phƣơng tiện. Nó không chứa bất kỳ giao thức chuyển tải nào. Vì thế thông thƣờng SDP đƣợc chứa trong phần tải tin của các giao thức khác. Chẳng hạn phần tải tin trong bản tin INVITE có thể chứa SDP nếu có chỉ thị về nó trong tiêu đề content-type và content-application. Một bản tin SDP bao gồm các mức thông tin sau:
o Mô tả mức phiên. Mức này bao gồm nhận dạng phiên và các thông số mức phiên khác nhƣ địa chỉ IP, chủ đề, thông tin giao tiếp về bộ tạo và/hay phiên. o Mô tả mức định thời. Thời gian bắt đầu và kết thúc, thời gian lặp lại, một hay
nhiều mô tả mức phƣơng tiện.
o Khuôn dạng và loại phƣơng tiện. Giao thức truyền tải và số cổng, các thông số mức phƣơng tiện khác.