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) 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

Freeswitch Week in Review(Master Branch) April 13th-19th

Submitted by kathleen on Tue, 04/22/2014 - 19:49

Hello, again. This week in the FreeSWITCH master branch we had 25 commits. It was a relatively quiet week with various bugs and tweaks to various things.
REMINDER: If you register for ClueCon before May 1st you can save $100 dollars by locking in last year's price using the code CLUECON2013! And speaker proposals are still being accepted! If you have a topic you would like to tell us about email a proposal to
The following bugs were squashed:
b0c2c6d FS-6447 --resolve return subscriber-absent platform-code 20 if <dial> is attempted to user that is not registered
8ce6198 fixed a bug in ESL dispatch
6e8729a OPENZAP-222 fixed caller_ton in libpri
190c241 FS-6452 fixed no reaction on events without variable_domain_name in mod_spy
bf093e9 Dispatch will call you on register, and call you back if you hangup on next register
ae69c5a FS-6407 --resolve support SIP URI caller ID w/ display name in mod_rayo
New features that were added:
79ebcb1 add enable-chat sofia profile param which defaults to true when not present, set to false to turn off the chat interface in sofia
295964f FS-6457 --resolve Upgrade to OpenSSL 1.0.1g in Windows build (Visual Studio 2010 and 2012)
0526381 add parsing of user params on invite in mod_sofia
265de3d added the variable variable_sip_to_user as a username to allow eavesdropping on the local endpoint in mod_spy
b99ef3a add SWITCH_MESSAGE_HEARTBEAT_EVENT indication to execute on a session when session heartbeat fires
a4a7924 add generic keepalive system and implement it in sofia to send MESSAGE or INFO packets in-dialog at specified interval.
Improvements in cross platform build supports:
bb22179 FS-6459: --resolve fix srcdir build running modcheck
In terms of stability these were the use cases that were fixed:
93a84cf FS-6460 --resolve fix leaked RTP ports that cause mod_skinny to fail after N calls
748b7de Get rid of a small memory leak when the configs are reloaded in mod_enum
96523a9 FS-6460 --resolve fix leaked RTP ports that cause mod_skinny to fail after N calls

Freeswitch Week in Review(Master Branch) April 6th-12th

Submitted by kathleen on Tue, 04/15/2014 - 21:36

Hello, again. This week in the FreeSWITCH master branch we had 51 commits. This week was mostly filled with miscellaneous work toward clean up and stability fixes. If you are interested in seeing more details about what was committed, please see the attached text document.
In other news, ClueCon is still looking for presentation proposals to be submitted to If you have a topic that you think people would be interested in hearing about, please send in a proposal!
The following bugs were squashed:
f1d7721 FS-6448 --resolve revert string func patch because some things free it
72c5205 FS-6436 disable PLI and instead only use FIR in switch_core_media
7428746 fixed allowance of duplicate keys in switch_hashtable
de7d5a9 Resolve key length issue with AES GCM 128/256
a31491d pulling in a patch to fix a bug with AES_GCM and key size in libsrtp
80e2034 fixed read of memory out of 'seq' variable bounds and fixed AEAD IV calculation for big-endian machines
Improvements in cross platform build supports:
7bc92a1 ESL-89: fix install path and single_command require
23fe7f5 Add libyaml pkg-config LIBS to LIBADD not LDFLAGS
c915139 Make sure to copy pcre.h to library path, when building Win32/Debug in VS2012.
d6fa81b ESL-89: --resolve add rubymod-install and add ability to use a ruby not in your path by setting RUBY env var
4bdb712 FS-353 Ungetlib libmemcached
c86b939 FS-353 Show message in configure when YAML isn't there
In terms of stability these were the use cases that were fixed:
2ace7bc Fix memory leak in phrase macro playback in switch_ivr_play_say
264a12a fix memory corruption in dial, input, output in mod_rayo
3f8cf4a Fix memory leak in subscription handling in mod_sofia
886a730 Avoid leaking memory on mod_hash unload
a866239 fixed input crash introduced in 2014-04-07 commit in mod_rayo
711e49c fixed leaking hash tables when reloading mod_fifo
65fd534 fixed a segfault in console autocomplete when calling delete with no argument
2dba7dd Avoid leaking memory on mod_cdr_sqlite unload
aae1954 FS-6442 fixed a mem leak on abandoned pickup calls in mod_dptools
237da22 Avoid leaking memory on unload of mod_dptools
f754057 ESL-90 fixed crash caused by receiving an event without a content-type header in esl
39f960a Avoid leaking memory on mod_voicemail unload
1a71cf8 Fix memory leak on memory error in switch_ivr_play_say
4178688 add switch_hashtable_insert_destructor so you can insert a pointer into a hash with a custom destructor and use it in spandsp to fix a leak on reloadxml with the tone_descriptor tables and fix a bunch of random tiny leaks etc

FreeSWITCH Announcements

Submitted by kathleen on Tue, 04/08/2014 - 18:31

ClueCon is looking for presentation proposals! Being an open source IP communications conference created by developers, for developers, means we are interested in hearing from a wide variety of tech community members. Do you have a topic that you think the community might be interested in hearing about? Then we want you! ClueCon is the place to be to learn about all the latest VoIP and telephony news and meet up with other developers and tech enthusiasts. Would you like to talk about security or open source software? Do you know someone that does? Spread the word! There is a special interest in voice, open source, and security topics for this year's conference, and highly technical talks with live demonstrations are always appreciated. A typical ClueCon talk is 30 minutes long including some Q&A time with the audience. We'll publish the schedule after reviewing all of the submissions.
Please send your proposals to and make sure you include your working title, a brief description of the talk (abstract), and the name of the presenter. Don't delay, there are a limited number of openings!
And if you register for ClueCon before May 1st you can lock in last year's price saving you $100 using the code CLUECON2013. So act fast!
Can't get enough of open source telephony? There is a wonderful opportunity to attend official FreeSWITCH training in Milwaukee, Wisconsin. Training will be held June 23rd - 25th, so sign up using the following link to reserve your seat!

FreeSWITCH development Week in Review March 30th-April 5th

Submitted by kathleen on Tue, 04/08/2014 - 16:02

Hello, again. This week in the FreeSWITCH master branch we had 52 commits. We saw the addition of mod_basic to the FS languages to celebrate April Fool's day here in the US. Although it was added in the spirit of practical jokes, the addition of mod_basic highlights the extensive versatility of FS.
There was a continued drive toward improving build support for platforms such as BSD and Mac and mixed into this build work are large changes in functionally, such as ticket FS-353 leading the push toward converting the build system to prefer system versions of libraries, when compatible, over their in tree counterparts.
The following bugs were squashed:
19e3175 FS-6422: --resolve fixed a copy and paste error breaking socket_tcp_keepalive in mod_sofia
7532a7e FS-6310 fixed bug with orphaned calls in the show calls command
c02a5e6 fix for CSeq not being shared between FS boxes with ODBC backend in mod_sofia
9b56dff Say zero in time measurement only if it is neccessary in mod_say_hu
Improvements in cross platform build supports:
ab5ebd3 FS-6430: try to fix print_git_revision when running from builddir not inside src root
fb7fa3d update gitignore
5e90a5a FS-6430: fix running of print_git_revision from builddir not in src tree
0cc3a17 FS-6408: fix passing of CPPFLAGS to spandsp build
4bdef6e Fix detection of libedit on BSD
In terms of stability these were the use cases that were fixed:
287fd66 FS-6403 reverts commits 62ce8538974f727778f1024d0ef9549e438704fe and 3a85348cdfd0fd7df63a2a150790722c2d294b36 and fixed a segfault caused by a race issue in switch_xml
7151d6a fixed a segfault in hashtable
6681176 prevent a segfault in mod_basic if someone calls basic from CLI w/ no args
77056e3 fix seg in alias del in switch_console