Mapping the CXone Digital Agent web config over to the Genesys Cloud softphone settings, and the media path keeps choking during the Architect IVR handoff. The genesys-cloud-webphone-sdk v2.4.1 runs in a US-East-1 BYOC tenant. CXone just used a static webrtc_session_timeout of 45 seconds, but GC’s media_server_region routing seems to be dropping the STUN/TURN candidates before the call bridges.
Console throws SDP_NEGOTIATION_ERROR: ICE_CANDIDATE_FAILURE right when the Architect flow hits the Transfer to Queue block. The SDP payload shows the a=candidate lines getting stripped by the edge load balancer. In CXone, you’d just toggle the force_stun_relay flag in the studio routing script. GC doesn’t have that exact switch. Config pushes the iceTransportPolicy to relay in the SDK init, but the browser still falls back to host candidates. Honestly, it’s doing jack all to fix the relay path.
Any thoughts on how the Media Server region selection interacts with the softphone’s ICE gathering? Pointing everything to us-east-1 but the TURN allocation endpoint keeps timing out after 8 seconds. Is there a specific Architect Set Interaction Attribute step that needs to override the default webrtc_media_policy? Also, should the cti_integration token refresh before the play_prompt block runs?
Network traces show the WebSocket stays open, but the actual RTP stream never negotiates. The CXone fallback just re-ran the STUN discovery on port 3478. GC’s softphone seems to expect the candidates to arrive within the first 300ms of the createOffer handshake. Logs are attached below.
{
“error”: “SDP_NEGOTIATION_ERROR”,
“code”: “ICE_CANDIDATE_FAILURE”,
“sdk_version”: “2.4.1”,
“flow_id”: “architect_ivr_handoff_v3”,
“media_region”: “us-east-1”
}