Asterisk does not release calls over non standard TCP Port

Hello… I am having a problem with my asterisk 11.2.1.
First of all, the system is in production, and performing really well. The server is connected to internet via NAT. I have published it on a port different than 5060. I did that because of “security” although I know that publishing that way could not be considered as a security measure by itself :smile: At least, having my server published on a non standard port saves a lot of BW due to less attacks reaching the server.
The problem I am currently having is related to TCP signaling. When a phone registered with TCP over the internet starts or receives a call, the call proceeds without any problem, but stays UP indefinitely. That does not matter to me when the call is between ip phones, but it is a real problem when the call goes to the PSTN through a gateway.
If the phone is in the same network as the server, everything works fine.

The following are the tests and made last week, and their corresponding results:
After establishing a Call…
…on a non standard TCP port over the internet and hangup, call stays up indefinitely
…on a non standard UDP port over the internet and hangup, asterisk releases the channel.
…on a non standard TCP/UDP port over server lan and hangup, asterisk releases the channel.
…on TCP 5060 TCP/UDP port over internet and hangup, asterisk releases the channel.

I have to mention that my router was making NAT in all the previous scenarios. I have also changed my Linsys router and temporarily replaced it with a corporate cisco router and configured nat on it. I got the same results, so it may be not a problem related to the router.

Any ideas???

Thanks in advance!!!