I came across an issue while trying to do a direct SIP call from a mobile phone on a 4G network to a VitalPBX instance that sits behind a NAT. All necessary ports are forwarded as a destination NAT (3500-3501TCP, 5060-5061UDP and 12000-20000UDP). However, in the packet capture, my SDP header is showing the IP address of my client as the private IP address of my mobile phone within my Service Providers 4G network (behind a CGNAT), on a private IP. Therefore, the PBX sends the RTP to the private IP address which of course does not work as it should send it to the public IP that I am behind.
My question is, how do we tell VitalPBX Connect to use the outside address of the client (public) to send the RTP traffic. Is this possible or would it be better using the OpenVPN setup instead which will circumvent this issue. If using straight SIP to connect to the PBX, SDP would almost always be derived by the underlying network that the client is on unless specified otherwise in the client configuration. Not all implementations of SIP require a VPN, but what is usually done in this case? Any guidance would be greatly appreciated, thank you.