Учебники

SIP — Обмен сообщениями

Сообщения SIP бывают двух типов — запросы и ответы .

  • Открывающая строка запроса содержит метод, который определяет запрос, и Request-URI, который определяет, куда должен быть отправлен запрос.

  • Аналогично, открывающая строка ответа содержит код ответа.

Открывающая строка запроса содержит метод, который определяет запрос, и Request-URI, который определяет, куда должен быть отправлен запрос.

Аналогично, открывающая строка ответа содержит код ответа.

Методы запроса

SIP-запросы — это коды, используемые для установления связи. Чтобы дополнить их, существуют ответы SIP, которые обычно указывают, был ли запрос успешным или неудачным.

Эти запросы SIP, известные как МЕТОДЫ, делают сообщение SIP работоспособным.

  • МЕТОДЫ можно рассматривать как запросы SIP, поскольку они запрашивают конкретное действие, которое должен выполнить другой пользовательский агент или сервер.

  • МЕТОДЫ различают на два типа —

    • Основные методы

    • Методы расширения

МЕТОДЫ можно рассматривать как запросы SIP, поскольку они запрашивают конкретное действие, которое должен выполнить другой пользовательский агент или сервер.

МЕТОДЫ различают на два типа —

Основные методы

Методы расширения

Основные методы

Существует шесть основных методов, которые обсуждаются ниже.

ПРИГЛАШЕНИЕ

INVITE используется для запуска сеанса с пользовательским агентом. Другими словами, метод INVITE используется для установления мультимедийного сеанса между пользовательскими агентами.

  • INVITE может содержать медиа-информацию о вызывающем абоненте в теле сообщения.

  • Сеанс считается установленным, если сообщение INVITE получило ответ об успешном выполнении (2xx) или был отправлен ACK.

  • приглашение

  • Успешный запрос INVITE устанавливает диалог между двумя пользовательскими агентами, который продолжается до тех пор, пока не будет отправлен BYE для завершения сеанса.

  • ПРИГЛАШЕНИЕ, отправленное в установленном диалоге, называется повторным ПРИГЛАШЕНИЕМ .

  • Re-INVITE используется для изменения характеристик сеанса или обновления состояния диалога.

INVITE может содержать медиа-информацию о вызывающем абоненте в теле сообщения.

Сеанс считается установленным, если сообщение INVITE получило ответ об успешном выполнении (2xx) или был отправлен ACK.

Успешный запрос INVITE устанавливает диалог между двумя пользовательскими агентами, который продолжается до тех пор, пока не будет отправлен BYE для завершения сеанса.

ПРИГЛАШЕНИЕ, отправленное в установленном диалоге, называется повторным ПРИГЛАШЕНИЕМ .

Re-INVITE используется для изменения характеристик сеанса или обновления состояния диалога.

ПРИМЕР ПРИМЕР

Следующий код показывает, как используется INVITE.

INVITE sips:Bob@TMC.com SIP/2.0 
   Via: SIP/2.0/TLS client.ANC.com:5061;branch = z9hG4bK74bf9 
   Max-Forwards: 70 
   From: Alice<sips:Alice@TTP.com>;tag = 1234567 
   To: Bob<sips:Bob@TMC.com>
   Call-ID: 12345601@192.168.2.1  
   CSeq: 1 INVITE 
   Contact: <sips:Alice@client.ANC.com> 
   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 

ДО СВИДАНИЯ

BYE — метод, используемый для завершения установленного сеанса. Это SIP-запрос, который может быть отправлен вызывающим или вызывающим абонентом для завершения сеанса.

  • Он не может быть отправлен прокси-сервером.

  • BYE-запрос обычно проходит сквозной маршрут, минуя прокси-сервер.

  • BYE не может быть отправлено в ожидании INVITE или неустановленного сеанса.

Он не может быть отправлен прокси-сервером.

BYE-запрос обычно проходит сквозной маршрут, минуя прокси-сервер.

BYE не может быть отправлено в ожидании INVITE или неустановленного сеанса.

РЕГИСТР

Запрос REGISTER выполняет регистрацию агента пользователя. Этот запрос отправляется пользовательским агентом на сервер регистратора.

  • Запрос REGISTER может быть переадресован или проксирован до тех пор, пока не достигнет авторитетного регистратора указанного домена.

  • Он содержит AOR (адрес записи) в заголовке « Кому» регистрируемого пользователя.

  • Запрос REGISTER содержит период времени (3600сек).

  • Один пользовательский агент может отправить запрос REGISTER от имени другого пользовательского агента. Это известно как сторонняя регистрация . Здесь тег From содержит URI стороны, отправляющей регистрацию от имени стороны, указанной в заголовке To .

Запрос REGISTER может быть переадресован или проксирован до тех пор, пока не достигнет авторитетного регистратора указанного домена.

Он содержит AOR (адрес записи) в заголовке « Кому» регистрируемого пользователя.

Запрос REGISTER содержит период времени (3600сек).

Один пользовательский агент может отправить запрос REGISTER от имени другого пользовательского агента. Это известно как сторонняя регистрация . Здесь тег From содержит URI стороны, отправляющей регистрацию от имени стороны, указанной в заголовке To .

ОТМЕНИТЬ

CANCEL используется для завершения сеанса, который не установлен. Пользовательские агенты используют этот запрос для отмены ожидающей попытки вызова, инициированной ранее.

  • Он может быть отправлен либо пользовательским агентом, либо прокси-сервером.

  • CANCEL — это запрос переход за переходом , то есть он проходит через элементы между пользовательским агентом и получает ответ, сгенерированный следующим элементом с состоянием.

Он может быть отправлен либо пользовательским агентом, либо прокси-сервером.

CANCEL — это запрос переход за переходом , то есть он проходит через элементы между пользовательским агентом и получает ответ, сгенерированный следующим элементом с состоянием.

Хоп хоп

ACK

ACK используется для подтверждения окончательных ответов на метод INVITE. ACK всегда идет в направлении INVITE .ACK может содержать тело SDP (характеристики среды), если оно не доступно в INVITE.

SDP Ack

  • ACK нельзя использовать для изменения описания мультимедиа, которое уже было отправлено в начальном INVITE.

ACK нельзя использовать для изменения описания мультимедиа, которое уже было отправлено в начальном INVITE.

Подтверждение SDP

  • Прокси-сервер с отслеживанием состояния, принимающий ACK, должен определить, следует ли пересылать ACK вниз по потоку другому прокси или агенту пользователя.

  • Для ответов 2xx ACK является сквозным, но для всех остальных окончательных ответов он работает по принципу переход за этапом, когда задействованы прокси с отслеживанием состояния.

Прокси-сервер с отслеживанием состояния, принимающий ACK, должен определить, следует ли пересылать ACK вниз по потоку другому прокси или агенту пользователя.

Для ответов 2xx ACK является сквозным, но для всех остальных окончательных ответов он работает по принципу переход за этапом, когда задействованы прокси с отслеживанием состояния.

ОПЦИИ

Метод OPTIONS используется для запроса пользовательского агента или прокси-сервера о его возможностях и обнаружения его текущей доступности. В ответе на запрос перечислены возможности пользовательского агента или сервера. Прокси никогда не генерирует запрос OPTIONS.

Методы расширения

Подписывайся

ПОДПИСЫВАЕТСЯ используется пользовательскими агентами для установления подписки с целью получения уведомления о конкретном событии.

  • Он содержит поле заголовка Expires, которое указывает продолжительность подписки.

  • По истечении этого периода подписка автоматически прекращается.

  • Подписка устанавливает диалог между пользовательскими агентами.

  • Вы можете повторно подписаться снова, отправив другую ПОДПИСАТЬСЯ в диалоговом окне до истечения срока действия.

  • Для подписки от пользователя будет получено 200 OK.

  • Пользователи могут отказаться от подписки, отправив другой метод SUBSCRIBE со значением Expires 0 (ноль).

Он содержит поле заголовка Expires, которое указывает продолжительность подписки.

По истечении этого периода подписка автоматически прекращается.

Подписка устанавливает диалог между пользовательскими агентами.

Вы можете повторно подписаться снова, отправив другую ПОДПИСАТЬСЯ в диалоговом окне до истечения срока действия.

Для подписки от пользователя будет получено 200 OK.

Пользователи могут отказаться от подписки, отправив другой метод SUBSCRIBE со значением Expires 0 (ноль).

Пример Подписаться

ПОСТАВИТЬ В ИЗВЕСТНОСТЬ

NOTIFY используется пользовательскими агентами для получения определенного события. Обычно NOTIFY запускается в диалоге, когда между подписчиком и уведомителем существует подписка.

  • Каждый NOTIFY получит ответ 200 OK, если он получен уведомителем.

  • NOTIFY содержит поле заголовка события, указывающее событие, и поле заголовка подписки, указывающее текущее состояние подписки.

  • УВЕДОМЛЕНИЕ всегда отправляется в начале и окончании подписки.

Каждый NOTIFY получит ответ 200 OK, если он получен уведомителем.

NOTIFY содержит поле заголовка события, указывающее событие, и поле заголовка подписки, указывающее текущее состояние подписки.

УВЕДОМЛЕНИЕ всегда отправляется в начале и окончании подписки.

ПУБЛИКОВАТЬ

PUBLISH используется пользовательским агентом для отправки информации о состоянии события на сервер.

Публиковать

  • ПУБЛИКАЦИЯ в основном полезна, когда существует несколько источников информации о событиях.

  • Запрос PUBLISH похож на NOTIFY, за исключением того, что он не отправляется в диалоге.

  • Запрос PUBLISH должен содержать поле заголовка Expires и поле заголовка Min-Expires .

ПУБЛИКАЦИЯ в основном полезна, когда существует несколько источников информации о событиях.

Запрос PUBLISH похож на NOTIFY, за исключением того, что он не отправляется в диалоге.

Запрос PUBLISH должен содержать поле заголовка Expires и поле заголовка Min-Expires .

СМОТРИ

REFER используется пользовательским агентом для обращения к другому пользовательскому агенту для доступа к URI для диалога.

  • REFER должен содержать заголовок Refer-To . Это обязательный заголовок для REFER.

  • REFER может быть отправлен внутри или вне диалога.

  • 202 Принято вызовет запрос REFER, который указывает, что другой пользовательский агент принял ссылку.

REFER должен содержать заголовок Refer-To . Это обязательный заголовок для REFER.

REFER может быть отправлен внутри или вне диалога.

202 Принято вызовет запрос REFER, который указывает, что другой пользовательский агент принял ссылку.

ИНФОРМАЦИЯ

INFO используется пользовательским агентом для отправки информации о сигнализации вызова другому пользовательскому агенту, с которым он установил мультимедийный сеанс.

  • Это сквозной запрос.

  • Прокси всегда будет пересылать запрос INFO.

Это сквозной запрос.

Прокси всегда будет пересылать запрос INFO.

ОБНОВИТЬ

UPDATE используется для изменения состояния сеанса, если сеанс не установлен. Пользователь может изменить кодек с помощью UPDATE.

Обновить

Если сеанс установлен, повторное приглашение используется для изменения / обновления сеанса.

PRACK

PRACK используется для подтверждения получения надежной передачи предварительного ответа (1XX).

  • Обычно PRACK генерируется клиентом, когда он получает предварительный ответ, содержащий надежный порядковый номер RSeq и поддерживаемый заголовок : 100rel .

  • PRACK содержит значение (RSeq + CSeq) в заголовке стойки .

  • Метод PRACK применяется ко всем предварительным ответам, кроме ответа 100 Trying, который никогда не передается надежно.

  • PRACK может содержать тело сообщения; может использоваться для обмена предложением / ответом.

Обычно PRACK генерируется клиентом, когда он получает предварительный ответ, содержащий надежный порядковый номер RSeq и поддерживаемый заголовок : 100rel .

PRACK содержит значение (RSeq + CSeq) в заголовке стойки .

Метод PRACK применяется ко всем предварительным ответам, кроме ответа 100 Trying, который никогда не передается надежно.

PRACK может содержать тело сообщения; может использоваться для обмена предложением / ответом.

СООБЩЕНИЕ

Он используется для отправки мгновенного сообщения с использованием SIP. IM обычно состоит из коротких сообщений, которыми в режиме реального времени обмениваются участники, участвующие в текстовом разговоре.

СООБЩЕНИЕ может быть отправлено в диалоге или вне диалога.

Содержимое СООБЩЕНИЯ переносится в теле сообщения в виде вложения MIME .

Ответ 200 OK обычно принимается, чтобы указать, что сообщение было доставлено в пункт назначения.