Well my topology is quite different.
We have a local IP-PBX (Mitel) with IP Phones, and need to place calls throw a registered SIP Trunk provider (ex. bradvoice).
Seems that ports are dynamically switched when placing features like Hold/Transfer.
First idea was trying to port forward and play with the SME FW, but with no luck.
Then we found that SIP Proxy ap.
You shouldn't need to port forward (and it likely won't do anything) and quite frankly the issue will have to do with the fact the RTP stream is actually going directly from the IP phone (or other 3300 gateways as may be the case) to the service provider. The signaling is going through the 3300 (assuming that is what you have). So the problem you have is that the RTP ports have to be opened and resolved to the correct IP phone dynamically on a call by call basis. To add a little fun, when you put a call on hold on the 3300, the RTP stream will move from the phone to the 3300 because the 3300 can provide things like music on hold. When you return from hold, the stream will move back to the phone. This is part of the fun with SIP!
Most service providers solve this by providing an SBC (Session Border Controller) in their network to adjust the IP address within the SIP signaling to match. This is why many will simply work (and likely why Arne's is working). Mitel's IP phones know how to deal with the SBC situation through NATs.
If your service provider doesn't have an SBC then you will need to deal with it at your own firewall as you say to be your case. You could put a border gateway in your DMZ or perhaps try using Asterisk or OpenSER to act as your RTP gateway on top of the SME server. In this case you are running the RTP stream through the gateway to force the RTP streams and signaling to be remapped between the two domains (external vs internal).
Mitel also has a number of tech notes on how to configure for various service providers and softswitches. Sadly just about every service provider is a bit different in their implementation for various reasons. I don't know if they have yours done yet. Which service provider are you using?
I would also double check to see if the service provider provides an SBC or if you have to modify some of your SIP settings to get the SBC to act properly.