WHIP — стандартный протокол общения WebRTC приложений

Всем привет! Давно я ничего не писал на Хабр про WebRTC. Наверное как‑то не было повода, да и WebRTC давно понятен и прост в общих чертах. Пара строк кода с одной стороны, пара строк кода с другой — вот и готово. Наверное. Там дальше есть несколько тонкостей. На самом деле — целое море тонкостей и обстоятельств, которые надо понимать и уметь с ними работать, но такая уж наша инженерная доля — криво неидеально читать и писать стандарты.
Но сегодня я хочу рассказать не столько про WebRTC как таковой, сколько про велосипеды в его использовании в продакшн‑среде и о том, как тихо без помпы растёт новый стандарт для его сигналинга. На написание этой серии статей меня натолкнула активность Sean Dubois, создателя и мейнтейнера Pion — отличной WebRTC‑библиотеки для Golang.




Облачная телефония VoxImplant может принимать звонки и звонить на разные источники. Сотовые телефоны, SIP, мобильные приложения, веб страницы. Можно позвонить с сотового на веб страницу, выглядит завораживающе. Если с сотовыми все понятно, то возможность поговорить с браузером требует чего-нибудь кроме HTML и JavaScript. Раньше таким «что-нибудь» был Flash. И мы до сих пор умеем его использовать в качестве fallback-варианта. Но последние несколько лет популярные браузеры звонят совсем не через Flash, а через HTML5 технологию «WebRTC». Которая до недавнего времени была представлена в Chrome и Firefox. Но все течет, все меняется, и в бета-версии Microsoft Edge появилась поддержка WebRTC. Почти. Microsoft традиционно пошла своим путем и сделала «альтернативную» реализацию, которая называется «ORTC». Чем они отличаются и что пришлось пережить нашим разработчикам — читайте под катом.
