FreeSWITCH is a Software Defined Telecom Stack enabling the digital transformation from proprietary telecom switches to a versatile software implementation that runs on any commodity hardware. From a Raspberry PI to a multi-core server, FreeSWITCH can unl
Go to file
Sebastian Kemper 0ac3feb7bc [mod_gsmopen] Use TIME_T_FMT
libcs are implementing changes to fix the year 2038 issue on 32 bit
platforms (see [1]). musl libc already went ahead and implemented it,
starting with musl-1.2.0 (see [2]).

FreeSWITCH already supports time64 libcs since commit
aa71d87528. But as it turns out, mod_gsmopen
doesn't use TIME_T_FMT (everything else does). And now with a time64 libc
compiling for a 32 bit target, warnings like this appear:

In file included from gsmopen_protocol.cpp:37:
gsmopen.h:121:97: warning: format '%ld' expects argument of type 'long int', but argument 16 has type 'time_t' {aka 'long long int'} [-Wformat=]
  121 | #define DEBUGA_GSMOPEN(...)  switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG,            "rev %s [%p|%-7lx][DEBUG_GSMOPEN  %-5d][%-10s][%2d,%2d,%2d] " __VA_ARGS__ );
gsmopen.h:121:97: note: in definition of macro 'DEBUGA_GSMOPEN'
  121 | #define DEBUGA_GSMOPEN(...)  switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG,            "rev %s [%p|%-7lx][DEBUG_GSMOPEN  %-5d][%-10s][%2d,%2d,%2d] " __VA_ARGS__ );
      |                                                                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gsmopen_protocol.cpp:856:104: note: format string is defined here
  856 |                                         DEBUGA_GSMOPEN("GSMOPEN_STATE_RING call_incoming_time.tv_sec=%ld\n", GSMOPEN_P_LOG, tech_pvt->call_incoming_time.tv_sec);
      |                                                                                                      ~~^
      |                                                                                                        |
      |                                                                                                        long int
      |                                                                                                      %lld

This commit adds TIME_T_FMT to mod_gsmopen. All warnings are gone.

[1] https://sourceware.org/glibc/wiki/Y2038ProofnessDesign
[2] https://musl.libc.org/time64.html

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2021-10-22 19:34:01 +02:00
.github/ISSUE_TEMPLATE Update issue templates 2020-08-07 17:26:52 -04:00
build [mod_python3, ESL py3mod] Add Python3 support. 2021-10-14 23:26:36 +03:00
clients/flex Fix some typos (most found by codespell) 2021-02-24 13:59:11 +01:00
cmake_modules Completely unbundle libedit 2014-03-24 12:39:59 +00:00
conf [Configuration] Fix Brazil daylight’s in xml files 2021-10-21 19:35:10 +03:00
debian Bump sofia-sip library requirement to version 1.13.6 2021-10-19 23:41:27 +03:00
docker Fix some typos (most found by codespell) 2021-02-24 13:59:11 +01:00
docs Fix some typos (most found by codespell) 2021-02-24 13:59:11 +01:00
dtd xmllint --dtdvalid freeswitch_dialplan.dtd /usr/local/freeswitch/conf/default_context.xml >>/dev/null 2007-11-01 14:59:32 +00:00
fonts FS-7506: Add default fonts to tree 2015-05-28 12:47:19 -05:00
fscomm Fix some typos (most found by codespell) 2021-02-24 13:59:11 +01:00
htdocs FS-8545 #resolve [Improve controls for screen share] 2015-11-16 15:54:43 -06:00
images FS-7494: default avatar and mute images for video MCU 2015-05-28 12:47:26 -05:00
libs [libvpx] scan-build: Assigned value is garbage or undefined 2021-10-19 20:26:52 +03:00
scripts Merge pull request #126 from micmac1/gentlscert-md 2021-03-24 21:08:57 +03:00
src [mod_gsmopen] Use TIME_T_FMT 2021-10-22 19:34:01 +02:00
support-d Update basrc alias for gcore to get a top -H in the process so we do not forget 2019-07-26 00:47:48 +04:00
tests/unit [Core] Add new switch_core_hash_insert_pointer(switch_hash_t *hash, const void *data) API to be able to insert data into a hash with an auto-generated key based on the data pointer. Cleanup switch_loadable_module_process() to not generate hash keys for stored events itself. Add unit-test. 2021-10-19 20:35:12 +03:00
w32 [Build-System] Windows: Update OpenSSL to 1.1.1l, libpq to 10.18, curl to 7.78.0, libks to 1.7.0, signalwire-c to 1.3.0, rabbitmq-c to 0.11.0 2021-08-30 21:19:19 +03:00
web add back empty dirs 2010-04-01 21:00:45 -04:00
yum FS-8648: incorrect url's in yum repos 2015-12-15 17:02:49 +00:00
.clang-format Add .clang-format rules 2014-12-26 17:22:20 +00:00
.drone.yml [Testing] Enable scan-build 7 on Drone CI 2021-10-19 21:53:30 +03:00
.gitattributes [Build-System] Remove Sofia-Sip library from the FreeSWITCH tree and use packages instead. 2020-08-03 23:46:45 +04:00
.gitconfig Add git configuration to ignore errors from `git fsck` 2020-05-01 20:42:38 +04:00
.gitignore [mod_python3, ESL py3mod] Add Python3 support. 2021-10-14 23:26:36 +03:00
.mailmap map emails 2014-08-01 14:47:38 -05:00
Freeswitch.2017.sln [Build-System] Remove SpanDSP library from the FreeSWITCH tree and use packages instead. 2020-08-04 19:15:28 -04:00
Freeswitch.2017.sln.bat [Build-System] Fix Visual Studio detection logic to use the latest installed when building FreeSWITCH or sound packages. 2020-05-25 16:41:16 +04:00
INSTALL test 2013-04-04 20:52:47 -05:00
LICENSE Rename License.txt to LICENSE 2020-08-12 09:20:00 -04:00
Makefile.am [mod_python3, ESL py3mod] Add Python3 support. 2021-10-14 23:26:36 +03:00
README.md Fix typo and convert line endings from CRLF to LF 2021-02-24 14:00:10 +01:00
acinclude.m4 [Build-System] Remove Sofia-Sip library from the FreeSWITCH tree and use packages instead. 2020-08-03 23:46:45 +04:00
bootstrap.sh [Build-System] Remove freetdm from the FreeSWITCH tree. Use out-of-tree module https://github.com/freeswitch/freetdm instead. 2021-08-19 21:10:33 +03:00
cc.sh add smaller banner for teeny tiny terminals 2012-09-24 14:59:09 -05:00
cluecon.tmpl FI-393 [fs_cli banner] this commit changes the text on the fs_cli banner 2018-06-14 19:38:05 +00:00
cluecon2.tmpl FI-393 [fs_cli banner] this commit changes the text on the fs_cli banner 2018-06-14 19:38:05 +00:00
cluecon2_small.tmpl add smaller banner for teeny tiny terminals 2012-09-24 14:59:09 -05:00
cluecon_small.tmpl add smaller banner for teeny tiny terminals 2012-09-24 14:59:09 -05:00
configure.ac Bump sofia-sip library requirement to version 1.13.6 2021-10-19 23:41:27 +03:00
devel-bootstrap.sh Changed permissions for devel-bootstrap.sh 2010-10-13 14:18:38 -07:00
freeswitch-config-rayo.spec FS-11567: [Build-System] CentOS packaging: Disable mod_v8 build 2019-05-23 22:09:44 +04:00
freeswitch-sounds-en-ca-june.spec FS-11567: [Build-System] CentOS packaging: Sound logic cleanup. 2019-05-23 22:09:08 +04:00
freeswitch-sounds-en-us-allison.spec FS-11567: [Build-System] CentOS packaging: Sound logic cleanup. 2019-05-23 22:09:08 +04:00
freeswitch-sounds-en-us-callie.spec FS-11567: [Build-System] CentOS packaging: Sound logic cleanup. 2019-05-23 22:09:08 +04:00
freeswitch-sounds-fr-ca-june.spec FS-11567: [Build-System] CentOS packaging: Sound logic cleanup. 2019-05-23 22:09:08 +04:00
freeswitch-sounds-music.spec FS-11567: [Build-System] CentOS packaging: Sound logic cleanup. 2019-05-23 22:09:08 +04:00
freeswitch-sounds-pt-BR-karina.spec FS-11567: [Build-System] CentOS packaging: Sound logic cleanup. 2019-05-23 22:09:08 +04:00
freeswitch-sounds-ru-RU-elena.spec FS-11567: [Build-System] CentOS packaging: Sound logic cleanup. 2019-05-23 22:09:08 +04:00
freeswitch-sounds-sv-se-jakob.spec FS-11567: [Build-System] CentOS packaging: Sound logic cleanup. 2019-05-23 22:09:08 +04:00
freeswitch.spec Bump sofia-sip library requirement to version 1.13.6 2021-10-19 23:41:27 +03:00
msbuild.cmd [Build-System] Fix Visual Studio detection logic to use the latest installed when building FreeSWITCH or sound packages. 2020-05-25 16:41:16 +04:00
swig_common.i FS-6061 --resolve 2013-12-23 22:43:06 +05:00

README.md

FreeSWITCH

FreeSWITCH is a Software Defined Telecom Stack enabling the digital transformation from proprietary telecom switches to a versatile software implementation that runs on any commodity hardware. From a Raspberry PI to a multi-core server, FreeSWITCH can unlock the telecommunications potential of any device. Combined with our hosted cloud platform, SignalWire, FreeSWITCH can interconnect with the outside world and scale to any size.

Visit https://signalwire.com or https://github.com/signalwire for more info.

Getting Started

FreeSWITCH is available on Github in source code format. You can checkout the development branch and build for many popular platforms including Linux, Windows, MacOSX and BSD. There is an issue tracker and pull request system available as part of the repo online.

See https://freeswitch.com/#getting-started for more detailed instructions.

Additional Help

If you need assistance or have an interest in using a commercially supported build, you can contact coreteam@freeswitch.com to learn about professional services to support your project.

Voice-over-IP services - SIP / SMS - App Integrations

SignalWire is the primary sponsor of the FreeSWITCH project and was founded by the original developers of FreeSWITCH. SignalWire provides scalable services to enhance and scale your project such as SMS, SIP, Serverless Application hosting as well as programmable telecom. mod_signalwire which is distributed in this code base allows you to instantly pair with SignalWire and extend your FreeSWITCH.

Documentation

The main index for documentation is available at:

Release notes:

Installation

Step by step tutorials to install FreeSWITCH from packages or source code are available at:

Downloads

Contributions

GitHub pull requests are the recommended way to contribute to the FreeSWITCH source code:

Community

Slack is our chat system where the developers, the FreeSWITCH team, and the most active users are present. This is the place to get answers faster and chat with other users in real time. All you need to do is enter your email and verify it on the Slack signup page and you are ready to join in the discussion!

Slack Community:

Mailing list:

Thank you for using FreeSWITCH!