summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-11-28Merge "autoconf: more variants for OSARCH linux-gnu"Joshua Colp
2016-11-28Merge "codec_dahdi: Fix poll.h include."Joshua Colp
2016-11-28Merge "ast_format: Adds an identifier for interleaved audio formats to the ↵Joshua Colp
ast_format"
2016-11-28iostream: Move include of asterisk.hJoshua Colp
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-23res_rtp_asterisk: RTT miscalculation in RTCPgestoip2
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-22Merge "addons/chan_mobile: do not use strerror_r"Joshua Colp
2016-11-22Merge "Add support for older name resolving version libraries like openBSD"Joshua Colp
2016-11-21pjproject_bundled: Use $(LIB_RT) for link of libasteriskpjGeorge Joseph
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-21Merge "pjproject_bundled: Improve reliability of pjproject download"zuul
2016-11-21Merge "main/app.c: Transmit Silence on ControlPlayback pause"Joshua Colp
2016-11-20Merge "Add support for building RADIUS with radcli"zuul
2016-11-20Add support for older name resolving version libraries like openBSDsnuffy
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-18Bump ARI version to 2.0.0Mark Michelson
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-18Merge "build: Various OpenBSD issues"zuul
2016-11-18pjproject_bundled: Improve reliability of pjproject downloadGeorge Joseph
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-18Merge "manager: update minor version"Joshua Colp
2016-11-17main/app.c: Transmit Silence on ControlPlayback pausemisha
ASTERISK-26562 #close Change-Id: Ie6cb0ffc2b8c775639ce7784fe96f4ea00cfa2f8
2016-11-17Merge "Implement internal abstraction for iostreams"Joshua Colp
2016-11-17manager: update minor versionMark Michelson
Based on bridge video AMI event changes, bump the minor version of AMI. Change-Id: Idf84507354170400813cda780906c94c9f1b60b4
2016-11-17codec_dahdi: Fix poll.h include.Timo Teräs
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-17Merge "res_pjsip_outbound_authenticator_digest.c: Fix memory pool leak."Joshua Colp
2016-11-17Merge "codec_opus: Fix warning when Opus negotiated but codec_opus not loaded."Joshua Colp
2016-11-16Merge "res_format_attr_opus: Fix fmtp generation."zuul
2016-11-16build: Various OpenBSD issuesGeorge Joseph
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-16Merge "channel: Fix issues in hangup scenarios caused by frame deferral"George Joseph
2016-11-16Merge "Revert "Revert "channel: Use frame deferral API for safe sleep."""George Joseph
2016-11-16Merge "Revert "Revert "autoservice: Use frame deferral API"""George Joseph
2016-11-16Merge "Revert "Revert "AGI: Only defer frames when in an interception ↵George Joseph
routine."""
2016-11-16Merge "Revert "Revert "Add API for channel frame deferral."""George Joseph
2016-11-16Merge "res/ari/resource_bridges: Add the ability to manipulate the video source"zuul
2016-11-16res_format_attr_opus: Fix fmtp generation.Mark Michelson
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-16Merge "apps/app_echo: Only relay a single video source change frame"Joshua Colp
2016-11-16Merge "file.c/__ast_file_read_dirs: Fix issues on filesystems without d_type"George Joseph
2016-11-16codec_opus: Fix warning when Opus negotiated but codec_opus not loaded.Richard Mudgett
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-16Merge "cli: Fix ast_el_read_char to work with libedit >= 3.1"Joshua Colp
2016-11-16res_pjsip_outbound_authenticator_digest.c: Fix memory pool leak.Richard Mudgett
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-16Merge "pjproject: Use a much higher limit for PJ_ICE_MAX_CHECKS"Joshua Colp
2016-11-15file.c/__ast_file_read_dirs: Fix issues on filesystems without d_typeGeorge Joseph
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-15Merge "manager: Bump AMI version number."Joshua Colp
2016-11-15Merge "res_ari: Add support for channel variables in ARI events."Joshua Colp
2016-11-15Implement internal abstraction for iostreamsTimo Teräs
fopencookie/funclose is a non-standard API and should not be used in portable software. Additionally, the way FILE's fd is used in non-blocking mode is undefined behaviour and cannot be relied on. This introduces internal abstraction for io streams, that allows implementing the desired virtualization of read/write operations with necessary timeout handling. ASTERISK-24515 #close ASTERISK-24517 #close Change-Id: Id916aef418b665ced6a7489aef74908b6e376e85
2016-11-15manager: Bump AMI version number.Joshua Colp
During the development of Asterisk 14 the behavior of the Command AMI action was altered such that the result was returned on lines with a prefix of "Output: ". While this was documented in the UPGRADE.txt file it is also reasonable that this should bump the AMI version number. ASTERISK-26556 Change-Id: Idf1bf01608e53f7bfdf43ddb4d0683e53f74ee42
2016-11-14pjproject: Use a much higher limit for PJ_ICE_MAX_CHECKSMatt Jordan
The PJ_ICE_MAX_CHECKS constant is used by pjproject to determine how many pairs of local/remote candidates will be made. If for some reason we reach this upper bound, ICE will generally fail and no media will flow between the browser and Asterisk. This patch makes PJ_ICE_MAX_CHECKS set to the total possible number of pairs of candidates we'd theoretically allow, which is PJ_ICE_MAX_CAND^2. Prior to this patch, we simply multiplied PJ_ICE_MAX_CAND by two; on systems with multiple interfaces (I blame Docker), this is far too low to allow WebRTC calls to succeed. Setting this to be PJ_ICE_MAX_CAND^2 allowed WebRTC calls to succeed even when the system Asterisk was running on had quite a few virtual interfaces. Change-Id: Icd4f17de0ac9d3a83dddfc8bf1cb7616bc107d55
2016-11-14apps/app_echo: Only relay a single video source change frameMatt Jordan
In 9785e8d0, app_echo was updated to relay video source updates to the channel for the purposes of displaying video in WebRTC tests. Unfortunately, this can cause a Kafkaesque nightmare if two or more Local channels are in a bridge together where their ends are in app_echo. When this situation occurs, a video update sent into app_echo will cause the video update to be relayed to the other Local channels, causing another round of video updates, etc. In not much time at all, the channel length queues will be overwhelmed, channel alert pipes will fail, and all hell will break loose as Asterisk merrily continues to throw more video update requests onto the channels. This patch updates app_echo to *only* relay a single video update. Once a video update has been made, all further video updates are dropped. This meets the intended purpose of the original patch: if we get a video update and we're in app_echo, go ahead and ask the sender to update themselves. However, once we've got that video stream sync'd up, don't keep spamming the world. Change-Id: I9210780b08d4c17ddb38599d1c64453adfc34f74
2016-11-14res/ari/resource_bridges: Add the ability to manipulate the video sourceMatt Jordan
In multi-party bridges, Asterisk currently supports two video modes: * Follow the talker, in which the speaker with the most energy is shown to all participants but the speaker, and the speaker sees the previous video source * Explicitly set video sources, in which all participants see a locked video source Prior to this patch, ARI had no ability to manipulate the video source. This isn't important for two-party bridges, in which Asterisk merely relays the video between the participants. However, in a multi-party bridge, it can be advantageous to allow an external application to manipulate the video source. This patch provides two new routes to accomplish this: (1) setVideoSource: POST /bridges/{bridgeId}/videoSource/{channelId} Sets a video source to an explicit channel (2) clearVideoSource: DELETE /bridges/{bridgeId}/videoSource Removes any explicit video source, and sets the video mode to talk detection ASTERISK-26595 #close Change-Id: I98e455d5bffc08ea5e8d6b84ccaf063c714e6621
2016-11-14channel: Fix issues in hangup scenarios caused by frame deferralGeorge Joseph
ASTERISK-26343 Change-Id: I06dbf7366e26028251964143454a77d017bb61c8 (cherry picked from commit 0be46aaf6b8b9eb5b0160ec591cdc2c6e1802a6d)
2016-11-14Revert "Revert "channel: Use frame deferral API for safe sleep.""George Joseph
This reverts commit e5365dada5052b87275c048f6e29ac7d5e2b2415. Change-Id: Icc40cf0c7687454760762912dd29e4ae79e8e9ee
2016-11-14Revert "Revert "autoservice: Use frame deferral API""George Joseph
This reverts commit edca6911f392f47c1a5a25d1d3a357c72b04a78a. Change-Id: I76030b87333a2c390cd05392b74b75678d78ddfa
2016-11-14Revert "Revert "AGI: Only defer frames when in an interception routine.""George Joseph
This reverts commit 6bce938c2fcb60b7a77a0e997a6518860c0bfa39. Change-Id: Iadbf462bf2a52e8b2fa9ebc75b37b1f688ba51d9
2016-11-14Revert "Revert "Add API for channel frame deferral.""George Joseph
This reverts commit fa749866c17f91860d3e9f89742eab3e6f03ecbc. Change-Id: Idcd1b88fa0766b1326dcc87d8905dbc314c71bd7