]> git.ipfire.org Git - thirdparty/asterisk.git/log
thirdparty/asterisk.git
12 years agoResolve deadlock between SIP registration and channel based functions
Matthew Jordan [Tue, 26 Mar 2013 02:31:26 +0000 (02:31 +0000)] 
Resolve deadlock between SIP registration and channel based functions

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

   Note that this issue was already fixed in Asterisk 11.

 * Holding the private lock while calling sip_poke_peer. In the same vein as
   sip_send_mwi_to_peer, sip_poke_peer can create a new SIP private, causing
   the same locking inversion.

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

(issue ASTERISK-21068)
Reported by: Nicolas Bouliane

(issue ASTERISK-20550)
Reported by: David Brillert

(issue ASTERISK-21314)
Reported by: Badalian Vyacheslav

(issue ASTERISK-21296)
Reported by: Gabriel Birke
........

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

Merged revisions 383878 from http://svn.asterisk.org/svn/asterisk/branches/11

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

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

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

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

(issue ASTERISK-21162)
Reported by: Chase Venters
........

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

Merged revisions 383840 from http://svn.asterisk.org/svn/asterisk/branches/11

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

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

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

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

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

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

Merged revisions 383166 from http://svn.asterisk.org/svn/asterisk/branches/11

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

12 years agoLet vm_mailbox_snapshot combine "Urgent" when no folder is specified
Matthew Jordan [Thu, 7 Mar 2013 17:57:49 +0000 (17:57 +0000)] 
Let vm_mailbox_snapshot combine "Urgent" when no folder is specified

r381835 fixed a bug in vm_mailbox_snapshot where combining INBOX and Old forgot
that Urgent also "counts" as new messages. This fixed the problem when any of
the three folders was specified and the combine option was used.

It missed the case where the folder isn't specified and we build a snapshot of
all folders. This patch corrects that.
........

Merged revisions 382617 from http://svn.asterisk.org/svn/asterisk/branches/11

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

12 years agoAdd a 'secret' probation strictrtp mode to handle delayed changes in RTP source
Matthew Jordan [Thu, 7 Mar 2013 15:13:13 +0000 (15:13 +0000)] 
Add a 'secret' probation strictrtp mode to handle delayed changes in RTP source

Often, Asterisk may realize that a change in the source of an RTP stream is
about to occur and ask that the RTP engine reset it's lock on the current RTP
source. In certain scenarios, it may take awhile for the new remote system to
send RTP packets, while the old remote system may continue providing RTP during
that time period. This causes Asterisk to re-lock onto the old source, thereby
rejecting the new source when the old source stops sending RTP and the new
source begins.

This patch prevents that by having a constant secondary, 'secret' probation
mode enabled when an RTP source has been chosen. RTP packets from other sources
are always considered, but never chosen unless the current RTP source stops
sending RTP.

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

(closes issue AST-1124)
Reported by: John Bigelow
Tested by: John Bigelow

(closes issue AST-1125)
Reported by: John Bigelow
Tested by: John Bigelow
........

Merged revisions 382573 from http://svn.asterisk.org/svn/asterisk/branches/11

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

12 years agoapp_page: Fixup application XML documentation typos and inaccuracies.
Kinsey Moore [Wed, 6 Mar 2013 19:36:33 +0000 (19:36 +0000)] 
app_page: Fixup application XML documentation typos and inaccuracies.

(closes issue AST-1116)
........

Merged revisions 380869 from http://svn.asterisk.org/svn/asterisk/branches/11

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

12 years agoFix comparison of presence state in event subsystem.
Jason Parker [Mon, 4 Mar 2013 21:15:52 +0000 (21:15 +0000)] 
Fix comparison of presence state in event subsystem.

Several new IEs were not given types (or names), causing the comparison
function to improperly succeed.  This adds those.

(closes issue AST-1128)
........

Merged revisions 382390 from http://svn.asterisk.org/svn/asterisk/branches/11

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

12 years agoConfbridge CLI new record file name check.
Kevin Harwell [Mon, 4 Mar 2013 20:21:28 +0000 (20:21 +0000)] 
Confbridge CLI new record file name check.

This fix checks to make sure that if a confbridge record start command is issued
from the CLI it will always use the file name given on the CLI even if it
changes between start/stop records for a conference.  Previously it had been
reusing the same file between start/stops even if a new filename was given.

(issue AST-1088)
Reported by: John Bigelow
........

Merged revisions 382385 from http://svn.asterisk.org/svn/asterisk/branches/11

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

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

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

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

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

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

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

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

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

Merged revisions 382230 from http://svn.asterisk.org/svn/asterisk/branches/11

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

12 years agoEnsure that the default bridge/user profiles are always available
Matthew Jordan [Tue, 26 Feb 2013 16:46:52 +0000 (16:46 +0000)] 
Ensure that the default bridge/user profiles are always available

ConfBridge and Page require that there always be a default bridge and user
profile available. While properties of the default profiles can be overriden
in the configuration file, removing them can create situations where neither
application can function properly.

This patch ensures that if an administrator removes the profiles from the
confbridge.conf configuration file, the profiles are added upon load.
Documentation clarifying this has been added to the confbridge.conf.sample file.

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

(closes issue AST-1115)
Reported by: John Bigelow
Tested by: John Bigelow
........

Merged revisions 382066 from http://svn.asterisk.org/svn/asterisk/branches/11

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

12 years agoMultiple revisions 379478,382068-382069
Matthew Jordan [Tue, 26 Feb 2013 16:19:03 +0000 (16:19 +0000)] 
Multiple revisions 379478,382068-382069

........
  r379478 | kmoore | 2013-01-18 15:46:58 -0600 (Fri, 18 Jan 2013) | 13 lines

  Fix regression in Confbridge user count

  When the restructuring work got committed to Confbridge in r375470 to
  fix many open issues, it caused a regression in the reported count of
  users when conference information was requested via CLI or manager.
  This corrects the user count and user information displayed when
  listing conference information from the CLI and manager.

  (closes issue ASTERISK-20938)
  Reported By: Timo Teras
  Patches:
    confbridge-list.patch uploaded by Timo Teras (license 5409)
........
  r382068 | mjordan | 2013-02-26 09:35:05 -0600 (Tue, 26 Feb 2013) | 26 lines

  Clean up ConfBridge commands to account for wait_marked users

  When ConfBridge was refactored to better handle the concept of marked,
  wait_marked, and normal users co-existing in a conference (thereby implementing
  a state machine for the conference), the wait_marked users were put into their
  own list of conference participants, separate from the active users. This list
  is used for wait_marked users when they are waiting in a conference but no
  marked user has joined; normal users may have joined at this point however.
  There are several AMI/CLI commands that affect conference users that were not
  checking the wait_marked users list:
  * CLI/AMI commands that mute/unmute a participant. In this case, wait_marked
    users have to remain in their particular state and should not be affected -
    however, the commands would return "Channel not found" as opposed to the
    appropriate error condition.
  * CLI/AMI commands that kick a participant. An admin should always be able to
    kick a participant out of the conference.

  This patch fixes both sets of commands, and cleans up the CLI commands slightly
  by allowing them to complete a participant name (this was supposed to have been
  added, but the function call was commented out and wasn't implemented).

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

  (closes issue AST-1114)
  Reported by: John Bigelow
  Tested by: John Bigelow
........
  r382069 | mjordan | 2013-02-26 09:38:05 -0600 (Tue, 26 Feb 2013) | 3 lines

  Fix typo in r382068

  Well, that was embarrassing. Removed an '-l' that somehow got in there.
........

Merged revisions 379478,382068-382069 from http://svn.asterisk.org/svn/asterisk/branches/11

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

12 years agoLet vm_mailbox_snapshot_create's combine option apply to "Urgent" as well
Matthew Jordan [Wed, 20 Feb 2013 19:15:50 +0000 (19:15 +0000)] 
Let vm_mailbox_snapshot_create's combine option apply to "Urgent" as well

The vm_mailbox_snapshot_create function has an option that combines the
contents of INBOX and Old into a single snapshot. The intent of this is that
both 'new' messages and 'deleted' messages are given in a single snapshot, as
some applications prefer this view of the voicemail world. Unfortunately, the
initial implementation ignored the "Urgent" folder. The "Urgent" folder is a
pseudo-INBOX, in that new messages left with the 'U' flag will be placed in
that folder as opposed to INBOX. Thus, the option failed the intent with which
it was added.

This patch makes it so that the "Urgent" folder is included in the snapshot
when that option is used.
........

Merged revisions 381835 from http://svn.asterisk.org/svn/asterisk/branches/11

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

12 years agoEnsure Min-SE is included in outbound INVITEs
Matthew Jordan [Wed, 20 Feb 2013 18:33:37 +0000 (18:33 +0000)] 
Ensure Min-SE is included in outbound INVITEs

Asterisk now includes Min-SE in outbound INVITEs when the value is not
90 (the default) and session timers are not disabled. This has the
effect of Asterisk following RFC4028 more closely with regard to 422
responses and preventing situations in which Asterisk would be forced
to temporarily accept a call to tear it down based on a Session-Expires
below the locally configured Min-SE.

(issue SWP-5051)
Review: https://reviewboard.asterisk.org/r/2222/
Reported-by: Kinsey Moore
Patch-by: Kinsey Moore
........

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

Merged revisions 377947 from http://svn.asterisk.org/svn/asterisk/branches/10
........

Merged revisions 377948 from http://svn.asterisk.org/svn/asterisk/branches/11

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

12 years agoRemove the release summaries from the branch
Matthew Jordan [Wed, 20 Feb 2013 18:10:57 +0000 (18:10 +0000)] 
Remove the release summaries from the branch

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

12 years agoUpdated merge properties to reflect correct trace.
Kevin Harwell [Wed, 20 Feb 2013 16:16:40 +0000 (16:16 +0000)] 
Updated merge properties to reflect correct trace.

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

12 years agoConfbridge channels staying active when all participants leave.
Kevin Harwell [Tue, 19 Feb 2013 16:26:07 +0000 (16:26 +0000)] 
Confbridge channels staying active when all participants leave.

If you started/stopped recording of a conference multiple times channels
would remain active even when all participants left the conference.  This
was due to the fact that a reference to the confbridge was being added
every time a start record command was issued, but when the recording was
stopped there was no matching de-reference thus keeping the conference alive.
Made sure only a single reference is added for the record thread no matter how
many times recording is started/stopped.  A de-reference is issued upon thread
ending.

Note, this issue is being fixed under AST-1088 since it relates to it and
should have been corrected along with those modifications.

(issue AST-1088)
Reported by: John Bigelow
........

Merged revisions 381737 from http://svn.asterisk.org/svn/asterisk/branches/11

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

12 years agoFixed Confbridge file recording deadlock and appending.
Kevin Harwell [Mon, 18 Feb 2013 22:41:15 +0000 (22:41 +0000)] 
Fixed Confbridge file recording deadlock and appending.

A deadlock occurred after starting/stopping and then restarting a confbridge
recording.  Upon starting a recording a record thread is created that holds a
lock until just before exiting.  Stopping the recording does not stop/exit the
thread or release the lock.  The thread waits until recording begins again.
Starting a stopped recording signals the thread to continue and start recording
again.  However restarting the recording also created another record thread
resulting in a deadlock.  The fix was to make sure the record thread was only
created once.

Also it was noted that filenames for the recordings were being concatenated for
each start/stop.  This was fixed by creating a new file for each conference
session and appending the actual recorded data within the file (e.g. passing
the 'a' option to MixMonitor).

(issue AST-1088)
Reported by: John Bigelow
Review: http://reviewboard.digium.internal/r/374/
........

Merged revisions 381702 from http://svn.asterisk.org/svn/asterisk/branches/11

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

12 years agoDon't send presencestate information if the state is invalid
Matthew Jordan [Sat, 16 Feb 2013 16:31:30 +0000 (16:31 +0000)] 
Don't send presencestate information if the state is invalid

Previously, presencestate information was sent whenever the state was not
NOT_SET. When r381594 actually returned INVALID presence state in all the
places it was supposed to, it caused chan_sip to start adding presence
state information to NOTIFY requests that it previously would not have
added. chan_sip shouldn't be adding presence state information when the
provider is in an invalid state; users can't set the state to invalid and
an invalid state always implies that the provider is in an error condition.

(issue AST-1084)
........

Merged revisions 381613 from http://svn.asterisk.org/svn/asterisk/branches/11

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

12 years agoFix crash in PresenceState AMI action when specifying an invalid provider
Matthew Jordan [Fri, 15 Feb 2013 23:36:05 +0000 (23:36 +0000)] 
Fix crash in PresenceState AMI action when specifying an invalid provider

This patch fixes a crash in Asterisk that could be caused by using the
PresenceState AMI action while providing an invalid provider. This patch
also adds some additional warnings when a user attempts to provide the
PresenceState action with invalid data, and removes some NOTICE statements
that were still lurking in the code from testing.

(closes issue AST-1084)
Reported by: John Bigelow
Tested by: John Bigelow
........

Merged revisions 381594 from http://svn.asterisk.org/svn/asterisk/branches/11

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

12 years agoMultiple revisions 378121,378459
Matthew Jordan [Thu, 14 Feb 2013 18:46:21 +0000 (18:46 +0000)] 
Multiple revisions 378121,378459

........
  r378121 | kmoore | 2012-12-18 11:41:35 -0600 (Tue, 18 Dec 2012) | 14 lines

  Add test events for time limit-related hangups

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

  (issue SWP-4713)
  ........

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

  Merged revisions 378120 from http://svn.asterisk.org/svn/asterisk/branches/10
........
  r378459 | kmoore | 2013-01-03 12:48:00 -0600 (Thu, 03 Jan 2013) | 10 lines

  Add missing test event

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

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

Merged revisions 378121,378459 from http://svn.asterisk.org/svn/asterisk/branches/11

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

12 years agoFixed failing test from r380696.
Matthew Jordan [Thu, 14 Feb 2013 18:41:21 +0000 (18:41 +0000)] 
Fixed failing test from r380696.

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

(issue ASTERISK-20787)
........

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

Merged revisions 380974 from http://svn.asterisk.org/svn/asterisk/branches/11

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

12 years agoProcess session timers, even if Session-Expires header is missing
Matthew Jordan [Thu, 14 Feb 2013 18:40:54 +0000 (18:40 +0000)] 
Process session timers, even if Session-Expires header is missing

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

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

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

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

Merged revisions 380698 from http://svn.asterisk.org/svn/asterisk/branches/11

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

12 years agoapp_confbridge: Fix error messages on exiting conference.
Matthew Jordan [Thu, 14 Feb 2013 15:21:05 +0000 (15:21 +0000)] 
app_confbridge: Fix error messages on exiting conference.

A marked user ending a conference with only end_marked users generates
error messages:
ERROR[0000][C-00000000]: confbridge/conf_state.c:47 conf_invalid_event_fn: Invalid event for confbridge user ''

* The MULTI_MARKED state was doing too much when it was kicking out the
end_marked users from the conference.  The kicked out users will clean up
after themselves when they exit the conference.

(closes issue ASTERISK-20991)
Reported by: Jeremy Kister
Tested by: rmudgett
........

Merged revisions 380892 from http://svn.asterisk.org/svn/asterisk/branches/11

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

12 years agoapp_page and app_confbridge: Fix custom announcement on entering conference.
Matthew Jordan [Thu, 14 Feb 2013 15:19:12 +0000 (15:19 +0000)] 
app_page and app_confbridge: Fix custom announcement on entering conference.

The Page and ConfBridge custom announcement did not play when users
entered the conference.

* Fix the CONFBRIDGE(user,announcement) file not getting played.  The code
to do this got removed accidentally when the ConfBridge code was
restructured to be more state machine like.

* Fixed play_prompt_to_user() doxygen comments.

* Fixed the Page A(x) and n options for the caller.  The caller never
played the announcement file and totally ignored the n option.  The code
to do this was lost when the application was converted to use ConfBridge.

* Factored out setup_profile_bridge(), setup_profile_paged(), and
setup_profile_caller() routines to setup ConfBridge profiles.  Made each
profile setup routine use the default template if one has not already been
setup by dialplan.

(closes issue ASTERISK-20990)
Reported by: Jeremy Kister
Tested by: rmudgett
........

Merged revisions 380894 from http://svn.asterisk.org/svn/asterisk/branches/11

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

12 years agoFix astcanary startup problem due to wrong pid value from before daemon call
Matthew Jordan [Thu, 14 Feb 2013 15:14:53 +0000 (15:14 +0000)] 
Fix astcanary startup problem due to wrong pid value from before daemon call

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

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

Note that this is getting committed to 10 as a regression fix.

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

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

Merged revisions 379510 from http://svn.asterisk.org/svn/asterisk/branches/10
........

Merged revisions 379513 from http://svn.asterisk.org/svn/asterisk/branches/11

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

12 years agoUpdate init.d scripts to handle stderr; readd splash screen for remote consoles
Matthew Jordan [Thu, 14 Feb 2013 15:13:37 +0000 (15:13 +0000)] 
Update init.d scripts to handle stderr; readd splash screen for remote consoles

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

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

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

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

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

Merged revisions 379777 from http://svn.asterisk.org/svn/asterisk/branches/10
........

Merged revisions 379790 from http://svn.asterisk.org/svn/asterisk/branches/11

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

12 years agoReset RTP timestamp; sequence number on SSRC change
Matthew Jordan [Thu, 14 Feb 2013 15:10:46 +0000 (15:10 +0000)] 
Reset RTP timestamp; sequence number on SSRC change

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

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

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

Merged revisions 378984 from http://svn.asterisk.org/svn/asterisk/branches/11

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

12 years agoPerform case insensitive comparisons for T.38 attributes
Matthew Jordan [Thu, 14 Feb 2013 15:09:36 +0000 (15:09 +0000)] 
Perform case insensitive comparisons for T.38 attributes

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

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

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

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

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

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

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

Merged revisions 380465 from http://svn.asterisk.org/svn/asterisk/branches/11

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

12 years agoDo not allow native RTP bridging if packetization of media streams differs.
Matthew Jordan [Thu, 14 Feb 2013 15:08:15 +0000 (15:08 +0000)] 
Do not allow native RTP bridging if packetization of media streams differs.

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

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

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

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

Merged revisions 381306 from http://svn.asterisk.org/svn/asterisk/branches/11

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

12 years agoTrack merged changes using the standard branch nomenclature
Matthew Jordan [Thu, 14 Feb 2013 15:07:10 +0000 (15:07 +0000)] 
Track merged changes using the standard branch nomenclature

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

12 years agoMerge r379892 into Certified 11.2
Jonathan Rose [Fri, 8 Feb 2013 19:42:50 +0000 (19:42 +0000)] 
Merge r379892 into Certified 11.2
........
  r379892 | jrose | 2013-01-22 13:07:42 -0600 (Tue, 22 Jan 2013) | 16 lines

  app_meetme: Use new prompts for administrator menu

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

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

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

------------------------------------------------------------------------

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

12 years agoCreate branch for Certified Asterisk 11.2.
Matthew Jordan [Mon, 14 Jan 2013 20:23:19 +0000 (20:23 +0000)] 
Create branch for Certified Asterisk 11.2.

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

12 years agoImporting release summary for 11.2.0 release. 11.2.0
Asterisk Autobuilder [Mon, 14 Jan 2013 19:25:56 +0000 (19:25 +0000)] 
Importing release summary for 11.2.0 release.

git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/11.2.0@379059 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoMake version, ChangeLog updates for 11.2.0
Asterisk Autobuilder [Mon, 14 Jan 2013 18:29:33 +0000 (18:29 +0000)] 
Make version, ChangeLog updates for 11.2.0

git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/11.2.0@379051 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoCreate 11.2.0
Asterisk Autobuilder [Mon, 14 Jan 2013 18:17:37 +0000 (18:17 +0000)] 
Create 11.2.0

git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/11.2.0@379047 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoImporting release summary for 11.2.0-rc2 release. 11.2.0-rc2
Asterisk Autobuilder [Wed, 9 Jan 2013 22:16:05 +0000 (22:16 +0000)] 
Importing release summary for 11.2.0-rc2 release.

git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/11.2.0-rc2@378824 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoImporting release summary for 11.2.0-rc2 release.
Asterisk Autobuilder [Wed, 9 Jan 2013 20:52:47 +0000 (20:52 +0000)] 
Importing release summary for 11.2.0-rc2 release.

git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/11.2.0-rc2@378788 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoMerge changes for 11.2.0-rc2
Asterisk Autobuilder [Wed, 9 Jan 2013 20:43:00 +0000 (20:43 +0000)] 
Merge changes for 11.2.0-rc2

* 378687, 378690, 378036 for ASTERISK-20801
* 378287, 378409 for ASTERISK-20658
* 378582 for ASTERISK-20681
* 378321, 378411 for ASTERISK-20175

git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/11.2.0-rc2@378785 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoCreate 11.2.0-rc2
Asterisk Autobuilder [Wed, 9 Jan 2013 17:07:48 +0000 (17:07 +0000)] 
Create 11.2.0-rc2

git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/11.2.0-rc2@378722 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoUse autotagged externals 11.2.0-rc1
Asterisk Autobuilder [Mon, 10 Dec 2012 01:59:05 +0000 (01:59 +0000)] 
Use autotagged externals

git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/11.2.0-rc1@377528 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoImporting release summary for 11.2.0-rc1 release.
Asterisk Autobuilder [Mon, 10 Dec 2012 01:58:55 +0000 (01:58 +0000)] 
Importing release summary for 11.2.0-rc1 release.

git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/11.2.0-rc1@377527 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoImporting files for 11.2.0-rc1 release.
Asterisk Autobuilder [Mon, 10 Dec 2012 01:58:49 +0000 (01:58 +0000)] 
Importing files for 11.2.0-rc1 release.

git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/11.2.0-rc1@377526 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoCreating tag for the release of asterisk-11.2.0-rc1
Asterisk Autobuilder [Mon, 10 Dec 2012 01:57:52 +0000 (01:57 +0000)] 
Creating tag for the release of asterisk-11.2.0-rc1

git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/11.2.0-rc1@377525 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoImprove documentation by making all of the colors used readable,
Tilghman Lesher [Mon, 10 Dec 2012 01:41:02 +0000 (01:41 +0000)] 
Improve documentation by making all of the colors used readable,
no matter what the background color is.

Dark blue on a black background is unreadable, as is yellow on a
light background.  This patch turns on the bright attribute for
colors when on a dark background and turns *off* the bright
attribute when the -W command line option is used (indicating a
_light_ background).  This ensures that text is readable in both
cases.

Patch by: tilghman
Review: https://reviewboard.asterisk.org/r/2224
........

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

Merged revisions 377510 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoRemove some dead code and additionally handle a case that wasn't handled.
Tilghman Lesher [Mon, 10 Dec 2012 01:27:47 +0000 (01:27 +0000)] 
Remove some dead code and additionally handle a case that wasn't handled.
........

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

Merged revisions 377504 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoAdd missing support for "who hung up" to chan_motif.
Joshua Colp [Sun, 9 Dec 2012 01:22:56 +0000 (01:22 +0000)] 
Add missing support for "who hung up" to chan_motif.

(closes issue ASTERISK-20671)
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/2208/

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

12 years agoFix order of SIP allow/disallow in MySQL contrib script.
Richard Mudgett [Sat, 8 Dec 2012 00:29:56 +0000 (00:29 +0000)] 
Fix order of SIP allow/disallow in MySQL contrib script.

Using the contrib sippeers.sql script to create the sippeers MySQL table
would result in being unable to place calls if you set the disallow value
to all.

(closes issue ASTERISK-20756)
Reported by: Andre Luis
Patches:
      sippeers.patch patch uploaded by Andre Luis
........

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

Merged revisions 377432 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoMALLOC_DEBUG: Only wait if we want atexit allocation dumps.
Richard Mudgett [Fri, 7 Dec 2012 23:43:36 +0000 (23:43 +0000)] 
MALLOC_DEBUG: Only wait if we want atexit allocation dumps.
........

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

Merged revisions 377399 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agocodec_dahdi: Fix output of "transcoder show" CLI command.
Kinsey Moore [Fri, 7 Dec 2012 22:02:50 +0000 (22:02 +0000)] 
codec_dahdi: Fix output of "transcoder show" CLI command.

In r306010 "Asterisk media architecture conversion - no more format
bitfields", the logic for incrementing encoders and decoders when
opening transcoder channels was changed without making the corresponding
change when decrementing encoder / decoder channels.  The result being
that when a channel was destroyed, codec_dahdi couldn't properly tell if
it was an encoder or decoder, and the default case is to assume it was a
decoder.

This could result in negative numbers for decoders in use like in:
  VOIP6*CLI> transcoder show
  2/-2 encoders/decoders of 92 channels are in use.

(closes issue ASTERISK-19921)
Patch-by: Shaun Ruffell
........

Merged revisions 377382 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoconfbridge: Fix some resource leaks on conference teardown.
Richard Mudgett [Thu, 6 Dec 2012 23:58:21 +0000 (23:58 +0000)] 
confbridge: Fix some resource leaks on conference teardown.

* Made destroy_conference_bridge() destroy a missed ast_mutex_t and ast_cond_t.

* Made join_conference_bridge() init the ast_mutex_t's and ast_cond_t so
destroy_conference_bridge() can destroy them unconditionally.

* Made join_conference_bridge() abort if the new conference could not be
added to the conferences container.

* Made leave_conference() discard any post-join actions if
join_conference_bridge() had to abort early.

* Made the join_conference_bridge() diagnostic messages better describe
what happened.

* Renamed leave_conference_bridge() to leave_conference() and made it only
take a conference user pointer.  The conference pointer was redundant.

* Made conf_bridge_profile_copy() use struct copy instead of memcpy().

* No need to lock the conference in start_conf_record_thread() since all
of the callers already have it locked.
........

Merged revisions 377354 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoAdd CLI tab completion to 'acl show'.
Russell Bryant [Thu, 6 Dec 2012 17:28:35 +0000 (17:28 +0000)] 
Add CLI tab completion to 'acl show'.

The 'acl show' CLI command allows you to show the details about a specific
named ACL in acl.conf.  This patch adds tab completion to the command.

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

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

12 years agoFix memory leak in 'manager show event' when command entered incorrectly
Matthew Jordan [Thu, 6 Dec 2012 14:11:21 +0000 (14:11 +0000)] 
Fix memory leak in 'manager show event' when command entered incorrectly

When the CLI command 'manager show event' was run incorrectly and its usage
instructions returned, a reference to the event container was leaked. This
would prevent the container from being reclaimed when Asterisk exits. We now
properly decrement the count on the ao2 object using the nifty RAII_VAR macro.

Thanks to Russell for helping me stumble on this, and Terry for writing that
ridiculously helpful macro.

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

12 years agores_srtp: Fix a crash caused by srtp_dealloc on an already dealloced session
Jonathan Rose [Wed, 5 Dec 2012 17:08:12 +0000 (17:08 +0000)] 
res_srtp: Fix a crash caused by srtp_dealloc on an already dealloced session

When srtp_create fails, the session may be dealloced or just not alloced. At
the same time though, the session pointer might not be set to NULL in this
process and attempting to srtp_dealloc it again will cause a segfault. This
patch checks for failure of srtp_create and sets the session pointer to NULL
if it fails.

(closes issue ASTERISK-20499)
Reported by: tootai
Review: https://reviewboard.asterisk.org/r/2228/
........

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

Merged revisions 377261 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoFix a SIP request memory leak with TLS connections.
Joshua Colp [Wed, 5 Dec 2012 16:50:43 +0000 (16:50 +0000)] 
Fix a SIP request memory leak with TLS connections.

During the TLS re-work in chan_sip some TLS specific code was moved
into a separate function. This function operates on a copy of the
incoming SIP request. This copy was never deinitialized causing a
memory leak for each request processed.

This function is now given a SIP request structure which it can use
to copy the incoming request into. This reduces the amount of memory
allocations done since the internal allocated components are reused
between packets and also ensures the SIP request structure is
deinitialized when the TLS connection is torn down.

(closes issue ASTERISK-20763)
Reported by: deti
........

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

Merged revisions 377258 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoFix registering core show codecs/codec CLI commands twice.
Richard Mudgett [Wed, 5 Dec 2012 02:19:43 +0000 (02:19 +0000)] 
Fix registering core show codecs/codec CLI commands twice.
........

Merged revisions 377241 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoconfbridge: Fix several small issues.
Richard Mudgett [Wed, 5 Dec 2012 01:09:39 +0000 (01:09 +0000)] 
confbridge: Fix several small issues.

* Made func_confbridge_helper() allow an empty value when setting options.
You previously could not Set(CONFBRIDGE(user,pin)=) and clear the
configured pin from the dialplan.

* Made func_confbridge_helper() handle its datastore better if multiple
threads attempt to set the first CONFBRIDGE option value on the channel.

* Made the func_confbridge_helper() only output one diagnostic message
concerning the option.

* Made the bridge video_mode able to repeatedly change in the config file
and CONFBRIDGE dialplan function.  The video_mode option values are an
enum and not independent of each other.

* Made handle_cli_confbridge_show_bridge_profile() better handle the
video_mode option.

* Simplified datastore handling code in conf_find_user_profile() and
conf_find_bridge_profile().

(closes issue ASTERISK-20655)
Reported by: Birger "WIMPy" Harzenetter
........

Merged revisions 377227 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoconfbridge: Update online XML documentation.
Richard Mudgett [Tue, 4 Dec 2012 22:32:17 +0000 (22:32 +0000)] 
confbridge: Update online XML documentation.
........

Merged revisions 377212 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoAdd libuuid to install_prereq for Fedora.
Russell Bryant [Tue, 4 Dec 2012 12:59:51 +0000 (12:59 +0000)] 
Add libuuid to install_prereq for Fedora.

I ran this script and my build failed.  pjproject requires this.

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

12 years agoCleanup ast_run_atexits() atexits list.
Richard Mudgett [Mon, 3 Dec 2012 22:58:46 +0000 (22:58 +0000)] 
Cleanup ast_run_atexits() atexits list.

* Convert atexits list to a mutex instead of a rd/wr lock.  The lock is
only write locked.

* Move CLI verbose Asterisk ending message to where AMI message is output
in really_quit() to avoid further surprises about using stuff already
shutdown.

(issue ASTERISK-20649)
Reported by: Corey Farrell
........

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

Merged revisions 377166 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoCleanup core main on exit.
Richard Mudgett [Mon, 3 Dec 2012 20:43:03 +0000 (20:43 +0000)] 
Cleanup core main on exit.

* Cleanup time zones on exit.

* Make exit clean/unclean report consistent for AMI and CLI in
really_quit().

(issue ASTERISK-20649)
Reported by: Corey Farrell
Patches:
      core-cleanup-1_8-10.patch (license #5909) patch uploaded by Corey Farrell
      core-cleanup-11-trunk.patch (license #5909) patch uploaded by Corey Farrell
      Modified
........

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

Merged revisions 377136 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoCleanup config cache on exit.
Richard Mudgett [Mon, 3 Dec 2012 19:32:05 +0000 (19:32 +0000)] 
Cleanup config cache on exit.

(issue ASTERISK-20649)
Reported by: Corey Farrell
Patches:
      config-cleanup-all.patch (license #5909) patch uploaded by Corey Farrell
........

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

Merged revisions 377105 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoCleanup CLI resources on exit and CLI command registration errors.
Richard Mudgett [Mon, 3 Dec 2012 19:16:20 +0000 (19:16 +0000)] 
Cleanup CLI resources on exit and CLI command registration errors.

(issue ASTERISK-20649)
Reported by: Corey Farrell
Patches:
      cli-leaks-1_8-10.patch (license #5909) patch uploaded by Corey Farrell
      cli-leaks-11-trunk.patch (license #5909) patch uploaded by Corey Farrell
      Modified
........

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

Merged revisions 377074 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoCleanup CDR resources on exit.
Richard Mudgett [Mon, 3 Dec 2012 18:43:48 +0000 (18:43 +0000)] 
Cleanup CDR resources on exit.

* Simplify do_reload() return handling since it never returned anything
other than 0.

(issue ASTERISK-20649)
Reported by: Corey Farrell
Patches:
      cdr-cleanup-1_8.patch (license #5909) patch uploaded by Corey Farrell
      cdr-cleanup-10-11-trunk.patch (license #5909) patch uploaded by Corey Farrell
      Modified
........

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

Merged revisions 377070 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoFix CCSS CLI commands and logger level not unregistered.
Richard Mudgett [Mon, 3 Dec 2012 17:08:06 +0000 (17:08 +0000)] 
Fix CCSS CLI commands and logger level not unregistered.

(issue ASTERISK-20649)
Reported by: Corey Farrell
Patches:
      ccss-cleanup-all.patch (license #5909) patch uploaded by Corey Farrell
........

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

Merged revisions 377038 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoFix an RTP instance reference count leak in chan_motif.
Joshua Colp [Mon, 3 Dec 2012 14:54:54 +0000 (14:54 +0000)] 
Fix an RTP instance reference count leak in chan_motif.

When setting up an RTP instance the RTCP portion of the instance
keeps a reference to the instance itself. In order to release this
reference and stop RTCP the stop API call must be called before
destroying the instance.

(closes issue ASTERISK-20751)
Reported by: joshoa

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

12 years agoTweak extension used for incoming calls received on Motif.
Joshua Colp [Sat, 1 Dec 2012 00:46:40 +0000 (00:46 +0000)] 
Tweak extension used for incoming calls received on Motif.

Based on feedback from numerous individuals this patch tweaks incoming calls
to first look for an extension with the name of the endpoint. If no such extension
exists the call will silently fall back to the "s" extension as it previously
did.

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

12 years agochan_misdn: Fix sending RELEASE_COMPLETE in response to SETUP.
Richard Mudgett [Fri, 30 Nov 2012 21:35:45 +0000 (21:35 +0000)] 
chan_misdn: Fix sending RELEASE_COMPLETE in response to SETUP.

Fix sending a RELEASE_COMPLETE in response to a SETUP if chan_misdn does
not have a B channel available to assign to the call.

(closes issue ABE-2869)
Reported by: Guenther Kelleter
Patches:
      setup-reject_2.diff (license #6372) patch uploaded by Guenther Kelleter
      Modified

........

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

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

Merged revisions 376951 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoMinor spelling fix to the VOLUME documentation.
Sean Bright [Fri, 30 Nov 2012 17:07:46 +0000 (17:07 +0000)] 
Minor spelling fix to the VOLUME documentation.
........

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

Merged revisions 376920 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoFix potential crashes during SIP attended transfers.
Mark Michelson [Fri, 30 Nov 2012 16:36:54 +0000 (16:36 +0000)] 
Fix potential crashes during SIP attended transfers.

The principal behind this patch is simple. During a transfer,
we manipulate channels that are owned by a separate thread than
the one we currently are running in, so it makes sense that we
need to grab a reference to the channels so that they cannot
disappear out from under us.

In the wild, crashes were sometimes seen when the transferring
party would hang up the call before the transfer target answered
the call. The most common place to see the crash occur was when
attempting to send a connected line update to the transferer
channel.

(closes issue ASTERISK-20226)
Reported by Jared Smith
Patches:
ASTERISK-20226.patch uploaded by Mark Michelson (License #5049)
Tested by: Jared Smith
........

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

Merged revisions 376916 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agochan_local: Fix local_pvt ref leak in local_devicestate().
Richard Mudgett [Thu, 29 Nov 2012 22:59:50 +0000 (22:59 +0000)] 
chan_local: Fix local_pvt ref leak in local_devicestate().

Regression introduced by ASTERISK-20390 fix.

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

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

Merged revisions 376869 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoFix compile error.
Richard Mudgett [Thu, 29 Nov 2012 22:32:16 +0000 (22:32 +0000)] 
Fix compile error.

(issue ASTERISK-20724)
........

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

Merged revisions 376865 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoImprove Code Readability And Fix Setting natdetected Flag
Michael L. Young [Thu, 29 Nov 2012 21:57:00 +0000 (21:57 +0000)] 
Improve Code Readability And Fix Setting natdetected Flag

For 1.8, 10, 11 and trunk we are are improving the code readability.

For 11 and trunk, auto nat detection was added.  The natdetected flag was being
set to 1 when the host address in the VIA header did not specifiy a port.  This
patch fixes this by setting the port on the temporary sock address used to
SIP_STANDARD_PORT in order for the sock address comparison to work properly.

(closes issue ASTERISK-20724)
Reported by: Michael L. Young
Patches:
    asterisk-20724-set-port-v2.diff uploaded by Michael L. Young (license 5026)

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

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

Merged revisions 376835 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoFix chan_sip websocket payload handling
Pedro Kiefer [Thu, 29 Nov 2012 17:17:11 +0000 (17:17 +0000)] 
Fix chan_sip websocket payload handling

Websocket by default doesn't return an ast_str for the payload received. When
converting it to an ast_str on chan_sip the last character was being omitted,
because ast_str functions expects that the given length includes the trailing
0x00. payload_len only has the actual string length without counting the
trailing zero.

For most cases this passed unnoticed as most of SIP messages ends with \r\n.

(closes issue ASTERISK-20745)
Reported by: Iñaki Baz Castillo
Review: https://reviewboard.asterisk.org/r/2219/

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

12 years agoAdd MALLOC_DEBUG atexit unreleased malloc memory summary.
Richard Mudgett [Thu, 29 Nov 2012 00:46:31 +0000 (00:46 +0000)] 
Add MALLOC_DEBUG atexit unreleased malloc memory summary.

* Adds the following CLI commands to control MALLOC_DEBUG reporting of
unreleased malloc memory when Asterisk is shut down.
memory atexit list on
memory atexit list off
memory atexit summary byline
memory atexit summary byfunc
memory atexit summary byfile
memory atexit summary off

* Made check all remaining allocated region blocks atexit for fence
violations.

* Increased the allocated region hash table size by about three times.  It
still isn't large enough considering the number of malloced blocks
Asterisk uses.

* Made CLI "memory show allocations anomalies" use
regions_check_all_fences().

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

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

Merged revisions 376789 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoEnhance MALLOC_DEBUG CLI commands.
Richard Mudgett [Thu, 29 Nov 2012 00:06:37 +0000 (00:06 +0000)] 
Enhance MALLOC_DEBUG CLI commands.

* Fixed CLI "memory show allocations" misspelling of anomalies option.
The command will still accept the original misspelling.

* Miscellaneous tweaks to CLI "memory show allocations" command output
format.

* Made CLI "memory show summary" summarize by line number instead of by
function if a filename is given.

* Made CLI "memory show summary" sort its output by filename or
function-name/line-number depending upon request.

* Miscellaneous tweaks to CLI "memory show summary" command output format.
........

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

Merged revisions 376759 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agomanager: Make challenge work with allowmultiplelogin=no
Jonathan Rose [Wed, 28 Nov 2012 16:37:26 +0000 (16:37 +0000)] 
manager: Make challenge work with allowmultiplelogin=no

Prior to this patch, challenge would yield a multiple logins error if used
without providing the username (which isn't really supposed to be an argument
to challenge) if allowmultiplelogin was set to no because allowmultiplelogin
finds a user with a zero length login name. This check is simply disabled for
the challenge action when the username is empty by this patch.

(closes issue ASTERISK-20677)
Reported by: Vladimir
Patches:
    challenge_action_nomultiplelogin.diff uploaded by Jonathan Rose (license 6182)
........

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

Merged revisions 376726 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoFix extension matching with the '-' char.
Richard Mudgett [Wed, 28 Nov 2012 00:08:09 +0000 (00:08 +0000)] 
Fix extension matching with the '-' char.

The '-' char is supposed to be ignored by the dialplan extension matching.
Unfortunately, it's treatment is not handled consistently throughout the
extension matching code.

* Made the old exten matching code consistently ignore '-' chars.

* Made the old exten matching code consistently handle case in the
matching.

* Made ignore empty character sets.

* Fixed ast_extension_cmp() to return -1, 0, or 1 as documented.  The only
user of it in pbx_lua.c was testing for -1.  It was originally returning
the strcmp() value for less than which is not usually going to be -1.

* Fix character set sorting if the sets have the same number of characters
and start with the same character.  Character set [0-9] now sorts before
[02-9a] as originally intended.

* Updated some extension label and priority already in use warnings to
also indicate if the extension is aliased.

(closes issue ASTERISK-19205)
Reported by: Philippe Lindheimer, Birger "WIMPy" Harzenetter
Tested by: rmudgett

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

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

Merged revisions 376689 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoRemove unnecessary channel module references.
Richard Mudgett [Tue, 27 Nov 2012 20:38:23 +0000 (20:38 +0000)] 
Remove unnecessary channel module references.

* Removed call to ast_module_user_hangup_all() in res_config_mysql.c since
it is effectively a noop.  No channels can attach a reference to that
module.

* Removed call to ast_module_user_hangup_all() in app_celgenuserevent.c.
The caller of unload_module() has already called it.

* Removed redundant channel module references in pbx_dundi.c.  The
registered dialplan function callback dispatchers for the read/read2/write
callbacks already reference the module before calling.

* pbx_dundi: Moved unregistering CLI commands, DUNDi switch, and dialplan
functions to the first thing the unload_module() does.  This will reduce
the chance of new channels using DUNDi services while the module is being
torn down.
........

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

Merged revisions 376658 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoMade AST_LIST_REMOVE() simpler and use better names.
Richard Mudgett [Tue, 27 Nov 2012 17:47:32 +0000 (17:47 +0000)] 
Made AST_LIST_REMOVE() simpler and use better names.

* Update doxygen of AST_LIST_REMOVE().
........

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

Merged revisions 376628 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoRe-initialize logmsgs mutex upon logger initialization to prevent lock errors
Matthew Jordan [Thu, 22 Nov 2012 23:58:08 +0000 (23:58 +0000)] 
Re-initialize logmsgs mutex upon logger initialization to prevent lock errors

Similar to the patch that moved the fork earlier in the startup sequence to
prevent mutex errors in the recursive mutex surrounding the read/write thread
registration lock, this patch re-initializes the logmsgs mutex.  Part of the
start up sequence before forking the process into the background includes
reading asterisk.conf; this has to occur prior to the call to daemon in order
to read startup parameters.  When reading in a conf file, log statements can
be generated.  Since this can't be avoided, the mutex instead is
re-initialized to ensure a reset of any thread tracking information.

This patch also includes some additional debugging to catch errors when
locking or unlocking the recursive mutex that surrounds locks when the
DEBUG_THREADS build option is enabled.  DO_CRASH or THREAD_CRASH will
cause an abort() if a mutex error is detected.

(issue ASTERISK-19463)
Reported by: mjordan
Tesetd by: mjordan
........

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

Merged revisions 376587 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoAdded missing newlines to websocket ast_logs.
David M. Lee [Tue, 20 Nov 2012 21:58:35 +0000 (21:58 +0000)] 
Added missing newlines to websocket ast_logs.

Without these newlines, log messages just continue tacking onto the same
line, and do not flush immediately.

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

12 years agoAdd "Require: timer" to 200 OK responses when appropriate.
Mark Michelson [Tue, 20 Nov 2012 18:57:11 +0000 (18:57 +0000)] 
Add "Require: timer" to 200 OK responses when appropriate.

The method by which the Require header is added to 200 responses is
inspired by the method that Olle Johansson uses in his darjeeling-prack
branch.

(closes issue ASTERISK-20570)
Reported by Matt Jordan, at the behest of Olle Johansson

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

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

Merged revisions 376522 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoReduce CLI spam of "Extension Changed" device state messages.
Alec L Davis [Tue, 20 Nov 2012 17:37:28 +0000 (17:37 +0000)] 
Reduce CLI spam of "Extension Changed" device state messages.

Asterisk 11 follows RFC3265 that states that after every subscribe or resubscribe a notify should be sent.
Thus the console if filled continuously with the following after every subscribe;
  == Extension Changed 8512[phones] new state IDLE for Notify User cisco1

In Asterisk 1.8 only changes would be sent. Thus only when a device state changed was anything emitted to the console.

fix:
Only print to console when device state isn't forced.

(closes issue ASTERISK-20706)
Reported by: alecdavis
Tested by: alecdavis
alecdavis (license 585)

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

12 years agoFix most leftover non-opaque ast_str uses.
Walter Doekes [Mon, 19 Nov 2012 19:54:15 +0000 (19:54 +0000)] 
Fix most leftover non-opaque ast_str uses.

Instead of calling str->str, one should use ast_str_buffer(str). Same
goes for str->used as ast_str_strlen(str) and str->len as
ast_str_size(str).

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

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

Merged revisions 376470 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoReorder startup sequence to prevent lockups when process is sent to background
Matthew Jordan [Sun, 18 Nov 2012 20:22:14 +0000 (20:22 +0000)] 
Reorder startup sequence to prevent lockups when process is sent to background

Although it is very rare and timing dependent, the potential exists for the
call to 'daemon' to cause what appears to be a deadlock in Asterisk during
startup.  This can occur when a recursive mutex is obtained prior to the
daemon call executing.  Since daemon uses fork to send the process into the
background, any threading primitives are unsafe to re-use after the call.
Implementations of pthread recursive mutexes are highly likely to store the
thread identifier of the thread that previously obtained the mutex.  If
the mutex was locked prior to the fork, a subsequent unlock operation will
potentially fail as the thread identifier is no longer valid.  Since the
mutex is still locked, all subsequent attempts to grab the mutex by other
threads will block.

This behavior exhibited itself most often when DEBUG_THREADS was enabled, as
this compile time option surrounds the mutexes in Asterisk with another
recursive mutex that protects the storage of thread related information.  This
made it much more likely that a recursive mutex would be obtained prior to
daemon and unlocked after the call.

This patch does the following:
a) It backports a patch from Asterisk 11 that prevents the spawning of the
   localtime monitoring thread.  This thread is now spawned after Asterisk has
   fully booted.
b) It re-orders the startup sequence to call daemon earlier during Asterisk
   startup.  This limits the potential of threading primitives being accessed
   by initialization calls before daemon is called.
c) It removes calls to ast_verbose/ast_log/etc. prior to daemon being called.
   Developers should send error messages directly to stderr prior to daemon,
   as calls to ast_log may access recursive mutexes that store thread related
   information.
d) It reorganizes when thread local storage is created for storing lock
   information during the creation of threads.  Prior to this patch, the
   read/write lock protecting the list of threads in ast_register_thread would
   utilize the lock in the thread local storage prior to it being initialized;
   this patch prevents that.

On a very related note, this patch will *greatly* improve the stability of the
Asterisk Test Suite.

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

(closes issue ASTERISK-19463)
Reported by: mjordan
Tested by: mjordan
........

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

Merged revisions 376431 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoAdd a test event that reports changes in ConfBridge state
Matthew Jordan [Sun, 18 Nov 2012 14:27:20 +0000 (14:27 +0000)] 
Add a test event that reports changes in ConfBridge state

This patch adds a test event to ConfBridge that reports transitions between
states in ConfBridge.  This is used by tests in the Asterisk Test Suite
that verify state changes based on the entering/leaving of conference
participants.
........

Merged revisions 376414 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agomonitor: prevent attempts to move/remove recordings skipped with 'i' and 'o'.
Jonathan Rose [Fri, 16 Nov 2012 19:59:45 +0000 (19:59 +0000)] 
monitor: prevent attempts to move/remove recordings skipped with 'i' and 'o'.

The i and o options for monitor skip the input and output sides of a recording
respectively. This patch addresses a problem in those options when monitor is
called without specifying a specific filename where monitor will try to move
the recording that was skipped. Since this usually doesn't exist when these
options are used, it would produce a warning when it does this in most cases,
but it is conceivable that there are use cases where this could result in
moving/removing a file unintentionally.

(closes issue ASTERISK-20641)
Reported by: Jonathan Rose
Review: https://reviewboard.asterisk.org/r/2190/
........

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

Merged revisions 376390 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoFixed extconf.c breakage introduced in r376306.
David M. Lee [Fri, 16 Nov 2012 00:09:34 +0000 (00:09 +0000)] 
Fixed extconf.c breakage introduced in r376306.

To quote wdoekes:
> Note that I'm not confirming legitimacy of having that file in tree at
> all. Is anyone using aelparse/conf2ael?
........

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

Merged revisions 376342 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoMigrate hashtest/hashtest2 to be unit tests.
David M. Lee [Thu, 15 Nov 2012 23:38:44 +0000 (23:38 +0000)] 
Migrate hashtest/hashtest2 to be unit tests.

Both hashtest and hashtest2 are manual testing apps that thrash hash
tables (hashtab and ao2 containers, respectively), by spinning up
several threads that randomly insert, delete, lookup and iterate over
the hash table. If the app doesn't crash, the hash table probably passes
the test. Those utils are not a part of the typical Asterisk build, so
they do not usually get compiled. This all makes them less that useful.

This patch removes those manual test programs and replaces them with
Asterisk unit test modules (test_{hashtab,astobj2}_thrash.so). It also
attempts to make the tests more deterministic.

* Rather than spinning up some number of threads that operate on the
  hash table randomly, spin up four threads that concurrenly add,
  remove, lookup and iterate over the hash table.
* Each thread checks the state of the hash table both during and after
  execution, and indicates a test failure if things are not as expected.
* Each thread times out after 60 seconds to prevent deadlocking the unit
  test run.

(closes issue ASTERISK-20505)
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/2189/
........

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

Merged revisions 376315 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoapp_meetme: Fix channels lingering when hung up under certain conditions
Jonathan Rose [Thu, 15 Nov 2012 23:03:41 +0000 (23:03 +0000)] 
app_meetme: Fix channels lingering when hung up under certain conditions

Channels would get stuck and MeetMe would repeatedly display an Unable
to write frame to channel error in the conf_run function if hung up
during certain sound prompts such as during user count announcements.
This patch fixes that by reintroducing a hangup check in the meetme's
main loop (also in conf_run).

(closes issue ASTERISK-20486)
Reported by: Michael Cargile
Review: https://reviewboard.asterisk.org/r/2187/
Patches:
    meetme_hangup_patch_ASTERISK-20486_v3.diff uploaded by Jonathan Rose (license 6182)
........

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

Merged revisions 376308 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoPatch to play correct sound file when a voicemail's urgent status is removed
Rusty Newton [Thu, 15 Nov 2012 02:08:06 +0000 (02:08 +0000)] 
Patch to play correct sound file when a voicemail's urgent status is removed

We were attempting to play "vm-urgent-removed", which didn't exist. Now we play "vm-marked-nonurgent" which exists
and is the correct sound file. Previous behavior was silence and a warning on the CLI.

(issue ASTERISK-20280)
(closes issue ASTERISK-20280)
Reported by: Tomo Takebe
Tested by: Rusty Newton
Patches:
    asterisk20280.patch uploaded by Rusty Newton (license 5829)
........

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

Merged revisions 376263 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoFix call files when astspooldir is relative.
Richard Mudgett [Wed, 14 Nov 2012 19:53:23 +0000 (19:53 +0000)] 
Fix call files when astspooldir is relative.

Future dated call files are ignored when astspooldir is relative to the
current directory.  The queue_file() assumed that the qdir needed to be
prepended if the given filename did not start with a '/'.  If astspooldir
is relative it is not going to start from the root directory obviously so
it will not start with a '/'.  The filename used in queue_file()
ultimately results in qdir prepended multiple times.

* Made queue_file() not prepend qdir if the filename contains a '/'.

(closes issue ASTERISK-20593)
Reported by: James Le Cuirot
Patches:
      0004-Fix-future-call-files-from-relative-directories.patch (license #6439) patch uploaded by James Le Cuirot
........

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

Merged revisions 376233 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoPatch to prevent stopping the active generator when it is not the silence
Brent Eagles [Tue, 13 Nov 2012 18:48:43 +0000 (18:48 +0000)] 
Patch to prevent stopping the active generator when it is not the silence
generator.

This patch introduces an internal helper function to safely check whether the
current generator is the one that is expected before deactivating it. The
current externally accessible ast_channel_stop_generator() function has been
modified to be implemented in terms of the new function.

(closes issue ASTERISK-19918)
Reported by: Eduardo Abad
........

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

Merged revisions 376208 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoProperly check if the "Context" and "Extension" headers are empty in a ShowDialPlan...
Joshua Colp [Mon, 12 Nov 2012 20:45:50 +0000 (20:45 +0000)] 
Properly check if the "Context" and "Extension" headers are empty in a ShowDialPlan action.

The code which handles the ShowDialPlan action wrongly assumed that a non-NULL return value
from the function which retrieves headers from an action indicates that the header has a
value. This is incorrect and the contents must be checked to see if they are blank.

(closes issue ASTERISK-20628)
Reported by: jkroon
Patches:
     asterisk-showdialplan-incorrect-error.patch uploaded by jkroon
........

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

Merged revisions 376167 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoFix Dynamic Hints Variable Substition - Underscore Problem
Michael L. Young [Mon, 12 Nov 2012 20:16:57 +0000 (20:16 +0000)] 
Fix Dynamic Hints Variable Substition - Underscore Problem

When adding a dynamic hint, if an extension contains an underscore no variable
subsitution is being performed.

This patch changes from checking if the extension contains an underscore to
checking if the extension begins with an underscore.

(closes issue ASTERISK-20639)
Reported by: Steven T. Wheeler
Tested by: Steven T. Wheeler, Michael L. Young
Patches:
  asterisk-20639-dynamic-hint-underscore.diff
                                     uploaded by Michael L. Young (license 5026)

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

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

Merged revisions 376143 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoRemove a fixed size limitation for producing SDP and change how ICE support is disabl...
Joshua Colp [Sun, 11 Nov 2012 17:08:58 +0000 (17:08 +0000)] 
Remove a fixed size limitation for producing SDP and change how ICE support is disabled by default.

With ICE support enabled in chan_sip and a large number of interfaces on the system it was
possible for the produced SDP to be truncated due to some fixed size buffers. These buffers
have now been changed so they will dynamically grow as needed.

ICE support is now also enabled by default in res_rtp_asterisk to provide a smoother experience
for chan_motif users where it is required. To maintain the previous behavior in chan_sip it is
no longer enabled by default there.

(closes issue ASTERISK-20643)
Reported by: coopvr

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

12 years agoFix a "set but not used" warning on newer gccs.
Mark Michelson [Thu, 8 Nov 2012 22:08:58 +0000 (22:08 +0000)] 
Fix a "set but not used" warning on newer gccs.

Turns out the "helpful" setting of ms and res in this
macro is completely useless after the timeout antipattern
fix.

If you're a new guy looking to write code, don't write
a macro like this one.
........

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

Merged revisions 376088 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agochan_dahdi/SS7: Made reject incoming call for an in-alarm or blocked channel.
Richard Mudgett [Thu, 8 Nov 2012 21:10:47 +0000 (21:10 +0000)] 
chan_dahdi/SS7: Made reject incoming call for an in-alarm or blocked channel.

If a SS7 call comes in requesting a CIC that is in-alarm, the call is
accepted and connects if the extension exists in the dialplan.  The call
does not have any audio.

* Made release the call immediately with circuit congestion cause.

(closes issue ASTERISK-20204)
Reported by: Tuan Le
Patches:
      jira_asterisk_20204_v1.8.patch (license #5621) patch uploaded by rmudgett
........

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

Merged revisions 376059 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoAdd MALLOC_DEBUG enhancements.
Richard Mudgett [Thu, 8 Nov 2012 17:26:16 +0000 (17:26 +0000)] 
Add MALLOC_DEBUG enhancements.

* Makes malloc() behave like calloc().  It will return a memory block
filled with 0x55.  A nonzero value.

* Makes free() fill the released memory block and boundary fence's with
0xdeaddead.  Any pointer use after free is going to have a pointer
pointing to 0xdeaddead.  The 0xdeaddead pointer is usually an invalid
memory address so a crash is expected.

* Puts the freed memory block into a circular array so it is not reused
immediately.

* When the circular array rotates out a memory block to the heap it checks
that the memory has not been altered from 0xdeaddead.

* Made the astmm_log message wording better.

* Made crash if the DO_CRASH menuselect option is enabled and something is
found.

* Fixed a potential alignment issue on 64 bit systems.
struct ast_region.data[] should now be aligned correctly for all
platforms.

* Extracted region_check_fences() from __ast_free_region() and
handle_memory_show().

* Updated handle_memory_show() CLI usage help.

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

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

Merged revisions 376030 from http://svn.asterisk.org/svn/asterisk/branches/10

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

12 years agoMultiple revisions 375993-375994
Mark Michelson [Wed, 7 Nov 2012 19:03:42 +0000 (19:03 +0000)] 
Multiple revisions 375993-375994

........
  r375993 | mmichelson | 2012-11-07 11:01:13 -0600 (Wed, 07 Nov 2012) | 30 lines

  Fix misuses of timeouts throughout the code.

  Prior to this change, a common method for determining if a timeout
  was reached was to call a function such as ast_waitfor_n() and inspect
  the out parameter that told how many milliseconds were left, then use
  that as the input to ast_waitfor_n() on the next go-around.

  The problem with this is that in some cases, submillisecond timeouts
  can occur, resulting in the out parameter not decreasing any. When this
  happens thousands of times, the result is that the timeout takes much
  longer than intended to be reached. As an example, I had a situation where
  a 3 second timeout took multiple days to finally end since most wakeups
  from ast_waitfor_n() were under a millisecond.

  This patch seeks to fix this pattern throughout the code. Now we log the
  time when an operation began and find the difference in wall clock time
  between now and when the event started. This means that sub-millisecond timeouts
  now cannot play havoc when trying to determine if something has timed out.

  Part of this fix also includes changing the function ast_waitfor() so that it
  is possible for it to return less than zero when a negative timeout is given
  to it. This makes it actually possible to detect errors in ast_waitfor() when
  there is no timeout.

  (closes issue ASTERISK-20414)
  reported by David M. Lee

  Review: https://reviewboard.asterisk.org/r/2135/
........
  r375994 | mmichelson | 2012-11-07 11:08:44 -0600 (Wed, 07 Nov 2012) | 3 lines

  Remove some debugging that accidentally made it in the last commit.
........

Merged revisions 375993-375994 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 375995 from http://svn.asterisk.org/svn/asterisk/branches/10

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