10 years agoCheck for IO stream failures in various format's truncate/seek operations
Matthew Jordan [Mon, 16 Apr 2012 20:17:03 +0000 (20:17 +0000)]
Check for IO stream failures in various format's truncate/seek operations

For the formats that support seek and/or truncate operations, many of
the C library calls used to determine or set the current position indicator
in the file stream were not being checked.  In some situations, if an error
occurred, a negative value would be returned from the library call.  This
could then be interpreted inappropriately as positional data.

This patch checks the return values from these library calls before
using them in subsequent operations.

(issue ASTERISK-19655)
Reported by: Matt Jordan


Merged revisions 362151 from

Merged revisions 362152 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoMake ForkCDR e option not set end time of the newly forked CDR log
Jonathan Rose [Fri, 13 Apr 2012 16:12:17 +0000 (16:12 +0000)]
Make ForkCDR e option not set end time of the newly forked CDR log

Prior to this patch, ForkCDR's e option would immediately set the end time of the forked
CDR to that of the CDR that is being terminated. This resulted in the new CDR's end time
being roughly the same as it's beginning time (which is in turn roughly the same as the
original's end time).

(closes issue ASTERISK-19164)
Reported by: Steve Davies
cdr_fork_end.v10.patch uploaded by Steve Davies (license 5012)

Merged revisions 362082 from

Merged revisions 362084 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoSend relative path named recordings to the meetme directory instead of sounds
Jonathan Rose [Fri, 13 Apr 2012 15:38:08 +0000 (15:38 +0000)]
Send relative path named recordings to the meetme directory instead of sounds

Prior to this patch, no effort was made to parse the path name to determine a proper
destination for recordings of MeetMe's r option. This fixes that.


Merged revisions 362079 from

Merged revisions 362080 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoConvert SRV lookup message to debug level
Paul Belanger [Thu, 12 Apr 2012 20:08:26 +0000 (20:08 +0000)]
Convert SRV lookup message to debug level

This helps clean up the Asterisk CLI by converting the log message from verbose
to debug

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoAdd option to invoke the extensions.conf stdexten using the legacy macro method.
Richard Mudgett [Thu, 12 Apr 2012 16:29:52 +0000 (16:29 +0000)]
Add option to invoke the extensions.conf stdexten using the legacy macro method.

ASTERISK-18809 eliminated the legacy macro invocation of the stdexten in
favor of the Gosub method without a means of backwards compatibility.

(issue ASTERISK-18809)
(closes issue ASTERISK-19457)
Reported by: Matt Jordan
Tested by: rmudgett


git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoMake trunkfreq take effect when set
Kinsey Moore [Thu, 12 Apr 2012 16:25:09 +0000 (16:25 +0000)]
Make trunkfreq take effect when set

Previously, setting trunkfreq had no effect on initial load or on reload and
only ever used the default value.  This causes trunkfreq to be used
appropriately on initial load and reload.

(closes issue ASTERISK-19521)
Patch-by: Jaco Kroon

Merged revisions 361972 from

Merged revisions 361981 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoSimplify build system architecture optimization
Kinsey Moore [Thu, 12 Apr 2012 15:25:47 +0000 (15:25 +0000)]
Simplify build system architecture optimization

This change to the build system rips out any usage of PROC along with
architecture-specific optimizations in favor of using -march=native where it is
supported.  This fixes broken builds on 64bit Intel systems and results in
better optimized code on systems running GCC 4.2+.

(closes issue ASTERISK-19462)

Merged revisions 361955 from

Merged revisions 361956 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoChange default value of 'ignorebusy' on Queue members so that behavior is more like 1.8
Jonathan Rose [Wed, 11 Apr 2012 17:20:08 +0000 (17:20 +0000)]
Change default value of 'ignorebusy' on Queue members so that behavior is more like 1.8

Prior to this patch, in order to restore that behavior, a function would have
to be used on the QueueMember to make the ringinuse option do anything, which
is pretty unreasonable.

(closes issue ASTERISK-19536)
reported by: Philippe Lindheimer

Merged revisions 361907 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoPrevent invalid access of free'd memory if DAHDI channel during an MWI event
Richard Mudgett [Tue, 10 Apr 2012 21:50:46 +0000 (21:50 +0000)]
Prevent invalid access of free'd memory if DAHDI channel during an MWI event

In the MWI processing loop, when a valid event occurs the temporary caller ID
information is deallocated.  If a new DAHDI channel is successfully created,
the event is passed up to the analog_ss_thread without error and the loop
exits.  If, however, the DAHDI channel is not created, then the caller ID
struct has been free'd, and the gains reset to their previous level.  This
will almost certainly cause an invalid access to the free'd memory, either
in subsequent calls to callerid_free or calls to callerid_feed.

* Rework the -r361705 patch to better manage the cs and mtd allocated

* Fixed use of mwimonitoractive flag to be correct if the mwi_thread()
fails to start.

Merged revisions 361854 from

Merged revisions 361855 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoFix crash caused by unloading or reloading of res_http_post
Matthew Jordan [Tue, 10 Apr 2012 19:58:04 +0000 (19:58 +0000)]
Fix crash caused by unloading or reloading of res_http_post

When unlinking itself from the registered HTTP URIs, res_http_post could
inadvertently free all URIs registered with the HTTP server.  This patch
modifies the unregister method to only free the URI that is actually
being unregistered, as opposed to all of them.

Merged revisions 361803 from

Merged revisions 361804 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoAllow func_curl to exit gracefully if list allocation fails during write
Matthew Jordan [Mon, 9 Apr 2012 21:47:54 +0000 (21:47 +0000)]
Allow func_curl to exit gracefully if list allocation fails during write

If the global_curl_info data structure could not be allocated, the
datastore associated with the operation would be free'd, but the function
would not return.  This would later dereference the datastore, almost
certainly causing Asterisk to crash.  With this patch, if the data
structure is not allocated the method will return an error code, and
not attempt any further operation.

Merged revisions 361753 from

Merged revisions 361754 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoPrevent invalid access of free'd memory if DAHDI channel during an MWI event
Matthew Jordan [Mon, 9 Apr 2012 20:55:53 +0000 (20:55 +0000)]
Prevent invalid access of free'd memory if DAHDI channel during an MWI event

In the MWI processing loop, when a valid event occurs the temporary caller ID
information is deallocated.  If a new DAHDI channel is successfully created,
the event is passed up to the analog_ss_thread without error and the loop
exits.  If, however, the DAHDI channel is not created, then the caller ID
struct has been free'd, and the gains reset to their previous level.  This
will almost certainly cause an invalid access to the free'd memory, either
in subsequent calls to callerid_free or calls to callerid_feed.

This patch makes it so that we only free the caller ID structure if a
DAHDI channel is successfully created, and we bump the gains back up
if we fail to make a DAHDI channel.

Merged revisions 361705 from

Merged revisions 361706 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoChange SHARED function to use a safe traversal when modifying a variable
Matthew Jordan [Mon, 9 Apr 2012 19:44:35 +0000 (19:44 +0000)]
Change SHARED function to use a safe traversal when modifying a variable

When the SHARED function modifies a variable, it removes it from its list of
variables and reinserts the new value at the head of the list of variables.
Doing this inside a standard list traversal can be dangerous, as the
standard list traversal does not account for the list being changed.  While
the code in question should not cause a use after free violation due to its
breaking out of the loop after freeing the variable, it could lead to a
maintenance issue if the loop was modified.  This also fixes a violation
reported by a static analysis tool, which also makes this code easier to
maintain in the future.

Merged revisions 361657 from

Merged revisions 361658 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoFix memory leak in res_calendar_ews when event email address node is empty
Matthew Jordan [Fri, 6 Apr 2012 22:00:58 +0000 (22:00 +0000)]
Fix memory leak in res_calendar_ews when event email address node is empty

If the XML calendar data returned by a Microsoft Exchange Web Service
specifies an XML Event E-Mail Address ("EmailAddress"), and no e-mail address
is provided, a condition existed where an ast_calendar_attendee struct would
be allocated but not appended to the list of attendees.  Because of that,
the memory associated with the attendee would never be freed.  This patch
frees the memory if no e-mail address is provided.

Merged revisions 361606 from

Merged revisions 361607 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoFix memory leak when using MeetMeAdmin 'e' option with user specified
Matthew Jordan [Fri, 6 Apr 2012 20:32:52 +0000 (20:32 +0000)]
Fix memory leak when using MeetMeAdmin 'e' option with user specified

A memory leak/reference counting leak occurs if the MeetMeAdmin 'e' command
(eject last user that joined) is used in conjunction with a specified user.
Regardless of the command being executed, if a user is specified for the
command, MeetMeAdmin will look up that user.  Because the 'e' option kicks
the last user that joined, as opposed to the one specified, the reference to
the user specified by the command would be leaked when the user variable
was assigned to the last user that joined.

Merged revisions 361558 from

Merged revisions 361560 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoDon't add an empty MESSAGE_DATA(key) header if it doesn't already exist.
Richard Mudgett [Fri, 6 Apr 2012 19:58:44 +0000 (19:58 +0000)]
Don't add an empty MESSAGE_DATA(key) header if it doesn't already exist.

Doing Set(MESSAGE_DATA(key)=) would add an empty key header if the key
header did not already exist.  If it already existed it would delete it.

* Made msg_set_var_full() exit early if the named variable did not already
exist and the value to set is empty.

Merged revisions 361522 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoAdd missing newlines to CLI logging
Kinsey Moore [Fri, 6 Apr 2012 18:19:03 +0000 (18:19 +0000)]
Add missing newlines to CLI logging

Merged revisions 361471 from

Merged revisions 361472 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoMultiple revisions 361403,361412
Paul Belanger [Fri, 6 Apr 2012 16:33:24 +0000 (16:33 +0000)]
Multiple revisions 361403,361412

  r361403 | pabelanger | 2012-04-06 12:24:36 -0400 (Fri, 06 Apr 2012) | 2 lines

  Fix typo in svn:keywords
  r361412 | pabelanger | 2012-04-06 12:27:30 -0400 (Fri, 06 Apr 2012) | 2 lines

  Fix typo in svn:keywords

Merged revisions 361403,361412 from

Merged revisions 361422 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoRemove a few more files related to chan_usbradio and app_rpt.
Russell Bryant [Fri, 6 Apr 2012 15:50:18 +0000 (15:50 +0000)]
Remove a few more files related to chan_usbradio and app_rpt.

Merged revisions 361380 from

Merged revisions 361381 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoFix a typo in the warning messages for an ignored media stream
Matthew Jordan [Fri, 6 Apr 2012 14:02:16 +0000 (14:02 +0000)]
Fix a typo in the warning messages for an ignored media stream

Added a '\n' to the warning messages when we ignore a media stream due to the
port number being '0'.

(closes issue ASTERISK-19646)
Reported by: Badalian Vyacheslav

Merged revisions 361332 from

Merged revisions 361333 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoRemove unnecessary error message in app_dial.c
Kinsey Moore [Fri, 6 Apr 2012 13:32:34 +0000 (13:32 +0000)]
Remove unnecessary error message in app_dial.c

The error message for failure to stop autoservice after a gosub or macro call
during a dial was removed for macro while Asterisk 1.4 was still being actively
developed. The corresponding gosub error message was never removed.

(closes issue ASTERISK-19551)

Merged revisions 361329 from

Merged revisions 361330 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoFix MusicOnHold in MeetMe so that it always uses the class if it's been defined
Jonathan Rose [Thu, 5 Apr 2012 17:22:30 +0000 (17:22 +0000)]
Fix MusicOnHold in MeetMe so that it always uses the class if it's been defined

There were a few instances of restarting music on hold in meetme that would cause
Asterisk to revert to the default class of music on hold for no adequate reason.


Merged revisions 361269 from

Merged revisions 361270 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoFix some stuff involving calls to memcpy and memset
Jonathan Rose [Wed, 4 Apr 2012 20:10:08 +0000 (20:10 +0000)]
Fix some stuff involving calls to memcpy and memset

The important parts of the patch were already applied through other updates.

(closes issue ASTERISK-19445)
Reported by: Makoto Dei
memset-memcpy-length.patch uploaded by Makoto Dei (license 5027)

Merged revisions 361210 from

Merged revisions 361211 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoMake 'help devstate change' display properly (get rid of excess comma)
Jonathan Rose [Wed, 4 Apr 2012 19:32:57 +0000 (19:32 +0000)]
Make 'help devstate change' display properly (get rid of excess comma)

(closes issue ASTERISK-19444)
Reported by: Makoto Dei
devstate-change-usage-truncate.patch uploaded by Makoto Dei (license 5027)

Merged revisions 361201 from

Merged revisions 361208 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoReplace GNU old-style field designator extensions to fix clang warnings
Jonathan Rose [Wed, 4 Apr 2012 18:08:28 +0000 (18:08 +0000)]
Replace GNU old-style field designator extensions to fix clang warnings

(issue ASTERISK-19540)
Reported by: Makoto Dei
clang-gnu-designator.patch uploaded by Makoto Dei (license 5027)
Also add from the patch the portion in res_fax_spandsp that didn't apply to 1.8

Merged revisions 361142 from
(closes issue ASTERISK-19540)

Merged revisions 361143 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoMake the MeetMeAdmin N command (mute all nonadmins) not mute admins
Jonathan Rose [Wed, 4 Apr 2012 13:51:45 +0000 (13:51 +0000)]
Make the MeetMeAdmin N command (mute all nonadmins) not mute admins

(Closes Issue ASTERISK-19335)
Reported by: Johan Wilfer

Merged revisions 361090 from

Merged revisions 361091 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoFix the display of documentation for Transfer
Kinsey Moore [Tue, 3 Apr 2012 20:14:01 +0000 (20:14 +0000)]
Fix the display of documentation for Transfer

This came up while fixing documentation generation for many other cases where
the argument separator was not being displayed properly.  Now that it is
displayed properly, it shows up in the wrong place for Transfer since the '/'
is only required if Tech is present.

(related to issue ASTERISK-18168)

Merged revisions 361040 from

Merged revisions 361041 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoFix dev-mode compiler warning about gnu_printf
Mark Murawki [Tue, 3 Apr 2012 20:03:44 +0000 (20:03 +0000)]
Fix dev-mode compiler warning about gnu_printf

(related to ASTERISK-19575)

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoAllow the Hangup manager action to match channels by regex
Mark Murawki [Tue, 3 Apr 2012 19:31:25 +0000 (19:31 +0000)]
Allow the Hangup manager action to match channels by regex

* Hangup now can take a regular expression as the Channel option.  If you want
  to hangup multiple channels, use /regex/ as the Channel option.  Existing
  behavior to hanging up a single channel is unchanged, but if you pass a regex,
  the manager will send you a list of channels back that were hung up.

(closes issue ASTERISK-19575)
Reported by: Mark Murawski
Tested by: Mark Murawski

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoStop sending out RTCP if RTP is inactive
Kinsey Moore [Mon, 2 Apr 2012 22:27:13 +0000 (22:27 +0000)]
Stop sending out RTCP if RTP is inactive

This change prevents Asterisk from sending RTCP receiver reports during a
remote bridge since it is no longer receiving media and should not be
reporting anything.

(related to ASTERISK-19366)

Merged revisions 360987 from

Merged revisions 360993 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoFix logger deadlock on Asterisk shutdown.
Richard Mudgett [Fri, 30 Mar 2012 21:38:16 +0000 (21:38 +0000)]
Fix logger deadlock on Asterisk shutdown.

The logger_thread() had an exit path that failed to release the logmsgs
list lock.

* Make logger_thread() exit path unlock the logmsgs list lock.

* Made ast_log() not queue any messages to the logmsgs list if the
close_logger_thread flag is set.

(issue ASTERISK-19463)
Reported by: Matt Jordan

Merged revisions 360933 from

Merged revisions 360934 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoFix potential race condition during call pickup.
Mark Michelson [Thu, 29 Mar 2012 23:36:37 +0000 (23:36 +0000)]
Fix potential race condition during call pickup.

Prior to this patch, a connected line update was queued during
call pickup and then an answer frame was queued. The original
caller would presumably then have his connected line updated
and then the call would be answered.

In actuality, the answer frame was not how the call ended up
being answered. Rather, an odd section in app_dial that checks
if the called channel's state is up.

The result is that the order of the connected line update and
the answer were variable. In most cases, this wasn't actually
a bad thing. However, if the 'I' option was passed to dial, the
connected line update would be inhibited.

The fix is to queued the connected line after the answer frame is
queued. This way the race in app_dial is between two
conditions resulting in an answer. This way the connected line
update occurs after the answer every time.

(closes issue ASTERISK-19183)
Reported by: Thomas Arimont
Tested by: Thomas Arimont
    Mark Michelson
    ASTERISK-19183.patch uploaded by Mark Michelson (license 5049)

Merged revisions 360884 from

Merged revisions 360885 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoImprove accuracy of identifying information sent in dialog-info SIP NOTIFY requests.
Mark Michelson [Thu, 29 Mar 2012 23:22:01 +0000 (23:22 +0000)]
Improve accuracy of identifying information sent in dialog-info SIP NOTIFY requests.

This change makes use of connected party information in addition to caller ID in order
to populate local and remote XML elements in the dialog-info NOTIFYs.

(closes issue ASTERISK-16735)
Reported by: Maciej Krajewski
Tested by: Maciej Krajewski
    local_remote_hint2.diff uploaded by Mark Michelson (license 5049)

Merged revisions 360862 from

Merged revisions 360863 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoMisc changes to make astobj2 enhancement diffs easier to follow.
Richard Mudgett [Thu, 29 Mar 2012 21:57:23 +0000 (21:57 +0000)]
Misc changes to make astobj2 enhancement diffs easier to follow.

* Rename astobj2 API parameter funcname to func.

* Rename astobj2 API iterator parameter to iter.

* Update some documentation for OBJ_MULTIPLE.

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoIntroducing the log message unique call identifiers feature
Jonathan Rose [Thu, 29 Mar 2012 20:01:20 +0000 (20:01 +0000)]
Introducing the log message unique call identifiers feature

Log messages will now display a call number that they are tied to (ordered for calls
based on when they started). This feature is made to be minimally invasive without
requiring changes to many of the existing log messages. These IDs  won't show up for
verbose messages on CLI (but they will in log files) This is currently in phase II
of production, see more about this feature on the wiki --


git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoundoing 360785 due to merging mistake
Jonathan Rose [Thu, 29 Mar 2012 19:59:30 +0000 (19:59 +0000)]
undoing 360785 due to merging mistake

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoIntroducing the log message unique call identifiers feature
Jonathan Rose [Thu, 29 Mar 2012 19:54:35 +0000 (19:54 +0000)]
Introducing the log message unique call identifiers feature

Log messages will now display a call number that they are tied to (ordered for calls
based on when they started). This feature is made to be minimally invasive without
requiring changes to many of the existing log messages. These IDs  won't show up for
verbose messages on CLI (but they will in log files) This is currently in phase II
of production, see more about this feature on the wiki --


git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoFix setting CDR variables in the hangup extension
Terry Wilson [Wed, 28 Mar 2012 19:39:24 +0000 (19:39 +0000)]
Fix setting CDR variables in the hangup extension

A previous CDR fix for setting CDR variables during a bridge via
custom dialplan features broke setting CDR variables in the
hangup extension. This patch fixes the issue.


Merged revisions 358978 from

Merged revisions 358989 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoMake a debug message regarding subscription changes more accurate.
Mark Michelson [Tue, 27 Mar 2012 18:44:53 +0000 (18:44 +0000)]
Make a debug message regarding subscription changes more accurate.

I was getting confused during some testing why Asterisk was saying that
a subscription was being added when it was clearly being removed. This
fixes that confusion.

Merged revisions 360625 from

Merged revisions 360672 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoAdd global ao2 array container.
Richard Mudgett [Tue, 27 Mar 2012 17:13:32 +0000 (17:13 +0000)]
Add global ao2 array container.

Global ao2 objects must always exist after initialization because there is
no access control to obtain another reference to the global object.

It is expected that module configuration could use these new API calls to
replace an active configuration parameter object with an updated
configuration parameter object.

With these new API calls, the global object could be replaced, removed, or
referenced without the risk of someone using a stale global object


git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoAttempt to be more helpful when using a bad ao2 object pointer.
Richard Mudgett [Tue, 27 Mar 2012 17:00:13 +0000 (17:00 +0000)]
Attempt to be more helpful when using a bad ao2 object pointer.

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoUpdates config with bootstrap where I changed in r360488
Jonathan Rose [Tue, 27 Mar 2012 14:43:00 +0000 (14:43 +0000)]
Updates config with bootstrap where I changed in r360488

(issue ASTERISK-17842)
Reported by: Bryon Clark

Merged revisions 360574 from

Merged revisions 360575 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoBlocked revisions 360476
Paul Belanger [Mon, 26 Mar 2012 21:36:24 +0000 (21:36 +0000)]
Blocked revisions 360476

Update CHANGES for r360471

Merged revisions 360474 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoConvert ast_verb() to ast_debug() and increase log level
Paul Belanger [Mon, 26 Mar 2012 21:22:23 +0000 (21:22 +0000)]
Convert ast_verb() to ast_debug() and increase log level

Rather then flood the CLI with verbose messages, we've changed the level to
debug. This will help keep the CLI clean.

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoFix BETTER_BACKTRACES library detection for Fedora/RedHat/CentOS
Jonathan Rose [Mon, 26 Mar 2012 19:49:40 +0000 (19:49 +0000)]
Fix BETTER_BACKTRACES library detection for Fedora/RedHat/CentOS

(closes ASTERISK-17842)
Reported by: Bryon Clark
20110512__issue19278.diff.txt uploaded by Tilghman Lesher (license 5003)
configure_bfd_with_dl_and_iberty.patch uploaded by Bryon Clark (license 6157)

Merged revisions 360488 from

Merged revisions 360489 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agofunc_curl: Fix leak of an ast_str in error handling code path.
Russell Bryant [Sat, 24 Mar 2012 23:49:39 +0000 (23:49 +0000)]
func_curl: Fix leak of an ast_str in error handling code path.

Merged revisions 360413 from

Merged revisions 360414 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agochan_iax2: Use OBJ_NODATA to be a bit more explicit.
Russell Bryant [Sat, 24 Mar 2012 03:18:13 +0000 (03:18 +0000)]
chan_iax2: Use OBJ_NODATA to be a bit more explicit.

This is just a minor code cleanup change.  These uses of ao2_callback() would
never return anything since the callbacks always returned 0.  However, be more
explicit that no returned results are wanted by specifying OBJ_NODATA.

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoapp_page: Fix a memory leak on every Page().
Russell Bryant [Sat, 24 Mar 2012 03:11:43 +0000 (03:11 +0000)]
app_page: Fix a memory leak on every Page().

dial_list is a dynamically allocated array that is allocated at the beginning
of Page() based on how many devices will be dialed.  This was never being freed.

Merged revisions 360363 from

Merged revisions 360364 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoapp_jack: fix datastore memory leak in error handling path.
Russell Bryant [Sat, 24 Mar 2012 03:03:20 +0000 (03:03 +0000)]
app_jack: fix datastore memory leak in error handling path.

Merged revisions 360360 from

Merged revisions 360361 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoMultiple revisions 360356-360357
Russell Bryant [Sat, 24 Mar 2012 02:42:42 +0000 (02:42 +0000)]
Multiple revisions 360356-360357

  r360356 | russell | 2012-03-23 22:33:36 -0400 (Fri, 23 Mar 2012) | 6 lines

  expression parser: Fix (theoretical) memory leak.

  Fix a memory leak that is very unlikely to actually happen.  If a malloc()
  succeeded, but the following strdup() failed, the memory from the original
  malloc() would be leaked.
  r360357 | russell | 2012-03-23 22:34:39 -0400 (Fri, 23 Mar 2012) | 6 lines

  Rebuild parsers.

  This is needed to include the last fix to main/ast_expr2.y.  The changes look
  much bigger as this regeneration of the code was done with newer versions of
  flex and bison.

Merged revisions 360356-360357 from

Merged revisions 360358 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoMake number not available presentation also set screening to network provided.
Richard Mudgett [Sat, 24 Mar 2012 00:40:51 +0000 (00:40 +0000)]
Make number not available presentation also set screening to network provided.

Q.951 indicates that when the presentation indicator is "Number not
available due to interworking" for a number then the screening indicator
field should be "Network provided".

* Made ast_party_id_presentation() return AST_PRES_NUMBER_NOT_AVAILABLE
when the presentation is "Number not available due to interworking".  This
fix makes Asterisk consistent and it also makes it consistent with earlier
branches as far as this presentation value is concerned.

* Made pri_to_ast_presentation() and ast_to_pri_presentation() conversions
handle the "Number not available due to interworking" case better in
sig_pri.c.  This change is possible because the minimum required libpri
version (v1.4.11) has the necessary defines in libpri.h.

Merged revisions 360309 from

Merged revisions 360310 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoAdd missing initialization of update_redirecting in chan_sip.c
Richard Mudgett [Fri, 23 Mar 2012 22:56:14 +0000 (22:56 +0000)]
Add missing initialization of update_redirecting in chan_sip.c

Merged revisions 360262 from

Merged revisions 360263 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoAdds F option to Bridge application
Jonathan Rose [Thu, 22 Mar 2012 21:25:22 +0000 (21:25 +0000)]
Adds F option to Bridge application

Similar to dial and queue F option.

(Closes issue ASTERISK-19282)
Reported by: To
bridge_f-v3.diff uploaded by To (license 6347)

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoKill off red blobs in most of main/*
Kinsey Moore [Thu, 22 Mar 2012 19:51:16 +0000 (19:51 +0000)]
Kill off red blobs in most of main/*

Everything still compiled after making these changes, so I assume these
whitespace-only changes didn't break anything (and shouldn't have).

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoUpdate install_prereq script to include missing GSM library for debian amd move SQLite3.
Jonathan Rose [Wed, 21 Mar 2012 14:55:27 +0000 (14:55 +0000)]
Update install_prereq script to include missing GSM library for debian amd move SQLite3.

(closes issue ASTERISK-19367)
Reported by: Andrew Latham
debian_install_prereq.diff uploaded by Andrew Latham (license 5985)

Merged revisions 360138 from

Merged revisions 360139 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoAlso detect gmime 2.6
Tzafrir Cohen [Wed, 21 Mar 2012 14:47:56 +0000 (14:47 +0000)]
Also detect gmime 2.6

Also detect gmime version 2.6 (Michael Biebl)

Signed-off-by: Tzafrir Cohen (License #5035) <>

Merged revisions 360087 from

Merged revisions 360098 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoEnsure Asterisk sends a BYE when pending on the final response to a re-INVITE
Matthew Jordan [Wed, 21 Mar 2012 13:31:09 +0000 (13:31 +0000)]
Ensure Asterisk sends a BYE when pending on the final response to a re-INVITE

When Asterisk detects a hangup and cannot send a BYE due to a pending
INVITE, it sets the pendingbye flag and waits for the final response to that
INVITE.  When the response is received, it transmits the BYE.  If, however,
that INVITE request is a pending re-INVITE, it needs to first send a CANCEL
request to terminate the pending re-INVITE.  In that circumstance, Asterisk
was, in some scenarios, clearing the pendingbye flag after processing the
CANCEL request and not checking for a pending BYE when receiving the final
487 response to the INVITE.

This patch ensures that if the pendingbye flag is set, it is honored
regardless of the nature of the INVITE request currently in flight.

(closes issue ASTERISK-19365)
Reported by: Thomas Arimont
Tested by: Thomas Arimont
  bugASTERISK-19365_2012_03_08.patch uploaded by mjordan (license 6283)


Merged revisions 360086 from

Merged revisions 360088 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoPrevent Echo() from relaying control, null, and modem frames
Kinsey Moore [Tue, 20 Mar 2012 20:42:34 +0000 (20:42 +0000)]
Prevent Echo() from relaying control, null, and modem frames

Echo()'s description states that it echoes audio, video, and DTMF except for #
while it actually echoes any frame that it receives other than DTMF #.  This
was causing frame storms in the test suite in some circumstances where Echo()
was attached to both ends of a pair of local channels and control frames
were being periodically generated.  Echo()'s behavior and description have
been modifed so that it only echoes media and non-# DTMF frames.

Merged revisions 360033 from

Merged revisions 360034 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agochan_iax2: Correct spelling of 'Port' header in IAX2 PeerStatus AMI Events
Sean Bright [Tue, 20 Mar 2012 18:17:16 +0000 (18:17 +0000)]
chan_iax2: Correct spelling of 'Port' header in IAX2 PeerStatus AMI Events

The PeerStatus event for IAX2 channels currently includes a header named Post
which should have been Port.  Post was removed and the AMI version has been
updated to 1.3.

Merged revisions 359982 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoAllow AMI action callback to be reentrant.
Richard Mudgett [Tue, 20 Mar 2012 17:31:28 +0000 (17:31 +0000)]
Allow AMI action callback to be reentrant.

Fix AMI module reload deadlock regression from ASTERISK-18479 when it
tried to fix the race between calling an AMI action callback and
unregistering that action.  Refixes ASTERISK-13784 broken by
ASTERISK-17785 change.

Locking the ao2 object guaranteed that there were no active callbacks that
mattered when ast_manager_unregister() was called.  Unfortunately, this
causes the deadlock situation.  The patch stops locking the ao2 object to
allow multiple threads to invoke the callback re-entrantly.  There is no
way to guarantee a module unload will not crash because of an active
callback.  The code attempts to minimize the chance with the registered
flag and the maximum 5 second delay before ast_manager_unregister()

The trunk version of the patch changes the API to fix the race condition
correctly to prevent the module code from unloading from memory while an
action callback is active.

* Don't hold the lock while calling the AMI action callback.

(closes issue ASTERISK-19487)
Reported by: Philippe Lindheimer


Merged revisions 359979 from

Merged revisions 359980 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoConvert MuteAudio documentation to XML.
Richard Mudgett [Mon, 19 Mar 2012 20:26:51 +0000 (20:26 +0000)]
Convert MuteAudio documentation to XML.

* Added missing error exits with cause in manager_mutestream().

* Cleaned up manager_mutestream() and func_mute_write().

* Some whitespace and comment cleanup.

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoPrevent chanspy from binding to zombie channels
Jonathan Rose [Fri, 16 Mar 2012 21:00:07 +0000 (21:00 +0000)]
Prevent chanspy from binding to zombie channels

This patch addresses a bug with chanspy on local channels which roughly 50% of the time
would create a situation where chanspy can latch onto a zombie channel, keeping the zombie
alive forever and causing the channel doing the spying to never be able to hang up.

(closes issue ASTERISK-19493)
Reported by: lvl

Merged revisions 359892 from

Merged revisions 359898 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoSimplify some code in ast_app_run_sub().
Richard Mudgett [Fri, 16 Mar 2012 20:37:54 +0000 (20:37 +0000)]
Simplify some code in ast_app_run_sub().

* Remove unnnecessary const from const char * const var declaration in the
ast_app_run_macro() and ast_app_run_sub() prototypes.  The second const is

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoRevert the pre-dial addition.
Mark Michelson [Fri, 16 Mar 2012 15:38:45 +0000 (15:38 +0000)]
Revert the pre-dial addition.

The code may be just fine, but it had not received a "ship it!" on
review board yet.

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoMissed lastinvite CSeq int to uint32_t change
Alec L Davis [Fri, 16 Mar 2012 08:27:14 +0000 (08:27 +0000)]
Missed lastinvite CSeq int to uint32_t change
from Review:

Merged revisions 359809 from

Merged revisions 359810 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoFix warning from commit r359705 (predial options for app_dial)
Mark Murawki [Thu, 15 Mar 2012 20:11:55 +0000 (20:11 +0000)]
Fix warning from commit r359705 (predial options for app_dial)

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoFix remotely exploitable stack overflow in HTTP manager
Matthew Jordan [Thu, 15 Mar 2012 19:11:03 +0000 (19:11 +0000)]
Fix remotely exploitable stack overflow in HTTP manager

There exists a remotely exploitable stack buffer overflow in HTTP digest
authentication handling in Asterisk.  The particular method in question
is only utilized by HTTP AMI.  When parsing the digest information, the
length of the string is not checked when it is copied into temporary buffers
allocated on the stack.

This patch fixes this behavior by parsing out pre-defined key/value pairs
and avoiding unnecessary copies to the stack.

(closes issue ASTERISK-19542)
Reported by: Russell Bryant
Tested by: Matt Jordan

Merged revisions 359706 from

Merged revisions 359707 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoAdd options PreDial options 'b' and 'B' to app_dial
Mark Murawki [Thu, 15 Mar 2012 18:58:25 +0000 (18:58 +0000)]
Add options PreDial options 'b' and 'B' to app_dial

* Added 'b' and 'B' options to Dial.  These options will allow you to run
  last-minute dialplan on the caller and callee channels while the Dial
  application is executing, but before the call is started.  For example you
  can use the 'b' option to run dialplan on the callee channel to get the name
  of the newly created channel right away.


(closes issue: ASTERISK-19548)
Reported by: Mark Murawski
Tested by: Mark Murawski, Stefan Schmidt

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoFix remotely exploitable stack overrun in Milliwatt
Matthew Jordan [Thu, 15 Mar 2012 18:55:54 +0000 (18:55 +0000)]
Fix remotely exploitable stack overrun in Milliwatt

Milliwatt is vulnerable to a remotely exploitable stack overrun when using
the 'o' option.  This occurs due to the milliwatt_generate function not
accounting for AST_FRIENDLY_OFFSET when calculating the maximum number of
samples it can put in the output buffer.

This patch resolves this issue by taking into account AST_FRIENDLY_OFFSET
when determining the maximum number of samples allowed.  Note that at no
point is remote code execution possible.  The data that is written into the
buffer is the pre-defined Milliwatt data, and not custom data.

(closes issue ASTERISK-19541)
Reported by: Russell Bryant
Tested by: Matt Jordan
  milliwatt_stack_overrun.rev1.txt by Russell Bryant (license 6283)
  Note that this patch was written by Russell, even though Matt uploaded it

Merged revisions 359645 from

Merged revisions 359656 from

Merged revisions 359694 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoRemove unused variable ‘srch’
Paul Belanger [Thu, 15 Mar 2012 18:34:39 +0000 (18:34 +0000)]
Remove unused variable ‘srch’

Missed on the previous commit

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoAdd missing connected line macro calls to initial dial for Dial and Queue apps.
Richard Mudgett [Thu, 15 Mar 2012 18:32:22 +0000 (18:32 +0000)]
Add missing connected line macro calls to initial dial for Dial and Queue apps.

The connected line interception macros do not get executed when the
outgoing channel is initially created and that channel's caller-id is
implicitly imported into the incoming channel's connected line data.  If
you are using the interception macros, you would expect that they get run
for every change to a channel's connected line information outside of
normal dialplan execution.


Merged revisions 359609 from

Merged revisions 359620 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoRemove some dead code found in _sip_show_peers()
Paul Belanger [Thu, 15 Mar 2012 17:36:15 +0000 (17:36 +0000)]
Remove some dead code found in _sip_show_peers()


git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agochan_iax2: Fix use of uninitialized sockaddr_in in try_transfer().
Russell Bryant [Thu, 15 Mar 2012 00:54:32 +0000 (00:54 +0000)]
chan_iax2: Fix use of uninitialized sockaddr_in in try_transfer().

Initialize a struct sockaddr_in in try_transfer() so that the code isn't
(potentially) trying to read from it while uninitialized.

Merged revisions 359558 from

Merged revisions 359559 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agochan_gtalk: Fix potential use of uninitialized variable.
Russell Bryant [Thu, 15 Mar 2012 00:07:18 +0000 (00:07 +0000)]
chan_gtalk: Fix potential use of uninitialized variable.

Avoid potential use of idroster in gtalk_alloc() before it has been

Merged revisions 359508 from

Merged revisions 359509 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoapp_chanisavail: Fix use of uninitialized variable.
Russell Bryant [Wed, 14 Mar 2012 23:29:32 +0000 (23:29 +0000)]
app_chanisavail: Fix use of uninitialized variable.

Ensure that status is set before it is used by resetting it during each loop
iteration.  This could have resulted in incorrect results from this app.

Merged revisions 359486 from

Merged revisions 359491 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoudptl: Ensure fec[] in udptl_build_packet() is initialized.
Russell Bryant [Wed, 14 Mar 2012 23:12:42 +0000 (23:12 +0000)]
udptl: Ensure fec[] in udptl_build_packet() is initialized.

Scan results indicated that this array could be used uninitialized.  At a quick
look, it looks correct.  In any case, initializing it is a Good Thing (tm).

Merged revisions 359457 from

Merged revisions 359458 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoapp.h: Always initialize AST_DECLARE_APP_ARGS().
Russell Bryant [Wed, 14 Mar 2012 22:41:21 +0000 (22:41 +0000)]
app.h: Always initialize AST_DECLARE_APP_ARGS().

This patch ensures that the struct defined by AST_DECLARE_APP_ARGS() is always
fully initialized.  I'm not sure if this fixes any real bugs, but it silences
a bunch of warnings from coverity, and is generally a good thing to do anyway.

Merged revisions 359452 from

Merged revisions 359454 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoFix deadlock potential with some ast_indicate/ast_indicate_data calls.
Richard Mudgett [Wed, 14 Mar 2012 22:38:29 +0000 (22:38 +0000)]
Fix deadlock potential with some ast_indicate/ast_indicate_data calls.

Calling ast_indicate()/ast_indicate_data() with the channel lock held can
result in a deadlock with a local channel because of how local channels
need to avoid deadlock.

Merged revisions 359451 from

Merged revisions 359453 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoAdd tests for main/jitterbuf.c
Matthew Jordan [Wed, 14 Mar 2012 18:56:15 +0000 (18:56 +0000)]
Add tests for main/jitterbuf.c

This patch adds unit tests for main/jitterbuf.c.  This includes checking for
the following:
  * Nominal insertion and retrieval of frames
  * Insertion and retrieval of frames where the frames are inserted out of
    order with respect to the previous frame
  * Insertion and retrieval of frames where some number of frames that would
    occur in the expected sequence are instead dropped
  * Insertion and retrieval of frames with an arrival time that does not occur
    at the same rate as the surrounding frames
  * Resynchronization of the jitter buffer when an inserted frame breaks the
    resynchronization threshold
  * Overfilling of the jitter buffer

For each of the tests, both JB_TYPE_VOICE and JB_TYPE_CONTROL permutations


(issue: ASTERISK-18964)
Reported by: Kris Shaw
Tested by: Kris Shaw, Matt Jordan

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoThree copies of the file contents in channel_internal.h are a bit excessive.
Richard Mudgett [Wed, 14 Mar 2012 18:12:08 +0000 (18:12 +0000)]
Three copies of the file contents in channel_internal.h are a bit excessive.

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoFix incorrect jitter buffer overflow due to missed resynchronizations
Matthew Jordan [Wed, 14 Mar 2012 17:48:40 +0000 (17:48 +0000)]
Fix incorrect jitter buffer overflow due to missed resynchronizations

When a change in time occurs, such that the timestamps associated with frames
being placed into an adaptive jitter buffer (implemented in jitterbuf.c)
are significantly different then the previously inserted frames, the jitter
buffer checks to see if it needs to be resynched to the new time frame.  If
three consecutive packets break the threshold, the jitter buffer resynchs
itself to the new timestamps.  This currently only occurs when history is
calculated, and hence only on JB_TYPE_VOICE frames.

JB_TYPE_CONTROL frames, on the other hand, are never passed to the history
calculations.  Because of this, if the jump in time is greater then the
maximum allowed length of the jitter buffer, the JB_TYPE_CONTROL frames are
dropped and no resynchronization occurs.  Alterntively, if the overfill
logic is not triggered, the JB_TYPE_CONTROL frame will be placed into the
buffer, but with a time reference that is not applicable.  Subsequent
JB_TYPE_VOICE frames will quickly trigger the overflow logic until reads
from the jitter buffer reach the errant JB_TYPE_CONTROL frame.

This patch allows JB_TYPE_CONTROL frames to resynch the jitter buffer.  As
JB_TYPE_CONTROL frames are unlikely to occur in multiples, it perform the
resynchronization on any JB_TYPE_CONTROL frame that breaks the resynch

Note that this only impacts chan_iax2, as other consumers of the adaptive
jitter buffer use the abstract jitter buffer API, which does not use


(closes issue ASTERISK-18964)
Reported by: Kris Shaw
Tested by: Kris Shaw, Matt Jordan
  jitterbuffer-2012-2-26.diff uploaded by Kris Shaw (license 5722)

Merged revisions 359356 from

Merged revisions 359358 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoFix Dial m and r options and forked calls generating warnings for voice frames.
Richard Mudgett [Wed, 14 Mar 2012 17:39:45 +0000 (17:39 +0000)]
Fix Dial m and r options and forked calls generating warnings for voice frames.

When connected line support was added, the wait_for_answer() variable
single changed its meaning slightly.  Unfortunately, the places where
single was used did not necessarily get updated to reflect that change.
Also audio/video frames were sent to all forked calls when the endpoints
were never made compatible.

* Don't pass audio/video media frames when the channels have not been made

* Added handling of AST_CONTROL_SRCCHANGE to app_dial.c.

* Fixed app_dial.c passing on AST_CONTROL_HOLD because that frame can also
pass a requested MOH class.

(closes issue ASTERISK-16901)
Reported by: Chris Gentle

(closes issue ASTERISK-17541)
Reported by: clint


Merged revisions 359344 from

Merged revisions 359355 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoForce non-inlining of ao2_iterator_destroy when TEST_FRAMEWORK is enabled
Matthew Jordan [Wed, 14 Mar 2012 14:40:44 +0000 (14:40 +0000)]
Force non-inlining of ao2_iterator_destroy when TEST_FRAMEWORK is enabled

In r357272, astobj2 was changed to automatically enable REF_DEBUG when the
TEST_FRAMEWORK flag was enabled.  Unfortunately, some compilers (gcc 4.5.1
at least) will attempt to inline ao2_iterator_destroy in handle_astobj2_test.
This by itself is not a problem; unfortunately, the compiler believes that
there is a code path wherein an object allocated on the stack will be
free'd.  As warnings are treated as errors, this prevents compilation of

This patch works around that by adding the noinline attribue to
ao2_iterator_destroy, but only if the TEST_FRAMEWORK flag is enabled.
Preventing inlining is only needed for the test method defined in astobj2,
which is also only enabled if TEST_FRAMEWORK is enabled.

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoFix bogus reads/writes of console log levels in asterisk.c
Russell Bryant [Wed, 14 Mar 2012 10:56:53 +0000 (10:56 +0000)]
Fix bogus reads/writes of console log levels in asterisk.c

This patch updates the NUMLOGLEVELS define in logger.h to 32, to match the fact
that logger.c implements 32 log levels (because of the custom log level stuff).
asterisk.c uses this define to size an array of levels per remote console.

This array is modified in ast_console_toggle_loglevel(), which is called by the
"logger set level" CLI command.  While the documentation for the CLI command
doesn't make it terribly obvious, you can use this CLI command to toggle a
custom log level on a remote console, as well.  However, doing so led to an
invalid array index in asterisk.c.

This array is read from any time a log message is written to a console.  So,
all custom log level messages resulted in a bogus read if a remote console
was connected.

Merged revisions 359259 from

Merged revisions 359260 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoFix invalid reads/writes due to incorrect sizeof().
Russell Bryant [Wed, 14 Mar 2012 10:05:07 +0000 (10:05 +0000)]
Fix invalid reads/writes due to incorrect sizeof().

These few places in the code used sizeof() on h_addr in struct hostent.
This is sizeof(char *).  The correct way to get the size of this address is to
use h_length.  This error would result in reads/writes of 8 bytes instead of 4
on 64-bit machines.

Merged revisions 359211 from

Merged revisions 359212 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoFix inaccurate sizeof() in sched.c.
Russell Bryant [Wed, 14 Mar 2012 01:35:30 +0000 (01:35 +0000)]
Fix inaccurate sizeof() in sched.c.

This code just needed sizeof(int), not sizeof(int *).

Merged revisions 359157 from

Merged revisions 359162 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoFix incorrect sizeof() in astman.
Russell Bryant [Wed, 14 Mar 2012 00:45:02 +0000 (00:45 +0000)]
Fix incorrect sizeof() in astman.

Merged revisions 359116 from

Merged revisions 359117 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoFix incorrect usage of sizeof() in res_crypto.
Russell Bryant [Wed, 14 Mar 2012 00:39:23 +0000 (00:39 +0000)]
Fix incorrect usage of sizeof() in res_crypto.

In this case, just remove the memset().  There was a redundant memset that is
done correctly just 2 lines later.

Merged revisions 359110 from

Merged revisions 359114 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoFix broken usage of sizeof() in res_adsi.
Russell Bryant [Wed, 14 Mar 2012 00:29:47 +0000 (00:29 +0000)]
Fix broken usage of sizeof() in res_adsi.

Merged revisions 359088 from

Merged revisions 359091 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoFix incorrect sizeof() usage in features.c.
Russell Bryant [Wed, 14 Mar 2012 00:22:10 +0000 (00:22 +0000)]
Fix incorrect sizeof() usage in features.c.

This didn't actually result in a bug anywhere, luckily.  The only place
where the result of these memcpys was used is in app_dial, and the only
field that it read out of ast_call_feature was the first one, which is an
int, so these memcpys always copied just enough to avoid a problem.

Merged revisions 359069 from

Merged revisions 359072 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoFix incorrect sizeof() on a pointer in MD5Final().
Russell Bryant [Wed, 14 Mar 2012 00:10:37 +0000 (00:10 +0000)]
Fix incorrect sizeof() on a pointer in MD5Final().

Merged revisions 359059 from

Merged revisions 359060 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoDon't use a buffer after it goes out of scope.
Russell Bryant [Wed, 14 Mar 2012 00:01:40 +0000 (00:01 +0000)]
Don't use a buffer after it goes out of scope.

's' is set to 'workspace'.  Make sure 'workspace' doesn't go out of scope while
the reference to it via 's' is still used.

Merged revisions 359056 from

Merged revisions 359057 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoBlocked revisions 359054
Russell Bryant [Tue, 13 Mar 2012 23:46:55 +0000 (23:46 +0000)]
Blocked revisions 359054

Dump cache of published events when a node joins the cluster.

Also use a more reliable method for stopping the poll() thread.

Merged revisions 359053 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoRemove chan_usbradio and app_rpt.
Russell Bryant [Tue, 13 Mar 2012 23:42:24 +0000 (23:42 +0000)]
Remove chan_usbradio and app_rpt.

These modules are being maintained outside of the tree and have been for a long
time now, so it doesn't make sense to keep them here.


Merged revisions 359050 from

Merged revisions 359051 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoAdd missing channel_internal.h
Terry Wilson [Tue, 13 Mar 2012 21:24:13 +0000 (21:24 +0000)]
Add missing channel_internal.h


git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoAdd ability for chan_dahdi ISDN to block connected line updates per span.
Richard Mudgett [Tue, 13 Mar 2012 21:18:31 +0000 (21:18 +0000)]
Add ability for chan_dahdi ISDN to block connected line updates per span.

Added new chan_dahdi.conf colp_send option parameter to block connected
line updates per span.

(closes issue ASTERISK-17025)
Reported by: Michael Smith

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoFix setting CDR variables in the hangup extension
Terry Wilson [Tue, 13 Mar 2012 20:43:19 +0000 (20:43 +0000)]
Fix setting CDR variables in the hangup extension

A previous CDR fix for setting CDR variables during a bridge via
custom dialplan features broke setting CDR variables in the
hangup extension. This patch fixes the issue.


Merged revisions 358978 from

Merged revisions 358989 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoMake hints for invalid SIP devices return Unavail, not idle
Terry Wilson [Tue, 13 Mar 2012 20:06:57 +0000 (20:06 +0000)]
Make hints for invalid SIP devices return Unavail, not idle

This patch drastically simplifies the device state aggegation code.
The old method was not only overly complex, but also made it impossible
to return AST_DEVICE_INVALID from the aggregation code. The unit test
update is as a result of fixing that bug.

The SIP change stems from a bug introduced by removing a DNS lookup
for hostname-based SIP channels.

(closes issue ASTERISK-16702)

Merged revisions 358943 from

Merged revisions 358944 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoFix IMAP storage compilation after opaquification changes
Terry Wilson [Tue, 13 Mar 2012 18:55:14 +0000 (18:55 +0000)]
Fix IMAP storage compilation after opaquification changes

(closes issue ASTERISK-19513)

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

10 years agoFinalize ast_channel opaquification
Terry Wilson [Tue, 13 Mar 2012 18:20:34 +0000 (18:20 +0000)]
Finalize ast_channel opaquification


git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3