Skip to content

Releases: garacil/sofia-sip

sofia-sip 2.0.4 - optimized -O2 default + STUN copy fix

Choose a tag to compare

@garacil garacil released this 06 Jul 00:03

Sofia-SIP 2.0.4.

Two changes over 2.0.3, plus attribution.

  1. Optimized production build by default (-O2 -g). configure.ac appended to
    CFLAGS before the compiler was probed, which left CFLAGS non-empty and
    suppressed Autoconf's default -g -O2 -- so a plain ./configure had been
    building at -O0 (unoptimized). A plain build is now -O2 -g. Passing your own
    CFLAGS (e.g. CFLAGS="-O3 -g") or CONFIGURE_CFLAGS opts out and is preserved
    verbatim.

  2. STUN: dropped a redundant overlapping copy after stun_atoaddr() in both the
    lifetime and NAT-type discovery paths. That copy read from the address of the
    addrinfo pointer field (overlapping the destination) and overwrote the just-
    resolved server address with addrinfo tail bytes; stun_atoaddr() already
    writes the resolved address into place. Proposed back upstream.

Compatibility unchanged: LGPL, the public API and headers (installed under
sofia-sip-1.13) and the library soname (libsofia-sip-ua.so.0.6.0) are identical,
so anything built against 2.0.x (or upstream 1.13.x) needs no rebuild.

The README now credits the original Sofia-SIP authors at the Nokia Research
Center (Pekka Pessi, Martti Mela, Kai Vehmanen and contributors) and describes
this fork's lineage and changes.

sofia-sip 2.0.3 - fork version reported by pkg-config

Choose a tag to compare

@garacil garacil released this 05 Jul 22:57

Sofia-SIP 2.0.3.

This release makes pkg-config report the fork release version. Previously
pkg-config --modversion sofia-sip-ua returned 1.13.17 (the upstream base)
even though the tree carried our 2.0.x work; it now returns 2.0.3.

Changes:

  • The release version is read from a top-level .version file via
    AC_INIT([sofia-sip], m4_esyscmd_s([cat .version])), so future releases are
    a one-line edit of .version plus a re-run of autogen.sh and configure.
    configure.ac no longer hardcodes the number, and .version is shipped in
    make dist tarballs (EXTRA_DIST).

Compatibility (drop-in for the whole 2.0.x line):

  • The API series include directory stays sofia-sip-1.13 and the library
    soname stays libsofia-sip-ua.so.0.6.0. Headers and ABI are unchanged, so
    consumers built against 2.0.1 / 2.0.2 need no rebuild and any -I pointing at
    .../sofia-sip-1.13 remains valid. Only the pkg-config version advances.

All warning-clean (GCC 14 / OpenSSL 3) and carrying the seven upstream-proposed
fixes already present in 2.0.2.

sofia-sip 2.0.2 - warning-clean + 7 fixes, for GABPBX

Choose a tag to compare

@garacil garacil released this 05 Jul 22:37

Our Sofia-SIP for GABPBX's chan_sofia. Builds absolutely clean on GCC 14 / OpenSSL 3 (soname unchanged 0.6.0; internal package version stays 1.13.17).

2.0.1 was the GCC 14 / OpenSSL 3 warning cleanup. 2.0.2 adds seven bug fixes on top, each ABI-neutral and each proposed back to freeswitch/sofia-sip:

Fix Upstream PR
sip_parser: fail closed if the message separator can't be allocated (NULL deref) #328
nta/s2sip test: fix dead tcp/tls transport fallback #329
tport: send responses on the incoming connection when reuse is off (RFC 3261 §18.2.2) #330
nua: parse inbound multipart bodies into the request home, not the handle home (memory leak) #331
su_tagarg: fall back to the va_list copy path under AddressSanitizer (stack-buffer-underflow) #332
nta: don't abort on an outgoing transaction re-queued without progress #333
su_timer: skip an expired timer with no callback instead of aborting #334

No configuration, behaviour or ABI change for a correctly-configured deployment; the changes fix a null deref, a memory leak, a stack-buffer-underflow, an RFC 3261 §18.2.2 response-routing bug, and two process-aborting asserts under load.

sofia-sip 2.0.1 — our warning-clean Sofia-SIP for GABPBX

Choose a tag to compare

@garacil garacil released this 05 Jul 19:05

Our own versioning of the garacil/sofia-sip fork — the Sofia-SIP revision used by GABPBX's chan_sofia channel driver. GABPBX is a fork of Asterisk; chan_sofia is a modern, Sofia-SIP-based drop-in replacement for the aging chan_sip.

A build of Sofia-SIP 1.13.17 that compiles absolutely clean — zero warnings, zero errors — on GCC 14 and OpenSSL 3, with no behavior or ABI change.

Version

  • Our release: 2.0.1
  • Base: upstream 1.13.17 (AC_INIT unchanged, so pkg-config --modversion sofia-sip-ua reports 1.13.17 and the headers install under sofia-sip-1.13)
  • soname: libsofia-sip-ua.so.0.6.0 (unchanged — binary drop-in)

What changed (all 25 GCC 14 / OpenSSL 3 warnings → 0)

  • Array-parameter bound mismatches (-Warray-parameter, new in GCC 14): prototype/definition array-of-one / pointer spellings aligned — HEAP_DECLARE/HTABLE macros and su_home_stat_add(), bsd_localinfo(), nua_destroy_event(). Array params decay to pointers → no ABI change; public prototypes untouched.
  • OpenSSL 3.0 deprecations (-Wdeprecated-declarations): one-shot EVP_Digest/EVP_sha1 for the WebSocket-handshake SHA-1; version-gated ERR_func_error_string; DH parameters read as a generic EVP_PKEY and installed with SSL_CTX_set0_tmp_dh_pkey() from 3.0 on (with an EVP_PKEY_is_a("DH") guard and correct ownership), pre-3.0 path unchanged; TLSv1_client_method()TLS_client_method() bounded to exactly TLS 1.0 in the STUN client.
  • Const-qualifier discard (-Wdiscarded-qualifiers): one parser's scan pointers over a mutable buffer.
  • Unused static declaration (-Wunused-function): a private prototype moved out of a shared header.

Collaboration

Happy to collaborate with upstream — see freeswitch#326.

Sofia-SIP 1.13.17

Choose a tag to compare

@garacil garacil released this 28 Jun 20:33
6198851

Sofia-SIP 1.13.17

This is the exact Sofia-SIP version used by GABPBX.
GABPBX's chan_sofia SIP channel driver is built and tested against Sofia-SIP v1.13.17, and the
GABPBX documentation pins this tag. Use this release to build a GABPBX that matches the tested stack.

The upstream Sofia-SIP v1.13.17 release, published in this fork
(garacil/sofia-sip, a fork of
freeswitch/sofia-sip) so GABPBX builds are pinned and
reproducible against a known Sofia-SIP version.

Build it into /usr/local before building GABPBX (chan_sofia links against
/usr/local/include/sofia-sip-1.13 and /usr/local/lib/libsofia-sip-ua):

git clone https://github.com/garacil/sofia-sip.git && cd sofia-sip
git checkout v1.13.17                 # the version GABPBX chan_sofia is built + tested against
./bootstrap.sh                        # only if ./configure is missing from the checkout
./configure --prefix=/usr/local
make && sudo make install && sudo ldconfig

Sofia-SIP is licensed LGPL-2.1; all credit for the library belongs upstream. See
https://github.com/freeswitch/sofia-sip for the canonical project and full history.