When reloading dialplan, hints created dynamically would lose any dash
characters. Now we ignore those dashes if we are dealing with a hint
during a reload.
ASTERISK-28040 #close
Change-Id: I95e48f5a268efa3c6840ab69798525d3dce91636
Fixes compiler warning caused by a truncated copy of the ANI2 into a
buffer of size 10. This could prevent the null terminator from being
copied if the copy value exceeds the size of the buffer. This increases
the buffer size to 101 to ensure there is no way for truncation to occur.
ASTERISK-29702 #close
Change-Id: Ief9052212952840fa44de6463b8699fdb3e163d0
If users are able to press # for options while leaving
a message and then press 3 to rerecord the message, if
the caller hangs up during the rerecord prompt but before
Asterisk starts recording a message, then an "empty"
voicemail gets processed whereby an email gets sent out
notifying the user of a 0:00 duration message. The file
doesn't actually exist, so playback will fail since there
was no message to begin with.
This adds a check after the streaming of the rerecord
announcement to see if the caller has hung up. If so,
we bail out early so that we can clean up properly.
ASTERISK-29391 #close
Change-Id: Id965d72759a2fd3b39afb76fec08aaebebe75c31
Historically, the dial syntax for IAX2 has held that
an outkey (used only for RSA authenticated calls)
and a secret (used only for plain text and MD5 authenticated
calls, historically) were mutually exclusive, and thus
the same position in the dial string was used for both
values.
Now that encryption is possible with RSA authentication,
this poses a limitation, since encryption requires a
secret and RSA authentication requires an outkey. Thus,
the dial syntax is extended so that both a secret and
an outkey can be specified.
The new extended syntax is backwards compatible with the
old syntax. However, a secret can now be specified after
the outkey, or the outkey can be specified after the secret.
This makes it possible to spawn an encrypted RSA authenticated
call without a corresponding peer being predefined in iax.conf.
ASTERISK-29707 #close
Change-Id: I1f8149313ed760169d604afbb07720a8b07dd00e
* Initialize some variables that are never used anyway.
* Use valid pointers instead of integers cast to void pointers when
calling pthread_setspecific().
ASTERISK-29711 #close
ASTERISK-29713 #close
Change-Id: I8728cd6f2f4b28e0e48113c5da450b768c2a6683
The search for a running asterisk when --running is used
has been greatly simplified and in the event it doesn't
work, you can now specify a pid to use on the command
line with --pid.
The search for asterisk modules when --tarball-coredumps
is used has been enhanced to have a better chance of finding
them and in the event it doesn't work, you can now specify
--libdir on the command line to indicate the library directory
where they were installed.
The DATEFORMAT variable was renamed to DATEOPTS and is now
passed to the 'date' utility rather than running DATEFORMAT
as a command.
The coredump and output files are now renamed with DATEOPTS.
This can be disabled by specifying --no-rename.
Several confusing and conflicting options were removed:
--append-coredumps
--conffile
--no-default-search
--tarball-uniqueid
The script was re-structured to make it easier for follow.
Change-Id: I674be64bdde3ef310b6a551d4911c3b600ffee59
Add a function to check if there is an exact match a one string between
delimiters in another string.
Add a function that will create an ast_json object out of a list of
Asterisk variables. An excludes string can also optionally be passed
in.
Also, add a macro to make it easier to get object integers.
Change-Id: I5f34f18e102126aef3997f19a553a266d70d6226
The stir_shaken configuration option now has 4 different choices to pick
from: off, attest, verify, and on. Off and on behave the same way they
do now. Attest will only perform attestation on the endpoint, and verify
will only perform verification on the endpoint.
Certain responses are required to be sent based on certain conditions
for STIR/SHAKEN. For example, if we get a Date header that is outside of
the time range that is considered valid, a 403 Stale Date response
should be sent. This and several other responses have been added.
Change-Id: I4ac1ecf652cd0e336006b0ca638dc826b5b1ebf7
Add a time_t logintime to storage a time when a member is added into a
queue.
Also, includes show this time (in seconds) using a 'queue show' command
and the field LoginTime for response for AMI events.
ASTERISK-18069 #close
Change-Id: Ied6c3a300f78d78eebedeb3e16a1520fc3fff190
Add a new function that converts a speech results type to a string.
Also add another function to unregister an engine, but returns a
pointer to the unregistered engine object instead of a success/fail
integer.
Change-Id: I0f7de17cb411021c09fb03988bc2b904e1380192
test_voicemail_api: Use empty char* for empty_msg_ids.
chan_skinny: Fix size of calledParty to be maximum extension.
menuselect: Change Makefile to stop deprecated warnings. Added comments
test_linkedlist: 'bogus' variable was manually allocated from a macro
and the test fails if this happens but the compiler couldn't 'see' this
and returns a warning. memset to all 0's after allocation.
chan_ooh323: Fixed various indentation issues that triggered misleading
indentation warnings.
ASTERISK-29682
Reported by: George Joseph
Change-Id: If4fe42222c8444dc16828a42731ee53b4ce5cbbe
I am adding a mix option that will play by filename and say.conf unlike
say option that will only play with say.conf. It
will look on the format of the name, if it is like say it play with
say.conf if not it will play the file name.
ASTERISK-29662
Change-Id: I815816916a308f0fa8f165140dc15772dcbd547a
OpenSSL is one of those packages that often have alternatives
with later versions. For instance, CentOS/EL 7 has an
openssl package at version 1.0.2 but there's an openssl11
package from the epel repository that has 1.1.1. This gets
installed to /usr/include/openssl11 and /usr/lib64/openssl11.
Unfortunately, the existing --with-ssl and --with-crypto
./configure options expect to point to a source tree and
don't work in this situation. Also unfortunately, the
checks in ./configure don't use pkg-config.
In order to make this work with the existing situation, you'd
have to run...
./configure --with-ssl=/usr/lib64/openssl11 \
--with-crypto=/usr/lib64/openssl11 \
CFLAGS=-I/usr/include/openssl11
BUT... those options don't get passed down to bundled pjproject
so when you run make, you have to include the CFLAGS again
which is a big pain.
Oh... To make matters worse, although you can specify
PJPROJECT_CONFIGURE_OPTS on the ./configure command line,
they don't get saved so if you do a make clean, which will
force a re-configure of bundled pjproject, those options
don't get used.
So...
* In configure.ac... Since pkg-config is installed by install_prereq
anyway, we now use it to check for the system openssl >= 1.1.0.
If that works, great. If not, we check for the openssl11
package. If that works, great. If not, we fall back to just
checking for any openssl. If pkg-config isn't installed for some
reason, or --with-ssl=<dir> or --with-crypto=<dir> were specified
on the ./configure command line, we fall back to the existing
logic that uses AST_EXT_LIB_CHECK().
* The whole OpenSSL check process has been moved up before
THIRD_PARTY_CONFIGURE(), which does the initial pjproject
bundled configure, is run. This way the results of the above
checks, which may result in new include or library directories,
is included.
* Although not strictly needed for openssl, We now save the value of
PJPROJECT_CONFIGURE_OPTS in the makeopts file so it can be used
again if a re-configure is triggered.
ASTERISK-29693
Change-Id: I341ab7603e6b156aa15a66f43675ac5029d5fbde
There are 3 separate changes here:
1. The documentation erroneously stated that the dsp_talking_threshold
argument was a number of milliseconds when it is actually an energy
level used by the DSP code to classify talking vs. silence.
2. Fixes a copy paste error in the argument handling code.
3. Don't erroneously switch to the talking state if we aren't actively
handling a frame we've classified as talking.
Patch inspired by one provided by Moritz Fain (License #6961).
ASTERISK-27816 #close
Change-Id: I5953fd570b98b49c41cee55bfe3b941753fb2511
Discovered while looking at ASTERISK~29684. Usage was removed in change
I3c77c7b00b2ffa2e935632097fa057b9fdf480c0.
Change-Id: Iaf2f7a16ea5a7eee6375319347e4b40b8e7b10e3
download_externals: Add check for i686 and i386 (in addition
to the current x86_64) and exit if not one of the three.
ASTERISK-26497
Change-Id: Ia4d429fcefa5b2f5b6e99159d4607de8e8325b2f
Some ast_stun_request users do not provide a destination address when
sending to a connection-mode socket.
ASTERISK-29691
Change-Id: Idd9114c3380216ba48abfc3c68619e79ad37defc
If you aren't using GNU coreutils, chances are that your basename
doesn't know about the -s argument. Luckily for us, basename does what
we need it do even without the -s argument.
Change-Id: I8b81a429bb037b997ee6640ff8a2b5e860962bb7
Adds support for encryption to RSA-authenticated
calls. Also prevents crashes if an RSA IAX2 call
is initiated to a switch requiring encryption
but no secret is provided.
ASTERISK-20219
Change-Id: I18f1f9d7c59b4f9cffa00f3b94a4c875846efd40
In res_pjsip_sdp_rtp, the bind_rtp_to_media_address option and the
fallback use of the transport's bind address solve problems sending
media on systems that cannot send ipv4 packets on ipv6 sockets, and
certain other situations. This change extends both of these behaviors
to UDPTL sessions as well in res_pjsip_t38, to fix fax-specific
problems on these systems, introducing a new option
endpoint/t38_bind_udptl_to_media_address.
ASTERISK-29402
Change-Id: I87220c0e9cdd2fe9d156846cb906debe08c63557
If the terminator character is not explicitly specified
and an indications tone is used for reading a digit,
there is no null pointer check so Asterisk crashes.
This prevents null usage from occuring.
ASTERISK-29673 #close
Change-Id: Ie941833e123c3dbfb88371b5de5edbbe065514ac
The current versions do not support future dates in all say application when using the 'Q' or 'q' format parameter and says "today" for everything that is greater than today
ASTERISK-29637
Change-Id: I1fb1cef0ce3c18d87b1fc94ea309d13bc344af02
The behavior of max_contacts and remove_existing are connected. If
remove_existing is enabled, the soonest expiring contacts are removed.
This may occur when there is an unavailable contact. Similarly,
when remove_existing is not enabled, registrations from good
endpoints are rejected in favor of retaining unavailable contacts.
This commit adds a new AOR option remove_unavailable, and the effect
of this setting will depend on remove_existing. If remove_existing
is set to no, we will still remove unavailable contacts when they
exceed max_contacts, if there are any. If remove_existing is set to
yes, we will prioritize the removal of unavailable contacts before
those that are expiring soonest.
ASTERISK-29525
Change-Id: Ia2711b08f2b4d1177411b1be23e970d7fdff5784
When listing bridges we go through the ones present in
ARI, get their snapshot, turn it into JSON, and add it
to the payload we ultimately return.
An invisible "dial bridge" exists within ARI that would
also try to be added to this payload if the channel
"create" and "dial" routes were used. This would ultimately
fail due to invisible bridges having no snapshot
resulting in the listing of bridges failing.
This change makes it so that the listing of bridges
ignores invisible ones.
ASTERISK-29668
Change-Id: I14fa4b589b4657d1c2a5226b0f527f45a0cd370a
The MessageSend AMI action has been updated to allow the Destination
and the To addresses to be provided separately. This brings the
MessageSend manager command in line with the capabilities of the
MessageSend dialplan application.
ASTERISK-29663 #close
Change-Id: I8513168d3e189a9fed88aaab6f5547ccb50d332c
Adds a function to check for the existence of a channel by
name or by UNIQUEID.
ASTERISK-29656 #close
Change-Id: Ib464e9eb6e13dc683a846286798fecff4fd943cb
Previously, if custom hints were used with the hint:
format in app_queue, when device state changes occured,
app_queue would only do a literal string comparison of
the context used for the hint in app_queue and the context
of the hint which just changed state. This caused hints
to not update and become stale if the context associated
with the agent included the context which actually changes
state, essentially completely breaking device state for
any such agents defined in this manner.
This fix adds an additional check to ensure that included
contexts are also compared against the context which changed
state, so that the behavior is correct no matter whether the
context is specified to app_queue directly or indirectly.
ASTERISK-29578 #close
Change-Id: I8caf2f8da8157ef3d9ea71a8568c1eec95592b78
Rather than stripping parameters from Content-Type headers before
comparison, first try to compare the whole string. If no match is
found, strip the parameters and try that way.
ASTERISK-29275 #close
Change-Id: I2963c8ecbb3a9605b78b6421c415108d77a66a0f
Adds the ability for users to log to custom log levels
by providing custom log level names in logger.conf. Also
adds a logger show levels CLI command.
ASTERISK-29529
Change-Id: If082703cf81a436ae5a565c75225fa8c0554b702
Some code has been added referencing symbols defined in a block
protected by #ifdef HAVE_PJPROJECT. Protect those code parts in
ifdef blocks too.
ASTERISK-29660
Change-Id: Ib18d4392d51ac80ca5481dabf6e498a4e3e49e6f
An issue was found where a particular manufacturer's phones add a
trailing space to the end of the rtpmap attribute when specifying
a payload type that has a "param" after the format name and clock
rate. For example:
a=rtpmap:120 opus/48000/2 \r\n
Because pjmedia_sdp_attr_get_rtpmap currently takes everything after
the second '/' up to the line end as the param, the space is
included in future comparisons, which then fail if the param being
compared to doesn't also have the space.
We now use pj_scan_get() to parse the param part of rtpmap so
trailing whitespace is automatically stripped.
ASTERISK-29654
Change-Id: Ibd0a4e243a69cde7ba9312275b13ab62ab86bc1b
In new mpg123 versions (since 1.26) the default output is 32 bits
Asterisk expects the output in 16 bits, so we force the output to be on 16 bits.
It will work wit new and old versions of mpg123.
Thanks Thomas Orgis <thomas-forum@orgis.org> for giving the key!
ASTERISK-29635 #close
Change-Id: I88c7740118b5af4e895bd8b765b68ed5c11fc816
Adds parsing of ANI II digits (Originating
Line Information) to PJSIP, on par with
what currently exists in chan_sip.
ASTERISK-29472
Change-Id: Ifc938a7a7d45ce33999ebf3656a542226f6d3847
Adds a SendMF application and PlayMF manager
event to send arbitrary R1 MF tones on the
current or specified channel.
ASTERISK-29496
Change-Id: I5d89afdbccee3f86cc702ed96d882f3d351327a4
Previously, the error emitted when app_stack tries
to branch to a dialplan location that doesn't exist
has included only the information about the attempted
branch in the error log. This adds the current location
as well so users can see where the branch failed in
the logs.
ASTERISK-29626
Change-Id: Ia23502ab2ad21485a1ac74295063a8f25a6df5ce
Adds the STRBETWEEN function, which can be used to insert a
substring between each character in a string. For instance,
this can be used to insert pauses between DTMF tones in a
string of digits.
ASTERISK-29627
Change-Id: Ice23009d4a8e9bb9718d2b2301d405567087d258