The conference output loop accesses the member's read_impl while
resampling. The output loop also spawns off the input loop thread, which
is where the member->read_impl is actually initialised. This results in
an uncommon race where the output loop sometimes gets an uninitialised
member->read_impl and bails with logs something like this:
2023-10-12 18:19:01.436844 [DEBUG] conference_loop.c:1340 Setup timer soft success interval: 20 samples: 960 from codec L16
2023-10-12 18:19:01.436844 [DEBUG] conference_loop.c:1497 Outbound conference channel answered, setting CFLAG_ANSWERED
2023-10-12 18:19:01.436844 [NOTICE] switch_core_media.c:15852 Activating write resampler
2023-10-12 18:19:01.436844 [DEBUG] switch_core_media.c:16097 Engaging Write Buffer at 1920 bytes to accommodate 0->1920
2023-10-12 18:19:01.436844 [ERR] switch_core_media.c:16112 Write Buffer 0 bytes Failed!
As a solution, we initialise the member->read_impl even before we start
up the input loop, so that this race can never happen.
* [Core] Coverity: 1500270 Use of 32-bit time_t
* [Core] Coverity: 1500229 Use of 32-bit time_t
* [Core] Coverity: 1500235 Use of 32-bit time_t
* [Core] Coverity: 1500244 Use of 32-bit time_t
* [Core] Coverity: 1500250 Use of 32-bit time_t
* [Core] Coverity: 1500245 Use of 32-bit time_t
* [Core] Coverity: 1500255 Use of 32-bit time_t
* [Core] Coverity: 1500370 Use of 32-bit time_t
* Cleanup
* default to Debian bookworm
* use DEBIAN_VERSION instead of lsb_release; gosu is in Debian since buster
* update comments for FS_META_PACKAGE and exposed ports
* fix SHELL invocation so 'RUN' works as expected in downstream builds
See: https://docs.docker.com/engine/reference/builder/#shell
* [contrib/timezone-gen] Move timezone-gen.pl to own folder
* [contrib/timezone-gen] Add fixTzstr
* [contrib/timezone-gen] Add tests and zone data getter
- tests.pl can be used to verify that the generated timezone conf
will produce the correct datetimes by testing them against
what the system's `date` says
- build-zonedata.pl will download the latest tzdb data and build
the posix timezone data files. It only builds what is needed
rather than adding extraneous "right/" and "posix/" timezones.
FreeSWITCH doesn't seem to be able to use the "right/"
timezone files.
- data/ is where the various files needed to generate the
timezones gets stored
[Core, mod_cidlookup, mod_curl, mod_httapi, mod_http_cache, mod_kazoo, mod_shout] Add new switch_curl_mime APIs replacing switch_curl_process_form_post_params() and make code be compatible with libcurl>=7.87.0