We have a FusionPBX on a VM in the cloud with a public IP
we use Bandwidth.com as our SIP Trunking Provider (We are IP ACLed and do not use REGISTRATION)
We have several clients at different location with several phones each that connect to our phone system in the cloud
Everything works great...