- Aug 01, 2022
-
-
Naveen Albert authored
There are a handful of files in the tree that reference an SVN link for the coding guidelines. This removes these because the links are dead and the vast majority of source files do not contain these links, so this is more consistent. app_skel still maintains an (up to date) link to the coding guidelines. ASTERISK-30159 #close Change-Id: I35bbb20f66982e98099cff3029ede20091ffdac7
-
Naveen Albert authored
Documents the ConfbridgeListRooms AMI response, which is currently not documented. ASTERISK-30020 #close Change-Id: Id6fff7a936244bae7b52686301eb740c1169cdea
-
Naveen Albert authored
The MeetmeList and MeetmeListRooms AMI responses are currently completely undocumented. This adds documentation for these responses. ASTERISK-30018 #close Change-Id: Id93135b7edf01de6f8fba266e2122989dc8996b8
-
- Jul 27, 2022
-
-
Naveen Albert authored
Adds missing documentation for the field parameter for the SRVRESULT function. ASTERISK-30151 Reported by: Chris Young Change-Id: I4385a2e0892a07e30dea1a8a0588e2c1bea2b1f1
-
- Jul 26, 2022
-
-
Naveen Albert authored
When ast_func_read2 is used to read a function using its read function (as opposed to a native ast_str read2 function), the result is copied directly by the function into the ast_str buffer. As a result, the ast_str length remains initialized to 0, which is a bug because this is not the real string length. This can cascade and have issues elsewhere, such as when reading substrings of functions that only register read as opposed to read2 callbacks. In this case, since reading ast_str_strlen returns 0, the returned substring is empty as opposed to the actual substring. This has caused the ast_str family of functions to behave inconsistently and erroneously, in contrast to the pbx_variables substitution functions which work correctly. This fixes this issue by manually updating the ast_str length when the result is copied directly into the ast_str buffer. Additionally, an assertion and a unit test that previously exposed these issues are added, now that the issue is fixed. ASTERISK-29966 #close Change-Id: I4e2dba41410f9d4dff61c995d2ca27718248e07f
-
- Jul 24, 2022
-
-
Sergey V. Lobanov authored
configure script detects /sbin/launchd, but the result of this check is not used in Makefile (bininstall). Makefile also detects /sbin/launchd file to decide if it is required to install safe_asterisk. configure script correctly detects cross compile build and sets PBX_LAUNCHD=0 In case of building asterisk on MacOS host for Linux target using external toolchain (e.g. OpenWrt toolchain), bininstall does not install safe_asterisk (due to /sbin/launchd detection in Makefile), but it is required on target (Linux). This patch adds HAVE_SBIN_LAUNCHD=@PBX_LAUNCHD@ to makeopts.in to use the result of /sbin/launchd detection from configure script in Makefile. Also this patch uses HAVE_SBIN_LAUNCHD in Makefile (bininstall) to decide if it is required to install safe_asterisk. ASTERISK-29905 #close Change-Id: Iff61217276cd188f43f51ef4cdbffe39d9f07f65
-
- Jul 20, 2022
-
-
Naveen Albert authored
Adds the DBGetTree action, which can be used to retrieve all of the DB keys beginning with a particular prefix, similar to the capability provided by the database show CLI command. ASTERISK-30136 #close Change-Id: I3be9425e53be71f24303fdd4d2923c14e84337e6
-
Naveen Albert authored
The global event filtering code was only in one possible execution path, so not all events were being properly filtered out if requested. This moves that into the universal AMI handling code so all events are properly handled. Additionally, the CLI listing of disabled events can also get truncated, so we now print out everything. ASTERISK-30137 #close Change-Id: If8c42edcb2abc5158552da7eba2a8ff6b20e1959
-
George Joseph authored
Change-Id: Ib91db9223a78188667e15053bcc73931b878414e
-
Asterisk Development Team authored
-
- Jul 14, 2022
-
-
Michael Neuhauser authored
Move the call to ast_sip_location_prune_boot_contacts() *after* the call to ast_res_pjsip_init_options_handling() so that res/res_pjsip/pjsip_options.c is informed about the contact deletion and updates its sip_options_contact_statuses list. This allows for an AMI event to be sent by res/res_pjsip/pjsip_options.c if the endpoint registers again from the same remote address and port (i.e., same URI) as used before the Asterisk restart. ASTERISK-30109 Reported-by: Michael Neuhauser Change-Id: I1ba4478019e4931a7085f62708d9b66837e901a8
-
Naveen Albert authored
There are several things wrong with analog Caller ID handling that are fixed by this commit: callerid.c's Caller ID generation function contains the logic to use the presentation to properly send the proper Caller ID. However, currently, DAHDI does not pass any presentation information to the Caller ID module, which means that presentation is completely ignored on all calls. This means that lines could be getting Caller ID information they aren't supposed to. Part of the reason this has been obscured is because the simple switch logic for handling the built in *67 and *82 is completely wrong. Rather than modifying the presentation for the call accordingly (which is what it's supposed to do), it simply blanks out the Caller ID or fills it in. This is wrong, so wrong that it makes a mockery of the specification. Additionally, it would leave to the "UNAVAILABLE" disposition being used for Caller ID generation as opposed to the "PRIVATE" disposition that it should have been using. This is now fixed to only update the presentation and not modify the number and name, so that the simple switch *67/*82 work correctly. Next, sig_analog currently only copies over the name and number, nothing else, when it is filling in a duplicated caller id structure. Thus, we also now copy over the presentation information so that is available for the Caller ID spill. Additionally, this meant that "valid" was implicitly 0, and as such presentation would always fail to "Unavailable". The validity is therefore also copied over so it can be used by ast_party_id_presentation. As part of this fix, new API is added so that all the relevant Caller ID information can be passed in to the Caller ID generation functions. Parameters that are also completely missing from the Caller ID spill have also been added, to enhance the compatibility, correctness, and completeness of the Asterisk Caller ID implementation. ASTERISK-29991 #close Change-Id: Icc44a5e09979916f4c18a440f96e10dc1c76ae15
-
Sam Banks authored
ASTERISK-30126 #close Change-Id: I009c4dcbf9338a13e3baf87b52a5bbe4f9f81a42
-
Naveen Albert authored
Adds a POLARITY function which can be used to retrieve the current polarity of an FXS channel as well as set the polarity of an FXS channel to idle or reverse at any point during a call. ASTERISK-30000 #close Change-Id: If6f50998f723e4484bf68e2473f5cedfeaf9b8f1
-
- Jul 13, 2022
-
-
Mike Bradeen authored
make_version now silently checks if the required git commands will fail. If they do, then return UNKNOWN__git_check_fail to distinguish this failure from other UNKNOWN__ version failures Makefile checks for this value on install and exits out with instructions ASTERISK-30029 Change-Id: If8f10cac8f509c08981120f17555762342020221
-
Naveen Albert authored
Currently, if multiple video-enabled ConfBridges are conferenced together, we immediately get into a scenario where an infinite sequence of video updates fills up the taskprocessor queue and causes memory consumption to climb unabated until Asterisk is killed. This is due to the core bridging mechanism that provides video updates (softmix_bridge_write_control in bridge_softmix.c) continously updating all the channels in the bridge with video updates. The logic to do so in the core is that the video updates should be provided if the video_update_discard property for the bridge is 0, or if enough time has elapsed since the last video update. Thus, we already have a safeguard built in to ensure the scenario described above does not happen. Currently, however, this safeguard is not being adequately ensured. In app_confbridge, the video_update_discard property defaults to 2000, which is a healthy value that should completely prevent this issue. However, this value is only set onto the bridge in the SFU video mode. This leaves video modes such as follow_talker completely vulnerable, since video_update_discard will actually be 0, since the default or set value was never applied. As a result, the core bridging mechanism will always try to provide video updates regardless of when the last one was sent. To prevent this issue from happening, we now always set the video_update_discard property on the bridge with the value from the bridge profile. The app_confbridge defaults will thus ensure that infinite video updates no longer happen in any video mode. ASTERISK-29907 #close Change-Id: I4accb2536ac62797950468e9930f12ef7dd486b2
-
Sean Bright authored
Allocate all of the ast_context's character data in the structure's flexible array member and eliminate the clunky fake_context. This will simplify future changes to ast_context. Change-Id: I98357de75d8ac2b3c4c9f201223632e6901021ea
-
George Joseph authored
line 196: loc_src = '\0'; should have been line 196: *loc_src = '\0'; The issue was caught by the gcc optimizer complaining that loc_src had a zero length because the pointer itself was being set to NULL instead of the _contents_ of the pointer being set to the NULL terminator. ASTERISK-30138 Reported-by: Sean Bright Change-Id: Id247be113cc8510f043ca053d5b4f5f3d32acd29
-
- Jul 12, 2022
-
-
George Joseph authored
This commit adds res_pjsip_geolocation which gives chan_pjsip the ability to use the core geolocation capabilities. This commit message is intentionally short because this isn't a simple capability. See the documentation at https://wiki.asterisk.org/wiki/display/AST/Geolocation for more information. THE CAPABILITIES IMPLEMENTED HERE MAY CHANGE BASED ON USER FEEDBACK! ASTERISK-30128 Change-Id: Ie2e2bcd87243c2cfabc43eb823d4427c7086f4d9
-
George Joseph authored
This commit adds res_geolocation which creates the core capabilities to manipulate Geolocation information on SIP INVITEs. An upcoming commit will add res_pjsip_geolocation which will allow the capabilities to be used with the pjsip channel driver. This commit message is intentionally short because this isn't a simple capability. See the documentation at https://wiki.asterisk.org/wiki/display/AST/Geolocation for more information. THE CAPABILITIES IMPLEMENTED HERE MAY CHANGE BASED ON USER FEEDBACK! ASTERISK-30127 Change-Id: Ibfde963121b1ecf57fd98ee7060c4f0808416303
-
Naveen Albert authored
ASTERISK-30089 #close Change-Id: I1f5db911fd05a3a211c522c13e990fa1d0e62275
-
- Jul 11, 2022
-
-
Kevin Harwell authored
See also: ASTERISK_30023 ASTERISK-30096 #close patches: inline on issue - submitted by Morvai Szabolcs Change-Id: I79c0b74862100acd9c8319dca5cc456a654d02eb
-
Naveen Albert authored
ASTERISK_30007 accidentally made OpenSSL a required depdendency. This adds an ifdef so the relevant code is compiled only if OpenSSL is available, since it only needs to be executed if OpenSSL is available anyways. ASTERISK-30083 #close Change-Id: Iad05c1a9a8bd2a48e7edf8d234eaa9f80779e34d
-
Joshua C. Colp authored
A sporadic test failure was happening when executing the AEAP Websocket transport tests. It was originally thought this was due to things not getting cleaned up fast enough, but upon further investigation I determined the underlying cause was poll() getting interrupted and this not being handled in all places. This change adds EINTR and EAGAIN handling to the Websocket client connect code as well as the AEAP Websocket transport code. If either occur then the code will just go back to waiting for data. The originally disabled failure test case has also been re-enabled. ASTERISK-30099 Change-Id: I1711a331ecf5d35cd542911dc6aaa9acf1e172ad
-
- Jul 08, 2022
-
-
Naveen Albert authored
Adds a CLI command similar to "dialplan eval function" except for applications: "dialplan exec application", useful for quickly testing certain application behavior directly from the CLI without writing any dialplan. ASTERISK-30062 #close Change-Id: I42e9fa9b60746c21450d40f99a026d48d2486dde
-
Trevor Peirce authored
The current documentation is out of date and does not reflect actual behaviour. This change makes documentation clearer and accurately reflect the purpose of relevant channel variables. ASTERISK-30123 Change-Id: I160d0b01fce862477ad55ac1aa708a730473eb6f
-
- Jul 07, 2022
-
-
George Joseph authored
* Added ast_variable_list_from_quoted_string() Parse a quoted string into an ast_variable list. * Added ast_str_substitute_variables_full2() Perform variable/function/expression substitution on an ast_str. * Added ast_strsep_quoted() Like ast_strsep except you can specify a specific quote character. Also added unit test. * Added ast_xml_find_child_element() Find a direct child element by name. * Added ast_xml_doc_dump_memory() Dump the specified document to a buffer * ast_datastore_free() now checks for a NULL datastore before attempting to destroy it. Change-Id: I5dcefed2f5f93a109e8b489e18d80d42e45244ec
-
- Jul 06, 2022
-
-
Boris P. Korzun authored
Improved variable definitions (specified correct type) for avoiding compiler warnings. ASTERISK-30117 #close Change-Id: I3b00c1befb658ee9379ddabd9a9132765ca9201a
-
Jose Lopes authored
These new functions allow retrieving information from headers on 200 OK INVITE response. ASTERISK-29999 Change-Id: I264a610a9333359297a0825feb29a1bb4f4ad144
-
- Jul 05, 2022
-
-
Boris P. Korzun authored
Switched res_pjsip_outbound_registration.so dep to optional. Added module loaded check before using it. ASTERISK-30101 #close Change-Id: Ia34f1684d984e821fbdd4de8911f930337703666
-
- Jul 01, 2022
-
-
Naveen Albert authored
ASTERISK_28638 caused a regression by incorrectly aborting early and overwriting the status on certain calls. This was exhibited by certain technologies such as DAHDI, where DAHDI returns NULL for the request if a line is busy. This caused the BUSY condition to be incorrectly treated as CHANUNAVAIL because the DIALSTATUS was getting incorrectly overwritten and call handling was aborted early. This is fixed by instead checking if any valid peers have been specified, as opposed to checking the list size of successful requests. This is because the latter could be empty but this does not indicate any kind of problem. This restores the previous working behavior. ASTERISK-29989 #close Change-Id: I4d4b209b967816b1bc791534593ababa2b99bb88
-
Naveen Albert authored
Currently, if using the CLI to delete a DB entry, "Database entry removed" is always returned, regardless of whether or not the entry actually existed in the first place. This meant that users were never told if entries did not exist. The same issue occurs if trying to delete a DB key using AMI. To address this, new API is added that is more stringent in deleting values from AstDB, which will not return success if the value did not exist in the first place, and will print out specific error details if available. ASTERISK-30001 #close Change-Id: Ic84e3eddcd66c7a6ed7fea91cdfd402568378b18
-
Naveen Albert authored
A corner case exists in CLI parsing where if a CLI user in a remote console ends with a backslash and then invokes command completion (using TAB or ?), then the console will freeze forever until a SIGQUIT signal is sent to the process, due to getting blocked forever reading the command completion. CTRL+C and other key combinations have no impact on the CLI session. This occurs because, in such cases, the CLI process is waiting for AST_CLI_COMPLETE_EOF to appear in the buffer from the main process, but instead the main process is confused by the funny syntax and thus prints out the CLI help. As a result, the CLI process is stuck on the read call, waiting for the completion that will never come. This prevents blocking forever by checking if the data from the main process starts with "Usage:". If it does, that means that CLI help was sent instead of the tab complete vector, and thus the CLI should bail out and not wait any longer. ASTERISK-29822 #close Change-Id: I9810ac59304fec162da701653c9c834f0ec8f670
-
Naveen Albert authored
The Dial application currently stops hook flashes dead in their tracks from propagating through on outbound calls. This fixes that so they can go down the wire. ASTERISK-30115 #close Change-Id: Id4e78b29a049f35c5b1e7520eaa10d0eb5b7f97c
-
- Jun 30, 2022
-
-
Naveen Albert authored
Microsoft recently began rejecting all requests for ICS calendars on Office 365 with 400 errors if the request doesn't contain a user agent. See: https://docs.microsoft.com/en-us/answers/questions/883904/34the-remote-server-returned-an-error-400-bad-requ.html Accordingly, we now send a user agent on requests for ICS files so that requests to Office 365 will work as they did before. ASTERISK-30106 Change-Id: Ie9dcaef12ae8adf37533c684499eb11005fac8f7
-
Naveen Albert authored
If the caller has hung up, break out of the play loop so we don't try to play remaining files and fail to do so. ASTERISK-30075 #close Change-Id: I55e85be28ee90b48c0fe4ce20ac136a7dbb49f14
-
Kevin Harwell authored
Rightly the use of wildcards in certificates is disallowed in accordance with RFC5922. However, RFC2818 does make some allowances with regards to their use when using subject alt names with DNS name types. As such this patch creates a new setting for TLS transports called 'allow_wildcard_certs', which when it and 'verify_server' are both enabled allows DNS name types, as well as the common name that start with '*.' to match as a wildcard. For instance: *.example.com will match for: foo.example.com Partial matching is not allowed, e.g. f*.example.com, foo.*.com, etc... And the starting wildcard only matches for a single level. For instance: *.example.com will NOT match for: foo.bar.example.com The new setting is disabled by default. ASTERISK-30072 #close Change-Id: If0be3fdab2e09c2a66bb54824fca406ebaac3da4
-
Naveen Albert authored
Finding an application and executing it if found is a common task throughout Asterisk. This adds a helper function around pbx_exec to do this, to eliminate redundant code and make it easier for modules to substitute variables and execute applications by name. ASTERISK-30061 #close Change-Id: Ifee4d2825df7545fb515d763d393065675140c84
-
- Jun 17, 2022
-
-
Stanislav Abramenkov authored
More information: https://github.com/pjsip/pjproject/releases/tag/2.12.1 Pull request to third-party https://github.com/asterisk/third-party/pull/11 ASTERISK-30050 Change-Id: Icb4e86d4b85ef9b975355c91f3ed56a50b51c6bd
-
- Jun 16, 2022
-
-
Naveen Albert authored
A previous review fixing ASTERISK_22246 and ASTERISK_26582 got a couple of the options mixed up as to whether or not they are compatible with the remote console. This fixes those to the best of my knowledge. ASTERISK-30097 #close Change-Id: Id54166991aa79f04fb02699cc499bedda854253b
-