summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-04-02pjroject_bundled: Add already-destroyed check to tsx_timer_callbackGeorge Joseph
There have been cases that when the transaction timer callback is called the tsx is already destroyed. This causes a crash. We now check the tsx state and return if the tsx is already destroyed. Change-Id: If93acd5e48d9ca5bb553f2405d5afc836842fe1c
2018-04-02pjproject_bundled: timer: Clean up usage of timer heapGeorge Joseph
Added a new pj_timer_entry_reset function that resets a timer_entry for re-use. Changed direct settings of timer_entry fields to use pj_timer_entry_init and pj_timer_entry_reset. Fixed issues where timers were being rescheduled incorrectly. Change-Id: I5b624bfbc5c1429117484b9b24567293002148e6
2018-04-02Merge "BuildSystem: With external editline, do not require libs for internal ↵Jenkins2
editline."
2018-04-02Merge "core: Create main/options.c."Jenkins2
2018-04-02Merge "pjproject_bundled: Add patch for pj_atomic crashes"George Joseph
2018-03-29res_pjsip: Fix deadlock on reliable transport shutdown.Richard Mudgett
A deadlock can happen when the PJSIP monitor thread is shutting down a connection oriented transport (TCP/TLS) used by a subscription at the same time as another thread tries to send something for that subscription. The deadlock is between the pjsip monitor thread attempting to get the dialog lock and another thread sending something for that dialog when it tries to get the transport manager lock. * res_pjsip_pubsub.c: Avoid the deadlock by pushing the subscription removal to the subscription serializer. * res_pjsip_registrar.c: Pushed off incoming registration contact removals to a default serializer as a precaution. Removing the contacts involves sorcery access which in this case will involve database access. Depending upon the setup, the database may not be on the same machine and could take awhile. We don't want to hold up the pjsip monitor thread with potentially long access times. ASTERISK-27706 Change-Id: I56b647aea565f24dba33e9e5ebeed4cd3f31f8c4
2018-03-29Merge "res_rtp_asterisk: Add support for raising additional RTCP messages."Kevin Harwell
2018-03-29Merge "main/indications: Use ast_cli_completion_add for all completions."Kevin Harwell
2018-03-29Merge "BuildSystem: pjsip_evsub_set_uas_timeout was not used (part 2)."Jenkins2
2018-03-29Merge "pjsip_transport_events.c: Fix crash using stale transport pointer."Jenkins2
2018-03-29Merge "test_data_buffer.c: Add unit tests for data buffer API."Jenkins2
2018-03-29Merge "Add data buffer API to store packets."Jenkins2
2018-03-29Merge "core: fix getopt(3) usage"Jenkins2
2018-03-28pjsip_transport_events.c: Fix crash using stale transport pointer.Ross Beer
Apparently it is possible for the transport to be destroyed without triggering the transport callback logic. As a result the transport gets destroyed and we have a stale pointer in the active_transports container. * Invoke the transport monitor callback checks when the transport is destroyed in addition to when it is disconnected and shutdown. ASTERISK-27688 Change-Id: Ia9b5469fea8f2b3f2d8476fae6b748a4d23e7261
2018-03-28test_data_buffer.c: Add unit tests for data buffer API.Ben Ford
Added unit tests for the data buffer API. These tests include creating a data buffer, putting payloads into the buffer, resizing the buffer, and the nominal case for data buffer usage, which consists of adding the max number of payloads to the buffer, checking to see if the correct payloads are present, then adding more payloads and checking again to see if the previous payloads were replaced or not. For more information, refer to the wiki page: https://wiki.asterisk.org/wiki/display/AST/WebRTC+User+Experience+Improvements Change-Id: Id5b599aa15a5e61d0ec080f97cd0c57bd07e6f8f
2018-03-28Add data buffer API to store packets.Ben Ford
Adds a data buffer with a configurable size that can store different kinds of packets (like RTP packets for retransmission). Given a number it will store a data packet at that position relative to the others. Given a number it will retrieve the given data packet if it is present. This is purposely a storage of arbitrary things so it can be used not just for RTP packets but also Asterisk frames in the future if needed. The API does not internally use a lock, so it will be up to the user of the API to properly protect the data buffer. For more information, refer to the wiki page: https://wiki.asterisk.org/wiki/display/AST/WebRTC+User+Experience+Improvements Change-Id: Iff13c5d4795d52356959fe2a57360cd57dfade07
2018-03-28pjproject_bundled: Add patch for pj_atomic crashesGeorge Joseph
There have been some crashes in the past where something attempts to use a pj_atomic after it's already been destroyed. This patch tries to prevent it by making sure that pj_atomic_destroy sets its mutex to NULL when it's done. The pj_mutex functions already check for a NULL mutex and just return PJ_EINVAL. Teluu also added some checks to the win32 implementation as well. Change-Id: Id25f70b79fdedf44ead6e6e1763a4417d3b3f825
2018-03-27res_rtp_asterisk: Add support for raising additional RTCP messages.Joshua Colp
This change extends the existing AST_FRAME_RTCP frame type to be able to contain additional RTCP message types, such as feedback messages. The payload type is contained in the subclass which allows knowing what is in the frame itself. The RTCP feedback message type is now handled and REMB[1] messages are raised with their containing information. This also fixes a bug where all feedback messages were triggering video updates instead of just FIR and FUR. Finally RTCP frames are now passed up through the Asterisk core to what is handling the channel, mapped appropriately in the case of bridging, and written to an outgoing stream. Since RTCP frames are on a per-stream basis this is only done on multistream capable channels. [1] https://tools.ietf.org/html/draft-alvestrand-rmcat-remb-03 ASTERISK-27758 ASTERISK-26366 Change-Id: I680da0ad8d5059d5e9655d896fb9d92e9da8491e
2018-03-27main: Update copyright notice with year 2018Florian Floimair
Change-Id: I2d80bc5edf940fab914cba3d8a0fa0b5eb2a3148
2018-03-26Merge "loader: Reserve space for additional pointers in ast_module_info."Jenkins2
2018-03-26core: fix getopt(3) usageGuido Falsi
Setting optind = 0 is forced to 1 in glibc implementation, but causes option parsing to be flawed in other implementations, for example on FreeBSD. ASTERISK-27773 #close Change-Id: Ia548e69f8302e9754dbbedb6bc451c0700c66f61
2018-03-23install_prereq: Add Slackware (somehow).Alexander Traud
ASTERISK-27770 Change-Id: Ib87e0483c785542238cfe34c1e884d5a31edfaab
2018-03-23install_prereq: Add Gentoo Linux.Alexander Traud
ASTERISK-27769 Change-Id: Ieb13293cd67481f3a33f58f6f7c8c3ee1e338e7a
2018-03-23main/indications: Use ast_cli_completion_add for all completions.Corey Farrell
Change-Id: I371be01f178fb542a9fbe8d97e7ae21aa4d82c36
2018-03-22Merge "bridge_softmix: Clear "talking" when a channel is put on hold"HEADmasterJenkins2
2018-03-22app_originate: Add async option.Russell Bryant
Add an option to make app_originate not wait for the created channel to answer. Change-Id: I7fc2facd77079abc6321f44e8bcd4e39298de2ae Requested-by: Frederic Steinfels <fst@highdefinition.ch> Signed-off-by: Russell Bryant <russell@russellbryant.net>
2018-03-22BuildSystem: pjsip_evsub_set_uas_timeout was not used (part 2).Alexander Traud
The previous change was not complete. ASTERISK-27435 Change-Id: I11082c14c0ef9c6af8c995084a6851337ea2a90f
2018-03-22Merge "Revert "BuildSystem: In NetBSD, the Python Programming Language is ↵Jenkins2
python-X.Y.""
2018-03-22BuildSystem: With external editline, do not require libs for internal editline.Alexander Traud
ASTERISK-27761 Change-Id: Ib17a7415297a210cfcdbf149e4df9b6edadbfab6
2018-03-22core: Create main/options.c.Corey Farrell
This creates a separate source to 'own' symbols related to options.h and paths.h. This significantly reduces the number of exports created by main/asterisk.o. This change is required to eventually be able to link unmodified Asterisk sources to utilities and/or stand-alone tests. ASTERISK~26245 Change-Id: I5cf184f4757f9363b80c9e678bdc35c477122380
2018-03-21Revert "BuildSystem: In NetBSD, the Python Programming Language is python-X.Y."George Joseph
Something is causing a python2/python3 mismatch on Fedora27. PYTHON='/usr/bin/python2' PYTHONDEV_CFLAGS='-I/usr/include/python3.6m ' PYTHONDEV_INCLUDE='-I/usr/include/python3.6m ' PYTHONDEV_LIB='-lpython3.6m ' PYTHONDEV_LIBS='-lpython3.6m ' This reverts commit be0e9920b64e3b07501b299d131309b58f9b0ddf. Change-Id: I86dd102eb3ead199fe89178cdbadb36b4e2cfd1b
2018-03-21Merge "core: Stop using AST_INLINE_API for allocator functions."Jenkins2
2018-03-21Merge "rtp: Add REMB RTP property and set it on PJSIP video RTP."Jenkins2
2018-03-21Merge "chan_sip: Peers with distinct source ports don't match, regardless of ↵Jenkins2
transport."
2018-03-21Merge "func_channel: Delete dead CHANNEL_TRACE code"Jenkins2
2018-03-20loader: Reserve space for additional pointers in ast_module_info.Corey Farrell
This creates 4 reserved pointers in case we need additional dependency management fields. Change-Id: If991ec99b779df1b2dfbd38ce1a0cd79f9e01821
2018-03-20bridge_softmix: Clear "talking" when a channel is put on holdKevin Harwell
This patch clears the talking flag from the channel (if already set), and notifies listeners when that channel is put on hold. Note however, if the endpoint continues to send audio frames and these are received by the bridge then that channel will be put back into a "talking" state even though they are on hold. ASTERISK-27755 #close Change-Id: I930e16c4662810f9f02043d69062f88173c5e2ef
2018-03-20BuildSystem: For consistency, avoid extra libs to be empty.Alexander Traud
AST_EXT_LIB_CHECK has several optional parameters. When an optional parameter is left empty, [] is used to indicate this. However, this is done in the script ./configure only then, when a further parameter is not empty. For example, when no extra libraries are needed to test the checked library, parameter 5 is not mentioned. Except parameter 6 and higher are used, then parameter 5 must be empty. However, this general rule was broken * four times for parameter 5 (extra libs) and * three times for parameter 4 (header) as found via the Regular Expression \[\]\). In case of parameter 5, all cases were changed, because that happened for no reason. In case of parameter 4, an [] improves readability actually. Therefore for parameter 4, the only case which did not do it was changed. All this aims to create more consistency: Only do something different if there is a reason to do so. Change-Id: I037ef170cf1ad94497151a9ea5071a31c656cafe
2018-03-20Merge "core: Remove additional symbols."Joshua Colp
2018-03-20Merge "core: Remove dead symbols from asterisk.exports.in."Jenkins2
2018-03-20Merge "channel.c: Allow generic plc then channel formats are equal"Jenkins2
2018-03-20Merge "BuildSystem: In NetBSD, the Python Programming Language is python-X.Y."George Joseph
2018-03-20Merge "BuildSystem: Instead of $PJPROJECT_LIBS with s, use $PJPROJECT_LIB ↵Jenkins2
everywhere."
2018-03-20Merge "main/sounds: Use ast_cli_completion_add."Jenkins2
2018-03-20func_channel: Delete dead CHANNEL_TRACE codeIvan Poddubny
The functions behind the flag and the flag itself were removed from Asterisk 12 as incompatible with the new architecture. Change-Id: I058493ef7a53ee290fd225bbcbb07bf46b623ccf
2018-03-20Merge "named_acl: Use ast_cli_completion_add."Joshua Colp
2018-03-20Merge "manager: Use ast_cli_completion_add for completion generators."Joshua Colp
2018-03-20Merge "main/test: Use ast_cli_completion_add."Joshua Colp
2018-03-20Merge "core: Minor cleanup of ast_el_read_char."Jenkins2
2018-03-20Merge "aco: Use ast_cli_completion_add for 'config show help'."Joshua Colp