Welcome To FreeSWITCH

The World's First Cross-Platform Scalable FREE Multi-Protocol Soft Switch

FreeSWITCH is a scalable open source cross-platform telephony platform designed to route and interconnect popular communication protocols using audio, video, text or any other form of media.  It was created in 2006 to fill the void left by proprietary commercial solutions. FreeSWITCH also provides a stable telephony platform on which many telephony applications can be developed using a wide range of free tools. More

Freeswitch Week in Review(Master Branch) June 1st-14th

Submitted by kathleen on Thu, 06/19/2014 - 04:55

Hello, again. These passed two weeks in the FreeSWITCH master branch we had 65 commits and some new features have been added! A new log-uuid-short option was added to fs_cli, added stereo capabilities of Freeswitch, and this week saw the addition of a new module called mod_verto!
You can test the new module and stereo capabilities by using headphones to play with the sound and following the link below using Chrome. Make a call into a conference at 3500, hear some funny prompts at 9386, or 3d1 to hear a 3D sound demo!
Mod_verto is a signaling protocol that is used to simplify coding and implementing calls from web browsers and various devices to Freeswitch. More information about this new module can be found here: And the stereo capabilities can be seen in the commits 928a989 and 4e5ecdf.
The following bugs were squashed:
3ab1044 FS-6562 --resolve fixed event not firing for SIP message username prefixed with '+' in mod_sofia
3549488 Fixed a problem in FAX where a received handshake, delayed so much it is received as we queue a retry, causes the retry frame to remain queued in the HDLC entity.
0685027 fixed a bug that was causing WSS to disconnect randomly in libsofia
280e816 FS-6590 fixed stereo files audio issue in mod_shout
c82ac3a FS-6535 fix double lock on speech detection failure in mod_rayo
bb6869b FS-6535 allow multiple grammars (including dtmf) when using unimrcp in mod_rayo
9e600ec FS-6591 --resolve If you are still using spidermonkey you should migrate to v8
New features that were added:
49ee678 FS-6540 Adding proxy refer replaces please test
c015013 Add log-uuid-short option to fs_cli
928a989 the first pass for adding stereo support for FS
1ffb1ee WIP on the addition of a new module called mod_verto
c0e7e7b add reset function to clear some state data in the rtp session in switch_rtp
94ab52c Improved FAX disconnect handling in spandsp
33541dc add logging to mod_verto
4e5ecdf setting plc to only run on mono channels
9108a08 fixing the build for mod_verto
31a181a implement digit timeout for dialing in mod_skinny
12da85e Check for execv(3) errors when reincarnating
7f36607 verto default config for mod_verto
bfaf20c fix install for mod_verto
Improvements in cross platform build supports:
ab5278c stereo: fix mod_flite, mod_ssml, mod_unimrcp compile errors
97cc089 fix compile errs in mod_conference
09ae3a9 don't require more libs than we really need when linking embedded perl modules
a607c20 Windows fix for commit a0e9ddf58943171a9031159919e99ef20147a11e in esl_config
9aa5102 FS-6535 fixed a compiler error in mod_rayo
43770aa fixed the building of libldns in Windows
In terms of stability these were the use cases that were fixed:
fc7a749 Various little memory leak possibilities in spandsp sorts, and the spandsp test suite is now mostly OK with valgrind
148c21c FS-477 fix leaked lock in mod_skinny

FreeSWITCH 1.4.6 Released!

Submitted by krice387 on Thu, 06/05/2014 - 14:51

FreeSWITCH 1.4.6 has been released to address a few bugs.
This bugs include a regression in re-invite parsing, a few more issues uncovered by our continuing Coverity scans of the code base, addressing some build issues mod_perl, and addressing a WebRTC issue with Chrome where it now requires a longer DTLS Password.
This is a routine maintenance update release.
Source Tarball is available at (md5|sha1)
Additional information on obtaining and installing FreeSWITCH is located at

Freeswitch Week in Review(Master Branch) June 25th-June 1th

Submitted by kathleen on Wed, 06/04/2014 - 00:09

Hello, again. Last week in the FreeSWITCH master branch we had 74 commits. There was a lot of work done with mod_fifo this week by Travis Cross making improvements, fixing bugs, and adding documentation. FIFO stands for "First in, First out" and it deals with setting up call queues in FS. It provides ACD functionality for call center like scenarios.
These are some of the mod_fifo commits:
2068b28 Fix memory leak of xml structure in mod_fifo
0c25c3d Document node_thread_run() in mod_fifo
17070e9 Improve strategy thread function names in mod_fifo
343aee2 Comment manual call tracking session handler in mod_fifo
597a5c1 Remove empty declaration in mod_fifo
a3a62d2 Convert macro to fn and improve name in mod_fifo
a976bad Document the length limit of fifo_outbound_uuid in mod_fifo
431d7d9 Document effect of fifo strategy and importance in mod_fifo
42ebfbf Document the fifo_queue_t structure in mod_fifo
333aff8 Document that switch_core_alloc returns zeroed memory
84fe7b0 Remove tautological condition check in mod_fifo
27b3ddc Document the consumer DTMF callback in mod_fifo
077579b Document fifo_queue_popfly() in mod_fifo
7920630 Refactor DTMF exit key matching in mod_fifo
96012ff Document the enterprise strategy in mod_fifo
3e6199e Remove reimplementation of strchr() in mod_fifo
More commits can be found in the attached file.
The following bugs were squashed:
ed2351e fixed http_put of received fax in mod_rayo
50dfce2 FS-6513 --resolve This function was assuming the app was being run with execute_on_media
so it did not properly check for established media. Now it will use th│e scheduler method automatically when this state is detected
7c2b438 FS-6446 fixed bug where FS was not handling SDP changes between 183 and 200 in mod_sofia
2b0c9a1 fixed bug dealing with date format in mod_xml_radius
New features that were added:
495db48 make device state code more accurate for held and unheld events in FS core
5138f4d add new stub module mod_rtc dummy signaling-free media engine endpoint
Improvements in cross platform build supports:
795d974 Add CentOS 5.x build Makefile for reference
ead2908 fix compiler warning for implicit convertion in mod_opus
750e2ba Build mod_perl without pedantic flags even when debugging in mod_perl
79a888d Revert addition of PERL_GCC_PEDANTIC to CFLAGS
93561c6 Nike edition of makefile for quickly building debian7 or centos 6.5 freeswitch takes care of all deps

FreeSWITCH 1.4.5 Released!

Submitted by krice387 on Fri, 05/30/2014 - 15:26

FreeSWITCH 1.4.5 has been released!
Improvements include:
Resolve issue with
mod_sofia SIP subscriptions over UDP.

Fixes and cleanup of mod_cepstral, mod_fifo, and other modules.
The FreeSWITCH Team is currently doing a large review with Coverity and are correcting many potential issues. Patches for these things are also included.
Tarball is available (md5|sha1)
See you @ Cluecon!

FreeSWITCH Week in Review(Master Branch) May 18th-24th

Submitted by kathleen on Tue, 05/27/2014 - 21:13

Hello, again. This passed week in the FreeSWITCH master branch we had 37 commits. We saw the addition of a new module, mod_graylog2, which when asked about the module the author, Chris Rienzo, said
“Basically, mod_graylog2 allows FS to send logs to a graylog2 server in its native log format: . This GELF implementation is simplified in that I didn't implement compression or chunking, though you still get logs up to around 8192 bytes (minus any fields and JSON overhead). This is an improvement over the 1024 byte limit of syslog. If anybody is interested in adding compression or chunking, feel free to send patches! In addition to supporting larger logs, we are also able to structure the logs such that fields like call UUIDs are easily searchable without having to write a bunch of extractor regexes. We're not yet sure how well graylog2 will scale for us, but the logging code was simple enough to implement in an afternoon that it's worth a try.”
The following bugs were squashed:
ea78f4d Fix race in erlang process spawning
bedf832 FS-6418 FS-6427 add profile param NDLB-proxy-never-patch-reinvites to solve both issues
1ca1d63 FS-6524,FS-6494: the compiler for rpi seems to be strangely mis-optimizing this if/else block. Yes, its already set to this value, but without the else block, it 'magically' hits the if blocks above, unless you sleep, print a log, or add the else
f683ac2 FS-6533: --resolve fix gcc 4.9 warning due to useless right-hand operand of comma expression in sofia-sip
New features that were added:
b08138d FS-4296 --resolve initial calling/called nums in \'show channels\. Patch provided by Mariusz Czułada <>
b5816d3 added mod_graylog2: native GELF logging
054c645 FS-4296 --resolve Show initial channel values with 'show channels'. Thanks-to: Mariusz Czułada <>
55f8f55 add heartbeat_fire_on_set variable to fire heartbeat instantly when its first enabled (legacy behavior) in FS core
Improvements in cross platform build supports:
757b744 Compile and enable OPUS by default to lower the number of steps to complete a WebRTC setup
f8527f5 FS-6505 VS2010 Express
285e7dc slight tweak to pgsql version detection using awk instead of sed for bsd portability
9d99c34 Break on missing ldns lib at configure time
af4380d fix linker on mod_cepstral to work in newer environments
1fe6fb6 Use CPPFLAGS for mod_java includes
dc671d9 fix name of fs_ivrd
c7f2a19 FS-6505 download custom ldns lib for windows for now
e6ac87f fixes for VS2010 code analysis - hope these are OK else-where
In terms of stability these were the use cases that were fixed:
e6e0deb Fix erlang deadlock in mod_erlang_event
Performance enhancements:
042b162 back off locking contention on sql queues when they are nearly full to allow the system to recover from an attack

FreeSWITCH 1.4.4 Released!

Submitted by krice387 on Fri, 05/23/2014 - 20:38

The FreeSWITCH Core Dev Team is proud to announce the release of FreeSWITCH 1.4.4!

Whats new on the release side?
WebRTC complete with support for Opus, DTLS and more
Decoupling of the RTP Stack from SIP
Removal of several in tree third party libraries and many updates related to this change means new support libs from SQLite, OpenSSL, an more.
A large number of security and stability improvements that have been found by making FreeSWITCH compile with various compilers and by reviewing the code base with Coverity.

FreeSWITCH Source Tarballs are available via
Packages for Debian 7 and later have been pushed to the repos.

FreeSWITCH Week in Review(Master Branch) May 11th-17th

Submitted by kathleen on Tue, 05/20/2014 - 22:35

Hello, again. This passed week in the FreeSWITCH master branch we had 60 commits. The majority of the commits continued work toward fixing bugs reported by Coverity. Coverity is a static code analysis tool used to find bugs in source code. It is currently being used to identify and fix various issues in the FS source code and the CID numbers at the beginning of some of the commit oneline messages reference a Coverity ticket.
The following bugs were squashed:
cbe6f74 FS-6285 fixed issue with ANY, RR not working properly in mod_skypopen
9a1c4f6 fixed passing a large structure by its value in mod_voicemail
3480720 Chinese say now say "one" before "ten" for numbers >99 in mod_say_zh
2b93912 Fix raw GSM AT command execution not returning the proper token count in freetdm
7dbab7b FS-6517 fixed mod_skypopen not using configured context with mod_sms chatplan with PATCH. Thanks Russell Treleaven.
New features that were added:
3666029 add auth-subscriptions flag. sofia ua can now optionally challenge subscription requests
Improvements in cross platform build supports:
c006db6 fix test for pkg-config
dee864e added to .gitignore
b263201 Avoid polluting CFLAGS for mod_snmp
e488834 Prevent opus lib from re-configuring on every make
94ec447 Cleanup makefile library dependencies of mod_snmp
Coverity fixes:
ecde431 CID:1025850 Dereference before null check in mod_cidlookup
e1f8e19 CID:1087632 fixed a resource leak
7d5434f CID: 1214223-1214230 If sent an invalid registration authentication header with multiple params of the same name, then only use the first of the params instead of leaking memory in mod_sofia
d055f5b CID 1214263: mod_ssml - remove unused pointer value
68825ff CID:1214220 fixed resource leak in mod_dptools
619b31e CID:1214140 Buffer not null terminated, make sure hostname is always null terminated
8fa7398 CID:1025868 Simplified a function arguments never called
07b6bba CID:1214209 Resource leak, don't leak event populated by switch_channel_get_variables in mod_fsk
1286013 CID:1214255 Unused pointer value removed from mod_conference
dc83348 Fix build for 31b8b55d0b31dfd58b5e6f8166a228ab2f456d3d
0469db0 CID:1214200 Dereference null return value in mod_httapi
bdbefdc CID:1087631 In the unlikely case the sprintf fails, free the memory instead of leak it
6b90242 CID:1214189 Division or modulo by float zero in libteletone
452d7a3 CID:1214163 Unchecked return value, check return value of switch_ivr_play_file and bail out if it fails in mod_fifo
c1f7887 CID:1024580 removed logically dead code from mod_commands
a997331 CID:1214125 fixed the size of the the destination buffer in mod_voicemail_ivr
455ed10 CID:1214130 Buffer not null terminated in mod_xml_curl and mod_xml_scgi
c19aa58 CID: 1214222 fixed a resource leak in mod_sofia
386000d CID:1024418 fixed unintentional integer overflow in mod_dptools
92c6f3a CID:1214192 Dereference after null check, don't crash when no file name passed on file open in mod_httapi
a67389a CID:1025879 removed logically dead code in mod_cidlookup
3e18f08 clean up Coverity warnings and improve error checking in mod_voicemail
21a5d16 CID:1024581 removed logically dead code from mod_commands
b10c865 CID:1025849 Dereference before null check in mod_cidlookup
b7b1420 CID 1214210: mod_ssml - resource leak when parsing SSML
ebc0a99 CID:1024250 Dereference before null check. CID:1024251 Dereference before null check, we don't need to check these, as they are already used above in all cases
bf8b88c CID: 1210583 removed dead code reported by Coverity
269db09 CID:1214232 fixed a resource leak reported by Coverity in switch_ivr
d8d58fd CID:1214141 Buffer not null terminated in mod_unimrcp
6a8002d CID:1024582 removed logically dead code from mod_commands
622cd21 CID:1214231 don't leak when using invalid syntax
73c1e09 CID:1024579 removed logically dead code from mod_commands
44401e8 CID:1023936 Unused pointer value
31b8b55 CID:1214216 fixed a resource leak in mod_dingaling
179e07c CID:1214219 fixed resource leak in mod_hash
65d9cf6 CID:1214237 String not null terminated
1680518 CID:1214256 Unused pointer value removed from mod_conference
4238339 CID:1023970 removed unused pointer value from mod_dptools
7c72e94 CID:1214158 Buffer not null terminated in mod_fifo
d2884ac CID:1214211 fixed resource leak in mod_sms
54fc2f5 CID:1023975 Unused pointer value in mod_commands
b58bbd1 CID:1214233 Pointer to local outside scope
9b1ebff CID:1024270 Dereference before null check in mod_commands
4653d78 CID:1087387 Unused pointer value
29e2263 CID:1210789 Make return value of a function available from the another calling function and add small status check in mod_callcenter
4e888a2 CID:1214196 Dereference null return value, if we hit this condition, something very bad has happened, we should never have the private not set if we get to the hangup hook, log error instead of crashing in mod_spy
388e119 CID: 1214221,1214222 fixed a resource leak in mod_sofia
1b0bdaf CID:1214212 Resource leak in voicemail_list in mod_voicemail
19f3ab5 CID:1214218 fix memory leak in conference_event_channel_handler

Freeswitch Week in Review(Master Branch) May 4th-10th

Submitted by kathleen on Tue, 05/13/2014 - 19:38

Hello, again. Last week in the FreeSWITCH master branch we had 52 commits. The miscellaneous Coverity fixes continued with some minor code tweaks and removal of dead code. We saw some more support for GSM added in mod_freetdm, progress toward data modem support in spandsp, and Openzap was removed from tree because it has been replaced with freetdm.
REMINDER: ClueCon 2014 is coming up fast! Make sure you register!
The following bugs were squashed:
752f795 fix compiler error to nlsml.c from attempted Coverity fix in mod_rayo
0a2ba88 fixed bug where all notify sending are treated as though they are natted instead of only when nat is detected in mod_sofia
3ff3f32 added error response to prevent segfault reported by mod_managed
2459e71 prevent the jitter buffer from over frequent resets in bad connection scenarios in libstfu
4a543b2 fixed bug where ACL "domains" fails to parse CIDR of users located in domain section in FS core
88ce7da minor tweak to make ws code work in blocking mode properly when used outside sofia
New features that were added:
68a3250 added work in progress for data modem support
b8a32ed adding support for GSM module
a82e7a7 Added GSM debug configuration parameter in freetdm
Improvements in cross platform build supports:
c96c733 Test for pkg-config in configure
28ee773 put APR_LIBS back in LIBADD and LDFLAGS, but add some magic to .DEFAULT to ignore -l targets
e49feac don't re-build tone2wav and fs_encode on every build
aef982d added work around for Mac's broken sed
3c0e40e Remove bashism from our Makefile hack
d6fe109 remove opezap from tree, it has been replaced by freetdm
a058939 added patch to ensure that user specified libraries have a higher priority for openssl
2508ae9 unset -l libs from apr-config as dependencies in the Makefile
c856023 Fix missing $ for escaping shell variables for make
84eb4a0 re-added Makefile for iks helpers unit tests in mod_rayo
31069f3 set to generate the modules list vars from modules.conf into a file instead of on the fly every time
04dc901 Check for pkg-config at $PKG_CONFIG in configure
d7d4625 re-added Makefile for srgs unit tests in mod_rayo
f809d40 added quickie targets for FS sounds
In terms of stability these were the use cases that were fixed:
ee6f3da CID: 1211948 fix memory leak of decoded iks message in function parse_plain_auth_message in mod_rayo
717bcf6 fixed memory leak in switch_ivr_collect_digits_count
8488694 fixed a leak in error case in libscgi
2a50bbb CID: 1211950 fix memory leak of iksparser in function nlsml_parse in mod_rayo

FreeSWITCH Week in Review(Master Branch) April 27th-May 3rd

Submitted by kathleen on Wed, 05/07/2014 - 04:10

Hello, again. This week in the FreeSWITCH master branch we had 105 commits. The topic from last week was fixing a load of issues reported from's static analysis as well as reports from latest clang static analysis. Many of the commits were geared toward removing dead code, initializing variables, and including a build change removing libldns from tree to be a system lib.
The following bugs were squashed:
6072473 FS-6413 update presence_epoch to lock to midnite. fix for broken NOTIFY cseq over TCP after FS is restarted in mod_sofia
ef18915 make sure old_pid_buffer is null terminated in FS core
59734d8 add bounds check to keep rtcp packets with > 5 report blocks from creating a buffer overrun in switch_rtp
c36e630 added unlock on shutdown after grabbing a read write lock of gcache in mod_http_cache
cc06d91 FS-4779 FS-6467 the behaviour from 4479 is now masked behind the param 3pcc-reinvite-bridged-on-ack FS-6467 please test master
974cebd SIP-686 changed mod_say (en) to speak full dates when asked to speak a date in the future (rather than only weekday and time).
8d10e65 fix bitwise flag unsetting
d06b137 fixed error caused by the sip_invite_domain being forced to the IPv4 address in mod_sofia
d2c2f17 FS-6500: try to do the bounds checking properly using element of the enum
New features that were added:
d0de8c0 add heartbeat_use_scheduler variable to force the heartbeat to use the scheduler rather than the media stream and also make it auto-change between modes when going in and out of the media path in FS core
Improvements in cross platform build supports:
367f4f3 FS-6500: use correct type in ftdm callback in mod_freetdm
ca88a04 FS-6500: handle conversion from switch to ftdm cause type which almost match each other in mod_freetdm
a3e1b7d Protect cross-compiling from polluted PKG_CONFIG_PATH for temp work around for debain package bug
7da28a2 FS-353: look for ldns pkg-config for homebrew, you will need to update your homebrew ldns package if you installed it prior to this commit, they just fixed the pkg-config file being installed
cbcf54b FS-6500: fix return value type for outgoing_channel function in mod_freetdm
317f4b1 Fix building with musl libc
c462ed6 fixed broken build in mod_voicemail_ivr
e57484a FS-6497: --resolve fix for loop initial declaration not allowed
cd650f6 removed ldns from tree and used system ldns
13b4115 FS-6500: freebsd does not support the inline backtrace solution in libfreetdm
c44404d Add a fallback test for ldns system library
In terms of stability these were the use cases that were fixed:
a9a8524 fix read beyond buffer length error in mod_voicemail_ivr
fc40e4a Avoid leaking data_buf in mod_conference
a83fde3 fixed block of code in here twice was writing over expanded, causing it to potentially leak in mod_lcr
ac9741b don't leak xml string in dl_logger in mod_dingaling
6f16e0d fixed leaking if first realloc fails and second one succeeds in mod_redis
c51b55a FS-6491 fixed a crash caused by running two perl scripts from different threads in the same session in switch_channel
23b3e17 fixed leak in file handle if fd=0 in mod_redis
a1a3974 fixed leaked body in error case for esl

FreeSWITCH Week in Review(Master Branch) April 20th-26th

Submitted by kathleen on Tue, 04/29/2014 - 22:34

Hello, again. This week in the FreeSWITCH master branch we had 17 commits. The range of work done last week touched mod_sofia, mod_xml_curl, mod_directory, and ESL. Thing seem to be stabilizing on the master branch after March's 100+ commits per week.
Reminder: Sign up for ClueCon before May 1st(this Thursday) using the code CLUECON2013 and you can get a discount of $100! Also, if you have a presentation proposal or know of someone that does, please submit them to
The following bugs were squashed:
d171e15 fix issues with heartbeat in bypass media mode
61e22e8 fixed a bug where websocket secure was closing 1 second after it was opened in libsofia
7e15c93 FS-6482 fixed bug with contact header showing the incorrect port in mod_sofia
New features that were added:
68d863a FS-6470 added patch to report curl errors for easier debugging in mod_xml_curl
1aa2fc7 FS-3332 add a parameter to be able to specify a group name to include in lookup list in mod_directory
0ba59aa Expanding on 052638186b2784c4142089008adf4289d40c80bc to support boolean tel url params in mod_sofia
ba6b9c5 ESL-91 increased buffer size of arg_buf from 512 to 4096 and send_buf from 1292 to 5120 to allow for larger commands in ESL
In terms of stability these were the use cases that were fixed:
bcc2aa9 Fixing memory leak that would occur when reloading mod_xml_curl
2e45fc0 fix memory leaks in mod_h323. Thanks to Sharath from packetizer forum.
96c6abb Fix buffer overrun that could have been exploited with a crafted skinny packet designed to exploit this mistake in bounds checking
And some miscellaneous work:
25c9b61 preserve old caller ID behavior if display name is not given in mod_rayo
1eab82b relaxed the recent caller ID restrictions in mod_rayo
2e0cd74 FS-6477 if caller is on hold and can't speak then label them as inactive in mod_conference
f27fe7e BNPH-6470 follow up to commit 68d863a179c90d2524f8e761dedb3aebd09c3e75 removing the original line that performed the curl request to avoid a double request in mod_xml_curl
4def48b FS-6476 partially reverted commit 61e22e8b500afd8b03f32441398c8cebcf7cbb11
1affd78 we only call this with values, and it would crash if you passed it null anyways, just assert to make it 100% clear in mod_sofia
abd7882 contact->m_url is an array, don\'t check array for zero as its useless