- •1 Назначение и принципы протокола SIP
- •Назначение и принципы протокола SIP
- •Согласно принципам семиуровневой модели Взаимодействия открытых систем OSI (Open Systems Interconnection) особенностью протокола
- •В основу протокола положены следующие принципы:
- •Масштабируемость сети
- •Персональная мобильность пользователей.
- •Расширяемость протокола
- •Интеграция в стек существующих протоколов Интернет
- •Взаимодействие с другими протоколами сигнализации
- •Протокол SDP
- •Знаком «*» обозначены необязательные поля. Поля, используемые в протоколе:
- •Описание параметров времени
- •ЗАПРОС
- •Терминал
- •Сервер
- •Прокси-сервер
- •Предусмотрено два типа прокси-серверов - с
- •Сервер переадресации
- •Сервер определения местоположения пользователей
- •ЗАПРОС
- •Request-URI
- •Существует 6 основных видов запросов:
- •3 Запрос CANCEL отменяет обработку ранее переданных запросов с теми же, что и
- •После испытаний протокола SIP в реальных сетях
- •ОТВЕТ
- •Reason-Phrase даёт краткое описание кода ответа и предназначена для визуального восприятия пользователем.
- •Определено шесть классов ответов. Все ответы делятся на два типа: информационные и окончательные.
- •Информационные или предварительные ответы (1xx)
- •Ответы успешной обработки запроса (2xx)
- •SIP-Ответы успешной обработки запроса.
- •Ответы перенаправления вызова (3xx)
- •SIP-ответы перенаправления вызова.
- •302 Moved Temporarily. Вызываемый пользователь временно изменил свое
- •Ответы ошибки в запросе (4xx)
- •Ответы отказа сервера (5xx)
- •SIP-ответы отказа сервера.
- •Ответы полной невозможности установления соединения (6xx)
- •Адресация в сетях SIP
- •Заголовки сообщений
- •Заголовок Call-ID - уникальный идентификатор сеанса связи
- •Реализация услуг телефонии на базе протокола SIP
- •Процедура управления соединением
- •Эти заголовки обязательны для всех SIP-запросов. Они являются основными частями SIP-сообщения, поскольку обеспечивают
- •Если запрос принимается , должны быть произведены любые связанные с ним изменения состояния
- •5 Обработка заголовка Require.Поле этого заголовка используется UAC, чтобы сообщить UAS о расширениях,
- •Установление соединения с участием прокси-сервера
- •1 INVITE Anton Прокси-сервер1
- •INVITE sip:vladimir@protei.ru SIP/2.0
- •Max-Forwards: 70
- •Call-ID: 3848276298220188511@niits.ru
- •Порядковый
- •Content-Type: application/sdp
- •Content-Length: 151
- •SIP/2.0 407 Proxy Authorization Required
- •Call-ID: 3848276298220188511@niits.ru
- •Запрос ACK должен содержать значения заголовков Call-ID, From, и поля Request-URI, идентичные тем,
- •Proxy1 выполняя следующие шаги: 1Создаёт копию полученного запроса.
- •Proxy2 добавляет в сообщение свой заголовок Via:
- •Местоположение вызываемого пользователя определено. Вызываемый пользователь получает сигнал о входящем вызове от своего
- •11 180 (Ringing)
- •Демонстрационная часть
- •К IP-сети подключены два абонента с sip- адресами:
- •Вызываемый пользователь временно изменил свое местоположение и может быть найден по адресу, указанному
- •INVITE
- •На этом изучение теоретического материала заканчивается.
Ответы успешной обработки запроса (2xx)
Ответы класса 2хх означают, что запрос был успешно обработан.
Назад |
|
Таблица |
|
|
|
SIP-Ответы успешной обработки запроса.
Код |
Назначение |
|
|
|
|
|
|
200 |
OK. Запрос успешно выполнен. |
|
|
Ответ 200 на запрос INVITE означает, что вызываемый пользователь согласен принять |
|
||
|
участие в сеансе связи, в теле ответа указываются возможности оборудования вызываемого |
|
|
|
пользователя. |
|
|
|
Ответ 200 на запрос BYE означает завершение вызова, в теле ответа не переносится |
|
|
|
никакой информации. |
|
|
|
Ответ 200 на запрос CANCEL означает отмену поиска, в теле ответа не переносится никакой |
|
|
|
информации. |
|
|
|
Ответ 200 на запрос REGISTER означает, что регистрация прошла успешно. |
|
|
|
Ответ 200 на запрос OPTIONS означает согласие вызываемого пользователя сообщить |
|
|
|
функциональные возможности своего оборудования, которые содержаться в теле ответа. |
|
|
|
|
|
|
202 |
Accepted. Запрос был принят для обработки, но обработка еще не завершена. Неизвестно |
|
|
будет ли выполнен запрос, поскольку после завершения обработки запрос может быть |
|
||
|
отклонён. |
|
|
|
Значение ответа 202 намеренно неопределённое. Цель такого ответа – позволить серверу |
|
|
|
принять запрос для обработки без предъявления требования, чтобы соединение агента |
|
|
|
пользователя с сервером существовало до завершения обработки запроса. Ответ должен |
|
|
|
содержать информацию о текущем статусе запроса и предположительное время, когда |
|
|
|
обработка запроса будет завершена. |
|
|
|
|
|
Назад
Ответы перенаправления вызова (3xx)
Ответы класса 3хх информируют оборудование вызывающего пользователя о новом местоположении вызываемого пользователя или об альтернативных сервисах, с помощью которых может быть обслужен вызов пользователя.
Назад |
|
Таблица |
|
|
|
SIP-ответы перенаправления вызова.
Код |
Назначение |
|
|
|
|
|
|
300 |
Multiple Choices. Вызываемый пользователь доступен по нескольким адресам. |
|
|
Эти адреса передаются вызывающему пользователю, и тот может выбрать |
|
||
|
один из них и направить вызов по этому адресу. Ответ может содержать тело |
|
|
|
сообщение, включающее список доступных ресурсов с основными |
|
|
|
характеристиками и их местоположение. UA выбирает из списка наиболее |
|
|
|
подходящий вариант при условии, что это разрешено в поле заголовка Accept. |
|
|
|
|
|
|
301 |
Moved Permanently. Вызываемый пользователь больше не находится по |
|
|
указанному в запросе адресу и вызывающий пользователь должен направлять |
|
||
|
запросы на новый адрес, указанный в заголовке Contact ответа. Возможно |
|
|
|
получение списка возможных адресов вызываемого пользователя, и |
|
|
|
вызывающий пользователь может задавать порядок, в котором будут |
|
|
|
последовательно «обзваниваться» номера из этого списка для установления |
|
|
|
соединения. Если сервер не может найти в своей памяти никакой информации |
|
|
|
о местоположении вызываемого пользователя, он передает ответ отказа 404 |
|
|
|
(Not Found). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
302 Moved Temporarily. Вызываемый пользователь временно изменил свое
местоположение и может быть найден по адресу, указанному в заголовке Contact ответа. Может использоваться при ручной переадресации вызова, потому что сам сервер не переадресовывает вызов (а предлагает только перенаправление). Поле Request-URI переадресованного запроса имеет то же значение, что и в заголовок Contact ответа. Время действия контактного адреса указывается в поле заголовка Expires или в качестве значения параметра «expires» в заголовке Contact. Оба прокси-сервера и агенты пользователя могут буферизировать этот URI на время действия. Если время действия не ограничено, то данный адрес предназначен лишь для единственного использования и не должен заноситься в кэш-память для последующих транзакций. Временный URI может измениться раньше, чем закончится время действия контактного адреса.
305 Use Proxy. Вызываемый пользователь не доступен напрямую, входящий
вызов должен обязательно пройти через прокси-сервер. Вызывающей стороне рекомендуется повторить запрос, передав его через прокси-сервер, адрес которого указан в поле заголовка Contact. Этот ответ передаёт только UAS.
380 Alternative Service. Запрошенная услуга недоступна, но доступны
альтернативные варианты обслуживания, которые описаны в теле сообщения ответа.
Назад
Ответы ошибки в запросе (4xx)
Ответы класса 4хх информируют о том, что в запросе обнаружена ошибка. После получения такого ответа пользователь не должен передавать тот же самый запрос, на который получен ответ 4хх, без его модификации.
Назад |
|
Таблица |
|
|
|
|
SIP-ответы ошибки в |
|
|
|
|
|
запросе. |
|
|
|
|
Код |
Назначение |
|
|
|
|
|
|
||||
|
|
|
|
||
400 |
Bad Request. В запросе обнаружена синтаксическая ошибка. Это означает, что |
|
|||
запрос не понят на дальнем конце. Ответ с этим кодом должен передаваться при |
|
||||
|
обнаружении любой синтаксической ошибки. Reason-Phrase должна |
|
|||
|
характеризовать ошибку более детально, например: «Потеря заголовка Call-ID». |
|
|||
|
Дальнейшее поведение системы зависит от конкретной реализации. |
|
|||
|
|
|
|
||
401 |
Unauthorized. Запрос требует проведения процедуры аутентификации |
|
|||
пользователя. Этот ответ посылает UAS или registrar. Когда получен этот ответ, |
|
||||
|
к форматированию сообщений применяются специальные правила. |
|
|||
|
|
|
|
||
403 |
Forbidden. Запрещенный запрос – запрос не будет обрабатываться сервером и не |
|
|||
должен передаваться повторно. Запрос был понят, но не будет обслужен. Такой |
|
||||
|
ответ может быть получен, к примеру, при попытке дозвониться по номеру, |
|
|||
|
который не принимает звонки с данного номера телефона. |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
404 |
Not Found. Вызываемый пользователь не обнаружен. Сервер не |
обнаружил вызываемого пользователя в домене, указанном в поле |
|
|
Request-URI. Этот ответ передается, когда вызываемый пользователь |
|
либо никогда не существовал, либо данные об этом пользователе |
|
были стерты с этого сервера. |
|
|
407 |
Proxy Authentication Required. Перед вызовом вам требуется |
аутентифицировать себя прокси-серверу. |
|
|
|
413 |
Request Entity Too Large. Размер запроса слишком велик для |
обработки на сервере. Сервер может завершить соединение, чтобы |
|
|
прекратить приём такого запроса. Если обслуживание |
|
приостановлено временно, сервер добавляет в сообщение заголовок |
|
Retry-After. В поле заголовка указано время, по истечении которого |
|
вызывающий пользователь может предпринять новую попытку. |
|
|
483 |
Too Many Hops. Запрос на своем пути к вызываемому пользователю |
прошел через большее количество прокси-серверов, чем разрешено. |
|
|
Сервер получает запрос с нулевым значением заголовка Max- |
|
Forwards. Это хорошая защита от длинных и нестабильных |
|
маршрутов. |
|
|
487 |
Request Terminated. Запрос был сброшен сообщением BYE или |
CANCEL. |
Назад
Ответы отказа сервера (5xx)
Ответы класса 5хх информируют о том, что запрос не может быть обработан из-за ошибки сервера.
Назад |
Таблица |
|
|
SIP-ответы отказа сервера.
Код |
Назначение |
|
|
|
|
|
|
500 |
Server Internal Error. Ошибка сервера. Это может быть аппаратная, программная |
|
|
или любая внутренняя ошибка. Вызывающий пользователь имеет возможность |
|
||
|
повторить свой запрос через несколько секунд. Если ошибка временная, то сервер |
|
|
|
отображает в поле заголовка Retry-After время, через которое рекомендуется |
|
|
|
отправить сообщение повторно. |
|
|
|
|
|
|
501 |
Not Implemented. Сервер не может обслужить запрос, потому что в сервере не |
|
|
реализованы соответствующие функции. Этот ответ необходим, когда UAS не в |
|
||
|
состоянии определить тип запроса и не может принять сообщение. |
|
|
|
|
|
|
502 |
Bad Gateway. Сервер принял некорректный ответ от шлюза или прокси-сервера на |
|
|
пути к адресату вызова. Это типичный отказ для соединений, устанавливаемых |
|
||
|
через многочисленные сетевые сегменты и серверы. |
|
|
|
|
|
|
503 |
Service Unavailable. Обслуживание временно невозможно вследствие перегрузки |
|
|
или проведения мероприятий по техническому обслуживанию. |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
504 |
Server Time-out. Сервер, функционирующий в качестве шлюза или |
|
|
прокси-сервера, не получил ответа в течение установленного |
|
|
|
|
промежутка времени от сервера, к которому он обратился для |
|
|
|
завершения вызова, например, сервера определения местоположения |
|
|
|
пользователей. |
|
|
|
|
|
|
505 |
Version Not Supported. Сервер не поддерживает или отказывается |
|
|
|
|||
поддерживать версию протокола SIP, используемую в запросе. При |
|||
|
надлежащем обеспечении совместимости снизу вверх эта ошибка |
||
|
маловероятна. Этот ответ могут посылать более старые серверы или |
||
|
терминалы, когда они видят более новую версию протокола SIP в |
||
|
заголовке запроса |
||
|
|
|
|
513 |
Message Too Large. Сервер не в состоянии обработать запрос из-за |
||
большой длины сообщения. |
|||
|
|
|
|
580 |
Precondition Failure. Когда UAS не может или не желает принимать |
||
параметры, предлагаемые в описании сессии - информации offer, он |
|||
|
должен отклонить запрос, передав ответ с кодом 580 – при этом |
||
|
информация answer не передаётся. Данный ответ используется для |
||
|
отказа на предложение установления сеанса связи (offer), содержащееся |
||
|
в запросе INVITE или UPDATE. В ответе содержится SDP-описание, |
||
|
основанное на последней принятой от удалённого агента пользователя |
||
|
информации offer или answer, которое указывает причину отказа. SDP- |
||
|
описание этого ответа не является ни информацией answer, ни offer, |
||
|
поскольку не направлено на установление сессии. |
||
|
|
|
|
Назад