10 years agoAdd channel name to a warning to make debugging easier.
Mark Michelson [Wed, 12 Sep 2012 15:21:19 +0000 (15:21 +0000)]
Add channel name to a warning to make debugging easier.

The "autodestruct with owner in place" message is typically
indicative of a channel reference leak. Printing out the name
of the channel in the message may be helpful when trying to
debug the issue.

Merged revisions 372932 from

Merged revisions 372933 from

Merged revisions 372937 from

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

10 years agoFixed r372696 when configured --disable-asteriskssl; properly install libasteriskssl...
David M. Lee [Wed, 12 Sep 2012 14:22:54 +0000 (14:22 +0000)]
Fixed r372696 when configured --disable-asteriskssl; properly install libasteriskssl.dylib on OS X.

I didn't realize that libasteriskssl.c was still compiled, even when you
disable asteriskssl; it simple gets statically linked into asterisk.

Merged revisions 372930 from

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

10 years agochan_local: Switch from using a random 4 digit hex identifier to unique id
Jonathan Rose [Tue, 11 Sep 2012 22:40:02 +0000 (22:40 +0000)]
chan_local: Switch from using a random 4 digit hex identifier to unique id

Changes chan_local channels to use an 8 digit hex identifier generated
atomically and sequentially in order to eliminate the chance of having
multiple channels with the same name during high call volume situations.

(issue ASTERISK-20318)
Reported by: Dan Cropp

Merged revisions 372902 from

Merged revisions 372916 from

Merged revisions 372917 from

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

10 years agoFix inability to shutdown gracefully due to an unending channel reference.
Mark Michelson [Tue, 11 Sep 2012 21:17:53 +0000 (21:17 +0000)]
Fix inability to shutdown gracefully due to an unending channel reference.

message.c makes use of a special message queue channel that exists
in thread storage. This channel never goes away due to the fact that
the taskprocessor used by message.c does not get shut down, meaning
that it never ends the thread that stores the channel.

This patch fixes the problem by shutting down the taskprocessor when
Asterisk is shut down. In addition, the thread storage has a destructor
that will release the channel reference when the taskprocessor is destroyed.

(closes issue AST-937)
Reported by Jason Parker
AST-937.patch uploaded by Mark Michelson (License #5049)
Tested by Jason Parker

Merged revisions 372885 from

Merged revisions 372888 from

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

10 years agoFix bad channel application data reference.
Mark Michelson [Tue, 11 Sep 2012 21:13:26 +0000 (21:13 +0000)]
Fix bad channel application data reference.

When channels get bridged due to an AMI bridge action
or a DTMF attended transfer, the two channels that
get bridged have their application data pointing to
the other channel's name. This means that if one channel
is hung up but the other moves on, it means that the
channel that moves on will have its application data
pointing at freed memory.

(issue ASTERISK-20335)
Reported by: aragon

Merged revisions 372840 from

Merged revisions 372841 from

Merged revisions 372886 from

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

10 years agoCorrects the astsbindir setting when installing the sample asterisk.conf.
David M. Lee [Tue, 11 Sep 2012 18:09:22 +0000 (18:09 +0000)]
Corrects the astsbindir setting when installing the sample asterisk.conf.

(closes issue ASTERISK-20406)

Merged revisions 372863 from

Merged revisions 372864 from

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

10 years agochan_sip: Fix CHANGES and UPGRADE.txt for r372808
Jonathan Rose [Tue, 11 Sep 2012 14:43:41 +0000 (14:43 +0000)]
chan_sip: Fix CHANGES and UPGRADE.txt for r372808

(issue AST-969)
Reported by John Bigelow

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

10 years agochan_sip: Change SIPQualifyPeer to improve initial response time
Jonathan Rose [Mon, 10 Sep 2012 21:15:38 +0000 (21:15 +0000)]
chan_sip: Change SIPQualifyPeer to improve initial response time

Prior to this patch, The acknowledgement wasn't produced until after
executing the sip_poke_peer action actually responsible for
qualifying the peer. Now the response is given immediately once it is
known that a peer will be qualified and a SIPqualifypeerdone event
is issued when the process is finished. Thanks to OEJ for identifying
the problem and helping to come up with a solution.

(issue AST-969)
Reported by John Bigelow

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

10 years agoEnsure iax2 debug output is displayed when expected
Kinsey Moore [Mon, 10 Sep 2012 21:00:22 +0000 (21:00 +0000)]
Ensure iax2 debug output is displayed when expected

When IAX2 debug was changed from iax_showframe to iax_outputframe,
some instances were missed (or added afterward). This was causing
debug output to not be displayed when expected.

(closes issue ASTERISK-20338)
Reported-by: John Covert
Patch-by: John Covert

Merged revisions 372804 from

Merged revisions 372805 from

Merged revisions 372806 from

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

10 years agoDeprecate chan_gtalk, chan_jingle, and res_jabber
Kinsey Moore [Mon, 10 Sep 2012 19:49:30 +0000 (19:49 +0000)]
Deprecate chan_gtalk, chan_jingle, and res_jabber

chan_gtalk, chan_jingle, and res_jabber are now deprecated in favor of
using chan_motif and res_xmpp. They are a feature-equivalent
replacement and are written to be more easily maintainable.

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

Merged revisions 372795 from

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

10 years agores_rtp_asterisk: Eliminate "type-punned pointer" build warning.
David M. Lee [Mon, 10 Sep 2012 19:22:54 +0000 (19:22 +0000)]
res_rtp_asterisk: Eliminate "type-punned pointer" build  warning.

Removes "res_rtp_asterisk.c:706: warning: dereferencing type-punned pointer
will break strict-aliasing rules" warning from the build on 32-bit platforms.

The problem is that 'size' was referenced aliased to both (pj_size_t *) and
(pj_ssize_t *). Now just make a copy of size that is the right type so there
isn't any pointer aliasing happening.

It also adds comments and asserts regarding what looks like an inappropriate
use of pj_sock_sendto, but is actually totally fine.

(closes issue ASTERISK-20368)
Reported by: Shaun Ruffell
Tested by: Michael L. Young
  0001-res_rtp_asterisk-Eliminate-type-punned-pointer-build.patch uploaded by Shaun Ruffell (license 5417)
    slightly modified by David M. Lee.

Merged revisions 372777 from

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

10 years agoapp_meetme: Document that 'p' option will continue in dialplan.
Jonathan Rose [Mon, 10 Sep 2012 18:58:12 +0000 (18:58 +0000)]
app_meetme: Document that 'p' option will continue in dialplan.

(closes issue AST-991)
Reported by John Bigelow

Merged revisions 372765 from

Merged revisions 372767 from

Merged revisions 372768 from

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

10 years agoMasquerade: Retain parkinglot settings made by CHANNEL function.
Jonathan Rose [Mon, 10 Sep 2012 17:41:57 +0000 (17:41 +0000)]
Masquerade: Retain parkinglot settings made by CHANNEL function.

Prior to this patch, the user would have a parkinglot set on a channel that
was parked and when the channel was retrieved, any attempt by that channel
to park would simply use the default. This patch makes parkinglot values
set in this way be retained through the masquerade.

(closes issue AST-990)
Reported by: Nick Huskinson
    masquerade_parkinglot_patch.diff Uploaded by Jonathan Rose (license 6182)

Merged revisions 372736 from

Merged revisions 372737 from

Merged revisions 372754 from

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

10 years agoOnly re-create an SRTP session when needed
Matthew Jordan [Sun, 9 Sep 2012 01:28:31 +0000 (01:28 +0000)]
Only re-create an SRTP session when needed

In r356604, SRTP handling was fixed to accomodate multiple crypto keys in an
SDP offer and the ability to re-create an SRTP session when the crypto keys
changed.  In certain circumstances - most notably when a phone is put on
hold after having been bridged for a significant amount of time - the act
of re-creating the SRTP session causes problems for certain models of phones.
The patch committed in r356604 always re-created the SRTP session regardless
of whether or not the cryptographic keys changed.  Since this is technically
not necessary, this patch modifies the behavior to only re-create the SRTP
session if Asterisk detects that the remote key has changed.  This allows
models of phones that do not handle the SRTP session changing to continue
to work, while also providing the behavior needed for those phones that do
re-negotiate cryptographic keys.

(issue ASTERISK-20194)
Reported by: Nicolo Mazzon
Tested by: Nicolo Mazzon


Merged revisions 372709 from

Merged revisions 372710 from

Merged revisions 372711 from

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

10 years agoAdd OPENSSL_INCLUDE to the CFLAGS for ssl.c and tcptls.c.
David M. Lee [Sat, 8 Sep 2012 06:18:48 +0000 (06:18 +0000)]
Add OPENSSL_INCLUDE to the CFLAGS for ssl.c and tcptls.c.

Without this flag, those files will compile with the system installed
OpenSSL headers (if they exist). This is a real bummer if a different
path was specified using --with-ssl=

(closes issue ASTERISK-20392)
Merged revisions 372682 from
Recorded merge of revisions 372695 from
Recorded merge of revisions 372696 from

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

10 years agoFix MALLOC_DEBUG version of ast_strndup().
Richard Mudgett [Fri, 7 Sep 2012 23:10:05 +0000 (23:10 +0000)]
Fix MALLOC_DEBUG version of ast_strndup().

(closes issue ASTERISK-20349)
Reported by: Brent Eagles

Merged revisions 372655 from

Merged revisions 372656 from

Merged revisions 372657 from

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

10 years agoRemove annoying unconditional debug message from INC/DEC functions.
Richard Mudgett [Fri, 7 Sep 2012 22:10:33 +0000 (22:10 +0000)]
Remove annoying unconditional debug message from INC/DEC functions.

(closes issue AST-1001)
Reported by: Guenther Kelleter

Merged revisions 372628 from

Merged revisions 372629 from

Merged revisions 372630 from

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

10 years agoFix exception path typo in app_queue.c try_calling().
Richard Mudgett [Fri, 7 Sep 2012 21:51:31 +0000 (21:51 +0000)]
Fix exception path typo in app_queue.c try_calling().

(closes issue ASTERISK-20380)
Reported by: Jeremy Pepper
      fix-local-channel-locking.patch (license #6350) patch uploaded by Jeremy Pepper

Merged revisions 372624 from

Merged revisions 372625 from

Merged revisions 372626 from

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

10 years agoFix VoicemailUserEntry event headers ServerEmail and MailCommand reported values.
Richard Mudgett [Fri, 7 Sep 2012 21:30:17 +0000 (21:30 +0000)]
Fix VoicemailUserEntry event headers ServerEmail and MailCommand reported values.

The AMI action VoicemailUsersList VoicemailUserEntry event headers
ServerEmail and MailCommand did not report the global values if they were
not overridden.  The VoicemailUserEntry event header ServerEmail was not
populated with the global value if the voicemail user did not override it.
The VoicemailUserEntry event header MailCommand was never populated with a

* Removed unused struct ast_vm_user member mailcmd[].

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

Merged revisions 372620 from

Merged revisions 372621 from

Merged revisions 372622 from

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

10 years agosvn:ignore cleanup.
David M. Lee [Fri, 7 Sep 2012 21:04:48 +0000 (21:04 +0000)]
svn:ignore cleanup.

* pjproject bin and lib directories should pretty much ignore everything
* Ignore *.o in codecs/ilbc

Merged revisions 372611 from

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

10 years agoFix parallel make for res_asterisk_rtp.
David M. Lee [Fri, 7 Sep 2012 20:53:48 +0000 (20:53 +0000)]
Fix parallel make for res_asterisk_rtp.

Fixes a build regression introduced in r369517 "Add support for ICE/STUN/TURN
in res_rtp_asterisk and chan_sip." [1].


When compiling asterisk in parallel like:
    $ make -j 10

It's possible to get errors like the following:

    .pjlib-util-test-x86_64-unknown-linux-gnu.depend:120: *** missing separator.  Stop.
    make[4]: *** [depend] Error 2
    make[3]: *** [dep] Error 1
    make[2]: *** [/home/sruffell/asterisk-working/res/pjproject/pjnath/lib/libpjnath-x86_64-unknown-linux-gnu.a] Error 2
    make[3]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.

This is because the build system is trying to build each of the libraries in
pjproject in parallel. Now the build will build pjproject in a single job and
link the results into res_asterisk_rtp.

Parallel builds, on one test system, saves ~1.5 minutes from a default Asterisk

Single job:
    $ git clean -fdx >/dev/null && time ( ./configure >/dev/null 2>&1 && make >/dev/null 2>&1 )

    real    2m34.529s
    user    1m41.810s
    sys     0m15.970s

Parallel make:
    $ git clean -fdx >/dev/null && time ( ./configure >/dev/null 2>&1 && make -j10 >/dev/null 2>&1 )

    real    1m2.353s
    user    2m39.120s
    sys     0m18.850s

(closes issue ASTERISK-20362)
Reported by: Shaun Ruffel
    0001-res_asterisk_rtp-Fix-build-error-when-using-parallel.patch uploaded by Shaun Ruffel (License #5417)

Merged revisions 372609 from

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

10 years agoFree ast_str objects when temp file fails to be created in MiniVM
Matthew Jordan [Fri, 7 Sep 2012 02:27:42 +0000 (02:27 +0000)]
Free ast_str objects when temp file fails to be created in MiniVM

The previous commit (r372554) was from a patch that was written before
r366880, which ensured that ast_str objects allocated in the sendmail
routine were free'd in off nominal paths.  This commit frees the
string objects in the off nominal path introduced in r372554.

(issue ASTERISK-17133)
Reported by: Tzafrir Cohen

Merged revisions 372581 from

Merged revisions 372582 from

Merged revisions 372583 from

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

10 years agoFix file descriptor leak and pointer scope issue in MiniVM when sending mail
Matthew Jordan [Fri, 7 Sep 2012 02:16:54 +0000 (02:16 +0000)]
Fix file descriptor leak and pointer scope issue in MiniVM when sending mail

When MiniVM sends an e-mail and it has the volgain option set, it will spawn
sox in a separate process to handle the manipulation of the sound file.  In
doing so, it creates a temporary file.  There are two problems here:
  1) The file descriptor returned from mkstemp is leaked
  2) The finalfilename character pointer points to a buffer that loses scope
     once volgain processing is finished.

Note that in r316265, Russell fixed some gcc warnings by using the return
value of the mkstemp call.  A warning was placed in minivm that the file
descriptor was going to be leaked.  This patch reverts that change, as it
handles the leak and 'uses' the file descriptor returned from mkstemp.

(closes issue ASTERISK-17133)
Reported by: Tzafrir Cohen
  minivm_18501_demo.diff uploaded by Tzafrir Cohen (license #5035)

Merged revisions 372554 from

Merged revisions 372555 from

Merged revisions 372556 from

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

10 years agoUpdate QueueMemberStatus event documentation to include member status values
Matthew Jordan [Thu, 6 Sep 2012 22:21:12 +0000 (22:21 +0000)]
Update QueueMemberStatus event documentation to include member status values

The Status: header in a QueueMemberStatus event (and other QueueMember* events)
is the numeric value of the device state corresponding to that Queue Member.
As those values are not exactly obvious, listing them in the documentation is

Matt Riddell reported this indirectly through the wiki page.

(closes issue ASTERISK-20243)
Reported by: Matt Riddell

Merged revisions 372531 from

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

10 years agoFix loss of MOH on an ISDN channel when parking a call for the second time.
Richard Mudgett [Thu, 6 Sep 2012 22:14:52 +0000 (22:14 +0000)]
Fix loss of MOH on an ISDN channel when parking a call for the second time.

Using the AMI redirect action to take an ISDN call out of a parking lot
causes the MOH state to get confused.  The redirect action does not take
the call off of hold.  When the call is subsequently parked again, the
call no longer hears MOH.

* Make chan_dahdi/sig_pri restart MOH on repeated AST_CONTROL_HOLD frames
if it is already in a state where it is supposed to be sending MOH.  The
MOH may have been stopped by other means.  (Such as killing the generator.)

This simple fix is done rather than making the AMI redirect action post an
AST_CONTROL_UNHOLD unconditionally when it redirects a channel and thus
potentially breaking something with an unexpected AST_CONTROL_UNHOLD.

(closes issue ABE-2873)
      jira_abe_2873_c.3_bier.patch (license #5621) patch uploaded by rmudgett

Merged revisions 372521 from

Merged revisions 372522 from

Merged revisions 372523 from

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

10 years agoEnsure listed queues are not offered for completion
Kinsey Moore [Thu, 6 Sep 2012 21:43:18 +0000 (21:43 +0000)]
Ensure listed queues are not offered for completion

When using tab-completion for the list of queues on "queue reset stats"
or "queue reload {all|members|parameters|rules}", the tab-completion
listing for further queues erroneously listed queues that had already
been added to the list. The tab-completion listing now only displays
queues that are not already in the list.

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

Merged revisions 372517 from

Merged revisions 372518 from

Merged revisions 372519 from

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

10 years agochan_sip: Note change in behavior to how directmediapermit/deny ACL works
Jonathan Rose [Thu, 6 Sep 2012 15:57:51 +0000 (15:57 +0000)]
chan_sip: Note change in behavior to how directmediapermit/deny ACL works

r366547 introduced a change to the directmedia ACL for chan_sip which
modified the behavior significantly. Prior to the patch, this option would
bridge peers with directmedia if a peer's IP address matched its own
directmedia ACL. After that patch, the peer would check the bridged peer's
ACL instead. This change has been present since That patched failed
to document the change in Upgrade.txt, so this patch adds mention of that
change to UPGRADE.txt (UPGRADE-1.8.txt in newer branches)

(issue AST-876)

Merged revisions 372471 from

Merged revisions 372472 from

Merged revisions 372473 from

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

10 years agoEnsure "rules" is tab-completable for "queue show"
Kinsey Moore [Thu, 6 Sep 2012 14:31:44 +0000 (14:31 +0000)]
Ensure "rules" is tab-completable for "queue show"

Previously, tabbing at the end of "queue show" produced a list of
available queues about which information could be shown, but did not
include an alternative command, "rules", to access information about
queue rules. The "rules" item should now be shown in the list of
tab-completable items.

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

Merged revisions 372444 from

Merged revisions 372445 from

Merged revisions 372446 from

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

10 years agoFix DUNDi message routing bug when neighboring peer is unreachable
Matthew Jordan [Thu, 6 Sep 2012 02:52:37 +0000 (02:52 +0000)]
Fix DUNDi message routing bug when neighboring peer is unreachable

Consider a scenario where DUNDi peer PBX1 has two peers that are its neighbors,
PBX2 and PBX3, and where PBX2 and PBX3 are also neighbors.  If the connection
is temporarily broken between PBX1 and PBX3, PBX1 should not include PBX3 in
the list of peers it sends to PBX2 in a DPDISCOVER message, as it cannot send
messages to PBX3.  If it does, PBX2 will assume that PBX3 already received the
message and fail to forward the message on to PBX3 itself.  This patch fixes
this by only including peers in a DPDISCOVER message that are reachable by the
sending node.  This includes all peers with an empty address
(00:00:00:00:00:00) and that are have been reached by a qualify message.

This patch also prevents attempting to qualify a dynamic peer with an empty
address until that peer registers.

The patch uploaded by Peter was modified slightly for this commit.

(closes issue ASTERISK-19309)
Reported by: Peter Racz
  dundi_routing.patch uploaded by Peter Racz (license 6290)


Merged revisions 372417 from

Merged revisions 372418 from

Merged revisions 372419 from

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

10 years agoAllow configured numbers for FollowMe to be greater than 90 characters
Matthew Jordan [Thu, 6 Sep 2012 01:02:17 +0000 (01:02 +0000)]
Allow configured numbers for FollowMe to be greater than 90 characters

When parsing a 'number' defined in followme.conf, FollowMe previously parsed
the number in the configuration file into a buffer with a length of 90
characters.  This can artificially limit some parallel dial scenarios.  This
patch allows for numbers of any length to be defined in the configuration

Note that Clod Patry originally wrote a patch to fix this problem and received
a Ship It! on the JIRA issue.  The patch originally expanded the buffer to 256
characters.  Instead, the patch being committed duplicates the string in the
config file on the stack before parsing it for consumption by the application.

(closes issue ASTERISK-16879)
Reported by: Clod Patry
Tested by: mjordan
  followme_no_limit.diff uploaded by Clod Patry (license #5138)

Slightly modified for this commit.

Merged revisions 372390 from

Merged revisions 372391 from

Merged revisions 372392 from

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

10 years agoRecorded merge of revisions 372373 from
Richard Mudgett [Wed, 5 Sep 2012 19:44:32 +0000 (19:44 +0000)]
Recorded merge of revisions 372373 from

Fix compile error.

Merged revisions 372372 from

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

10 years agoCorrect documentation for ModuleLoad AMI action
Kinsey Moore [Wed, 5 Sep 2012 19:26:07 +0000 (19:26 +0000)]
Correct documentation for ModuleLoad AMI action

The documentation incorrectly listed 'rtp' as a reloadable subsystem
and left out many other reloadable subsystems. It is now also
documented that subsystems may only be reloaded, not loaded or

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

Merged revisions 372354 from

Merged revisions 372358 from

Merged revisions 372365 from

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

10 years agoEnsure counts generated in manager_show_dialplan_helper are correct
Kinsey Moore [Wed, 5 Sep 2012 19:08:15 +0000 (19:08 +0000)]
Ensure counts generated in manager_show_dialplan_helper are correct

When manager_show_dialplan_helper was written, the counter increment
for the total number of contexts was placed with the extensions
increment instead of in the enclosing loop.  This function should
now generate correct context counts.

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

Merged revisions 372337 from

Merged revisions 372338 from

Merged revisions 372340 from

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

10 years agodsp.c: in ast_mf_detect_init incorrectly sets goertzel samples to 160, should be...
Alec L Davis [Wed, 5 Sep 2012 18:56:39 +0000 (18:56 +0000)]
dsp.c: in ast_mf_detect_init incorrectly sets goertzel samples to 160, should be MF_GSIZE

Remove unused goertzel_state_t member 'samples'.


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

10 years agoMultiple revisions 372327-372328
Richard Mudgett [Wed, 5 Sep 2012 17:38:22 +0000 (17:38 +0000)]
Multiple revisions 372327-372328

  r372327 | rmudgett | 2012-09-05 12:33:11 -0500 (Wed, 05 Sep 2012) | 15 lines

  Fix RTP/RTCP read error message confusion.

  The RTP/RTCP read error message can report "fail: success" when the
  read failure is because of an ICE failure.

  * Changed __rtp_recvfrom() to generate a PJ ICE message when ICE fails.

  * Changed RTP/RTCP read error message to indicate an unspecified error
  when errno is zero.

  (closes issue ASTERISK-20288)
  Reported by: Joern Krebs
        jira_asterisk_20288_err_msg.patch (license #5621) patch uploaded by rmudgett (modified)
  r372328 | rmudgett | 2012-09-05 12:35:20 -0500 (Wed, 05 Sep 2012) | 1 line

  Fix coding guidelines issue with a recent commit.

Merged revisions 372327-372328 from

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

10 years agoRe-fix sending unnegotiated payloads during a P2P RTP bridge.
Mark Michelson [Wed, 5 Sep 2012 16:24:19 +0000 (16:24 +0000)]
Re-fix sending unnegotiated payloads during a P2P RTP bridge.

The previous fix still would look in the static_RTP_PT table, which
is inappropriate since we specifically want to find a codec that has
been negotiated.

(closes issue ASTERISK-20296)
reported by NITESH BANSAL
codec_negotiation.patch Uploaded by NITESH BANSAL (License #6418)

Merged revisions 372311 from

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

10 years agoAdd fixes and cleanup to app_alarmreceiver.
Mark Michelson [Wed, 5 Sep 2012 15:56:33 +0000 (15:56 +0000)]
Add fixes and cleanup to app_alarmreceiver.

This work comes courtesy of Pedro Kiefer (License #6407)
The work was posted to review board by Kaloyan Kovachev (License #5506)

(closes issue ASTERISK-16668)
Reported by Grant Crawshay

(closes issue ASTERISK-16694)
Reported by Fred van Lieshout

(closes issue ASTERISK-18417)
Reported by Kostas Liakakis

(closes issue ASTERISK-19435)
Reported by Deon George

(closes issue ASTERISK-20157)
Reported by Pedro Kiefer

(closes issue ASTERISK-20158)
Reported by Pedro Kiefer

(closes issue ASTERISK-20224)
Reported by Pedro Kiefer


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

10 years agoFix memory leaks in app_voicemail when using IMAP storage or realtime config
Matthew Jordan [Wed, 5 Sep 2012 14:44:36 +0000 (14:44 +0000)]
Fix memory leaks in app_voicemail when using IMAP storage or realtime config

This patch fixes two memory leaks:

1. When find_user is called with NULL as its first parameter, the voicemail
   user returned is allocated on the heap.  The inboxcount2 function uses
   find_user in such a fashion when counting new messages, and fails to free
   the resulting voicemail user object.

2. When populate_defaults is called on a voicemail user, it wipes whatever
   flags have been set on the object by copying over the global flags object.
   If the VM_ALLOCED flag was ste on the voicemail user prior to doing so,
   that flag is removed.  This leaks the voicemail user when free_user is later

(closes issue ASTERISK-19155)
Reported by: Filip Jenicek
  asterisk.patch2 uploaded by Filip Jenicek (license 6277)

Patch slightly modified for this commit.


Merged revisions 372268 from

Merged revisions 372288 from

Merged revisions 372289 from

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

10 years agoLDAP Realtime Peers Cannot Register
Darren Sessions [Wed, 5 Sep 2012 14:12:11 +0000 (14:12 +0000)]
LDAP Realtime Peers Cannot Register

Prior to 1.8, it was not necessary for an explicit "type" to be set for an
asterisk LDAP realtime peer. Now the routine find_peer actually checks the
type field during registration and fails to find the peer if it is not set.

The attached patch makes the realtime type equal whatever type is being
searched for if the type is 0 upon return from routine build_peer.

(closes issue ASTERISK-17222)
Reported by: John Covert
Patch by: David Vossel
Tested by: Darren Sessions


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

10 years agoFix breakage caused by last merge. Missing a variable for 11 and trunk.
Michael L. Young [Wed, 5 Sep 2012 12:18:47 +0000 (12:18 +0000)]
Fix breakage caused by last merge.  Missing a variable for 11 and trunk.

Merged revisions 372266 from

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

10 years agodsp.c: Fix multiple issues when no-interdigit delay is present, and fast DTMF 50ms...
Alec L Davis [Wed, 5 Sep 2012 07:43:32 +0000 (07:43 +0000)]
dsp.c: Fix multiple issues when no-interdigit delay is present, and fast DTMF 50ms/50ms

Revert DTMF hit/miss detector to original -r349249 method with some changes, remove unnecessary;
  1. reseting of hits=0, when no signal, only need to set it once.
  2. incrementing of hits, when the hit is the same as the current hit.
  3. setting of lasthit, when it's the same as before.


& 3 spelling mistakes

(closes issue ASTERISK-19610)
alecdavis (license 585)
Reported by: Jean-Philippe Lord
Tested by: alecdavis


Merged revisions 372239 from

Merged revisions 372240 from

Merged revisions 372241 from

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

10 years agodsp.c: optimize goerztzel sample loops, in dtmf_detect, mf_detect and tone_detect
Alec L Davis [Wed, 5 Sep 2012 06:52:30 +0000 (06:52 +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


Merged revisions 372212 from

Merged revisions 372213 from

Merged revisions 372214 from

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

10 years agoFix Incrementing Sequence Number For Retransmitted DTMF End Packets
Michael L. Young [Wed, 5 Sep 2012 04:55:07 +0000 (04:55 +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
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)


Merged revisions 372185 from

Merged revisions 372198 from

Merged revisions 372199 from

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

10 years agoFix memory leak when CEL is successfully written to PostgreSQL database
Matthew Jordan [Wed, 5 Sep 2012 02:26:54 +0000 (02:26 +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
  mem_leak_cel_pgsql.patch uploaded by Etienne Lessard (license #6394)

Merged revisions 372158 from

Merged revisions 372165 from

Merged revisions 372175 from

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

10 years agoapp_queue: PAUSEALL/UNPAUSEALL logged only if interface is a queue member
Jonathan Rose [Tue, 4 Sep 2012 19:30:34 +0000 (19:30 +0000)]
app_queue: PAUSEALL/UNPAUSEALL logged only if interface is a queue member

Adding UPGRADE.txt entry for r372148

(issue AST-946)
Reported by: John Bigelow

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

10 years agoapp_queue: Only log PAUSEALL/UNPAUSEALL when 1+ memebers changed.
Jonathan Rose [Tue, 4 Sep 2012 19:26:02 +0000 (19:26 +0000)]
app_queue: Only log PAUSEALL/UNPAUSEALL when 1+ memebers changed.

Prior to this patch, if pause or unpause was issued on an interface
without specifying a specific queue, a PAUSEALL or UNPAUSEALL event
would be logged in the queue log even if that interface wasn't a
member of any queues. This patch changes it so that these events are
only logged when at least one member of any queue exists for that

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

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

10 years agoFix issue where SIP devices were not notified when custom devices changed to "ringing".
Mark Michelson [Tue, 4 Sep 2012 15:50:30 +0000 (15:50 +0000)]
Fix issue where SIP devices were not notified when custom devices changed to "ringing".

The problem had to do with logic used when checking for what the oldest ringing channel
was. The problem was that if no channel was found, then no notification would be sent.
For custom device states, there is no associated channel, so no notification would get
sent. This fixes the issue by still sending the notification even if no associated
channel can be found for a ringing device state change.

(closes issue ASTERISK-20297)
Reported by Noah Engelberth

Merged revisions 372137 from

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

10 years agoPrevent crash from using app_page with no confbridge.conf file provided.
Mark Michelson [Tue, 4 Sep 2012 15:35:02 +0000 (15:35 +0000)]
Prevent crash from using app_page with no confbridge.conf file provided.

Also prevents other potential crashes when using aco API
with uninitialized aco_info structs.

(closes issue ASTERISK-20305)
reported by Noah Engelberth
Tested by Noah Engelberth


Merged revisions 372135 from

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

10 years agoPrevent local RTP bridges from sending inappropriate formats to participants.
Mark Michelson [Fri, 31 Aug 2012 21:15:07 +0000 (21:15 +0000)]
Prevent local RTP bridges from sending inappropriate formats to participants.

A change for Asterisk 11 caused a check for failure to incorrectly check the return
value. This resulted in the possibility of transmitting media that a party had not
negotiated. If this media happened to be G.729, then this could potentially result
in one-way audio if no G.729 translators are installed.

(closes issue ASTERISK-20296)
reported by NITESH BANSAL

Merged revisions 372118 from

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

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