Commit Graph

30200 Commits

Author SHA1 Message Date
Corey Farrell d6bbcec571 res_mwi_external_ami: Remove incorrect load priority.
res_mwi_external_ami specified AST_MODFLAG_LOAD_ORDER but didn't set
load_pri, resulting in an actual load priority of 0.  This module only
provides AMI actions so it has no reason to load early.

Change-Id: I82987fcf10d3ea42716b2f9df915b16687fd5839
2017-11-20 13:19:09 -06:00
Joshua Colp c2d97a98b2 Merge "res_snmp: Declare RONLY if net-snmp headers do not." 2017-11-20 12:13:01 -06:00
Joshua Colp 8115ab79ac Merge "iostream: Fix ast_iostream_printf declaration." 2017-11-20 11:54:06 -06:00
Joshua Colp 0e6e1fcc4d Merge "tests: Fix warnings found on Mac." 2017-11-20 11:32:51 -06:00
Joshua Colp 56d85fd2c5 Merge "app_minivm: Fix possible uninitialized return value." 2017-11-20 10:39:16 -06:00
Joshua Colp e6438dabd0 Merge "res_pjsip: Fix warning by deferring implicit type cast." 2017-11-20 09:44:12 -06:00
Corey Farrell 53f42cc052 res_pjsip: Fix warning by deferring implicit type cast.
Mac doesn't like the comparison of -1 to an enum, so store the result of
ast_sip_str_to_dtmf to an int so we can check for the negative return
value.  ast_sip_str_to_dtmf returns an int so this is only delaying the
implicit type cast.

Change-Id: I0c262c1719ee951aae1f437d733a301cf5f8ad29
2017-11-19 13:31:58 -06:00
Corey Farrell 75cb403775 tests: Fix warnings found on Mac.
test_pbx used raise without explicitly including signal.h.  On Mac for
some reason nothing else includes it.

test_logger checked if an unsigned int was negative.  Switch the
variable to 'int' so that error check can be effective.

Change-Id: Ie1db5dd1818ac25cc2ae41b644f848b5865b1362
2017-11-18 22:13:32 -05:00
Corey Farrell 83a2c4d2ae res_snmp: Declare RONLY if net-snmp headers do not.
Some net-snmp builds do not provide the RONLY declare, only
NETSNMP_OLDAPI_RONLY.  Map RONLY to NETSNMP_OLDAPI_RONLY to get around
this error.

Change-Id: Ida5c7ad9406515825485c4d3b4a34fd6ad0da577
2017-11-18 21:25:50 -05:00
Corey Farrell b4862e463c iostream: Fix ast_iostream_printf declaration.
This adds the printf attribute and changes 'fmt' from 'const void *' to
'const char *'.  This resolves a warning from some compiler for
vsnprintf needing a literal string for format.

Change-Id: I71c33a8262590042ee451e1146760c10bb22fb78
2017-11-18 20:50:48 -05:00
Corey Farrell 2fab3aacd6 app_minivm: Fix possible uninitialized return value.
Declare 'res' initialized to -1 to deal with earlier error paths that
could cause 'res' to be returned uninitialized.

Change-Id: I8ac2a5755bf4174d89ef893e924c940f702b104e
2017-11-18 20:29:16 -05:00
Sean Bright 1b6e4c1175 res_pjsip: Use reasonable buffer lengths for endpoint identification
Domains themselves can be up to 255 characters long (per RFC 1035), so
our current buffer sizes are wholly inadequate for many use cases.

Change-Id: If3f30a68307f1365a1fe06bc4b854c62842c9292
2017-11-17 11:22:04 -05:00
Joshua Colp 4181b6f377 Merge "DEBUG_FD_LEAKS: Add missing FD creators." 2017-11-17 09:26:48 -06:00
Joshua Colp 4dac92b99a Merge "Build: Make function constructor/destructor attributes mandatory." 2017-11-17 09:26:33 -06:00
Jenkins2 b2c49d6c07 Merge "aoc: Fix memory management issues." 2017-11-17 06:43:17 -06:00
Corey Farrell a95f2994c6 aoc: Fix memory management issues.
aoc_publish_blob failed to check for msg allocation error and never
released msg.

Change-Id: Ib31a9ffb81056a0d496a49d7eec795005a44bcd5
2017-11-16 20:40:43 -05:00
Sean Bright 7a735d45e2 res_pjsip_transport_websocket: Give transport a meaningful description
We were not \0 terminating this string, so any attempt to print it would
in the best case show an empty string and in the worst case potentially
crash.

Change-Id: I63d96ef8f7516ac02a0f91e22dfa8acdc615042c
2017-11-16 17:29:11 -05:00
Joshua Colp ccbf176c30 Merge "ast_coredumper: Add ability to use directory other than /tmp" 2017-11-16 15:44:23 -06:00
Joshua Colp a5918d300b Merge "pjsip / hep: Provide correct local address for Websockets." 2017-11-16 11:53:53 -06:00
Jenkins2 d89dc864eb Merge "sorcery: Add ast_sorcery_retrieve_by_prefix()" 2017-11-16 10:27:00 -06:00
Joshua Colp 936bacda16 Merge "chan_pjsip.c: Improve answer failure log messages." 2017-11-16 10:11:32 -06:00
Nir Simionovich d995064fb7 This patch adds a beanstalk CEL backend.
Beanstalkd is a simple to use job queue. It provides a means to
create multiple job queues called "tubes". Each tube can store
multiple jobs, with varying priorities with the queue. Queue
processing is available via a simple TCP socket or via well defined
libraries, avaialble at
https://github.com/kr/beanstalkd/wiki/client-libraries

This module is based upon the beanstalk-client library, available
for download at: https://github.com/deepfryed/beanstalk-client

This module currently doesn't support user defined events.

Change-Id: Ic3a087faeeac045d69a2a018e60e29831ddb95ab
2017-11-16 09:47:10 -06:00
Jenkins2 b5ac9c8a78 Merge "This patch adds a beanstalk CDR backend." 2017-11-16 09:36:41 -06:00
Joshua Colp f9661d558b Merge "audiohook.c: Fix freeing a frame and still using it." 2017-11-16 08:27:04 -06:00
Richard Mudgett e793501084 chan_pjsip.c: Improve answer failure log messages.
* Balanced the session->inv_session refs on answer failure.

Change-Id: I33542d639d37e692cb46550b972a5fcfc3b804b8
2017-11-15 17:53:40 -05:00
Richard Mudgett b7b800b689 audiohook.c: Fix freeing a frame and still using it.
Memory corruption happened to the media frame caches when an audio hook
freed a frame when it shouldn't.  I think the freed frame was because a
jitter buffer interpolated a missing frame and the audio hook
unconditionally freed it.

* Made audiohook.c:audio_audiohook_write_list() not free an interpolated
frame if it is the same frame as what was passed into the routine.

* Made plc.c:normalise_history() use memmove() instead of memcpy() on a
memory block that could overlap.  Found by valgrind investigating this
issue.

ASTERISK-27238
ASTERISK-27412

Change-Id: I548d86894281fc4529aefeb9f161f2131ecc6fde
2017-11-15 17:07:07 -05:00
George Joseph f512707362 app_record: Don't set RECORD_STATUS chan var until file is closed
We've been calling pbx_builtin_setvar_helper to set the
RECORD_STATUS variable before actually closing the recorded file.
If a client is watching VarSet events and tries to do something with
the file when a RECORD_STATUS event is seen, they might attempt to
do so while the file it's still open.

We now delay calling pbx_builtin_setvar_helper until after we close
the file.

ASTERISK-27423

Change-Id: I7fe9de99953e46b4bafa2b38cf151fe8f6488254
2017-11-15 15:03:21 -05:00
George Joseph cf1cb3345e ast_coredumper: Add ability to use directory other than /tmp
The OUTPUTDIR environment variable can now be set either in the
environment itself or in ast_debug_tools.conf.  If set, it's used
for all work products instead of /tmp.

Also added the --tarball-config option that includes the contents
of /etc/asterisk when either --tarball-coredumps or --tarball-results
are used.

Change-Id: I66b2553319df61caea5b313d084f51978f730b4c
2017-11-15 10:43:44 -05:00
Jenkins2 aa65be95c0 Merge "bundled_pjproject: Update to 2.7.1" 2017-11-14 16:03:57 -06:00
Joshua Colp 995b8c1a38 Merge "bundled_pjproject: sip_parser: Fix return code in pjsip_find_msg" 2017-11-14 14:49:05 -06:00
Joshua Colp 29e0add14f pjsip / hep: Provide correct local address for Websockets.
Previously for PJSIP the local address of WebSocket connections
was set to the remote address. For logging purposes this is
not particularly useful.

The WebSocket API has been extended to allow the local
address to be queried and this is used in PJSIP to set the
local address to the correct value.

The PJSIP HEP support has also been tweaked so that reliable
transports always use the local address on the transport
and do not try to (wrongly) guess. As they are connection
based it is impossible for the source to be anything else.

ASTERISK-26758
ASTERISK-27363

Change-Id: Icd305fd038ad755e2682ab2786e381f6bf29e8ca
2017-11-14 11:53:07 -05:00
Joshua Colp a6d2926e5d Merge "core: Fix configuration of remote console socket path." 2017-11-14 10:31:40 -06:00
Jenkins2 69d12bcf3e Merge "pjsip: Add patch to allow all transports to be destroyed." 2017-11-14 09:06:33 -06:00
Joshua Colp 9d7b096023 Merge "core: Use ast_alertpipe for Asterisk signal monitoring thread." 2017-11-14 07:32:24 -06:00
Jenkins2 f616147487 Merge "core: Add cache_media_frames debugging option." 2017-11-14 06:56:54 -06:00
Joshua Colp e63dbac21f Merge "alertpipe: Correct documented return of ast_alertpipe_write." 2017-11-14 05:46:58 -06:00
Corey Farrell 14253f9535 alertpipe: Correct documented return of ast_alertpipe_write.
Change-Id: I4ea49c441890a81384144479dc93ab5a3989486d
2017-11-13 18:47:46 -05:00
Jenkins2 8ae31f7126 Merge "vectors: Add new macro and a string vector definition." 2017-11-13 17:26:23 -06:00
Joshua Colp 52c1d05296 Merge "menuselect: Delete and ignore aclocal.m4." 2017-11-13 17:01:35 -06:00
Corey Farrell edd1016dd8 core: Use ast_alertpipe for Asterisk signal monitoring thread.
Reduce the signal monitoring thread file descriptor use from two to one
on systems that support eventfd.

Change-Id: Id4041a237d481ff699639e153ea6982fee14a462
2017-11-13 17:41:07 -05:00
Corey Farrell cdaaa14a5f core: Fix configuration of remote console socket path.
The remote console socket path is the combination of asterisk.conf
settings astrundir from [directories] and astctl from [files].
Unconditionally combine the two strings after processing all values
to ensure we end up with the correct socket path.

ASTERISK-27415

Change-Id: Ib1e2805d55d6b0955c6430a1a2a93acbf9b091e8
2017-11-13 17:20:27 -05:00
George Joseph f6ebd16bb8 bundled_pjproject: sip_parser: Fix return code in pjsip_find_msg
The default return code for pjsip_find_msg was PJ_SUCCESS so if
a Content-Length header wasn't found at all, pjsip_find_msg was
returning PJ_SUCCESS instead of PJSIP_EMISSINGHDR.

Also added the volatile keyword to a few variables that are used
both inside and outside the PJ_TRY/PJ_CATCH block.

Partial fix for ASTERISK_27408

Change-Id: If82ba9de921e3d57df9c68cf96ee45ccc1491f7a
2017-11-13 16:50:07 -05:00
Ben Ford 2e7f6cd31b bundled_pjproject: Update to 2.7.1
Update from 2.7 to 2.7.1 for bundled pjproject. Changed version
and removed patch files included in the update.

Change-Id: I55cea8e734b318c2df9daf86aa0802c559ec8357
2017-11-13 16:43:38 -05:00
Sean Bright ffccce76d9 sorcery: Add ast_sorcery_retrieve_by_prefix()
Some consumers of the sorcery API use ast_sorcery_retrieve_by_regex
only so that they can anchor the potential match as a prefix and not
because they truly need regular expressions.

Rather than using regular expressions for simple prefix lookups, add
a new operation - ast_sorcery_retrieve_by_prefix - that does them.

Change-Id: I56f4e20ba1154bd52281f995c27a429a854f6a79
2017-11-13 15:15:33 -05:00
Corey Farrell 4930404715 vectors: Add new macro and a string vector definition.
* AST_VECTOR_STEAL_ELEMENTS - steal the array of elements for use
  with non-vector code.
* struct ast_vector_string - a vector of 'char *'.

Change-Id: I104d1b204be03fccf67e02a195596adcb5ab1e42
2017-11-13 13:37:50 -05:00
Joshua Colp 9eacd55c71 Merge "Build System: Disable parallel make in the root Makefile." 2017-11-13 07:47:38 -06:00
Jenkins2 939b484553 Merge "res_pjsip_pubsub: Ensure remote URI contains URI only." 2017-11-13 07:11:57 -06:00
Richard Mudgett 90bb0a3e10 core: Add cache_media_frames debugging option.
The media frame cache gets in the way of finding use after free errors of
media frames.  Tools like valgrind and MALLOC_DEBUG don't know when a
frame is released because it gets put into the cache instead of being
freed.

* Added the "cache_media_frames" option to asterisk.conf.  Disabling the
option helps track down media frame mismanagement when using valgrind or
MALLOC_DEBUG.  The cache gets in the way of determining if the frame is
used after free and who freed it.  NOTE: This option has no effect when
Asterisk is compiled with the LOW_MEMORY compile time option enabled
because the cache code does not exist.

To disable the media frame cache simply disable the cache_media_frames
option in asterisk.conf and restart Asterisk.

Sample asterisk.conf setting:
[options]
cache_media_frames=no

ASTERISK-27413

Change-Id: I0ab2ce0f4547cccf2eb214901835c2d951b78c00
2017-11-11 14:46:15 -05:00
Richard Mudgett b865d29f1c frame.c: Make ast_frame_free()/ast_frfree() NULL tolerant
Change-Id: Ic49d821ef88ada38a31bdd835b9531443c55d793
2017-11-11 14:04:55 -05:00
Corey Farrell 96987737b9 menuselect: Delete and ignore aclocal.m4.
This file is temporary output from the bootstrap.sh command, it does not
need to be committed.

Change-Id: Ie0fd113aff6eac44924c0bd0c900833c6c86a6d9
2017-11-10 23:04:53 -05:00