It's worth a shot. Yes.
VoIP
Rules
-
Be civil. Disagreements of varying intensities will happen, but particularly vitriolic attacks will be pruned from the discussion.
-
Do not promote or advertise for any business, service or product unless responding to a specific request for recommendations. This includes recommending a user change providers when they have not indicated they are interested in doing so.
-
Do not send private messages to users, or invite users to send you a private message, for the purpose of promoting or advertising a business, service or product.
-
Do not invite, encourage, or seek help with engaging in unethical or fraudulent activity relating to VoIP, such as call spoofing, robocalling and autodialers, or fraudulent STIR/SHAKEN attestation.
Often a firewall issue. SIP ALG or a required port not allowing traffic.
this is the answer
Interesting, but why exactly 21 seconds?
This is a known issue. Google it to narrow down further but essentially there is a keepalive that should be sent at around 30 seconds (roughly, depends somewhat on where you start counting). Without this keepalive packet the call will drop as the carrier assumes you left.
It's been years since I hit this issue. Since you using a bad pbx system I won't help further than say most have already given you the likely solution but it's highly likely you need to consider ports, and said keepalive or ack in general.
Here's people fighting and resolving: https://stackoverflow.com/questions/27614532/sip-call-drop-after-30seconds
Sounds like you have 21 seconds to go