[solved] Outgoing calls to external voicemail systems drop 30 seconds after the "beep"

We’re running FreePBX12.0.76.4. The issue we’d see is when calling specific numbers from our PBX and getting their voicemail. The calls would drop 30 seconds after the external voicemail system sent us the “beep.”

Analysis of the packet capture shows a normal SIP conversation, then RTP streams in both directions, then the RTP stream from upstream would stop at the time coinciding with the “beep” from the external voicemail system.

30 seconds later, our Asterisk would send BYEs and tear down the conversation.

My theory is that the external system we’re calling is using Silence Suppression, and not sending any additional RTP for the silence to conserve bandwidth. FreePBX has a default rtptimeout setting of 30, so it’s tearing the conversation down after not receiving any RTP packets for 30 seconds.

Setting rtpkeepalive=10 did not fix the problem.

I have worked around the problem by setting rtptimeout=300 in the Settings -> Asterisk SIP Settings -> Chan SIP page. This gives staff 5 minutes to finish the voicemail message before the call is dropped.