Installation and Configuration
Follow these steps to install and configure Softdial Webphone™:

- Download the SCC WebRTC Deployment Kit (zipped, 129MB), and unzip it
From Deployment Kit V5 - uses FreeSWITCH™ V1.8.4. For details on how to update, please see Freeswitch_Update_Instructions.txt (within the kit).
- In the unzipped folder, run the installer (FreeSWITCH-<version>-x64-Release.msi)
Fig. 1 - FreeSWITCH - Welcome
Click Next
Fig. 2 - FreeSWITCH - License Agreement
Check “I accept the terms…” and click Next
Fig. 3 - FreeSWITCH™ - Setup Type
Click Typical.
Fig. 4 - FreeSWITCH™ - Ready to install
Click Install
Fig. 5 - FreeSWITCH™ - C Runtime
In some servers, you may be asked to install a C Runtime Kit. Please follow the link to download and install it.
Fig. 6 - FreeSWITCH™ - Installing
Watch the installation process.
Fig. 7 - FreeSWITCH™ - Completed
Click Finish
The service must then be set to start automatically, as follows:
- Open the Services dialogue (Control Panel > System and Security > Administrative Tools)
- Locate the FreeSWITCH Multi Protocol Switch service
- Right-click and select Properties
- In the General tab, set Startup type to Automatic (Fig. 8)
Fig. 8 - FreeSWITCH startup type
From this point you have a standard FreeSWITCH™ installation.

Once you have finished the FreeSWITCH™ installation:
- Stop the FreeSWITCH™ service
- Rename the subfolder C:\Program Files\FreeSWITCH\conf (to conf-backup, for example)
- From the unzipped Deployment Kit folder, copy the conf folder to C:\Program Files\FreeSWITCH\
The settings below must be adjusted within FreeSWITCH™ to accommodate the specific environment. The following files can be found by default in C:\Program Files\FreeSWITCH\<subfolder> (as specified below)
File | Subfolder | Action |
---|---|---|
internal.xml | conf\sip_profiles |
For a LAN environment, with agents on subnets different from the WebRTC server: Change the ACL (Access Control List) settings ![]() Uncomment the following line: <!--
The following lines are uncommented by default: <param name="local-network-acl" value="localnet.auto"/> The required (range of) subnets must also be added as cidr nodes to the ACL. See the Acl.conf.xml section below. Omission of these steps will result in the error INCOMPATIBLE_DESTINATION in the FreeSWITCH™ log files when STG dials the agent extension |
Vars.xml | conf |
Change domain and domain_name variables ![]() Change to the host name of the FreeSWITCH™ Server, e.g. <X-PRE-PROCESS cmd="set" data="domain=psd1-sbc.devserver.sytelco.com"/> |
Xml_curl.conf.xml | conf\autoload_configs | Change gateway URL![]() <param name="gateway-url" bindings="directory" value="http://{SCC_IIS_Server}/softdial/PHPConsole/freeswitch.php" /> Change SCC_IIS_Server to the IP address and port (if not 80) of the web server. |
Acl.conf.xml | conf\autoload_configs | Change/ add to allow domain and cidr![]() <node type="allow" domain="sipserver.sytel.no-ip.com">
Change this file to the same name as your FreeSWITCH™ Server. Also add or change the second line using STG IP (or subnet). |
In the pre configured conf folder, the FreeSWITCH™ server has the IP address of 10.0.0.34 and the STG has the IP address of 10.0.0.146.
Best practice
During operation, it is recommended that the FreeSWITCH™ service is restarted
- if more than 100 connected agents - weekly
- if less than 100 connected agents - monthly

The REGISTRAR process from the Softdial Webphone requires authentication using SCC user credentials. For this we use what is called Dynamic Directory to make the integration. When a SIP/WSS registration attempt is made to FreeSWITCH™, mod_xml_curl makes a request to the webserver (WS) running a PHP script which in turn requests user information from the Softdial Repository™ via its HTTP api. The document returned should provide information as shown below for each user.
<document type+"freeswitch/xml">
<section name="directory">
<domain name="tenant1.devserver.sytelco.com">
<params>
<param name="dial-string" value="{^^:sip_invite_domain=${dialed_domain}:p....}" />
</params>
<variables>
<variable name="user_context" value="tenant1" />
</variables>
<groups>
<group name="tenant1">
<users>
<user id="2222">
<params>
<param name="passowrd" value="9b8bc475-3248-449a-99a4-8993be56c533"/>
</params>
<user>
</users>
</group>
</groups>
</domain>
</section>
</document>
Troubleshooting tip
To see these requests in FreeSWITCH™ logs, run the command xml_curl debug_on from the CLI . A file is also saved in the windows\temp directory on the FreeSWITCH™ server.

The WebRTC technology requires Transport Layer Security (TLS) traffic. To achieve this, it requires SSL certificates in both the web and FreeSWITCH™ servers.

SSL (Secure Sockets Layer) is a standard security protocol which establishes encrypted links between a web server and a browser, thereby ensuring that all communication that happens between a web server and browser(s) remains encrypted and hence private. The SSL Certificate is an industry standard that is used by millions of websites worldwide to protect all communication and data that's transmitted online through the websites.
As your FreeSWITCH™ will have a proper domain name, Sytel recommends that you choose a DNS CNAME validation for your certificate. A certificate from any authority will be accepted. You can use temporary certificates for testing purposes.
To enable HTTPS in IIS (the default SCC web server), please see this Microsoft documentation.

- Create a folder C:\Program Files\FreeSWITCH\cert.
- In the cert folder, create a file named wss.pem, with the content below.
Cert, Key and Chain(s) files are all contained in a single file, in the following order:
-----BEGIN CERTIFICATE-----
<cert>
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
<key>
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
<chain>
-----END CERTIFICATE-----
Start FreeSWITCH
You can check the FreeSWITCH™ websocket certificate by opening it in Chrome (for example). While the page is blank, if you don’t get TLS without any errors or warnings (as in Fig. 9), it will not work with WebRTC.

- Stop the FreeSWITCH™ service
- Take a backup of the cert folder.
- In the cert folder, delete the files tls.pem and dtls-srtp.pem. These will be recreated automatically when the service is restarted
- Modify wss.pem with the new certificate information
- Save the file
- Start the FreeSWITCH™ service

Configure all host names in your DNS server.
The mentioned hostname tenant1.devserver.sytelco.com is, of course, an example but this must resolve to the IP address or hostname (if using CNAMES) of the FreeSWITCH™ server.

It is necessary to configure the FreeSWITCH™ address in SCC web apps. For that, please edit the file ..\<root>\WebServer\www\softdial\PHPConsole\program.ini.
Under the group [system], find the freeswitch parameter and configure it as follows.
freeswitch = "wss://fs.example.com:7443"
where fs.example.com is the FreeSWITCH™ Server host name.

If you are using a WebProxy in a LAN environment, it will be necessary to create a rule in your Web Proxy to redirect the WebRTC websocket connection to the WebRTC Server (Freeswitch) to allow agents to login via a web browser.
Also, if relevant, consider disabling the Web Proxy for LAN agent subnets.

To allow a User to use Softdial Webphone with Agent Desktop:
- Create a User adding a default extension directly in the User parameters and check the option Use WebRTC phone

STG routes must be adjusted to ensure that all WebRTC calls will be sent to the FreeSWITCH™ Server to nail-up the extensions as SIP trunks. This configuration is related to the FreeSWITCH™ customizations.
For that, please apply the following customizations in the STG config.xml (see Configuration (Softdial Telephony Gateway™))
<route name="EXTENSIONSFreeSwitch">
<targetPortGroups>
<portGroup>TRUNKS</portGroup>
</targetPortGroups>
<acceptList>
<item>3</item>
</acceptList>
<tenantList>
<item>default</item>
</tenantList>
<prefix>sip:</prefix>
<postfix>@webRTC_server_ip</postfix>
<maxDigits>4</maxDigits>
<minDigits>4</minDigits>
<allowCallProgressEmulation>true</allowCallProgressEmulation>
<ipCallProfile>Agents</ipCallProfile>
<presentation>
<originating_addr>sip:tenant_name@stg_server_hostname</originating_addr>
</presentation>
<priority>1</priority>
<congestionThreshold>5</congestionThreshold>
<cadenceRule>UK</cadenceRule>
</route>
The originating_addr is vital:
- The left hand part - tenant_name - is used in FreeSWITCH™ as the ${caller_id_name} variable. This variable is then used as the domain (tenant) when dialing the user's extension. The hostname tenant1.devserver.sytelco.com is used by SIP clients and webphone as the domain to register with so it must resolve to the IP of the FreeSWITCH™ server.
- The right hand part - stg_server_hostname - simply allows FreeSWITCH™ to allow calls from STG (provided that the originating domain has been added to acl.conf file, as described in ii. FreeSWITCH™ server - customisation above). This domain name does not need to be resolvable.

- There is no need to change any FreeSWITCH™ configuration.
- An outbound route must be created for each tenant. Use <tenantList> to filter the route per tenant.
- Each tenant must have a different range of extensions . Use <acceptList> to filter the range of extensions.
- <originating_addr> must contain the relevant tenant name.

To allow WebRTC, it is important to use HTTPS to browse SCC web applications. See iii. SSL certificates - obtaining and installing
To test the Softdial Webphone in Agent Desktop:
- an active headset (for access to microphone and speakers) is required
- the agent computer should
- meet the minimum hardware/ software specification
- be on the same LAN as both the SCC and FreeSWITCH™ servers
To log in the agent:
- Open Agent Desktop. The user will be asked to allow access the computer’s microphone . Click Always allow.
Fig. 10 - Use of microphone
-
When the Webphone is loading, this icon will be shown:
Fig. 11 - Webphone loading
-
When the Webphone is connected and with a nailed-up call, this icon will be shown:
Fig. 12 - Webphone connected
From this point, you can use Agent Desktop with the Softdial Webphone.