]> git.ipfire.org Git - thirdparty/asterisk.git/log
thirdparty/asterisk.git
12 years agoModified the list of keys for the driver backends for sake of sample clarity
Rusty Newton [Mon, 8 Apr 2013 23:34:59 +0000 (23:34 +0000)] 
Modified the list of keys for the driver backends for sake of sample clarity

Added a line showing the mapping of "mysql" to res_config_mysql available in add-ons. We used "mysql" as an example driver key in the sample, but didn't show what module it mapped too. Also added a subtitle above the list of keys for driver backends.

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@385047 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoFix For Not Overriding The Default Settings In chan_sip
Michael L. Young [Mon, 8 Apr 2013 19:55:34 +0000 (19:55 +0000)] 
Fix For Not Overriding The Default Settings In chan_sip

The initial report was that the "nat" setting in the [general] section was not
having any effect in overriding the default setting.  Upon confirming that this
was happening and looking into what was causing this, it was discovered that
other default settings would not be overriden as well.

This patch works similar to what occurs in build_peer().  We create a temporary
ast_flags structure and using a mask, we override the default settings with
whatever is set in the [general] section.

In the bug report, the reporter who helped to test this patch noted that the
directmedia settings were being overriden properly as well as the nat settings.

(closes issue ASTERISK-21225)
Reported by: Alexandre Vezina
Tested by: Alexandre Vezina, Michael L. Young
Patches:
  asterisk-21225-handle-options-default-prob_1.8_v4.diff.diff
Michael L. Young (license 5026)

Review: https://reviewboard.asterisk.org/r/2386/

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@385008 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoBackport Appropiate NAT Setting Cleanup
Michael L. Young [Thu, 4 Apr 2013 19:31:40 +0000 (19:31 +0000)] 
Backport Appropiate NAT Setting Cleanup

In ASTERISK-20904, the focus was around the changes to NAT that took place in
Asterisk 11.  Since the report stated that 1.8 was fine, we didn't take a look
at 1.8 at the time.

While working on ASTERISK-21225, I could see that 1.8 would benefit from having
some of those changes applied to it.

This patch does the following:

* The important part of this patch is that it sets the peer's flags earlier in
  build_peer so that the code properly uses the peer's flags based on the peer's
  configuration.
* constify req parameter in check_via()
* update realtime schemas under the contrib directory to handle properly the NAT
  settings available in 1.8 as well as to handle the changes made in 11 to make
  upgrading easier when installing newer versions of Asterisk

(closes issue ASTERISK-21243)
Reported by: Michael L. Young
Patches:
    asterisk-20904-changes_for_1.8.diff Michael L. Young (license 5026)

Review: https://reviewboard.asterisk.org/r/2422/

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@384779 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agochan_dahdi: Add inband_on_proceeding compatibility option.
Richard Mudgett [Wed, 3 Apr 2013 20:13:18 +0000 (20:13 +0000)] 
chan_dahdi: Add inband_on_proceeding compatibility option.

The new inband_on_proceeding option causes Asterisk to assume inband audio
may be present when a PROCEEDING message is received.

Q.931 Section 5.1.2 says the network cannot assume that the CPE side has
attached to the B channel at this time without explicitly sending the
progress indicator ie informing the CPE side to attach to the B channel
for audio.  However, some non-compliant ISDN switches send a PROCEEDING
without the progress indicator ie indicating inband audio is available and
assume that the CPE device has connected the media path for listening to
ringback and other messages.

ASTERISK-17834 which causes this issue was dealing with a non-compliant
network switch.

(closes issue ASTERISK-21151)
Reported by: Gianluca Merlo
Tested by: rmudgett

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@384685 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoUpdate documentation for CHANNEL function
Matthew Jordan [Wed, 3 Apr 2013 17:05:55 +0000 (17:05 +0000)] 
Update documentation for CHANNEL function

Document that you can read/write the 'accountcode' and 'amaflags' on a channel.

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@384640 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoFixed spurious rebuilds of func_version.
David M. Lee [Tue, 2 Apr 2013 17:33:53 +0000 (17:33 +0000)] 
Fixed spurious rebuilds of func_version.

func_version.so was being rebuilt every time, because build.h was
changing every build, because of the cleantest dependency that was
added in r384410 to fix parallel make bugs.

Now build.h will only be created if it does not exist, which was the
original behavior of the Makefile.

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@384544 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoFix parallel make problems.
David M. Lee [Mon, 1 Apr 2013 13:18:15 +0000 (13:18 +0000)] 
Fix parallel make problems.

Occasionally, make -j would fail due to missing includes, or other
unusual errors.

This was due to the 'cleantest' target, which was designed to force a
make clean when some change in the code would cause the typical
depedency checking to fail. Several targets in the main Makefile did
not depend upon cleantest, hence would run in parallel to it. By
adding the dependency, make -j runs happily now.

Review: https://reviewboard.asterisk.org/r/2418/

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@384410 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoapp_voicemail: Add blank argument to externnotify if no context argument
Jonathan Rose [Fri, 29 Mar 2013 16:23:03 +0000 (16:23 +0000)] 
app_voicemail: Add blank argument to externnotify if no context argument

At least one call to run_externnotify provides a NULL context parameter and
because the snprintf statement doesn't account for a NULL context parameter,
it simply writes '(null)' to the arguments string instead. This patch makes
it write two quotes back to back for that argument instead in the event of
a NULL context.

(closes issue ASTERISK-18207)
Reported by: Barry L. Kline
Patches:
modified from patch-20130306 uploaded by Karsten Wemheuer (License 5930)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@384325 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoAddress uninitialized conditional that valgrind found
Kinsey Moore [Wed, 27 Mar 2013 19:50:19 +0000 (19:50 +0000)] 
Address uninitialized conditional that valgrind found

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@384162 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoFix a file descriptor leak in off nominal path
Matthew Jordan [Wed, 27 Mar 2013 18:49:17 +0000 (18:49 +0000)] 
Fix a file descriptor leak in off nominal path

While looking at the security vulnerability in ASTERISK-20967, Walter noticed
a file descriptor leak and some other issues in off nominal code paths. This
patch corrects them.

Note that this patch is not related to the vulnerability in ASTERISK-20967,
but the patch was placed on that issue.

(closes issue ASTERISK-20967)
Reported by: wdoekes
patches:
  issueA20967_file_leak_and_unused_wkspace.patch uploaded by wdoekes (License 5674)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@384118 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoFix white noise on SRTP decryption
Kinsey Moore [Wed, 27 Mar 2013 17:02:32 +0000 (17:02 +0000)] 
Fix white noise on SRTP decryption

When res_rtp_asterisk.c was altered to avoid attempting to apply
unprotect algorithms to non-audio RTP packets, the test used was
incorrect. This caused the audio packets to not be decrypted and
resulted in loud white noise on the other endpoint (or both endpoints
depending on the call legs involved). The test now properly checks the
version field in the RTP header to ensure that RTP and RTCP are
decrypted while other types of packets are not.

(closes issue ASTERISK-21323)
Reported by: andrea
Tested by: Kinsey Moore, andrea, John Bigelow
Patches:
    whitenoise_fix.diff uploaded by Kinsey Moore

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@384048 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoAST-2013-003: Prevent username disclosure in SIP channel driver
Matthew Jordan [Wed, 27 Mar 2013 14:53:13 +0000 (14:53 +0000)] 
AST-2013-003: Prevent username disclosure in SIP channel driver

When authenticating a SIP request with alwaysauthreject enabled, allowguest
disabled, and autocreatepeer disabled, Asterisk discloses whether a user
exists for INVITE, SUBSCRIBE, and REGISTER transactions in multiple ways. The
information is disclosed when:
 * A "407 Proxy Authentication Required" response is sent instead of a
   "401 Unauthorized" response
 * The presence or absence of additional tags occurs at the end of "403
   Forbidden" (such as "(Bad Auth)")
 * A "401 Unauthorized" response is sent instead of "403 Forbidden" response
   after a retransmission
 * Retransmission are sent when a matching peer did not exist, but not when a
   matching peer did exist.

This patch resolves these various vectors by ensuring that the responses sent
in all scenarios is the same, regardless of the presence of a matching peer.

This issue was reported by Walter Doekes, OSSO B.V. A substantial portion of
the testing and the solution to this problem was done by Walter as well - a
huge thanks to his tireless efforts in finding all the ways in which this
setting didn't work, providing automated tests, and working with Kinsey on
getting this fixed.

(closes issue ASTERISK-21013)
Reported by: wdoekes
Tested by: wdoekes, kmoore
patches:
  AST-2013-003-1.8 uploaded by kmoore, wdoekes (License 6273, 5674)
  AST-2013-003-10 uploaded by kmoore, wdoekes (License 6273, 5674)
  AST-2013-003-11 uploaded by kmoore, wdoekes (License 6273, 5674)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@383981 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoAST-2013-002: Prevent denial of service in HTTP server
Matthew Jordan [Wed, 27 Mar 2013 14:35:11 +0000 (14:35 +0000)] 
AST-2013-002: Prevent denial of service in HTTP server

AST-2012-014, fixed in January of this year, contained a fix for Asterisk's
HTTP server for a remotely-triggered crash. While the fix put in place fixed
the possibility for the crash to be triggered, a denial of service vector still
exists with that solution if an attacker sends one or more HTTP POST requests
with very large Content-Length values. This patch resolves this by capping
the Content-Length at 1024 bytes. Any attempt to send an HTTP POST with
Content-Length greater than this cap will not result in any memory allocation.
The POST will be responded to with an HTTP 413 "Request Entity Too Large"
response.

This issue was reported by Christoph Hebeisen of TELUS Security Labs

(closes issue ASTERISK-20967)
Reported by: Christoph Hebeisen
patches:
  AST-2013-002-1.8.diff uploaded by mmichelson (License 5049)
  AST-2013-002-10.diff uploaded by mmichelson (License 5049)
  AST-2013-002-11.diff uploaded by mmichelson (License 5049)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@383976 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoResolve deadlock between SIP registration and channel based functions
Matthew Jordan [Tue, 26 Mar 2013 02:23:01 +0000 (02:23 +0000)] 
Resolve deadlock between SIP registration and channel based functions

In r373424, several reentrancy problems in chan_sip were addressed. As a
result, the SIP channel driver is now properly locking the channel driver
private information in certain operations that it wasn't previously. This
exposed two latent problems either in register_verify or by functions called
by register_verify. This includes:
 * Holding the private lock while calling sip_send_mwi_to_peer. This can create
   a new sip_pvt via sip_alloc, which will obtain the channel container lock.
   This is a locking inversion, as any channel related lock must be obtained
   prior to obtaining the SIP channel technology private lock.
 * Holding the privat elock while calling sip_poke_peer. In the same vein as
   sip_send_mwi_to_peer, sip_poke_peer can create a new SIP private, causing
   the same locking inversion.

Note that this locking inversion typically occured when CLI commands were run
while a SIP REGISTER request was being processed, as many CLI commands (such
as 'sip show channels', 'core show channels', etc.) have to obtain the channel
container lock.

(issue ASTERISK-21068)
Reported by: Nicolas Bouliane

(issue ASTERISK-20550)
Reported by: David Brillert

(issue ASTERISK-21314)
Reported by: Badalian Vyacheslav

(issue ASTERISK-21296)
Reported by: Gabriel Birke

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@383863 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoResolve deadlock between pending CDR and batch CDR locks
Matthew Jordan [Tue, 26 Mar 2013 01:50:28 +0000 (01:50 +0000)] 
Resolve deadlock between pending CDR and batch CDR locks

r375757 attempted to resolve a race condition between multiple submissions of
CDRs while in batch mode from attempting to destroy the scheduled batch
submission by extending the batch CDR lock. Unfortunately, this causes a
deadlock between the pending CDR lock and the batch CDR lock. This patch
resolves the intent of r375757 by simply providing a new lock that protects
the scheduling of the batches. The original batch CDR lock is kept to protect
manipulation of the batch CDR settings, but has been placed such that it
is not held when the pending lock is held.

Thanks to Chase Venters for providing lock analysis on the issue.

(issue ASTERISK-21162)
Reported by: Chase Venters

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@383839 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoFix multi-station answer race condition.
Russell Bryant [Tue, 26 Mar 2013 01:32:27 +0000 (01:32 +0000)] 
Fix multi-station answer race condition.

When an SLA trunk is ringing (inbound call on the trunk) Asterisk will
make outbound calls to the stations that have that trunk.  If more than
one station answers the call at the same time, all channels other than
the first one to answer are left in a bad state.  The channel gets
leaked, is not connected to anything, and there's no way to get rid of
it.

We now properly clean up these losing channels by hanging up on them.
Since they lost the race, as we process their answer, there is no
ringing trunk for them to answer.

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@383835 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoSet the CALLERID(dnid-num-plan) for incoming ISDN calls.
Richard Mudgett [Mon, 25 Mar 2013 23:19:06 +0000 (23:19 +0000)] 
Set the CALLERID(dnid-num-plan) for incoming ISDN calls.

The CALLEDTON channel variable is set for incoming ISDN calls to the lower
7 bits of the Q.931 type-of-number/numbering-plan octet.  The
CALLERID(dnid-num-plan) should have the same value.

(closes issue ASTERISK-21248)
Reported by: rmudgett

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@383796 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoProperly delimit post data in res_config_curl.
Sean Bright [Mon, 25 Mar 2013 12:35:13 +0000 (12:35 +0000)] 
Properly delimit post data in res_config_curl.

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@383667 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoHave func_curl log a warning when a curl request fails.
Walter Doekes [Wed, 20 Mar 2013 20:22:40 +0000 (20:22 +0000)] 
Have func_curl log a warning when a curl request fails.

Review: https://reviewboard.asterisk.org/r/2403/

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@383460 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoRemoved codecs/g722/*.i on make clean
David M. Lee [Tue, 19 Mar 2013 15:50:05 +0000 (15:50 +0000)] 
Removed codecs/g722/*.i on make clean

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@383340 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agotcptls: Prevent unsupported options from being set
Kinsey Moore [Fri, 15 Mar 2013 12:49:59 +0000 (12:49 +0000)] 
tcptls: Prevent unsupported options from being set

AMI, HTTP, and chan_sip all support TLS in some way, but none of them
support all the options that Asterisk's TLS core is capable of
interpreting. This prevents consumers of the TLS/SSL layer from setting
TLS/SSL options that they do not support.

This also gets tlsverifyclient closer to a working state by requesting
the client certificate when tlsverifyclient is set. Currently, there is
no consumer of main/tcptls.c in Asterisk that supports this feature and
so it can not be properly tested.

Review: https://reviewboard.asterisk.org/r/2370/
Reported-by: John Bigelow
Patch-by: Kinsey Moore
(closes issue AST-1093)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@383165 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoWhen a session timer expires during a T.38 call, re-invite with correct SDP
Matthew Jordan [Fri, 15 Mar 2013 01:32:06 +0000 (01:32 +0000)] 
When a session timer expires during a T.38 call, re-invite with correct SDP

When a session timer expires during a dialog that has re-negotiated to T.38
and Asterisk is the refresher, Asterisk will send a re-INVITE with an SDP
containing audio media only. This causes some hilarity with the poor fax
session under weigh.

This patch corrects that by sending T.38 parameters if we are in the middle of
a T.38 session.

(closes issue ASTERISK-21232)
Reported by: Nitesh Bansal
patches:
  dont-send-audio-reinvite-for-sess-timer-in-t38-call.patch uploaded by nbansal (License 6418)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@383124 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoFix processing of call files when using KQueue on OS X
Matthew Jordan [Fri, 15 Mar 2013 01:21:55 +0000 (01:21 +0000)] 
Fix processing of call files when using KQueue on OS X

In certain situations, call files are not processed when using KQueue with
pbx_spool. Asterisk was sending an invalid timeout value when the spool
directory is empty, causing the call to kevent to error immediately. This
can create a tight loop, increasing the CPU load on the system.

(closes issue ASTERISK-21176)
Reported by: Carlton O'Riley
patches:
  kqueue_osx.patch uploaded by coriley (License 6473)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@383120 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoFix whitespace in AST_EXT_LIB_CHECK macro.
Jason Parker [Thu, 14 Mar 2013 16:56:22 +0000 (16:56 +0000)] 
Fix whitespace in AST_EXT_LIB_CHECK macro.

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@383061 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoFix Sorting Order For Parking Lots Stored In Static Realtime
Michael L. Young [Tue, 12 Mar 2013 21:15:52 +0000 (21:15 +0000)] 
Fix Sorting Order For Parking Lots Stored In Static Realtime

When retrieving the parking lots from a MySQL database table, the current order
is "filename, cat_metric desc, var_metric asc, category".  If there are multiple
parking lots with the same cat_metric but different categories, everything is
being sorted on cat_metric first resulting in errors when loading the parking
lots.

This patch fixes the problem by sorting on the category field first, then the
cat_metric field.

(closes issue ASTERISK-21035)
Reported by: Alex Epshteyn
Patches:
  asterisk-21035-orderby.diff Michael L. Young (license 5026)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@382942 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoUpdate Contributed Realtime Schema Files - IPv6 Addresses
Michael L. Young [Tue, 12 Mar 2013 20:37:12 +0000 (20:37 +0000)] 
Update Contributed Realtime Schema Files - IPv6 Addresses

This commit updates some fields in the contributed realtime schema files to
handle IPv6 addresses.

(closes issue ASTERISK-21173)
Reported by: Torrey Searle
Patches:
  realtime_sql.patch Torrey Searle (license 5334)
  asterisk-21173-update-ip-fields.diff Michael L. Young (license 5026)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@382939 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoInclude the Username field in SIP Registry events when Status is registered
Matthew Jordan [Tue, 12 Mar 2013 16:20:30 +0000 (16:20 +0000)] 
Include the Username field in SIP Registry events when Status is registered

In ASTERISK-17888, the AMI Registry event during SIP registrations was supposed
to include the Username field. Somehow, one of the events was missed. This
patch corrects that - the Username field should be included in all AMI Registry
events involving SIP registrations.

(issue ASTERISK-17888)

(closes issue ASTERISK-21201)
Reported by: Dmitriy Serov
patches:
  chan_sip.c.diff uploaded by Dmitriy Serov (license 6479)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@382847 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoCorrect app_page documentation
Kinsey Moore [Wed, 6 Mar 2013 18:22:06 +0000 (18:22 +0000)] 
Correct app_page documentation

The 'A' and 'n' options for Page() mention that the announcement will
be played simultaneously. This is not necessarily the case.

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@382513 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoFix several unreleased mutex locks that cause problem with processing calls
Igor Goncharovskiy [Tue, 5 Mar 2013 03:46:33 +0000 (03:46 +0000)] 
Fix several unreleased mutex locks that cause problem with processing calls

(Closes issue ASTERISK-21119)
Reported by: Daniel Bohling
Tested by: Daniel Bohling

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@382409 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoPrevent deadlock in chan_iax2 when attempting to set caller ID
Matthew Jordan [Thu, 28 Feb 2013 17:09:25 +0000 (17:09 +0000)] 
Prevent deadlock in chan_iax2 when attempting to set caller ID

A deadlock can occur in chan_iax2 when it attempts to set the caller ID, as it
already holds the iax2 private lock and improperly fails to obtain the channel
lock before calling ast_set_callerid. By not safely obtaining the channel lock,
a locking inversion can take place, causing a deadlock.

This patch solves this by calling the required deadlock avoidance functions
that obtain the channel lock before setting the caller ID.

Thanks to Pavel for fixing my syntax errors and testing this patch out.

(closes issue ASTERISK-21128)
Reported by: Pavel Troller
Tested by: Pavel Troller
patches:
  ASTERISK-21128-1.8.diff uploaded by mjordan (license 6283)
  ASTERISK-21128-modified-1.8.diff uploaded by Pavel Troller (license 6302)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@382233 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoLet channels joining a MeetMe conference opt out of the denoiser
Matthew Jordan [Thu, 28 Feb 2013 16:40:31 +0000 (16:40 +0000)] 
Let channels joining a MeetMe conference opt out of the denoiser

For some channel drivers, specifically those that have a varying rate in the
number of audio samples, the audio quality for a MeetMe conference can be
exceedingly poor. This is due to a unilateral application of the DENOISE
function in func_speex to channels joining the conference.

The denoiser function in the speex library is initialized with the number of
audio samples in each sample that will be provided to it. If the number of
audio samples changes, the denoiser has to be thrown away and re-initialized.

While this could be worked around by removing func_speex, that doesn't help
if you actually use the denoiser with other channels on the system.

This patches does the following:
 * Checks for the presence of func_speex as opposed to codec_speex when
   determining if the DENOISE function is present (which is where the function
   is actually implemented)
 * Adds an option to MeetMe 'n' that causes the denoiser to not be applied
   to a channel when it joins. This keeps the current behavior the default, but
   let's users disable the denoiser if it causes problems on their system.

Review: https://reviewboard.asterisk.org/r/2358

(closes issue AST-1062)
Reported by: Thomas Arimont

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@382227 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoRelax dialog checking in get_sip_pvt_byid_locked so it works when the dialog is forked.
Joshua Colp [Wed, 27 Feb 2013 16:16:04 +0000 (16:16 +0000)] 
Relax dialog checking in get_sip_pvt_byid_locked so it works when the dialog is forked.

(closes issue ASTERISK-20638)
Reported by: eelcob
Patches:
      pedantic-call-pickup-from-tag.patch uploaded by eelcob (license 6442)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@382171 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoFix the configure script over here as well.
Joshua Colp [Wed, 27 Feb 2013 14:11:39 +0000 (14:11 +0000)] 
Fix the configure script over here as well.

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@382153 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoConsider linux-gnuspe as linux-gnu
Tzafrir Cohen [Tue, 26 Feb 2013 19:37:33 +0000 (19:37 +0000)] 
Consider linux-gnuspe as linux-gnu

* The powerpcspe Linux port uses linux-gnuspe as the OS string.
* Our build system shouldn't really care for that, so just call it linux-gnu.
* Original report: Roland Stigge , http://bugs.debian.org/701505

Review: https://reviewboard.asterisk.org/r/2357/

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@382110 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoCorrect RPID parsing for unquoted display-name.
Walter Doekes [Tue, 26 Feb 2013 19:30:23 +0000 (19:30 +0000)] 
Correct RPID parsing for unquoted display-name.

Parsing Remote-Party-ID will now succeed if display-name is of the
*(token LWS) kind and not just the quoted-string kind.

Review: https://reviewboard.asterisk.org/r/2341/

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@382107 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoRemove unneeded linux-gnueabi*
Tzafrir Cohen [Tue, 26 Feb 2013 19:06:51 +0000 (19:06 +0000)] 
Remove unneeded linux-gnueabi*

As of r380520 the configure scripts converts the value of linux-gnueabi*
of OSARCH to "linux-gnu". So no point in testing for those values.

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@382087 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoClean up use of va_end/va_args in res_config_mysql
Matthew Jordan [Mon, 25 Feb 2013 12:48:52 +0000 (12:48 +0000)] 
Clean up use of va_end/va_args in res_config_mysql

There were several problems using variadic argument macros in res_config_mysql.
 * Improper use of va_end. Multiple calls to va_end were possible resulting in
   an unbalanced matching of va_start/va_end.
 * Calls to va_arg after a possible encounter of a SENTINEL value.

This patch corrects those errors.

(closes issue ASTERISK-19451)
Reported by: wdoekes
patches:
  ASTERISK-19451-1.8--2.diff uploaded by wdoekes (License 5674)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@382021 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoSet the sin_family on the bind address socket during initialization
Matthew Jordan [Sun, 24 Feb 2013 22:59:11 +0000 (22:59 +0000)] 
Set the sin_family on the bind address socket during initialization

Somehow, chan_jingle has managed to operate for years without setting the
sin_family on its bindaddr socket. This patch properly sets the field during
initial module load to AF_INET.

Note that the patch on the issue was modified slightly to change the
initialization of the socket from allocation of a chan_jingle private to the
module initialization, as the bindaddr object (which is static) only needs to
have the address set once.

(closes issue ASTERISK-19341)
Reported by: andre valentin
patches:
  0105-chan_jingle.patch uploaded by avalentin (License 6064)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@381975 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoDon't display the AMI ALL class authorization for users if they don't have it
Matthew Jordan [Sun, 24 Feb 2013 16:25:08 +0000 (16:25 +0000)] 
Don't display the AMI ALL class authorization for users if they don't have it

When converting AMI class authorizations to a string representation, the
method always appends the ALL class authorization. This is especially
important for events, as they should always communicate that class
authorization - even if the event itself does not specify ALL as a class
authorization for itself. (Events have always assumed that the ALL class
authorization is implied when they are raised)

Unfortunately, this did mean that specifying a user with restricted class
authorizations would show up in the 'manager show user' CLI command as
having the ALL class authorization.

Rather then modifying the existing string manipulation function, this patch
adds a function that will only return a string if the field being compared
explicitly matches class authorization field it is being compared against.
This prevents ALL from being returned unless it is actually specified for
the user.

(closes issue ASTERISK-20397)
Reported by: Johan Wilfer

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@381939 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoMake ParkAndAnnounce return to priority + 1 when return context is not defined
Matthew Jordan [Sun, 24 Feb 2013 15:33:32 +0000 (15:33 +0000)] 
Make ParkAndAnnounce return to priority + 1 when return context is not defined

The ParkAndAnnounce application documentation for the optional return_context
parameter states the following:

return_context
    The goto-style label to jump the call back into after timeout. Default
    'priority+1'.

Unfortunately, the application was sending the channel back into the dialplan
at 'priority', which is the ParkAndAnnounce application call. This causes an
infinite loop of the channel constantly being parked, announced, timed out,
parked, announced, timed out... while fun, especially for those callers you
wish to drive to the end of madness, this was not the intent of the
application.

(closes issue ASTERISK-20113)
Reported by: serginuez
patches:
  app_parkandannounce.diff uploaded by serginuez (License 6405)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@381916 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoProperly detect launchd
Matthew Jordan [Thu, 21 Feb 2013 22:44:59 +0000 (22:44 +0000)] 
Properly detect launchd

Asterisk was a little too pro-active in claiming that it found launchd. On
systems without launchd - such as FreeBSD - this resulted in certain items
in Asterisk that conflict with launchd to not be selectable, such as
res_timing_kqueue.

(closes issue ASTERISK-20749)
Reported by: Oleg Baranov

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@381847 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoWrite the correct callid to the data1 field in queue_log for transfer events.
Kevin Harwell [Tue, 19 Feb 2013 19:16:44 +0000 (19:16 +0000)] 
Write the correct callid to the data1 field in queue_log for transfer events.

The incorrect callid was being written to the "data1" field in queue_log table
for transfer events.  The callid of the queue was being written instead of the
transfer target's callid.  This now gets the correct "transfer to" number and
places that in the "data1" field of the queue_log table when a transfer event
is triggered.

(closes issue ASTERISK-19960)
Reported by: vladimir shmagin

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@381770 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoRemove "registertrying" and add "rtp_engine" from/to sip.conf.sample
Walter Doekes [Mon, 18 Feb 2013 20:28:39 +0000 (20:28 +0000)] 
Remove "registertrying" and add "rtp_engine" from/to sip.conf.sample

The "registertrying" option was removed in r343220. The "rtp_engine"
option was added in r186078 but erroneously named "engine" in the sample.
Note that there is no global sip setting for a different engine.

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@381668 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoEnd stuck DTMF if AST_SOFTHANGUP_ASYNCGOTO because it isn't a real hangup.
Richard Mudgett [Thu, 14 Feb 2013 19:41:17 +0000 (19:41 +0000)] 
End stuck DTMF if AST_SOFTHANGUP_ASYNCGOTO because it isn't a real hangup.

It doesn't hurt to check AST_SOFTHANGUP_UNBRIDGE either, but it should not
be set outside of a bridge.

(issue ASTERISK-20492)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@381466 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoDon't throw a spurious error when using DBdeltree
Matthew Jordan [Thu, 14 Feb 2013 03:42:06 +0000 (03:42 +0000)] 
Don't throw a spurious error when using DBdeltree

The function call ast_db_deltree returns the number of row deleted, or a
negative number if it failed. DBdeltree was treating any non-zero return
as an error, causing a spurious verbose error message to be displayed.

This patch handles the return code of ast_db_deltree correctly.

(closes issue ASTERISK-21070)
Reported by: ianc
patches:
  dbdeltree.diff uploaded by ianc (License #5955)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@381364 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoDo not allow native RTP bridging if packetization of media streams differs.
Mark Michelson [Tue, 12 Feb 2013 20:16:24 +0000 (20:16 +0000)] 
Do not allow native RTP bridging if packetization of media streams differs.

The RTP engine will no longer allow for local and remote native RTP bridges
if packetization of streams differs. Allowing native bridging in this scenario
has been known to cause FAX failures.

(closes ASTERISK-20650)
Reported by: Maciej Krajewski
Patches:
ASTERISK-20659.patch uploaded by Mark Michelson (License #5049)

Review: https://reviewboard.asterisk.org/r/2319

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@381281 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoProperly load say.conf upon reload of module app_playback.
Kevin Harwell [Mon, 11 Feb 2013 20:46:37 +0000 (20:46 +0000)] 
Properly load say.conf upon reload of module app_playback.

If say.conf did not exists prior to originally loading module app_playback it
would not load on subsequent reloads of the module once it had been created.
This occurred because upon reload of the app_playback module it would only
load a new configuration if an old one had previously existed.  This fix simply
removed the association between checking if an old configuration existed and
the loading of the new one.

(closes issue ASTERISK-20800)
Reported by: pgoergler

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@381216 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoFixed failing test from r380696.
David M. Lee [Wed, 6 Feb 2013 20:10:14 +0000 (20:10 +0000)] 
Fixed failing test from r380696.

When I added my extensive suite of session timer unit tests, apparently one of
them was failing and I never noticed. If neither Min-SE nor Session-Expires is
set in the header, it was responding with a Session-Expires of the global
maxmimum instead of the configured max for the endpoint.

(issue ASTERISK-20787)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@380973 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoSeparate option_types[] from the struct definition.
Richard Mudgett [Tue, 5 Feb 2013 18:09:05 +0000 (18:09 +0000)] 
Separate option_types[] from the struct definition.

Updated the option_types[] doxygen comment.

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@380853 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoProcess session timers, even if Session-Expires header is missing
David M. Lee [Thu, 31 Jan 2013 19:56:16 +0000 (19:56 +0000)] 
Process session timers, even if Session-Expires header is missing

Previously, Asterisk only processed session timer information if both the
'Supported: timer' and 'Session-Expires' headers were present. However, the
Session-Expires header is optional. If we were to receive a request with a
Min-SE greater than our configured session-expires, we would respond with a
'Session-Expires' header that was too small.

This patch cleans the situation up a bit, always processing timer information
if the 'Supported: timer' header is present.

(closes issue ASTERISK-20787)
Reported by: Mark Michelson
Review: https://reviewboard.asterisk.org/r/2299/

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@380696 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoMake CHECK_BLOCKING() debug message more useful.
Richard Mudgett [Thu, 31 Jan 2013 00:22:20 +0000 (00:22 +0000)] 
Make CHECK_BLOCKING() debug message more useful.

Change the displayed pthread value to hex format so it can be easily
matched with CLI core show threads or gdb.

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@380611 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agochan_dahdi: Fix "dahdi show channels group" for groups greater than 31.
Richard Mudgett [Wed, 30 Jan 2013 21:41:43 +0000 (21:41 +0000)] 
chan_dahdi: Fix "dahdi show channels group" for groups greater than 31.

The variable type used was not large enough to hold a group bit field.

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@380572 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoSupport building Asterisk for Raspberry Pi/Raspbian with hard-float support
Matthew Jordan [Wed, 30 Jan 2013 17:44:11 +0000 (17:44 +0000)] 
Support building Asterisk for Raspberry Pi/Raspbian with hard-float support

Building Asterisk on Raspbian with hard-float support fails as it uses the
string 'linux-gnueabihf' for host os, as opposed to 'linux-gnueabi'. This patch
modifies the configure script for Asterisk such that it will match on any
string beginning with 'linux-gnueabi', as opposed to requiring an explicit
match.

(closes issue ASTERISK-21006)
Reported by: Christian Hesse
Tested by: Christian Hesse
patches:
  linux-gnueabihf.patch uploaded by Christian Hesse (license 6459)
  linux-gnueabihf-autoconf.patch uploaded by Christian Hesse (license 6459)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@380520 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoPerform case insensitive comparisons for T.38 attributes
Matthew Jordan [Wed, 30 Jan 2013 14:19:14 +0000 (14:19 +0000)] 
Perform case insensitive comparisons for T.38 attributes

RFC5347 section 2.5.2 states the following:
...
The attribute "T38MaxBitRate" was once incorrectly registered with
IANA as "T38maxBitRate" (lower-case "m"). In accordance with T.38
examples and common implementation practice, the form "T38MaxBitRate"
SHOULD be generated by implementations conforming to this package.
In general, it is RECOMMENDED that implementations of this package
accept lowercase, uppercase, and mixed upper/lowercase encodings of
all the T.38 attributes.
...

Asterisk currently does not perform case insensitive matching on the T.38
attributes. This causes the T38MaxBitRate attribute to be negotiated at
2400 baud instead of 14400 (or whatever value you actually wanted).

This patch makes it so that when we compare T.38 attributes, we do so in a case
insensitive fashion.

Note that while the issue reporter did not directly write the patch, they
contributed to it (and would have provided one themselves if the license had
gone through a tad faster), and hence get attribution for it.

(closes issue ASTERISK-20897)
Reported by: Eric Hill
Tested by: Eric Hill
patches:
  -- uploaded by Eric Hill

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@380458 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoFix memory leak in res_calendar_icalendar
Matthew Jordan [Wed, 30 Jan 2013 14:12:19 +0000 (14:12 +0000)] 
Fix memory leak in res_calendar_icalendar

The ICalendar module had a systemic memory leak on each fetch of data from
the ICalendar source. The previous fetched data was not being properly
disposed. This patch makes it so that before each fetch of data, we dispose
of the previously fetched data.

(closes issue ASTERISK-21012)
Reported by: Joel Vandal
Tested by: Joel Vandal

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@380451 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agochan_agent: Prevent multiple channels from logging in as the same agent.
Richard Mudgett [Tue, 29 Jan 2013 17:22:22 +0000 (17:22 +0000)] 
chan_agent: Prevent multiple channels from logging in as the same agent.

Multiple channels logging in as the same agent can result in dead channels
waiting for a condition signal that will never come because another
channel thread stole it.  A symptom is chan_sip repeatedly generating
warning messages about rescheduling autodestruction of dialogs with an
agent channel owner.

* Made only login_exec() (the app AgentLogin) clear the agent_pvt->chan
pointer to prevent multiple channels from logging in as the same agent.
agent_read(), agent_call(), and agent_set_base_channel() no longer
disconnect the agent channel from the agent_pvt.  This also eliminates the
need to keep checking for agent_pvt->chan being NULL.

* Made agent_hangup() not wake up the AgentLogin agent thread until it is
done.

* Made agent_request() not able to get the agent until he has logged in
and any wrapup time has expired.

* Made agent_request() use ast_hangup() instead of agent_hangup() to
correctly dispose of a channel.

* Removed agent_set_base_channel().  Nobody calls it and it is a bad thing
in general.

* Made only agent_devicestate() determine the current device state of an
agent.  Note: Agent group device states have never been supported.

Review: https://reviewboard.asterisk.org/r/2260/

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@380364 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoCorrected crypto tag in SDP ANSWER for SRTP. (again)
David M. Lee [Tue, 29 Jan 2013 17:05:18 +0000 (17:05 +0000)] 
Corrected crypto tag in SDP ANSWER for SRTP. (again)

The original fix (r380043) for getting Asterisk to respond with the correct
tag overlooked some corner cases, and the fact that the same code is in 1.8.

This patch moves the building of the crypto line out of
sdp_crypto_process(). Instead, it merely copies the accepted tag. The call to
sdp_crypto_offer() will build the crypto line in all cases now, using a tag of
"1" in the case of sending offers.

(closes issue ASTERISK-20849)
Reported by: José Luis Millán
Review: https://reviewboard.asterisk.org/r/2295/

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@380347 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoUpdate configure script to be compatible with ptlib 2.10.9
Matthew Jordan [Tue, 29 Jan 2013 02:02:32 +0000 (02:02 +0000)] 
Update configure script to be compatible with ptlib 2.10.9

With ptlib 2.10.9, the configure script fails due to grep returning multiple
matches for the pattern it searches for. This patch updates the pattern
matching to return only the actual version for the symbol searched for,
PTLIB_VERSION.

(closes issue ASTERISK-20980)
Reported by: Stefan Reuter
patches:
  ASTERISK-20980-1.patch uploaded by Stefan Reuter (license 5339)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@380297 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoCorrect the number of available call numbers in IAX2.
Sean Bright [Mon, 28 Jan 2013 21:06:01 +0000 (21:06 +0000)] 
Correct the number of available call numbers in IAX2.

There is currently an edge case where call number 32768 might be allocated for
a call, even though the IAX2 protocol requires call numbers be only 15 bits.
This resulted in some unpredictable behavior when call number 32678 is chosen.

This patch was mostly written by Richard Mudgett via ReviewBoard.  I'm just
committing it.

Review: https://reviewboard.asterisk.org/r/2293/

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@380254 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoChange cleanup ordering in filestream destructor.
Russell Bryant [Mon, 28 Jan 2013 01:52:39 +0000 (01:52 +0000)] 
Change cleanup ordering in filestream destructor.

This patch came about due to a problem observed where wav files had an
empty header.  The header is supposed to be updated in wav_close().  It
turns out that this was broken when the cache_record_files option from
asterisk.conf was enabled.  The cleanup code was moving the file to its
final destination *before* running the close() method of the file
destructor, so the header didn't get updated.

Another problem here is that the move was being done before actually
closing the FILE *.

Finally, the last bug fixed here is that I noticed that wav_close()
checks for stream->filename to be non-NULL.  In the previous cleanup
order, it's checking a pointer to freed memory.  This doesn't actually
cause anything to break, but it's treading on dangerous waters.  Now the
free() of stream->filename is happening after the format module's
close() method gets called, so it's safer.

Review: https://reviewboard.asterisk.org/r/2286/

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@380210 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoAttempt to be more helpful when using a bad ao2 object pointer.
Richard Mudgett [Wed, 23 Jan 2013 00:19:40 +0000 (00:19 +0000)] 
Attempt to be more helpful when using a bad ao2 object pointer.

Backport of -r360626 with some enhancements.  Put the external obj pointer
in the message instead of the internal version.

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@379963 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoapp_meetme: Use new prompts for administrator menu
Jonathan Rose [Tue, 22 Jan 2013 18:21:04 +0000 (18:21 +0000)] 
app_meetme: Use new prompts for administrator menu

The old prompts for the administrator menu were inadequate. They didn't mention
that the menu had additional options through the 8 key and pressing the 8 key
wouldn't reveal what those options were. This patch fixes all of that while
also organizing code pertaining to each individual menu type which was
previously all stored in one gigantic function along with many of the basic
conference functions.

(closes issue AST-996)
Reported by: John Bigelow
Review: http://reviewboard.digium.internal/r/360/

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@379885 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoFix station ringback; trunk hangup issues in SLA
Matthew Jordan [Tue, 22 Jan 2013 14:43:05 +0000 (14:43 +0000)] 
Fix station ringback; trunk hangup issues in SLA

This patch fixes two bugs:
 * If an outbound call is made from a SLA phone using SLAStation, then there is
   no ringtone audible to the phone that originates the call. The indication of
   the ringing was not being passed to the SLA station; this patch fixes that
   by passing through the progress indications.
 * If an SLA station hangs up before the called party answers, then the channel
   to the called party continues to ring until a timeout occurs. If the called
   party manages to answer, Asterisk attempts to connect the called party to
   a non-existant MeetMe room. This patch corrects the behavior by abandoning
   the call attempt if it detects that the SLA station is no longer in use
   while attempting to call the called party.

Review: https://reviewboard.asterisk.org/r/2275/

(closes issue ASTERISK-20462)
Reported by: dkerr
patches:
  asterisk-11-bugid20440+20462.patch uploaded by dkerr (license 5558)
  asterisk-11-bugid20462.patch uploaded by dkerr (license 5558)

(closes issue ASTERISK-20440)
Reported by: dkerr
patches:
  asterisk-11-bugid20440.patch uploaded by dkerr (license 5558)
  asterisk-11-bugid20440+20462.patch uploaded by dkerr (license 5558)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@379825 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoUpdate init.d scripts to handle stderr; readd splash screen for remote consoles
Matthew Jordan [Mon, 21 Jan 2013 20:19:54 +0000 (20:19 +0000)] 
Update init.d scripts to handle stderr; readd splash screen for remote consoles

When r376428 was commited to re-order start up sequences to be more tolerant of
forking with thread primitives, a few items were changed that caused changes
in behavior on some distros. This includes:
 * Not displaying the splash screen on a remote console.
 * Displaying an error message on stderr when a remote console cannot connect
   to a running instance of Asterisk.

In the first case, the splash screen was re-added (thanks to Michael L. Young).
In the second case, the various init.d scripts were modified to pipe stderr
to /dev/null, as the error message is useful - if you execute a remote
console or a remote console command execution and it fail, it should tell
you. Note that the error message was always present, it just failed to be
printed prior to r376428.

Much thanks to the folks who quickly reported this problem, provided solutions,
and promptly tested the various init.d scripts on a variety of distros.

(closes issue ASTERISK-20945)
Reported by: Warren Selby
Tested by: Michael L. Young, Jamuel Starkey, kaldemar, Danny Nicholas, mjordan
patches:
  asterisk-20945-remote-intro-msg.diff uploaded by elguero (license 5026)
  ASTERISK-20945-1.8-mjordan.diff uploaded by mjordan (license 6283)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@379760 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoPrevent segfault for interpolated iLBC frames
Kinsey Moore [Mon, 21 Jan 2013 18:27:58 +0000 (18:27 +0000)] 
Prevent segfault for interpolated iLBC frames

When iLBC is being used with a jitter buffer and the jb has to
interpolate frames, it generates frames with a null pointer and a
non-zero datalen. This is now handled properly.

(closes issue ASTERISK-20914)
Reported By: John McEleney
Patches:
  ASTERISK-20914-1.8.diff uploaded by Matt Jordan (license 6283)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@379718 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoAdd LDAP libraries to install script
Andrew Latham [Mon, 21 Jan 2013 04:59:58 +0000 (04:59 +0000)] 
Add LDAP libraries to install script

Add LDAP dev package to Debian/Ubuntu install list.  Existed in Redhat already.  Merged from 11 to Trunk in 379643. Sorry for forgeting 1.8

(issue ASTERISK-20886)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@379645 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoFix crash in app_minivm when mime encoding string
Matthew Jordan [Mon, 21 Jan 2013 04:05:29 +0000 (04:05 +0000)] 
Fix crash in app_minivm when mime encoding string

An incorrect string initializations was left in ast_str_encode_mime from the
patch that converted string manipulations to use ast_str strings (r191140).
The string initialization causes a crash when ast_str_set is called on
the string later on in the function.

(closes issue ASTERISK-18697)
Reported by: Chris Boot
patches:
  minivm-null-pointer-dereference-fix.patch uploaded by bootc (license 6309)

(issue ASTERISK-20854)
Reported by: Chris Warr
Tested by: Chris Warr

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@379608 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoAdd builtin roundf() for systems lacking it.
Walter Doekes [Sat, 19 Jan 2013 20:41:35 +0000 (20:41 +0000)] 
Add builtin roundf() for systems lacking it.

(closes issue ASTERISK-16854)
Review: https://reviewboard.asterisk.org/r/2276
Reported-by: Ovidiu Sas
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@379547 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoFix astcanary startup problem due to wrong pid value from before daemon call
Matthew Jordan [Fri, 18 Jan 2013 23:26:02 +0000 (23:26 +0000)] 
Fix astcanary startup problem due to wrong pid value from before daemon call

When Asterisk forks itself into the background via a call to daemon, it must
re-set the pid value of the new process. Otherwise, astcanary gets the pid
value of the process before the fork, which prevents it from running. Asterisk
eventually starts lowering its priority, as it can no longer communicate
with the proverbial canary in the coal mine.

This patch ensures that the correct process identifier is used by astcanary.

(closes issue ASTERISK-20947)
Reported by: Jakob Hirsch
Tested by: mjordan
patches:
  asterisk-10.12.0.astcanary_ppid.diff uploaded by Jakob Hirsch (license 6113)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@379509 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoFix Record-Route parsing for large headers.
David M. Lee [Fri, 18 Jan 2013 05:23:57 +0000 (05:23 +0000)] 
Fix Record-Route parsing for large headers.

Record-Route parsing copied the header into a char[256] array, which can
be a problem if the header is longer than that. This patch parses the
header in place, without the copy, avoiding the issue.

In addition to the original patch, I added a unit test for the new
get_in_brackets_const function.

(closes issue ASTERISK-20837)
Reported by: Corey Farrell
Patches:
chan_sip-build_route-optimized-rev1.patch uploaded by Corey Farrell (license 5909)
(with minor changes by dlee)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@379392 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoFix issue where chan_mobile fails to bind to first available port
Matthew Jordan [Thu, 17 Jan 2013 02:28:31 +0000 (02:28 +0000)] 
Fix issue where chan_mobile fails to bind to first available port

Per the bluez API, in order to bind to the first available port, the rc_channel
field of the socket addressing structure used to bind the socket should be set
to 0. Previously, Asterisk had set the rc_channel field set to 1, causing it
to connect to whatever happens to be on port 1.

We could probably not explicitly set rc_channel to 0 since we memset the struct
earlier, but explicitly setting it will hopefully prevent someone from coming
in and setting it to some explicit port in the future.

(closes issue ASTERISK-16357)
Reported by: challado
Tested by: Alexander Heinz, Nikolay Ilduganov, benjamin, eliafino, David van Geyn
patches:
  ASTERISK-16357.diff uploaded by Nikolay Ilduganov (license 6253)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@379342 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoFurther fix misinformation in the description of manager MailboxStatus command.
Mark Michelson [Wed, 16 Jan 2013 22:45:17 +0000 (22:45 +0000)] 
Further fix misinformation in the description of manager MailboxStatus command.

The description still claimed that it returned the number of messages rather than
whether there were messages waiting.

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@379310 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoReduce number of packages install_prereq installs on Debian systems.
Jason Parker [Wed, 16 Jan 2013 21:12:36 +0000 (21:12 +0000)] 
Reduce number of packages install_prereq installs on Debian systems.

'search' will look for any package containing the name provided, so we need to
force a more exact search.

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@379276 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agochan_misdn: Fix compile error.
Richard Mudgett [Wed, 16 Jan 2013 17:40:37 +0000 (17:40 +0000)] 
chan_misdn: Fix compile error.

(issue ASTERISK-15456)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@379226 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoFix parsing SMSSRC for SMS messages
Matthew Jordan [Wed, 16 Jan 2013 04:10:15 +0000 (04:10 +0000)] 
Fix parsing SMSSRC for SMS messages

The parser for SMS messages would incorrectly parse out the from number.
The parsing would incorrectly start scanning for the from number at the
same index as the first double quote ("); this would inadvertently cause
it to treat the first double quote as the terminating double quote for
the from number as well.

The SMSSRC should now populate correctly.

(closes issue ASTERISK-16822)
Reported by: menschentier
Tested by: Jonas Falck
patches:
 fixSMSSRC.patch uploaded by jonax (license 6320)

(closes issue ASTERISK-19153)
Reported by: Panos Gkikakis
patches:
  sms-sender-fix.diff uploaded by roeften (license 5884)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@379178 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoSet the INVALID_EXTEN channel variable when chan_misdn forces the 'i' extension
Matthew Jordan [Wed, 16 Jan 2013 00:10:37 +0000 (00:10 +0000)] 
Set the INVALID_EXTEN channel variable when chan_misdn forces the 'i' extension

The chan_misdn channel driver will send a channel with an invalid destination
to the 'i' extension itself if said extension can be reached. It forgot,
however, to set the INVALID_EXTEN channel variable when it bounces the channel
to this extension. Dialplan writers everywhere moaned at yet another
inconsistency.

This is yet another example of why duplicating logic in multiple places results
in bugs that stick around in Jira for just under three years.

Yes: ASTERISK-15456 was created on January 18th, 2010. Patch committed on
January 15th, 2013. Ouch.

(closes issue ASTERISK-15456)
Reported by: Thomas Omerzu
patches:
  chan_misdn_invalid.patch2 uploaded by Thomas Omerzu (license 5927)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@379145 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoPrevent crash in ConfBridge due to race condition when channels leave bridge
Matthew Jordan [Tue, 15 Jan 2013 03:46:57 +0000 (03:46 +0000)] 
Prevent crash in ConfBridge due to race condition when channels leave bridge

When a channel leaves a bridge, a race condition existed where the
bridge_channel's pvt structure would be accessed after it was disposed of.
This patch prevents that by setting the pointer to the pvt to NULL prior
to disposing of it.

Note that this patch is a backport from Asterisk 10. This particular race
condition was fixed as part of the larger code rework that occurred for that
release.

The solution to this problem was pointed out by Gunnar Harms in ASTERISK-16640.

(closes issue ASTERISK-16640)
Reported by: thomas987

(closes issue ASTERISK-16835)
Reported by: saghul

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@379091 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoFix XML encoding of 'identity display' in NOTIFY messages, continued.
David M. Lee [Mon, 14 Jan 2013 15:11:39 +0000 (15:11 +0000)] 
Fix XML encoding of 'identity display' in NOTIFY messages, continued.

When r378933 was merged into 1.8, it should have also escaped
remote_display, since it will have the same XML encoding problem when
the caller/callee roles are reversed.

(closes issue ABE-2902)
Reported by: Guenther Kelleter

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@379001 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoReset RTP timestamp; sequence number on SSRC change
Matthew Jordan [Sun, 13 Jan 2013 21:15:06 +0000 (21:15 +0000)] 
Reset RTP timestamp; sequence number on SSRC change

In r370252 for ASTERISK-18404, Asterisk's handling of RTP was modified to
better account for out of order RTP packets. This was accomplished by using the
RTP timestamp and sequence number to check for out of order packets. However,
when a SSRC change occurs, the timestamp and sequence number will no longer
have any relation to the previously received packets. The variables tracking
the timestamp and sequence number therefore have to be reset.

(closes issue ASTERISK-20906)
Reported by: Eelco Brolman
patches:
  dtmf_on_hold.patch uploaded by Eelco Brolman (license #6442)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@378967 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoFix XML encoding of 'identity display' in NOTIFY messages.
David M. Lee [Sat, 12 Jan 2013 06:26:34 +0000 (06:26 +0000)] 
Fix XML encoding of 'identity display' in NOTIFY messages.

XML encoding in chan_sip is accomplished by naively building the XML
directly from strings. While this usually works, it fails to take into
account escaping the reserved characters in XML.

This patch adds an 'ast_xml_escape' function, which works similarly to
'ast_uri_encode'. This is used to properly escape the local_display
attribute in XML formatted NOTIFY messages.

Several things to note:
 * The Right Thing(TM) to do would probably be to replace the
   ast_build_string stuff with building an ast_xml_doc. That's a much
   bigger change, and out of scope for the original ticket, so I
   refrained myself.
 * It is with great sadness that I wrote my own ast_xml_escape
   function. There's one in libxml2, but it's knee-deep in
   libxml2-ness, and not easily used to one-off escape a
   string.
 * I only escaped the string we know is causing problems
   (local_display). At least some of the other strings are
   URI-encoded, which should be XML safe. Rather than figuring out
   what's safe and escaping what's not, it would be much cleaner to
   simply build an ast_xml_doc for the messages and let the XML
   library do the XML escaping. Like I said, that's out of scope.

(closes issue ABE-2902)
Reported by: Guenther Kelleter
Tested by: Guenther Kelleter
Review: http://reviewboard.digium.internal/r/365/

........

Merged revision 378919 from https://origsvn.digium.com/svn/asterisk/be/branches/C.3-bier

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@378933 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoFix end condition in ast_rtp_lookup_mime_multiple2.
David M. Lee [Wed, 9 Jan 2013 20:26:44 +0000 (20:26 +0000)] 
Fix end condition in ast_rtp_lookup_mime_multiple2.

The erroneous end condition would never include the AST_RTP_CISCO_DTMF flag
in the debug output.

(closes issue ASTERISK-20772)
Reported by: Xavier Hienne

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@378776 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoReplace errant tabs with spaces in causes.h.
David M. Lee [Wed, 9 Jan 2013 19:36:24 +0000 (19:36 +0000)] 
Replace errant tabs with spaces in causes.h.

(closes issue ASTERISK-20826)
Reported by: snuffy
Patches:
notabs.dif uploaded by snuffy (license 5024)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@378733 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoapp_queue: Fix multiple calls to a queue member that is in only one queue.
Richard Mudgett [Tue, 8 Jan 2013 20:22:16 +0000 (20:22 +0000)] 
app_queue: Fix multiple calls to a queue member that is in only one queue.

When ringinuse=no queue members can receive more than one call if these
calls happen at nearly the same time.

* Fix so a queue member does not receive more than one call from a queue.

NOTE: This fix does not prevent multiple calls to a member if the member
is in more than one queue.

* Did some refactoring to eliminate some code redundancy.

(issue ASTERISK-16115)
Reported by: nik600
Patches:
      jira_asterisk_16115_single_q_v1.8.patch (license #5621) patch uploaded by rmudgett
      Modified

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@378663 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agores_srtp: Prevent a crash from occurring due to srtp_create failures in srtp_create
Jonathan Rose [Fri, 4 Jan 2013 22:54:31 +0000 (22:54 +0000)] 
res_srtp: Prevent a crash from occurring due to srtp_create failures in srtp_create

Under some circumstances, libsrtp's srtp_create function deallocates memory that
it wasn't initially responsible for allocating. Because we weren't initially
aware of this behavior, this memory was still used in spite of being unallocated
during the course of the srtp_unprotect function. A while back I made a patch
which would set this value to NULL, but that exposed a possible condition where
we would then try to check a member of the struct which would cause a segfault.
In order to address these problems, ast_srtp_unprotect will now set an error value
when it ends without a valid SRTP session which will result in the caller of
srtp_unprotect observing this error and hanging up the relevant channel instead of
trying to keep using the invalid session address.

(closes issue ASTERISK-20499)
Reported by: Tootai
Review: https://reviewboard.asterisk.org/r/2228/diff/#index_header

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@378591 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoFix SIP Notify Messages To Have The Proper IP Address In The FROM Field
Michael L. Young [Fri, 4 Jan 2013 21:12:38 +0000 (21:12 +0000)] 
Fix SIP Notify Messages To Have The Proper IP Address In The FROM Field

On a multihomed server when sending a NOTIFY message, we were not figuring out
which network should be used to contact the peer.

This patch fixes the problem by calling ast_sip_ouraddrfor() and then
build_via() so that our NOTIFY message contains the correct IP address.

Also, a debug message is being added to help follow the call-id changes that
occur.  This was helpful for confirming that the IP address was set properly
since the call-id contains the IP address.  It also will be helpful for
troubleshooting purposes when following a call in the debug logs.

(closes issue ASTERISK-20805)
Reported by: Bryan Hunt
Tested by: Bryan Hunt, Michael L. Young
Patches:
    asterisk-20805-notify-ip-v2.diff uploaded by Michael L. Young (license 5026)

Review: https://reviewboard.asterisk.org/r/2255/

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@378554 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoDon't pass STUN packets through the SRTP unprotect function.
Joshua Colp [Fri, 4 Jan 2013 21:12:24 +0000 (21:12 +0000)] 
Don't pass STUN packets through the SRTP unprotect function.

(closes issue AST-1036)
Reported by: jbigelow

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@378553 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoFix Queue Log Reporting Every Call COMPLETECALLER With "h" Extension Present
Michael L. Young [Thu, 3 Jan 2013 22:09:15 +0000 (22:09 +0000)] 
Fix Queue Log Reporting Every Call COMPLETECALLER With "h" Extension Present

When the "h" extension is present within the context of the queue, all calls
are being reported COMPLETECALLER even when the agent is hanging up the call.

This patch checks to see if the agent hung-up or not instead of only relying on
checking if the queue (caller) channel hung-up or not.  It would appear that
having the h extension in the mix, the pbx goes to the h extension,
"hanging-up" the queue channel and triggering the reporting of COMPLETECALLER.

(closes issue ASTERISK-20743)
Reported by: call
Tested by: call, Michael L. Young
Patches:
    asterisk-20743-q-cmplt-caller.diff
                                     uploaded by Michael L. Young (license 5026)

Review: https://reviewboard.asterisk.org/r/2256/

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@378514 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agochan_agent: Fix wrapup time wait response.
Richard Mudgett [Thu, 3 Jan 2013 19:40:55 +0000 (19:40 +0000)] 
chan_agent: Fix wrapup time wait response.

* Made agent_cont_sleep() and agent_ack_sleep() stop waiting if the wrapup
time expires.  agent_cont_sleep() had tried but returned the wrong value
to stop waiting.

* Made agent_ack_sleep() take a struct agent_pvt pointer instead of a void
pointer for better type safety.

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@378486 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agochan_agent: Misc code cleanup.
Richard Mudgett [Thu, 3 Jan 2013 18:39:41 +0000 (18:39 +0000)] 
chan_agent: Misc code cleanup.

* Fix off-nominal path resource cleanup in agent_request().

* Create agent_pvt_destroy() to eliminate inlined versions in many places.

* Pull invariant code out of loop in add_agent().

* Remove redundant module user references in login_exec().

* Remove unused struct agent_pvt logincallerid[] member.

* Remove some redundant code in agent_request().

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@378456 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoAdd missing test event
Kinsey Moore [Thu, 3 Jan 2013 18:35:38 +0000 (18:35 +0000)] 
Add missing test event

This test event was missing from channel.c causing the dial_LS_options
test to fail intermittently because of a race condition where most code
paths emitted the test event but this one did not. The dial_LS_options
test should stop bouncing now.

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@378455 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agochan_agent: Fix agent_indicate() locking.
Richard Mudgett [Thu, 3 Jan 2013 17:41:46 +0000 (17:41 +0000)] 
chan_agent: Fix agent_indicate() locking.

Avoid deadlock potential with local channels and simplify the locking.

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@378427 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoPrevent crashes from occurring when reading from data sources with large values
Matthew Jordan [Wed, 2 Jan 2013 21:48:57 +0000 (21:48 +0000)] 
Prevent crashes from occurring when reading from data sources with large values

When reading configuration data from an Asterisk .conf file or when pulling
data from an Asterisk RealTime backend, Asterisk was copying the data on the
stack for manipulation. Unfortunately, it is possible to read configuration
data or realtime data from some data source that provides a large blob of
characters. This could potentially cause a crash via a stack overflow.

This patch prevents large sets of data from being read from an ARA backend or
from an Asterisk conf file.

(issue ASTERISK-20658)
Reported by: wdoekes
Tested by: wdoekes, mmichelson
patches:
 * issueA20658_dont_process_overlong_config_lines.patch uploaded by wdoekes (license 5674)
 * issueA20658_func_realtime_limit.patch uploaded by wdoekes (license 5674)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@378375 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoFix AMI redirect action with two channels failing to redirect both channels.
Richard Mudgett [Wed, 2 Jan 2013 21:08:15 +0000 (21:08 +0000)] 
Fix AMI redirect action with two channels failing to redirect both channels.

The AMI redirect action can fail to redirect two channels that are bridged
together.  There is a race between the AMI thread redirecting the two
channels and the bridge thread noticing that a channel is hungup from the
redirects.

* Made the bridge wait for both channels to be redirected before exiting.

* Made the AMI redirect check that all required headers are present before
proceeding with the redirection.

* Made the AMI redirect require that any supplied ExtraChannel exist
before proceeding.  Previously the code fell back to a single channel
redirect operation.

(closes issue ASTERISK-18975)
Reported by: Ben Klang

(closes issue ASTERISK-19948)
Reported by: Brent Dalgleish
Patches:
      jira_asterisk_19948_v11.patch (license #5621) patch uploaded by rmudgett
Tested by: rmudgett, Thomas Sevestre, Deepak Lohani, Kayode

Review: https://reviewboard.asterisk.org/r/2243/

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@378356 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoPrevent exhaustion of system resources through exploitation of event cache
Matthew Jordan [Wed, 2 Jan 2013 16:54:20 +0000 (16:54 +0000)] 
Prevent exhaustion of system resources through exploitation of event cache

Asterisk maintains an internal cache for devices in the event subsystem. The
device state cache holds the state of each device known to Asterisk, such that
consumers of device state information can query for the last known state for
a particular device, even if it is not part of an active call. The concept of
a device in Asterisk can include entities that do not have a physical
representation. One way that this occurred was when anonymous calls are allowed
in Asterisk. A device was automatically created and stored in the cache for
each anonymous call that occurred; this was possible in the SIP and IAX2
channel drivers and through channel drivers that utilized the
res_jabber/res_xmpp resource modules (Gtalk, Jingle, and Motif). These devices
are never removed from the system, allowing anonymous calls to potentially
exhaust a system's resources.

This patch changes the event cache subsystem and device state management to
no longer cache devices that are not associated with a physical entity.

(issue ASTERISK-20175)
Reported by: Russell Bryant, Leif Madsen, Joshua Colp
Tested by: kmoore
patches:
  event-cachability-3.diff uploaded by jcolp (license 5000)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@378303 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoResolve crashes due to large stack allocations when using TCP
Matthew Jordan [Wed, 2 Jan 2013 15:16:10 +0000 (15:16 +0000)] 
Resolve crashes due to large stack allocations when using TCP

Asterisk had several places where messages received over various network
transports may be copied in a single stack allocation. In the case of TCP,
since multiple packets in a stream may be concatenated together, this can
lead to large allocations that overflow the stack.

This patch modifies those portions of Asterisk using TCP to either
favor heap allocations or use an upper bound to ensure that the stack will not
overflow:
 * For SIP, the allocation now has an upper limit
 * For HTTP, the allocation is now a heap allocation instead of a stack
   allocation
 * For XMPP (in res_jabber), the allocation has been eliminated since it was
   unnecesary.

Note that the HTTP portion of this issue was independently found by Brandon
Edwards of Exodus Intelligence.

(issue ASTERISK-20658)
Reported by: wdoekes, Brandon Edwards
Tested by: mmichelson, wdoekes
patches:
  ASTERISK-20658_res_jabber.c.patch uploaded by mmichelson (license 5049)
  issueA20658_http_postvars_use_malloc2.patch uploaded by wdoekes (license 5674)
  issueA20658_limit_sip_packet_size3.patch uploaded by wdoekes (license 5674)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@378269 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoEnsure chan_sip rejects encrypted streams without crypto info
Kinsey Moore [Mon, 31 Dec 2012 14:41:37 +0000 (14:41 +0000)] 
Ensure chan_sip rejects encrypted streams without crypto info

This ensures that Asterisk rejects encrypted media streams (RTP/SAVP
audio and video) that are missing cryptographic keys and ensures that
the incoming SDP is consistent with RFC4568 as far as having a crypto
attribute present for any SAVP streams.

Review: https://reviewboard.asterisk.org/r/2204/

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@378217 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoGive the causes[] a struct name.
Richard Mudgett [Thu, 20 Dec 2012 21:38:01 +0000 (21:38 +0000)] 
Give the causes[] a struct name.

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@378164 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoAdjust RTP instance's available_formats callback to return the correct type.
Mark Michelson [Thu, 20 Dec 2012 20:26:47 +0000 (20:26 +0000)] 
Adjust RTP instance's available_formats callback to return the correct type.

The RTP engine public function that gets the available formats expects a
format_t to be returned; however when calling into an RTP instance's
callback to get the available formats, the callback returned an int.

This never was noticed in Asterisk because the two RTP engines included
do not provide an available_formats callback.

This introduces an API change, and the proposal for this change was brought
up on the Asterisk developers mailing list [1]. There was no public objection
to this change, so it is now being put in.

(closes AST-1054)
reported by Doug Bailey

[1] http://lists.digium.com/pipermail/asterisk-dev/2012-December/058058.html

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@378147 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoAdd test events for time limit-related hangups
Kinsey Moore [Tue, 18 Dec 2012 17:35:18 +0000 (17:35 +0000)] 
Add test events for time limit-related hangups

This patch adds hangup-related test events in order to support testing
of time-limited bridges. This aids in testing the S() and L() bridge
options.

(issue SWP-4713)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@378119 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoFix potential double free when unloading a module.
Richard Mudgett [Mon, 17 Dec 2012 23:07:24 +0000 (23:07 +0000)] 
Fix potential double free when unloading a module.

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@378092 65c4cc65-6c06-0410-ace0-fbb531ad65f3