rebindIdentity method
Re-bind voice to the CURRENT identity — MUST be called after
identify()/reset(). Voice initialises at app start (before login), so it
first binds to voice:<deviceKey>; without re-binding, an identified user
keeps listening on the device room and never rings on voice:<distinctId>.
Re-joins the correct room and re-registers the push device under the new id.
Implementation
Future<void> rebindIdentity() async {
if (!_initialised) return;
_joinIdentityRoom();
await _registerDevice();
}