aboutsummaryrefslogtreecommitdiffstats
path: root/funcs
AgeCommit message (Collapse)AuthorFilesLines
2010-05-07Double free crashtilghman1-0/+3
(closes issue #17245) Reported by: thedavidfactor Patches: 20100426__issue17245.diff.txt uploaded by tilghman (license 14) Tested by: murraytm git-svn-id: http://svn.digium.com/svn/asterisk/trunk@261917 f38db490-d61c-443f-a65b-d21fe96a405b
2010-04-21Add small documentation update to func_callcompletion.c.mmichelson1-1/+4
This directs users to documents which can help explain the concepts and configuration options settable with the function. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@258345 f38db490-d61c-443f-a65b-d21fe96a405b
2010-04-19Commit compromise I suggested on review 608.mmichelson1-0/+14
This allows for multiple SRV queries to be done from the dialplan for the same service on a single call while still allowing one to bypass the call to SRVQUERY if they so please. Taking action since no comments had been left for a while. This can easily be reverted if needed. External tests still pass. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@257851 f38db490-d61c-443f-a65b-d21fe96a405b
2010-04-13Address Russell's comments on func_srv from reviewboard.mmichelson1-7/+14
* Change copyright date * Place channel in autoservice when doing SRV lookup * Get rid of trailing whitespace * Change logic in load_module function git-svn-id: http://svn.digium.com/svn/asterisk/trunk@257025 f38db490-d61c-443f-a65b-d21fe96a405b
2010-04-09Fix some compiler errors that popped up after the CCSS merge.mmichelson1-0/+2
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@256529 f38db490-d61c-443f-a65b-d21fe96a405b
2010-04-09Merge Call completion support into trunk.mmichelson1-0/+114
From Reviewboard: CCSS stands for Call Completion Supplementary Services. An admittedly out-of-date overview of the architecture can be found in the file doc/CCSS_architecture.pdf in the CCSS branch. Off the top of my head, the big differences between what is implemented and what is in the document are as follows: 1. We did not end up modifying the Hangup application at all. 2. The document states that a single call completion monitor may be used across multiple calls to the same device. This proved to not be such a good idea when implementing protocol-specific monitors, and so we ended up using one monitor per-device per-call. 3. There are some configuration options which were conceived after the document was written. These are documented in the ccss.conf.sample that is on this review request. For some basic understanding of terminology used throughout this code, see the ccss.tex document that is on this review. This implements CCBS and CCNR in several flavors. First up is a "generic" implementation, which can work over any channel technology provided that the channel technology can accurately report device state. Call completion is requested using the dialplan application CallCompletionRequest and can be canceled using CallCompletionCancel. Device state subscriptions are used in order to monitor the state of called parties. Next, there is a SIP-specific implementation of call completion. This method uses the methods outlined in draft-ietf-bliss-call-completion-06 to implement call completion using SIP signaling. There are a few things to note here: * The agent/monitor terminology used throughout Asterisk sometimes is the reverse of what is defined in the referenced draft. * Implementation of the draft required support for SIP PUBLISH. I attempted to write this in a generic-enough fashion such that if someone were to want to write PUBLISH support for other event packages, such as dialog-state or presence, most of the effort would be in writing callbacks specific to the event package. * A subportion of supporting PUBLISH reception was that we had to implement a PIDF parser. The PIDF support added is a bit minimal. I first wrote a validation routine to ensure that the PIDF document is formatted properly. The rest of the PIDF reading is done in-line in the call-completion-specific PUBLISH-handling code. In other words, while there is PIDF support here, it is not in any state where it could easily be applied to other event packages as is. Finally, there are a variety of ISDN-related call completion protocols supported. These were written by Richard Mudgett, and as such I can't really say much about their implementation. There are notes in the CHANGES file that indicate the ISDN protocols over which call completion is supported. Review: https://reviewboard.asterisk.org/r/523 git-svn-id: http://svn.digium.com/svn/asterisk/trunk@256528 f38db490-d61c-443f-a65b-d21fe96a405b
2010-04-09func_srv and explicit specification of a remote IP for SIP.mmichelson1-0/+254
From Review Board: There are two interrelated changes here. First, there is the introduction of func_srv. This adds two new read-only dialplan functions, SRVQUERY and SRVRESULT. They work very similarly to the ENUMQUERY and ENUMRESULT functions, except that this allows one to query SRV records instead. In order to facilitate this work, I added a couple of new API calls to srv.h. ast_srv_get_record_count tells the number of records returned by an SRV lookup. This number is calculated at the time of the SRV lookup. ast_srv_get_nth_record allows one to get a numbered SRV record. Second, there is the modification to chan_sip that allows one to specify a hostname or IP address (along with a port) to send an outgoing INVITE to when dialing a SIP peer. This goes hand-in-hand with func_srv. You can query SRV records and then use the host and port from the results to dial via a specific host instead of what is configured in sip.conf. Review: https://reviewboard.asterisk.org/r/608 SWP-1200 git-svn-id: http://svn.digium.com/svn/asterisk/trunk@256485 f38db490-d61c-443f-a65b-d21fe96a405b
2010-04-03Consolidate ast_channel.cid.cid_rdnis into ast_channel.redirecting.from.number.rmudgett2-11/+5
SWP-1229 ABE-2161 * Ensure chan_local.c:local_call() will not leak cid.cid_dnid when copying. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@256104 f38db490-d61c-443f-a65b-d21fe96a405b
2010-03-20Fix memory corruption found by unit tests.russell1-1/+1
ast_str_reset() was being called on a potentially uninitialized pointer. Valgrind is my hero, once again. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@253579 f38db490-d61c-443f-a65b-d21fe96a405b
2010-03-10Hmmm, apparently needed to be fixed in trunk, too.tilghman1-1/+1
(closes issue #16900) Reported by: bluecrow76 Patches: asterisk-1.6.2.4-func_strings.diff uploaded by bluecrow76 (license 270) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@251682 f38db490-d61c-443f-a65b-d21fe96a405b
2010-03-10It's amazing what writing a test will find.tilghman1-1/+1
(issue #16900) Reported by: bluecrow76 git-svn-id: http://svn.digium.com/svn/asterisk/trunk@251677 f38db490-d61c-443f-a65b-d21fe96a405b
2010-03-08Change needed to make Mac OS X 10.6 happytilghman1-0/+2
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@251262 f38db490-d61c-443f-a65b-d21fe96a405b
2010-03-05fixes xml error in func_pitchshiftdvossel1-0/+1
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@251087 f38db490-d61c-443f-a65b-d21fe96a405b
2010-03-05PITCH_SHIFT dialplan functiondvossel1-0/+503
The PITCH_SHIFT function can be used on a channel to independently modify the pitch of both rx and tx audio streams. Now you can improve your conference calls by assigning a random pitch effect to everyone entering a meetme room, or just make your day more interesting by making your co-workers sound funny. These are just some of the numerious practical uses for this function. Enjoy! https://reviewboard.asterisk.org/r/526/ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@251038 f38db490-d61c-443f-a65b-d21fe96a405b
2010-03-04Adjust XML for func_channel to indicate that rtpdest can take a "text" argument.mmichelson1-0/+1
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@250730 f38db490-d61c-443f-a65b-d21fe96a405b
2010-02-24Remove unnecessary warning message, make a couple of formatting tweaksrussell1-3/+2
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@248534 f38db490-d61c-443f-a65b-d21fe96a405b
2010-02-17Add support for GROUP_MATCH_COUNT regex matching on categoryjpeeler1-2/+3
Current support for regex matching was previously only available on the group. Also, error reporting for regex failures has been added. In addition to this feature enhancement a unit test has been written to check the regular expression logic to ensure the count operation is working as expected. (closes issue #16642) Reported by: kobaz Patches: groupmatch2.patch uploaded by kobaz (license 834) Review: https://reviewboard.asterisk.org/r/503/ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@247295 f38db490-d61c-443f-a65b-d21fe96a405b
2010-02-10Fussy compiler on another machine...tilghman1-1/+1
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@246204 f38db490-d61c-443f-a65b-d21fe96a405b
2010-02-10Fix weird issue with unit tests on optimized build - turned out to be a ↵tilghman1-6/+7
signing issue. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@246200 f38db490-d61c-443f-a65b-d21fe96a405b
2010-02-10Enable warnings on atypical conditions for the FILTER function (suggested by ↵tilghman1-0/+8
mmichelson on the -dev list). git-svn-id: http://svn.digium.com/svn/asterisk/trunk@246022 f38db490-d61c-443f-a65b-d21fe96a405b
2010-02-10Merged revisions 245944 via svnmerge from tilghman1-6/+54
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r245944 | tilghman | 2010-02-10 07:37:13 -0600 (Wed, 10 Feb 2010) | 2 lines Include examples of FILTER usage in extension patterns where a "." may be a risk. ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@245945 f38db490-d61c-443f-a65b-d21fe96a405b
2010-02-09Various updates to the unit test API.russell1-4/+5
1) It occurred to me that the difference in usage between the error ast_str and the ast_test_update_status() usage has turned out to be a bit ambiguous in practice. In a lot of cases, the same message was being sent to both. In other cases, it was only sent to one or the other. My opinion now is that in every case, I think it makes sense to do both; we should output it to the CLI as well as save it off for logging purposes. This change results in most of the changes in this diff, since it required changes to all existing unit tests. It also allowed for some simplifications of unit test API implementation code. 2) Update ast_test_status_update() to include the file, function, and line number for the code providing the update. 3) There are some formatting tweaks here and there. Hopefully they aren't too distracting for code review purposes. Reviewboard's diff viewer seems to do a pretty good job of pointing out when something is a whitespace change. 4) I moved the md5_test and sha1_test into the test_utils module. It seemed like a better approach since these tests are so tiny. 5) I changed the number of nodes used in heap_test_2 from 1 million to 100 thousand. The only reason for this was to reduce the time it took for this test to run. 6) Remove an unused function prototype that was at the bottom of utils.h. 7) Simplify test_insert() using the LIST_INSERT_SORTALPHA() macro. The one minor difference in behavior is that it no longer checks for a test registered with the same name. 8) Expand the code in test_alloc() to provide specific error messages for each failure case, to clearly inform developers if they forget to set the name, summary, description, etc. 9) Tweak the output of the "test show registered" CLI command. I swapped the name and category to have the category first. It seemed more natural since that is the sort key. 10) Don't output the status ast_str in the "test show results" CLI command. This is going to tend to be pretty verbose, so just leave that for the detailed test logs (test generate results). Review: https://reviewboard.asterisk.org/r/493/ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@245864 f38db490-d61c-443f-a65b-d21fe96a405b
2010-02-02Correct some off-by-one errors, especially when expressions don't contain ↵tilghman1-9/+61
expected spaces. Also include the tests provided by the reporter, as regression tests. (closes issue #16667) Reported by: wdoekes Patches: astsvn-func_match-off-by-one.diff uploaded by wdoekes (license 717) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@244331 f38db490-d61c-443f-a65b-d21fe96a405b
2010-01-27Fix the ability to specify an OSP token for an outbound IAX2 call.russell1-3/+0
When this patch was originally submitted, the code allowed for the token to be set via a channel variable. I decided that a cleaner approach would be to integrate it into the CHANNEL() function. Unfortunately, that is not a suitable approach. It's not possible to get the value set on the channel soon enough using that method. So, go back to the simple channel variable method. (closes issue #16711) Reported by: homesick Patches: iax-svn.diff uploaded by homesick (license 91) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@243482 f38db490-d61c-443f-a65b-d21fe96a405b
2010-01-26Update func_aes to its pre-ast_str_substitution state.russell1-62/+16
This change makes the AES tests in test_substitution.c pass. We still need to work through what's going wrong in the ast_str version. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@243118 f38db490-d61c-443f-a65b-d21fe96a405b
2010-01-21Merged revisions 241765 via svnmerge from tilghman1-1/+5
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r241765 | tilghman | 2010-01-20 23:53:17 -0600 (Wed, 20 Jan 2010) | 2 lines Guard against division by zero. ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@241766 f38db490-d61c-443f-a65b-d21fe96a405b
2010-01-18Make HASHes inheritable across channel creation.tilghman1-2/+19
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@241012 f38db490-d61c-443f-a65b-d21fe96a405b
2010-01-06Merged revisions 238230 via svnmerge from tilghman1-5/+8
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r238230 | tilghman | 2010-01-06 15:41:55 -0600 (Wed, 06 Jan 2010) | 4 lines Revise documentation on disposition values to the actual values used. (closes issue #16289) Reported by: wdoekes ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@238231 f38db490-d61c-443f-a65b-d21fe96a405b
2009-12-02Merged revisions 232268 via svnmerge from dvossel1-0/+4
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r232268 | dvossel | 2009-12-02 09:41:36 -0600 (Wed, 02 Dec 2009) | 9 lines fixes segfault in func_groupcount closes issue #16337) Reported by: Parantido Patches: issue_16337.diff uploaded by dvossel (license 671) Tested by: Parantido, dvossel ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@232269 f38db490-d61c-443f-a65b-d21fe96a405b
2009-12-01Fix a build error on FreeBSD.russell1-1/+1
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@232012 f38db490-d61c-443f-a65b-d21fe96a405b
2009-11-24Add REPLACE & PASSTHRU functions, overhaul of func_strings, fix API docs for ↵tilghman1-78/+183
the ast_get_encoded_* functions. * Add REPLACE function, which searches a given variable for a set of characters and replaces each with a given character. * Add PASSTHRU function, which passes a literal string back, like a NoOp for functions. Intent is to be able to specify a literal string to another function that takes a variable name as an argument. * Let the array manipulation functions work with dialplan functions, in addition to variables. This allows the array manipulation functions to modify ASTDB and ODBC backends, assuming the func_odbc configuration has both read and write functions. (closes issue #15223) Reported by: ajohnson Patches: 20091112__issue15223.diff.txt uploaded by tilghman (license 14) Tested by: lmadsen, tilghman git-svn-id: http://svn.digium.com/svn/asterisk/trunk@230994 f38db490-d61c-443f-a65b-d21fe96a405b
2009-11-12Merged revisions 229669 via svnmerge from dvossel1-1/+2
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r229669 | dvossel | 2009-11-12 10:41:49 -0600 (Thu, 12 Nov 2009) | 6 lines fixes merging error, datastore was being freed in the wrong function. (closes issue #16219) Reported by: aragon ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@229670 f38db490-d61c-443f-a65b-d21fe96a405b
2009-11-06Merged revisions 228378 via svnmerge from mnicholson1-2/+15
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r228378 | mnicholson | 2009-11-06 10:26:59 -0600 (Fri, 06 Nov 2009) | 8 lines Properly handle '=' while decoding base64 messages and null terminate strings returned from BASE64_DECODE. (closes issue #15271) Reported by: chappell Patches: base64_fix.patch uploaded by chappell (license 8) Tested by: kobaz ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@228620 f38db490-d61c-443f-a65b-d21fe96a405b
2009-11-06fixes memory leak in func_audiohookinherit.cdvossel1-0/+1
(closes issue #15394) Reported by: boroda Patches: bug15394_memoryleak_diff2.txt uploaded by dbrooks (license 790) Tested by: dbrooks, boroda git-svn-id: http://svn.digium.com/svn/asterisk/trunk@228268 f38db490-d61c-443f-a65b-d21fe96a405b
2009-11-05Fix XML in func_cdr.cmmichelson1-1/+1
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@228233 f38db490-d61c-443f-a65b-d21fe96a405b
2009-11-04Expand codec bitfield from 32 bits to 64 bits.tilghman1-2/+2
Reviewboard: https://reviewboard.asterisk.org/r/416/ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@227580 f38db490-d61c-443f-a65b-d21fe96a405b
2009-11-03This patch adds a sequence field to CDRs that can be combined with the ↵mnicholson1-0/+3
linkedid or uniqueid field to uniquely identify a CDR. (closes issue #15180) Reported by: Nick_Lewis Patches: cdr-sequence10.diff uploaded by mnicholson (license 96) Tested by: mnicholson git-svn-id: http://svn.digium.com/svn/asterisk/trunk@227435 f38db490-d61c-443f-a65b-d21fe96a405b
2009-11-03Adding some clarifications to func_speex doxygen docs.oej1-1/+2
The functions needed doesn't exist in Speex 1.05 which is what a lot of distros use. 1.2 seems to have been in beta status for years, and does include the sexy functions needed for func_speex to work. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@227237 f38db490-d61c-443f-a65b-d21fe96a405b
2009-10-22Add support for calling and called subaddress. Partial support for COLP ↵rmudgett2-6/+109
subaddress. The Telecom Specs in NZ suggests that SUB ADDRESS is always on, so doing "desk to desk" between offices each with an asterisk box over the ISDN should then be possible, without a whole load of DDI numbers required. (closes issue #15604) Reported by: alecdavis Patches: asterisk_subaddr_trunk.diff11.txt uploaded by alecdavis (license 585) Some minor modificatons were made. Tested by: alecdavis, rmudgett Review: https://reviewboard.asterisk.org/r/405/ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@225357 f38db490-d61c-443f-a65b-d21fe96a405b
2009-10-21Finish implementaton of astobj2 OBJ_MULTIPLE, and convert ↵kpfleming1-1/+1
ast_channel_iterator to use it. This patch finishes the implementation of OBJ_MULTIPLE in astobj2 (the case where multiple results need to be returned; OBJ_NODATA mode already was supported). In addition, it converts ast_channel_iterators (only the targeted versions, not the ones that iterate over all channels) to use this method. During this work, I removed the 'ao2_flags' arguments to the ast_channel_iterator constructor functions; there were no uses of that argument yet, there is only one possible flag to pass, and it made the iterators less 'opaque'. If at some point in the future someone really needs an ast_channel_iterator that does not lock the container, we can provide constructor(s) for that purpose. Review: https://reviewboard.asterisk.org/r/379/ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@225244 f38db490-d61c-443f-a65b-d21fe96a405b
2009-10-20Merged revisions 224855 via svnmerge from tilghman1-8/+13
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r224855 | tilghman | 2009-10-20 17:07:11 -0500 (Tue, 20 Oct 2009) | 5 lines Pay attention to the return value of the manipulate function. While this looks like an optimization, it prevents a crash from occurring when used with certain audiohook callbacks (diagnosed with SVN trunk, backported to 1.4 to keep the source consistent across versions). ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@224856 f38db490-d61c-443f-a65b-d21fe96a405b
2009-10-06Recorded merge of revisions 222152 via svnmerge from kpfleming1-0/+1
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r222152 | kpfleming | 2009-10-05 20:16:36 -0500 (Mon, 05 Oct 2009) | 20 lines Fix ao2_iterator API to hold references to containers being iterated. See Mantis issue for details of what prompted this change. Additional notes: This patch changes the ao2_iterator API in two ways: F_AO2I_DONTLOCK has become an enum instead of a macro, with a name that fits our naming policy; also, it is now necessary to call ao2_iterator_destroy() on any iterator that has been created. Currently this only releases the reference to the container being iterated, but in the future this could also release other resources used by the iterator, if the iterator implementation changes to use additional resources. (closes issue #15987) Reported by: kpfleming Review: https://reviewboard.asterisk.org/r/383/ ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@222176 f38db490-d61c-443f-a65b-d21fe96a405b
2009-09-30Merged revisions 221153,221157,221303 via svnmerge from mnick1-3/+56
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r221153 | mnick | 2009-09-30 10:37:39 -0500 (Wed, 30 Sep 2009) | 2 lines check bounds - prevents for buffer overflow ........ r221157 | mnick | 2009-09-30 10:41:46 -0500 (Wed, 30 Sep 2009) | 8 lines added a new dialplan function 'CSV_QUOTE' and changed the cdr_custom.sample.conf (closes issue #15471) Reported by: dkerr Patches: csv_quote_14.txt uploaded by mnick (license ) Tested by: mnick ........ r221303 | mnick | 2009-09-30 14:02:00 -0500 (Wed, 30 Sep 2009) | 2 lines changed the prototype definition of csv_quote ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@221368 f38db490-d61c-443f-a65b-d21fe96a405b
2009-09-30Allow locks to be inherited through a masquerade without causing starvation.tilghman1-48/+160
(closes issue #14859) Reported by: atis Patches: 20090821__issue14859.diff.txt uploaded by tilghman (license 14) 20090925__issue14859__1.6.1.diff.txt uploaded by tilghman (license 14) Tested by: atis, tilghman git-svn-id: http://svn.digium.com/svn/asterisk/trunk@221044 f38db490-d61c-443f-a65b-d21fe96a405b
2009-09-27add name argument for the CALLERID dialplan function to the xml documentation.mvanbaak1-1/+2
Pointed out to me on IRC by snuff-home. Thanks git-svn-id: http://svn.digium.com/svn/asterisk/trunk@220629 f38db490-d61c-443f-a65b-d21fe96a405b
2009-09-07Allow multiple rows to be fetched within the normal mode of operation.tilghman1-5/+46
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@216846 f38db490-d61c-443f-a65b-d21fe96a405b
2009-09-01Add MASTER_CHANNEL() dialplan function, as well as a useful usage.tilghman1-4/+45
(closes issue #13140) Reported by: cpina Patches: 20090807__issue13140.diff.txt uploaded by tilghman (license 14) Tested by: lmadsen Change-type: feature git-svn-id: http://svn.digium.com/svn/asterisk/trunk@215301 f38db490-d61c-443f-a65b-d21fe96a405b
2009-08-31By copying this code I got bad comments in reviewboard... Better fix the ↵oej1-1/+1
original. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@215023 f38db490-d61c-443f-a65b-d21fe96a405b
2009-08-14Add SSL_VERIFYPEER, as requested on the -users listtilghman1-16/+20
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@212249 f38db490-d61c-443f-a65b-d21fe96a405b
2009-08-10AST-2009-005tilghman10-20/+20
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@211539 f38db490-d61c-443f-a65b-d21fe96a405b