В настоящий момент WebRTC не работает корректно с re-INVITEs и re-offers.

Например в случае если вы звоните на VoIP сервер и VoIP сервер отвечает с 200 OK и SDP с sendonly(постановка на удержание для автоответчика).

Chrome браузер понимает такое SDP, но когда VoIP сервер шлет re-INVITE с SDP sendrecv чтобы снять звонок с удержания, Chrome не может применить новое SDP и вылетает с ошибкой в javascript.
Это известная ошибка относящаяся к re-INVITes и re-offers. Поэтому мы вынуждены использовать workaround чтобы обойти эту ошибку. Для этого мы сохраняем WebRTC сессию всегда в sendrecv вне зависимости от того, какие значения к нам приходят в SDP, а все действия по постановке звонков на удержание, трансфер звонков, re-INVITEs логику мы выполняем в проксирующей сессии, которая работает с SIP частью.