Задача звучала невинно: два браузера, кнопка «Call», голос в обе стороны. Под капотом — Asterisk 22 в Docker, Coturn, JsSIP и SIP поверх WebSocket. На деле — пять разных багов с одним и тем же симптомом «нет звука»: заблокированный STUN, зависший ICE gathering, забытый event.ready() на 40 секунд…
Как мы подружили WebRTC с Asterisk: детективная история одного звонка
Это краткое изложение. Полный текст материала доступен на сайте источника.