Verto (VER-to) RTC is a FreeSWITCH endpoint that implements a subset of a JSON-RPC connection designed for use over secure websockets.
This allows a web browser or other WebRTC client to originate a call using Verto into a FreeSWITCH installation and then out to the PSTN using SIP, SS7, or other supported protocol.
Install Godaddy SSL certificate on Nginx
Godaddy gives you the zip file, which contains 2 files: mysite.com.crt and gd_bundle.crt. You need to combine both files into one. And then copy to your certificates directory on server.
cat mysite.com.crt gd_bundle.crt > /etc/ssl/certs/combinedKey.crt
cp private.key /etc/ssl/private/privatekey.key
Edit Nginx configuration file nginx.conf:
server {
listen 443;
server_name www.mysite.com;
ssl on;
ssl_certificate /etc/ssl/certs/combinedKey.crt;
ssl_certificate_key /etc/ssl/private/privatekey.key;
...
}
Restart Nginx processes:
# /etc/init.d/nginx restart
Configure Verto
layout for /usr/local/freeswitch/certs/wss.pem:
-----BEGIN CERTIFICATE----- <cert> -----END CERTIFICATE----- -----BEGIN RSA PRIVATE KEY----- <key> -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- <chain> -----END CERTIFICATE-----
So we need combine 2 files into one – wss.pem:
cat /etc/ssl/certs/combinedKey.crt /etc/ssl/private/privatekey.key > /usr/local/freeswitch/certs/wss.pem
Create mod_verto configuration file verto.conf.xml:
/usr/local/freeswitch/conf/autoload_configs/verto.conf.xml
<configuration name="verto.conf" description="HTML5 Verto Endpoint">
<settings>
<param name="debug" value="10"/>
<param name="enable-presence" value="false"/>
<param name="detach-timeout-sec" value="0"/>
</settings>
<profiles>
<profile name="mine">
<param name="bind-local" value="0.0.0.0:8081"/>
<param name="bind-local" value="0.0.0.0:8082" secure="true"/>
<param name="secure-combined" value="/usr/local/freeswitch/certs/wss.pem"/>
<param name="secure-chain" value="/usr/local/freeswitch/certs/wss.pem"/>
<param name="userauth" value="true"/>
<param name="context" value="public"/>
<param name="dialplan" value="XML"/>
<param name="mcast-ip" value="239.1.1.1"/>
<param name="mcast-port" value="1337"/>
<param name="local-network" value="localnet.auto"/>
<param name="apply-candidate-acl" value="wan.auto"/>
<param name="rtp-ip" value="${local_ip_v4}"/>
<!-- <param name="ext-rtp-ip" value=""/> -->
<param name="outbound-codec-string" value="opus,vp8"/>
<param name="inbound-codec-string" value="opus,vp8"/>
<param name="timer-name" value="soft"/>
</profile>
</profiles>
</configuration>
Reload mod_verto:
fs_cli -x 'reload mod_verto'
Test certificates:
openssl s_client -connect host.domain:443

