WebRTC softphone SDP negotiation times out on Sydney edge during ACMA recording prompt injection

Pushed the updated softphone config via Terraform v1.45.0 to mypurecloud.com.au this morning. The apply finished without warnings. Console shows the media settings as active. It’s completely different at runtime though. The WebRTC session drops exactly when the Architect flow tries to play the ACMA recording notification. SDP negotiation hangs at the Sydney edge. Latency jumps to 380ms right before the drop. Client logs show ICE candidate gathering failed followed by a 408 Request Timeout on the media relay handshake.

Number formatting might be messing with the prompt URL generation. The flow uses a localized AU number format for the recording ID. Media server seems to choke on the hyphen placement. Switched the format to plain digits in a test flow, but the timeout still happens. Network traces from the LA office show the initial WebSocket connection succeeds. The STUN server response comes back clean. The problem starts when the media bridge tries to attach the recording audio.

ACMA compliance requires the prompt to play before any agent transfer. Timing window is too tight. The softphone client’s v10.2.1. Running on Windows 11. Same behavior on Chrome and Edge. Terraform state shows the edge routing policy is locked to Sydney. Not sure if the media relay’s rejecting the SDP answer because of the ACMA audio codec preference. Forced Opus codec in the WebRTC settings, but it doesn’t stick after a restart.

{
 "timestamp": "2024-05-14T08:12:33Z",
 "level": "ERROR",
 "component": "webrtc-media-bridge",
 "message": "SDP negotiation timeout. Offer rejected by edge relay.",
 "edge": "sydney-1",
 "latency_ms": 382,
 "error_code": "MEDIA_RELAY_408"
}