- Nov 28, 2022
-
-
Naveen Albert authored
SLAStation currently autoservices the station channel before creating a thread to actually dial the trunk. This leads to duplicate servicing of the channel which causes assertions, deadlocks, crashes, and moreover not the correct behavior. Removing the autoservice prevents the crash, but if the station hangs up before the trunk answers, the call hangs since the hangup was never serviced on the channel. This is fixed by not autoservicing the channel, but instead servicing it in the thread dialing the trunk, since it is doing so synchronously to begin with. Instead of sleeping for 100ms in a loop, we simply use the channel for timing, and abort if it disappears. The same issue also occurs with SLATrunk when a call is answered, because ast_answer invokes ast_waitfor_nandfds. Thus, we use ast_raw_answer instead which does not cause any conflict and allows the call to be answered normally without thread blocking issues. ASTERISK-29998 #close Change-Id: Icc237d50354b5910000d2305901e86d2c87bb9d8
-
- Nov 08, 2022
-
-
Naveen Albert authored
Adds an option that allows MixMonitor to delete its copy of any recording files before exiting. This can be handy in conjunction with options like m, which copy the file elsewhere, and the original files may no longer be needed. ASTERISK-30284 #close Change-Id: Ida093679c67e300efc154a97b6d8ec0f104e581e
-
- Nov 02, 2022
-
-
Naveen Albert authored
When gosub is executed on channels without a PBX, the context, extension, and priority are initialized to the channel driver's default location for that endpoint. As a result, the last Return will restore this location and the Gosub logs will print out bogus information about our exit point. To fix this, on channels that don't have a PBX, the execution location is left intact on the last return if there are no further stack frames left. This allows the correct location to be printed out to the user, rather than the bogus default context. ASTERISK-30076 #close Change-Id: I1d42a99c9aa9e3708d32718863175158a894e414
-
- Sep 26, 2022
-
-
Naveen Albert authored
Adds the n option to not answer the channel when calling BridgeWait, so the application can be used without forcing answer supervision. ASTERISK-30216 #close Change-Id: I6b85ef300b1f7b5170f8537e2b10889cc2e6605a
-
Naveen Albert authored
Adds an option that will play an audio file to the party while AMD is running on the channel, so the called party does not just hear silence. ASTERISK-30179 #close Change-Id: I4af306274552b61b3d9f0883c33f698abd4699b6
-
- Sep 11, 2022
-
-
Naveen Albert authored
Adds the end_marked_any option, which can be used to kick a user from a conference if any marked user leaves. ASTERISK-30211 #close Change-Id: I9e8da7ccb892e522546c0f2b5476d172e022c2f5
-
- Aug 17, 2022
-
-
Naveen Albert authored
Fixes a few coding guideline violations: * Use of C99 comments * Opening brace on same line as function prototype ASTERISK-30163 #close Change-Id: I07771c4c89facd41ce8d323859f022ddbddf6ca7
-
- Aug 08, 2022
-
-
Naveen Albert authored
If the CONFBRIDGE function is used to dynamically set menu options, a memory leak occurs when a menu option that has been set is overridden, since the menu entry is not destroyed before being freed. This ensures that it is. Additionally, logic that duplicates the destroy function is removed in lieu of the destroy function itself. ASTERISK-28422 #close Change-Id: I71cfb5c24e636984d41086d1333a416dc12ff995
-
- Aug 01, 2022
-
-
Naveen Albert authored
Adjusts some logging levels to be more or less important, that is more prominent when actual problems occur and less prominent for less noteworthy things. ASTERISK-30153 #close Change-Id: Ifc8f7df427aa018627db462125ae744986d3261b
-
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 13, 2022
-
-
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
-
- Jul 12, 2022
-
-
Naveen Albert authored
ASTERISK-30089 #close Change-Id: I1f5db911fd05a3a211c522c13e990fa1d0e62275
-
- 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
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
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 15, 2022
-
-
Naveen Albert authored
Adds an option to VoiceMailMain that prevents the user from deleting messages during that application invocation. This can be useful for public or shared mailboxes, where some users should be able to listen to messages but not delete them. ASTERISK-30063 #close Change-Id: Icdfb8423ae8d1fce65a056b603eb84a672e80a26
-
- Jun 09, 2022
-
-
Naveen Albert authored
Use example tags instead of regular para tags where possible. ASTERISK-30090 Change-Id: Iada8bbfda08f30b118cedf2d040bbb21e4966ec5
-
- May 13, 2022
-
-
Naveen Albert authored
Adds the CONFBRIDGE_CHANNELS function which can be used to retrieve a comma-separated list of channels, filtered by a particular type of participant category. This output can then be used with functions like UNSHIFT, SHIFT, POP, etc. ASTERISK-30036 #close Change-Id: I1950aff932437476dc1abab6f47fb4ac90520b83
-
- May 09, 2022
-
-
George Joseph authored
Most issues were in stringfields and had to do with comparing a pointer to an constant/interned string with NULL. Since the string was a constant, a pointer to it could never be NULL so the comparison was always "true". gcc now complains about that. There were also a few issues where determining if there was enough space for a memcpy or s(n)printf which were fixed by defining some of the involved variables as "volatile". There were also a few other miscellaneous fixes. ASTERISK-30044 Change-Id: Ia081ca1bcfb329df6487c4660aaf1944309eb570
-
- May 02, 2022
-
-
Naveen Albert authored
Documents the Dial syntax for DAHDI, namely the channel group, distinctive ring, answer confirmation, and digital call options that are specified in the resource itself. ASTERISK-24827 #close Change-Id: Ib95e78497fb00dc5cbfde1c93a69f034bfd08c30
-
Michael Cargile authored
Added the hear_own_join_sound option to the confbridge user profile to control who hears the sound_join audio file. When set to 'yes' the user entering the conference and the participants already in the conference will hear the sound_join audio file. When set to 'no' the user entering the conference will not hear the sound_join audio file, but the participants already in the conference will hear the sound_join audio file. ASTERISK-29931 Added by Michael Cargile Change-Id: I856bd66dc0dfa057323860a6418c1371d249abd2
-
- Apr 27, 2022
-
-
Naveen Albert authored
The admin_exec function in app_meetme is used by the SLA applications for internal bridging. However, in these cases, chan is NULL. Currently, this function will set some status variables that are intended for a channel, but since channel is NULL, this is erroneously creating meaningless global variables, which shouldn't be happening. This sets these variables only if chan is not NULL. ASTERISK-30002 #close Change-Id: I817df6c26f5bda131678e56791b0b61ba64fc6f7
-
- Apr 26, 2022
-
-
Naveen Albert authored
Adds version information for applications, functions, and manager events/actions. This is not completely exhaustive by any means but covers most new things added that have release versioning information in the issue tracker. ASTERISK-29940 #close Change-Id: I506401e93c799715dbbe97c0a8ba18af2bf5e131
-
Maximilian Fridrich authored
When executing dial, the topology of the incoming channel is cloned and used for the outgoing channel. This creates issues when an incoming stream is sendonly or recvonly as the stream state of the outgoing channel will be the same as the stream state of the incoming channel. Now the stream state is flipped for the outgoing stream in dial_exec_full if the incoming stream topology is recvonly or sendonly. ASTERISK-29655 Reported by: Michael Auracher ASTERISK-29638 Reported by: Michael Auracher Change-Id: I294dc834ac9a5f048b101b691669959e9df630e1
-
- Apr 08, 2022
-
-
Naveen Albert authored
The ReceiveMF and ReceiveSF applications currently always return 0, even if a channel has hung up. The call will still end but generally applications are expected to return -1 if the channel has hung up. We now return -1 if a hangup occured to bring this behavior in line with this norm. This has no functional impact, but merely increases conformity with how these modules interact with the PBX core. ASTERISK-29951 #close Change-Id: I234d755050ab8ed58f197c6925b968ba26b14033
-
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 23, 2022
-
-
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
-
- 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
-
- Feb 25, 2022
-
-
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 23, 2022
-
-
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
-
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
-
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 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
-
- Jan 20, 2022
-
-
Mark Petersen authored
if holdtime is (0 min, 0 sec) there is no hold time announcements we should then also not playing queue-thankyou ASTERISK-29831 Change-Id: Ic7e51dcde526b23f1cd8d24e1d1e2d81e10f9d2c
-
- Jan 06, 2022
-
-
Sean Bright authored
gethostbyname() and gethostbyname_r() are deprecated in favor of getaddrinfo() which we use in the ast_sockaddr family of functions. ASTERISK-29819 #close Change-Id: Ie277c0ef768d753b169c121ef570a71665692ab7
-
- Jan 05, 2022
-
-
Mark Petersen authored
adding support for playing the correct en/et for nordic languages by adding 'n' for neuter gender in the relevant ast_say_number ASTERISK-29827 Change-Id: I03ebc827d2f0dc95132ab2f42799893c70edc5b1
-
Naveen Albert authored
Currently, the MP3Player application doesn't emit a warning if attempting to play a stream which no longer exists. This can be a common scenario as many mp3 streams are valid at some point but can disappear at any time. Now a warning is thrown if attempting to play a nonexistent MP3 stream, instead of silently exiting. ASTERISK-29829 #close Change-Id: I53a0bf1ed1740166655eb66fe7675f6f808bf535
-