- Apr 14, 2022
-
-
Ben Ford authored
Put checks in place to limit how much we will actually download, as well as a check for the data we receive at the start to ensure it begins with what we would expect a certificate to begin with. ASTERISK-29872 Change-Id: Ifd3c6b8bd52b8b6192a04166ccce4fc8a8000b46
-
Joshua C. Colp authored
Some databases depending on their configuration using backslashes for escaping. When combined with the use of ' this can result in a broken func_odbc query. This change adds a SQL_ESC_BACKSLASHES dialplan function which can be used to escape the backslashes. This is done as a dialplan function instead of being always done as some databases do not require this, and always doing it would result in incorrect data being put into the database. ASTERISK-29838 Change-Id: I152bf34899b96ddb09cca3e767254d8d78f0c83d
-
- Mar 29, 2022
-
-
George Joseph authored
get_sourceable_makeopts wasn't handling variables with embedded double quotes in them very well. One example was the DOWNLOAD variable when curl was being used instead of wget. Rather than trying to fix get_sourceable_makeopts, it's just been removed. ASTERISK-29986 Reported by: Stefan Ruijsenaars Change-Id: Idf2a90902228c2558daa5be7a4f8327556099cd2
- Mar 28, 2022
-
-
George Joseph authored
make_xml_documentation was being called with the --validate flag set when it shouldn't have been. This was causing build failures if neither xmllint nor xmlstarlet were installed. The correct behavior is to simply print a message that either one of those tools should be installed for validation and continue with the build. ASTERISK-29988 Change-Id: Idc6c44114e7dd3fadae183a4e22f4fdba0b8a645
-
- Mar 24, 2022
-
- Mar 17, 2022
-
-
Asterisk Development Team authored
-
Ben Ford authored
Change-Id: Ic15cfca9e68efd06a1b12ab2335d52a5890e7170
- Mar 14, 2022
-
-
Boris P. Korzun authored
Omit "unsupported column type 'text'" warning in logs while using text-type column in the PgSQL backend. ASTERISK-29924 #close Change-Id: I48061a7d469426859670db07f1ed8af1eb814712
-
- Mar 11, 2022
-
-
Kfir Itzhak authored
This adds a new AMI action called QueueWithdrawCaller. This AMI action makes it possible to withdraw a caller from a queue, in a safe and a generic manner. This can be useful for retrieving a specific call and dispatching it to a specific extension. It works by signaling the caller to exit the queue application whenever it can. Therefore, it is not guaranteed that the call will leave the queue. ASTERISK-29909 #close Change-Id: Ic15aa238e23b2884abdcaadff2fda7679e29b7ec
-
- Mar 10, 2022
-
-
Alexei Gradinari authored
This patch makes the Resource List Subscriptions (RLS) dynamic. The asterisk updates the current subscriptions to reflect the changes to the list on the subscriptions refresh. If list items are added, removed, updated or do not exist anymore, the asterisk regenerates the resource list. ASTERISK-29906 #close Change-Id: Icee8c00459a7aaa43c643d77ce6f16fb7ab037d3
-
- Mar 04, 2022
-
-
Kevin Harwell authored
ASTERISK-29945 #close Change-Id: Ic58957afc453195d53c2bd25c905df3d91d1abe6
-
Kevin Harwell authored
ASTERISK-29945 #close Change-Id: Ia8ce6d82b115c82c1138747c72a0adcaa42b718c
-
Kevin Harwell authored
ASTERISK-29945 #close Change-Id: I721cd254e4f8aa6d3a97a37529cca53519694c54
-
- Mar 03, 2022
-
-
George Joseph authored
Added functions to open, close, and apply XML Stylesheets to XML documents. Although the presence of libxslt was already being checked by configure, it was only happening if xmldoc was enabled. Now it's checked regardless. Added ability to parse a string consisting of comma separated name/value pairs into an ast_variable list. The reverse of ast_variable_list_join(). Change-Id: I1e1d149be22165a1fb8e88e2903a36bba1a6cf2e
-
- Mar 01, 2022
-
-
George Joseph authored
Added the missing xml-stylesheet and Xinclude namespace declarations in pjsip_config.xml and pjsip_manager.xml. Updated make_xml_documentation to show detailed errors when xmlstarlet is the validator. It's now run once with the '-q' option to suppress harmless/expected messages and if it actually fails, it's run again without '-q' but with '-e' to show the actual errors. Change-Id: I4bdc9d2ea6741e8d2e5eb82df60c68ccc59e1f5e
-
- Feb 28, 2022
-
-
George Joseph authored
Added: Replace a variable in a list: int ast_variable_list_replace_variable(struct ast_variable **head, struct ast_variable *old, struct ast_variable *new); Added test as well. Create a "name=value" string from a variable list: 'name1="val1",name2="val2"', etc. struct ast_str *ast_variable_list_join( const struct ast_variable *head, const char *item_separator, const char *name_value_separator, const char *quote_char, struct ast_str **str); Added test as well. Allow the name of an XML element to be changed. void ast_xml_set_name(struct ast_xml_node *node, const char *name); Change-Id: I330a5f63dc0c218e0d8dfc0745948d2812141ccb
-
George Joseph authored
Moved the xmldoc build logic from the top-level Makefile into its own script "make_xml_documentation" in the build_tools directory. Created a new utility script "get_sourceable_makeopts", also in the build_tools directory, that dumps the top-level "makeopts" file in a format that can be "sourced" from shell sscripts. This allows scripts to easily get the values of common make build variables such as the location of the GREP, SED, AWK, etc. utilities as well as the AST* and library *_LIB and *_INCLUDE variables. Besides moving logic out of the Makefile, some optimizations were done like removing "third-party" from the list of subdirectories to be searched for documentation and changing some assignments from "=" to ":=" so they're only evaluated once. The speed increase is noticeable. The makeopts.in file was updated to include the paths to REALPATH and DIRNAME. The ./conifgure script was setting them but makeopts.in wasn't including them. So... With this change, you can now place documentation in any"c" source file AND you can now place it in a separate XML file altogether. The following are examples of valid locations: res/res_pjsip.c Using the existing /*** DOCUMENTATION ***/ fragment. res/res_pjsip/pjsip_configuration.c Using the existing /*** DOCUMENTATION ***/ fragment. res/res_pjsip/pjsip_doc.xml A fully-formed XML file. The "configInfo", "manager", "managerEvent", etc. elements that would be in the "c" file DOCUMENTATION fragment should be wrapped in proper XML. Example for "somemodule.xml": <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE docs SYSTEM "appdocsxml.dtd"> <docs> <configInfo> ... </configInfo> </docs> It's the "appdocsxml.dtd" that tells make_xml_documentation that this is a documentation XML file and not some other XML file. It also allows many XML-capable editors to do formatting and validation. Other than the ".xml" suffix, the name of the file is not significant. As a start... This change also moves the documentation that was in res_pjsip.c to 2 new XML files in res/res_pjsip: pjsip_config.xml and pjsip_manager.xml. This cut the number of lines in res_pjsip.c in half. :) Change-Id: I486c16c0b5a44d7a8870008e10c941fb19b71ade
-
George Joseph authored
Recap from earlier commit: If you have a development branch for a major project that will receive gerrit reviews it'll probably be named something like "development/16/newproject" or a work branch based on that "development" branch. That will necessitate setting "defaultbranch=development/16/newproject" in .gitreview. The make_version script uses that variable to construct the asterisk version however, which results in versions like "GIT-development/16/newproject-ee582a8c7b" which is probably not what you want. It also constructs the URLs for downloading external modules with that version, which will fail. Fast-forward: The earlier attempt at adding a "basebranch" variable to .gitreview didn't work out too well in practice because changes were made to .gitreview, which is a checked-in file. So, if you wanted to rebase your work branch on the base branch, rebase would attempt to overwrite your .gitreview with the one from the base branch and complain about a conflict. This is a slighltly different approach that adds three methods to determine the mainline branch: 1. --- MAINLINE_BRANCH from the environment If MAINLINE_BRANCH is already set in the environment, that will be used. This is primarily for the Jenkins jobs. 2. --- .develvars Instead of storing the basebranch in .gitreview, it can now be stored in a non-checked-in ".develvars" file and keyed by the current branch. So, if you were working on a branch named "new-feature-work" based on "development/16/new-feature" and wanted to push to that branch in Gerrit but wanted to pull the external modules for 16, you'd create the following .develvars file: [branch "new-feature-work"] mainline-branch = 16 The .gitreview file would still look like: [gerrit] defaultbranch=development/16/new-feature ...which would cause any reviews pushed from "new-feature-work" to go to the "development/16/new-feature" branch in Gerrit. The key is that the .develvars file is NEVER checked in (it's been added to .gitignore). 3. --- Well Known Development Branch If you're actually working in a branch named like "development/<mainline_branch>/some-feature", the mainline branch will be parsed from it. 4. --- .gitreview If none of the earlier conditions exist, the .gitreview "defaultbranch" variable will be used just as before. Change-Id: I1cdeeaa0944bba3f2e01d7a2039559d0c266f8c9
-
- Feb 25, 2022
-
-
Joshua C. Colp authored
ASTERISK-29353 Change-Id: I4ea43eda1691565563a4c03ef37166952d211b2b
-
Naveen Albert authored
The disabledevents setting has been added to the general section in manager.conf, which allows users to specify events that should be globally disabled and not sent to any AMI listeners. This allows for processing of these AMI events to end sooner and, for frequent AMI events such as Newexten which users may not have any need for, allows them to not be processed. Additionally, it also cleans up core debug as previously when debug was 3 or higher, the debug was constantly spammed by "Analyzing AMI event" messages along with a complete dump of the event contents (often for Newexten). ASTERISK-29853 #close Change-Id: Id42b9a3722a1f460d745cad1ebc47c537fd4f205
-
Naveen Albert authored
Adds the lastcontext and lastexten channel fields to allow users to access previous dialplan execution locations. ASTERISK-29840 #close Change-Id: Ib455fe300cc8e9a127686896ee2d0bd11e900307
-
Naveen Albert authored
Although there are 10 debugs levels, over time, many current debug calls have come to use inappropriately low debug levels. In particular, a select few debug calls (currently all debug 1) can result in thousands of debug messages per minute for a single call. This can adds a lot of noise to core debug which dilutes the value in having different debug levels in the first place, as these log messages are from the core internals are are better suited for higher debug levels. Some debugs levels are thus adjusted so that debug level 1 is not inappropriately overloaded with these extremely high-volume and general debug messages. ASTERISK-29897 #close Change-Id: I55a71598993552d3d64a401a35ee99474770d4b4
-
Naveen Albert authored
pbx.digium.com no longer accepts IAX2 calls and there are no plans for it to come back. Accordingly, nonworking IAX2 URIs are removed from both the LICENSE file and the sample config. ASTERISK-29923 #close Change-Id: I257c54d4d812ed6b4bd4cbec2cd7ebe2b87b5bad
-
Naveen Albert authored
Adds the since tag to the documentation DTD so that individual applications, functions, etc. can now specify when they were added to Asterisk. This tag is added at the individual application, function, etc. level as opposed to at the module level because modules can expand over time as new functionality is added, and granularity only to the module level would generally not be useful. This enables the ability to more easily determine when new functionality was added to Asterisk, down to minor version as opposed to just by major version. This makes it easier for users to write more portable dialplan if desired to not use functionality that may not be widely available yet. ASTERISK-29896 #close Change-Id: Ibbb35c702d8038bdc3fd0a944fbfa69384cc15d5
-
- Feb 24, 2022
-
-
Naveen Albert authored
Currently, each module that uses libcurl duplicates the standard Asterisk curl user agent. This adds a global macro for the Asterisk user agent used for curl requests to eliminate this duplication. ASTERISK-29861 #close Change-Id: I9fc37935980384b4daf96ae54fa3c9adb962ed2d
-
- Feb 23, 2022
-
-
Naveen Albert authored
Refactors temp file utility function into file.c. ASTERISK-29809 #close Change-Id: Ife478708c8f2b127239cb73c1755ef18c0bf431b
-
Naveen Albert authored
Currently, if VoiceMailMain is called with a mailbox, if that mailbox doesn't exist, then the application silently falls back to prompting the user for the mailbox, as if no arguments were provided. However, if a specific mailbox is requested and it doesn't exist, then no warning at all is emitted. This fixes this behavior to now warn if a specifically requested mailbox could not be accessed, before falling back to prompting the user for the correct mailbox. ASTERISK-29920 #close Change-Id: Ib4093b88cd661a2cabc5d685777d4e2f0ebd20a4
-
Alexei Gradinari authored
If Subscription refresh occurred between when the batched notification was scheduled and the serialized notification was to be sent, then new schedule notification task would never be added. There are 2 threads: thread #1. ast_sip_subscription_notify is called, if notification_batch_interval then call schedule_notification. 1.1. The schedule_notification checks notify_sched_id > -1 not true, then send_scheduled_notify = 1 notify_sched_id = ast_sched_add(sched, sub_tree->notification_batch_interval, sched_cb.... 1.2. The sched_cb pushes task serialized_send_notify to serializer and returns 0 which means no reschedule. 1.3. The serialized_send_notify checks send_scheduled_notify if it's false the just returns. BUT notify_sched_id is still set, so no more ast_sched_add. thread #2. pubsub_on_rx_refresh is called 2.1 it pushes serialized_pubsub_on_refresh_timeout to serializer 2.2. The serialized_pubsub_on_refresh_timeout calls pubsub_on_refresh_timeout which calls send_notify 2.3. The send_notify set send_scheduled_notify = 0; The serialized_send_notify should always unset notify_sched_id. ASTERISK-29904 #close Change-Id: Ifc50c00b213c396509e10326a1ed89d8cf8c7875
-
Naveen Albert authored
Adds a simple sanity check for key names when users are writing data to AstDB. This captures four cases indicating malformed keynames that generally result in bad data going into the DB that the user didn't intend: an empty key name, a key name beginning or ending with a slash, and a key name containing two slashes in a row. Generally, this is the result of a variable being used in the key name being empty. If a malformed key name is detected, a warning is emitted to indicate the bug in the dialplan. ASTERISK-29925 #close Change-Id: Ifc08a9fe532a519b1b80caca1aafed7611d573bf
-
Alexei Gradinari authored
Whereas BLFs allow to show a display name for each RLS entry, the asterisk provides only the extension now. This is not end user friendly. This commit adds a new resource_list option, resource_display_name, to indicate whether display name of resource or the resource name being provided for RLS entries. If this option is enabled, the Display Name will be provided. This option is disabled by default to remain the previous behavior. If the 'event' set to 'presence' or 'dialog' the non-empty HINT name will be set as the Display Name. The 'message-summary' is not supported yet. ASTERISK-29891 #close Change-Id: Ic5306bd5a7c73d03f5477fe235e9b0f41c69c681
-
Naveen Albert authored
Adds two pieces of information to the core show settings command which are useful in the context of getting backtraces. The first is to display whether or not Asterisk would generate a core dump if it were to crash. The second is to show the current running directory of Asterisk. ASTERISK-29866 #close Change-Id: Ic42c0a9ecc233381aad274d86c62808d1ebb4d83
-
Naveen Albert authored
The configObject tag contains a default attribute which allows the default value to be specified, if applicable. This allows for the default value to show up specially on the wiki in a way that is clear to users. There are a couple places in the tree where default values are included in the description as opposed to as attributes, which means these can't be parsed specially for the wiki. These are changed to use the attribute instead of being included in the text description. ASTERISK-29898 #close Change-Id: I9d7ea08f50075f41459ea7b76654906b674ec755
-
Naveen Albert authored
mpg123 doesn't support HTTPS, but the MP3Player application doesn't document this or warn the user about this. HTTPS streams have become more common nowadays and users could reasonably try to play them without being aware they should use the HTTP stream instead. This adds documentation to note this limitation. It also throws a warning if users try to use the HTTPS stream to tell them to use the HTTP stream instead. ASTERISK-29900 #close Change-Id: Ie3b029be5258c5a701f71ed3b1a7a80d1e03b827
-
- Feb 17, 2022
-
-
Naveen Albert authored
Adds an option to the ReceiveMF application to allow specifying a maximum number of digits. Originally, this capability was not added to ReceiveMF as it was with ReceiveSF because typically a ST digit is used to denote that sending of digits is complete. However, there are certain signaling protocols which simply transmit a digit (such as Expanded In-Band Signaling) and for these, it's necessary to be able to read a certain number of digits, as opposed to until receiving a ST digit. This capability is added as an option, as opposed to as a parameter, to remain compatible with existing usage (and not shift the parameters). ASTERISK-29877 #close Change-Id: I4229167c9aa69b87402c3c2a9065bd8dfa973a0b
-
- Feb 14, 2022
-
-
Mike Bradeen authored
When tps_shutdown is called as part of the cleanup process there is a chance that one of the taskprocessors that references the tps_singletons object is still running. The change is to allow for tps_shutdown to check tps_singleton's container count and give the running taskprocessors a chance to finish. If after AST_TASKPROCESSOR_SHUTDOWN_MAX_WAIT (10) seconds there are still container references we shutdown anyway as this is most likely a bug due to a taskprocessor not being unreferenced. ASTERISK-29365 Change-Id: Ia932fc003d316389b9c4fd15ad6594458c9727f1
-
- Feb 11, 2022
-
-
Alexei Gradinari authored
There are a lot of Queue AMI actions and Queue applications which do not load queue and queue members from Realtime. AMI actions QueuePause - if queue not in memory - response "Interface not found". QueueStatus/QueueSummary - if queue not in memory - empty response. Applications: PauseQueueMember - if queue not in memory Attempt to pause interface %s, not found UnpauseQueueMember - if queue not in memory Attempt to unpause interface xxxxx, not found This patch adds a new function load_realtime_queues which loads queue and queue members for desired queue or all queues and all members if param 'queuename' is NULL or empty. Calls the function load_realtime_queues when needed. Also this patch fixes leak of ast_config in function set_member_value. Also this patch fixes incorrect LOG_WARNING when pausing/unpausing already paused/unpaused member. The function ast_update_realtime returns 0 when no record modified. So 0 is not an error to warn about. ASTERISK-29873 #close ASTERISK-18416 #close ASTERISK-27597 #close Change-Id: I554ee0eebde93bd8f49df7f84b74acb21edcb99c
-
Mark Petersen authored
added res_pjsip_outbound_registration to .requires in AST_MODULE_INFO which fixes issue with module crashes on load "FRACK!, Failed assertion" ASTERISK-29871 Change-Id: Ia0f49d048427a40e1b763296b834a52a03610096
-
- Feb 07, 2022
-
-
Sean Bright authored
This code was needlessly complex and would fail to properly delimit the response message if LOW_MEMORY was defined. Change-Id: Iae50bf09ef4bc34f9dc4b49435daa76f8b2c5b6e
-