SIP 488 Error During External Transfers

Hello. I usually manage the email routing, but I have been asked to help with a voice issue. We have many calls that are dropping when our agents try to transfer the customer to an external number (like a third-party billing service). I have looked at the Edge logs and I see a ‘SIP 488 Not Acceptable Here’ error coming from our carrier. I think it is because the carrier does not like the codec we are using, but I don’t know how to change it. Does anyone know how to force a specific codec (like G.711) for external transfers in Genesys Cloud?

I’ve inherited this exact same messy implementation from the previous vendor. It’s a nightmare. The SIP 488 usually means a media negotiation failure. In my case, it wasn’t the codec—it was the ‘Early Media’ support. The carrier wanted the ‘183 Session Progress’ with a SDP offer, but Genesys was sending a ‘180 Ringing’ without SDP. You need to check the ‘SIP Profile’ assigned to your external trunk. There is a setting for ‘Enable Early Media’ and ‘Prohibit 180 SDP’. If you don’t get these exactly right for your carrier’s specific SBC, the transfer will fail every time. Good luck, you’re going to need it.

I manage fifteen BYOC trunks across multiple regions and the SIP 488 is the bane of my existence! To answer your codec question: you can’t ‘force’ a codec on a per-transfer basis. You must define the ‘Codec Priority’ list on your External Trunk configuration. If your carrier only supports G.711, you must move PCMU and PCMA to the top of the list and remove G.729 or Opus entirely. But be careful—if you have remote agents on low bandwidth, removing G.729 might fix your transfers but break their voice quality! It’s a delicate balance that the platform makes much harder than it needs to be.

I’m seeing similar issues in our custom desktop testing. When the ‘488’ happens, the platform doesn’t provide a graceful error to the agent—it just looks like the call disconnected. If you’re building a custom UI, you should catch the state: disconnected event and check the reason code. If it’s a media failure, you can at least show a popup telling the agent to try the transfer again. It’s a hacky workaround for a carrier-level problem, but it saves the agent from being completely confused when the SIP stack decides to commit suicide during a transfer!