Commit Graph

28785 Commits

Author SHA1 Message Date
zuul
68fc035795 Merge "OpenSSL 1.1.0 support" 2016-11-30 23:26:46 -06:00
Tzafrir Cohen
26c8552fff OpenSSL 1.1.0 support
OpenSSL 1.1.0 includes some major changes in the interface. See
https://wiki.openssl.org/index.php/1.1_API_Changes .

Status: Right now there are still a few deprecation notes with OpenSSL
1.1.0. But it's a start.

Changes:
* CRYPTO_LOCK is no longer available. Replace it with its value for now.
  I don't completely understand what it is used for there.
* Remove several functions from libasteriskssl that seem to no longer be
  needed.
* Structures have become opaque and are accesses with accessors.
* ERR_remove_thread_state() no longer needed.
* SSLv2 code now could no longer be used in 1.1.

ASTERISK-26109 #close

Change-Id: I5e29d477d486ca29b6aae0dc2f5dff960c1cb82b
2016-12-01 01:22:45 +00:00
zuul
a0c0b1c9cb Merge "chan_pjsip: fix switching sending codec when asymmetric_rtp_codec=no" 2016-11-30 10:49:14 -06:00
Joshua Colp
bd20127e64 Merge "chan_sip: Fix segfault during module unload" 2016-11-30 09:21:34 -06:00
Alexei Gradinari
e5e887be53 chan_pjsip: fix switching sending codec when asymmetric_rtp_codec=no
The sending codec is switched to the receiving codec and then
is switched back to the best native codec on EVERY receiving RTP packets.
This is because after call of ast_channel_set_rawwriteformat there is call
of ast_set_write_format which calls set_format which sets rawwriteformat
to the best native format.

This patch adds a new function ast_set_write_format_path which set
specific write path on channel and uses this function to switch
the sending codec.

ASTERISK-26603 #close

Change-Id: I5b7d098f8b254ce8f45546e6c36e5d324737f71d
2016-11-30 07:55:24 -05:00
Joshua Colp
fdf4355bd0 Merge "res/res_pjsip: Fix documentation whitespace issues" 2016-11-28 19:00:32 -06:00
zuul
350a9a6bd4 Merge "build_tools: Fix download_externals to handle certified branches" 2016-11-28 16:07:20 -06:00
Matt Jordan
a3f48be0da res/res_pjsip: Fix documentation whitespace issues
Tabs > Spaces.

Change-Id: If1e43a71822615a898e958e0f8b2e882606f0bd0
2016-11-28 16:13:30 -05:00
Joshua Colp
606ab90c25 Merge "autoconf: more variants for OSARCH linux-gnu" 2016-11-28 11:33:47 -06:00
George Joseph
8a68289766 build_tools: Fix download_externals to handle certified branches
download_externals wasn't handling the "certified/13.x" version
correctly.

Change-Id: I124d195bb117ca36fd7bf1150c630f3b474a9d9a
2016-11-28 12:09:48 -05:00
Joshua Colp
acdae08cf7 Merge "codec_dahdi: Fix poll.h include." 2016-11-28 10:24:24 -06:00
Joshua Colp
c9cc64b911 Merge "ast_format: Adds an identifier for interleaved audio formats to the ast_format" 2016-11-28 08:57:44 -06:00
Joshua Colp
e3dae763ee iostream: Move include of asterisk.h
The asterisk.h header file needs to be included first or else
some things go awry, such as:

implicit declaration of function 'vasprintf'

Change-Id: I981dc2a77a1ba791888e4f1726644d4656c0407c
2016-11-28 13:36:54 +00:00
Michael Kuron
0b588778c0 chan_sip: Fix segfault during module unload
If a TCP/TLS connection was pending (not accepted and not timed out) during
unload of chan_sip, Asterisk would segfault when trying to send a signal to
a thread whose thread ID hadn't been recorded yet. This commit fixes that by
recording the thread ID before calling the blocking connect() syscall.
This was a regression introduced by 776a14386a.

The above wasn't enough to fix the segfault, which was now delayed to the
point where connect() timed out. Therefore, it was necessary to also remove
the SA_RESTART flag from the SIGURG sigaction so that pthread_kill() could be
used to interruput the connect() syscall.
This was a regression introduced by 5d313f51b9.

ASTERISK-26586 #close

Change-Id: I76fd9d47d56e4264e2629bce8ec15fecba673e7b
2016-11-26 18:20:06 +01:00
gestoip2
d9b24cce0a res_rtp_asterisk: RTT miscalculation in RTCP
When retrieving RTCP stats for PJSIP channels, RTT values are unreliable.
RTT calculation is correct, but the data representation isn't.  RTT is
represented by a 32-bit fixed-point number with the integer part in the
first 16 bits and the fractional part in the last 16 bits.  In order to
get the RTT value, the fractional part is miscalculated, there is an
unnecessary 16 bit shift that causes overflow.  Besides this there is
another mistake, when transforming the integer value to the fixed point
fractional part via bitwise operation, that loses precision.

* RTT fractional part is no longer shifted, avoiding overflow.

* RTT fractional part is transformed to its fixed-point value more
precisely.

* Fixed timeval2ntp() and ntp2timeval() second fraction conversions.

* Fixed NTP timestamp report logging.  The usec was inexplicably
multiplied by 4096.

ASTERISK-26566 #close
Reported by Hector Royo Concepcion

Change-Id: Ie09bdabfee75afb3f1b8ddfd963e5219ada3b96f
2016-11-23 11:15:42 -05:00
Joshua Colp
038158bf7b Merge "addons/chan_mobile: do not use strerror_r" 2016-11-22 12:03:35 -06:00
Joshua Colp
b1f7cc4223 Merge "Add support for older name resolving version libraries like openBSD" 2016-11-22 11:54:35 -06:00
George Joseph
abae3dc36e pjproject_bundled: Use $(LIB_RT) for link of libasteriskpj
libasteriskpj was hard coded to use -lrt but librt is linux specific
so we now use the LIB_RT variable which gets set by configure.

Change-Id: I41148884517e3031f7675a413d524c86e8614694
2016-11-21 11:48:05 -05:00
zuul
aa9d91c290 Merge "pjproject_bundled: Improve reliability of pjproject download" 2016-11-21 06:22:07 -06:00
Joshua Colp
84e508c999 Merge "main/app.c: Transmit Silence on ControlPlayback pause" 2016-11-21 04:46:37 -06:00
zuul
120a4999f0 Merge "Add support for building RADIUS with radcli" 2016-11-20 22:57:12 -06:00
snuffy
b546497fe0 Add support for older name resolving version libraries like openBSD
Fix support of OS's like openBSD that use an older nameser.h,
this change reverts the defines to the older style which on other
systems is found in nameser_compat.h

Tested on openBSD 6.0, Debian 8

ASTERISK-26608 #close

Change-Id: Iffb36caab8c5aa9dece0ce2d009041f7b56cc86a
2016-11-20 09:19:18 +11:00
Mark Michelson
7a8d6bc81b Bump ARI version to 2.0.0
In order to not have version number overlap between different versions
of Asterisk, each new major version of Asterisk will mean we also bump
the ARI major version number.

This particular change does NOT introduce any known breaking changes to
ARI.

For discussion relating to this topice, see:
http://lists.digium.com/pipermail/asterisk-dev/2016-November/075964.html

Change-Id: I712ee0df177a8fe1252da2bc029705268b97b665
2016-11-18 10:56:31 -05:00
zuul
782985631e Merge "build: Various OpenBSD issues" 2016-11-18 08:31:46 -06:00
George Joseph
d3f070c7a2 pjproject_bundled: Improve reliability of pjproject download
The download process now has a timeout which will cause wget to retry
if it stops retrieving data for 5 seconds and fetch and curl to timeout
if the whole retrieval take smore than 30 seconds.

If the tarball retrieval works, the MD5SUM file is retrieved from
the downloads site and the md5 checksum is verified.

If either the tarball retrieval or MD5SUM retrieval fails, or the
checksums don't match, the entire process is retried once.  If it
fails again, any incomplete tarball is deleted.

.DELETE_ON_ERROR: was also added to the Makefile.  Not only does
this delete the tarball on failure, it till also delete corrupted
library files from the pjproject source directory should they
fail to build correctly.

Tested all the way back to FreeBSD 9, CentOS 6, Debian 6 and
Ubuntu 14.

Change-Id: Iea7d33b96a31622ab1b6e54baebaf271959514e1
2016-11-18 08:01:36 -05:00
Joshua Colp
98b3b500dc Merge "manager: update minor version" 2016-11-18 06:58:11 -06:00
misha
e822a50f86 main/app.c: Transmit Silence on ControlPlayback pause
ASTERISK-26562 #close

Change-Id: Ie6cb0ffc2b8c775639ce7784fe96f4ea00cfa2f8
2016-11-17 12:32:29 -05:00
Joshua Colp
d3dba74017 Merge "Implement internal abstraction for iostreams" 2016-11-17 11:07:06 -06:00
Mark Michelson
d670ea6297 manager: update minor version
Based on bridge video AMI event changes, bump the minor version of AMI.

Change-Id: Idf84507354170400813cda780906c94c9f1b60b4
2016-11-17 11:53:33 -05:00
Timo Teräs
349e08cb48 codec_dahdi: Fix poll.h include.
POSIX defines poll.h. sys/poll.h should not be used as it is c-library
internal header which may or may not exist. Notably in musl including
sys/poll.h generates warning of being incorrect.

Change-Id: Ib318c1c7142a737bcf3caa4d8d72560bebe39252
2016-11-17 16:26:21 +02:00
Joshua Colp
ed143a3b7c Merge "res_pjsip_outbound_authenticator_digest.c: Fix memory pool leak." 2016-11-17 04:56:34 -06:00
Joshua Colp
09d1958448 Merge "codec_opus: Fix warning when Opus negotiated but codec_opus not loaded." 2016-11-17 04:56:16 -06:00
zuul
8fbdedb36e Merge "res_format_attr_opus: Fix fmtp generation." 2016-11-16 23:20:04 -06:00
George Joseph
935f5d003b build: Various OpenBSD issues
OpenBSD's 'find' doesn't take the -delete argument so you have to pipe
through 'xargs rm -rf'.

'echo -e' doesn't like \t starting a line. It just prints 't' which
causes the libasteriskpj.exports file to be garbage.  They were just
cosmetic so they were removed.

librt doesn't exist so the link of libasteriskpj.so fails. It's not
actually needed for linux anyway so -lrt was removed from the link.

res_rtp_asterisk was failing to load because of an undefined
DTLS_method. '|| defined(LIBRESSL_VERSION_NUMBER)' was added to the #if
so DTLSv1_method is used instead.

ASTERISK-26608

Change-Id: I926ec95b0b69633231e3ad1d6e803b977272c49c
2016-11-16 21:31:54 -05:00
George Joseph
97b2ba472d Merge "channel: Fix issues in hangup scenarios caused by frame deferral" 2016-11-16 17:45:16 -06:00
George Joseph
b8e91bb9cc Merge "Revert "Revert "channel: Use frame deferral API for safe sleep.""" 2016-11-16 17:45:05 -06:00
George Joseph
99e97154bb Merge "Revert "Revert "autoservice: Use frame deferral API""" 2016-11-16 17:44:22 -06:00
George Joseph
013e7dd4a6 Merge "Revert "Revert "AGI: Only defer frames when in an interception routine.""" 2016-11-16 17:44:12 -06:00
George Joseph
ac0a1ee6da Merge "Revert "Revert "Add API for channel frame deferral.""" 2016-11-16 17:43:46 -06:00
zuul
d0474f6322 Merge "res/ari/resource_bridges: Add the ability to manipulate the video source" 2016-11-16 16:48:09 -06:00
Mark Michelson
dc8f99ee27 res_format_attr_opus: Fix fmtp generation.
res_format_attr_opus assumed that the string being passed into it was
empty. It tried to determine if the only thing it had written was

a=fmtp:<num>

And if it had, it would reset the string. Its calculation was off when
working with chan_sip, though. chan_sip passes the entire built SDP
rather than an empty string. This resulted in always putting an empty
fmtp line in the SDP.

ASTERISK-26520 #close
Reported by scgm11

Change-Id: Ib2e8712d26a47067e5f36d5973577added01dbb5
2016-11-16 16:49:04 -05:00
Joshua Colp
732ab6a045 Merge "apps/app_echo: Only relay a single video source change frame" 2016-11-16 14:59:50 -06:00
George Joseph
89e79a487a Merge "file.c/__ast_file_read_dirs: Fix issues on filesystems without d_type" 2016-11-16 14:17:34 -06:00
Richard Mudgett
ed9ced0531 codec_opus: Fix warning when Opus negotiated but codec_opus not loaded.
When Opus is negotiated but not loaded, the log is spammed with messages
because the system does not know how to calculate the number of samples in
a frame.

* Suppress the warning by supplying a function that assumes 20ms of
samples in the frame.  For pass through support it doesn't really seem to
matter what number of samples is returned anyway.

ASTERISK-26605 #close

Change-Id: Icf2273692f040dc2c45b01e72a790d11092f9e0f
2016-11-16 14:56:18 -05:00
Joshua Colp
1c26117dff Merge "cli: Fix ast_el_read_char to work with libedit >= 3.1" 2016-11-16 12:18:27 -06:00
Richard Mudgett
0cd0e70c16 res_pjsip_outbound_authenticator_digest.c: Fix memory pool leak.
Responding to authentication challenges leaks PJSIP memory pools.

The leak was introduced with a pjproject 2.5.5 API change.
https://trac.pjsip.org/repos/ticket/1929 changed the API usage of
pjsip_auth_clt_init() to require the new API pjsip_auth_clt_deinit() to
clean up cached authentication allocations that get allocated with
pjsip_auth_clt_reinit_req().

ASTERISK-26516 #close

Change-Id: I4473141b8c3961d0dc91c382beb3876b3efb45c8
2016-11-16 13:03:25 -05:00
Joshua Colp
24d35ff74a Merge "pjproject: Use a much higher limit for PJ_ICE_MAX_CHECKS" 2016-11-16 05:33:42 -06:00
George Joseph
3017f09f22 file.c/__ast_file_read_dirs: Fix issues on filesystems without d_type
One of the code paths in __ast_file_read_dirs will only get executed if
the OS doesn't support dirent->d_type OR if the filesystem the
particular file is on doesn't support it.  So, while standard Linux
systems support the field, some filesystems like XFS do not.  In this
case, we need to call stat() to determine whether the directory entry
is a file or directory so we append the filename to the supplied
directory path and call stat.  We forgot to truncate path back to just
the directory afterwards though so we were passing a complete file name
to the callback in the dir_name parameter instead of just the directory
name.

The logic has been re-written to only create a full_path if we need to
call stat() or if we need to descend into another directory.

Change-Id: I54e4228bd8355fad65200c6df3ec4c9c8a98dfba
2016-11-15 21:21:59 -05:00
Joshua Colp
6911f9891f Merge "manager: Bump AMI version number." 2016-11-15 19:23:08 -06:00
Joshua Colp
ceefe483cf Merge "res_ari: Add support for channel variables in ARI events." 2016-11-15 14:49:15 -06:00