VoIP

Freeswitch SIP Capture over TLS with SNGREP and HEP

Freeswitch SIP Capture over TLS with SNGREP and HEP

Encrypt all the things! This has been a popular sentiment in the open source community for the last few years. And with the rise of Lets Encrypt this has never been easier and cheaper to do.

One industry that hasn’t been so quick to adopt these new secure mentalities are wholesale VoIP providers. But this is changing and providers like Simwood, Voxbone, DIDLogic and Twilio now offer encrypted voice calls using SIP over TLS with SRTP media.

Encrypted calls with Zoiper 5 and Freeswitch 1.6

Encrypted calls with Zoiper 5 and Freeswitch 1.6

Zoiper 5 and Freeswitch 1.6 don't allow encrypted calls to work out of the box due to a bug in Freeswitch with some of the newer RTP/SDES encryption suites.

After much time spent with the Zoiper support team (who are awesome by the way!), they suggested changing the cipher preference order in Freeswitch to disable some of the new suites that Freeswitch does not support fully.

Running Freeswitch ESL Event Viewer on Fedora 22

Running Freeswitch ESL Event Viewer on Fedora 22

My job involves me doing a lot of work with Freeswitch and for that it is especially useful to be able to debug the internal event stream via the Event Socket Library (ESL). Thankfully Paul Labedan has written a GUI in QT that runs on Linux and allows me to see the events in real-time. Here is how to install it on Fedora 22: First download the latest ZIP file from Github and unpack.
Freeswitch Text-To-Speech Caching with Cepstral and LUA

Freeswitch Text-To-Speech Caching with Cepstral and LUA

Recently I have been working on a project using software called Freeswitch, which is an excellent open source SIP server. The project required the use of a text-to-speech (TTS) speech engine called Cepstral. However Cepstral's product suffers with concurrency problems when used with many concurrent phone calls. Additionally there is about a 1 second delay before TTS audio actually starts to play, which can be off-putting for the callers. To overcome these issues I have implemented a caching mechanism using Freeswitch's built in integration with the LUA scripting language.