Travis Cross [Sun, 2 Mar 2014 23:52:01 +0000 (23:52 +0000)]
Fix FHS default modulesdir define
The default value of libdir is (unexpanded) '${exec_prefix}/lib'. In
the non-FHS path this is fine because it only ends up in a variable
where it will be expanded later. By using this to define modulesdir
we let it slip into a define where it made no sense.
Travis Cross [Fri, 28 Feb 2014 20:28:33 +0000 (20:28 +0000)]
Show TLS cipher suite selected in sofia debug
This shows the cipher name, TLS version, the number of cipher bits and
algorithm bits, and a description of the cipher in Sofia's debug
logging output on level 9.
Travis Cross [Fri, 28 Feb 2014 17:19:43 +0000 (17:19 +0000)]
Deal with read errors in switch_xml.c
Unlike fread(3), read(3) will return -1 on error. We were assigning
the result of read to a potentially unsigned variable, and passing the
result down to switch_xml_parse_str() where it would end up
determining how many bytes to malloc(3).
Travis Cross [Fri, 21 Feb 2014 15:25:43 +0000 (15:25 +0000)]
Add man page for freeswitch
This man page is written in ronn format (package ruby-ronn on Debian)
which is a subset of markdown that can be converted to nroff man
pages, HTML, and other formats.
Travis Cross [Sun, 2 Mar 2014 07:56:32 +0000 (07:56 +0000)]
Fix switch_split_user_domain handling of sips: URLs
In commit 7efeabbd88e81ee368de6ced32fed06c8035097b Anthony fixed the
handling of sip:example.com and sips:example.com URLs, however he
introduced a regression causing URLs starting with 's' to be parsed
incorrectly.
In commit 7d2456ea27c092825c8d614ac6eee71547374464 Brian fixed the
regression, but introduced a regression causing sips:example.com URLs
to be handled incorrectly.
But our current comfort noise implementation doesn't take the codec
rate into account (FS-6291), so on 16kHz codecs the constant we chose
created an annoying level of static between sound file playback.
With this commit we preserve the sending of SRTP packets during idle
periods, but make those packets completely silent.
Thanks-to: Anthony Minessale <anthm@freeswitch.org>
FS-5053 --resolve
FS-5886 --resolve add NDLB_broken_opus_sdp which must be set as a global variable in var.xml or switch.conf.xml to enable broken opus mode for back compat with counterpath mobile
fix race condition where a transferring leg could be hungup on by the bridge partner from the previous bridge because of hangup held leg detection. The leg which was hungup when held doesn't realize the other leg has already moved on from the bridge because it was transferred and is already on its way to connect to the new destination
William King [Mon, 24 Feb 2014 01:22:36 +0000 (17:22 -0800)]
FS-5888 --resolve Rather than changing the default behavior I've updated the log line to be more accurate. Also fixed the problem where the delay was being overwritten.
Travis Cross [Sun, 23 Feb 2014 18:07:16 +0000 (18:07 +0000)]
Describe workaround in Debian/README.source
Pre-jessie versions of Debian's mk-build-deps tool rely on libraries
that do not correctly parse debian/control, so we have to clip it down
to a smaller subset of the format to build on e.g. wheezy.
Ken Rice [Fri, 21 Feb 2014 20:51:46 +0000 (14:51 -0600)]
FS-5512 --resolve ; clean up PostgreSQL libpq client detection in configure
Clean up the libpq autodection and make sure it functionswith both pg_config and pkg-config.
if you are installing into a non-FHS standard location such as what happens with RPMs from the Postgres yum repo, you will need to make sure pkg-config can fild the libpq.pc file.
example: export PKG_CONFIG_PATH=/usr/pgsql-9.3/lib/pkgconfig
you may also want to make sure your path can find pg_config
example: export PATH=/usr/pgsql-9.3/bin:$PATH
Travis Cross [Tue, 18 Feb 2014 21:05:01 +0000 (21:05 +0000)]
Exit non-zero from build-all on any build failure
./debian/util.sh build-all will do a number of builds in sequence or
parallel. We now track if any of those builds fail to return a
.changes file and exit non-zero.
FS-6230 --resolve There was no NAT detection enabled on the calls, this patch will activate it explicitly when used with force-rport to avoid a similar problem with other users
Travis Cross [Tue, 11 Feb 2014 17:40:58 +0000 (17:40 +0000)]
Add voicemail parameter storage-dir-shared
If this is set to true (default false) we assume the storage-dir is
shared, organized by realm/domain, with uses other than voicemail, so
we adopt a directory structure of:
Travis Cross [Tue, 11 Feb 2014 15:50:50 +0000 (15:50 +0000)]
Add vm-domain-storage-dir param
This replaces the semantics of the storage-dir parameter without the
deprecation notice. The behavior of storage-dir never should have
been deprecated, though it was probably correct to deprecate the name
itself.
Rather than having both vm-storage-dir and vm-domain-storage-dir it
might be nice if the config system could just notice at what level it
was defined and do the right thing. Indeed, this is why I'd left
things as-is for so long.
But as Master Foo famously said, "which one will reach the other side
of the river: the one who dreams of a raft, or the one that hitchhikes
to the next bridge?"
Travis Cross [Tue, 11 Feb 2014 06:02:54 +0000 (06:02 +0000)]
Add mod_sofia support for setting socket TCP keepalive
Some OSes like linux provide a mechanism for sending TCP keepalive
pings. Sofia provides its own mechanism for doing this in userspace.
We shouldn't conflate these two mechanisms.
Travis Cross [Tue, 11 Feb 2014 06:26:01 +0000 (06:26 +0000)]
Rework handling of Linux TCP keepalives in Sofia
This separates out the Linux socket TCP keepalive timeout interval
from Sofia's internal mechanisms. Earlier we tied these together. In
retrospect this seems improper.
These two values can now be set separately.
You might, for example, want to keep the Sofia internal mechanism
disabled completely while enabling the platform-based mechanism if
your platform supports it.
We also here reform the default value of the socket TCP keepalive
parameter to 30 seconds.
Travis Cross [Tue, 11 Feb 2014 05:33:25 +0000 (05:33 +0000)]
Synchronize Sofia and Linux TCP keepalive timeout units
Sofia keeps the TCP keepalive timeout in milliseconds, but Linux
expects the value in seconds. Before this change, it's unlikely the
TCP_KEEPIDLE and TCP_KEEPINTVL calls were having much effect as we
would have been passing them a huge value.
FS-6128 FS-6200 --resolve allocating the sofia_private on the nua_handle seems to lead to memory corruption, changing it back to malloc as done in the version before the regression
Jonathan Lennox [Thu, 27 Oct 2011 16:06:12 +0000 (16:06 +0000)]
Fix inline functions when compiling as C99.
Make private inlines in C files 'static inline', not just 'inline', or the compiler
can discard the definition if it chooses not to inline it.
Make functions declared in header files not be declared inline (if they're defined in a
.c file). It looks like no functions in this category are used in LibSRTP's critical
path, only for unit tests or generating AES tables.
To see the problem prior to this commit, compile with "gcc -O0 -std=gnu99".
Travis Cross [Thu, 6 Feb 2014 15:27:06 +0000 (15:27 +0000)]
Add support for EECDH to Sofia-SIP
This adds support for the ephemeral elliptic curve Diffie-Hellman key
exchange, which provides for forward secrecy in the event that
long-term keys are compromised.
For the moment, we've hard-coded the curve as prime256v1.