When SIP ALG processes a SIP call, it usually opens pinholes for SIP signaling and RTP/RTCP packets. NAT usually takes place during the process at both the network and SIP application layers. SIP ALG ensures that, with NAT happening, corresponding SIP and RTP/RTCP pinholes are created during the process when it is necessary for call sessions to be established through FortiOS devices.
By default, SIP ALG manages pinholes automatically, but some special configurations can be used to restrict the pinholes if required.
SIP pinhole restriction
By default, the strict-register attribute is enabled. When enabled, after a SIP endpoint registers to the SIP server through a firewall policy on the FortiOS device, only the SIP messages sent from the same IP address as the SIP server are allowed to pass through the SIP pinhole that is created in the FortiOS device to reach the SIP endpoints. If the attribute is disabled, SIP messages from any IP addresses can pass through the pinhole created after the registration.
config voip profile edit "voip-profile-name" config sip set strict-register [enable|disable] ... end next end
RTP/RTCP pinhole restriction
In a SIP call through SIP ALG, the NATed RTP/RTCP port range is 5117 to 65533 by default. If required, the port range can be restricted.
config voip profile edit "voip-profile-name" config sip set nat-port-range <start_port_number>-<end_port_number> ... end next end
In a SIP call session, the RTP port number is usually an even number and the RTCP port number is an odd number that is one more than the RTP port number. It is best practice to configure
start_port_number to an even number, and
end_port_number to an odd number, for example:
config voip profile edit "voip-profile-name" conf sip set nat-port-range 30000-39999 end next end