summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-06-01cdr/cdr_csv.c: Set file name for csv master to the module when (re)loaded.Rodrigo Ramírez Norambuena
Compute the location for the csv master file when the module is loaded or reload. Before it was calculated every time a log entry was written. Change-Id: I3ed9f6a8f965308099db70b71128f43d4d3f5585
2015-05-07Merge "res_pjsip_exten_state: Fix race condition between sending NOTIFY and ↵Joshua Colp
termination"
2015-05-07contrib/editors: Fix vim syntax highlighting of comments in config filesIvan Poddubny
* Added a lookbehind to one-line comment matcher to skip escaped semicolons. * Added support for block comments. Change-Id: Id17dfaeda8ed4be572e8107a0c010066584aaee7
2015-05-07Merge "vector: Additional enhancements and fixes"Matt Jordan
2015-05-07res_pjsip_exten_state: Fix race condition between sending NOTIFY and terminationJoshua Colp
The res_pjsip_exten_state module currently has a race condition between processing the extension state callback from the PBX core and processing the subscription shutdown callback from res_pjsip_pubsub. There is currently no synchronization between the two. This can present a problem as while the SIP subscription will remain valid the tree it points to may not. This is in particular a problem as a task to send a NOTIFY may get queued which will try to use the tree that may no longer be valid. This change does the following to fix this problem: 1. All access to the subscription tree is done within the task that sends the NOTIFY to ensure that no other thread is modifying or destroying the tree. This task executes on the serializer for the subscriptions. 2. A reference to the subscription serializer is kept to ensure it remains valid for the lifetime of the extension state subscription. 3. The NOTIFY task has been changed so it will no longer attempt to send a NOTIFY if the subscription has already been terminated. ASTERISK-25057 #close Reported by: Matt Jordan Change-Id: I0b3cd2fac5be8d9b3dc5e693aaa79846eeaf5643
2015-05-07Merge "tcptls: Avoiding ERR_remove_state in OpenSSL."Joshua Colp
2015-05-07Merge "cdr/cdr_csv.c: Refactor, function to write content of csv file."Matt Jordan
2015-05-07Merge topics 'ASTERISK-25049', 'ASTERISK-25056'Matt Jordan
* changes: CLI: Enable automatic references to modules. Modules: Make ast_module_info->self available to auxiliary sources.
2015-05-07Merge "chan_dahdi: Improve force_restart_unavailable_chans option description."Matt Jordan
2015-05-07Merge "res_stasis_snoop: Spying on a single direction continually increases CPU"Matt Jordan
2015-05-07Merge "features: Fix crash when transferee hangs up during DTMF attended ↵Joshua Colp
transfer."
2015-05-06vector: Additional enhancements and fixesGeorge Joseph
After using the new vector stuff for real I found... A bug in AST_VECTOR_INSERT_AT that could cause a seg fault. The callbacks needed to be closer to ao2_callback in behavior WRT to CMP_MATCH and CMP_STOP behavior and the ability to return a vector of matched entries. A pre-existing issue with APPEND and REPLACE was also fixed. I also added a new macro to test.h that acts like ast_test_validate but also accepts a return code variable and a cleanup label. As well as printing the error, it sets the rc variable to AST_TEST_FAIL and does a goto to the specified label on error. I had a local version of this in test_vector so I just moved it. ASTERISK-25045 Change-Id: I05e5e47fd02f61964be13b7e8942bab5d61b29cc
2015-05-06res_stasis_snoop: Spying on a single direction continually increases CPUKevin Harwell
Creating a snoop channel in ARI and spying only on a single direction (in or out) results in CPU utilization continually increasing until the CPU is fully consumed. This occurs because frames are being put in the opposing direction's slin factory queue, but not being removed. Fixed the problem by always reading and disposing of frames from the opposite queue of the direction selected. ASTERISK-24938 #closes Change-Id: I935bfd15f1db958f364d9d6b3b45582c0113dd60
2015-05-06chan_dahdi: Improve force_restart_unavailable_chans option description.Richard Mudgett
ASTERISK-25034 Reported by: Richard Mudgett Change-Id: I1ff8f02124d2f4abd632a050da52c64285bb7f30
2015-05-06Merge "app_queue: Fix queue_log EXITWITHTIMEOUT containing only 1 parameter"Joshua Colp
2015-05-06Merge "manager: Fix build due to missing variable usage."Matt Jordan
2015-05-06Merge "res_ari_bridges: Add missing dependencies."Matt Jordan
2015-05-06manager: Fix build due to missing variable usage.Joshua Colp
Change-Id: I26d4d2cb9cee924632ff59ef0b30a7e6a1e2b00d
2015-05-05Merge "pbx_config: Register manager actions with module version of macro."Matt Jordan
2015-05-05features: Fix crash when transferee hangs up during DTMF attended transfer.Richard Mudgett
A crash happens with this sequence of steps: 1) Party A is connected to party B. 2) Party B starts a DTMF attended transfer. 3) Party A hangs up while party B is dialing party C. When party A hangs up the bridge that party A and party B are in is dissolved and party B is kicked out of the bridge. When party B finishes dialing party C he attempts to move to the new bridge with party C. Since party B is no longer in a bridge the attempted move dereferences a NULL bridge_channel pointer and crashes. * Made the hold(), unhold(), ringing(), and the bridge_move() functions tolerant of the channel not being in a bridge. The assertion that party B is always in a bridge is not true if the bridged peer of party B hangs up and dissolves the bridge. Being tolerant of not being in a bridge allows the peer hangup stimulus to be processed by the FSM. * Made the bridge_move() function return void since where the return value for a failed move was checked generated a FSM coding ERROR message for a normal off-nominal condition. * Eliminated most uses of RAII_VAR in bridge_basic.c. ASTERISK-25003 #close Reported by: Artem Volodin Change-Id: Ie2c1b14e5e647d4ea6de300bf56d69805d7bcada
2015-05-05app_queue: Fix queue_log EXITWITHTIMEOUT containing only 1 parameterIvan Poddubny
This patch fixes EXITWITHTIMEOUT queue_log entry to always come with 3 parameters: position, original position and waiting time. ASTERISK-25038 #close Reported by: Etienne Lessard Change-Id: I0c62045922e26bee2125e93aee1dee17eee79618
2015-05-05chan_unistim: Fix build failure due to ACL changes.Joshua Colp
Change-Id: I57081045c72b9fcf12d5c84493278f9272c31b32
2015-05-05Merge "stasis: Fix dial masquerade datastore lifetime"Matt Jordan
2015-05-05Merge "vector: Traversal, retrieval, insert and locking enhancements"Matt Jordan
2015-05-05tcptls: Avoiding ERR_remove_state in OpenSSL.Alexander Traud
ERR_remove_state was deprecated with OpenSSL 1.0.0 and was replaced by ERR_remove_thread_state. ERR_load_SSL_strings and ERR_load_BIO_strings were called by SSL_load_error_strings already and got removed. These changes allow OpenSSL forks like BoringSSL to be used with Asterisk. ASTERISK-25043 #close Reported by: Alexander Traud patches: asterisk_with_BoringSSL.patch uploaded by Alexander Traud (License 6520) Change-Id: If1c0871ece21a7e0763fafbd2fa023ae49d4d629
2015-05-05Merge "Restrict functionality when ACLs are misconfigured."Joshua Colp
2015-05-05res_ari_bridges: Add missing dependencies.Corey Farrell
Missed this module in the previous commit. res_ari_bridges uses symbols from res_stasis_playback and res_stasis_recording. ASTERISK-25027 #close Reported by: Corey Farrell Change-Id: I90bf756abd25adfc4920d2869ebe7feb636b8c5f
2015-05-05pbx_config: Register manager actions with module version of macro.Corey Farrell
Switch manager actions in pbx_config to use the registration macro that passes the module pointer, allowing pbx_config reference to be bumped while the manager actions run. ASTERISK-25061 #close Reported by: Corey Farrell Change-Id: I422c50dd74814616ac10c5e9c6598a0b1bc2c44e
2015-05-05stasis: Fix dial masquerade datastore lifetimeJoshua Colp
A recent change went into Asterisk which added reference counts to the channels stored in a dial masquerade datastore. Unfortunately this included a reference to the caller in a dialing operation. While all of the dialed targets have the datastore removed from them upon dialing completion this did not occur for the caller, causing it to have a reference to itself that could go never go away (as it depended on the destruction of the datastore which only happened when the channel was destroyed). This resulted in the caller channel remaining on the system despite it having hung up. This change does the following to fix this issue: 1. The dial masquerade datastore is now removed from the caller upon dialing completion, just like the dialed targets. 2. Upon destruction of the caller all the dialed targets are also removed from the dial masquerade datastore (just in case). 3. The reference to the caller has been removed as it should not be possible for the datastore to now be valid/useful after the lifetime of the caller has ended. ASTERISK-25025 #close Change-Id: I1ef4ca5ca04980028604cc2af5d2992ac3431b3f
2015-05-04CLI: Enable automatic references to modules.Corey Farrell
* Pass module to ast_cli_register and ast_cli_register_multiple. * Add a module reference before executing any CLI callback, remove the reference when complete. ASTERISK-25049 #close Reported by: Corey Farrell Change-Id: I7aafc7c9f2b912918f28fe51d51e9e8a755750e3
2015-05-04Modules: Make ast_module_info->self available to auxiliary sources.Corey Farrell
ast_module_info->self is often needed to register items with the core. Many modules have ad-hoc code to make this pointer available to auxiliary sources. This change updates the module build process to make the needed information available to all sources in a module. ASTERISK-25056 #close Reported by: Corey Farrell Change-Id: I18c8cd58fbcb1b708425f6757becaeca9fa91815
2015-05-04vector: Traversal, retrieval, insert and locking enhancementsGeorge Joseph
Renamed AST_VECTOR_INSERT to AST_VECTOR_REPLACE because it really does replace not insert. The few users of AST_VECTOR_INSERT were refactored. Because these are macros, there should be no ABI compatibility issues. Added AST_VECTOR_INSERT_AT that actually inserts an element into the vector at a specific index pushing existing elements to the right. Added AST_VECTOR_GET_CMP that can retrieve from the vector based on a user-provided compare function. Added AST_VECTOR_CALLBACK function that will execute a function for each element in the vector. Similar to ao2_callback and ao2_callback_data functions although the vector callback can take a variable number of arguments. This should allow easy migration to a vector where a container might be too heavy. Added read/write locked vector and lock manipulation macros. Added unit tests. ASTERISK-25045 #close Change-Id: I2e07ecc709d2f5f91bcab8904e5e9340609b00e0
2015-05-04main/test.c: Add test to verify there were no registration errors.Corey Farrell
This adds a test that will fail if any test failed to register. Also fail if any test registration produced a warning about missing a leading or trailing slash. ASTERISK-25053 #close Reported by: Corey Farrell Change-Id: I93e50b8fcbcfa7f1f5b41b2c44a51685c09529c3
2015-05-04Merge "contrib/ast-db-manage: Add Postgres ENUM type support in auto DTMF ↵Matt Jordan
mode update"
2015-05-04Merge "Format Interfaces: Prevent unload except by shutdown."Matt Jordan
2015-05-04Merge "res_odbc: Use negative connection cache for all connections"Matt Jordan
2015-05-04Merge "main/presencestate.c: Add trailing slash to test category."Matt Jordan
2015-05-04res_odbc: Use negative connection cache for all connectionsMartin Tomec
Apply the negative connection cache setting to all connections, even those that are not pooled. This ensures that the connection will not be re-established before the negative connection cache time is met. ASTERISK-22708 #close Change-Id: I431cc2e8584ab0b6908b3523d0a0e18c9a527271
2015-05-04Merge "Remove unneeded uses of optional_api providers."Matt Jordan
2015-05-04Merge "Update configure.ac/Makefile for clang"Matt Jordan
2015-05-03Format Interfaces: Prevent unload except by shutdown.Corey Farrell
Format interfaces cannot be unregistered, so the modules that provide them need to be held open except by shutdown. ASTERISK-25054 #close Reported by: Corey Farrell Change-Id: Iadbd9675bf0d30b8fded5a739b163db3ea2db8f3
2015-05-03contrib/ast-db-manage: Add Postgres ENUM type support in auto DTMF mode updateMatt Jordan
The upgrade script for auto DTMF mode (31cd4f4891ec) added in 88b0fa7755 failed to add ENUM support for Postgres databases. This requires a specific import from the sqlalchemy.dialects.postgresql package. This patch corrects this error, which allows for Postgres update scripts to be generated. ASTERISK-24706 Change-Id: I4742ac8efa533cd6f18e0bdd907b339a9aedf015
2015-05-03main/presencestate.c: Add trailing slash to test category.Corey Farrell
ASTERISK-25053 Reported by: Corey Farrell Change-Id: I8c0375dd0818747b2d2e1ceaea87bfbeb2daf8d4
2015-05-03Merge "cdr/cdr_csv.c: Add a new option to enable columns added in Asterisk 1.8"Joshua Colp
2015-05-03Merge "term: send proper reset sequence when black background is forced"Matt Jordan
2015-05-03Update configure.ac/Makefile for clangDiederik de Groot
Created autoconf/ast_check_raii.m4: contains AST_CHECK_RAII which checks compiler requirements for RAII: gcc: -fnested-functions support clang: -fblocks (and if required -lBlocksRuntime) The original check was implemented in configure.ac and now has it's own file. This function also sets C_COMPILER_FAMILY to either gcc or clang for use by makefile Created autoconf/ast_check_strsep_array_bounds.m4 (contains AST_CHECK_STRSEP_ARRAY_BOUNDS): which checks if clang is able to handle the optimized strsep & strcmp functions (linux). If not, the standard libc implementation should be used instead. Clang + the optimized macro's work with: strsep(char *, char []), but not with strsepo(char *, char *). Instead of replacing all the occurences throughout the source code, not using the optimized macro version seemed easier See 'define __strcmp_gc(s1, s2, l2) in bits/string2.h': llvm-comment: Normally, this array-bounds warning are suppressed for macros, so that unused paths like the one that accesses __s1[3] are not warned about. But if you preprocess manually, and feed the result to another instance of clang, it will warn about all the possible forks of this particular if statement. Instead of switching of this optimization, another solution would be to run the preproces- sing step with -frewrite-includes, which should preserve enough information so that clang should still be able to suppress the diag- nostic at the compile step later on. See also "https://llvm.org/bugs/show_bug.cgi?id=20144" See also "https://llvm.org/bugs/show_bug.cgi?id=11536" Makefile.rules: If C_COMPILER_FAMILY=clang then add two warning suppressions: -Wno-unused-value -Wno-parentheses-equality In an earlier review (reviewboard: 4550 and 4554), they were deemed a nuisace and less than benefitial. configure.ac: Added AST_CHECK_RAII() see earlier Added AST_CHECK_STRSEP_ARRAY_BOUNDS() see earlier Removed moved content ASTERISK-24917 Change-Id: I12ea29d3bda2254ad3908e279b7effbbac6a97cb
2015-05-03cdr/cdr_csv.c: Add a new option to enable columns added in Asterisk 1.8Rodrigo Ramírez Norambuena
This patch adds a new option to cdr.conf, 'newcdrcolumns', that will handle CDR columns added in Asterisk 1.8. The columns are: * peeraccount * linkedid * sequence When enabled, the columns in the database entry will be populated with the data from the CDR. ASTERISK-24976 #close Change-Id: I51a57063f4ae5e194a9d933a8df45dc8a4534f0b
2015-05-03Merge "res_pjsip_dlg_options: Fix MODULEINFO section."Matt Jordan
2015-05-02Remove unneeded uses of optional_api providers.Corey Farrell
A few cases exist where headers of optional_api provders are included but not needed. This causes unneeded calls to ast_optional_api_use. * Don't include optional_api.h from sip_api.h. * Move 'struct ast_channel_monitor' to channel.h. * Don't include monitor.h from chan_sip.c, channel.c or features.c. The move of struct ast_channel_monitor is needed since channel.c depends on it. This has no effect on users of monitor.h since channel.h is included from monitor.h. ASTERISK-25051 #close Reported by: Corey Farrell Change-Id: I53ea65a9fc9693c89f8bcfd6120649bfcfbc3478
2015-05-02Merge "include/asterisk/channel.h: Fix typo"Matt Jordan