]> git.ipfire.org Git - thirdparty/asterisk.git/log
thirdparty/asterisk.git
12 years agoAdd builtin roundf() for systems lacking it.
Walter Doekes [Sat, 19 Jan 2013 20:41:35 +0000 (20:41 +0000)] 
Add builtin roundf() for systems lacking it.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(issue ASTERISK-15456)

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

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

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

The SMSSRC should now populate correctly.

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

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

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

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

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

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

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

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

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

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

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

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

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

(closes issue ASTERISK-16640)
Reported by: thomas987

(closes issue ASTERISK-16835)
Reported by: saghul

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

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

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

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

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

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

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

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

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

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

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

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

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

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

........

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

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

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

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

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

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

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

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

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

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

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

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

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

* Did some refactoring to eliminate some code redundancy.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(closes issue AST-1036)
Reported by: jbigelow

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

* Remove redundant module user references in login_exec().

* Remove unused struct agent_pvt logincallerid[] member.

* Remove some redundant code in agent_request().

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

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

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

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

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

Avoid deadlock potential with local channels and simplify the locking.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(closes AST-1054)
reported by Doug Bailey

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

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

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

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

(issue SWP-4713)

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

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

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

12 years agoMake chan_local module references tied to local_pvt lifetime.
Richard Mudgett [Mon, 17 Dec 2012 22:23:07 +0000 (22:23 +0000)] 
Make chan_local module references tied to local_pvt lifetime.

The chan_local module references were manually tied to the existence of
the ;1 and ;2 channel links.

* Made chan_local module references tied to the existence of the local_pvt
structure as well as automatically take care of the module references.

* Tweaked the wording of the local_fixup() failure warning message to make
sense.

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

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

12 years agoapp_queue: Revert bad ringinuse=no patch.
Richard Mudgett [Fri, 14 Dec 2012 21:23:15 +0000 (21:23 +0000)] 
app_queue: Revert bad ringinuse=no patch.

With the option ringinuse=no set, the patch committed for ASTERISK-16115
causes non-SIP queue members to never be called because the device state
is checked after a channel is created to determine if the member is busy.
These queue members always get the "Member %s is busy, cannot dial"
message.

Most channel drivers other than chan_sip use the default device state
handling.  The default device-state state is considered in use or unknown
if the channel exists or not respectively.

(closes issue ASTERISK-20801)
Reported by: rmudgett
Patches:
      jira_asterisk_16115_revert_r370418_v1.8.patch (license #5621) patch uploaded by rmudgett

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

12 years agoEnsure Min-SE is included in outbound INVITEs
Kinsey Moore [Thu, 13 Dec 2012 13:43:41 +0000 (13:43 +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
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@377946 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoIncremented EXTRA_SOUNDS_VERSION in sounds/Makefile to 1.4.12 for new Extra Sounds...
Rusty Newton [Wed, 12 Dec 2012 22:39:45 +0000 (22:39 +0000)] 
Incremented EXTRA_SOUNDS_VERSION in sounds/Makefile to 1.4.12 for new Extra Sounds releases

See CHANGES-* files in English extra 1.4.12 tarballs for new sound prompts added.

(closes ASTERISK-20328)
Reported by: Matt Jordan
(closes AST-755)
Reported by: John Bigelow

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

12 years agoCleanup CLI commands on exit for several files.
Richard Mudgett [Tue, 11 Dec 2012 21:54:22 +0000 (21:54 +0000)] 
Cleanup CLI commands on exit for several files.

(issue ASTERISK-20649)
Reported by: Corey Farrell
Patches:
      unregister-cli-multiple-all.patch (license #5909) patch uploaded by Corey Farrell

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

12 years agoCleanup udptl on exit.
Richard Mudgett [Tue, 11 Dec 2012 21:05:07 +0000 (21:05 +0000)] 
Cleanup udptl on exit.

* Cleanup CLI commands on exit.

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

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

12 years agoFix crash that can occur if CLI registration fails for an aliased command.
Mark Michelson [Tue, 11 Dec 2012 20:45:17 +0000 (20:45 +0000)] 
Fix crash that can occur if CLI registration fails for an aliased command.

A recent memory leak fix in main/cli.c causes an ast_cli_entry's command
field to be freed and NULLed if ast_cli_register() fails. res_clialiases
was ignoring the return value of ast_cli_register() and was then passing
the NULL command off to a a hash function. This resulted in a crash.

The fix is not to ignore the erroneous return value. If ast_cli_register()
fails, then we do not continue trying to process the current alias.

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

12 years agoCleanup taskprocessor on exit.
Richard Mudgett [Tue, 11 Dec 2012 20:37:36 +0000 (20:37 +0000)] 
Cleanup taskprocessor on exit.

* Cleanup CLI commands on exit.

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

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

12 years agoCleanup pbx on exit.
Richard Mudgett [Tue, 11 Dec 2012 19:46:56 +0000 (19:46 +0000)] 
Cleanup pbx on exit.

* Cleanup CLI commands on exit.

* Unreference hints and statecbs containers on exit.

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

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

12 years agoCleanup logger on exit.
Richard Mudgett [Tue, 11 Dec 2012 02:41:01 +0000 (02:41 +0000)] 
Cleanup logger on exit.

* Cleanup CLI commands, destroy verbosers and logchannels lists on exit.

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

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

12 years agoCleanup indications on exit.
Richard Mudgett [Tue, 11 Dec 2012 02:09:33 +0000 (02:09 +0000)] 
Cleanup indications on exit.

* Made ast_unregister_indication_country() unlink the found tone zone
before selecting a new default_tone_zone to make it impossible to select
the tone zone being unregistered again.

* Ringcadence is no longer parsed twice in store_config_tone_zone().

* Cleanup CLI commands and destroy default_tone_zone on exit.

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

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

12 years agoCleanup frame on exit.
Richard Mudgett [Tue, 11 Dec 2012 01:11:05 +0000 (01:11 +0000)] 
Cleanup frame on exit.

* Cleanup CLI commands on exit.

(issue ASTERISK-20649)
Reported by: Corey Farrell
Patches:
      frame-cleanup-1_8-only.patch (license #5909) patch uploaded by Corey Farrell

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

12 years agoCleanup event on exit.
Richard Mudgett [Tue, 11 Dec 2012 00:52:37 +0000 (00:52 +0000)] 
Cleanup event on exit.

* Cleanup CLI commands on exit.

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

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

12 years agoCleanup dnsmgr on exit.
Richard Mudgett [Tue, 11 Dec 2012 00:30:15 +0000 (00:30 +0000)] 
Cleanup dnsmgr on exit.

* Cleanup dnsmgr thread and CLI commands on exit.

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

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

12 years agoCleanup astdb on exit.
Richard Mudgett [Mon, 10 Dec 2012 23:13:48 +0000 (23:13 +0000)] 
Cleanup astdb on exit.

* Cleanup astdb thread and CLI commands on exit.

(issue ASTERISK-20649)
Reported by: Corey Farrell
Patches:
      db-cleanup-1_8-only.patch (license #5909) patch uploaded by Corey Farrell
      Modified

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

12 years agoEnsure ReceiveFax provides a CED tone via T.38
Kinsey Moore [Mon, 10 Dec 2012 16:51:35 +0000 (16:51 +0000)] 
Ensure ReceiveFax provides a CED tone via T.38

When using res_fax_digium, the T.38 CED tone was not being provided
properly which would cause some incoming faxes to fail. This was not an
issue with res_fax_spandsp since it does not strictly honor the
send_ced flag and sends the CED tone whenever receiving a T.38 fax.

(closes issue FAX-343)
Reported-by: Benjamin Tietz
Patch-by: Kinsey Moore
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@377655 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoHandle Session-Expires less than local Min-SE in 200 OK
Kinsey Moore [Mon, 10 Dec 2012 14:39:07 +0000 (14:39 +0000)] 
Handle Session-Expires less than local Min-SE in 200 OK

Ensure that a call is immediately torn down if a Session-Expires value
received in a 200 OK is less than the local Min-SE. This also prevents
Asterisk from allowing calls with Session-Expires below the
RFC4028-mandated minimum (90s).

(closes issue ASTERISK-20653)
Review: https://reviewboard.asterisk.org/r/2237/
Patch-by: Kinsey Moore
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@377623 65c4cc65-6c06-0410-ace0-fbb531ad65f3

12 years agoFix codec mismatch
Igor Goncharovskiy [Mon, 10 Dec 2012 06:40:18 +0000 (06:40 +0000)] 
Fix codec mismatch

Fix code to send in both rx and tx open stream messages correct codecs. Found that on phase 0/1 phones wrong codecs cause to no audio in some situations.

(issue ASTERISK-20183)

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

12 years agoFix crash on transfer initiated from insreeen menu on Unistim phones. Removed CDR...
Igor Goncharovskiy [Mon, 10 Dec 2012 05:00:57 +0000 (05:00 +0000)] 
Fix crash on transfer initiated from insreeen menu on Unistim phones. Removed CDR-related code that moved to do_masquarade before.

(closes issue ASTERISK-20417)
Reported by: Rudolf Migalin

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

12 years agoImprove documentation by making all of the colors used readable,
Tilghman Lesher [Mon, 10 Dec 2012 01:38:52 +0000 (01:38 +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

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@377509 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:17:25 +0000 (01:17 +0000)] 
Remove some dead code and additionally handle a case that wasn't handled.

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

12 years agoFix order of SIP allow/disallow in MySQL contrib script.
Richard Mudgett [Sat, 8 Dec 2012 00:28:51 +0000 (00:28 +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

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

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

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

13 years agoFix a SIP request memory leak with TLS connections.
Joshua Colp [Wed, 5 Dec 2012 16:48:01 +0000 (16:48 +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

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

13 years agores_srtp: Fix a crash caused by srtp_dealloc on an already dealloced session
Jonathan Rose [Wed, 5 Dec 2012 16:46:28 +0000 (16:46 +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/

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

13 years agoCleanup ast_run_atexits() atexits list.
Richard Mudgett [Mon, 3 Dec 2012 22:51:41 +0000 (22:51 +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

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

13 years agoCleanup core main on exit.
Richard Mudgett [Mon, 3 Dec 2012 20:26:37 +0000 (20:26 +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

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

13 years agoCleanup config cache on exit.
Richard Mudgett [Mon, 3 Dec 2012 19:29:17 +0000 (19:29 +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

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

13 years agoCleanup CLI resources on exit and CLI command registration errors.
Richard Mudgett [Mon, 3 Dec 2012 19:13:01 +0000 (19:13 +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

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

13 years agoCleanup CDR resources on exit.
Richard Mudgett [Mon, 3 Dec 2012 18:38:21 +0000 (18:38 +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

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

13 years agoFix CCSS CLI commands and logger level not unregistered.
Richard Mudgett [Mon, 3 Dec 2012 17:05:40 +0000 (17:05 +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

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

13 years agochan_misdn: Fix sending RELEASE_COMPLETE in response to SETUP.
Richard Mudgett [Fri, 30 Nov 2012 21:30:48 +0000 (21:30 +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

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

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

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

13 years agoFix potential crashes during SIP attended transfers.
Mark Michelson [Fri, 30 Nov 2012 16:12:07 +0000 (16:12 +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

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

13 years agochan_local: Fix local_pvt ref leak in local_devicestate().
Richard Mudgett [Thu, 29 Nov 2012 22:55:51 +0000 (22:55 +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

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

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

(issue ASTERISK-20724)

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

13 years agoImprove Code Readability And Fix Setting natdetected Flag
Michael L. Young [Thu, 29 Nov 2012 21:49:40 +0000 (21:49 +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/

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

13 years agoAdd MALLOC_DEBUG atexit unreleased malloc memory summary.
Richard Mudgett [Thu, 29 Nov 2012 00:42:27 +0000 (00:42 +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/

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

13 years agoEnhance MALLOC_DEBUG CLI commands.
Richard Mudgett [Thu, 29 Nov 2012 00:03:29 +0000 (00:03 +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.

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

13 years agomanager: Make challenge work with allowmultiplelogin=no
Jonathan Rose [Wed, 28 Nov 2012 16:23:47 +0000 (16:23 +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)

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

13 years agoFix extension matching with the '-' char.
Richard Mudgett [Tue, 27 Nov 2012 23:47:27 +0000 (23:47 +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/

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

13 years agoRemove unnecessary channel module references.
Richard Mudgett [Tue, 27 Nov 2012 20:32:31 +0000 (20:32 +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.

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

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

* Update doxygen of AST_LIST_REMOVE().

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

13 years agoRe-initialize logmsgs mutex upon logger initialization to prevent lock errors
Matthew Jordan [Thu, 22 Nov 2012 23:51:02 +0000 (23:51 +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

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

13 years agoAdd "Require: timer" to 200 OK responses when appropriate.
Mark Michelson [Tue, 20 Nov 2012 16:45:50 +0000 (16:45 +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

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

13 years agoFix most leftover non-opaque ast_str uses.
Walter Doekes [Mon, 19 Nov 2012 19:30:58 +0000 (19:30 +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

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

13 years agoReorder startup sequence to prevent lockups when process is sent to background
Matthew Jordan [Sun, 18 Nov 2012 20:11:18 +0000 (20:11 +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

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

13 years agomonitor: prevent attempts to move/remove recordings skipped with 'i' and 'o'.
Jonathan Rose [Fri, 16 Nov 2012 19:31:48 +0000 (19:31 +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/

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

13 years agoFixed extconf.c breakage introduced in r376306.
David M. Lee [Thu, 15 Nov 2012 23:58:05 +0000 (23:58 +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?

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

13 years agoapp_meetme: Fix channels lingering when hung up under certain conditions
Jonathan Rose [Thu, 15 Nov 2012 22:40:50 +0000 (22:40 +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)

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

13 years agoMigrate hashtest/hashtest2 to be unit tests.
David M. Lee [Thu, 15 Nov 2012 22:27:37 +0000 (22:27 +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/

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

13 years agoPatch to play correct sound file when a voicemail's urgent status is removed
Rusty Newton [Thu, 15 Nov 2012 01:43:43 +0000 (01:43 +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)

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

13 years agoFix call files when astspooldir is relative.
Richard Mudgett [Wed, 14 Nov 2012 19:48:13 +0000 (19:48 +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

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

13 years agoPatch to prevent stopping the active generator when it is not the silence
Brent Eagles [Tue, 13 Nov 2012 18:10:22 +0000 (18:10 +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

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

13 years agoProperly check if the "Context" and "Extension" headers are empty in a ShowDialPlan...
Joshua Colp [Mon, 12 Nov 2012 20:44:00 +0000 (20:44 +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

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

13 years agoFix Dynamic Hints Variable Substition - Underscore Problem
Michael L. Young [Mon, 12 Nov 2012 20:13:53 +0000 (20:13 +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/

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

13 years agoFix a "set but not used" warning on newer gccs.
Mark Michelson [Thu, 8 Nov 2012 21:56:49 +0000 (21:56 +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.

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

13 years agochan_dahdi/SS7: Made reject incoming call for an in-alarm or blocked channel.
Richard Mudgett [Thu, 8 Nov 2012 21:05:40 +0000 (21:05 +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

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

13 years agoAdd MALLOC_DEBUG enhancements.
Richard Mudgett [Thu, 8 Nov 2012 16:58:52 +0000 (16:58 +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/

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

13 years agoRemove some debugging that accidentally made it in the last commit.
Mark Michelson [Wed, 7 Nov 2012 17:08:44 +0000 (17:08 +0000)] 
Remove some debugging that accidentally made it in the last commit.

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

13 years agoFix misuses of timeouts throughout the code.
Mark Michelson [Wed, 7 Nov 2012 17:01:13 +0000 (17:01 +0000)] 
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/

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

13 years agoFix stuck DTMF when bridge is broken.
Richard Mudgett [Tue, 6 Nov 2012 18:18:32 +0000 (18:18 +0000)] 
Fix stuck DTMF when bridge is broken.

When a bridge is broken by an AMI Redirect action or the ChannelRedirect
application, an in progress DTMF digit could be stuck sending forever.

* Made simulate a DTMF end event when a bridge is broken and a DTMF digit
was in progress.

(closes issue ASTERISK-20492)
Reported by: Jeremiah Gowdy
Patches:
      bridge_end_dtmf-v3.patch.txt (license #6358) patch uploaded by Jeremiah Gowdy
      Modified to jira_asterisk_20492_v1.8.patch
      jira_asterisk_20492_v1.8.patch (license #5621) patch uploaded by rmudgett
Tested by: rmudgett

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

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

13 years agoRefactor ast_timer_ack to return an error and handle the error in timer users
Matthew Jordan [Mon, 5 Nov 2012 22:50:21 +0000 (22:50 +0000)] 
Refactor ast_timer_ack to return an error and handle the error in timer users

Currently, if an acknowledgement of a timer fails Asterisk will not realize
that a serious error occurred and will continue attempting to use the timer's
file descriptor.  This can lead to situations where errors stream to the
CLI/log file.  This consumes significant resources, masks the actual problem
that occurred (whatever caused the timer to fail in the first place), and
can leave channels in odd states.

This patch propagates the errors in the timing resource modules up through
the timer core, and makes users of these timers handle acknowledgement
failures.  It also adds some defensive coding around the use of timers
to prevent using bad file descriptors in off nominal code paths.

Note that the patch created by the issue reporter was modified slightly for
this commit and backported to 1.8, as it was originally written for
Asterisk 10.

(issue ASTERISK-20032)
Reported by: Jeremiah Gowdy
patches:
  jgowdy-timerfd-6-22-2012.diff uploaded by Jeremiah Gowdy (license 6358)

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

13 years agoAdd safety NULL pointer check in module user references.
Richard Mudgett [Mon, 5 Nov 2012 21:36:56 +0000 (21:36 +0000)] 
Add safety NULL pointer check in module user references.

Made __ast_module_user_remove() check for NULL pointers.
........

Merged revision 375860 from C.3

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

13 years agoDon't attempt to purge sessions when no sessions exist
Matthew Jordan [Sun, 4 Nov 2012 03:06:49 +0000 (03:06 +0000)] 
Don't attempt to purge sessions when no sessions exist

Manager's tcp/tls objects have a periodic function that purge old manager
sessions periodically.  During shutdown, the underlying container holding
those sessions can be disposed of and set to NULL before the tcp/tls periodic
function is stopped.  If the periodic function fires, it will attempt to
iterate over a NULL container.

This patch checks for whether or not the sessions container exists before
attempting to purge sessions out of it.  If the sessions container is NULL,
we simply return.

Note that this error was also caught by the Asterisk Test Suite.

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

13 years agoProperly clean up manager resources on exit
Matthew Jordan [Sun, 4 Nov 2012 02:25:48 +0000 (02:25 +0000)] 
Properly clean up manager resources on exit

This patch does two things:
1) It properly unregisters the manager CLI commands
2) It cleans up AMI users on exit.  Prior to this patch, the AMI users
   were not being disposed of properly, resulting in a memory leak.

(closes issue ASTERISK-20646)
Reported by: Corey Farrell
patches:
  manager_shutdown.patch uploaded by Corey Farrell (license 5909)

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

13 years agoFix memory leak when unloading XML documentation
Matthew Jordan [Sun, 4 Nov 2012 00:54:19 +0000 (00:54 +0000)] 
Fix memory leak when unloading XML documentation

This patch is a modified version of a patch originally committed for the
Asterisk 11 branch in r375756.  A portion of that patch, that fixed the
memory leak during unloading XML documentation, applies to branches 1.8
and 10 as well.

The patch for this issue was modified for these two branches.

(issue ASTERISK-20648)
Reported by: Corey Farrell
Tested by: mjordan
patches:
  xmldoc-memory_leak.patch uploaded by Corey Farrell (license 5909)

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