After digging a long time in internet I found following points,
Quoted from asterisk forum: https://issues.asterisk.org/jira/browse/ASTERISK-26732
Chrome 57 has a breaking change when it comes to interop with WebRTC
gateways. They've changed their previous "negotiate", to "require"
when it comes to rtcp-mux. Asterisk, as I understand it does not have
rtcp multiplexing and so will break when it comes to compatibility
with WebRTC across all versions of Asterisk that supports WebRTC.
Reference to rtcpMuxPolicy in chrome: https://www.chromestatus.com/feature/5654810086866944
The rtcpMuxPolicy is used by the application to specify its preferred
policy regarding use of RTP/RTCP multiplexing. When the policy is
"negotiate", the ICE candidates for both RTP and RTCP will be
gathered. If the remote-endpoint is capable of multiplexing RTCP,
multiplex RTCP on the RTP candidates. If it is not, use both the RTP
and RTCP candidates separately.
According to the google group forum - https://groups.google.com/forum/#!topic/discuss-webrtc/eM57DEy89MY
As of the most recent Chrome Canary build, the default RTCP
multiplexing policy is "require", instead of "negotiate". This will
affect the next Chrome release, M57. This means that offer/answer
negotiation with an endpoint that doesn't support RTCP multiplexing
will fail, resulting in the error: "ERROR_CONTENT. Session error
description: Failed to setup RTCP mux filter." We can probably make
this error more descriptive, but the bottom line is that
setRemoteDescription will fail if the SDP does not contain
"a=rtcp-mux". For any application that doesn't yet support RTCP
multiplexing, you can get the old behavior by explicitly setting the
RTCRtpMuxPolicy to "negotiate" in the RTCConfiguration. For example:
pc = new RTCPeerConnection({rtcpMuxPolicy: "negotiate"})
In short,
- In previous versions of chrome rtcp multiplxing set to 'negotiate'
- Starting from version 57 chrome changed rtcp multiplxing to 'require'
- Asterisk, as I understand it does not support rtcp multiplexing.
- webrtc allow RTCRtpMuxPolicy flag options "negotiate" and "require"
- In Sipml5 API 2.0.3 , as I understood there is no option to set RTCRtpMuxPolicy.
Solution:
I updated sipml5 api to 2.1.3 from 2.0.3. Now error changed to a warning.
[Deprecation] The rtcpMuxPolicy option is being considered for removal and may be removed no earlier than M60, around August 2017. If you depend on it, please see https://www.chromestatus.com/features/5654810086866944 for more details.
Now everything is working fine.