Published Oct 01, 2024

How to resolve "No Audio" on calls passed through a Digium Gateway

When passing calls between a Digium gateway and PBX, it is possible to have an RTP deadlock situation occur if NAT Traversal is enabled both on the Gateway SIP endpoint and on the PBX connected to the Gateway.

When NAT Traversal is enabled, the Gateway will wait for audio coming from the far end (PBX) before it will start sending audio. This is because NAT needs to know where to send the audio, and it can only do so after it has received the first RTP packet from the far end. When NAT Traversal is enabled on some PBXs, they do not wait for RTP to be sent by the far end. Instead they start sending RTP to the IP address on the SDP header from the far end and then change the IP if media is received from another IP address.

This cannot be done on the Gateway; the RTP engine works by hardware rather than software.

On the other hand, there are some PBXs, when NAT Traversal is enabled, they wait for RTP to be sent from the far end before sending RTP back. Due to this NAT behavior, you could end up in a situation in which the Gateway is waiting for audio from the far end in order to send audio, and the far end is doing the exact same thing. Essentially, it is creating a dead lock situation because both end points are waiting for audio.

The way to resolve this situation is to modify your SIP endpoint on the Gateway that registers to the PBX, and disable NAT Traversal. This will allow the Gateway to send RTP to the far end, and the far end will be able to return RTP back to the Gateway.

Related content