You would be able to avoid the need for user's phones to use STUN if they were registering to an OpenSIPS server using these modules: usrloc, registrar, nathelper, nat_traversal and mediaproxy. The OpenSIPS server and Mediaproxy can run on the same physical server for moderate loads and the solution is also scalable as your traffic increases. (To keep things simple, that server must not be behind NAT). This provides far-end NAT traversal which can cope with the majority of UA's that are behind NAT and not using STUN. In my opinion, Asterisk on a public IP is not as good at far-end NAT traversal.
By the way, if you do take a look at the Snom phones, the 320 is very similar to the 360 only cheaper. The main difference is the 360 has a larger display screen.