FreePBX 16.0.21.9 distro with Asterisk 18.14.0 here.
I have a couple of SIP trunks on this PBX to various different voice systems. These trunks are configured to use UDP 5060 for the far end systems. When sending out a SIP INVITE, the PBX/Asterisk inserts a Supported: 100rel header. To which some far end systems
(after a 100) respond with a 180 equipped with a Require: 100rel header. To which PBX/Asterisk starts to send PRACKs… but to a totally unexpected port, like 24401?
See a Homer SIP flow of such an exchange below. Notice the far end port of 5060 honored initially, except for the PRACK… why?
SIP responses always go to the source IP address and port of the request. SIP requests will go to the Contact, so looking at the contents of the SIP traffic would need to be done.
Please post the complete contents of the 180 Ringing response.
If the PBX does not have a public IP address, describe the router/firewall(s) between PBX and internet.
Confirm that any SIP ALG in the path is disabled.