Before You Start
From FreeSWITCH Wiki
Planning a new FreeSWITCH configuration
If you are going to setup FreeSWITCH it is worth planning ahead before you start. This gives you a better idea of what you want to configure. Later you can then go through and implement the requirements bit by bit until you have a fully working system.
Things to consider are:
Plan your dialplan
This can vary enormously depending on if this is for business or private use, and in which country you live as different dial plans are expected in different places. So it's really worth thinking about this first. You will need to configure some extensions, and then decide how you want to dial out, if you want to use a digit to get an outside line or if you want this to be transparent and dial the normal number directly. In the latter case you then have to make the extension and other "service" numbers fit in so they don't interfere with normal phone numbers.
Determine which gateways you are going to configure to dial out
It's likely that you are going to have one or more gateways you need to configure to dial out. You may be planning on using a main gateway with a backup, or perhaps to use a certain gateway for certain destinations. There are lots of possibilities. However you should determine what it is you want to do.
Determine how will people dial into the FreeSWITCH server
You may have one or more interfaces, each with different "restrictions" on who will use it. Incoming calls from gateways should probably be limited to only work from addresses known to come from that gateway. You may want some extensions to be reachable from outside, you may want only certain extensions to be reachable, or you may want a single global incoming number.
Determine the extra functionality you want to implement
This is for things like voicemail, conference calls, IVR systems and so on and who will be allowed to use them.
Different people may have different ideas of what needs to be applied. However, it's worth thinking how your system can be accessed and what protection you may want to apply. Some of this may be done with FreeSWITCH, some of it may be done by your operating system or by an external firewall.
- Do you want to have a firewall. Some sort of firewall is probably a good idea. However, don't believe you are completely safe from attack if you're behind a NAT'd connection. Outgoing UDP traffic can often open up incoming connections back to your system.
- Rate limiting incoming registrations and/or calls from extensions
- Rate limiting incoming calls from inbound providers
- Rate limiting outgoing calls from a specific extension
- Rate limiting concurrent outgoing calls via a provider
Right now there is no "empty configuration" with a system for implementing the different configuration requirements based on different recipes. That might be nice, so it's likely you may need to start from the default configuration and adjust it to meet the needs you outline above. Also it would be nice to have some test tools so you can see that certain behavior works as expected but also non-expected behavior does not. The former is easier to check while the latter is likely to be more difficult to do.