- Jun 06, 2022
-
-
Naveen Albert authored
If a switch is invoked using chan_iax2, deadlock can result because the PBX core is autoservicing the channel while chan_iax2 also then attempts to service it while waiting for the result of the switch. This removes servicing of the channel to prevent any conflicts. ASTERISK-30064 #close Change-Id: Ie92f206d32f9a36924af734ddde652b21106af22
-
Naveen Albert authored
If tab completion using ast_module_helper is attempted during startup, deadlock will ensue because the CLI will attempt to lock the module list while it is already locked by the loader. This causes deadlock because when the loader tries to acquire the CLI lock, they are blocked on each other. Waiting for startup to complete is not feasible because the CLI lock is acquired while waiting, so deadlock will ensure regardless of whether or not a lock on the module list is attempted. To prevent deadlock, we immediately abort if tab completion is attempted on the module list before Asterisk is fully booted. ASTERISK-30039 #close Change-Id: Idd468906c512bb196631e366a8f597a0e2e9271d
-
Naveen Albert authored
res_calendar will trigger an assertion currently if the ending time is calculated to be in the past. Unlike the reminder and start times, however, there is currently no check to catch non-positive times and set them to 1. As a result, if we get a negative value by happenstance, this can cause a crash. To prevent the assertion from begin triggered, we now use the same logic as the reminder and start events to catch this issue before it can cause a problem. ASTERISK-29981 #close Change-Id: Idfb3204d195f350d2575fb4bc72a54a597d6e93c
-
Naveen Albert authored
Emits a warning if the user has requested a parking spot that is out of bounds for the requested parking lot. ASTERISK-30086 Change-Id: I1080371e4f63e94724455003753014fbd3f95fbf
-
- Jun 02, 2022
-
-
Maximilian Fridrich authored
When a PJSIP channel is set on hold or off hold, all streams were set on/off hold. This is not the desired behaviour and caused issues when there were multiple streams in the topology. Now, only the default audio stream is set on/off hold when a hold is indicated. ASTERISK-30051 Change-Id: I04f1110565fd05fea565f5539b534b54549d4f71
-
Alexei Gradinari authored
The change "Add LOCAL/REMOTE tags in dialog-info+xml" set both "local" Identity Element URI and Target Element URI to the same value - the channel Caller Number. For Identity Element it's ok to set as Caller ID. But Local Target URI should be set as local URI. In this case the Local Target URI can be used for Directed Call Pickup by Polycom ip-phones (parameter useLocalTargetUriforLegacyPickup). Also XML sanitized Display names. ASTERISK-24601 Change-Id: If130a2f2f3b2339b14dca0ec0ebeea3a87b34343
-
- May 26, 2022
-
-
Shloime Rosenblum authored
Agi commnad exec can now evaluate dialplan functions and variables if variable AGIEXECFULL is set to yes. this can be useful when executing Playback or Read from agi. ASTERISK-30058 #close Change-Id: I669991f540496e7bddd096fec82b52c083036832
-
- May 22, 2022
-
-
Sean Bright authored
Make sure that we have a working sed before trying to use it. ASTERISK-30059 #close Change-Id: I9abad67a5df11b665d480feec304ab9d6f55cc76
-
Moritz Fain authored
This change exposes the channel driver's unique id (i.e. the Call-ID for chan_sip/chan_pjsip based channels) to ARI channel resources as `protocol_id`. ASTERISK-30027 Reported by: Moritz Fain Tested by: Moritz Fain Change-Id: I7cc6e7a9d29efe74bc27811d788dac20fe559b87
-
- May 20, 2022
-
-
Sean Bright authored
ASTERISK-30060 #close Change-Id: I88d47a1488be2f39017b8d562f993f081844fcb8
-
- May 17, 2022
-
-
Joshua C. Colp authored
As part of PJSIP 2.11 a behavior change was done to require a matching remote hostname on an established transport for secure transports. Since the Websocket transport is considered a secure transport this caused the existing connection to not be found and used. We now set the remote hostname and the transport can be found. ASTERISK-30065 Change-Id: Ia1cdef33e1411f927985b4b852c95e163c080e94
-
- May 13, 2022
-
-
Thomas Guebels authored
This is needed to be able to restore it in REGISTER responses, otherwise the client won't be able to find the contact it created. ASTERISK-30042 Change-Id: I0c5823918199acf09246b3b206fbde66773688f6
-
Naveen Albert authored
Adjusts the pjsip show registration(s) commands to show the amount of seconds remaining until a registration expires. ASTERISK-29845 #close Change-Id: Ic4fea15a1a1056c424416def49d1ca8e776c0483
-
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
-
-
Naveen Albert authored
Currently, the operator services mode in DAHDI is broken and unusable. The actual operator recall functionality works properly; however, when the operator hangs up (which is the only way that such a call is allowed to end), both lines are permanently taken out of service until "dahdi restart" is run. This prevents this feature from being used. Operator mode is one of the few factors that can cause the general analog event handling in sig_analog not to be used. Several years back, much of the analog handling was moved from chan_dahdi to sig_analog. However, this was not done fully or consistently at the time, and when operator mode is active, sig_analog does not get used. Generally this is correct, but in the case of hangup it should be using sig_analog regardless of the operator mode; otherwise, the lines do not properly clear and they become unusable. This bug is fixed so the operator can now hang up and properly release the call. It is treated just like any other hangup. The operator mode functionality continues to work as it did before. ASTERISK-29993 #close Change-Id: Ib2e3ddb40d9c71e8801e0b4bb0a12e2b52f51d24
-
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
-
George Joseph authored
GCC 12 caught an issue in state_id_by_topic where we were checking a pointer for NULL instead of the contents of the pointer for '\0'. ASTERISK-30044 Change-Id: Ia0b04d4fff45c92acb7f07132a33622fa341148e
-
- May 05, 2022
-
-
Maximilian Fridrich authored
When a new unreal (local) channel is created, a second (;2) channel is created as a counterpart which clones the topology of the first channel. This creates issues when an outgoing stream is sendonly or recvonly as the stream state of the inbound channel will be the same as the stream state of the outbound channel. Now the stream state is flipped for the streams of the 2nd channel in ast_unreal_new_channels if the outgoing stream topology is recvonly or sendonly. ASTERISK-29655 Reported by: Michael Auracher ASTERISK-29638 Reported by: Michael Auracher Change-Id: I0cea29635bb20b7bf7fd0fb95498cd44dab98fbf
-
- 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
-
Naveen Albert authored
For lines that have mailboxes configured on them, with FSK MWI, DAHDI will periodically try to dispatch FSK to update MWI. However, this is never supposed to be done when a channel is not idle. There is currently an edge case where MWI FSK can extraneously get spooled for the channel if a caller hook flashes and hangs up, which triggers a recall ring. After one ring, the on hook time threshold in this if condition has been satisfied and an MWI update is spooled. This means that when the phone is picked up again, the answerer gets an FSK spill before being reconnected to the party on hold. To prevent this, we now explicitly check to ensure that subchannel 0 has no owner. There is no owner when DAHDI channels are idle, but if the channel is "in use" in some way (such as in the aforementioned scenario), then there is an owner, and we shouldn't process MWI at this time. ASTERISK-28518 #close Change-Id: Ia3904434fd81688d71742f7e84358b7e1c38e92a
-
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
-
Naveen Albert authored
Currently, if any custom ring cadences are specified, they are appended to the array of cadences from wherever we left off last time. This works properly the first time, but on subsequent dahdi restarts, it means that the existing cadences are left alone and (most likely) the same cadences are then re-added afterwards. In short order, the cadence array gets maxed out and the user begins seeing warnings that the array is full and no more cadences may be added. This buggy behavior persists until Asterisk is completely restarted; however, if and when dahdi restart is run again, then the same problem is reintroduced. This fixes this behavior so that cadence parsing is more idempotent, that is so running dahdi restart multiple times starts adding cadences from the beginning, rather than from wherever the last cadence was added. As before, it is still not possible to revert to the default cadences by simply removing all cadences in this manner, nor is it possible to delete existing cadences. However, this does make it possible to update existing cadences, which was not possible before, and also ensures that the cadences remain unchanged if the config remains unchanged. ASTERISK-29990 #close Change-Id: Ie32ea3e8a243b766756b1afce684d4a31ee7421d
-
Naveen Albert authored
Currently, if attempting to place a call to a peer that only allows RSA authentication, if we fail to provide an outkey when placing the call, Asterisk will crash. This exposes the broader issue that IAX2 is prone to causing a crash if encryption or decryption is attempted but we never initialized the encryption and decryption keys. In other words, if the logic to use encryption in chan_iax2 is not perfectly aligned with the decision to build keys in the first place, then a crash is not only possible but probable. This was demonstrated by ASTERISK_29264, for instance. This permanently prevents such events from causing a crash by explicitly checking that keys are initialized properly before setting the flags to use encryption for the call. Instead of crashing, the call will now abort. ASTERISK-30007 #close Change-Id: If925c3d86099ceac7f621804f2532baac5050c9a
-
- Apr 28, 2022
-
-
Naveen Albert authored
A bug in menuselect can cause modules that are disabled by default to be recompiled every time a recompilation occurs. This occurs for module categories that are NOT positive output, as for these categories, the modules contained in the makeopts file indicate modules which should NOT be selected. The existing procedure of iterating through these modules to mark modules as present is thus insufficient. This has led to modules with a default_enabled tag of "no" to get deleted and recompiled every time, even when they haven't changed. To fix this, we now modify the mark as present behavior for module categories that are not positive output. For these, we start by iterating through the module tree and marking all modules as present, then go back and mark anything contained in the makeopts file as not present. This ensures that makeopt selections are actually used properly, regardless of whether a module category uses positive output or not. ASTERISK-29728 #close Change-Id: Idf2974c4ed8d0ba3738a92f08a6082b234277b95
-
- 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
-
Naveen Albert authored
Some command line options to Asterisk only apply when Asterisk is started and cannot be used with remote console mode. If a user tries to use any of these, they are currently simply silently ignored. This prints out a warning if incompatible options are used, informing users that an option used cannot be used with remote console mode. Additionally, some clarifications are added to the help text and man page. ASTERISK-22246 ASTERISK-26582 Change-Id: I980a5380ef2c19e8ea348596396d5382893c4337
-
Naveen Albert authored
Adds the DB_KEYCOUNT function, which can be used to retrieve the number of keys at a given prefix in AstDB. ASTERISK-29968 #close Change-Id: Ib2393b77b7e962dbaae6192f8576bc3f6ba92d09
-
Naveen Albert authored
According to chan_dahdi.conf, up to 64 groups (numbered 0 through 63) can be used when dialing DAHDI channels. However, currently dialing round robin with a group number greater than 31 fails because the array for the round robin structure is only size 32, instead of 64 as it should be. This fixes that so the round robin array size is consistent with the actual groups capacity. ASTERISK-29994 Change-Id: I4caa08d7025f78ac75a0539f71aaf3eb3e85b3b7
-
Mark Petersen authored
If Asterisk receives a SIP REFER with Session-Timers UAC maintain Session-Timers when sending UPDATE" ASTERISK-29843 Change-Id: I8e9a21c13bf757fa34d778f49ba3cf859b29ae5c
-
Naveen Albert authored
This adds the EVAL_EXTEN function, which may be used to retrieve the variable-substituted data at any extension. ASTERISK-29486 Change-Id: Iad81019689674c9f4ac77d235f5d7234adbb1432
-
Naveen Albert authored
Currently, if a user uses an application like ControlPlayback to try to rewind a file past the beginning, this can throw warnings when the file format (e.g. PCM) tries to seek to a negative offset. Instead of letting file formats try (and fail) to seek a negative offset, we instead now catch this in the rewind function to ensure that we never seek an offset less than 0. This prevents legitimate user actions from triggering warnings from any particular file formats. ASTERISK-29943 #close Change-Id: Ia53f2623f57898f4b8e5c894b968b01e95426967
-
- Apr 26, 2022
-
-
Naveen Albert authored
PJSIP currently is capable of receiving flash events and converting them to FLASH control frames, but it currently lacks support for doing the reverse: taking a FLASH control frame and converting it into a flash event in the SIP domain. This adds the ability for PJSIP to process flash control frames by converting them into the appropriate SIP INFO message, which can then be sent to the peer. This allows, for example, flash events to be sent between Asterisk systems using PJSIP. ASTERISK-29941 #close Change-Id: I1590221a4d238597f79672fa5825dd4a920c94dd
-
Naveen Albert authored
Adds the dialplan eval function commands to evaluate a dialplan function from the CLI. The return value and function result are printed out and can be used for testing or debugging. ASTERISK-29820 #close Change-Id: I833e97ea54c49336aca145330a2adeebfad05209
-
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
-
Naveen Albert authored
Removes a couple sample config files for modules which have since been removed from Asterisk. ASTERISK-30008 #close Change-Id: I6be89cafc6c575d98a5315e4912b61a833aacf52
-
Mark Petersen authored
added new global config option "allow_sending_180_after_183" that if enabled will preserve 180 after a 183 ASTERISK-29842 Change-Id: I8a53f8c35595b6d16d8e86e241b5f110d92f3d18
-
Mark Petersen authored
if Asterisk need to send an UPDATE before answer on a channel that uses Record-Route: it will not include a Route header ASTERISK-29955 Change-Id: Id1920ecbfea7739a038b14dc94487ecfe7b57eef
-
Joshua C. Colp authored
On a write error to an AMI session a flag was set to indicate that the write error had occurred, with the expected result being that the session be terminated. This was not actually happening and instead writing would continue to be attempted. This change adds a check for the write error and causes the session to actually terminate. ASTERISK-29948 Change-Id: Icaf5d413d4c0d5dc78292a17287fecc8720a31a5
-
Yury Kirsanov authored
Patch provided inline by Yury Kirsanov on the linked issue and approved by Josh Colp. ASTERISK-29253 #close Change-Id: I5b9ccc67ebf06e875ed061d9e7fc21f47b0a4e1f
-
Kevin Harwell authored
Add framework to connect to, and read and write protocol based messages from and to an external application using an Asterisk External Application Protocol (AEAP). This has been divided into several abstractions: 1. transport - base communication layer (currently websocket only) 2. message - AEAP description and data (currently JSON only) 3. transaction - links/binds requests and responses 4. aeap - transport, message, and transaction handler/manager This patch also adds an AEAP implementation for speech to text. Existing speech API callbacks for speech to text have been completed making it possible for Asterisk to connect to a configured external translator service and provide audio for STT. Results can also be received from the external translator, and made available as speech results in Asterisk. Unit tests have also been created that test the AEAP framework, and also the speech to text implementation. ASTERISK-29726 #close Change-Id: Iaa4b259f84aa63501e5fd2a6fb107f900b4d4ed2
-