- Apr 08, 2022
-
-
Naveen Albert authored
Adds the m option to the Queue application, which allows a music on hold class to be specified at runtime which will override the class configured in queues.conf. This option functions like the m option to Dial. ASTERISK-29876 #close Change-Id: Ie25a48569cf8755c305c9438b1ed292c3adcf8d7
-
Naveen Albert authored
Currently, if a user tries to access a non-dynamic MeetMe conference and the conference is not found, the call simply silent hangs up. There is no indication to the user that anything went wrong at all. This changes the relevant debug message to a warning so that the user is notified of this invalidity. ASTERISK-29954 #close Change-Id: Iebcfae3755d00f2150d676ee211c57bc59530048
-
- Mar 30, 2022
-
-
Naveen Albert authored
Removes some leftover build and config references to modules that have since been removed from Asterisk. ASTERISK-29935 #close Change-Id: Iaefc73a23f4b2de3c6c14d928050135b6d0ef6af
-
Kevin Harwell authored
When adding headers to an outgoing request the headers were cloned using the dialog's pool when they should have been cloned using tdata's pool. Under certain circumstances it was possible for the dialog object, and its pool to be freed while tdata is still active and available. Thus the cloned header "disappeared", and when tdata tried to later access it a crash would occur. This patch makes it so all added headers are cloned appropriately using tdata's pool. ASTERISK-29411 #close ASTERISK-29535 #close Change-Id: I9852025b5ee93ce1c038209150ee9dba1e0767c5
-
Kevin Harwell authored
Several modules removal and deprecations occurred in 19.0.0 (initial 19 release), but associated UPGRADE files were not removed from staging for some reason in the master branch. This patch removes those files, and also removes a spurious leftover header, chan_phone.h (associated module removed in 19). Change-Id: Ib92142c846b45c882d6b2b6caca7225253c83add
-
Joshua C. Colp authored
This change removes patches which have been merged into upstream and updates some existing ones. It also adds some additional config_site.h changes to restore previous behavior, as well as a patch to allow multiple Authorization headers. There seems to be some confusion or disagreement on language in RFC 8760 in regards to whether multiple Authorization headers are supported. The RFC implies it is allowed, as does some past sipcore discussion. There is also the catch all of "local policy" to allow it. In the case of Asterisk we allow it. ASTERISK-29351 Change-Id: Id39ece02dedb7b9f739e0e37ea47d76854af7191
-
- Mar 29, 2022
-
-
Naveen Albert authored
The PBX core uses the stack when it comes to includes, which means that a context can only contain strictly fewer than AST_PBX_MAX_STACK includes. If this is exceeded, then warnings will be emitted for each number of includes beyond this if searching for an extension in the including context, and if the extension's inclusion is beyond the stack size, it will simply not be found. To address this, we now check if there are too many includes in a context when the dialplan is reloaded so that if there is an issue, the user is aware of at "compile time" as opposed to "run time" only. Secondly, more details are printed out when this message is encountered so it's clear what has happened. ASTERISK-26719 Change-Id: Ia3700452e75a7af3391b3e82ee69f06a669f8958
-
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
-
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
-
-
Naveen Albert authored
The iax2 show netstats command previously didn't contain enough spacing in the header to properly align the table header with the table body. This caused column headers to not align with the values on longer channel names. Some spacing is added to account for the longest channel names that display (before truncation occurs) so that columns are always properly aligned. ASTERISK-29895 #close patches: 61205_misaligned2.patch submitted by Birger Harzenetter (license 5870) Change-Id: I450ce6bb81157b9d6d149007e53b749f237b6d9f
-
Sean Bright authored
There is work going on to update our OpenSSL usage to avoid the deprecated functions but in the meantime make it possible to compile in devmode. Change-Id: Ib082eb8b3751f0185d8aa8fe127da664c93f0726
-
Marcel Wagner authored
Adding information in the readme about running the install_preqreq script to install components that the ./configure script might indicate as missing. ASTERISK-29976 #close Change-Id: Ic287b46300168729838bddd8f9265e98fc22bce6
-
- Mar 25, 2022
-
-
Naveen Albert authored
ASTERISK_22025 introduced a regression that shows the host IP and port as the perceived IP and port again, as opposed to showing the actual perceived address. This fixes this by showing the correct information. ASTERISK-29048 #close Change-Id: I0ad3e25bc6b449e83ce72ea5d1a1cdba72aa304a
-
Boris P. Korzun authored
Change RTP timer behavior for detecting RTP only after two-way SDP channel establishment. Ignore detecting after receiving 183 with SDP or while direct media is used. Make rtp_timeout and rtp_timeout_hold options consistent to rtptimeout and rtpholdtimeout options in chan_sip. ASTERISK-26689 #close ASTERISK-29929 #close Change-Id: I07326d5b9c40f25db717fd6075f6f3a8d77279eb
-
Hugh McMaster authored
Use pkg-config to detect libxml2, falling back to xml2-config if the former is not available. This patch ensures Asterisk continues to build on systems without xml2-config installed. The patch also updates the associated 'configure' files. ASTERISK-29970 #close Change-Id: I3c90dfe0b0590486cbb8e6d426a7c5c4199410c0
-
- Mar 24, 2022
-
-
Philip Prindeville authored
Treat time_t's as entirely unique and use the POSIX API's for converting to/from strings. Lastly, a 64-bit integer formats as 20 digits at most in base10. Don't need to have any 100 byte buffers to hold that. ASTERISK-29674 #close Signed-off-by:
Philip Prindeville <philipp@redfish-solutions.com> Change-Id: Id7b25bdca8f92e34229f6454f6c3e500f2cd6f56
-
- Mar 23, 2022
-
-
Alexei Gradinari authored
When asterisk generates the RLMI part of NOTIFY request, the asterisk uses the local contact uri instead of the URI to which the SUBSCRIBE request is sent. Because of this mismatch some IP phones (for example Cisco 5XX) ignore this list. According https://datatracker.ietf.org/doc/html/rfc4662#section-5.2 The first mandatory <list> attribute is "uri", which contains the uri that corresponds to the list. Typically, this is the URI to which the SUBSCRIBE request was sent. https://datatracker.ietf.org/doc/html/rfc4662#section-5.3 The "uri" attribute identifies the resource to which the <resource> element corresponds. Typically, this will be a SIP URI that, if subscribed to, would return the state of the resource. This patch makes asterisk to generate URI using SUBSCRIBE request URI. ASTERISK-29961 #close Change-Id: I1fcfc08fd589677f40608c59a4e143c45ee05f6c
-
Naveen Albert authored
Adds documentation for all of the possible return values for the DIALSTATUS variable in the Dial application. ASTERISK-25716 Change-Id: Id22593f1f1f7ea86e5734cee49516ec50848e8c0
-
Sean Bright authored
Using the length of a file found on the filesystem rather than the file being requested could result in filenames whose names are substrings of another to be erroneously matched. We now ensure a complete comparison before returning a positive result. ASTERISK-29960 #close Change-Id: Id3ffc77681b9b75b8569062f3d952a128a21c71a
-
Sean Bright authored
ASTERISK-29980 #close Change-Id: I7b347665822ea2774dd322276c09be67914d2065
-
Sean Bright authored
Passing 0 as the last argument to strtoimax() or strtoumax() causes octal and hexadecimal to be accepted which was not originally intended. So we now force to only accept decimal. ASTERISK-29950 #close Change-Id: I93baf0f273441e8280354630a463df263a8c0edd
-
Philip Prindeville authored
MUSL defines BUFSIZ as 1024 which is not reasonable for log messages. More broadly, BUFSIZ is the amount of buffering stdio.h does, which is arbitrary and largely orthogonal to what logging should accept as the maximum message size. ASTERISK-29928 Signed-off-by:
Philip Prindeville <philipp@redfish-solutions.com> Change-Id: Iaa49fbbab029c64ae3d95e4b18270e0442cce170
-
Naveen Albert authored
BackGround and WaitExten both accept options that are not currently documented. This adds documentation for these options to the xml documentation for each application. ASTERISK-29967 #close Change-Id: If812a9f1ccbba3e4d427a0e7a6dea923c2f905f7
-
- Mar 15, 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 14, 2022
-
-
Naveen Albert authored
The XML documentation for the SET MUSIC AGI command is invalid, as the parameter does not have a name and the on/off enum options for the on/off argument are listed separately, which is incorrect. The cumulative effect of these currently is that the Asterisk Wiki documentation for SET MUSIC is broken and external documentation generators crash on SET MUSIC due to the malformed documentation. These issues are corrected so that the documentation can be successfully parsed as with other similar AGI commands. ASTERISK-29939 #close ASTERISK-28891 #close Change-Id: I8c3d59897531bcbc401cbc7b00c9e2829dcb35f8
-
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 07, 2022
-
-
Naveen Albert authored
ASTERISK_29853 added the ability to selectively disable AMI events on a global basis, but the logic for this uses strstr which means that events with names which are the prefix of another event, if disabled, could disable those events as well. Instead, we account for this possibility to prevent this undesired behavior from occuring. ASTERISK_29853 Change-Id: Icccd1872602889806740971e4adf932f92466959
-
- 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
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
-
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
-