Commit Graph

6382 Commits

Author SHA1 Message Date
Corey Farrell
97c21e9cb3 core: Rename sounds_index.c to sounds.c.
This will make the source filename match the 'module reload sounds'
command.  This will allow conversion to a built-in module in Asterisk 16
without needing to redefine AST_MODULE.

Change-Id: Ifb8e489575b27eb33d8c0b6a531f266670557f6e
2018-02-19 04:21:23 -06:00
Corey Farrell
e03f0f9572 config: Fix locking for extconfig reload.
Expand locking to include full reload process for extconfig to ensure
nothing can read the config mappings between clearing and reloading.

Change-Id: I378316bad04f1b599ea82d0fef62b8978a644b92
2018-02-19 03:09:02 -06:00
Alexander Traud
a70c92121d rtp_engine: Load format name / mime type in uppercase again.
This reverts a previous change partly.

ASTERISK-27689

Change-Id: Ia3d2f282db6995be8c1c253b5d52f6038761e8af
2018-02-17 15:49:15 +01:00
Sean Bright
af2dd3a678 bridge_roles: Use a non-locking linked list where appropriate
Also explicitly initialize with the AST_LIST_HEAD_NOLOCK_INIT macro for
clarity.

Change-Id: I4bc39ec33bc3ff77e1a971a01ace87deb965be3f
2018-02-15 14:31:32 -06:00
Jenkins2
d6147aa6a3 Merge "main/asterisk.c: Remove silly usage of RAII_VAR." 2018-02-14 12:55:18 -06:00
Jenkins2
41a05aacc9 Merge "core: Remove embedded editline." 2018-02-13 08:22:28 -06:00
Joshua Colp
d494cc1c88 Merge "json: Add conditionals to avoid locking if Jansson is thread safe." 2018-02-13 07:30:35 -06:00
Corey Farrell
9e45d3f893 main/asterisk.c: Remove silly usage of RAII_VAR.
Change-Id: I7e2996397fbd3c3a6a69dd805c38448ddfc34ae9
2018-02-12 22:15:34 -06:00
Corey Farrell
02ee296f81 optional_api: Refactor to use vector's and standard allocators.
* Replace ad-hoc array management with macro's from vector.h.
* Remove redundent logger messages.
* Use normal Asterisk allocators instead of directly using libc
  allocators.
* Free memory when an API has no implementation or users.

Change-Id: Ic6ecb31798d4a78e7df39ece86a68b60eac05bf5
2018-02-12 22:53:35 -05:00
Jenkins2
0461286123 Merge "cdr.c: Fix runtime leak of CDR records." 2018-02-12 16:03:46 -06:00
Sungtae Kim
cb4cfb8c43 manager: Add AMI event Load/Unload
Add an AMI events Load and Unload for notify when the
module has been loaded and unloaded.

ASTERISK-27661

Change-Id: Ib916c41eddd63651952998f2f49c57c42ef87a64
2018-02-12 21:34:09 +01:00
Corey Farrell
04490fb1d8 json: Add conditionals to avoid locking if Jansson is thread safe.
Jansson is thread safe for all read-only functions and reference
counting starting v2.11.  This allows simplification of our code and
removal of locking around reference counting and dumping.

Change-Id: Id985cb3ffa6681f9ac765642e20fcd187bd4aeee
2018-02-12 13:27:08 -05:00
Corey Farrell
9fddc8b4dc core: Remove embedded editline.
This removes the embedded copy of editline from the Asterisk source
tree, making a system copy of libedit mandatory in Asterisk 16+.

ASTERISK-27634 #close

Change-Id: Iedb64ad92acb78419f3caefedaa2bb7cd2a1a33f
2018-02-12 04:44:26 -05:00
Alexander Traud
32e610d9e6 backtrace: Avoid potential spurious output.
clang 4.0 found this via -Wlogical-not-parentheses.

ASTERISK-27642

Change-Id: I9ec3e144d425a976c02811bd23cd0c533d2eca4e
2018-02-10 14:55:42 +01:00
Richard Mudgett
b2fcb30d38 cdr.c: Fix runtime leak of CDR records.
Need to remove all CDR's listed by a CDR object from the active_cdrs_all
container including the root/master record.

ASTERISK-27656

Change-Id: I48b4970663fea98baa262593d2204ef304aaf80e
2018-02-09 14:26:46 -06:00
Jenkins2
2d90b1efd9 Merge "manager.c: Fixed "(null):" header in AMI AsyncAGIEnd event" 2018-02-05 12:23:19 -06:00
Jenkins2
5c524e3287 Merge "manager_channels.c: Reordered ast_manager_build_channel_state_string_prefix()" 2018-02-03 10:26:55 -06:00
Sungtae Kim
7e32adf044 manager.c: Fixed "(null):" header in AMI AsyncAGIEnd event
* Changed to create ami_event string only when the given blob is not
json_null().
* Fixed bad expression.

ASTERISK-27621

Change-Id: Ice58c16361f9d9e8648261c9ed5d6c8245fb0d8f
2018-02-01 17:24:14 -06:00
Richard Mudgett
3419a048b9 manager.c: Fix potential memory leak and corruption.
ast_str_append_event_header() could potentially leak and corrupt memory if
the ast_str needed to expand to add the AMI event header.

* Fixed to return error if the ast_str_append() failed.

Change-Id: I92f36b855540743b208d76e274152ee2d758176d
2018-02-01 13:51:27 -06:00
Richard Mudgett
bcfe172f8d manager_channels.c: Reordered ast_manager_build_channel_state_string_prefix()
* Made not allocate memory if the channel snapshot is an internal channel.

* Free memory earlier when no longer needed.

Change-Id: Ia06e0c065f1bd095781aa3f4a626d58fa4d28b38
2018-02-01 12:28:32 -06:00
Richard Mudgett
b9024197ab app_confbridge: Update dsp_silence_threshold and dsp_talking_threshold docs.
The dsp_talking_threshold does not represent time in milliseconds.  It
represents the average magnitude per sample in the audio packets.  This is
what the DSP uses to determine if a packet is silence or talking/noise.

Change-Id: If6f939c100eb92a5ac6c21236559018eeaf58443
2018-01-31 13:13:27 -06:00
Jenkins2
093484d137 Merge "loader: Use ast_cli_completion_add for 'module load' completion." 2018-01-31 07:48:21 -06:00
Jenkins2
8f6978d7b8 Merge "pbx_variables.c: Misc fixes in variable substitution." 2018-01-31 06:52:24 -06:00
Jenkins2
da4ddb1faa Merge "Build System: Require __sync or __atomic functions." 2018-01-30 06:56:08 -06:00
Jenkins2
21bcd85bba Merge "core: Fix unused variable error in handle_show_sysinfo." 2018-01-29 11:45:27 -06:00
Jenkins2
1e44d50893 Merge "core: Tweak startup order." 2018-01-29 10:49:58 -06:00
Jenkins2
7c77365549 Merge "editline: Avoid shifting a negative signed value." 2018-01-29 10:44:44 -06:00
Corey Farrell
84a6365164 loader: Use ast_cli_completion_add for 'module load' completion.
This addresses all performance issues with 'module load' completion.  In
addition to using ast_cli_completion_add we stop using libedit's
filename_completion_function, instead using ast_file_read_dir.  This
ensures all results are produced from a single call to opendir.

Change-Id: I8bf51ffaa7ef1606f3bd1b5bb13f1905d72c6134
2018-01-27 15:18:45 -05:00
Alexander Traud
d9e42f27b9 core: Fix unused variable error in handle_show_sysinfo.
The previous fix broke the case
HAVE_SYSINFO = no
HAVE_SYSCTL = yes
HAVE_SWAPCTL = no
which occurs on FreeBSD 11.1 for example.

ASTERISK-26563

Change-Id: If77c39bc75f0b83a6c8a24ecb2fa69be8846160a
2018-01-27 16:44:21 +01:00
Alexander Traud
3c26eec043 editline: Avoid shifting a negative signed value.
clang 4.0 warned about this.

ASTERISK-27630

Change-Id: Ie2725048c661c1792d8b1d498575144350b6e9ba
2018-01-27 15:54:24 +01:00
Corey Farrell
39fcecad59 core: Tweak startup order.
Move initialization of units which do not require configuration to occur
before preload modules.  This leaves only units which load config between
module preload and regular load stages.

Change-Id: I1d15384acad16a22c3498124421af474fa517478
2018-01-25 20:23:31 -05:00
Corey Farrell
23381d2c5e Build System: Require __sync or __atomic functions.
This change causes the configure script to throw an error if neither
__sync nor __atomic builtin functions are available.

ASTERISK-27619

Change-Id: Ie01a281e0f5c41dfeeb5f250c1ccea8752f56ef9
2018-01-25 10:38:45 -05:00
Corey Farrell
a164b7ccfb loader: Correct overly strict startup checks.
The code which handled loading modules had too many situations which
would result in halting Asterisk startup.  Treat most errors as declines
instead of failures.  The exception is when the module load function
returns AST_MODULE_LOAD_FAILURE or an invalid code.

Clear the missingdeps vector when appropriate to ensure the next loop
starts clean.

ASTERISK-27620

Change-Id: I45547d9641fd45bd86d80250224417625631ad84
2018-01-25 00:04:51 -05:00
Jenkins2
d4e9f7c940 Merge "loader: Add support for built-in modules." 2018-01-22 16:35:09 -06:00
Jenkins2
cec16d8e4f Merge "loader: Rework load_resource_list." 2018-01-22 16:31:29 -06:00
Richard Mudgett
2f78dc2bfa pbx_variables.c: Misc fixes in variable substitution.
* Copy more than one character at a time when there is nothing to
substitute.

* Fix off by one error if a '}' or ']' is missing.

* Eliminated the requirement that the "used" parameter had to point to a
variable.  The current callers were always declaring a variable to meet
the requirement and discarding the value put into that variable.  Now it
can be NULL.

* In ast_str_substitute_variables_full() fixed using the bogus channel to
evaluate a function.  We were not using the bogus channel we just created
to help evaluate a subexpression.

Change-Id: Ia83d99f4f16abe47f329eb39b6ff2013ae7c9854
2018-01-22 12:38:13 -06:00
Joshua Colp
908e39f186 Merge "loader: Remove global symbol only startup phase." 2018-01-22 10:33:18 -06:00
Jenkins2
2c27205e4e Merge "loader: Process module dependencies." 2018-01-22 10:16:29 -06:00
Jenkins2
fd32ca51e8 Merge "pbx: Reduce verbosity while loading extensions" 2018-01-22 09:39:22 -06:00
krells
77f2814d01 pbx: Reduce verbosity while loading extensions
Each time the dial plan is reloaded, a lot of logs like these are generated:
"Added extension 'XXXXX' priority 1 to YYYYYYYYYYY"
This patch changes the log level for those logs.

ASTERISK-27084

Change-Id: I5662902161c50890997ddc56835d4cafb456c529
2018-01-18 20:36:14 -06:00
Corey Farrell
25cb1ab05b loader: Add support for built-in modules.
* Add SRC_EMBEDDED variable to main/Makefile.  Built-in module sources
  must be listed in this variable to ensure they get the correct CFLAGS.

Change-Id: I920852bc17513a9c2627061a4ad40511e3a20499
2018-01-17 19:25:00 -05:00
Corey Farrell
e6142a1282 loader: Rework load_resource_list.
Use a single loop in a loop to scan the resource list attempting to
dlopen each module.  The inner loop is repeated until it doesn't do any
work, then it is run one more time to allow printing of error messages.

Change-Id: I60c15cd57ff9680b62e2a94c7519401fa4a38e45
2018-01-17 19:19:14 -05:00
Corey Farrell
a80cbb046e loader: Remove global symbol only startup phase.
Dependency loader is now in place so we no longer need a separate loader
phase for global symbols only.  This simplifies the loader and allows us
to minimize calls to dlopen.

Change-Id: I33e3174d67f3b4552d3d536326dcaf0ebabb097d
2018-01-17 17:57:18 -05:00
Corey Farrell
3b73ed28c5 loader: Process module dependencies.
* Add string vectors for requires, optional_apis and enhances.
* Add reffed_deps module vector for holding references to dependencies.
* Initialize string vectors after final dlopen of each module.
* Free string vectors and clear references from reffed_deps in
  module_destroy.
* Create functions necessary to process module dependencies and enforce
  load order.

Module dependencies result in automatic references being managed by the
module loader.  This enforces unload order.

Change-Id: I9be08d1dd331aceadc1dcba00b804d71360b2fbb
2018-01-17 17:56:59 -05:00
Corey Farrell
4fd303b630 loader: Miscellaneous fixes.
* Remove comment about lazy load.
* Improve message about module already being loaded and running.
* Handle allocation error in add_to_load_order.
* Dead code elimination from modules_shutdown.

Change-Id: I22261599c46d0f416e568910ec9502f45143197f
2018-01-17 11:02:43 -06:00
Richard Mudgett
7ed7d525fb taskprocessor.c: Increase the number of tps_singletons container buckets.
Since v12 the number of taskprocessors in the system has increased a lot.
Small systems can easily have over a hundred and larger systems can have
thousands.

Most uses of the tps_singletons container deal with creating and
destroying the taskprocessors.  However, the pjsip distributor looks up
taskprocessors/serializers by name frequently.  It needs to find the
serializer for incoming SIP responses to distribute them to the
appropriate serializer.

Change-Id: Ice0603606614ba49f7c0c316c524735c064e7e43
2018-01-16 12:42:06 -06:00
Corey Farrell
35ae99c712 vector: Additional string vector definitions.
ast_vector_string_split:
This function will add items to an ast_vector_string by splitting values
of a string buffer.  Items are appended to the vector in the order they
are found.

ast_vector_const_string:
A vector of 'const char *'.

Change-Id: I1bf02a1efeb2baeea11c59c557d39dd1197494d7
2018-01-15 13:25:45 -05:00
Jenkins2
8a6febd980 Merge "stasis_message_router: Remove silly usage of RAII_VAR." 2018-01-11 08:46:34 -06:00
Jenkins2
f94c56d388 Merge "stasis_endpoints: Remove silly usage of RAII_VAR." 2018-01-11 07:58:08 -06:00
Jenkins2
a13578e789 Merge "stasis_system: Remove silly usage of RAII_VAR." 2018-01-11 07:25:51 -06:00