Recently we have experienced an issue related to ICE. We did some analysis on the issue, let me explain the scenario,
Suppose, if in a call the asterisk’s initial ICE role is Controlling and if in the conversation asterisk get an offer(re-Invite), then Asterisk create a new session with ICE Controlled role.
After then, If remote agent sending any STUN binding request with old attrb and Controlled role, then asterisk switch its current role to Controlling mode. And this create “ice role conflict” problem for all following STUN binding requests from that agent, eventually call get disconnected from remote side.
We got a solution for this, if we reset the local ICE attributes (ufrag and pass) then if the remote agent sending any Bind request with old attrb then this req get rejected with 401 (Unauthorized). This makes remote agent happy.