WebRTC handshake timeout during Zendesk Talk to Genesys Cloud migration

Looking for advice on a persistent WebRTC failure we are seeing during our migration from Zendesk Talk to Genesys Cloud. We are mapping Zendesk voice widgets to the Genesys Cloud Web Softphone SDK (v1.28.0).

Background

Our team is migrating digital channels first, but voice is the blocker. We have configured the BYOC trunk and verified STUN/TURN servers match our Zendesk outbound relay settings. The environment is EU-West (Paris timezone impact considered for logs).

Issue

When an agent clicks ‘Accept’ on an incoming interaction mapped from the Zendesk ticket view, the browser console throws:
WebSocket connection failed: Error code 1006
Followed by:
WebRTC: ICE candidate gathering failed: Operation timed out
The call never rings on the agent’s end. The API call to /api/v2/interaction/participants returns a 200, but the media stream never initializes.

Troubleshooting

We checked the Architect flow; the transfer to the skill group works fine. We compared this to Zendesk’s direct WebSocket handshake, which is much simpler. Are there specific firewall rules for Genesys Cloud STUN servers that differ from Zendesk’s? We are using Chrome 114. Any insights on why the ICE candidate gathering stalls?