For FreePBX versions 2.5 or newer we have a simple module included in FreePBX called SIPStation which makes setting up your trunks a breeze. You can view this wiki on how to use the SIPStation module.
If you are using another Asterisk based PBX then you should be able to use the configuration instructions available atwww.freepbx.org/freepbx-trunks and adjust them for your specific Asterisk system. We do not currenlty have configuration instructions for other systems but there are plenty of users connected to our service with other systems so you should usually be able to get the service working. We require a SIP registration to receive inbound calls. We require a challenge response authentication for outbound calls. If your system is capable of this configuration (as most SIP capable systems are) then you should be able to configure our service.
We recommend forwarding ports UDP/5060 and UDP/10000-20000 for standard FreePBX/Asterisk based installs. It may be possible to get your service working without port forwarding but optimal service will be obtained with the above mentioned ports. You can lock down port UDP/5060 to trunk1.freepbx.com and trunk2.freepbx.com for additional security. You can not lock down UDP/10000-20000 to any specific IP address as the media of a phone call can come from hundreds of different IP addresses.
You can lock down port 5060/UDP to trunk1.freepbx.com and trunk2.freepbx.com. You can not lock down the media ports because the media servers vary and change. Most security issues that are reported are usually related to manufacture vulnerabilities in their SIP stack, port 5060. By locking down this signalling port you should have almost all potential issues addressed.
We support g711 (ulaw) and g729.