summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-02-02Frame deferral: Revert API refactoring.Richard Mudgett
There are several issues with deferring frames that are caused by the refactoring. 1) The code deferring frames mishandles adding a deferred frame to the deferred queue. As a result the deferred queue can only be one frame long. 2) Deferrable frames can come directly from the channel driver as well as the read queue. These frames need to be added to the deferred queue. 3) Whoever is deferring frames is really only doing the __ast_read() to collect deferred frames and doesn't care about the returned frames except to detect a hangup event. When frame deferral is completed we must make the normal frame processing see the hangup as a frame anyway. As such, there is no need to have varying hangup frame deferral methods. We also need to be aware of the AST_SOFTHANGUP_ASYNCGOTO hangup that isn't real. That fake hangup is to cause the PBX thread to break out of loops to go execute a new dialplan location. 4) To properly deal with deferrable frames from the channel driver as pointed out by (2) above, means that it is possible to process a dialplan interception routine while frames are deferred because of the AST_CONTROL_READ_ACTION control frame. Deferring frames is not implemented as a re-entrant operation so you could have the unsupported case of two sections of code thinking they have control of the media stream. A worse problem is because of the bad implementation of the AMI PlayDTMF action. It can cause two threads to be deferring frames on the same channel at the same time. (ASTERISK_25940) * Rather than fix all these problems simply revert the API refactoring as there is going to be only autoservice and safe_sleep deferring frames anyway. ASTERISK-26343 ASTERISK-26716 #close Change-Id: I45069c779aa3a35b6c863f65245a6df2c7865496
2017-02-02Merge "audiohooks: Muting a hook can mute underlying frames"zuul
2017-02-02Merge "res_pjsip: Handle invocation of callback on outgoing request when ↵zuul
error occurs."
2017-02-01res_resolver_unbound.c: Fix frequent ref leak caught by excessive ref trap.Richard Mudgett
ASTERISK-26765 Change-Id: I27eb97df7f8d7e624b0b9a61c0fcee4718c86d8d
2017-02-01audiohooks: Muting a hook can mute underlying framesSean Bright
If an audiohook is placed on a channel that does not require transcoding, muting that hook will cause the underlying frames to be muted as well. The original patch is from David Woolley but I have modified slightly. ASTERISK-21094 #close Reported by: David Woolley Patches: ASTERISK-21094-Patch-1.8-1.txt (license #5737) patch uploaded by David Woolley Change-Id: Ib2b68c6283e227cbeb5fa478b2d0f625dae338ed
2017-02-01Merge "res_rtp_asterisk: Swap byte-order when sending signed linear"Joshua Colp
2017-02-01res_pjsip: Handle invocation of callback on outgoing request when error occurs.Joshua Colp
There are some error cases in PJSIP when sending a request that will result in the callback for the request being invoked. The code did not handle this case and assumed on every error case that the callback was not invoked. The code has been changed to check whether the callback has been invoked and if so to absorb the error and treat it as a success. ASTERISK-26679 ASTERISK-26699 Change-Id: I563982ba204da5aa1428989a11c06dd9087fea91
2017-02-01res_rtp_asterisk: Swap byte-order when sending signed linearSean Bright
Before Asterisk 13, signed linear was converted into network byte order by a smoother before being sent over the network. We restore this behavior by forcing the creation of a smoother when slinear is in use and setting the appropriate flags so that the byte order conversion is always done. ASTERISK-24858 #close Reported-by: Frankie Chin Change-Id: I868449617d1a7819578f218c8c6b2111ad84f5a9
2017-01-31debug_utilities: Install ast_logescalator to /var/lib/asterisk/scriptsGeorge Joseph
Forgot to install it with the original patch Change-Id: I8bdb540a6694971ae5fe21f48d532332c6482e4c
2017-01-31Merge "make_build_h: handle backslashes in external strings"zuul
2017-01-30Merge "app_queue: Fix queues randomly disappearing on reload"zuul
2017-01-29Merge "debug_utilities: Add ast_logescalator"zuul
2017-01-27Merge "libastssl/pj: libastssl/pj should have an so_version"zuul
2017-01-27debug_utilities: Add ast_logescalatorGeorge Joseph
The escalator works by creating a set of startup commands in cli.conf that set up logger channels and issue the debug commands for the subsystems specified. If asterisk is running when it is executed, the same commands will be issued to the running instance. The original cli.conf is saved before any changes are made and can be restored by executing '$prog --reset'. The log output will be stored in... $astlogdir/message.$uniqueid $astlogdir/debug.$uniqueid $astlogdir/dtmf.$uniqueid $astlogdir/fax.$uniqueid $astlogdir/security.$uniqueid $astlogdir/pjsip_history.$uniqueid $astlogdir/sip_history.$uniqueid Some minor tweaks were made to chan_sip, and res_pjsip_history so their history output could be send to a log channel as packets are captured. A minor tweak was also made to manager so events are output to verbose when "manager set debug on" is issued. Change-Id: I799f8e5013b86dc5282961b27383d134bf09e543
2017-01-27Merge "tests: use datadir for sound files"zuul
2017-01-27libastssl/pj: libastssl/pj should have an so_versionTorrey Searle
Issue introduced in b59956a87. In the non-darwin case libastssl/pj should be versioned. This causes the symbol file for this lib to not be generated. Change-Id: Ib07ae8c40252813c488e2c1ac6204fd42816dd4c (cherry picked from commit 54b027916a71f2b83b2050cef5ef704ea5de39b2)
2017-01-27Merge "media: Add experimental support for RTCP feedback."George Joseph
2017-01-26Merge "res_pjsip_endpoint_identifier_ip: Fix memory leak of hosts when ↵zuul
resolving."
2017-01-26make_build_h: handle backslashes in external stringskkm
LikewiseOpen creates user names with a backslash in them. A gentle massage with sed(1) allows such strings to be inserted into build.h properly quoted. I am also adding the same for host name and other strings used in the script that are more or less user-controlled. ASTERISK-26754 Change-Id: Iac5ef2b67a68ee58f35ddbf86bb818ba6eabecae
2017-01-26app_queue: Fix queues randomly disappearing on reloadkkm
With 500+ queues and a reload every minute, a random queue disappears upon reload. The cause is mususe of the 'dead' flag. Namely, all queues were marked dead up front, and then "resurrected" by dropping this flag for those found in the configuration. But a queue marked dead can be removed also when control leaves the app entry point on a PBX thread. With this change, the queue is marked only not found, and at the end of reload only the queues that are still not found are actually marked as dead, so the dead flag is never reset, and set only on positively dead queues. ASTERISK-26755 Change-Id: I3a4537aec9eb8d8aeeaa0193407e3523feb004bf
2017-01-26Merge "PJPROJECT logging: Fix detection of max supported log level."zuul
2017-01-26Merge "ari: Implement 'debug all' and request/response logging"George Joseph
2017-01-26Merge "res_musiconhold.c: Fix format ref leak when parsing MOH config class."George Joseph
2017-01-26Merge "frame.c: Fix off-nominal format ref leaks."George Joseph
2017-01-26Merge "test_voicemail_api: order of params to VERIFY macros"George Joseph
2017-01-26Merge "Add notes about embedded ast_frame structs holding a format ref."zuul
2017-01-26res_pjsip_endpoint_identifier_ip: Fix memory leak of hosts when resolving.Joshua Colp
This change adds a missing unreference of the hostname when resolving and also cleans up the iterator. ASTERISK-26735 Change-Id: Ic012ebaf3d89e714eec340b7b0c5e63c66af857a
2017-01-26Merge "T.140: Fix format ref and memory leaks."George Joseph
2017-01-26Merge "main/app.c: Memory corruption from early format destruction."Joshua Colp
2017-01-25Merge "app_queue: add RINGCANCELED log event on caller hang up"zuul
2017-01-25Merge "astobj2.c: Add excessive ref count trap."George Joseph
2017-01-25T.140: Fix format ref and memory leaks.Richard Mudgett
* channel.c:ast_sendtext(): Fix T.140 SendText memory leak. * format_compatibility.c: T.140 RED and T.140 were swapped. * res_rtp_asterisk.c:rtp_red_init(): Fix ast_format_t140_red ref leak. * res_rtp_asterisk.c:rtp_red_init(): Fix data race after starting periodic scheduled red_write(). * res_rtp_asterisk.c: Some other minor misc tweaks. Change-Id: Ifa27a2e0f8a966b1cf628607c86fc4374b0b88cb
2017-01-25Merge "stasis_bridge.c: Fix off-nominal stasis control ref leak."zuul
2017-01-25Merge "res_pjsip_endpoint_identifier_ip: Ensure error defaults to 0."George Joseph
2017-01-25Merge "chan_oss.c: Fix format ref leak in oss_read()."George Joseph
2017-01-24Merge "pjproject_bundled: Fix setting max log level"George Joseph
2017-01-24Merge "res_pjsip_pubsub.c: Implement "pjsip show subscriptions" commands."George Joseph
2017-01-24res_pjsip_endpoint_identifier_ip: Ensure error defaults to 0.Joshua Colp
When configuring a match using a netmask the error variable was not defaulting to 0. For some people this would cause the code to think an error occurred when adding the match when in reality it added perfectly fine. ASTERISK-26693 Change-Id: I850c250813742bddde65c84e739093c9e01dfe56
2017-01-24astobj2.c: Add excessive ref count trap.Richard Mudgett
Change-Id: I32e6a589cf9009450e4ff7cb85c07c9d9ef7fe4a
2017-01-24main/app.c: Memory corruption from early format destruction.Richard Mudgett
* make_silence() created a malloced silence slin frame without adding a slin format ref. When the frame is destroyed it will unref the slin format that never had a ref added. Memory corruption is expected to follow. * Simplified and fixed counting the number of samples in a frame list for make_silence(). * Eliminated an unnecessary RAII_VAR associated with the make_silence() frame. Change-Id: I47de3f9b92635b7f8b4d72309444d6c0aee6f747
2017-01-24frame.c: Fix off-nominal format ref leaks.Richard Mudgett
* ast_frisolate() could leak frame format refs on allocation failures. * Similified code in ast_frisolate() and code used by ast_frisolate(). Change-Id: I79566d4d36b3d7801bf0c8294fcd3e9a86a2ed6d
2017-01-24stasis_bridge.c: Fix off-nominal stasis control ref leak.Richard Mudgett
Change-Id: Ib17218343a6596832060180e19386da9df150ac8
2017-01-24res_musiconhold.c: Fix format ref leak when parsing MOH config class.Richard Mudgett
Change-Id: Ica8e8e2ce7604c2c61ec55bef07dc675361d2ea5
2017-01-24chan_oss.c: Fix format ref leak in oss_read().Richard Mudgett
Change-Id: I0a5d56c7dcf327d60f86a4c25a23571733709fd0
2017-01-24Add notes about embedded ast_frame structs holding a format ref.Richard Mudgett
mod_format.h: Note ast_filestream.fr holds a format ref. translate.h: Note ast_trans_pvt.f holds a format ref. Change-Id: I86bda354d725207b41e08920355d7c31b2d7f749
2017-01-24Merge "Free endpoint ACLs when destroying PJSIP endpoints."Joshua Colp
2017-01-24PJPROJECT logging: Fix detection of max supported log level.Richard Mudgett
The mechanism used for detecting the maximum log level compiled into the linked pjproject did not work. The API call simply stores the requested level into an integer and does no range checking. Asterisk was assuming that there was range checking and limited the new value to the allowable range. To get the actual maximum log level compiled into the linked pjproject we need to get and save off the initial set log level from pjproject. This is the maximum log level supported. * Get and save off the initial log level setting before altering it to the desired level on startup. This has to be done by a macro rather than calling a core function to avoid incorrectly linking pjproject. * Split the initial log level warning messages to warn if the linked pjproject cannot support the requested startup level and if it is too low to get the pjproject buildopts for "pjproject show buildopts". * Adjust the CLI "pjproject set log level" to check the saved max log level and to generate normal output messages instead of a warning message. ASTERISK-26743 #close Change-Id: I40aa76653e2a1dece66c3f8734594b4f0471cfb4
2017-01-24Merge "res_pjsip_endpoint_identifier_ip: Read settings before resolving."George Joseph
2017-01-23res_pjsip_pubsub.c: Implement "pjsip show subscriptions" commands.Richard Mudgett
ASTERISK-23828 #close Change-Id: Ifb8a3b61f447aedc58a8e6b36a810f7566018567
2017-01-23Free endpoint ACLs when destroying PJSIP endpoints.Mark Michelson
If endpoint ACLs were specified, they were not being freed when endpoints were destroyed. On systems with realtime endpoints, this could add up quickly since each DB lookup would allocate the ACL without freeing it. ASTERISK-26731 #close Reported by Ustinov Artem Change-Id: Ie1f8bf5b7a0de628c975beba01e69c56893331ad