I am considering using FreeSWITCH as a replacement of our (rather crappy, outdated and buggy) sip proxy system, and have the following system setup on the server: * eth0 faces the external Internet interface, *but* it does not have a public IP address (it has a private one given to it by my ISP's DHCP server); * eth1 faces our internal network (say 10.1.1.0/24); * tun0 serves all mobile smartphones and connects to the internal network (it has a different ip range, say 10.1.2.0/24) - they are all connected via the Internet using OpenVPN; I would like to configure FreeSWITCH as a local registrar and ask it to handle internal calls between ourselves (eth1<->tun0). I would also like to use one external VOIP provider to which FreeSWITCH registers on startup. This also needs to have all NAT-related issues dealt with as well (hopefully by FreeSWITCH, if possible). I would also need to emphasise that FreeSWITCH *cannot* just listen on any (public-facing) interface port in order to receive calls from the external provider, simply because my ISP won't allow it (i.e. I can't just "open" that port and hope that someone will contact me - the connection needs to be initiated by our server for incoming call to get routed through). The purpose of registering this external account is so that both the smart phones (tun0) and the internal net (eth1) users could use this account to make external calls (starting with "0"). Obviously, I need these calls to be routed properly via the external VOIP account. In addition to that, I would also need to receive calls from that external account to a nominated internal one (say on extension 20). Could this be done relatively easily in FreeSWITCH? A question about binding: in order to be able to use both tun0 and eth1 interfaces so that FreeSWITCH serves the calls from both eth1 and tun0 devices/networks, is it possible to instruct it to bind on different IP addresses (on tun0 and eth1 respectively) in order to serve calls to/from these networks? I do *not* wish to bind to 0.0.0.0 - just use the interfaces I am interested in - tun0 and eth1 in my case. If all of the above is possible, do I have to mess about and configure SNAT/DNAT separately and use sip kernel module "helpers" etc (I *do* have the routing set up properly though - that I am sure works 100%) or is FreeSWITCH perfectly capable of setting it all up for me? One final query: is there a decent distribution source package of FreeSWITCH, which I could take and then use it to build a binary package (I use Fedora on all of our machines). I need this, because all of our images are built using the rpm packaging system and I cannot just "fetch the latest git", compile and install FreeSWITCH - I need it packaged, so that the image builder picks it up and distributes it to the machine concerned. I checked the SUSE repository (as instructed on the FreeSWITCH wiki), but found 2 packages, both of which cannot be build due to errors! Many thanks in advance!