Trying to get our configuration set up for failover for our Singapore BYOC trunks. The primary carrier drops packets intermittently, triggering a 408 Request Timeout in the SIP logs. Despite setting the timeout threshold to 3000ms, the platform fails to switch to the secondary trunk, keeping calls in a ringing state indefinitely.
Outbound routing rules are verified with correct priority indices. Does the failover logic require a specific SIP response code other than 408 to trigger? Looking for insights on carrier-specific quirks affecting this transition.
I’d suggest checking out at the following configuration adjustments:
- Enable
sdp-media-encryption on the BYOC trunk to prevent SIP transaction stalls caused by cryptographic handshake timeouts.
- Reduce the
invite-retry-count to 1 in the outbound routing rules to force immediate failover upon the first 408 response.
You should probably look at at the interaction between your timeout configuration and the actual SIP signaling behavior. While the suggestion above regarding invite-retry-count is technically sound for forcing a quicker transition, reducing it to 1 can be risky in high-latency environments. It may cause premature failover to the secondary trunk even if the primary carrier is merely experiencing transient network jitter rather than a complete outage.
From a performance monitoring perspective, we often see that a 408 timeout indicates the initial INVITE was not acknowledged within the specified window. However, the failover logic in Genesys Cloud does not always trigger immediately upon receiving a single 408 if the system interprets it as a non-terminal response depending on the trunk profile settings. It is advisable to verify the sdp-media-encryption setting as mentioned, but also ensure that the BYOC trunk profile is configured to treat 408 as a terminal failure for failover purposes.
Additionally, check the “Retry on Failure” options within the outbound routing rule. If this is enabled, the system will attempt to reconnect to the primary trunk before switching, which can delay the failover. Disabling this or setting a very low retry limit might be more effective than just adjusting the invite count. For a detailed breakdown of how SIP response codes map to failover actions in BYOC scenarios, refer to this internal knowledge base article: Genesys Cloud BYOC Failover Logic and SIP Response Handling.
It is also worth reviewing the queue activity metrics during these incidents. If calls are stuck in ringing states, you may see a spike in “Abandoned After Answer” or increased “Average Speed of Answer” for successful calls, indicating that the secondary trunk is handling the load but with potential degradation. Monitoring these metrics can help validate whether the failover is actually occurring or if the calls are simply timing out in the primary trunk’s queue.
Make sure you verify that the failover logic isn’t being blocked by a mismatched attribute mapping during the migration from Zendesk to Genesys Cloud. In Zendesk, we often handled routing failures by simply closing the ticket and creating a new one with a different tag, which is a completely different paradigm from the persistent SIP signaling in GC. When migrating, it is easy to overlook how legacy routing preferences might conflict with GC’s outbound routing rules.
The 408 timeout issue often stems from the system waiting for a response that never arrives due to misconfigured retry intervals. The suggestion about reducing invite-retry-count is valid, but you must also check the sip-keep-alive settings on your BYOC trunk. If these are too aggressive, they can interfere with the failover handshake.
Here is a recommended configuration for your outbound routing rule to ensure cleaner failover:
{
"outboundRoutingRule": {
"name": "SG_Failover_Rule",
"priority": 1,
"conditions": [
{
"type": "equal",
"field": "location",
"value": "Singapore"
}
],
"actions": [
{
"type": "setRouting",
"trunk": "Primary_SG_Trunk",
"failoverTrunk": "Secondary_SG_Trunk",
"inviteRetryCount": 1,
"sdpMediaEncryption": true
}
]
}
}
Ensure that sdpMediaEncryption is enabled to prevent the cryptographic handshake timeouts mentioned earlier. Also, compare your Zendesk ticket lifecycle with GC interaction flows. In Zendesk, a “pending” status might have held the ticket open indefinitely, whereas GC interactions have strict timeout boundaries. Adjusting these boundaries in your routing rules will help prevent the ringing state from persisting. Check your SIP logs for any 407 Proxy Authentication Required errors, as these can also mimic 408 timeouts during migration phases.