WebRTC SDP Negotiation Failure on BYOC Trunk Outbound

Trying to understand the root cause of persistent SDP negotiation failures when initiating outbound calls via WebRTC softphones through our AP-Southeast-1 BYOC trunks.

Background

Environment: Genesys Cloud AP-Southeast-1
Trunk Type: BYOC (15 active trunks, currently testing outbound on Singapore primary)
Client: Genesys Cloud WebRTC Softphone (Latest Chrome Build)
SDK Version: Genesys Cloud JavaScript SDK v3.2.1

Issue

Outbound calls fail immediately upon connection attempt with a “Call Failed” status in the UI. The browser console logs indicate an ICE gathering timeout, followed by a failed SDP offer/answer exchange. Specifically, the iceConnectionState transitions to failed within 2 seconds. This behavior is isolated to calls routed through the BYOC trunks; internal calls and PSTN calls via Genesys-managed trunks function normally.

Troubleshooting

  1. Verified SIP credentials and outbound routing patterns in Admin. All routes are active.
  2. Captured network traces. The initial SIP INVITE reaches the carrier, but the subsequent RTP stream fails to establish due to NAT traversal issues on the carrier side.
  3. Confirmed firewall rules allow UDP traffic on ports 50000-59999 for the carrier IP ranges.
  4. Tested with different WebRTC clients (Zoom Phone, Teams) routed through the same BYOC trunk, resulting in identical SDP failures.

Has anyone encountered carrier-specific SDP quirks with BYOC trunks in this region? Are there specific SDP attributes or ICE candidates that need to be forced or excluded for certain carriers in APAC?