- Nov 15, 2019
-
-
Martin Tomec authored
When user wants to send json data, the default Content-Type header is incorect (application/x-www-form-urlencoded). This patch allows to set any custom headers so the Content-Type header can be overriden. User can set multiple headers by multiple calls of curlopt(). This approach is not consistent with other parameters, but is more readable in dialplan than one call with multiple headers. ASTERISK-28613 Change-Id: I4dd68c3f4e25362ef941d73a3861f58348dcfbf9
-
- Nov 14, 2019
-
-
George Joseph authored
resource_events:stasis_app_message_handler() was locking the session, then attempting to determine if the app had debug enabled which locked the app_registry container. res_stasis:__stasis_app_register was locking the app_registry container then calling app_update which caused app_handler (which locks the session) to run. The result was a deadlock. * Updated resource_events:stasis_app_message_handler() to determine if debug was set (which locks the app_registry) before obtaining the session lock. * Updated res_stasis:__stasis_app_register to release the app_registry container lock before calling app_update (which locks the sesison). ASTERISK-28423 Reported by Ross Beer Change-Id: I58c69d08cb372852a63933608e4d6c3e456247b4
-
Friendly Automation authored
-
- Nov 13, 2019
-
-
Joshua Colp authored
There exists a scenario where a thread can hold a lock on the channels container while trying to lock a bridge. At the same time another thread can hold the lock for said bridge while attempting to retrieve a channel. This causes a deadlock. This change fixes this scenario by retrieving a channel snapshot instead of a channel, as information present in the snapshot is all that is needed. ASTERISK-28616 Change-Id: I68ceb1d62c7378addcd286e21be08a660a7cecf2
-
- Nov 12, 2019
-
-
Kevin Harwell authored
Found during some testing, there is a race condition between selecting an appropriate bridge type for a call versus the applying of media on the callee's session. In some instances a native bridge type would have been chosen, but due to the callee's media not yet being established at bridge compatibility check time the simple bridge type is picked instead. When using chan_pjsip this initiates a topology change event. The topologies are then compared for the two sessions. However, when the topology was created for the caller its streams are initialized to "inactive". This topology is then used as a base when creating the callee's topology, and streams. Soon after the caller's topology's stream(s) get updated based on the sdp (get set to sendrecv in the failing scenario). Now when the topology change event is raised, and the two topologies are compared, the comparison fails due to a stream state mismatch (sendrecv vs inactive). And since they differ a reinvite is sent out (to the caller in this case). This patch makes it such that when the caller's topology is initially created it gets created based on its configured endpoint's media topology. When the endpoint's topology is created its stream's state(s) are initialized to sendrecv instead of inactive. Subsequently, now when the callee's topology is created its topology streams are now initialized to sendrecv. Thus when the topology change event occurs due to the mentioned scenario the stream states match for the given sessions, and the reinvite is not sent unless due to some other valid mismatch. Note, this patch only changes one pending media state's creation point. It's possible other places *could* be changed, however for now it was deemed best to only alter what's here. Change-Id: I6ba3a6a75f64824a1b963044c37acbe951c389c7
-
- Nov 07, 2019
-
-
George Joseph authored
The following modules needed tweaks for API changes. addons/cdr_mysql.c addons/chan_ooh323.c apps/app_meetme.c ASTERISK-28604 Change-Id: Ib40e513ae55b5114be035cdc929abb6a8ce2d06d
-
- Oct 31, 2019
-
-
Joshua Colp authored
If the "max_retries" option is set to 0 then upon failure no further attemps are made, so explicitly document the behavior. ASTERISK-28602 Change-Id: I1e30daae9dd6c49ce18744164214d3def505acbf
-
- Oct 29, 2019
-
-
Joshua Colp authored
-
- Oct 24, 2019
-
-
Sean Bright authored
Calling ne_uri_parse allocates memory that needs to be freed with a corresponding call to ne_uri_free. ASTERISK-28572 #close Change-Id: I8a6834da27000a6807d89cb7a157b2a88fcb5e61
-
Joshua Colp authored
This change ensures that the module isn't unloaded when a WebSocket is open. Previously it was possible to unload the module manually or during shutdown which could cause a crash when any active WebSockets were terminated. ASTERISK-28585 Change-Id: I85c71ab112f99875b586419a34c08c8b34c14c5c
-
- Oct 21, 2019
-
-
George Joseph authored
-
Kevin Harwell authored
-
Joshua Colp authored
-
Friendly Automation authored
-
- Oct 18, 2019
-
-
Sean Bright authored
ASTERISK-28590 #close Change-Id: I51abce00c04d0a06550bda5205580705185b9c1c
-
Joshua Colp authored
-
George Joseph authored
When we created the External Media addition to ARI we created an ExternalMedia object to be returned from the channels/externalMedia REST endpoint. This object contained the channel object that was created plus local_address and local_port attributes (which are also in the Channel variables). At the time, we thought that creating an ExternalMedia object would give us more flexibility in the future but as we created the sample speech to text application, we discovered that it doesn't work so well with ARI client libraries that a) don't have the ExternalMedia object defined and/or b) can't promote the embedded channel structure to a first-class Channel object. This change causes the channels/externalMedia REST endpoint to return a Channel object (like channels/create and channels/originate) instead of the ExternalMedia object. Change-Id: If280094debd35102cf21e0a31a5e0846fec14af9
-
Salah Ahmed authored
During execution "pjsip show channelstats" cli command by an external module asterisk crashed. It seems this is a separate thread running to fetch and print rtp stats. The crash happened on the ao2_lock method, just before it going to read the rtp stats on a rtp instance. According to gdb backtrace log, it seems the session media was already cleaned up at that moment. ASTERISK-28578 Change-Id: I3e05980dd4694577be6d39be2c21a5736bae3c6f
-
- Oct 17, 2019
-
-
Joshua Colp authored
This was only supposed to be for testing, so now it can be removed. Change-Id: I3dfc2e776e70b3196aeed5688372ea80c0214b59
-
- Oct 16, 2019
-
-
Sean Bright authored
ASTERISK-28586 #close Change-Id: I43dc4e8bd9dc685b17695b215a5360314074734f
-
Friendly Automation authored
-
- Oct 14, 2019
-
-
cmaj authored
If you specify multiple formats in voicemail.conf, eg. "format = gsm|wav" and are using realtime ODBC backend, only the first format gets stored in the database. So when you forward a message later on, there is a bug generating the email, related to the stored format (GSM) being different than the desired email format (WAV) specified for the user. Sox can handle this, but Asterisk needs to tell sox exactly what to do. ASTERISK-22192 Change-Id: I7321e7f7e7c58adbf41dd4fd7191c887b9b2eafd
-
George Joseph authored
-
Joshua Colp authored
Now that both FIR and REMB are being sent in compound packets these tests can be enabled. This also extends the REMB nominal test to cover the REMB contents itself. Change-Id: Ibfee526ad780eefcce5dd787f53785382210024a
-
Friendly Automation authored
-
Friendly Automation authored
-
Christoph Moench-Tegeder authored
PostgreSQL 12 finally removed column adsrc from table pg_catalog.pg_attrdef (column default values), which has been deprecated since version 8.0. Since then, the official/correct/supported way to retrieve the column default value from the catalog is function pg_catalog.pg_get_expr(). This change breaks compatibility with pre-8.0 PostgreSQL servers, but has reached end-of-support more than a decade ago. cdr_pgsql and res_config_pgsql still have support for pre-7.3 servers, but cleaning that up is perhaps a topic for a major release, not this bugfix. ASTERISK-28571 Change-Id: I834cb3addf1937e19e87ede140bdd16cea531ebe
-
- Oct 11, 2019
-
-
George Joseph authored
-
- Oct 10, 2019
-
-
Kevin Harwell authored
When creating an unsolicited MWI aggregate subscription it was possible for the subscription object to be double unref'ed. This patch removes the explicit unref as it is not needed since the RAII_VAR will handle it at function end. Less concerning there was also a bug that could potentially allow the aggregate subscription object to be added to the unsolicited container twice. This patch ensures it is added only once. ASTERISK-28575 Change-Id: I9ccfdb5ea788bc0c3618db183aae235e53c12763
-
csavinovich authored
Fixes a failure in /main/taskprocesor unit test, only occurring in Ubuntu. Newer versions of GCC require variable initialization. Change-Id: I2994d8aab9307a8c2c7330584f287a27144a580c
-
Friendly Automation authored
-
George Joseph authored
* changes: res_pjsip_mwi: use an ao2_global object for mwi containers res_pjsip/res_pjsip_mwi: use centralized serializer pools
-
George Joseph authored
-
Friendly Automation authored
-
George Joseph authored
Issues in pjproject 2.9 caused us to revert some of their changes as a work around. This introduced another issue where pjproject wouldn't build with older gcc versions such as that found on CentOS 6. This commit replaces the reverts with the official fixes for the original issues and allows pjproject to be built on CentOS 6 again. ASTERISK-28574 Reported-by: Niklas Larsson Change-Id: I06f8507bea553d1a01b0b8874197d35b9d47ec4c
-
- Oct 09, 2019
-
-
Kevin Harwell authored
Here's the basic scenario that occurred when executing an AMI fast originate while at the same time something else locks the channels container, and also wants a lock on the dialed channel: 1. pbx_outgoing_attempt obtains a lock on a dialed channel 2. concurrently another thread obtains a lock on the channels container, and subsequently requests a lock on the dialed channel. It waits on #1. For instance, "core show channel <dialed channel" 3. the outgoing call does not fail, but ends before the pbx_outgoing_attempt function exits 4. pbx_outgoing_attempt function exits, the outgoing structure destructs, and attempts to hang up the dialed channel 5. hang up tries to obtain the channels container lock, but can't due to #2. 6. Asterisk is deadlocked. The solution was to allow the pbx_outgoing_exec function to "steal" ownership of the dialed channel, and handle hanging it up. The channel now is either hung up prior to it being potentially locked by the initiating thread, or if locked the hang up takes place in a different thread, thus alleviating the deadlock. ASTERISK-28561 patches: iliketrains.diff submitted by Joshua Colp (license 5000) Change-Id: I51b42b92dde8f2215b69bb509e28667ee3a3853a
-
- Oct 08, 2019
-
-
Friendly Automation authored
-
Sean Bright authored
This reverts commit fd2e8d0d. Reason for revert: Problematic for users who store their voicemail on network storage devices, or share voicemail storage between multiple Asterisk instances. ASTERISK-28567 #close Change-Id: I3ff4ca983d8e753fe2971f3439bd154705693c41
-
lvl authored
ASTERISK-28086 #close Change-Id: Ib3baadc89b9f0477a6f25a63861433812368c5ea
-
- Oct 07, 2019
-
-
Kevin Harwell authored
On shutdown it's possible for the unsolicited mwi container to be freed before other dependent threads are done using it. This patch ensures this can no longer happen by wrapping the container in an ao2_global object. The solicited container was also changed too. ASTERISK-28552 Change-Id: I8f812286dc19a34916acacd71ce2ec26e1042047
-