10 years agoPrevent crash on shutdown due to refcount error on queues container.
Mark Michelson [Thu, 30 Aug 2012 20:54:51 +0000 (20:54 +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.

Merged revisions 372089 from

Merged revisions 372090 from

Merged revisions 372091 from

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

10 years agoHelp prevent ringing queue members from being rung when ringinuse set to no.
Mark Michelson [Thu, 30 Aug 2012 18:39:16 +0000 (18:39 +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
app_queue.c-svn-r370418.patch uploaded by Italo Rossi (license #6409)

Merged revisions 372048 from

Merged revisions 372049 from

Merged revisions 372050 from

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

10 years agoAST-2012-013: Resolve ACL rules being ignored during calls by some IAX2 peers
Matthew Jordan [Thu, 30 Aug 2012 16:25:34 +0000 (16:25 +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

Merged revisions 372028 from

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

10 years agoAST-2012-012: Resolve AMI User Unauthorized Shell Access through ExternalIVR
Matthew Jordan [Thu, 30 Aug 2012 16:14:26 +0000 (16:14 +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

Merged revisions 371998 from

Merged revisions 371999 from

Merged revisions 372000 from

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

10 years agoClean up doxygen warnings
Matthew Jordan [Thu, 30 Aug 2012 14:23:28 +0000 (14:23 +0000)]
Clean up doxygen warnings

This patch fixes numerous doxygen warnings across Asterisk.  It also updates
the makefile to regenerate the doxygen configuration on the local system
before running doxygen to help prevent warnings/errors on the local system.

Much thanks to Andrew for tackling one of the Asterisk janitor projects!

(issue ASTERISK-20259)
Reported by: Andrew Latham
  doxygen_partial.diff uploaded by Andrew Latham (license 5985)
  make_progdocs.diff uploaded by Andrew Latham (license 5985)

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

10 years agoRestore CODING-GUIDELINES to doc folder
Matthew Jordan [Thu, 30 Aug 2012 12:50:03 +0000 (12:50 +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
  CODING-GUIDELINES.diff uploaded by Andrew Latham (license 5985)

Merged revisions 371961 from

Merged revisions 371962 from

Merged revisions 371963 from

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

10 years agoEnsure alignment of in[] field in MD5Context struct.
Richard Mudgett [Wed, 29 Aug 2012 22:48:08 +0000 (22:48 +0000)]
Ensure alignment of in[] field in MD5Context struct.

The struct MD5Context character buffer is cast to an int32_t* without
making sure that said buffer is aligned.

Since the buffer follows two uint32_t's, the chance of 'in' being (32
bits) unaligned is nil in practice.  But adding code to ensure that 'in'
stays aligned costs nothing and removes all doubts about the casts being

(closes issue ASTERISK-20241)
Reported by: Walter Doekes
      tmp.diff (license #5674) patch uploaded by Walter Doekes

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

10 years agoFix compile errors.
Richard Mudgett [Wed, 29 Aug 2012 22:40:18 +0000 (22:40 +0000)]
Fix compile errors.

Merged revisions 371950 from

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

10 years agoapp_meetme: Adding test events for following activity in MeetMe.
Jonathan Rose [Wed, 29 Aug 2012 21:15:24 +0000 (21:15 +0000)]
app_meetme: Adding test events for following activity in MeetMe.

Merged revisions 371919 from

Merged revisions 371920 from

Merged revisions 371921 from

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

10 years agoFix theoretical compile error with HAVE_EPOLL.
Richard Mudgett [Wed, 29 Aug 2012 19:57:24 +0000 (19:57 +0000)]
Fix theoretical compile error with HAVE_EPOLL.

Really shows how much epoll is used since it had not been reported yet.

Merged revisions 371893 from

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

10 years agoInitialize file descriptors for dummy channels to -1.
Richard Mudgett [Wed, 29 Aug 2012 19:48:56 +0000 (19:48 +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
      svn-371580.patch (license #5169) patch uploaded by Gareth Palmer (modified)

Merged revisions 371888 from

Merged revisions 371890 from

Merged revisions 371891 from

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

10 years agochan_sip: Change manager event to confirm SIPqualifypeer into an ack
Jonathan Rose [Wed, 29 Aug 2012 19:38:52 +0000 (19:38 +0000)]
chan_sip: Change manager event to confirm SIPqualifypeer into an ack

Matt Jordan  informed me that it was more appropriate to use an
astman_send_ack here instead of making an event response. I've also
used this opportunity to update UPGRADE.txt to mention this change
in behavior.

(issue AST-969)
Reported by: John Bigelow

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

10 years agoFix hangup cause passthrough regression.
Richard Mudgett [Wed, 29 Aug 2012 18:40:04 +0000 (18:40 +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
      app_dial_hangupcause.patch (license #6421) patch uploaded by Konstantin Suvorov (modified)
Tested by: rmudgett

Merged revisions 371860 from

Merged revisions 371861 from

Merged revisions 371862 from

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

10 years agochan_sip: Send 408 on retransmit timeout instead of 603
Jonathan Rose [Wed, 29 Aug 2012 17:35:32 +0000 (17:35 +0000)]
chan_sip: Send 408 on retransmit timeout instead of 603

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

Merged revisions 371824 from

Merged revisions 371825 from

Merged revisions 371845 from

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

10 years agochan_sip: Send a manager event to confirm SIPqualifypeer completes
Jonathan Rose [Wed, 29 Aug 2012 16:44:48 +0000 (16:44 +0000)]
chan_sip: Send a manager event to confirm SIPqualifypeer completes

Prior to this patch, Issuing SIPqualifypeer either resulted in an
error or if it succeeded, a few \r\ns.  This patch adds a
SIPqualifypeerComplete event issued as a response when the command
is successfully executed.

(closes issue AST-969)
Reported by: John Bigelow

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

10 years agoFix misleading documentation in agents.conf.sample regarding ackcall usage.
Mark Michelson [Mon, 27 Aug 2012 21:51:47 +0000 (21:51 +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

Merged revisions 371787 from

Merged revisions 371789 from

Merged revisions 371790 from

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

10 years agoFix incorrect documentation of the MailboxStatus manager command.
Mark Michelson [Mon, 27 Aug 2012 21:33:02 +0000 (21:33 +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.

Merged revisions 371782 from

Merged revisions 371783 from

Merged revisions 371784 from

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

10 years agosvn:ignore pjproject bin & output for all platforms.
David M. Lee [Mon, 27 Aug 2012 18:16:28 +0000 (18:16 +0000)]
svn:ignore pjproject bin & output for all platforms.

Merged revisions 371753 from

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

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

sharedlastcall defaults to "no" not "yes"

(closes issue AST-979)
reported by Steve Pitts

Merged revisions 371747 from

Merged revisions 371748 from

Merged revisions 371750 from

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

10 years agoFixes ast_rwlock_timed[rd|wr]lock for BSD and variants.
David M. Lee [Mon, 27 Aug 2012 16:56:56 +0000 (16:56 +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
lock.c.patch uploaded by Egor Gorlin (license 6416)

Merged revisions 371718 from

Merged revisions 371720 from

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

10 years agoImplement workaround for BETTER_BACKTRACES crash
Kinsey Moore [Mon, 27 Aug 2012 14:13:44 +0000 (14:13 +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)

Merged revisions 371690 from

Merged revisions 371691 from

Merged revisions 371692 from

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

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

Merged revisions 371662 from

Merged revisions 371663 from

Merged revisions 371664 from

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

10 years agoI forgot to add the unit tests for scoped locks earlier today.
Mark Michelson [Thu, 23 Aug 2012 04:12:32 +0000 (04:12 +0000)]
I forgot to add the unit tests for scoped locks earlier today.

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

10 years agoAdd support for call-id logging to chan_motif.
Joshua Colp [Wed, 22 Aug 2012 15:55:26 +0000 (15:55 +0000)]
Add support for call-id logging to chan_motif.


Merged revisions 371619 from

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

10 years agoFix misuses of asprintf throughout the code.
Mark Michelson [Tue, 21 Aug 2012 21:01:11 +0000 (21:01 +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


Merged revisions 371590 from

Merged revisions 371591 from

Merged revisions 371592 from

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

10 years agoAdd scoped locks to Asterisk.
Mark Michelson [Tue, 21 Aug 2012 19:04:32 +0000 (19:04 +0000)]
Add scoped locks to Asterisk.

With the SCOPED_LOCK macro, you can create a variable
that locks a specific lock and unlocks the lock when the
variable goes out of scope. This is useful for situations
where many breaks, continues, returns, or other interruptions
would require separate unlock statements. With a scoped lock,
these aren't necessary.

There are specializations for mutexes, read locks, write locks,
ao2 locks, ao2 read locks, ao2 write locks, and channel locks.
Each of these is a SCOPED_LOCK at heart though.


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

10 years agoUse thread-local storage to store pj_thread_descs.
Mark Michelson [Mon, 20 Aug 2012 20:19:52 +0000 (20:19 +0000)]
Use thread-local storage to store pj_thread_descs.

pj_thread_register() takes a parameter of type pj_thread_desc.
It was assumed that pj_thread_register either used this item
temporarily or made a copy of it. Unfortunately, all it does is
keep a pointer to the structure in thread-local storage. This
means that if our pj_thread_desc goes out of scope, then pjlib
will be referencing bogus data quite often, most commonly on
operations involving a pj_mutex_t.

In our case, our pj_thread_desc was on the stack and went out
of scope very shortly after registering our thread with pjlib.
With this change, the pj_thread_desc is stored in thread-local
storage so the pointer that pjlib keeps in thread-local storage
will reference legitimate memory.

(closes issue ASTERISK-20237)
reported by Jeremy Pepper
ASTERISK-20237.patch uploaded by Mark Michelson (license #5049)
Tested by Jeremy Pepper

Merged revisions 371571 from

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

10 years agoIgnore recovered zero-length secondary UDPTL packets
Kinsey Moore [Mon, 20 Aug 2012 15:39:15 +0000 (15:39 +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)

Merged revisions 371544 from

Merged revisions 371545 from

Merged revisions 371546 from

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

10 years agoFix for commit r371535
Kinsey Moore [Mon, 20 Aug 2012 15:01:08 +0000 (15:01 +0000)]
Fix for commit r371535

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

10 years agoApply work-around for BETTER_BACKTRACES crash
Kinsey Moore [Mon, 20 Aug 2012 14:45:07 +0000 (14:45 +0000)]
Apply work-around 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.

(issue ASTERISK-20090)

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

10 years agoRemove old debug code from http configuration loading
Matthew Jordan [Sat, 18 Aug 2012 02:09:30 +0000 (02:09 +0000)]
Remove old debug code from http configuration loading

(closes issue ASTERISK-20254)
Reported by: Andrew Latham
  http.diff uploaded by Andrew Latham (license #5985)

Merged revisions 371520 from

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

10 years agoFix typo in JabberSend that looked for '2' instead of '@' in recipient argument
Matthew Jordan [Sat, 18 Aug 2012 02:00:41 +0000 (02:00 +0000)]
Fix typo in JabberSend that looked for '2' instead of '@' in recipient argument

The summary says about all there is to say.

(closes issue ASTERISK-20239)
Reported by: Gregory Porras

Merged revisions 371518 from

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

10 years agoMake the name of the "HangupCauseClear" application consistent
Matthew Jordan [Sat, 18 Aug 2012 01:34:50 +0000 (01:34 +0000)]
Make the name of the "HangupCauseClear" application consistent

The name of the "HangupCauseClear" application is "HangupCauseClear",
not "HangupcauseClear".  The incorrect case of 'cause' caused the
XML documentation to not register properly.

As an aside, this commit message felt very awkward, but I'm not sure
how else to note that "X", which has to be "X", was referred to as "x".

(closes issue ASTERISK-20253)
Reported by: Andrew Latham
  hangupcause.diff uploaded by Andrew Latham (license #5985)

Merged revisions 371516 from

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

10 years agoUpdate module support level on a variety of modules and compiler options
Matthew Jordan [Sat, 18 Aug 2012 01:14:42 +0000 (01:14 +0000)]
Update module support level on a variety of modules and compiler options

Some core support modules and compiler options were no longer tagged with a
module support level.  This patch adds 'core' back to those options.

Note that this patch modifies a few of the patches provided by Andrew Latham
slightly.  res_curl and res_fax are both 'core' supported modules.

(closes issue ASTERISK-20215)
Reported by: Andrew Latham
Tested by: mjordan
  astcanary.diff (license #5985) uploaded by Andrew Latham
  cflagsxml.diff (license #5985) uploaded by Andrew Latham
  curl_fax.diff (license #5985) uploaded by Andrew Latham
  soundsxml.diff (license #5985) uploaded by Andrew Latham

Merged revisions 371507 from

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

10 years agoFix memory leak in XML documentation
Matthew Jordan [Fri, 17 Aug 2012 20:52:43 +0000 (20:52 +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

Merged revisions 371469 from

Merged revisions 371491 from

Merged revisions 371492 from

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

10 years agoWhen a peer registers using WebSocket do not resolve the Contact provided.
Joshua Colp [Fri, 17 Aug 2012 19:50:58 +0000 (19:50 +0000)]
When a peer registers using WebSocket do not resolve the Contact provided.

(closes issue ASTERISK-20238)
Reported by: james.mortensen

Merged revisions 371482 from

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

10 years agoAdd instrumentation to subsystem reloads
Kinsey Moore [Fri, 17 Aug 2012 16:01:32 +0000 (16:01 +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)

Merged revisions 371436 from

Merged revisions 371437 from

Merged revisions 371438 from

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

10 years agortp: Ensure defaults are set without rtp.conf.
Russell Bryant [Fri, 17 Aug 2012 12:42:33 +0000 (12:42 +0000)]
rtp: Ensure defaults are set without rtp.conf.

While building up a new install to test chan_motif, I ran into a failure
due to icesupport being disabled.  This was due to me not having an
rtp.conf.  It was intended in the code for it to be enabled by default,
but it was only applied if rtp.conf existed.

This patch updates res_rtp_asterisk to be consistent in how it handles
defaults.  A few options didn't have their default values set globally,
including icesupport.  They are now set and icesupport is enabled by
default, even if you do not have an rtp.conf.

Merged revisions 371425 from

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

10 years agoAdd some additional H.264 attributes, "max-smbps" and "max-fps", for passthrough.
Joshua Colp [Fri, 17 Aug 2012 12:25:40 +0000 (12:25 +0000)]
Add some additional H.264 attributes, "max-smbps" and "max-fps", for passthrough.

(closes issue ASTERISK-20206)
Reported by: ddkprog
     res_format_attr_h264.c.diff uploaded by ddkprog (license 6008)

Merged revisions 371426 from

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

10 years agoHandle integer over/under-flow in ast_parse_args
Terry Wilson [Thu, 16 Aug 2012 23:08:40 +0000 (23:08 +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

Merged revisions 371392 from

Merged revisions 371398 from

Merged revisions 371399 from

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

10 years agoAdd module reload instrumentation for TEST_FRAMEWORK
Kinsey Moore [Thu, 16 Aug 2012 22:45:33 +0000 (22:45 +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

(issue PQ-1126)

Merged revisions 371393 from

Merged revisions 371394 from

Merged revisions 371395 from

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

10 years agochan_sip: Use pvt outgoing_call variable to set Remote-Party-ID Header
Jonathan Rose [Thu, 16 Aug 2012 19:52:08 +0000 (19:52 +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

Merged revisions 371357 from

Merged revisions 371358 from

Merged revisions 371382 from

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

10 years agochan_sip: Trigger reinvite if the SDP answer is included in the SIP ACK
Jonathan Rose [Thu, 16 Aug 2012 18:28:30 +0000 (18:28 +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

Merged revisions 371337 from

Merged revisions 371338 from

Merged revisions 371355 from

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

10 years agoFix bug where final queue member would not be removed from memory.
Mark Michelson [Wed, 15 Aug 2012 23:35:35 +0000 (23:35 +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

Merged revisions 371306 from

Merged revisions 371313 from

Merged revisions 371324 from

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

10 years agoFix Segfault When Registering SIP Over WebSockets
Michael L. Young [Wed, 15 Aug 2012 20:43:37 +0000 (20:43 +0000)]
Fix Segfault When Registering SIP Over WebSockets

The helper function, get_address_family_filter, in chan_sip for dns resolution
by address family was not recognizing the websockets transport and resulting in
a null pointer being sent to functions in netsock2, in an attempt to determine
if we are bound to ANY address ([::]) or not.

This patch fixes this issue by handling the transport types SIP_TRANSPORT_WS and
SIP_TRANSPORT_WSS which results in a sock address being set properly for use in
determining the address family.

(closes issue ASTERISK-20221)
Reported by: Sven Beisiegel
Tested by: Sven Beisiegel, James Mortensen
asterisk-20221-ws-family-filter.diff uploaded by Michael L. Young (license 5026)

Merged revisions 371295 from

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

10 years agoAvoid unconditional NULLing of mwipvt on relatedpeer on SIP dialog destruction
Kinsey Moore [Wed, 15 Aug 2012 20:18:26 +0000 (20:18 +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

Merged revisions 371270 from

Merged revisions 371271 from

Merged revisions 371272 from

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

10 years agoAdd HANGUPCAUSE information to callee channels
Kinsey Moore [Wed, 15 Aug 2012 17:56:04 +0000 (17:56 +0000)]
Add HANGUPCAUSE information to callee channels

This adds HANGUPCAUSE information to called channels so that hangup
handlers can, in conjunction with predial dialplan execution, access
the hangupcause information when the dialed channel hangs up on a
one-to-one basis instead of a many-to-one basis as with HANGUPCAUSE
usage on the caller channel.

(closes issue ASTERISK-20198)

Merged revisions 371258 from

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

10 years agoAdd test instrumentation
Kinsey Moore [Mon, 13 Aug 2012 20:36:51 +0000 (20:36 +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)

Merged revisions 371201 from

Merged revisions 371203 from

Merged revisions 371227 from

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

10 years agoFix problem where incorrect pointer was checked for nullity.
Mark Michelson [Mon, 13 Aug 2012 20:02:41 +0000 (20:02 +0000)]
Fix problem where incorrect pointer was checked for nullity.

Merged revisions 371198 from

Merged revisions 371199 from

Merged revisions 371200 from

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

10 years agoAdd UPGRADE-11.txt file; update UPGRADE.txt to reflect Asterisk 12
Matthew Jordan [Sat, 11 Aug 2012 19:13:55 +0000 (19:13 +0000)]
Add UPGRADE-11.txt file; update UPGRADE.txt to reflect Asterisk 12

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

10 years agoUpdate CHANGES for private party ID.
Richard Mudgett [Fri, 10 Aug 2012 22:04:32 +0000 (22:04 +0000)]
Update CHANGES for private party ID.

Merged revisions 371146 from

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

10 years agoFix a couple of documentation problems in app_queue.c
Mark Michelson [Fri, 10 Aug 2012 21:35:18 +0000 (21:35 +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

Merged revisions 371141 from

Merged revisions 371142 from

Merged revisions 371143 from

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

10 years agoRemove 10 properties, add 11 properties
Matthew Jordan [Fri, 10 Aug 2012 21:09:47 +0000 (21:09 +0000)]
Remove 10 properties, add 11 properties

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

10 years agoAdd private representation of caller, connected and redirecting party ids.
Richard Mudgett [Fri, 10 Aug 2012 19:54:55 +0000 (19:54 +0000)]
Add private representation of caller, connected and redirecting party ids.

This patch adds the feature "Private representation of caller, connected
and redirecting party ids", as previously discussed with us (DATUS) and

1. Feature motivation

Until now it is quite difficult to modify a party number or name which can
only be seen by exactly one particular instantiated technology channel
subscriber.  One example where a modified party number or name on one
channel is spread over several channels are supplementary services like
call transfer or pickup.  To implement these features Asterisk internally
copies caller and connected ids from one channel to another.  Another
example are extension subscriptions.  The monitoring entities (watchers)
are notified of state changes and - if desired - of party numbers or names
which represent the involving call parties.  One major feature where a
private representation of party names is essentially needed, i.e.  where a
party name shall be exclusively signaled to only one particular user, is a
private user-specific name resolution for party numbers.  A lookup in a
private destination-dependent telephone book shall provide party names
which cannot be seen by any other user at any time.

2. Feature Description

This feature comes along with the implementation of additional private
party id elements for caller id, connected id and redirecting ids inside
Asterisk channels.

The private party id elements can be read or set by the user using
Asterisk dialplan functions.

When a technology channel is initiating a call, receives an internal
connected-line update event, or receives an internal redirecting update
event, it merges the corresponding public id with the private id to create
an effective party id.  The effective party id is then used for protocol

The channel technologies which initially support the private id
representation with this patch are SIP (chan_sip), mISDN (chan_misdn) and
PRI (chan_dahdi).

Once a private name or number on a channel is set and (implicitly) made
valid, it is generally used for any further protocol signaling until it is
rewritten or invalidated.

To simplify the invalidation of private ids all internally generated
connected/redirecting update events and also all connected/redirecting
update events which are generated by technology channels -- receiving
regarding protocol information - automatically trigger the invalidation of
private ids.

If not using the private party id representation feature at all, i.e.  if
using only the 'regular' caller-id, connected and redirecting related
functions, the current characteristic of Asterisk is not affected by the
new extended functionality.

3. User interface Description

To grant access to the private name and number representation from the
Asterisk dialplan, the CALLERID, CONNECTEDLINE and REDIRECTING dialplan
functions are extended by the following data types.  The formats of these
data types are equal to the corresponding regular 'non-private' already
existing data types:

priv-name priv-name-valid priv-name-charset priv-name-pres
priv-num priv-num-valid priv-num-plan priv-num-pres
priv-subaddr priv-subaddr-valid priv-subaddr-type priv-subaddr-odd

priv-name priv-name-valid priv-name-pres priv-name-charset
priv-num priv-num-valid priv-num-pres priv-num-plan
priv-subaddr priv-subaddr-valid priv-subaddr-type priv-subaddr-odd

priv-orig-name priv-orig-name-valid priv-orig-name-pres priv-orig-name-charset
priv-orig-num priv-orig-num-valid priv-orig-num-pres priv-orig-num-plan
priv-orig-subaddr priv-orig-subaddr-valid priv-orig-subaddr-type priv-orig-subaddr-odd

priv-from-name priv-from-name-valid priv-from-name-pres priv-from-name-charset
priv-from-num priv-from-num-valid priv-from-num-pres priv-from-num-plan
priv-from-subaddr priv-from-subaddr-valid priv-from-subaddr-type priv-from-subaddr-odd

priv-to-name priv-to-name-valid priv-to-name-pres priv-to-name-charset
priv-to-num priv-to-num-valid priv-to-num-pres priv-to-num-plan
priv-to-subaddr priv-to-subaddr-valid priv-to-subaddr-type priv-to-subaddr-odd

Reported by: Thomas Arimont


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

10 years agoFix a comparison that was causing presence tests to fail.
Mark Michelson [Fri, 10 Aug 2012 17:56:05 +0000 (17:56 +0000)]
Fix a comparison that was causing presence tests to fail.

A recent change made it so that device state changes that were
not actual "changes" would not get reported to subscribers. The
problem was that this inadvertently blocked presence updates as

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

10 years agoremove ALREADYGONE flag on ooh323 call data by ooh323_indicate
Alexandr Anikin [Fri, 10 Aug 2012 16:49:27 +0000 (16:49 +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

Merged revisions 371089 from

Merged revisions 371090 from

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

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

(close issue ASTERISK-20094)


Merged revisions 371060 from

Merged revisions 371061 from

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

10 years agorestore calling cb functions by timer expire
Alexandr Anikin [Fri, 10 Aug 2012 14:45:33 +0000 (14:45 +0000)]
restore calling cb functions by timer expire
this was broken in rev 369602

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

10 years agoFix pickup extension channel reference error.
Richard Mudgett [Fri, 10 Aug 2012 02:07:55 +0000 (02:07 +0000)]
Fix pickup extension channel reference error.

You cannot unref a pointer and then expect to ref it again later.

* Fix potential NULL pointer deref if the call pickup search fails.

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

10 years agoIntrodue 'ooh323 show gk' cli command that show status of connection
Alexandr Anikin [Thu, 9 Aug 2012 21:35:24 +0000 (21:35 +0000)]
Introdue 'ooh323 show gk' cli command that show status of connection
to H.323 Gatekeeper (GkClient state)

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

10 years agoFix to resend GRQ/RRQ if RRJ (registration reject) is received
Alexandr Anikin [Thu, 9 Aug 2012 19:33:41 +0000 (19:33 +0000)]
Fix to resend GRQ/RRQ if RRJ (registration reject) is received

(close issue ASTERISK-20094)


Merged revisions 371011 from

Merged revisions 371022 from

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

10 years agoUse better libss7 detection test and move libpri compile test.
Richard Mudgett [Thu, 9 Aug 2012 19:22:35 +0000 (19:22 +0000)]
Use better libss7 detection test and move libpri compile test.

Merged revisions 371012 from

Merged revisions 371013 from

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

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

Merged revisions 370988 from

Merged revisions 370989 from

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

10 years agoCorrect documentation for the MeetMe x flag
Kinsey Moore [Thu, 9 Aug 2012 17:40:45 +0000 (17:40 +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

Merged revisions 370985 from

Merged revisions 370986 from

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

10 years agoExtend extension state callbacks to have more information.
Mark Michelson [Thu, 9 Aug 2012 14:52:16 +0000 (14:52 +0000)]
Extend extension state callbacks to have more information.

Quote from review board:

This patch extends the extension state callbacks so that monitoring channels
(as chan_sip) get more information of the devices which are responsible for
an extension state change. The additional information is needed by chan_sip
to present names/numbers of the caller and callee in an early-state SIP
notification. Users of extenstion state callback not interested in the
additional information are not affected by the changes.

Motivation: to present the involved party's name/number in an early-state
nofification (used by the notified device as a pickup offer) one after another
so that a user can see which call he will pick up in an undirected pickup.
Such a pickup offer to a user shall indicate the same call (number/name-A calls
number/name-B) as the call which would be picked up when an undirected pickup
is executed.

Users interested in additional state info must use the new functions
ast_extension_state_add_extended() resp.
ast_extension_state_add_destroy_extended() to register an extended state
callback. When the callback is registered this way, an extra member
device_state_info of struct ast_state_cb_info is passed to the callback in
addition to the aggregated extension state. This container holds an object for
every device of the monitored extension hint consisting of the device name, the
device state and a channel reference to the channel which (presumably) caused
the device state.

The information is used by chan_sip for early-state notifications. When the
state of a device changes and the new state contains AST_EVENT_RINGING, an
early-state notification is sent to the subscribed devices with the
caller/callee names/numbers of the oldest ringing channel of the monitored
extension. The notified user may then invoke a direct pickup, which will pickup
exactly this channel.

Users of the old non-extended callbacks will only be called when the aggregated
state did change (same behavior as before). Users of the extended callback will
also be called when the state is unchanged but does contain AST_EVENT_RINGING.
That could be the case if two channels are ringing at one device and one of
them hangs up, so the aggregated state does not change. This way the monitoring
channel can create a new early-state notification with the now ringing


This contribution comes from Guenther Kelleter

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

10 years agoDUNDi: Add CLI commands DUNDi show cache and DUNDi show hints
Jonathan Rose [Thu, 9 Aug 2012 14:36:37 +0000 (14:36 +0000)]
DUNDi: Add CLI commands DUNDi show cache and DUNDi show hints

(closes issue ASTERISK-18390)
Reported by: Peter Racz
dundi_cli_cache.patch.v2 uploaded by Peter Racz (license #6290)
ASTERISK-18390_dundi_cli_cache_jrose_mods_v2.diff uploaded by Jonathan Rose (license #6182)

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

10 years agoFix Not Unreferencing A Spied Channel
Michael L. Young [Wed, 8 Aug 2012 22:45:15 +0000 (22:45 +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
                                    uploaded by Michael L. Young (license 5026)

Merged revisions 370952 from

Merged revisions 370954 from

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

10 years agoMove a SIP change up to the other SIP changes in the CHANGES file.
Mark Michelson [Wed, 8 Aug 2012 22:41:08 +0000 (22:41 +0000)]
Move a SIP change up to the other SIP changes in the CHANGES file.

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

10 years agoAllow support for early media on AMI originates and call files.
Mark Michelson [Wed, 8 Aug 2012 22:39:40 +0000 (22:39 +0000)]
Allow support for early media on AMI originates and call files.

This is based on the work done by Olle Johansson on review board.

The idea is that the channel specified in an AMI originate or call
file is typically not connected to the outgoing extension until the
channel has been answered. With this change, an EarlyMedia header can
be specified for AMI originates and an early_media option can
be specified in call files. With this option set, once early media is
received on a channel, it will be connected with the outgoing extension.

(closes issue ASTERISK-18644)
Reported by Olle Johansson


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

10 years agoAdd AMI_CLIENT dialplan function
Terry Wilson [Wed, 8 Aug 2012 21:22:08 +0000 (21:22 +0000)]
Add AMI_CLIENT dialplan function

Implementation of a dialplan function for checking manager accounts. Right now
it only returns the number of logged in sessions for a manager account, but
other attributes can be added later.

Patch by: Olle Johansson

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

10 years agoCreate the payload type if it does not exist when setting information based on the...
Joshua Colp [Wed, 8 Aug 2012 20:47:29 +0000 (20:47 +0000)]
Create the payload type if it does not exist when setting information based on the 'm' line. An rtpmap attribute is not required for defined payload numbers.

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

10 years agoConvert sig_analog to use a global callback table.
Richard Mudgett [Wed, 8 Aug 2012 20:32:53 +0000 (20:32 +0000)]
Convert sig_analog to use a global callback table.

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

10 years agoDo not define a cause that doesn't actually exist
Kinsey Moore [Wed, 8 Aug 2012 20:30:52 +0000 (20:30 +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

Merged revisions 370923 from

Merged revisions 370924 from

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

10 years agoFix the analog dial *0 flash-hook of bridged peer feature.
Richard Mudgett [Wed, 8 Aug 2012 20:17:02 +0000 (20:17 +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.

Merged revisions 370900 from

Merged revisions 370901 from

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

10 years agoConvert sig_pri to use a global callback table.
Richard Mudgett [Wed, 8 Aug 2012 00:35:37 +0000 (00:35 +0000)]
Convert sig_pri to use a global callback table.

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

10 years agoConvert sig_ss7 to use a global callback table.
Richard Mudgett [Wed, 8 Aug 2012 00:15:54 +0000 (00:15 +0000)]
Convert sig_ss7 to use a global callback table.

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

10 years agoRewrite of skinny debugging.
Damien Wedhorn [Tue, 7 Aug 2012 21:58:01 +0000 (21:58 +0000)]
Rewrite of skinny debugging.

Debugging messages and associated controls only compiled in if configured with --enable-dev-mode. Debug messages provide more detail (including thread id) and are grouped so the user/dev can limit the type of messages displayed. Functionally no real change to chan_skinny.


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

10 years agoPayload and RTP code are must remain separate since in non-Asterisk format cases...
Joshua Colp [Tue, 7 Aug 2012 19:59:51 +0000 (19:59 +0000)]
Payload and RTP code are must remain separate since in non-Asterisk format cases they differ.

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

10 years agoRecorded merge of revisions 370858 from
Kinsey Moore [Tue, 7 Aug 2012 19:26:21 +0000 (19:26 +0000)]
Recorded merge of revisions 370858 from

Add missing AST_CAUSE_* -> text translations

Merged revisions 370856 from

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

10 years agoAdd missing AST_CAUSE_* -> text translations
Kinsey Moore [Tue, 7 Aug 2012 18:21:56 +0000 (18:21 +0000)]
Add missing AST_CAUSE_* -> text translations

A few of these were missing from the list and are necessary for the Who
Hung Up? functionality.

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

10 years agoFix a bug uncovered by the test suite where the RTP payload number was not getting...
Joshua Colp [Tue, 7 Aug 2012 17:47:52 +0000 (17:47 +0000)]
Fix a bug uncovered by the test suite where the RTP payload number was not getting set.

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

10 years agoReduce memory consumption significantly for users of the RTP engine API by storing...
Joshua Colp [Tue, 7 Aug 2012 13:07:58 +0000 (13:07 +0000)]
Reduce memory consumption significantly for users of the RTP engine API by storing only the payloads present and in use instead of every possible one.


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

10 years agoAdd named callgroups/pickupgroups
Matthew Jordan [Tue, 7 Aug 2012 12:46:36 +0000 (12:46 +0000)]
Add named callgroups/pickupgroups

This patch adds named calledgroups/pickupgroups to Asterisk.  Named groups are
implemented in parallel to the existing numbered callgroup/pickupgroup
implementation.  However, unlike the existing implementation, which is limited
to a maximum of 64 defined groups, the number of defined groups allowed for
named callgroups/pickupgroups is effectively unlimited.

Named groups are configured with the keywords "namedcallgroup" and
"namedpickupgroup".  This corresponds to the numbered group definitions of
"callgroup" and "pickupgroup".  Note that as the implementation of named groups
coexists with the existing numbered implementation, a defined named group of
"4" does not equate to numbered group 4.

Support for the named groups has been added to the SIP, DAHDI, and mISDN channel


Uploaded by:
Guenther Kelleter(license #6372)

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

10 years agoRevert r370820
Matthew Jordan [Mon, 6 Aug 2012 17:04:40 +0000 (17:04 +0000)]
Revert r370820

That change is wrong, wrong, wrong.

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

10 years agoUpdate the MySQL voicemail_data contrib script to reflect Asterisk 11 changes
Matthew Jordan [Mon, 6 Aug 2012 17:00:28 +0000 (17:00 +0000)]
Update the MySQL voicemail_data contrib script to reflect Asterisk 11 changes

All voicemails now have a 'msg_id' included in their metadata.  The ODBC
message storage backend now requires this column; as such, the MySQL contrib
script that creates the voicemail_data table has been updated with the appropriate
column information.

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

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

Thanks to Paul Belanger for pointing this out.

Merged revisions 370797 from

Merged revisions 370798 from

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

10 years agoMultiple revisions 370769-370771
Mark Michelson [Fri, 3 Aug 2012 21:52:57 +0000 (21:52 +0000)]
Multiple revisions 370769-370771

  r370769 | mmichelson | 2012-08-03 16:35:00 -0500 (Fri, 03 Aug 2012) | 24 lines

  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

  r370770 | mmichelson | 2012-08-03 16:39:35 -0500 (Fri, 03 Aug 2012) | 3 lines

  Remove unused variable.
  r370771 | mmichelson | 2012-08-03 16:43:52 -0500 (Fri, 03 Aug 2012) | 5 lines

  Seriously? Another compilation error fixed.

  Somebody beat me.

Merged revisions 370769-370771 from

Merged revisions 370772 from

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

10 years agoFix regression from r370636
Kinsey Moore [Thu, 2 Aug 2012 15:51:17 +0000 (15:51 +0000)]
Fix regression from r370636

When the chan_sip cleanup went in, a typo was included that caused some
subscriptions of non-Polycom phones to be limited to the same
capabilities as Polycom phones. This resolves the failures in the test
suite resulting from this regression.

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

10 years agoFix a possible crash due to passing NULL to ast_variables_dup()
Mark Michelson [Wed, 1 Aug 2012 19:37:03 +0000 (19:37 +0000)]
Fix a possible crash due to passing NULL to ast_variables_dup()

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

10 years agoMake astobj2.h not include linkedlists.h.
Richard Mudgett [Wed, 1 Aug 2012 18:52:29 +0000 (18:52 +0000)]
Make astobj2.h not include linkedlists.h.

Using astobj2 does not require linkedlists.h be included even though
astob2 uses linked lists internally.

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

10 years agoRevert alloca changes for utils
Kinsey Moore [Wed, 1 Aug 2012 02:26:53 +0000 (02:26 +0000)]
Revert alloca changes for utils

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

Merged revisions 370697 from

Merged revisions 370698 from

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

10 years agoAdd headers from SIPAddHeader to outbound REFER requests.
Mark Michelson [Tue, 31 Jul 2012 22:28:16 +0000 (22:28 +0000)]
Add headers from SIPAddHeader to outbound REFER requests.

This is a patch from kkm from review board.

This is useful for adding headers to REFER requests that
emanate from a Transfer() dialplan application call.

This also fixes some uses of the Referred-by header, removing
an extra set of angle brackets.

I've modified the reporter's original patch to not require
any additions to the sip_refer header and to just remove the
referred_by_name from sip_refer since it is no longer needed
or used.

(closes Issue ASTERISK-17639)
reported by Kirill Katsnelson
uploaded by Kirill Katsnelson (license #5845)


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

10 years agoAdd "setvar" option to manager.conf.
Mark Michelson [Tue, 31 Jul 2012 21:21:57 +0000 (21:21 +0000)]
Add "setvar" option to manager.conf.

With this option set, channel variables can be set on
every manager originate. The Variable header can still
be used to set additional channel variables for individual
calls if desired.

This work was completed by Olle Johansson on review board.
I have applied the review feedback and am committing it in
order to get this into trunk before Asterisk 11 is branched.


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

10 years agoSchedule pokes of registered SIP peers within a given timespan after SIP reload
Matthew Jordan [Tue, 31 Jul 2012 21:20:59 +0000 (21:20 +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
  issue19154.patch license #6034 uploaded by schmidts


Merged revisions 370666 from

Merged revisions 370672 from

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

10 years agoMove event cache updates into event processing thread.
Russell Bryant [Tue, 31 Jul 2012 20:33:57 +0000 (20:33 +0000)]
Move event cache updates into event processing thread.

Prior to this patch, updating the device state cache was done by the thread
that originated the event.  It would update the cache and then queue the event
up for another thread to dispatch.  This thread moves the cache updating part
to be in the same thread as event dispatching.

I was working with someone on a heavily loaded Asterisk system and while
reviewing backtraces of the system while it was having problems, I noticed that
there were a lot of threads contending for the lock on the event cache.  By
simply moving this into a single thread, this helped performance *a lot* and
alleviated some deadlock-like symptoms.


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

10 years agoClean up and ensure proper usage of alloca()
Kinsey Moore [Tue, 31 Jul 2012 20:21:43 +0000 (20:21 +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)
Patch-by: Walter Doekes (wdoekes)

Merged revisions 370642 from

Merged revisions 370643 from

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

10 years agoAdd "dialplan remove context" and modify "dialplan add include"
Mark Michelson [Tue, 31 Jul 2012 19:57:21 +0000 (19:57 +0000)]
Add "dialplan remove context" and modify "dialplan add include"

From corruptor's review board posting:

"I've noticed that we can remove particular extension from context with
dialplan remove extension command but in order to remove all extensions
in the context we should delete them on by one. I've created dialplan
remove context command which uses ast_context_destroy to destroy the
whole context with all extensions. I've created to functions for in
pbx_config.c: handle_cli_dialplan_remove_context which actually removes
context and complete_dialplan_remove_context which completes input.
They are based on other similar functions and pretty trivial but I can be
mistaken somewhere.

"I've also modified dialplan add include <context2> into <context1>. I've
made it similar dialplan add extension ... command. It creates <context1>
if it doesn't exist and I've also modified complete_dialplan_add_include
and removed check for existance of <context2> because we can include
non-existent context into another one. (I usually include empty
(non-existent) contexts in advance). Should we raise warning in this case
as it's raised while reading extensions.conf?

"I use those functions with AMI. I think manager commands should be created
in addition to those CLI commands."

I've addressed the latest comments on review board and have made some other
coding guidelines-related cleanup. I also have modified the CHANGES file to
mention these new commands.

(closes issue ASTERISK-19292)
reported by Andrey Solovyev

    uploaded by Andrey Solovyev (license #5214)
    uploaded by Andrey Solovyev (license #5214)


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

10 years agoClean up chan_sip
Kinsey Moore [Tue, 31 Jul 2012 19:10:41 +0000 (19:10 +0000)]
Clean up chan_sip

This clean up was broken out from and addresses the following:
 - struct sip_refer converted to use the stringfields API.
 - sip_{refer|notify}_allocate -> sip_{notify|refer}_alloc to match
   other *alloc functions.
 - Replace get_msg_text, get_msg_text2 and get_pidf_body -> No, not
   get_pidf_msg_text_body3 but get_content, to match add_content.
 - get_body doesn't get the request body, renamed to get_content_line.
 - get_body_by_line doesn't get the body line, and is just a simple if
   test. Moved code inline and removed function.
 - Remove camelCase in struct sip_peer peer state variables,
   onHold -> onhold, inUse -> inuse, inRinging -> ringing.
 - Remove camelCase in struct sip_request rlPart1 -> rlpart1,
   rlPart2 -> rlpart2.
 - Rename instances of pvt->randdata to pvt->nonce because that is what
   it is, no need to update struct sip_pvt because _it already has a
   nonce field_.
 - Removed struct sip_pvt randdata stringfield.
 - Remove useless (and inconsistent) 'header' suffix on variables in
 - Use ast_strdupa on Event header in handle_request_subscribe to avoid
   overly complicated strncmp calls to find the event package.
 - Move get_destination check in handle_request_subscribe to avoid
   duplicate checking for packages that don't need it.
 - Move extension state callback management in handle_request_subscribe
   to avoid duplicate checking for packages that don't need it.
 - Remove duplicate append_date prototype.
 - Rename append_date -> add_date to match other add_xxx functions.
 - Added add_expires helper function, removed code that manually added
   expires header.
 - Remove _header suffix on add_diversion_header (no other header adding
   functions have this).
 - Don't pass req->debug to request handle_request_XXXXX handlers if req
   is also being passed.
 - Don't pass req->ignore to check_auth as req is already being passed.
 - Don't create a subscription in handle_request_subscribe if
   p->expiry == 0.
 - Don't walk of the back of referred_by_name when splitting string in
 - Remove duplicate check for no dialog in handle_incoming when
   sipmethod == SIP_REFER, handle_request_refer checks for that.

Patch-by: gareth

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

10 years agoTweak unit test warning message.
Richard Mudgett [Mon, 30 Jul 2012 23:26:51 +0000 (23:26 +0000)]
Tweak unit test warning message.

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

10 years agoFix some presence-state unit test typos.
Richard Mudgett [Mon, 30 Jul 2012 23:18:13 +0000 (23:18 +0000)]
Fix some presence-state unit test typos.

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