]> git.ipfire.org Git - thirdparty/asterisk.git/log
thirdparty/asterisk.git
13 years agoRelease B channel allocation on error path in chan_misdn.
Richard Mudgett [Mon, 30 Jul 2012 16:49:12 +0000 (16:49 +0000)] 
Release B channel allocation on error path in chan_misdn.
........

Merged revisions 370563 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoapp_meetme: Change app_meetme support level to extended from deprecated
Jonathan Rose [Mon, 30 Jul 2012 14:50:34 +0000 (14:50 +0000)] 
app_meetme: Change app_meetme support level to extended from deprecated

(closes issue ASTERISK-20134)
Reported by: Leif Madsen

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

13 years agores_agi: Add message indicating need for \n character in verbose message
Jonathan Rose [Wed, 25 Jul 2012 21:12:50 +0000 (21:12 +0000)] 
res_agi: Add message indicating need for \n character in verbose message

The while loop responsible for reading AGI messages from a fastAGI service
can end up looping indefinitely when an AGI script fails to indicate the end
of a message with a \n character. This patch adds an indication that we are
expecting a \n character to end the message to make it more clear to users
that this is necessary if they are receiving this warning over and over.

(issue ASTERISK-20061)
Reported by: Eike Kuiper
........

Merged revisions 370494 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agochan_oss: fix "sample rate" error message
Tzafrir Cohen [Tue, 24 Jul 2012 17:08:40 +0000 (17:08 +0000)] 
chan_oss: fix "sample rate" error message

Merged revisions 370428 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoRewrite a comment that didn't adequately explain the code it was documenting.
Kevin P. Fleming [Tue, 24 Jul 2012 16:54:01 +0000 (16:54 +0000)] 
Rewrite a comment that didn't adequately explain the code it was documenting.
........

Merged revisions 370429 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoImprove documentation for the SHELL() dialplan function.
Kevin P. Fleming [Mon, 23 Jul 2012 21:09:53 +0000 (21:09 +0000)] 
Improve documentation for the SHELL() dialplan function.
........

Merged revisions 370383 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFree any datastores attached to dummy channels.
Kevin P. Fleming [Mon, 23 Jul 2012 14:51:21 +0000 (14:51 +0000)] 
Free any datastores attached to dummy channels.

Revision 370205 added the use of a datastore attached to a dummy channel to
resolve a memory leak, but ast_dummy_channel_destructor() in this branch did
not free datastores, resulting in a continued (but slightly smaller) memory
leak. This patch backports the change to free said datastores from the Asterisk
trunk.

(related to issue AST-916)
........

Merged revisions 370360 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFix compiler warnings.
Richard Mudgett [Thu, 19 Jul 2012 22:11:48 +0000 (22:11 +0000)] 
Fix compiler warnings.

gcc (GCC) 4.2.4 has problems casting away constness.
........

Merged revisions 370275 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFix compilation error when MALLOC_DEBUG is enabled
Matthew Jordan [Thu, 19 Jul 2012 22:01:32 +0000 (22:01 +0000)] 
Fix compilation error when MALLOC_DEBUG is enabled

To fix a memory leak in CEL, a channel datastore was introduced whose
destruction function pointer was pointed to the ast_free macro.  Without
MALLOC_DEBUG enabled this compiles as fine, as ast_free is defined as free.
With MALLOC_DEBUG enabled, however, ast_free takes on a definition from a
different place then utils.h, and became undefined.  This patch resolves this
by using a reference to ast_free_ptr.  When MALLOC_DEBUG is enabled, this
calls ast_free; when MALLOC_DEBUG is not enabled, this is defined to be
ast_free, which is defined to be free.

(issue AST-916)
Reported by: Thomas Arimont
........

Merged revisions 370273 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoHandle extremely out of order RFC 2833 DTMF
Matthew Jordan [Thu, 19 Jul 2012 21:37:09 +0000 (21:37 +0000)] 
Handle extremely out of order RFC 2833 DTMF

The current implementation of RFC 2833 DTMF handling in res_rtp_asterisk will,
if a packet arrives out of order, drop the packet.  This is to prevent
duplicate ton generation in the Asterisk core.  Since the RTP layer does not
buffer data itself, this is the only option the RTP layer currently has for
handling packets that arrive out of order.

For the most part, this doesn't matter.  For a particular digit, so long as a
BEGIN packet arrives before the first END packet, the digit will be produced.
If subsequent BEGIN packets arrive interleaved with the ENDs, they will be
dropped; likewise, if the BEGIN or END packets themselves are out of order,
those packets are dropped but sufficient information is conveyed to the
Asterisk core to produce the appropriate digit.

For certain sequences of DTMF packets - most notably when, for a particular
digit, an END packet arrives before any BEGIN packet for that digit - this
is a real problem.  When an END arrives before any BEGINs, the END packet is
dropped - but at the same time, it causes subsequent BEGIN packets for that
digit to be ignored.  When the next in order END packet arrives, it too is
dropped - Asterisk believes that there was no initial BEGIN.

The solution this patch provides is to trust the END packet to convey the
information needed for the Asterisk core to produce the DTMF digit.  If we
receive an END packet, and it:
  * Has a timestamp greater then the last timestamp received from an END
    packet
  * Does not have the same sequence number as the last received sequence
    number (and is thus not an END packet retransmission)
Then we send the END frame up to the Asterisk core.  It contains enough
DTMF information for Asterisk to produce the digit.

On the other hand, if we receive a BEGIN or continuation packet that occurs
with a timestamp equal to or less then the last END timestamp, then we've
received something out of order - but we already have received enough
information to produce the digit.  These packets are dropped.

Much thanks goes to Olle Johansson (oej) for providing the idea for this
solution.

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

(closes issue ASTERISK-18404)
Reported by: Stephane Chazelas
Tested by: Matt Jordan
........

Merged revisions 370252 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoResolve severe memory leak in CEL logging modules.
Kevin P. Fleming [Wed, 18 Jul 2012 19:14:09 +0000 (19:14 +0000)] 
Resolve severe memory leak in CEL logging modules.

A customer reported a significant memory leak using Asterisk 1.8. They
have tracked it down to ast_cel_fabricate_channel_from_event() in
main/cel.c, which is called by both in-tree CEL logging modules
(cel_custom.c and cel_sqlite3_custom.c) for each and every CEL event
that they log.

The cause was an incorrect assumption about how data attached to an
ast_channel would be handled when the channel is destroyed; the data
is now stored in a datastore attached to the channel, which is
destroyed along with the channel at the proper time.

(closes issue AST-916)
Reported by: Thomas Arimont
Review: https://reviewboard.asterisk.org/r/2053/
........

Merged revisions 370205 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoEnsure that all ast_datastore_info structures are 'const'.
Kevin P. Fleming [Wed, 18 Jul 2012 17:13:07 +0000 (17:13 +0000)] 
Ensure that all ast_datastore_info structures are 'const'.

While addressing a bug, I came across a instance of 'struct ast_datastore_info'
that was not declared 'const'. Since the API already expects them to be
'const', this patch changes the declarations of all existing instances
that were not already declared that way.
........

Merged revisions 370183 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoCode cleanup and bugfix in chan_sip outboundproxy parsing.
Walter Doekes [Mon, 16 Jul 2012 19:52:45 +0000 (19:52 +0000)] 
Code cleanup and bugfix in chan_sip outboundproxy parsing.

The bug was clearing the global outboundproxy when a peer-specific
outboundproxy was bad. The cleanup reduces duplicate code.

Review: https://reviewboard.asterisk.org/r/2034/
Reviewed by: Mark Michelson
........

Merged revisions 370131 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoAdd comments about the BUILD_NATIVE change
Kinsey Moore [Mon, 16 Jul 2012 13:51:57 +0000 (13:51 +0000)] 
Add comments about the BUILD_NATIVE change

This is a significant change and mention of it should have gone into
UPGRADE.txt and CHANGES.
........

Merged revisions 370081 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoAdd missing ast_hangup() calls on some analog exception paths.
Richard Mudgett [Thu, 12 Jul 2012 20:20:02 +0000 (20:20 +0000)] 
Add missing ast_hangup() calls on some analog exception paths.

Make starting analog_ss_thread() or __analog_ss_thread() failure paths
hangup the channel.
........

Merged revisions 370017 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoInclude Expires header for SIP PUBLISH requests
Kinsey Moore [Thu, 12 Jul 2012 20:05:45 +0000 (20:05 +0000)] 
Include Expires header for SIP PUBLISH requests

RFC3903 requres SIP PUBLISH requests to have Expires headers, so add
them.

Review: https://reviewboard.asterisk.org/r/2003/
Patch-by: gareth
........

Merged revisions 370014 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoPrevent double uri_escaping in chan_sip when pedantic is enabled
Kinsey Moore [Thu, 12 Jul 2012 18:55:17 +0000 (18:55 +0000)] 
Prevent double uri_escaping in chan_sip when pedantic is enabled

If pedantic mode is enabled, outbound invites will have double-escaped
contacts.  This avoids setting an already-escaped string into a field
where it is expected to be unescaped.

(closes issue ASTERISK-20023)
Reported by: Walter Doekes
........

Merged revisions 369993 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoCorrect Documentation For DEC Function
Michael L. Young [Thu, 12 Jul 2012 14:25:45 +0000 (14:25 +0000)] 
Correct Documentation For DEC Function

The documentation for DEC in func_math.c was incorrect.  Looks like a copy and
paste error.

(Closes issue ASTERISK-20095)
Reported by: Billy Chia
Tested by: Michael L. Young
Patches:
    func_math.patch uploaded by Billy Chia (license 6381)
........

Merged revisions 369970 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoAllow the REALTIME() function to report errors back to the caller.
Tilghman Lesher [Wed, 11 Jul 2012 17:12:28 +0000 (17:12 +0000)] 
Allow the REALTIME() function to report errors back to the caller.

Also, do more error checking on the arguments specified to the REALTIME()
function and clarify the documentation.  While I was editing the file, a
few coding guidelines fixups, as well.

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

Merged revisions 369937 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoImprove Goto and GotoIf related documentation
Kinsey Moore [Tue, 10 Jul 2012 13:35:30 +0000 (13:35 +0000)] 
Improve Goto and GotoIf related documentation

Correct documentation on labeliftrue and labeliffalse parameters of
GotoIf() and update several other locations that use the same syntax.

(closes issue ASTERISK-20007)
Patch-by: Leif Madsen
Reported-by: WIMPy
........

Merged revisions 369869 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoAdd Digium phones context to sip_notify sample config.
Jason Parker [Mon, 9 Jul 2012 17:06:40 +0000 (17:06 +0000)] 
Add Digium phones context to sip_notify sample config.

This makes it so that they can be reconfigured remotely.

(closes issue ASTERISK-19910)
........

Merged revisions 369818 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agochan_sip: Fix small behavioral change accidentally introduced in r369750
Jonathan Rose [Mon, 9 Jul 2012 14:43:49 +0000 (14:43 +0000)] 
chan_sip: Fix small behavioral change accidentally introduced in r369750

When removing the warning for AST_CONTROL_FLASH from sip_indicate, I also
inadvertently changed the return value, which would likely make the indication
not be sent in audio. This fixes that while still removing the warning message.
........

Merged revisions 369792 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agochan_sip: Add case for FLASH control frames so that we don't display a warning.
Jonathan Rose [Fri, 6 Jul 2012 21:02:37 +0000 (21:02 +0000)] 
chan_sip: Add case for FLASH control frames so that we don't display a warning.

chan_sip channels can receive flash control frames when connected to analog
phones and possibly for other reasons. There really isn't a reason to warn when
these frames are received, we can safely ignore them.

Patches:
    dahdi_sip_flash.diff uploaded by Jonathan Rose (license 6182)
........

Merged revisions 369750 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoRemove a superfluous and dangerous freeing of an SSL_CTX.
Mark Michelson [Fri, 6 Jul 2012 18:47:05 +0000 (18:47 +0000)] 
Remove a superfluous and dangerous freeing of an SSL_CTX.

The problem here is that multiple server sessions share
a SSL_CTX. When one session ended, the SSL_CTX would be
freed and set NULL, leaving the other sessions unable to
function.

The code being removed is superfluous because the SSL_CTX
structures for servers will be properly freed when ast_ssl_teardown
is called.

(closes issue ASTERISK-20074)
Reported by Trevor Helmsley
Patches:
ASTERISK-20074.diff uploaded by Mark Michelson (license #5049)
Testers:
Trevor Helmsley
........

Merged revisions 369731 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFix bridging thread leak.
Mark Michelson [Fri, 6 Jul 2012 15:23:28 +0000 (15:23 +0000)] 
Fix bridging thread leak.

The bridge thread was exiting but was never being
reaped using pthread_join(). This has been fixed now
by calling pthread_join() in ast_bridge_destroy().

(closes issue ASTERISK-19834)
Reported by Marcus Hunger

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

Merged revisions 369708 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoAST-2012-011: Resolve heap corruption issue with voicemail
Kinsey Moore [Thu, 5 Jul 2012 19:12:33 +0000 (19:12 +0000)] 
AST-2012-011: Resolve heap corruption issue with voicemail

The heard and deleted arrays in the voicemail state structure were not
handled properly following the memory leak fix in r354890 and a fix for
an invalid free in r356797.  This could result in accessing and writing
into freed memory.  The allocation for these arrays has been reworked
to avoid the possibility of invalid frees, access of freed memory, and
crashes that were occurring as a result of this.

Locking around accesses and modifications of the voicemail state
structure members dh_arraysize, heard, and deleted has been added to
prevent simultaneous modification and access when IMAP storage is in
use.  If IMAP storage is not in use, this locking is not compiled in.

Review: https://reviewboard.asterisk.org/r/1994/
(closes issue ASTERISK-19923)
Reported by: Dan Delaney
Tested by: Dan Delaney, Julian Yap
Patches:
  vm_alloc_fix.diff uploaded by kmoore (license 6273)

........

Merged revisions 369652 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoDo not send a BYE when a provisional response arrives during a re-INVITE
Matthew Jordan [Thu, 5 Jul 2012 17:02:53 +0000 (17:02 +0000)] 
Do not send a BYE when a provisional response arrives during a re-INVITE

Commits r369557 and r369579 were done to improve handling of re-INVITEs
when the UA that was supposed to receive the re-INVITE fails to respond.
A limitation of those patches occurred when a UA sent a provisional
response to the re-INVITE.  This triggered a sending of a BYE in
check_pending.  This patch tweaks the handling of the re-INVITE such that
a BYE is not sent in response to those messages.

(issue ASTERISK-19992)
Reported by: Steve Davies
Tested by: Steve Davies
patches:
  (reinvite_tweak.diff license #5012 by Steve Davies)
........

Merged revisions 369626 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoMore improvements to re-INVITEs timing out after a provisional response
Terry Wilson [Tue, 3 Jul 2012 17:02:18 +0000 (17:02 +0000)] 
More improvements to re-INVITEs timing out after a provisional response

There is no need to call check_pendings() on a final response to an INVITE
when destroying the scheduler entry as it will be done later during normal
processing.

(issue ASTERISK-19992)
........

Merged revisions 369579 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoBetter handle re-INVITEs with provisional but no final repsonses
Terry Wilson [Tue, 3 Jul 2012 14:34:22 +0000 (14:34 +0000)] 
Better handle re-INVITEs with provisional but no final repsonses

A previous attempt at fixing this issue had negative side effects related
to attended transfers which this patch should resolve. Many thanks to
Steve Davies for all of the good suggestions and testing.

(closes issue ASTERISK-19992)
Reported by: Steve Davies
Tested by: Steve Davies, Terry Wilson
Review: https://reviewboard.asterisk.org/r/2009/
........

Merged revisions 369557 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFix apparent copy and paste error where incorrect "glue" is used.
Mark Michelson [Fri, 29 Jun 2012 20:28:10 +0000 (20:28 +0000)] 
Fix apparent copy and paste error where incorrect "glue" is used.

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

13 years agoWith some configurations a transport is not actually specified so assume UDP in these...
Joshua Colp [Fri, 29 Jun 2012 16:54:11 +0000 (16:54 +0000)] 
With some configurations a transport is not actually specified so assume UDP in these cases.
........

Merged revisions 369490 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoMake the address family filter specific to the transport.
Joshua Colp [Fri, 29 Jun 2012 15:30:47 +0000 (15:30 +0000)] 
Make the address family filter specific to the transport.

(closes issue ASTERISK-16618)
Reported by: Leif Madsen

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

Merged revisions 369471 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoAST-2012-010: Clean up after a reinvite that never gets a final response
Terry Wilson [Wed, 27 Jun 2012 21:10:01 +0000 (21:10 +0000)] 
AST-2012-010: Clean up after a reinvite that never gets a final response

The basic problem is that if a re-INVITE is sent by Asterisk and it receives a
provisional response, but no final response, then the dialog is never torn
down. In addition to leaking memory, this also leaks file descriptors and will
eventually lead to Asterisk no longer being able to process calls.

This patch just keeps track of whether there is an outstanding re-INVITE, and if
there is goes ahead and cleans up everything as though there was no outstanding
reinvite.

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

(closes issue ASTERISK-19992)
Reported by: Steve Davies
Tested by: Steve Davies, Terry Wilson
........

Merged revisions 369436 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFix crash in unloading of res_adsi module
Matthew Jordan [Tue, 26 Jun 2012 13:22:42 +0000 (13:22 +0000)] 
Fix crash in unloading of res_adsi module

When res_adsi is unloaded, it removes the ADSI functions that it previously installed
by passing a NULL adsi_funcs pointer to ast_adsi_install_funcs.  This function was not
checking whether or not the adsi_funcs pointer passed in was NULL before dereferencing
it to check whether or not the version of the functions matches what the core was
expecting it.

This patch makes it so that the version is only checked if a potentially valid adsi_funcs
pointer was passed in.  Passing in NULL removes the installed functions, bypassing the
version check.
........

Merged revisions 369390 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFix incorrect duration reporting in CDRs created in batch mode
Matthew Jordan [Mon, 25 Jun 2012 19:36:02 +0000 (19:36 +0000)] 
Fix incorrect duration reporting in CDRs created in batch mode

Certain places in core/cdr.c would, if the duration value were 0, calculate the
duration as being the delta between the current time and the time at which the
CDR record was started.  While this does not typically cause a problem in
non-batch mode, this can cause an issue in batch mode where CDR records are
gathered and written long after those calls have ended. In particular, this
affects calls that were never answered, as those are expected to have a duration
of 0.  Often, this would result in CDR logs with a significant number of calls
with lengthy durations, but dispositions of "BUSY".

Note that this does not affect cdr_csv, as that backend does not use
ast_cdr_getvar and instead directly reports the duration value.  The affected
core backends include cdr_apative_odbc and cdr_custom; other extended or
deprecated CDR backends may potentially still directly manipulate the duration
values.

(issue ASTERISK-19860)
Reported by: Thomas Arimont

(issue AST-883)
Reported by: Thomas Arimont
Tested by: Matt Jordan

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

Merged revisions 369351 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoRe-fix how local tag is generated when sending a 481 to an INVITE.
Mark Michelson [Mon, 25 Jun 2012 19:16:52 +0000 (19:16 +0000)] 
Re-fix how local tag is generated when sending a 481 to an INVITE.

Match our local tag to whatever to-tag was sent in the initial INVITE.
Because the size of the to-tag may not fit in the buffer in the sip_pvt,
it has been changed to a string field.

(closes issue ASTERISK-19892)
reported by Walter Doekes

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

Merged revisions 369352 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFix Bridge application occasionally returning to the wrong location.
Richard Mudgett [Mon, 25 Jun 2012 15:59:28 +0000 (15:59 +0000)] 
Fix Bridge application occasionally returning to the wrong location.

* Fix do_bridge_masquerade() getting the resume location from the zombie
channel.  The code must not touch a clone channel after it has masqueraded
it.  The clone channel has become a zombie and is starting to hangup.

(closes issue ASTERISK-19985)
Reported by: jamicque
Patches:
      jira_asterisk_19985_v1.8.patch (license #5621) patch uploaded by rmudgett
Tested by: jamicque
........

Merged revisions 369327 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoMultiple revisions 369323-369324
Mark Michelson [Mon, 25 Jun 2012 15:52:42 +0000 (15:52 +0000)] 
Multiple revisions 369323-369324

........
  r369323 | mmichelson | 2012-06-25 10:35:43 -0500 (Mon, 25 Jun 2012) | 9 lines

  Eliminate embedding of res_adsi.so module.

  The way this is done is to stop using the optional API.
  Instead, res_adsi.so, when loaded fills in a table of
  function pointers.

  Review: https://reviewboard.asterisk.org/r/1991
........
  r369324 | mmichelson | 2012-06-25 10:50:17 -0500 (Mon, 25 Jun 2012) | 2 lines

  Forgot to svn add this file in my last commit.
........

Merged revisions 369323-369324 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoBe more consistent with the return code for requests received from invalid domain.
Mark Michelson [Mon, 25 Jun 2012 14:23:16 +0000 (14:23 +0000)] 
Be more consistent with the return code for requests received from invalid domain.

When Asterisk receives an INVITE from an external domain when allowexternaldomains=no
send a 403 instead of a 404. This is consistent with Asterisk's behavior when receiving
a REGISTER in this situation.

(Closes issue ASTERISK-19601)
Reported by Matthew Jordan
Patches:
ASTERISK-19601-no401.patch uploaded by Mark Michelson (License #5049)
........

Merged revisions 369302 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFix Bridge application and AMI Bridge action error handling.
Richard Mudgett [Sat, 23 Jun 2012 00:12:27 +0000 (00:12 +0000)] 
Fix Bridge application and AMI Bridge action error handling.

* Fix AMI Bridge action disconnecting the AMI link on error.

* Fix AMI Bridge action and Bridge application not checking if their
masquerades were successful.

* Fix Bridge application running the h-exten when it should not.

* Made do_bridge_masquerade() return if the masquerade was successful so
the Bridge application and AMI Bridge action could deal with it correctly.

* Made bridge_call_thread_launch() hangup the passed in channels if the
bridge_call_thread fails to start.  Those channels would have been
orphaned.

* Made builtin_atxfer() check the success of the transfer masquerade
setup.
........

Merged revisions 369282 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoExplicitly check caller hangup in app Queue rather than a polluted res2 value.
Richard Mudgett [Fri, 22 Jun 2012 22:09:29 +0000 (22:09 +0000)] 
Explicitly check caller hangup in app Queue rather than a polluted res2 value.
........

Merged revisions 369262 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoCheck if PBX was started and fix F and F(x) action logic in Dial application.
Richard Mudgett [Fri, 22 Jun 2012 21:37:05 +0000 (21:37 +0000)] 
Check if PBX was started and fix F and F(x) action logic in Dial application.
........

Merged revisions 369258 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoCheck if PBX was started for generic CCSS recall.
Richard Mudgett [Fri, 22 Jun 2012 21:04:25 +0000 (21:04 +0000)] 
Check if PBX was started for generic CCSS recall.
........

Merged revisions 369238 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoChange incorrect chan_sip zombie hangup debug message. They are all zombies now.
Richard Mudgett [Fri, 22 Jun 2012 20:49:33 +0000 (20:49 +0000)] 
Change incorrect chan_sip zombie hangup debug message.  They are all zombies now.
........

Merged revisions 369235 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoDon't crash on a guest directmedia call
Terry Wilson [Fri, 22 Jun 2012 19:34:59 +0000 (19:34 +0000)] 
Don't crash on a guest directmedia call

A sip_pvt may not have relatedpeer set if a call doesn't match up
with a peer. If there is no relatedpeer, there is no direct media
ACL to apply, so just return that it is allowed.

(closes issue ASTERISK-20040)
Reported by: Terry Wilson
........

Merged revisions 369214 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoDon't parse media stream state for SIP video streams
Kinsey Moore [Fri, 22 Jun 2012 17:23:26 +0000 (17:23 +0000)] 
Don't parse media stream state for SIP video streams

The sendonly/recvonly/sendrecv/inactive media stream attributes were
parsed for video, but nothing was ever done with them.  With this code
removed, an UNSUPPORTED message is produced when these attributes are
used in conjunction with a video stream which is the better behavior
since they were never really supported in the first place.
........

Merged revisions 369195 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agofix locking issue on empty callList
Alexandr Anikin [Wed, 20 Jun 2012 17:36:27 +0000 (17:36 +0000)] 
fix locking issue on empty callList
(issue ASTERISK-19298)
Reported by:
        Dmitry Melekhov
Patches:
        ASTERISK-18322-2.patch
........

Merged revisions 369146 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFix NULL pointer segfault in ast_sockaddr_parse()
Michael L. Young [Wed, 20 Jun 2012 02:04:58 +0000 (02:04 +0000)] 
Fix NULL pointer segfault in ast_sockaddr_parse()

While working with ast_parse_arg() to perform a validity check, a segfault
occurred.  The segfault occurred due to passing a NULL pointer to
ast_sockaddr_parse() from ast_parse_arg().  According to the documentation in
config.h, "result pointer to the result.  NULL is valid here, and can be used to
perform only the validity checks."

This patch fixes the segfault by checking for a NULL pointer.  This patch also
adds documentation to netsock2.h about why it is necessary to check for a NULL
pointer.

(Closes issue ASTERISK-20006)
Reported by: Michael L. Young
Tested by: Michael L. Young
Patches:
asterisk-20006-netsock-null-ptr.diff uploaded by Michael L. Young (license 5026)

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

Merged revisions 369108 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agocheck rtptimeouts in ooh323 channels as per config file
Alexandr Anikin [Tue, 19 Jun 2012 23:32:06 +0000 (23:32 +0000)] 
check rtptimeouts in ooh323 channels as per config file
(rtp voice, video, udptl except rtcp)

(closes issue ASTERISK-19179)
Reported by: TSAREGORODTSEV Yury
Patches:
        19179-ooh323-ast10.patch

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

13 years agoFix request routing issue when outboundproxy is used.
Mark Michelson [Tue, 19 Jun 2012 15:37:37 +0000 (15:37 +0000)] 
Fix request routing issue when outboundproxy is used.

Asterisk was incorrectly setting the destination of CANCELs
and ACKs for error responses to the URI of the initial INVITE.
This resulted in further requests, such as INVITEs with authentication
credentials, to be routed incorrectly. Instead, when these CANCEL
or ACKs are to be sent, we should simply keep the destination the
same as what it previously was. There is no need to alter it any.

(closes issue ASTERISK-20008)
Reported by Marcus Hunger
Patches:
ASTERISK-20008.patch uploaded by Mark Michelson (license #5049)
........

Merged revisions 369066 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFix monitoring calls put in a parking lot.
Richard Mudgett [Mon, 18 Jun 2012 18:11:30 +0000 (18:11 +0000)] 
Fix monitoring calls put in a parking lot.

* Fix a regression that was introduced by -r366167 which effectively
disabled monitoring parked calls.

(closes issue ASTERISK-20012)
Reported by: sdolloff
Tested by: rmudgett
........

Merged revisions 369043 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoMultiple revisions 369001-369002
Kevin P. Fleming [Fri, 15 Jun 2012 16:07:08 +0000 (16:07 +0000)] 
Multiple revisions 369001-369002

........
  r369001 | kpfleming | 2012-06-15 10:56:08 -0500 (Fri, 15 Jun 2012) | 11 lines

  Add support-level indications to many more source files.

  Since we now have tools that scan through the source tree looking for files
  with specific support levels, we need to ensure that every file that is
  a component of a 'core' or 'extended' module (or the main Asterisk binary)
  is explicitly marked with its support level. This patch adds support-level
  indications to many more source files in tree, but avoids adding them to
  third-party libraries that are included in the tree and to source files
  that don't end up involved in Asterisk itself.
........
  r369002 | kpfleming | 2012-06-15 10:57:14 -0500 (Fri, 15 Jun 2012) | 3 lines

  Add a script to enable finding source files without support-levels defined.
........

Merged revisions 369001-369002 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoAST-2012-009: Fix crash in chan_skinny due to Key Pad Button Message handling
Matthew Jordan [Thu, 14 Jun 2012 17:31:33 +0000 (17:31 +0000)] 
AST-2012-009: Fix crash in chan_skinny due to Key Pad Button Message handling

AST-2012-008 (r367844) fixed a denial of service attack exploitable in the
Skinny channel driver that occurred when certain messages are sent after a
previously registered station sends an Off Hook message.  Unresolved in that
patch is an issue in the Asterisk 10 releases, wherein, if a Station Key
Pad Button Message is processed after an Off Hook message, the channel driver
will inappropriately dereference a NULL pointer.

This patch fixes those places where the message handling or the channel
callback functions would attempt to dereference the line's pointer to the
device.

(issue ASTERISK-19905)
Reported by: Christoph Hebeisen
Tested by: mjordan, Christoph Hebeisen
Patches:
  AST-2012-009-10.diff uploaded by mjordan (license 6283)

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

13 years agoRevert Makefile change to remove embedding res_adsi.so
Mark Michelson [Thu, 14 Jun 2012 15:25:23 +0000 (15:25 +0000)] 
Revert Makefile change to remove embedding res_adsi.so

The change has resulted in a linking error for certain versions
of GCC. This is much worse than the original issue, so for now,
temporarily revert the change. A more thorough change will be
sought out.
........

Merged revisions 368927 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFix a deadlock that occurs when func_volume is used on a local channel.
Mark Michelson [Wed, 13 Jun 2012 21:13:30 +0000 (21:13 +0000)] 
Fix a deadlock that occurs when func_volume is used on a local channel.

This was discovered by trying to perform a call forward to an extension
that makes use of func_volume. When the local channel is optimized away,
the datastore on the local;2 channel would have its audiohook destroyed
rather than detaching the audiohook from the channel and then destroying
it.

With this patch, func_volume's datastore destructor takes the proper
route of detaching the audiohook and then destroying it.

(closes issue ASTERISK-19611)
reported by Volker Sauer
Patches:
ASTERISK-19611.patch uploaded by Mark Michelson (license #5049)
........

Merged revisions 368898 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoMark res_smdi/res_adsi as 'core' supported modules
Matthew Jordan [Wed, 13 Jun 2012 20:27:28 +0000 (20:27 +0000)] 
Mark res_smdi/res_adsi as 'core' supported modules

Recently, various issues surrounding weak symbols have caused problems with
modules that rely on that feature to be enabled in menuselect.  This includes
app_voicemail and chan_dahdi, as they both rely upon res_smdi and res_adsi,
which, in certain circumstances, may not be enabled by default in menuselect.

Because res_smdi/res_adsi are dependencies for chan_dahdi/app_voicemail, this
patch marks both as 'core' supported modules.  This will allow both
app_voicemail and chan_dahdi to be enabled as well, regardless of whether or
not that system supports weak symbols.

(issue AST-900)
Reported by: Thomas Arimont

(issue AST-885)
Reported by: Denis Alberto Martinez
........

Merged revisions 368894 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoRemove forced linking of res_adsi.o
Mark Michelson [Wed, 13 Jun 2012 19:36:39 +0000 (19:36 +0000)] 
Remove forced linking of res_adsi.o

In GCC 4.5+ the result is that Asterisk has a phantom
module loaded at startup, claiming to be res_adsi.

(closes issue ASTERISK-19920)
reported by Leif Madsen
........

Merged revisions 368873 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoDo not install empty directories; add ASTLIBDIR
Matthew Jordan [Wed, 13 Jun 2012 14:30:34 +0000 (14:30 +0000)] 
Do not install empty directories; add ASTLIBDIR

r368830 modified the installation script to only create a directory if that
directory does not exist.  If some directory variable was empty, it would attempt
to create the empty location.  It also failed to create the ASTLIBDIR directory.
This patch fixes it such that the correct directories are made and only created if
a value specifying them actually exists.
........

Merged revisions 368852 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoDo not perform install on existing directories
Matthew Jordan [Tue, 12 Jun 2012 18:30:06 +0000 (18:30 +0000)] 
Do not perform install on existing directories

If a directory already exists, performing a 'make install' will remove the
permissions associated with the current directory and replace them with the
permissions of the user executing the install.

This patch changes this behavior to only perform an install on the directory
if the directory does not exist.  Thus, if a user later changes the permissions
on that directory, those permissions will be preserved in subsequent installs.

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

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

(closes issue ASTERISK-19492)
Reported by: Karl Fife
Tested by: Paul Belanger, Tilghman Lesher
patches:
  ASTERISK-19492 by pabelanger
  (uploaded by mjordan)
........

Merged revisions 368830 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoSet the Caller ID "tag" on peers even if remote party information is present.
Mark Michelson [Tue, 12 Jun 2012 15:37:38 +0000 (15:37 +0000)] 
Set the Caller ID "tag" on peers even if remote party information is present.

On incoming calls, we were setting the cid_tag on the dialog only if there was
no remote party information (Remote-Party-ID or P-Asserted-Identity) present.
The Caller ID tag is an invented parameter, though, and should be set no matter
the circumstance.

(closes issue ASTERISK-19859)
Reported by Thomas Arimont
(closes issue AST-884)
Reported by Trey Blancher
........

Merged revisions 368807 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFix deadlock potential with ast_set_hangupsource() calls.
Richard Mudgett [Mon, 11 Jun 2012 17:08:50 +0000 (17:08 +0000)] 
Fix deadlock potential with ast_set_hangupsource() calls.

Calling ast_set_hangupsource() with the channel lock held can result in a
deadlock because the function also locks the bridged channel.

(issue ASTERISK-19537)

(closes issue ASTERISK-19801)
Reported by: Alec Davis

(closes issue AST-891)
Reported by: Guenther Kelleter
Tested by: Guenther Kelleter

........

Merged revisions 368759 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFix coverity UNUSED_VALUE findings in core support level files
Kinsey Moore [Mon, 11 Jun 2012 15:15:07 +0000 (15:15 +0000)] 
Fix coverity UNUSED_VALUE findings in core support level files

Most of these were just saving returned values without using them and
in some cases the variable being saved to could be removed as well.

(issue ASTERISK-19672)
........

Merged revisions 368738 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFix compilation in dev-mode
Kinsey Moore [Mon, 11 Jun 2012 14:11:14 +0000 (14:11 +0000)] 
Fix compilation in dev-mode

Backport a compilation fix in md5.c from trunk that only showed up in
dev-mode under certain compiler versions.
........

Merged revisions 368719 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFix POTS flash hook to orignate a second call deadlock.
Richard Mudgett [Wed, 6 Jun 2012 21:32:09 +0000 (21:32 +0000)] 
Fix POTS flash hook to orignate a second call deadlock.

A deadlock can occur when a POTS phone tries to flash hook to originate a
second call for 3-way or transfer.  If another process is scanning the
channels container when the POTS line flash hooks then a deadlock will
occur.

* Release the channel and private locks when creating a new channel as a
result of a flash hook.

(closes issue ASTERISK-19842)
Reported by: rmudgett
Tested by: rmudgett
........

Merged revisions 368644 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFix a specific scenario where ACKs are not matched.
Mark Michelson [Wed, 6 Jun 2012 19:18:20 +0000 (19:18 +0000)] 
Fix a specific scenario where ACKs are not matched.

If a dialog-starting INVITE contains a to-tag, then Asterisk
will respond with a 481. In this case, the resulting incoming
ACK would not be matched, so Asterisk would continue retransmitting
the 481 until the transaction times out.

There were two issues. Asterisk, upon creating a sip_pvt would generate
a local tag. However, when the time came to transmit the 481, since there
was a to-tag in the INVITE, Asterisk would place this original to-tag
in the 481 response. When the ACK came in, Asterisk would attempt to
match the to-tag in the ACK to the generated local tag. Unfortunately,
Asterisk never actually transmitted a response with the generated local
tag, so the to-tag in the ACK would not match.

The other problem was that when the 481 was sent, nothing was set
on the sip_pvt to indicate what CSeq is expected in the ACK.

To fix the first problem, we zero out the to-tag seen in the incoming
INVITE. This way, Asterisk, when time to send a response, will send
its generated local tag instead.

To fix the second problem, we set the sip_pvt's pendinginvite to the
CSeq of the INVITE when we send a 481.

(closes issue ASTERISK-19892)
Reported by Mark Michelson
........

Merged revisions 368625 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoAdd feature modifier to versions produced from branches
Matthew Jordan [Wed, 6 Jun 2012 17:21:20 +0000 (17:21 +0000)] 
Add feature modifier to versions produced from branches

Certain branches, such as Certified Asterisk, may have a modifier added to
them that specifies the features available in that branch.  For branches, this
modifier is expected to be reflected in the location of the branch in
subversion. For example, a subversion of URL of /certified/branches/1.8.11
would have a feature modifier of 'certified'.  This is slightly different then
how features are determined for tags, where the feature is part of the actual
tag name, e.g., "10.5.0-digiumphones".

In keeping with the nomenclature used for tags, the feature specifier for
branches is translated and placed after the revision numbers.  For the example
given previously, this would result in a branch version of
"Asterisk SVN-branch-1.8.11-cert-rXXXXXX".
........

Merged revisions 368604 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoEnsure overlapping hold flags do not conflict
Kinsey Moore [Wed, 6 Jun 2012 16:09:10 +0000 (16:09 +0000)] 
Ensure overlapping hold flags do not conflict

When changing between different modes of hold, the flags were not being
cleared out properly causing a failure to change hold states.

(closes issue ASTERISK-19919)
Patch-by: Morten Tryfoss
Reported-by: Morten Tryfoss
........

Merged revisions 368586 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFix parked call performing a DTMF blind transfer after being retrieved.
Richard Mudgett [Wed, 6 Jun 2012 01:10:10 +0000 (01:10 +0000)] 
Fix parked call performing a DTMF blind transfer after being retrieved.

When a parked call was retrieved from the parking lot, it could not do a
blind transfer because it caused the involved calls to be hung up
unconditionally.

* Made the ParkedCall application return the ast_bridge_call() return
value.

(closes issue ABE-2862)
Reported by: Vlad Povorozniuc
........

Merged revisions 368567 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoResolve some build warnings
Kinsey Moore [Tue, 5 Jun 2012 15:27:01 +0000 (15:27 +0000)] 
Resolve some build warnings

My newly upgraded compiler caught these usages of uninitialized values.
They weren't actually used.
........

Merged revisions 368533 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoEnsure that pages and emails are sent using RFC822-compliant date format
Kinsey Moore [Tue, 5 Jun 2012 15:19:58 +0000 (15:19 +0000)] 
Ensure that pages and emails are sent using RFC822-compliant date format

When localization was added to app_voicemail, these headers were altered
when they should have remained in en_US format for RFC compliance. This
reverts the changes to those two lines.

(closes issue ASTERISK-19876)
........

Merged revisions 368520 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoRelay proper SIP responses on calling side.
Mark Michelson [Mon, 4 Jun 2012 22:02:26 +0000 (22:02 +0000)] 
Relay proper SIP responses on calling side.

Revision 351130 broke corect HANGUPCAUSE setting
for the 404 case in chan_sip. Other cases were also
potentially broken. This patch fixes the relaying
of causes to be what they used to be.

(closes issue ASTERISK-19914)
Reported by Pavel Troller
Tested by Walter Doekes (via a reviewboard test to be committed later)
Patches:
chan_sip.diff uploaded by Pavel Troller (license #6302)
........

Merged revisions 368498 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoDocument BLINDTRANSFER behavior change.
Richard Mudgett [Mon, 4 Jun 2012 21:11:42 +0000 (21:11 +0000)] 
Document BLINDTRANSFER behavior change.

(issue ASTERISK-19322)

(closes issue ASTERISK-19875)
Reported by: call
........

Merged revisions 368469 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFix potential deadlock between masquerade and chan_local.
Richard Mudgett [Mon, 4 Jun 2012 19:08:52 +0000 (19:08 +0000)] 
Fix potential deadlock between masquerade and chan_local.

* Restructure ast_do_masquerade() to not hold channel locks while it calls
ast_indicate().

* Simplify many calls to ast_do_masquerade() since it will never return a
failure now.  If it does fail internally because a channel driver callback
operation failed, the only thing ast_do_masquerade() can do is generate a
warning message about strange things may happen and press on.

* Fixed the call to ast_bridged_channel() in ast_do_masquerade().  This
change fixes half of the deadlock reported in ASTERISK-19801 between
masquerades and chan_iax.

(closes issue ASTERISK-19537)
Reported by: rmudgett
Tested by: rmudgett

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

Merged revisions 368405 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFix deadlock when Gosub used with alternate dialplan switches.
Richard Mudgett [Fri, 1 Jun 2012 23:24:25 +0000 (23:24 +0000)] 
Fix deadlock when Gosub used with alternate dialplan switches.

Attempting to remove a channel from autoservice with the channel lock held
will result in deadlock.

* Restructured gosub_exec() to not call ast_parseable_goto() and
ast_exists_extension() with the channel lock held.

(closes issue ASTERISK-19764)
Reported by: rmudgett
Tested by: rmudgett
........

Merged revisions 368308 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoImprove SDP parsing warning messages
Kevin P. Fleming [Fri, 1 Jun 2012 20:22:44 +0000 (20:22 +0000)] 
Improve SDP parsing warning messages

* 'Unsupported media type' is only reported when that is in fact the case,
   not when a supported media type is included in an 'm' line that has an
   invalid format.

* All warning messages related to parsing 'm' lines now include the 'm' line contents.

* (minor bugfix) newline added to port-number-zero warning messages.

* Warning messages improved to use RFC-specified terminology for various items.

* Warnings for offers that include more than one port for a single media type now
  include the media type.

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

Merged revisions 368218 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoAdd documentation to function CHANNEL for options echocan_mode and buffers
Michael L. Young [Fri, 1 Jun 2012 03:28:09 +0000 (03:28 +0000)] 
Add documentation to function CHANNEL for options echocan_mode and buffers

The ability to set "echocan_mode" and "buffers" through the dialplan was added
to chan_dahdi some time ago.  This patch adds some documentation to
func_channel.

(Closes issue ASTERISK-19911)
Reported by: Dale Noll
Tested by: Michael L. Young
Patches:
  asterisk-19911-branch18.diff uploaded by Michael L. Young (license 5026)

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

Merged revisions 368092 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoCoverity Report: Fix issues for error type REVERSE_INULL (core modules)
Richard Mudgett [Thu, 31 May 2012 18:20:15 +0000 (18:20 +0000)] 
Coverity Report: Fix issues for error type REVERSE_INULL (core modules)

* Fixes findings: 0-2,5,7-15,24-26,28-31

(issue ASTERISK-19648)
Reported by: Matt Jordan
........

Merged revisions 368039 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoUse the DEADLOCK_AVOIDANCE() macro instead.
Richard Mudgett [Wed, 30 May 2012 18:07:28 +0000 (18:07 +0000)] 
Use the DEADLOCK_AVOIDANCE() macro instead.

(issue ASTERISK-19854)
........

Merged revisions 367980 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFix deadlock when executing CLI "pri show channels" and "ss7 show channels" commands.
Richard Mudgett [Wed, 30 May 2012 17:39:24 +0000 (17:39 +0000)] 
Fix deadlock when executing CLI "pri show channels" and  "ss7 show channels" commands.

* Fix sig_pri_lock_owner() to avoid deadlock properly.

* Code pri_grab() better.

* Fix sig_ss7_lock_owner() to avoid deadlock properly.

* Code ss7_grab() better.

(closes issue ASTERISK-19854)
Reported by: Jaxon
Patches:
      jira_asterisk_19854_v1.8.6.patch (license #5621) patch uploaded by rmudgett (Modified to do the same thing to sig_ss7)
Tested by: Jaxon
........

Merged revisions 367976 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoCoverity Report: Fix issues for error type REVERSE_INULL (deprecated modules)
Richard Mudgett [Tue, 29 May 2012 22:28:55 +0000 (22:28 +0000)] 
Coverity Report: Fix issues for error type REVERSE_INULL (deprecated modules)

* Fix only issue pointed out by deprecated_REVERSE_INULL.txt for
app_meetme.c in find_user().

* Change use of %i to %d in sscanf() in find_user().  The use of %i gives
unexpected parsing because it can accept hex, octal, and decimal integer
formats.

* Changed other uses of %i in app_meetme() to use %d for consistency.

(issue ASTERISK-19648)
Reported by: Matt Jordan
........

Merged revisions 367906 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoAST-2012-008: Fix remote crash vulnerability in chan_skinny
Matthew Jordan [Tue, 29 May 2012 18:33:20 +0000 (18:33 +0000)] 
AST-2012-008: Fix remote crash vulnerability in chan_skinny

When a skinny session is unregistered, the corresponding device pointer is set
to NULL in the channel private data.  If the client was not in the on-hook state
at the time the connection was closed, the device pointer can later be
dereferened if a message or channel event attempts to use a line's pointer to
said device.

The patches prevent this from occurring by checking the line's pointer in
message handlers and channel callbacks that can fire after an unregistration
attempt.

(closes issue ASTERISK-19905)
Reported by: Christoph Hebeisen
Tested by: mjordan, Damien Wedhorn
Patches:
  AST-2012-008-1.8.diff uploaded by mjordan (license 6283)
  AST-2012-008-10.diff uploaded by mjordan (licesen 6283)

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

13 years agoAST-2012-007: Fix IAX receiving HOLD without suggested MOH class crash.
Richard Mudgett [Fri, 25 May 2012 16:30:55 +0000 (16:30 +0000)] 
AST-2012-007: Fix IAX receiving HOLD without suggested MOH class crash.

* Made schedule_delivery() set the received frame f->data.ptr to NULL if
the datalen is zero.

* Fix queue_signalling() memcpy() size error.

* Made queue_signalling() not use C++ keyword variable names.

(closes issue ASTERISK-19597)
Reported by: mgrobecker
Patches:
      jira_asterisk_19597_v1.8.patch (license #5621) patch uploaded by rmudgett
Tested by: rmudgett, Michael L. Young
........

Merged revisions 367781 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFix pvt_sip for inbound call to use peer's allowtransfer setting
Michael L. Young [Fri, 25 May 2012 02:29:26 +0000 (02:29 +0000)] 
Fix pvt_sip for inbound call to use peer's allowtransfer setting

The pvt_sip allowtransfer was not being set to that of the peer's setting.
Therefore, the global allowtransfer setting was being used instead which would
lead to calls not being transfered if the global setting was set to 'no' despite
the setting on the peer being 'yes' and vice versa, calls would be allowed to
transfer even if the peer's setting was 'no' but the global setting was 'yes'.

(Closes issue ASTERISK-19856)
Reported by: Jacek
Tested by: Michael L. Young, Jacek
Patches:
issue-asterisk-19856-branch10-v3.diff uploaded by
                                                 Michael L. Young (license 5026)

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

Merged revisions 367730 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFix Dial I option ignored if dial forked and one fork redirects.
Richard Mudgett [Thu, 24 May 2012 22:29:23 +0000 (22:29 +0000)] 
Fix Dial I option ignored if dial forked and one fork redirects.

The Dial and Queue I option is intended to block connected line updates
and redirecting updates.  However, it is a feature that when a call is
locally redirected, the I option is disabled if the redirected call runs
as a local channel so the administrator can have an opportunity to setup
new connected line information.  Unfortunately, the Dial and Queue I
option is disabled for *all* forked calls if one of those calls is
redirected.

* Make the Dial and Queue I option apply to each outgoing call leg
independently.  Now if one outgoing call leg is locally redirected, the
other outgoing calls are not affected.

* Made Dial not pass any redirecting updates when forking calls.
Redirecting updates do not make sense for this scenario.

* Made Queue not pass any redirecting updates when using the ringall
strategy.  Redirecting updates do not make sense for this scenario.

* Fixed deadlock potential with chan_local when Dial and Queue send
redirecting updates for a local redirect.

* Converted the Queue stillgoing flag to a boolean bitfield.

(closes issue ASTERISK-19511)
Reported by: rmudgett
Tested by: rmudgett

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

Merged revisions 367678 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFix crash in ConfBridge when user announcement is played for more than 2 users
Matthew Jordan [Thu, 24 May 2012 13:32:33 +0000 (13:32 +0000)] 
Fix crash in ConfBridge when user announcement is played for more than 2 users

A patch introduced in r354938 made it so that ConfBridge would not attempt to
play sound files if those files did not exist.  Unfortunately, ConfBridge uses
the same underlying function, play_sound_helper, to playback both sound files
and numbers to callers.  When a number is being played back, the name of the
sound file is expected to be NULL.  This NULL value was passed into a function
that tested for the existance of a sound file and is not tolerant to NULL
file names, causing a crash.

This patch fixes the behavior, such that if a sound file does not exist we
do not attempt to play it, but we only attempt that check if the a sound file
was specified in the first place.  If a sound file was not specified, we use
the 'play number' logic in the helper function.

(closes issue ASTERISK-19899)
Reported by: Florian Gilcher
Tested by: Florian Gilcher
patches:
  asterisk-19899.diff uploaded by mjordan (license 6283)

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

13 years agoFix WaitExten(x,m(musicclass)) string termination.
Richard Mudgett [Wed, 23 May 2012 23:16:49 +0000 (23:16 +0000)] 
Fix WaitExten(x,m(musicclass)) string termination.

The AST_CONTROL_HOLD MOH class from the WaitExten application can now be
queued onto a channel, passed over local channels with the /m option, and
passed over IAX channels.
........

Merged revisions 367469 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoOnly call SSL_CTX_free if DO_SSL is defined.
Mark Michelson [Wed, 23 May 2012 20:29:03 +0000 (20:29 +0000)] 
Only call SSL_CTX_free if DO_SSL is defined.

Thanks to Paul Belanger for pointing out this error.
........

Merged revisions 367416 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoRe-add LastMsgsSent value for SIP peers
Matthew Jordan [Wed, 23 May 2012 13:25:04 +0000 (13:25 +0000)] 
Re-add LastMsgsSent value for SIP peers

Previously, MWI logic utilized a counter called 'lastmsgssent' to know whether
or not MWI NOTIFY requests had been sent to a specific peer.  When MWI
notifications were changed to use the internal event framework, this value was
no longer needed for its original purpose.  Hence, it was no longer updated
with the new/old message counts for a peer.  The value was previously removed
for Asterisk 10; however, since it was still present in Asterisk 1.8 and still
useful for reporting purposes, it was decided to re-add the value.

This patch re-adds the 'LastMsgsSent' field in the response to an AMI/CLI 'sip
show peer [peer]' command, and makes it so that the value of lastmsgssent is
updated appropriately. The value should now display the new/old message counts
for a particular peer.

(closes issue ASTERISK-17866)
Reported by: Steve Davies
patches by:
  ast-17866-rb1272.patch (License #5041 by irroot)
  Modified slightly for this commit

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

Merged revisions 367362 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFix race condition for CEL LINKEDID_END event
Terry Wilson [Tue, 22 May 2012 17:21:51 +0000 (17:21 +0000)] 
Fix race condition for CEL LINKEDID_END event

This patch fixes to situations that could cause the CEL LINKEDID_END event to
be missed.

1) During a core stop gracefully, modules are unloaded when ast_active_channels
== 0. The LINKDEDID_END event fires during the channel destructor. This means
that occasionally, the cel_* module will be unloaded before the channel is
destroyed. It seemed generally useful to wait until the refcount of all
channels == 0 before unloading, so I added a channel counter and used it in the
shutdown code.

2) During a masquerade, ast_channel_change_linkedid is called. It calls
ast_cel_check_retire_linkedid which unrefs the linkedid in the linkedids
container in cel.c. It didn't ref the new linkedid. Now it does.

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

Merged revisions 367292 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoResolve crash in subscribing for MWI notifications
Terry Wilson [Tue, 22 May 2012 16:17:46 +0000 (16:17 +0000)] 
Resolve crash in subscribing for MWI notifications

ASTOBJ_UNREF sets the variable to NULL after unreffing it, so the variable
should definitely not be used after that. To solve this in the two cases
that affect subscribing for MWI notifications, we instead save the ref
locally, and unref them in the error conditions.

(closes issue ASTERISK-19827)
Reported by: B. R
Review: https://reviewboard.asterisk.org/r/1940/
........

Merged revisions 367266 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoAddress MISSING_BREAK static analysis reports some more.
Mark Michelson [Fri, 18 May 2012 17:50:18 +0000 (17:50 +0000)] 
Address MISSING_BREAK static analysis reports some more.

This addresses core findings 4 and 6.

Moises Silva helped me by stating that a break could be
safely added to the case where it is added in chan_dahdi.c

In say.c, I have added a comment indicating that static analysis
complains but that it is currently unknown if this is correct.

This fixes all core findings of this type.

(closes issue ASTERISK-19662)
reported by Matthew Jordan
........

Merged revisions 367027 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFix memory leak of SSL_CTX structures in TLS core.
Mark Michelson [Fri, 18 May 2012 17:00:14 +0000 (17:00 +0000)] 
Fix memory leak of SSL_CTX structures in TLS core.

SSL_CTX structures were allocated but never freed. This was a bigger
issue for clients than servers since new SSL_CTX structures could be
allocated for each connection. Servers, on the other hand, typically
set up a single SSL_CTX for their lifetime.

This is solved in two ways:

1. In __ssl_setup(), if a tcptls_cfg has an ssl_ctx on it, it is
freed so that a new one can take its place.
2. A companion to ast_ssl_setup() called ast_ssl_teardown() has
been added so that servers can properly free their SSL_CTXs.

(issue ASTERISK-19278)
........

Merged revisions 367002 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFix more memory leaks
Matthew Jordan [Fri, 18 May 2012 15:45:42 +0000 (15:45 +0000)] 
Fix more memory leaks

This patch adds to what was fixed in r366880.  Specifically, it addresses the
following:

* chan_sip:  dispose of an allocated frame in off nominal code paths in
             sip_rtp_read
* func_odbc: when disposing of an allocated resultset, ensure that any rows
             that were appended to that resultset are also disposed of
* cli:       free the created return string buffer in another off nominal code
             path

(issue ASTERISK-19665)
Reported by: Matt Jordan

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

Merged revisions 366944 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoReorder and renumber tests appropriately
Kinsey Moore [Fri, 18 May 2012 14:18:47 +0000 (14:18 +0000)] 
Reorder and renumber tests appropriately

It appears that a patch did not apply properly when adding tests 12 and
13 and test 11 was duplicated.  These tests have been reordered and
renumbered such that they make sense.
........

Merged revisions 366882 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFix a variety of memory leaks
Matthew Jordan [Fri, 18 May 2012 14:01:56 +0000 (14:01 +0000)] 
Fix a variety of memory leaks

This patch addresses a number of memory leaks in a variety of modules that were
found by a static analysis tool.  A brief summary of the changes:

* app_minivm:       free ast_str objects on off nominal paths
* app_page:         free the ast_dial object if the requested channel technology
                    cannot be appended to the dialing structure
* app_queue:        if a penalty rule failed to match any existing rule list
                    names, the created rule would not be inserted and its memory
                    would be leaked
* app_read:         dispose of the created silence detector in the presence of
                    off nominal circumstances
* app_voicemail:    dispose of an allocated unique ID field for MWI event
                    un-subscribe requests in off nominal paths; dispose of
                    configuration objects when using the secret.conf option
* chan_dahdi:       dispose of the allocated frame produced by ast_dsp_process
* chan_iax2:        properly unref peer in CLI command "iax2 unregister"
* chan_sip:         dispose of the allocated frame produced by sip_rtp_read's
                    call of ast_dsp_process; free memory in parse unit tests
* func_dialgroup:   properly deref ao2 object grhead in nominal path of
                    dialgroup_read
* func_odbc:        free resultset in off nominal paths of odbc_read
* cli:              free match_list in off nominal paths of CLI match completion
* config:           free comment_buffer/list_buffer when configuration file load
                    is unchanged; free the same buffers any time they were
                    created and config files were processed
* data:             free XML nodes in various places
* enum:             free context buffer in off nominal paths
* features:         free ast_call_feature in off nominal paths of applicationmap
                    config processing
* netsock2:         users of ast_sockaddr_resolve pass in an ast_sockaddr struct
                    that is allocated by the method.  Failures in
                    ast_sockaddr_resolve could result in the users of the method
                    not knowing whether or not the buffer was allocated.  The
                    method will now not allocate the ast_sockaddr struct if it
                    will return failure.
* pbx:              cleanup hash table traversals in off nominal paths; free
                    ignore pattern buffer if it already exists for the specified
                    context
* xmldoc:           cleanup various nodes when we no longer need them
* main/editline:    various cleanup of pointers not being freed before being
                    assigned to other memory, cleanup along off nominal paths
* menuselect/mxml:  cleanup of value buffer for an attribute when that attribute
                    did not specify a value
* res_calendar*:    responses are allocated via the various *_request method
                    returns and should not be allocated in the various
                    write_event methods; ensure attendee buffer is freed if no
                    data exists in the parsed node; ensure that calendar objects
                    are de-ref'd appropriately
* res_jabber:       free buffer in off nominal path
* res_musiconhold:  close the DIR* object in off nominal paths
* res_rtp_asterisk: if we run out of ports, close the rtp socket object and free
                    the rtp object
* res_srtp:         if we fail to create the session in libsrtp, destroy the
                    temporary ast_srtp object

(issue ASTERISK-19665)
Reported by: Matt Jordan

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

Merged revisions 366880 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agochan_sip: Fix missed locking of opposing pvt for directmedia acl from r366547
Jonathan Rose [Thu, 17 May 2012 14:41:13 +0000 (14:41 +0000)] 
chan_sip: Fix missed locking of opposing pvt for directmedia acl from r366547

It also required deadlock avoidance since two sip_pvts structs needed to be
locked simultaneously. Trunk handles it differently, so this is a 1.8 and 10
patch only.
........

(issue AST-876)
Merged revisions 366791 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFix checking bounds of array index after using it; improper sizeof
Matthew Jordan [Thu, 17 May 2012 12:57:30 +0000 (12:57 +0000)] 
Fix checking bounds of array index after using it; improper sizeof

This patch fixes two problems pointed out by a static analysis tool.

* In chan_dahdi, when an event is handled the index of the sub channel is first
  obtained.  In very off nominal cases, the method that determines the index
  can return a negative value.  In the event handling code, whether or not
  the index returned is valid was being checked after that value was used to
  index into an array.  This patch makes it so the value is checked before
  any indexing is done.

* In res_calendar_ews, sizeof was being passed a pointer instead of the struct to
  determine the amount of memory to allocate.

(issue ASTERISK-19651)
Reported by: Matt Jordan

(closes issue ASTERISK-19671)
Reported by: Matt Jordan
........

Merged revisions 366740 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoCorrect misuse of ast_strip_quoted() when getting a Diversion header's reason parameter.
Mark Michelson [Tue, 15 May 2012 23:39:06 +0000 (23:39 +0000)] 
Correct misuse of ast_strip_quoted() when getting a Diversion header's reason parameter.

The use here was assuming that the pointer would be updated, but the updated string
is actually returned by ast_strip_quoted() instead.
........

Merged revisions 366597 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agochan_sip: Check the right channel's host address for directmediapermit/deny
Jonathan Rose [Tue, 15 May 2012 20:44:59 +0000 (20:44 +0000)] 
chan_sip: Check the right channel's host address for directmediapermit/deny

Prior to this patch, when checking the addresses for directmediapermit and
denydirectmediadeny, Asterisk would check the host address of the channel
permit/deny was specified, which defers from the expectations of both
our users and the development team. Instead, directmediapermit/deny now
checks against the address of the channel that the peer with the ACL is
connected to.

(issue AST-876)
Review: https://reviewboard.asterisk.org/r/1899/
........

Merged revisions 366547 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

13 years agoFix two more coverity constant expression result findings.
Mark Michelson [Mon, 14 May 2012 20:06:58 +0000 (20:06 +0000)] 
Fix two more coverity constant expression result findings.

These correspond to findings 0 and 1 in the core findings of
ASTERISK-19649.

After contacting Mark Spencer, he was unsure of what the intent
behind these lines of code were, so they are being axed.

For Asterisk 1.8 and 10, the output of debugging DUNDi frames
will not be changed, but for trunk the "Retry" portion will
be omitted since it does not properly distinguish retransmissions
from initial frames.

(closes issue ASTERISK-19649)
Reported by Matthew Jordan
........

Merged revisions 366409 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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