2016-07-09

FreeSWITCH on Windows - first impression

Few notes from compiling and running FreeSWITCH on Windows

In the hope of getting help with some faxing/T.30 problems from great VS debugger I've built FreeSWITCH 1.6.8 for Windows. So far I can say that Windows version is well prepared as contrary to building under Linux (tested Ubuntu 14 LTS) it works out of the box (i.e. without solving dependency puzzle).

From what I remember some earlier FreeSWITCH versions supported multiple VS versions or at least contained project files for older and relatively lightweight VS2008. With FS 1.6.8 only VS2015 is supported. Although this IDE still has free versions I definitely dislike that Microsoft forces installation of Visual Basic (which I have absolutely no intent to use) while making C++ optional. With all that .net baggage be prepared for 9GB disk usage (+ few extra hundreds for IE 10/11 if you don't have it with Windows 7) for VS2015 Community.

FreeSWITCH groups multiple project files. Although it seemed to me that building just FreeSwitchConsole project and mod_sofia from Endpoints group would create minimal functional set - it you don't build other modules, at least one that you would in /conf/autoload_conf/modules.conf.xml after building basic executable you'll gonna have bad time... With XML dialplan files ignored you won't be able making basic calls.

Configuring and debugging requires lot of try-and-error for me thus I've opted to completely disable UPnP that adds significant delay to application startup. Modified switch_nat.c:
#if 0
    if (!nat_globals.nat_type) {
        switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Checking for UPnP\n");
        init_upnp();
    }
#endif


To add SIP operator create new configuration file in conf/sip_profiles/external/<operator_name>.xml.
To check operator status use
sofia status
or
sofia status gateway <sip_provider>
"REGED" means registered.

To add internal SIP extension (softphones, desk phones to register) create configuration files in conf/directory/default/. Default configuration contains already extensions with numbers 1000 - 1019. Edit vars.xml file to change default password (from 1234) for all these extension, I think they are disabled until it is done as log says:
CRIT WARNING WARNING WARNING WARNING WARNING WARNING
DESTINATION_OUT_OF_ORDER
Open vars.xml and change the default_password

To check internal extensions status use list_users command.

Other useful commands:
  • shutdown or ... = quit
  • show calls
  • reloadxml
  • sofia global siptrace on - log RX/TX SIP messages