|
|
Компьютеры - SIP - Сообщения протокола SIP08 июня 2011
Оглавление: 1. SIP 2. Принципы протокола 3. Дизайн протокола 4. Адресация 5. Архитектура сети 6. Сообщения протокола SIP 7. Алгоритмы установления соединения 8. SIP-T и SIP-I 9. Сравнение с H.323 10. Шифрование
Сообщения протокола SIP, представляют собой последовательности текстовых строк, закодированных в соответствии с документом RFC 2279. Структура и синтаксис сообщений SIP идентичны используемым в протоколе HTTP. Структура сообщений протокола SIP:
Стартовая строка |
Заголовки |
Пустая строка |
Тело сообщения |
- Стартовая строка начальная строка любого SIP-сообщения. Если сообщение является запросом, в ней указывается тип запроса, адресат и номер версии протокола. Если сообщение является ответом на запрос, в ней указывается номер версии протокола, тип ответа и его короткая расшифровка.
- Заголовки сообщений содержат информацию, необходимую для обработки сообщения
- Тело сообщения содержит описание сеансов связи. Не все запросы содержат тело сообщения. Все ответы могут содержать тело сообщения, но содержимое тела в них бывает разным.
Пример запроса INVITE:
INVITE sip:nikolia@example.ru SIP/2.0
Record-Route: <sip:nikolia@10.0.0.10;lr>
Via: SIP/2.0/UDP 10.0.0.10;branch=z9hG4bK3af7.0a6e92f4.0
Via: SIP/2.0/UDP 192.168.0.2:5060;branch=z9hG4bK12ee92cb;rport=5060
From: "78128210000" <sip:78128210000@neutral.ru>;tag=as149b2d97
To: <sip:nikolia@example.ru>
Contact: <sip:78128210000@neutral.ru>
Call-ID: 3cbf958e6f43d91905c3fa964a373dcb@example.ru
CSeq: 103 INVITE
Max-Forwards: 16
Date: Wed, 10 Jan 2001 13:16:23 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Supported: replaces
Content-Type: application/sdp
Content-Length: 394
v=0
o=root 3303 3304 IN IP4 10.0.0.10
s=session
c=IN IP4 10.0.0.10
t=0 0
m=audio 40358 RTP/AVP 0 8 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=silenceSupp:off - - - -
a=sendrecv
Запросы
В первоначальной версии протокола SIP было определено шесть типов запросов. С помощью запросов клиент сообщает о текущем местоположении, приглашает пользователей принять участие в сеансах связи, модифицирует уже установленные сеансы, завершает их и т. д. Тип запроса указывается в стартовой строке.
- Приглашает пользователя к сеансу связи. Обычно содержит SDP-описание сеанса.
- АСК Подтверждает приём ответа на запрос INVITE.
- BYE Завершает сеанс связи. Может быть передан любой из сторон, участвующих в сеансе.
- CANCEL Отменяет обработку ранее переданных запросов, но не влияет на запросы, которые уже закончили обрабатываться.
- REGISTER Переносит адресную информацию для регистрации пользователя на сервере определения местоположения.
- OPTIONS Запрашивает информацию о функциональных возможностях терминала.
Но в процессе развития, в протокол было добавлено еще несколько типов запросов, которые дополнили его функциональность:
- PRACK временное подтверждение
- SUBSCRIBE подписка на получение уведомлений о событии
- NOTIFY уведомление подписчика о событии
- PUBLISH публикация события на сервере
- INFO передача информации, которая не изменяет состояние сессии
- REFER запрос получателя о передаче запроса SIP
- MESSAGE передача мгновенных сообщений средствами SIP
- UPDATE модификация состояния сессии без изменения состояния диалога
Ответы на запросы
Ответы на запросы сообщают о результате обработки запроса либо передают запрошенную информацию. Структуру ответов и их виды протокол SIP унаследовал от протокола HTTP. Определено шесть типов ответов, несущих разную функциональную нагрузку. Тип ответа кодируется трёхзначным числом, самой важной является первая цифра, которая определяет класс ответа:
- 1ХХ Информационные ответы; показывают, что запрос находится в стадии обработки. Наиболее распространённые ответы данного типа 100 Trying, 180 Ringing, 183 Session Progress.
- 2ХХ Финальные ответы, означающие, что запрос был успешно обработан. В настоящее время в данном типе определены только два ответа 200 OK и 202 Accepted.
- 3ХХ Финальные ответы, информирующие оборудование вызывающего пользователя о новом местоположении вызываемого пользователя, например, ответ 302 Moved Temporary.
- 4ХХ Финальные ответы, информирующие об ошибке при обработке или выполнении запроса, например, 403 Forbidden или классический для протокола HTTP ответ 404 Not Found.
- 5ХХ Финальные ответы, информирующие о том, что запрос не может быть обработан из-за отказа сервера, 500 Server Internal Error.
- 6ХХ Финальные ответы, информирующие о том, что соединение с вызываемым пользователем установить невозможно, например, ответ 603 Decline означает, что вызываемый пользователь отклонил входящий вызов.
Просмотров: 12250
|