Аll over SIP?
Роман Мишин, 17/01/20
Прошу прощения у уважаемых мной организаторов не менее уважаемого форума All-over-IP за некоторое заимствование для заголовка публикации, но, пожалуй, лучшего названия для описываемой ниже темы и не найти!
"Почему же именно SIP?" – спросит читатель. Наверное, потому что из всех популярных протоколов он наиболее универсален в силу своей природы.
Реальная суть SIP
SIP (Session Initiation Protocol) представляет собой протокол установления и завершения сеанса связи между интернет-абонентами, описывающий способ установления и завершения пользовательского интернет-сеанса, включающего обмен мультимедийным содержимым.
Протокол описывает, каким образом клиентское приложение может запросить начало соединения у другого, возможно физически удаленного клиента, находящегося в той же сети, используя его уникальное имя. SIP определяет только способ согласования между клиентами открытия каналов обмена на основе других протоколов, а те, в свою очередь, могут использоваться для непосредственной передачи самой разнообразной информации. Он допускает добавление или удаление новых каналов в течение установленного сеанса, а кроме того, подключение и отключение дополнительных клиентов, по сути предлагая услуги конференцсвязи.
Главной задачей разработки SIP было создание сигнального протокола для IP-сетей, который мог бы поддерживать расширенный набор функций обработки вызова и услуг, представленных в существующей традиционной телефонной связи. Сам протокол SIP не определяет эти функции, а сосредоточен только на процедурах регистрации пользователя, установления и завершения вызова и соответствующей сигнализации. Вот именно в этом и кроется вся суть проблемы, о которой пойдет речь дальше. И проблема-то не столько техническая, сколько организационная, но возможные масштабы ее грандиозны!
Никакой совместимости и нет!
SIP может использоваться не только для голосовых и видеозвонков, но и в любых других приложениях, где требуется установка соединения, таких как системы оповещения, мобильные терминалы, многопользовательские игры и т.д. SIP всегда применяется вместе с несколькими другими протоколами и участвует только в сигнальной части сессии связи. Далее в дело вступают другие протоколы – те же TCP или UDP. SIP выполняет роль носителя для SDP (Session Description Protocol) – протокола прикладного уровня, предназначенного именно для описания сессии передачи потоковых данных, включая телефонию, интернет-радио, приложения мультимедиа. SDP описывает параметры передачи медиаданных в рамках сессии, например используемые порты IP и кодеки, которые могут быть различными для каждого устройства или приложения.
В силу этого разнообразия существует огромное количество спецификаций и стандартов, относящихся к SIP и определяющих поведение таких приложений. При этом получается, что практически никакой совместимости и нет! Каждый производитель SIP-устройств использует те кодеки и соблюдает только тот набор рекомендаций RFC, которые ему нравятся, а набор и рекомендаций, и кодеков, и форматов очень велик. Для SIP-приложений совместим фактически только базовый вызов. Даже для телефонных применений сейчас используется масса разнообразных кодеков, различающихся по своим параметрам. Перечислим наиболее известные:
- GSM – 13 Кбит/с (полная скорость), длительность кадра 20 мс;
- iLBC – 15 Кбит/с, длительность кадра 20 мс (3,3 Кбит/с, длительность кадра 30 мс);
- ITU G.711 – 64 Кбит/с, основан на выборке, также известен как alaw/ulaw;
- ITU G.722 – 48/56/64 Кбит/с;
- ITU G.723.1 – 5,3/6,3 Кбит/с, длительность кадра 30 мс;
- ITU G.726 – 16/24/32 Кбит/с;
- ITU G.728 – 16 Кбит/с;
- ITU G.729 – 8 Кбит/с, длительность кадра 10 мс, скорость 2,15–44,2 Кбит/с;
- LPC10 – 2,5 Кбит/с;
- DoD CELP – 4,8 Кбит/с.
Уже много... А к примеру (в противоположность SIP), в системах, использующих H323, совместимость практически полная, поскольку этот стандарт имеет четкий набор спецификаций. Вот и возникают раз от раза вопросы типа "У меня есть некая SIP-штуковина А, будет ли она работать с имеющейся или запроектированной уже SIP-системой Б?". Добавим сюда и то, что проектировщик, видя в описании изделия фразу "поддерживает технологию SIP", не всегда будет вдаваться в подробности.
В итоге рискуем получить неработоспособный набор железок, требующий "доработки напильником" для того, чтобы хоть как-то начать работать. Что же можно предпринять, дабы не допустить такой глупой ситуации?
Конструктивный диалог
Лучшим выходом на уровне осуществления одного конкретного проекта будет возможность договориться о тестировании оконечных абонентских SIP-устройств c имеющимся SIP-сервером. Причем это тестирование должно быть весьма доскональным. Например, один раз мне пришлось столкнуться с ситуацией, когда при совпадении используемых кодеков картинка не транслировалась. Оказалось, что дело лишь в несовпадении допустимых форматов разрешения устройств. Стоило только поменять данный параметр на модуле камеры, как все заработало! Конечно же, подобные нюансы весьма полезно отразить и в пользовательской документации, передаваемой конечному заказчику.
"В безопасности мелочей не бывает. Из разряда "как не надо делать" читать >>>
Преимуществом такого подхода является и то, что, проведя один раз подобную работу, интегратор получает "кальку" для последующих решений. Конечно, не всегда производитель того или иного девайса пойдет навстречу, предоставив устройство для тестирования безвозмездно, однако это уже вопрос не технический, а больше относящийся к сфере взаимопонимания и взаимного же доверия. Думается, что адекватный вендор не будет мелочиться и рисковать отношениями с партнером-интегратором.
Уникальность vs универсальность
Куда сложнее выглядит ситуация в индустрии в целом. Спросите любого специалиста, хочет ли он, чтобы все элементы проектируемой системы полностью подходили друг другу, и идеально. Вряд ли он ответит нет. Бесшовная интеграция экономит и силы, и средства, и время. А вот производитель оборудования – не факт, что разделит подобную точку зрения. С одной стороны, всяк хочет, чтобы на проекте применялось только его оборудование. С другой – хочется оставить лазейку, чтобы можно было внедрить свои устройства в уже существующую систему на том или ином объекте. К тому же некоторые производители придерживаются точки зрения, что чем больше унификации, тем меньше у них возможностей выпускать что-либо обладающее уникальными потребительскими свойствами.
Кто владеет информацией, тот владеет миром
Наш мир все больше и больше становится миром открытой информации. По определению Института инженеров электротехники и электроники (IEEE), совместимость – это "способность двух и более систем или компонентов обмениваться информацией и пользоваться информацией, полученной в результате обмена". Вот и получается, что больше совместимости – больше возможностей пользоваться информацией.
Опубликовано в журнале "Системы безопасности" № 6/2019
Изображение сгенерировано нейросетью Шедеврум