ast_bind to a port reserved for another program by SELinux causes
errno == EACCES. This caused random failures when binding rtp or
udptl sockets. Treat EACCES as a non-fatal error, try next port.
(closes issue ASTERISK-23134)
Reported by: Corey Farrell
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@406933 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Asterisk's RADIUS module currently build against libradiusclient-ng, but this
project has been superseeded by libfreeradius-client. The API is 99% compatible
except that the header name has changed, the library name has changed, and
the configuration file location has changed.
(closes issue ASTERISK-22980)
Reported by: Jeremy Lainé
Patches:
freeradius-client.patch uploaded by sharky (license 6561)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@406801 65c4cc65-6c06-0410-ace0-fbb531ad65f3
In ast_rtp_instance_make_compatible(), after a failure of
channel tech call get_rtp_info() to return peer_instance,
the null pointer would be passed to ao2_ref, producing an
error that looked like a refernce counting problem but is
not. This patch corrects that and adds helpful LOG_ERROR
messages to indicate which failure path occurred.
(issue AST-1276)
Review: https://reviewboard.asterisk.org/r/3156/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@406721 65c4cc65-6c06-0410-ace0-fbb531ad65f3
extconfig.conf was hard-coded to not allow nested includes for some reason.
The code has been this way since a patch was merged for ASTERISK-3333 (revision
4889), which was a significant update to this code ("Merge config updates").
I can't figure out any good reason why this should be limited. This patch just
removes the limit and uses the default nesting depth limit.
Closes issue ASTERISK-17837
Review: https://reviewboard.asterisk.org/r/3159/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@406643 65c4cc65-6c06-0410-ace0-fbb531ad65f3
The ast_filestream object gets tacked on to a channel via
chan->timingdata. It's a reference counted object, but the reference
count isn't used when putting it on a channel. It's theoretically
possible for another thread to interfere with the channel while it's
unlocked and cause the filestream to get destroyed.
Use the astobj2 reference count to make sure that as long as this code
path is holding on the ast_filestream and passing it into the file.c
playback code, that it knows it's valid.
Bug reported by Leif Madsen.
Review: https://reviewboard.asterisk.org/r/3135/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@406566 65c4cc65-6c06-0410-ace0-fbb531ad65f3
The CEL data structures need to be protected during a configuration reload
and shutdown. Asterisk crashed during a shutdown because CEL events were
still in flight and the CEL data structures were already destroyed.
* Protected the appset and linkedids ao2 containers using the reload_lock.
* Added NULL checks before use of the appset and linkedids ao2 containers
in case the CEL module is already shutdown.
* Fixed overloading of the linkedids held objects reference count. During
shutdown any held objects would be leaked.
* Fixed memory leak of linkedids held objects if the LINKEDID_END is not
being tracked. The objects in the linkedids container were not removed if
the LINKEDID_END event is not used.
* Added access protection to the appset container during the CLI "cel show
status" command.
* Made CEL config reload not set defaults if the cel.conf file is invalid.
(closes issue AST-1253)
Reported by: Guenther Kelleter
Review: https://reviewboard.asterisk.org/r/3127/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@406417 65c4cc65-6c06-0410-ace0-fbb531ad65f3
* Made register atexit shutdown routine only once in __init_manager().
* Fixed some initial load failure conditions in __init_manager().
* Made reset options to defaults on reload when the reload will actually
happen.
* Fixed the order of unreferencing a session object in session_destroy().
* Removed unnecessary container traversals of the white/black filters
during session_destructor() and manager_free_user().
* ast_free() does not need a NULL check before calling.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@406359 65c4cc65-6c06-0410-ace0-fbb531ad65f3
In ast_build_timing, initialize the timezone value to NULL
in order to avoid deferencing an uninitialized value later
when calling ast_destroy_timing. The timezone value could
be uninitialized if ast_build_timing were to fail due to a
zero length time string.
(closes issue ASTERISK-22861)
Reported by: Sebastian Murray-Roberts
Review: https://reviewboard.asterisk.org/r/3134/
Patches:
ast_build_timing-initialize-timezone.patch uploaded by coreyfarrell (license 5909)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@406241 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This change allows chan_sip to decline individual image streams over
unsupported transports in the SDP of the 200 response. Previously,
an image stream offer with RTP/AVP as the transport would cause
chan_sip to respond with a 488.
(closes issue ASTERISK-22988)
Reported by: adomjan
Original patch by: adomjan
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@406170 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This restricts direct usage of global oseq so that all accesses are
locked and threads are not racing to get oseq values that they did not
claim.
This also fixes a build error in res_pktccops under dev mode.
(closes issue ASTERISK-23100)
Reported by: adomjan
Patch by: adomjan
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@406037 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Fixes typos of "transfered" instead of "transferred" in various code. Fixes incorrect gosub param help text for app_queue.
Fixes Asterisk man pages containing unquoted minus signs. Adds note about the "textsupport" option in sip.conf.sample.
(issue ASTERISK-23061)
(issue ASTERISK-23028)
(issue ASTERISK-23046)
(issue ASTERISK-23027)
(closes issue ASTERISK-23061)
(closes issue ASTERISK-23028)
(closes issue ASTERISK-23046)
(closes issue ASTERISK-23027)
Reported by: Eugene, Jeremy Laine, Denis Pantsyrev
Patches:
transferred.patch uploaded by Jeremy Laine (license 6561)
hyphen.patch uploaded by Jeremy Laine (license 6561)
sip.conf.sample.patch uploaded by Eugene (license 6360)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@405791 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Added some text to UPGRADES.txt about the V.27 mode rate changes in r405656.
(issue ASTERISK-22790)
Reported by: Paolo Compagnini
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@405692 65c4cc65-6c06-0410-ace0-fbb531ad65f3
According to the new standard for V.27 and V.32 they are able to transmit
at a bit rate of 4,800 or 9,600. The check_mode_rate function needed to be
updated to reflect this. Also, because of this change the default 'minrate'
value was updated to be 4800.
(closes issue ASTERISK-22790)
Reported by: Paolo Compagnini
Patches:
res_fax.txt uploaded by looserouting (license 6548)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@405656 65c4cc65-6c06-0410-ace0-fbb531ad65f3
The cel_manager module did not properly handle the case where the
configuration file was invalid. The module will now output a warning
message and disable itself if this occurs.
Reported by: Bryan Walters
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@405581 65c4cc65-6c06-0410-ace0-fbb531ad65f3
In ASTERISK-12117, an improvement to insure consistant local from tags
on outbound registrations resulted in an undesirable behavior - caused
by leftover unexpired sip_pvt dialogs (with the previous cseq number),
resulting in many uncessary REGISTER requests. Instead of significant
rework of transmit_register(), this change deletes the dialogs after a
200 OK response indiciating a successful registration, keeping the old
dialogs from interfering with normal operation.
(closes issue ASTERISK-22946)
Reported by: Stephan Eisvogel
Review: https://reviewboard.asterisk.org/r/3109/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@405433 65c4cc65-6c06-0410-ace0-fbb531ad65f3
When performing a SIP transfer to a Park extension, if the Park fails, chan_sip
will currently not hang up either the transferer or the transfer target. This
results in the channels being orphaned with no thread to service frames,
resulting in stuck channels.
This patch immediately hangs up the two channels if a Park fails.
(closes issue ASTERISK-22834)
Reported by: rsw686
(closes issue ASTERISK-23047)
Reported by: Tommy Thompson
Review: https://reviewboard.asterisk.org/r/3107
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@405379 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Add a note that the "retry on 403 response to REGISTER" for chan_sip is
non-functional in the versions in which it was first introduced.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@405088 65c4cc65-6c06-0410-ace0-fbb531ad65f3
In r404674 the AST_TEST_DEFINE(test_REPLACE) test was added
that made use of a function that doesn't exist in 1.8. This
fixes that by reverting to directly accessing chan varshead.
Reported by: Tzafrir Cohen
(issue ASTERISK-22910)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@404951 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Even since the fixes of AST-2013-007, Asterisk prints the following
warning on startup if the user decided to live dangerously:
Privilege escalation protection disabled!
See https://wiki.asterisk.org/wiki/x/1gKfAQ for more details.
This message is intended for the logs and interactive startup. No need
for it to appear on a remote console. This commit removes it from there.
(closes issue ASTERISK-23084)
Review: https://reviewboard.asterisk.org/r/3101/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@404861 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Upon reload the module unconditionally "unloaded" the module (freeing memory
and setting pointers to NULL) and then when attempting a "load" if the config
file had not changed then nothing would be reinitialized.
By moving the "unload" to occur conditionally (reload only) after an attempted
configuration load, but before module "loading" alleviates the issue. The module
now loads/unloads/reloads correctly.
(closes issue ASTERISK-22871)
Reported by: Matteo
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@404857 65c4cc65-6c06-0410-ace0-fbb531ad65f3
dahdi show channels output slices the callerid (which is dnid copied over on
PRI channels). If the channel naming structures look like:
'DAHDI/i1/1408409XXXX-6'
then the output slices 1408409XXXX down to 1408409XXX. This patch just opens
it up to 15 chars so you can see the whole thing.
(closes issue ASTERISK-22918)
Reported by: outtolunc
Patches:
svn_chan_dahdi.c.format12_15.diff.txt uploaded by outtolunc (license 5198)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@404784 65c4cc65-6c06-0410-ace0-fbb531ad65f3
When calling REPLACE() with an empty replace-char argument, strcpy
is used to overwrite the the matching <find-char>. However as the
src and dest arguments to strcpy must not overlap, it causes other
parts of the string to be overwritten with adjacent characters and
the result is mangled. Patch replaces call to strcpy with memmove
and adds a test suite case for REPLACE.
(closes issue ASTERISK-22910)
Reported by: Gareth Palmer
Review: https://reviewboard.asterisk.org/r/3083/
Patches:
func_strings.patch uploaded by Gareth Palmer (license 5169)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@404674 65c4cc65-6c06-0410-ace0-fbb531ad65f3
A deadlock can happen between a thread unloading or reloading the cel_pgsql
module and the core_event_dispatcher taskprocessor thread. Description of
what is happening:
Thread 1 (for example, a netconsole thread):
a "module reload cel_pgsql" is launched
the thread enter the "my_unload_module" function (cel_pgsql.c)
the thread acquire the write lock on psql_columns
the thread enter the "ast_event_unsubscribe" function (event.c)
the thread try to acquire the write lock on ast_event_subs[sub->type]
Thread 2 (core_event_dispatcher taskprocessor thread):
the taskprocessor pop a CEL event
the thread enter the "handle_event" function (event.c)
the thread acquire the read lock on ast_event_subs[sub->type]
the thread callback the "pgsql_log" function (cel_pgsql.c), since it's a subscriber of CEL events
the thread try to acquire a read lock on psql_columns
(closes issue ASTERISK-22854)
Reported by: Etienne Lessard
Patches:
cel_pgsql_fix_deadlock_event.patch uploaded by hexanol (license 6394)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@404603 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This patch allows individual dialplan functions to be marked as
'dangerous', to inhibit their execution from external sources.
A 'dangerous' function is one which results in a privilege escalation.
For example, if one were to read the channel variable SHELL(rm -rf /)
Bad Things(TM) could happen; even if the external source has only read
permissions.
Execution from external sources may be enabled by setting
'live_dangerously' to 'yes' in the [options] section of asterisk.conf.
Although doing so is not recommended.
(closes issue ASTERISK-22905)
Review: http://reviewboard.digium.internal/r/432/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@403913 65c4cc65-6c06-0410-ace0-fbb531ad65f3
During dialplan execution in pbx_extension_helper(), the contexts global
read lock prevents link list corruption, but was released with a pointer
to the ast_exten and data later used in variable substitution. Instead,
this patch removes pbx_substitute_variables() and locates a copy of the
ast_exten data on the stack before releasing the lock, where ast_exten
could get free'd by another thread performing a module reload.
(issue AST-1179)
Reported by: Thomas Arimont
(issue AST-1246)
Reported by: Alexander Hömig
Review: https://reviewboard.asterisk.org/r/3055/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@403862 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This patch prevents an infinite loop overwriting memory when
a message is received into the unpacksms16() function, where
the length of the message is an odd number of bytes.
(closes issue ASTERISK-22590)
Reported by: Jan Juergens
Tested by: Jan Juergens
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@403853 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Prior to this patch, res_fax_spandsp was conservative with how it initialized
the spandsp T.38 context. It would only initialize it if the driver thought
the current state was a T.38 fax. While this works fine in nominal situations,
in certain off nominal situations, res_fax_spandsp can believe that a T.38
fax will not occur when in fact one has started. In particular, this was
discovered when res_fax would fall back to audio after timing out on a T.38
upgrade. The SIP channel driver would continue to retry the re-INVITE and -
if the remote end responded after res_fax timed out with a 200 OK - a T.38
frame would be delivered to the res_fax stack when it no longer expected it.
As it turns out, there does not appear to be any downside to always
initializing the T.38 context, other than the actual memory allocation.
Since that avoids this off nominal situation (and others which are equally
likely hard to predict), this is the safest way to avoid this problem.
Much thanks to Torrey as well for providing a scenario that reproduces this
issue.
(closes issue ASTERISK-21242)
Reported by: Ashley Winters
Tested by: Torrey Searle
patches:
always-init-t38.patch uploaded by awinters (License 6477)
A_PARTY.xml uploaded by tsearle (License 5334)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@403449 65c4cc65-6c06-0410-ace0-fbb531ad65f3
When translating from one format to another it is possible
to inform the translation function that the source frame should
be freed. This was previously done immediately but shortly
afterwards the frame that was freed was accessed and used again.
This change moves code around a bit so that the frame is now
freed after it has been completely used.
(closes issue ASTERISK-22788)
Reported by: Corey Farrell
Patches:
translate-access-after-free-11up.patch uploaded by coreyfarrell (license 5909)
translate-access-after-free-1.8.patch uploaded by coreyfarrell (license 5909)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@403014 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Asterisk will sometimes core dump during caller id read on analog
channels due to a negative return value from the read() in
my_get_callerid that slips through as a negative length argument to
callerid_feed() if the errno returned by DAHDI is ELAST. This change
ensures that the negative return is treated properly even when it is
ELAST.
(closes issue ASTERISK-22746)
Reported by: Michael Walton
Patches:
chan_dahdi_cid_crash_fix.r401410.patch uploaded by Michael Walton (License 6502)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@402708 65c4cc65-6c06-0410-ace0-fbb531ad65f3
In the current app_queue code from 1.8 up to trunk the upper and lower
penalties can be set to 0 but the value is interpreted to be disabled
instead of actually setting limits. This is especially evident if min
and max limits are set to 0 and members with penalties of 0 and 1 are
in the queue since the member with penalty 1 will still receive calls.
This patch adjusts the special disabled value to be INT_MAX instead of
0.
(closes issue ASTERISK-20862)
Review: https://reviewboard.asterisk.org/r/2995/
Reported by: Schmooze Com
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@402645 65c4cc65-6c06-0410-ace0-fbb531ad65f3
For outbound register requests the tag on the From line was
updated every 20 seconds prior to a successful registration
and also once for each registration renewal. That behavior
can possibly cause the registration to be denied because of
the different tag, and is not aligned with the intention of
RFC 3261 8.1.3.5 "... request constitutes a new transaction
and SHOULD have the same value of the Call-ID, To, and From
of the previous request...". This updates chan_sip to have
a field to keep the local tag in the registration structure
and use that tag for registration requests where the callid
is also unchanged.
(closes issue ASTERISK-12117)
Reported by: Pawel Pierscionek
Review: https://reviewboard.asterisk.org/r/2988/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@402604 65c4cc65-6c06-0410-ace0-fbb531ad65f3
The presentation indicator in a callerid (e.g. set by dialplan function
Set(CALLERID(name-pres)= ...)) is not checked when SIP Dialog Info Notifies
are generated during extension monitoring. Added a check to make sure the
name and/or number presentations on the callee (remote identity) are set to
allow. If they are restricted then "anonymous" is used instead.
(closes issue AST-1175)
Reported by: Thomas Arimont
Review: https://reviewboard.asterisk.org/r/2976/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@402468 65c4cc65-6c06-0410-ace0-fbb531ad65f3
For awhile now, we've noticed continuous integration builds hanging on CentOS 6
64-bit build agents. After resolving a number of problems with symbols, strange
locks, and other shenanigans, the problem has persisted. In all cases, gdb
shows the Asterisk process stuck in loader.c on one of the infinite while loops
that calls dlclose repeatedly until success.
The documentation of dlclose states that it returns 0 on success; any other
value on error. It does not state that repeatedly calling it will eventually
clear those errors. Most likely, the repeated calls to dlclose was to force a
close by exhausting the references on the library; however, that will never
succeed if:
(a) There is some fundamental error at work in the loaded library that
precludes unloading it
(b) Some other loaded module is referencing a symbol in the currently loaded
module
This results in Asterisk sitting forever.
Since we have matching pairs of dlopen/dlclose, this patch opts to only call
dlclose once, and log out as an ERROR if dlclose fails to return success. If
nothing else, this might help to determine why on the CentOS 6 64-bit build agent
things are not closing successfully.
Review: https://reviewboard.asterisk.org/r/2970
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@402287 65c4cc65-6c06-0410-ace0-fbb531ad65f3
The new sound packages relate to issues: ASTERISK-22544, ASTERISK-22411, ASTERISK-21413, ASTERISK-20782
Modified sounds/Makefile for the new sound versions and to account for the new en_GB language set.
(issue ASTERISK-22659)
(closes issue ASTERISK-22659)
(closes issue ASTERISK-22411)
(closes issue ASTERISK-22544)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@402224 65c4cc65-6c06-0410-ace0-fbb531ad65f3