Протокол SIP
SIP расшифровывается как Session Initiation Protocol - протокол инициирования сеанса, это протокол, разработанный IETF для VOIP и для других сеансов передачи текста или мультимедиа данных, например, таких как, системы обмена мгновенными сообщениями, видео, игры в реальном времени и другие сервисы.
Выдержка из SIP RFC 3261
Этот документ описывает Session Initiation Protocol (SIP), протокол контроля и сигнализации уровня приложения для создания, модификации, и завершения сеансов с одним или несколькими участниками. Эти сеансы включают в себя: телефонные вызовы через Интернет, презентация мультимедийных данных, и мультимедийные конференции.
При создании сеансов, используется SIP приглашение с описанием сессии, что позволяет участникам подтвердить совместимость используемых настроек для передачи медиаданных. SIP дает возможность использования таких элементов, как прокси сервер, в функции которого входит помощь в доставке запросов к конечному пользователю, установка подлинности и разграничение доступа пользователей к различным сервисам, поддерживает правила маршрутизацию вызовов, задаваемых провайдерами, а также поддерживает различные возможности, ориентированные на конечных пользователей. Так же в протоколе SIP имеется механизм регистрации, который дает возможность пользователям подключаться из своего текущего местоположения к сервисам, через прокси сервер. Протокол SIP может использовать несколько основных протоколов различного транспортного уровня.
SIP очень похож на протокол HTTP, используемый для Web приложений, или на SMTP (обмен почтовыми сообщениями). Сообщения состоят из заголовков и тела сообщения. Содержание тела SIP сообщения для телефонных вызовов описывается в SDP: session description protocol - протокол описания сеанса.
- SIP - это протокол, использующий текстовые сообщения, в которых используется кодировка UTF-8.
- SIP использует номер порта 5060, как для коммуникации по протоколу UDP, так и для TCP. Для SIP могут использоваться другие способы передачи данных.
Протокол SIP предлагает все, потенциально востребованные возможности, используемые в Интернет технологиях, такие как:
- передача вызовов или мультимедийных данных
- конференцсвязь
- удержание вызовов
Вследствии того, что SIP - это довольно гибкий протокол, есть возможность расширения его возможностей с сохранением обратной совместимости.
Также, протокол SIP может преодолевать ограничение, связанные с использованием NAT или файрволов. (Обратите внимание на раздел: NAT and VOIP)
Протокол SIP
Принципы протокола SIP
Протокол инициирования сеансов – Session Initiation Protocol (SIP) является протоколом прикладного уровня и предназначается для организации, модификации и завершения сеансов связи: мультимедийных конференций, телефонных соединений и распределения мультимедийной информации. Пользователи могут принимать участие в существующих сеансах связи, приглашать других пользователей и быть приглашенными ими к новому сеансу связи. Приглашения могут быть адресованы определенному пользователю, группе пользователей или всем пользователям.
Протокол SIP разработан группой MMUSIC (Multiparty Multimedia Session Control) комитета IETF (Internet Engineering Task Force), а спецификации протокола представлены в документе RFC 2543]. В основу протокола рабочая группа MMUSIC заложила следующие принципы:
- Персональная мобильность пользователей. Пользователи могут перемещаться без ограничений в пределах сети, поэтому услуги связи должны предоставляться им в любом месте этой сети. Пользователю присваивается уникальный идентификатор, а сеть предоставляет ему услуги связи вне зависимости от того, где он находится. Для этого пользователь с помощью специального сообщения – REGISTER – информирует о своих перемещениях сервер определения местоположения/сервер регистраций.
- Масштабируемость сети. Она характеризуется, в первую очередь, возможностью увеличения количества элементов сети при её расширении. Серверная структура сети, построенной на базе протокола SIP, в полной мере отвечает этому требованию.
- Расширяемость протокола. Она характеризуется возможностью дополнения протокола новыми функциями при введении новых услуг и его адаптации к работе с различными приложениями.
В качестве примера можно привести ситуацию, когда протокол SIP используется для установления соединения между шлюзами, взаимодействующими с ТфОП при помощи сигнализации ОКС7 или DSS1.
В настоящее время SIP не поддерживает прозрачную передачу сигнальной информации телефонных систем сигнализации. Вследствие этого дополнительные услуги ISDN оказываются недоступными для пользователей IP-сетей.
Расширение функций протокола SIP может быть произведено за счет введения новых заголовков сообщений, которые должны быть зарегистрированы в уже упоминавшейся ранее организации IANA. При этом, если SIP,сервер принимает сообщение с неизвестными ему полями, то он просто игнорирует их и обрабатывает лишь те поля, которые он знает.
Для расширения возможностей протокола SIP могут быть также добавлены и новые типы сообщений.
Интеграция в стек существующих протоколов Интернет, разработанных IETF. Протокол SIP является частью глобальной архитектуры мультимедиа, разработанной комитетом Internet Engineering Task Force IETF. Эта архитектура включает в себя также протокол резервирования ресурсов (Resource Reservation Protocol – RSVP, RFC 2205), транспортный протокол реального времени (Real,Time Transport Pro,tocol – RTP, RFC 1889), протокол передачи потоковой информации в реальном времени (Real,Time Streaming Protocol – RTSP, RFC 2326),
протокол описания параметров связи (Session Description Protocol – SDP, RFC 2327). Однако функции протокола SIP не зависят ни от одного из этих протоколов.
Взаимодействие с другими протоколами сигнализации. Протокол SIP может быть использован совместно с протоколом Н.323. Возможно также взаимодействие протокола SIP с системами сигнализации ТфОП – DSS1 и ОКС7. Для упрощения такого взаимодействия сигнальные сообщения протокола SIP могут переносить не только специфический SIP адрес, но и телефонный номер формата Е.164 или любого другого формата. Кроме того, протокол SIP, наравне с протоколами H.323 и ISUP/IP, может применяться для синхронизации работы устройств управления шлюзами; в этом случае он должен взаимодействовать с протоколом MGCP. Другой важной особенностью протокола SIP является то, что он приспособлен к организации доступа пользователей сетей IP телефонии к услугам интеллектуальных сетей, и существует мнение, что именно этот протокол станет основным при организации связи между указанными сетями.
Методы SIP протокола, определенные в SIP RFC.
В протоколе SIP определено несколько методов, используемых при коммуникации.
- метод SIP: invite : Приглашение другого UA (участника) начать сеанс
- метод SIP: re-invite: Изменение параметров запущенного сеанса
- метод SIP: register: Зарегистрировать свое местоположение в сети, используя SIP сервер регистрации
- метод SIP: ack: Используется для подтверждения приема сообщений INVITE при их обмене.
- метод SIP: cancel: Отмена приглашения о начале сеанса
- метод SIP: bye: Завершение сеанса связи
- метод SIP: options
Расширенные методы SIP протокола из других RFC:
- SIP method info: Расширение протокола, описанное в RFC 2976
- SIP method notify: Расширение протокола, описанное в RFC 2848 PINT
- SIP method subscribe: Расширение протокола, описанное в RFC 2848 PINT
- SIP method unsubscribe: Расширение протокола, описанное в RFC 2848 PINT
- SIP method update: Расширение протокола, описанное в RFC 3311
- SIP method message: Расширение протокола, описанное в RFC 3428
- SIP method refer: Расширение протокола, описанное в RFC 3515
- SIP method prack: Расширение протокола, описанное в RFC 3262
- SIP Specific Event Notification: Расширение протокола, описанное в RFC 3265
- SIP Message Waiting Indication: Расширение протокола, описанное в RFC 3842
- SIP method PUBLISH: Расширение протокола, описанное в RFC 3903
Ответы на SIP сообщения
После приема и интерпретации запроса, адресат (прокси сервер) передает ответ на этот запрос. Содержание ответов бывает разным:
подтверждение установления соединения, передача запрошенной информации, сведения о неисправностях и т.д.
Структуру ответов и их виды протокол SIP унаследовал от протокола НТТР.
Определено шесть типов ответов, несущих разную функциональную нагрузку. Тип ответа кодируется трехзначным числом. Самой важной является первая цифра, которая определяет класс ответа, остальные две цифры лишь дополняют первую. В некоторых случаях оборудование даже может не знать все коды ответов, но оно обязательно должно интерпретировать первую цифру ответа.
Термины и определения, специфичные для SIP
- Пользовательские терминалы/агенты
- SIP outbound proxy
- SIP proxy: SIP прокси сервер.
- SIP redirect server: SIP сервер переадресации
- SIP registrar server SIP сервер определения местоположения пользователей/сервер обработки регистраций.
- SIP URI - как определить соединение SIP, в URL
- SIP Compression: Компрессия в SIP протоколе
- SIP DMTF Signalling: Передача DTMF сигналов, используя SIP протокол
- SIP Authentication: Авторизация в SIP протоколе
Ссылки:
- RFC 3261 (более 250 страниц!)
- RFC 3329: Соглашение о механизме обеспечения безопасности для SIP протокола.
- IETF SIP Working Group - на этом сайте Вы можете найти все текущие Internet документы, RFC и стандарты.
Ссылки по теме:
- SIP simple: Система мгновенных сообщений на основе SIP
- SDP: Описание протокола описания сеанса (Session Description Protocol)
- SIP tools
- SIP SS7 gateways
- RTP: Протокол передачи данных в реальном времени- этот протокол очень часто использется для передачи голоса.
- SIP call flows: Examples of SIP call flows
- безопасность в SIP
- IAX против SIP
- SIP-T: Протокол Инициирования Сеанса для Телефонии RFC3372
Внешние ссылки о SIP:
- PDF файл, описывающий протокол SIP (русский язык)
- How a SIP server can handle the NAT traversal issue in SIP ?
- Great SIP tutorial
- SIPfoundry and in particular the sipX project
- Columbia University SIP website — lots of diverse info here
- SIP FAQ: Columbia University SIP FAQ - visit it!
- SIP Introduction: ftp://ftp.berlios.de/pub/ser/latest/doc/html/sip_introduction.html
- The SIP Forum: http://www.sipforum.com/
- Doug Moeller's full day VOIP tutorial Powerpoint presentation (large 13MB zip file)
- VOIP Cookbook SIP and H.323
- The SIP Center Comprehensive information and resources on all things SIP.
- Packetizer's SIP Information Site
- quintum http://www.binnacleita.com/ sip gateways
- SIP Wiki http://www.toyz.org/cgi-bin/sipwiki.cgi