]> git.ipfire.org Git - thirdparty/asterisk.git/log
thirdparty/asterisk.git
13 years agodsp.c: optimize goerztzel sample loops, in dtmf_detect, mf_detect and tone_detect
Alec L Davis [Wed, 5 Sep 2012 06:45:43 +0000 (06:45 +0000)] 
dsp.c: optimize goerztzel sample loops, in dtmf_detect, mf_detect and tone_detect

use a temporary short int when repeatedly used to call goertzel_sample.

alecdavis (license 585)
Reported by: alecdavis
Tested by: alecdavis

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

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

13 years agoFix Incrementing Sequence Number For Retransmitted DTMF End Packets
Michael L. Young [Wed, 5 Sep 2012 03:45:36 +0000 (03:45 +0000)] 
Fix Incrementing Sequence Number For Retransmitted DTMF End Packets

In Asterisk 1.4+, a fix was put in place to increment the sequence number for
retransmitted DTMF end packets.  With the introduction of the RTP engine API in
1.8, the sequence number was no longer being incremented.  This patch fixes this
regression as well as cleans up a few lines that were not doing anything.

(closes issue ASTERISK-20295)
Reported by: Nitesh Bansal
Tested by: Michael L. Young
Patches:
01_rtp_event_seq_num.patch uploaded by Nitesh Bansal (license 6418)
asterisk-20295-dtmf-fix-cleanup.diff uploaded by Michael L. Young (license 5026)

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

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

13 years agoFix memory leak when CEL is successfully written to PostgreSQL database
Matthew Jordan [Wed, 5 Sep 2012 02:16:17 +0000 (02:16 +0000)] 
Fix memory leak when CEL is successfully written to PostgreSQL database

PQClear is not called when the result object of a call to PQExec has a
status of PGRES_COMMAND_OK.  Interestingly enough, the off nominal case was
handled properly, so this memory leak only occurred when CEL records were
successfully written.

This patch properly clears the result in the nominal code path.

(closes issue ASTERISK-19991)
Reported by: Etienne Lessard
Tested by: Etienne Lessard
patches:
  mem_leak_cel_pgsql.patch uploaded by Etienne Lessard (license #6394)

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

13 years agoPrevent crash on shutdown due to refcount error on queues container.
Mark Michelson [Thu, 30 Aug 2012 20:51:51 +0000 (20:51 +0000)] 
Prevent crash on shutdown due to refcount error on queues container.

When app_queue is unloaded, the queues container has its refcount
decremented, potentially to 0. Then the taskprocessor responsible
for handling device state changes is unreferenced. If the
taskprocessor happens to be just about to run its task, then it
will create and destroy an iterator on the queues container.
This can cause the refcount on the queues container to increase to
1 and then back to 0. Going back to 0 a second time results in
double frees.

This failure was seen periodically in the testsuite when Asterisk
would shut down.

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

13 years agoHelp prevent ringing queue members from being rung when ringinuse set to no.
Mark Michelson [Thu, 30 Aug 2012 18:28:32 +0000 (18:28 +0000)] 
Help prevent ringing queue members from being rung when ringinuse set to no.

Queue member status would not always get updated properly when the member
was called, thus resulting in the member getting multiple calls. With this
change, we update the member's status at the time of calling, and we also
check to make sure the member is still available to take the call before
placing an outbound call.

(closes issue ASTERISK-16115)
reported by nik600
Patches:
app_queue.c-svn-r370418.patch uploaded by Italo Rossi (license #6409)

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

13 years agoAST-2012-013: Resolve ACL rules being ignored during calls by some IAX2 peers
Matthew Jordan [Thu, 30 Aug 2012 16:21:34 +0000 (16:21 +0000)] 
AST-2012-013: Resolve ACL rules being ignored during calls by some IAX2 peers

When an IAX2 call is made using the credentials of a peer defined in a dynamic
Asterisk Realtime Architecture (ARA) backend, the ACL rules for that peer are
not applied to the call attempt. This allows for a remote attacker who is aware
of a peer's credentials to bypass the ACL rules set for that peer.

This patch ensures that the ACLs are applied for all peers, regardless of their
storage mechanism.

(closes issue ASTERISK-20186)
Reported by: Alan Frisch
Tested by: mjordan, Alan Frisch

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

13 years agoAST-2012-012: Resolve AMI User Unauthorized Shell Access through ExternalIVR
Matthew Jordan [Thu, 30 Aug 2012 16:05:23 +0000 (16:05 +0000)] 
AST-2012-012: Resolve AMI User Unauthorized Shell Access through ExternalIVR

The AMI Originate action can allow a remote user to specify information that can
be used to execute shell commands on the system hosting Asterisk. This can
result in an unwanted escalation of permissions, as the Originate action, which
requires the "originate" class authorization, can be used to perform actions
that would typically require the "system" class authorization. Previous attempts
to prevent this permission escalation (AST-2011-006, AST-2012-004) have sought
to do so by inspecting the names of applications and functions passed in with
the Originate action and, if those applications/functions matched a predefined
set of values, rejecting the command if the user lacked the "system" class
authorization. As noted by IBM X-Force Research, the "ExternalIVR"
application is not listed in the predefined set of values. The solution for
this particular vulnerability is to include the "ExternalIVR" application in the
set of defined applications/functions that require "system" class authorization.

Unfortunately, the approach of inspecting fields in the Originate action against
known applications/functions has a significant flaw. The predefined set of
values can be bypassed by creative use of the Originate action or by certain
dialplan configurations, which is beyond the ability of Asterisk to analyze at
run-time. Attempting to work around these scenarios would result in severely
restricting the applications or functions and prevent their usage for legitimate
means. As such, any additional security vulnerabilities, where an
application/function that would normally require the "system" class
authorization can be executed by users with the "originate" class authorization,
will not be addressed. Instead, the README-SERIOUSLY.bestpractices.txt file has
been updated to reflect that the AMI Originate action can result in commands
requiring the "system" class authorization to be executed. Proper system
configuration can limit the impact of such scenarios.

(closes issue ASTERISK-20132)
Reported by: Zubair Ashraf of IBM X-Force Research

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

13 years agoRestore CODING-GUIDELINES to doc folder
Matthew Jordan [Thu, 30 Aug 2012 12:47:37 +0000 (12:47 +0000)] 
Restore CODING-GUIDELINES to doc folder

In r294740, the CODING-GUIDELINES was removed from the doc folder in favor
of the content on the Asterisk wiki.  Some folks still look in the doc folder
initially for coding guideline suggestions; as such, this patch adds a
CODING-GUIDELINES file back into the doc folder.  The content of the file
merely points to the correct page on the Asterisk wiki where the coding
guidelines currently live.

(closes issue ASTERISK-20279)
Reported by: Andrew Latham
Patches:
  CODING-GUIDELINES.diff uploaded by Andrew Latham (license 5985)

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

13 years agoapp_meetme: Adding test events for following activity in MeetMe.
Jonathan Rose [Wed, 29 Aug 2012 20:42:54 +0000 (20:42 +0000)] 
app_meetme: Adding test events for following activity in MeetMe.

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

13 years agoInitialize file descriptors for dummy channels to -1.
Richard Mudgett [Wed, 29 Aug 2012 19:38:19 +0000 (19:38 +0000)] 
Initialize file descriptors for dummy channels to -1.

Dummy channels usually aren't read from, but functions like SHELL and CURL
use autoservice on the channel.

(closes issue ASTERISK-20283)
Reported by: Gareth Palmer
Patches:
      svn-371580.patch (license #5169) patch uploaded by Gareth Palmer (modified)

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

13 years agoFix hangup cause passthrough regression.
Richard Mudgett [Wed, 29 Aug 2012 18:22:24 +0000 (18:22 +0000)] 
Fix hangup cause passthrough regression.

The v1.8 -r369258 change to fix the F and F(x) action logic introduced a
regression in passing the hangup cause from the called channel to the
caller channel.

(closes issue ASTERISK-20287)
Reported by: Konstantin Suvorov
Patches:
      app_dial_hangupcause.patch (license #6421) patch uploaded by Konstantin Suvorov (modified)
Tested by: rmudgett

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

13 years agochan_sip: Send 408 on retransmit timeout instead of 603
Jonathan Rose [Wed, 29 Aug 2012 16:59:54 +0000 (16:59 +0000)] 
chan_sip: Send 408 on retransmit timeout instead of 603

(closes issue ASTERISK-20124)
Reported by: Walter Doekes

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

13 years agoFix misleading documentation in agents.conf.sample regarding ackcall usage.
Mark Michelson [Mon, 27 Aug 2012 21:47:25 +0000 (21:47 +0000)] 
Fix misleading documentation in agents.conf.sample regarding ackcall usage.

The documentation made it sound as if the DTMF acknowledgment was needed
at the time the agent logs in, rather than when the agent is called. This
is likely a relic from the days when there were multiple ways of logging
in agents.

(closes issue AST-962)
reported by Steve Pitts

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

13 years agoFix incorrect documentation of the MailboxStatus manager command.
Mark Michelson [Mon, 27 Aug 2012 21:24:30 +0000 (21:24 +0000)] 
Fix incorrect documentation of the MailboxStatus manager command.

The "Waiting" field was misdocumented as reporting the number of
messages waiting. In reality, it simply indicated the presence or
absence of waiting messages.

(closes issue AST-975)
reported  by John Bigelow

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

13 years agoFix incorrectly documented option in queues.conf
Mark Michelson [Mon, 27 Aug 2012 17:35:34 +0000 (17:35 +0000)] 
Fix incorrectly documented option in queues.conf

sharedlastcall defaults to "no" not "yes"

(closes issue AST-979)
reported by Steve Pitts

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

13 years agoFixes ast_rwlock_timed[rd|wr]lock for BSD and variants.
David M. Lee [Mon, 27 Aug 2012 16:40:45 +0000 (16:40 +0000)] 
Fixes ast_rwlock_timed[rd|wr]lock for BSD and variants.

The original implementations simply wrap pthread functions, which take
absolute time as an argument. The spinlock version for systems without
those functions treated the argument as a delta. This patch fixes the
spinlock version to be consistent with the pthread version.

(closes issue ASTERISK-20240)
Reported by: Egor Gorlin
Patches:
lock.c.patch uploaded by Egor Gorlin (license 6416)

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

13 years agoImplement workaround for BETTER_BACKTRACES crash
Kinsey Moore [Mon, 27 Aug 2012 13:43:23 +0000 (13:43 +0000)] 
Implement workaround for BETTER_BACKTRACES crash

When compiling with BETTER_BACKTRACES enabled, Asterisk will sometimes
crash when "core show locks" is run. This happens regularly in the
testsuite since several tests run "core show locks" to help with
debugging. This seems to be a fault with libraries on certain operating
systems (notably CentOS 6.2/6.3) running on virtual machines and
utilizing gcc 4.4.6.

(closes issue ASTERISK-20090)

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

13 years agomf_detect: incorrectly used DTMF_GSIZE instead of MF_GSIZE
Alec L Davis [Sun, 26 Aug 2012 23:03:51 +0000 (23:03 +0000)] 
mf_detect: incorrectly used DTMF_GSIZE instead of MF_GSIZE

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

13 years agoFix misuses of asprintf throughout the code.
Mark Michelson [Tue, 21 Aug 2012 20:35:12 +0000 (20:35 +0000)] 
Fix misuses of asprintf throughout the code.

This fixes three main issues

* Change asprintf() uses to ast_asprintf() so that it
pairs properly with ast_free() and no longer causes
MALLOC_DEBUG to freak out.

* When ast_asprintf() fails, set the pointer NULL if
it will be referenced later.

* Fix some memory leaks that were spotted while taking
care of the first two points.

(Closes issue ASTERISK-20135)
reported by Richard Mudgett

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

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

13 years agoIgnore recovered zero-length secondary UDPTL packets
Kinsey Moore [Mon, 20 Aug 2012 15:25:43 +0000 (15:25 +0000)] 
Ignore recovered zero-length secondary UDPTL packets

In some cases, recovering lost packets using the secondary packet
recovery mechanism with UDPTL/T.38 can result in the recovery of
zero-length packets. These must be ignored or the frame generated from
them can cause segfaults and allocation failures.

(closes issue ASTERISK-19762)
(closes issue ASTERISK-19373)
Reported-by: Benjamin (bulkorok)
Reported-by: Rob Gagnon (rgagnon)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@371544 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix memory leak in XML documentation
Matthew Jordan [Fri, 17 Aug 2012 18:51:43 +0000 (18:51 +0000)] 
Fix memory leak in XML documentation

When formatting documentation fields, the XML documentation parser calls
xmldoc_get_formatted.  This function allocates a string buffer at the
beginning of its routine.  Unfortunately, on certain code paths, it also
calls xmldoc_string_cleanup, which assumes that it will create the string
buffer.  The previously allocated string buffer is then leaked by the
xmldoc_string_cleanup routine.

Now: we don't do that.

(closes issue AST-932)
Reported by: Alexander Homig

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

13 years agoAdd instrumentation to subsystem reloads
Kinsey Moore [Fri, 17 Aug 2012 15:49:54 +0000 (15:49 +0000)] 
Add instrumentation to subsystem reloads

When Asterisk is built with TEST_FRAMEWORK defined, Asterisk will now
generate TestEvent AMI events on subsystem reloads such as cdr, dnsmgr,
extconfig, etc.

(issue PQ-1126)

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

13 years agoAdd module reload instrumentation for TEST_FRAMEWORK
Kinsey Moore [Thu, 16 Aug 2012 22:41:37 +0000 (22:41 +0000)] 
Add module reload instrumentation for TEST_FRAMEWORK

This adds AMI events for module reloads when Asterisk is built with
TEST_FRAMEWORK enabled and corrects generation of the module load AMI
event.

(issue PQ-1126)

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

13 years agoHandle integer over/under-flow in ast_parse_args
Terry Wilson [Thu, 16 Aug 2012 22:30:12 +0000 (22:30 +0000)] 
Handle integer over/under-flow in ast_parse_args

The strtol family of functions will return *_MIN/*_MAX on overflow. To
detect when an overflow has happened, errno must be set to 0 before
calling the function, then checked afterward.

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

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

13 years agochan_sip: Use pvt outgoing_call variable to set Remote-Party-ID Header
Jonathan Rose [Thu, 16 Aug 2012 18:57:27 +0000 (18:57 +0000)] 
chan_sip: Use pvt outgoing_call variable to set Remote-Party-ID Header

Previously the pvt SIP_OUTGOING flag was used instead, which will frequently
flip during reinvites.

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

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

13 years agochan_sip: Trigger reinvite if the SDP answer is included in the SIP ACK
Jonathan Rose [Thu, 16 Aug 2012 15:46:26 +0000 (15:46 +0000)] 
chan_sip: Trigger reinvite if the SDP answer is included in the SIP ACK

Under certain conditions, a SIP transaction involving directmedia wouldn't
trigger a re-invite because the SDP answer was included in an ACK instead
of in a message that we would have triggered the invite with. This patch
just queues a source change control frame if the dialog is using
directmedia when we find sdp for an ACK.

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

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

13 years agoFix bug where final queue member would not be removed from memory.
Mark Michelson [Wed, 15 Aug 2012 23:10:11 +0000 (23:10 +0000)] 
Fix bug where final queue member would not be removed from memory.

If a static queue had realtime members, then there could be a potential
for those realtime members not to be properly deleted from memory.

If the queue's members were loaded from realtime and then all the
members were deleted from the backend, then the queue would still
think these members existed. The reason was that there was a short-
circuit in code such that if there were no members found in the
backend, then the queue would not be updated to reflect this.

Note that this only affected static queues with realtime members.
Realtime queues with realtime members were unaffected by this issue.

(closes issue ASTERISK-19793)
reported by Marcus Haas

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

13 years agoAvoid unconditional NULLing of mwipvt on relatedpeer on SIP dialog destruction
Kinsey Moore [Wed, 15 Aug 2012 20:14:18 +0000 (20:14 +0000)] 
Avoid unconditional NULLing of mwipvt on relatedpeer on SIP dialog destruction

The other instance of this bug was fixed by jcolp/file in r121496. If
we are destroying a dialog only set the MWI dialog pointer on the
related peer to NULL if it is the dialog currently being destroyed.

(closes issue ASTERISK-20119)
Patch-by: Misha Vodsedalek
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@371270 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoAdd test instrumentation
Kinsey Moore [Mon, 13 Aug 2012 20:00:01 +0000 (20:00 +0000)] 
Add test instrumentation

This adds test instrumentation for loading and unloading of modules
and for certain actions in MeetMe to be used in the testsuite or any
other consumer of AMI events.  These will only be generated when
Asterisk is built with TEST_FRAMEWORK enabled.

(issue PQ-1131)
(issue PQ-1133)

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

13 years agoFix problem where incorrect pointer was checked for nullity.
Mark Michelson [Mon, 13 Aug 2012 19:49:31 +0000 (19:49 +0000)] 
Fix problem where incorrect pointer was checked for nullity.

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

13 years agoFix a couple of documentation problems in app_queue.c
Mark Michelson [Fri, 10 Aug 2012 21:21:36 +0000 (21:21 +0000)] 
Fix a couple of documentation problems in app_queue.c

* The RemoveQueueMember app made mention of options that could
be passed in, but no options are supported. I have removed the
listing of options from the documentation.

* The RQMSTATUS variable did not list "NOTDYNAMIC" as a possible
value that could be set.

(closes issue AST-949)
reported by Steve Pitts

(closes issue AST-954)
reported by Steve Pitts

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

13 years agoremove ALREADYGONE flag on ooh323 call data by ooh323_indicate
Alexandr Anikin [Fri, 10 Aug 2012 16:40:48 +0000 (16:40 +0000)] 
remove ALREADYGONE flag on ooh323 call data by ooh323_indicate
(CONGESTION/BUSY) due to call hasn't gone there really.
This indication arrive from asterisk core not h.323 stack

(closes issue ASTERISK-19308)
Reported by: Dmitry Melekhov
Patches:
        ASTERISK-19308.patch

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

13 years agoSend re-register packets by GRQ (gatekeeper request) interval
Alexandr Anikin [Fri, 10 Aug 2012 15:10:20 +0000 (15:10 +0000)] 
Send re-register packets by GRQ (gatekeeper request) interval

(close issue ASTERISK-20094)

Patches:
   ASTERISK-20094-2.patch

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

13 years agoUse better libss7 detection test and move libpri compile test.
Richard Mudgett [Thu, 9 Aug 2012 18:58:44 +0000 (18:58 +0000)] 
Use better libss7 detection test and move libpri compile test.

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

13 years agoFix to resend GRQ/RRQ if RRJ (registration reject) is received
Alexandr Anikin [Thu, 9 Aug 2012 18:58:08 +0000 (18:58 +0000)] 
Fix to resend GRQ/RRQ if RRJ (registration reject) is received

(close issue ASTERISK-20094)

Patches:
   ASTERISK-20094.patch

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

13 years agochange opening h323 logfile with append mode instead of overwrite
Alexandr Anikin [Thu, 9 Aug 2012 18:02:01 +0000 (18:02 +0000)] 
change opening h323 logfile with append mode instead of overwrite

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

13 years agoCorrect documentation for the MeetMe x flag
Kinsey Moore [Thu, 9 Aug 2012 17:39:03 +0000 (17:39 +0000)] 
Correct documentation for the MeetMe x flag

The documentation for the x flag for MeetMe incorrectly described its
function as closing down the conference when the last marked user left.
It actually causes the users with that flag to leave the conference
when the last marked user exits. The functionality of this flag is not
changing.

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

13 years agoFix Not Unreferencing A Spied Channel
Michael L. Young [Wed, 8 Aug 2012 22:40:01 +0000 (22:40 +0000)] 
Fix Not Unreferencing A Spied Channel

When a channel hangs up while being spied upon and the option to exit the
ChanSpy application when the spied on channel hangs up is set,
ast_autochan_destroy is not being called and therefore a reference to the spied
upon channel is not removed.

The symptom being reported was that when using func_group in the dialplan and
calling "group show channels" at the cli, the spied upon channel was still
being shown while "core show channels" showed that the channel was not up.

This patch calls ast_autochan_destroy when a spied upon channel hangs up and
the option to exit the ChanSpy application is set, removing the reference to
the channel allowing the count for the group that the spied channel was part of
to be decremented.

(closes issue ASTERISK-17515)
Reported by: Arkadiusz Malka
Tested by: Alexandr Gordeev, Michael L. Young
Patches:
    asterisk-17515-destroy-autochan.diff
                                    uploaded by Michael L. Young (license 5026)

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

13 years agoDo not define a cause that doesn't actually exist
Kinsey Moore [Wed, 8 Aug 2012 20:28:40 +0000 (20:28 +0000)] 
Do not define a cause that doesn't actually exist

AST_CAUSE_NOTDEFINED is a placeholder for usage when there is no cause
information. As such, it should not be defined and translatable as a
cause.

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

13 years agoFix the analog dial *0 flash-hook of bridged peer feature.
Richard Mudgett [Wed, 8 Aug 2012 19:58:52 +0000 (19:58 +0000)] 
Fix the analog dial *0 flash-hook of bridged peer feature.

The flash-hook the bridged peer feature now correctly determines if the
bridged peer is another chan_dahdi channel, that it is an analog channel,
and that it has the correct signaling for an FXO port.  It now also
flash-hooks the correct channel.

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

13 years agoAdd missing AST_CAUSE_* -> text translations
Kinsey Moore [Tue, 7 Aug 2012 19:19:49 +0000 (19:19 +0000)] 
Add missing AST_CAUSE_* -> text translations

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

13 years agoImprove debug message for temporary outbound proxies.
Mark Michelson [Mon, 6 Aug 2012 15:00:08 +0000 (15:00 +0000)] 
Improve debug message for temporary outbound proxies.

Thanks to Paul Belanger for pointing this out.

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

13 years agoSeriously? Another compilation error fixed.
Mark Michelson [Fri, 3 Aug 2012 21:43:52 +0000 (21:43 +0000)] 
Seriously? Another compilation error fixed.

Somebody beat me.

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

13 years agoRemove unused variable.
Mark Michelson [Fri, 3 Aug 2012 21:39:35 +0000 (21:39 +0000)] 
Remove unused variable.

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

13 years agoFix error in the "IPorHost" section of a SIP dialstring.
Mark Michelson [Fri, 3 Aug 2012 21:35:00 +0000 (21:35 +0000)] 
Fix error in the "IPorHost" section of a SIP dialstring.

This is based on the review request posted by Walter Doekes
(referenced lower in the commit message)

The main fix here is to treat the IPorHost portion of the dial
string as a temporary outbound proxy. This ensures requests
get sent to the proper location.

Due to the age of the request, some parts were no longer relevant.
For instance, the request moved outbound proxy parsing code into
a single method. This is done in a previous commit, so it was not
necessary to do again.

Also, the review request fixed some errors with regards to request
routing for CANCEL and ACK requests. This has also been fixed in
more recent commits.

(closes issue ASTERISK-19677)
reported by Walter Doekes

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

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

13 years agoRevert alloca changes for utils
Kinsey Moore [Wed, 1 Aug 2012 02:25:09 +0000 (02:25 +0000)] 
Revert alloca changes for utils

These changes were a tad overzealous in the utils directory.
Unfortunately, these don't compile with a "make".

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

13 years agoSchedule pokes of registered SIP peers within a given timespan after SIP reload
Matthew Jordan [Tue, 31 Jul 2012 20:54:34 +0000 (20:54 +0000)] 
Schedule pokes of registered SIP peers within a given timespan after SIP reload

With a large number of SIP peers registered, performing a SIP reload causes a
flood of SIP OPTIONS request packets.  These are immediately sent out, and, as
responses come back, can cause peers to be flagged as 'lagged' due to handling
of the many response messages.

This fix prevents this "packet storm" and schedules the pokes for a random
time.  That time varies between 1 ms and the peer's qualify time, or, if
the qualify time is unknown, the global qualifyfreq setting.

The committed patch has some very small modifications to the patch schmidts
wrote for the review.

(closes issue ASTERISK-19154)
Reported by: Nicolo Mazzon
patches:
  issue19154.patch license #6034 uploaded by schmidts

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

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

13 years agoClean up and ensure proper usage of alloca()
Kinsey Moore [Tue, 31 Jul 2012 19:31:42 +0000 (19:31 +0000)] 
Clean up and ensure proper usage of alloca()

This replaces all calls to alloca() with ast_alloca() which calls gcc's
__builtin_alloca() to avoid BSD semantics and removes all NULL checks
on memory allocated via ast_alloca() and ast_strdupa().

(closes issue ASTERISK-20125)
Review: https://reviewboard.asterisk.org/r/2032/
Patch-by: Walter Doekes (wdoekes)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@370642 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoHelp mitigate potential reinvite glare scenarios.
Mark Michelson [Tue, 31 Jul 2012 15:26:47 +0000 (15:26 +0000)] 
Help mitigate potential reinvite glare scenarios.

When Asterisk servers are set up back-to-back, and
direct media is to be used betweeen endpoints, it is
fairly common for the two Asterisk servers to send
direct media reinvites to each other simultaneously.
This results in 491s and ACKs being exchanged between
the servers. While the media eventually gets set up
properly, the problem is that there can be a noticeable
delay for the streams to stabilize.

This patch adds a new directmedia option called "outgoing".
With this set, an immediate direct media reinvite will only
be sent if the call direction is outgoing. For incoming
dialogs, an immediate direct media reinvite will not be sent,
but further "reactionary" direct media reinvites may be sent.

For those who are having some deja vu, that's because this
patch was originally committed to trunk since there is a
new configuration option added. After seeing a bug report
about audio being slow to set up on SIP calls, it became
apparent that this patch would be the best solution for
resolving the issue. The patch is unintrusive and will
have no effect unless the option is explicitly enabled.

(closes issue AST-896)
reported by Thomas Arimont

(closes issue ASTERISK-19857)
reported by Matt Jordan

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

13 years agoRelease B channel allocation on error path in chan_misdn.
Richard Mudgett [Mon, 30 Jul 2012 16:47:19 +0000 (16:47 +0000)] 
Release B channel allocation on error path in chan_misdn.

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

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

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

(issue ASTERISK-20061)
Reported by: Eike Kuiper

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

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

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

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

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

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

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

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

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

(related to issue AST-916)

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

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

gcc (GCC) 4.2.4 has problems casting away constness.

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

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

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

(issue AST-916)
Reported by: Thomas Arimont

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Review: https://reviewboard.asterisk.org/r/2003/
Patch-by: gareth
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@370014 65c4cc65-6c06-0410-ace0-fbb531ad65f3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(closes issue ASTERISK-20007)
Patch-by: Leif Madsen
Reported-by: WIMPy
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@369869 65c4cc65-6c06-0410-ace0-fbb531ad65f3

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

This makes it so that they can be reconfigured remotely.

(closes issue ASTERISK-19910)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(closes issue ASTERISK-19834)
Reported by Marcus Hunger

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

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

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

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

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

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

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

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

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

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

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

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

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

(issue ASTERISK-19992)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

13 years agoTweak CDR change in r369351
Matthew Jordan [Mon, 25 Jun 2012 19:24:55 +0000 (19:24 +0000)] 
Tweak CDR change in r369351

As Tilghman pointed out on review 1996, the check to see if a CDR end time has
been set is sufficient to know whether or not the duration value can be used.
The check-in done for r369351 forgot to include this change.

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

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

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

(closes issue ASTERISK-19892)
reported by Walter Doekes

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

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

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

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

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

(issue ASTERISK-19860)
Reported by: Thomas Arimont

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

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

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

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

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

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

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

13 years agoForgot to svn add this file in my last commit.
Mark Michelson [Mon, 25 Jun 2012 15:50:17 +0000 (15:50 +0000)] 
Forgot to svn add this file in my last commit.

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

13 years agoEliminate embedding of res_adsi.so module.
Mark Michelson [Mon, 25 Jun 2012 15:35:43 +0000 (15:35 +0000)] 
Eliminate embedding of res_adsi.so module.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

13 years agofix compile error (1.8 don't have ast_channel_name macro)
Alexandr Anikin [Wed, 20 Jun 2012 09:15:22 +0000 (09:15 +0000)] 
fix compile error (1.8 don't have ast_channel_name macro)

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

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

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

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

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

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

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

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

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

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

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

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

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

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