FreeSWITCH is a VoIP telephone platform based on open standards. It may function as a client, carrier-class softswitch, or PBX. Its simplicity of installation and configuration has made it a popular PBX option in recent years. It has a modular architecture, meaning additional functions may be inserted as supplemental modules into the system. Unwanted modules can be deactivated at the same time. The fact that FreeSWITCH can be installed and run without issue on practically any operating system platform, including Windows, has made it a popular choice among VoIP PBX experts.
Although FreeSWITCH may be handled using a graphical user interface (GUI), the arrangement of its configuration directories and files makes direct file access administration more appealing and fairly easy to operate, even for beginners. The configuration files are written in XML. The XML schema is clear and simple to understand. There is no requirement for XML knowledge. This post aims to expose you to this robust and dependable PBX solution, which is also free, so that you may follow up with extensive FreeSWITCH configuration instructions in future articles. Furthermore, I’d like to take this time to congratulate Mr. Anthony Minessale, the Lead Developer of FreeSWITCH, and his team for an excellent work of art. Their contribution to the VoIP industry is priceless.
How To Install FreeSWITCH In Windows?
FreeSWITCH installation guides for all OS systems are available at http://wiki.freeswitch.org/wiki/Installation_Guide. I’ll go through Windows installation binaries briefly. A list of executable installers may be found here. You can choose from freepbx_svn.exe or fusionpbx_svn.exe. The only variation between them is the type of GUI. You have the option of not installing the GUI. Pick a custom installation from the drop-down menu and deselect the undesirable features, as seen in the image below. I like the “clear” installation, which includes only the essential components and your chosen music files.
FreeSWITCH Configuration Directories
FreeSWITCH is installed by default in Windows in C:\Freeswitch. The configuration directories and XML configuration files are in the “conf” directory. The following are the most critical configuration directories that you will undoubtedly use.
- Autoload_configs – This directory contains all the configuration files for each platform software module. They are imported automatically with their corresponding module. These configuration files must occasionally be changed to perform particular core activities.
- Dialplan – This is where dial-digit manipulation is done. FreeSWITCH features a robust dialplan system that employs numerous filtering options for advanced call routing and service activation depending on various SIP headers. For caller and callee dial-number processing, Perl regular expressions are used.
- Directory – This folder holds the user database, which contains all user accounts, authentication credentials, and special user features like caller_ID, Call limitations, user grouping, etc.
- Sip_profiles – All essential SIP configuration files may be found here. Different profile files can be created. There are two types of profiles: external contact with the outside world via SIP proxies and local SIP connectivity with home SIP users.
Important FreeSWITCH Configuration Files
Two default SIP profiles are created with the installation of FreeSWITCH.
- Internal – The Internal.xml file, located in conf/sip_profiles/, solely affects the behavior of local extensions. Port 5060 on the local PC is used by default to listen to incoming client requests. SIP settings and specific parameterization of SIP parameters are applied here.
- External – The external.xml file in the conf/sip_profiles directory refers to “external” connectivity, i.e., connectivity with external devices or VoIP providers. It defaults to port 5080 and handles all “external” SIP flows by the needs of various VoIP providers or distant devices.
Two key XML files are in the /conf/dialplan directory named default.xml and public.xml.
- Default.xml – This file includes the system’s dialed code point analysis. All Signaling routes and other call features are assessed here, and this is the default dial plan configuration for all local users. Although a distinct technique is employed for incoming calls, it is consulted by default at the start of all outgoing calls.
- Public.xml – The public.xml file is consulted first for incoming calls (incoming from external networks to the PBX). Pre-analysis of the called or calling party occurs based on particular match requirements, and switching to the default.xml is applied for further analysis to terminate the call.
All local phone extensions are defined by default in /conf/directory/default. A unique XML file is created for each SIP extension, which contains information such as the user’s call ID, call allowance, voicemail password, and group ID if the user belongs to a specified group of users. The default. xml file, which holds all of the network’s user groups, is in the /conf/directory. Users of certain groups, or perhaps numerous groups, must be stated here. Certain services, such as “follow me” calling plans where many users ring concurrently or consecutively, require user grouping.
Another significant configuration file is the vars.xml file, located in the /conf directory and holds certain crucial preprocessor variables. In other words, it holds some of the system’s global variables. For example, SIP ports per profile are defined here, as is the preferred codec list for external and internal SIP profiles. The IP address for SIP signaling and RTP media is also specified here, either statically or via other means, such as the STUN protocol or UPnP.
Consider The Following: