NAT routers need to keep a list of UDP connections open to know the internal/external ports to map between and what connections are open to allow the replies through the firewall. Since there's no explicit disconnect in UDP it relies exclusively on timeouts to remove old connections from the table when no longer in use, to prevent the mapping table becoming full.
Once it's removed from the table the router is no longer going to know the internal client to send the INVITE from the server to, which could be why you stop receiving the call on the client. From the server's perspective it probably times out.
Either side sending packets (eg keepalives) will keep the connection 'recently active' and therefore the mapping open.
Check the SIP trace on FreeSWITCH (sofia global siptrace on). See if the phone gives a response to the INVITE. If the phone gives a reply it's getting through the NAT and so that's not the issue. If you get no reply it's highly likely it is the NAT router.
can you suggest me a value?
The best value is going to depend on the router - on what timeout value it has, how large the table is, and how many connections you have open through it.
30s is probably a good setting to go. You can tweak it up/down from there if need be.