9 years agoRestructure how the FollowMe outgoing channel list is handled.
Richard Mudgett [Wed, 9 May 2012 01:36:07 +0000 (01:36 +0000)]
Restructure how the FollowMe outgoing channel list is handled.

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

9 years agoAddendum to -r365766. Since it is no longer allocated.
Richard Mudgett [Tue, 8 May 2012 22:46:14 +0000 (22:46 +0000)]
Addendum to -r365766.  Since it is no longer allocated.

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

9 years agoMake FollowMe findmeexec() put the list head on the stack instead of mallocing it.
Richard Mudgett [Tue, 8 May 2012 22:25:42 +0000 (22:25 +0000)]
Make FollowMe findmeexec() put the list head on the stack instead of mallocing it.

Why this tiny struct was malloced instead of the 28k struct in the last
change is beyond me.  Just doing my part to help stamp out sillyness.

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

9 years agoAdd interrupt ('I') command to ExternalIVR.
Sean Bright [Tue, 8 May 2012 21:46:21 +0000 (21:46 +0000)]
Add interrupt ('I') command to ExternalIVR.

Sending the 'I' command from an external process will cause the current playlist
to be cleared, including stopping any audio file that is currently playing.  This
is useful when you want to interrupt audio playback only when specific DTMF is
entered by the caller.

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

9 years agoMake FollowMe app_exec() not declare a 28k struct on the stack.
Richard Mudgett [Tue, 8 May 2012 21:41:58 +0000 (21:41 +0000)]
Make FollowMe app_exec() not declare a 28k struct on the stack.

Helping to stamp out stack abuse.

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

9 years agoSimplify findmeexec() parameter passing.
Richard Mudgett [Tue, 8 May 2012 21:15:58 +0000 (21:15 +0000)]
Simplify findmeexec() parameter passing.

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

9 years ago* Fix FollowMe memory leak on error paths in app_exec().
Richard Mudgett [Tue, 8 May 2012 20:32:11 +0000 (20:32 +0000)]
* Fix FollowMe memory leak on error paths in app_exec().

* Fix FollowMe leaving recorded caller name file on error paths in

* Use correct buffer dimension define in struct fm_args.namerecloc[].
This fixes unexpected namerecloc filename length restriction.

Merged revisions 365692 from

Merged revisions 365701 from

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

9 years ago* Fix accept/decline DTMF buffer overwrite in FollowMe.
Richard Mudgett [Tue, 8 May 2012 18:16:04 +0000 (18:16 +0000)]
* Fix accept/decline DTMF buffer overwrite in FollowMe.

* Made use MAX_YN_STRING define to make all accept/decline DTMF buffers
the same size.  Just using 20 isn't good enough when someone didn't get
the memo.

* Fix stupid use of a global variable in FollowMe.  (ynlongest)

* Fix bit field declarations in FollowMe.

Merged revisions 365631 from

Merged revisions 365632 from

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

9 years agoSend more accurate identification information in dialog-info SIP NOTIFYs.
Mark Michelson [Tue, 8 May 2012 15:57:14 +0000 (15:57 +0000)]
Send more accurate identification information in dialog-info SIP NOTIFYs.

This uses the calling channel's caller ID and connected line information
to populate the remote and local identities in the dialog-info NOTIFY when
an extension is ringing.

There is a bit of an oddity here, and that is that we seed the remote target
with the To header of the outbound call rather than the from header. This
is because it was reported that seeding with the from header caused hints
to be broken with certain SNOM devices. A comment has been added to the code
to explain this.

(closes issue ASTERISK-16735)
reported by Maciej Krajewski
    local_remote_hint2.diff uploaded by Mark Michelson (license #5049)
16735_tweak1.diff uploaded by Mark Michelson (license #5049)
Tested by Niccolo Belli

Merged revisions 365574 from

Merged revisions 365575 from

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

9 years agoChange comment to use local channel name designators in features.c
Richard Mudgett [Mon, 7 May 2012 20:08:37 +0000 (20:08 +0000)]
Change comment to use local channel name designators in features.c

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

9 years agoFix channel opaquification slip-up in r365477
Matthew Jordan [Mon, 7 May 2012 18:58:40 +0000 (18:58 +0000)]
Fix channel opaquification slip-up in r365477

Those channels are opaque now...

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

9 years agoFix type punned compiler warning in test_config.c
Richard Mudgett [Mon, 7 May 2012 18:51:44 +0000 (18:51 +0000)]
Fix type punned compiler warning in test_config.c

Merged revisions 365476 from

Merged revisions 365478 from

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

9 years agoSupport VoiceMail d() option when extension does not exist in channel's context
Matthew Jordan [Mon, 7 May 2012 18:42:48 +0000 (18:42 +0000)]
Support VoiceMail d() option when extension does not exist in channel's context

The VoiceMail d([c]) option is documented to accept digits for a new extension
in context <c>, if played during the greeting.  This option works fine if the
extension being redirected to has an extension with the same initial digit in
the channel's current context.  If that digit did not happen to exist in some
extension, a dialplan match would fail and the user would not be redirected.

This patch fixes it such that if the <c> option is used, the extensions are
matched in that context as opposed to the caller's original context.

(closes issue ASTERISK-18243)
Reported by: mjordan
Tested by: mjordan


Merged revisions 365474 from

Merged revisions 365475 from

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

9 years agoFix many issues from the NULL_RETURNS Coverity report
Kinsey Moore [Fri, 4 May 2012 22:17:38 +0000 (22:17 +0000)]
Fix many issues from the NULL_RETURNS Coverity report

Most of the changes here are trivial NULL checks.  There are a couple
optimizations to remove the need to check for NULL and outboundproxy parsing
in chan_sip.c was rewritten to avoid use of strtok.  Additionally, a bug was
found and fixed with the parsing of outboundproxy when "outboundproxy=," was

(Closes issue ASTERISK-19654)

Merged revisions 365398 from

Merged revisions 365399 from

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

9 years agoFix local channel chains optimizing themselves out of a call.
Richard Mudgett [Fri, 4 May 2012 17:38:39 +0000 (17:38 +0000)]
Fix local channel chains optimizing themselves out of a call.

* Made chan_local.c:check_bridge() check the return value of
ast_channel_masquerade().  In long chains of local channels, the
masquerade occasionally fails to get setup because there is another
masquerade already setup on an adjacent local channel in the chain.

* Made the outgoing local channel (the ;2 channel) flush one voice or
video frame per optimization attempt.

* Made sure that the outgoing local channel also does not have any frames
in its queue before the masquerade.

* Made do the masquerade immediately to minimize the chance that the
outgoing channel queue does not get any new frames added and thus
unconditionally flushed.

* Made block indication -1 (Stop tones) event when the local channel is
going to optimize itself out.  When the call is answered, a chain of local
channels pass down a -1 indication for each bridge.  This blizzard of -1
events really slows down the optimization process.

(closes issue ASTERISK-16711)
Reported by: Alec Davis
Tested by: rmudgett, Alec Davis

Merged revisions 365313 from

Merged revisions 365320 from

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

9 years agoFix core FINDING 2, FINDING 3, and FINDING 4 from Coverity's CONSTANT_EXPRESSION_RESU...
Mark Michelson [Fri, 4 May 2012 15:52:30 +0000 (15:52 +0000)]
Fix core FINDING 2, FINDING 3, and FINDING 4 from Coverity's CONSTANT_EXPRESSION_RESULT report.

These three all are in RTP code that attempts to print the number of sequence number cycles
in an RTCP RR report. The code was masking out the upper 16 bits and then shifting the number
right by 16 bits. This led to an all zero result in all cases. The fix is to do the shift without
the bit masking.

(issue ASTERISK-19649)

Merged revisions 365298 from

Merged revisions 365299 from

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

9 years agoUpdate security events unit tests
Michael L. Young [Thu, 3 May 2012 19:36:33 +0000 (19:36 +0000)]
Update security events unit tests

The security events framework API was changed in Asterisk 10 but the unit tests
were not updated at the same time.

This patch does the following:
* Adds two more security events that were added to the API
* Add challenge, received_challenge and received_hash in the inval_password
  security event unit test

(Closes issue ASTERISK-19760)
Reported by: Michael L. Young
Tested by: Michael L. Young
issue-asterisk-19760-trunk.diff uploaded by Michael L. Young (license 5026)


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

9 years agoUpdate documentation references in CHANGES to reflect the correct pages on the wiki.
Sean Bright [Thu, 3 May 2012 18:43:54 +0000 (18:43 +0000)]
Update documentation references in CHANGES to reflect the correct pages on the wiki.

The current CHANGES file refers to doc/ in many places and those files no longer exist.

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

9 years agoFix warning of Coverity Static analysis, change H225ProtocolIdentifier
Alexandr Anikin [Thu, 3 May 2012 15:05:14 +0000 (15:05 +0000)]
Fix warning of Coverity Static analysis, change H225ProtocolIdentifier
from value to pointer per functions that use this.

(close issue ASTERISK-19670)
Reported by: Matt Jordan
  ASTERISK-19670.patch (License #5415)

Merged revisions 365159 from

Merged revisions 365160 from

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

9 years agoAdd IPv6 support to ExternalIVR.
Sean Bright [Thu, 3 May 2012 14:47:58 +0000 (14:47 +0000)]
Add IPv6 support to ExternalIVR.


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

9 years agoFix coverity static analysis warning, allocate full ie structure
Alexandr Anikin [Thu, 3 May 2012 14:35:30 +0000 (14:35 +0000)]
Fix coverity static analysis warning, allocate full ie structure
instead of without data buffer

(close issue ASTERISK-19674)
Reported by: Matt Jordan
  ASTERISK-19674.patch (License #5415)

Merged revisions 365143 from

Merged revisions 365155 from

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

9 years agoMultiple revisions 365006,365068
Terry Wilson [Wed, 2 May 2012 17:43:16 +0000 (17:43 +0000)]
Multiple revisions 365006,365068

  r365006 | twilson | 2012-05-02 10:49:03 -0500 (Wed, 02 May 2012) | 12 lines

  Fix a CEL LINKEDID_END race and local channel linkedids

  This patch has the ;2 channel inherit the linkedid of the ;1 channel and fixes
  the race condition by no longer scanning the channel list for "other" channels
  with the same linkedid. Instead, cel.c has an ao2 container of linkedid strings
  and uses the refcount of the string as a counter of how many channels with the
  linkedid exist. Not only does this eliminate the race condition, but it also
  allows us to look up the linkedid by the hashed key instead of traversing the
  entire channel list.

  r365068 | twilson | 2012-05-02 12:02:39 -0500 (Wed, 02 May 2012) | 11 lines

  Don't leak a ref if out of memory and can't link the linkedid

  If the ao2_link fails, we are most likely out of memory and bad things
  are going to happen. Before those bad things happen, make sure to clean
  up the linkedid references.

  This patch also adds a comment explaining why linkedid can't be passed
  to both local channel allocations and combines two ao2_ref calls into 1.


Merged revisions 365006,365068 from

Merged revisions 365083 from

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

9 years agoBlocked revisions 365014
Michael L. Young [Wed, 2 May 2012 16:17:34 +0000 (16:17 +0000)]
Blocked revisions 365014

Update security events unit tests

The security events framework API was changed in Asterisk 10 but the unit tests
were not updated at the same time.

This patch does the following:
* Adds two more security events that were added to the API
* Add challenge, received_challenge and received_hash in the inval_password
  security event unit test

(issue ASTERISK-19760)
Reported by: Michael L. Young
Tested by: Michael L. Young
issue-asterisk-19760-branch10.diff uploaded by Michael L. Young (license 5026)


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

9 years agoSave the address on which a MESSAGE was received, so it can be used in MESSAGE()
Jason Parker [Wed, 2 May 2012 15:59:43 +0000 (15:59 +0000)]
Save the address on which a MESSAGE was received, so it can be used in MESSAGE()

This is useful in cases where chan_sip may be listening on multiple addresses.

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

9 years agoOnly log a failure to get read/write samples from factories if it didn't happen
Matthew Jordan [Wed, 2 May 2012 02:51:02 +0000 (02:51 +0000)]
Only log a failure to get read/write samples from factories if it didn't happen

In audiohook_read_frame_both, anytime samples are obtained from the read/write
factories a debug statement is logged stating that samples were not obtained
from the factories.  This statement used to only occur if option_debug was
turned on and no samples were obtained; in some refactoring when the
option_debug statement was removed, the "else" clause was removed as well.

This patch makes it so that those debug log statements only occur if the
condition leading up to them actually happened.

Merged revisions 364965 from

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

9 years agoRemove a function that has been marked unused since Asterisk 1.6.0.
Mark Michelson [Tue, 1 May 2012 23:23:44 +0000 (23:23 +0000)]
Remove a function that has been marked unused since Asterisk 1.6.0.

The reason I'm removing this is that Coverity reported a STRAY_SEMICOLON
issue here. Since the function has been unused for so long, I just elected
to remove it altogether.

(closes issue ASTERISK-19660)

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

9 years agoFixed __ao2_ref() validating user_data twice.
Richard Mudgett [Tue, 1 May 2012 23:21:07 +0000 (23:21 +0000)]
Fixed __ao2_ref() validating user_data twice.

(closes issue ASTERISK-19755)
Reported by: Gunther Kelleter
      ao2_ref.patch (license #6372) patch uploaded by Gunther Kelleter

Merged revisions 364902 from

Merged revisions 364903 from

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

9 years agoFix Coverity-reported ARRAY_VS_SINGLETON error.
Mark Michelson [Tue, 1 May 2012 23:11:22 +0000 (23:11 +0000)]
Fix Coverity-reported ARRAY_VS_SINGLETON error.

As it turned out, this wasn't a huge deal. We were calling
ast_app_parse_options() for a set of options of which none
took arguments. The proper thing to do for this case is to
pass NULL for the "args" parameter here. We were instead passing
a seemingly-randomly chosen char * from the function. While this
would never get written to, you can rest assured things would
have gotten bad had new options (which took arguments) been added
to func_volume.

(closes issue ASTERISK-19656)

Merged revisions 364899 from

Merged revisions 364900 from

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

9 years ago* Fix error path resouce leak in local_request().
Richard Mudgett [Tue, 1 May 2012 22:00:11 +0000 (22:00 +0000)]
* Fix error path resouce leak in local_request().

* Restructure local_request() to reduce indentation.

Merged revisions 364840 from

Merged revisions 364845 from

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

9 years agoPrevent a potential crash when using manager hooks.
Jason Parker [Tue, 1 May 2012 21:49:25 +0000 (21:49 +0000)]
Prevent a potential crash when using manager hooks.

Found by me while poking at DPMA-127.

Merged revisions 364841 from

Merged revisions 364842 from

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

9 years agoPlay conf-placeintoconf message to the correct channel
Kinsey Moore [Tue, 1 May 2012 19:10:48 +0000 (19:10 +0000)]
Play conf-placeintoconf message to the correct channel

Correct the code in app_confbridge to play the conf-placeintoconf message to
the marked user entering the bridge instead of to the conference while the
marked user hears silence.

(closes issue ASTERISK-19641)
Reported-by: Mark A Walters

Merged revisions 364786 from

Merged revisions 364787 from

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

9 years agoFix bad check in voicemail functions for ast_inboxcount2_func
Jonathan Rose [Tue, 1 May 2012 18:29:58 +0000 (18:29 +0000)]
Fix bad check in voicemail functions for ast_inboxcount2_func

Check looks for ast_inboxcount_func instead of ast_inboxcount2_func on
ast_inboxcount2_func calls.

(closes issue ASTERISK-19718)
Reported by: Corey Farrell
ast_app_inboxcount2-null-refcheck.patch uploaded by Corey Farrell (license 5909)

Merged revisions 364769 from

Merged revisions 364777 from

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

9 years agoRevert revision 360862.
Mark Michelson [Mon, 30 Apr 2012 19:51:55 +0000 (19:51 +0000)]
Revert revision 360862.

Revision 360862 was intended to improve identities sent in dialog-info
NOTIFY requests. Some users reported that hint became broken once this
was done. It's not clear exactly what part of the patch has caused this
regression, but broken hints are bad.

For now, this revision is being reverted so that the next releases of
Asterisk do not have bad behavior in them. The original reported issue
will have to be fixed differently in the next version of Asterisk.

(issue ASTERISK-16735)

Merged revisions 364706 from

Merged revisions 364707 from

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

9 years agoMerged revisions 364635 via svnmerge from
Mark Murawki [Mon, 30 Apr 2012 17:17:51 +0000 (17:17 +0000)]
Merged revisions 364635 via svnmerge from

  r364635 | markm | 2012-04-30 11:51:12 -0400 (Mon, 30 Apr 2012) | 10 lines

  Sanatize result from bfd_find_nearest_line (BETTER_BACKTRACES)

  bfd_find_nearest_line can possibly set file to null resulting in a crash when strrchr(file) runs

  (closes issue ASTERISK-19815)
  Reported by Mark Murawski
  Tested by Mark Murawski

Merged revisions 364650 from

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

9 years agoFix use freed pointer in return value from call thread
Alexandr Anikin [Mon, 30 Apr 2012 16:59:53 +0000 (16:59 +0000)]
Fix use freed pointer in return value from call thread

(issue ASTERISK-19663)
Reported by: Matt Jordan
  ASTERISK-19663-ooh323.patch (License #5415)

Merged revisions 364649 from

Merged revisions 364651 from

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

9 years agoFix error that caused truncate operations to fail
Matthew Jordan [Sun, 29 Apr 2012 19:50:57 +0000 (19:50 +0000)]
Fix error that caused truncate operations to fail

Another very inappropriate placement of a ')' (again introduced in r362151)
caused the various truncate operations to attempt to truncate the sound file
at a position of '0'.

(issue ASTERISK-19655)
Reported by: Matt Jordan

(issue ASTERISK-19810)
Reported by: colbec

Merged revisions 364578 from

Merged revisions 364579 from

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

9 years agoFix configuring custom sound_leader_has_left in confbridge.conf
Michael L. Young [Sun, 29 Apr 2012 02:23:22 +0000 (02:23 +0000)]
Fix configuring custom sound_leader_has_left in confbridge.conf

The configuration option to specify a custom sound_leader_has_left file for a
conference bridge was not being parsed.  This patch fixes it so that a custom
sound file will now be used.

(closes issue ASTERISK-19771)
Reported by: Pawel Kuzak
Tested by: Pawel Kuzak, Michael L. Young
Patches: leaderhasleft_sound.dpatch uploaded by Pawel Kuzak (license 6380)


Merged revisions 364536 from

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

9 years agoAdd support for lightweight NAT keepalive.
Joshua Colp [Sat, 28 Apr 2012 20:24:45 +0000 (20:24 +0000)]
Add support for lightweight NAT keepalive.

If enabled using the keepalive option in sip.conf a small packet will be sent
at a regular interval to keep the NAT mapping open. This is lightweight as the
remote side does not need to parse and handle a SIP message.

(closes issue AST-783)

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

9 years agomd5: supress some compiler warnings.
Russell Bryant [Sat, 28 Apr 2012 01:33:49 +0000 (01:33 +0000)]
md5: supress some compiler warnings.

md5.c: In function ‘MD5Final’:
md5.c:154:2: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
md5.c:155:2: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]

There is an md5 unit test and it still passes.

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

9 years agores_corosync: Fix build against corosync 2.0.
Russell Bryant [Sat, 28 Apr 2012 01:20:57 +0000 (01:20 +0000)]
res_corosync: Fix build against corosync 2.0.

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

9 years agoapp_minivm: Fix a couple compiler warnings.
Russell Bryant [Sat, 28 Apr 2012 01:10:35 +0000 (01:10 +0000)]
app_minivm: Fix a couple compiler warnings.

The warnings were about argv[0] being used uninitialized, which is correct.
Just remove setting username to this value, since username is set again before
it actually gets used.

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

9 years agofeatures: Add FEATURE() and FEATUREMAP() functions.
Russell Bryant [Sat, 28 Apr 2012 00:58:54 +0000 (00:58 +0000)]
features: Add FEATURE() and FEATUREMAP() functions.

Add two new dialplan functions: FEATURE() and FEATUREMAP().  FEATURE()
lets you set some of the configuration options from the [general] section
of features.conf on a per-channel basis.  FEATUREMAP() lets you customize
the key sequence used to activate built-in features, such as blindxfer,
and automon.  See the built-in documentation for details.


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

9 years agoPreDial - Ability to run dialplan on callee and caller channels before Dial.
Richard Mudgett [Sat, 28 Apr 2012 00:31:47 +0000 (00:31 +0000)]
PreDial - Ability to run dialplan on callee and caller channels before Dial.

Thanks to Mark Murawski for the initial patch and feature definition.

(closes issue ASTERISK-19548)
Reported by: Mark Murawski


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

9 years agoMultiple revisions 364365,364369
Terry Wilson [Fri, 27 Apr 2012 22:54:20 +0000 (22:54 +0000)]
Multiple revisions 364365,364369

  r364365 | twilson | 2012-04-27 17:31:01 -0500 (Fri, 27 Apr 2012) | 11 lines

  Fix ast_parse_arg numeric type range checking and add tests

  ast_parse_arg wasn't checking for strto* parse errors or limiting
  the results by the actual range of the numeric types. This patch fixes
  that and adds unit tests as well.


  Merged revisions 364340 from
  r364369 | twilson | 2012-04-27 17:33:10 -0500 (Fri, 27 Apr 2012) | 2 lines

  Add missing test_config.c

Merged revisions 364365,364369 from

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

9 years agoDon't attempt to make use of the dynamic_exclude_static ACL if DNS lookup fails.
Mark Michelson [Fri, 27 Apr 2012 22:11:01 +0000 (22:11 +0000)]
Don't attempt to make use of the dynamic_exclude_static ACL if DNS lookup fails.

(closes issue ASTERISK-18321)
Reported by Dan Lukes
ASTERISK-18321.patch by Mark Michelson (license #5049)

Merged revisions 364341 from

Merged revisions 364342 from

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

9 years agoPrevent overflow in calculation in ast_tvdiff_ms on 32-bit machines
Matthew Jordan [Fri, 27 Apr 2012 19:30:59 +0000 (19:30 +0000)]
Prevent overflow in calculation in ast_tvdiff_ms on 32-bit machines

The method ast_tvdiff_ms attempts to calculate the difference, in milliseconds,
between two timeval structs, and return the difference in a 64-bit integer.
Unfortunately, it assumes that the long tv_sec/tv_usec members in the timeval
struct are large enough to hold the calculated values before it returns.  On
64-bit machines, this might be the case, as a long may be 64-bits.  On 32-bit
machines, however, a long may be less (32-bits), in which case, the calculation
can overflow.

This overflow caused significant problems in MixMonitor, which uses the method
to determine if an audio factory, which has not presented audio to an audiohook,
is merely late in providing said audio or will never provide audio.  In an
overflow situation, the audiohook would incorrectly determine that an audio
factory that will never provide audio is merely late instead.  This led to
situations where a MixMonitor never recorded any audio.  Note that this happened
most frequently when that MixMonitor was started by the ConfBridge application
itself, or when the MixMonitor was attached to a Local channel.

(issue ASTERISK-19497)
Reported by: Ben Klang
Tested by: Ben Klang
  32-bit-time-overflow-10-2012-04-26.diff (license #6283) by mjordan

(closes issue ASTERISK-19727)
Reported by: Mark Murawski
Tested by: Michael L. Young
  32-bit-time-overflow-2012-04-27.diff (license #6283) by mjordan)

(closes issue ASTERISK-19471)
Reported by: feyfre
Tested by: feyfre

(issue ASTERISK-19426)
Reported by: Johan Wilfer


Merged revisions 364277 from

Merged revisions 364285 from

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

9 years agoAllow SIP pvts involved in Replaces transfers to fall out of reference sooner
Kinsey Moore [Fri, 27 Apr 2012 18:59:36 +0000 (18:59 +0000)]
Allow SIP pvts involved in Replaces transfers to fall out of reference sooner

Unref the SIP pvt stored in the refer structure as soon as it is no longer
needed so that the pvt and associated file descriptors can be freed sooner.
This change makes a reference decrement unnecessary in code that handles SIP
BYE/Also transfers which should not touch the reference anyway.

(Closes issue ASTERISK-19579)
Reported by: Maciej Krajewski
Tested by: Maciej Krajewski

Merged revisions 364258 from

Merged revisions 364259 from

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

9 years agoAllow for reloading SRTP crypto keys within the same SIP dialog
Matthew Jordan [Fri, 27 Apr 2012 14:45:08 +0000 (14:45 +0000)]
Allow for reloading SRTP crypto keys within the same SIP dialog

As a continuation of the patch in r356604, which allowed for the
reloading of SRTP keys in re-INVITE transfer scenarios, this patch
addresses the more common case where a new key is requested within
the context of a current SIP dialog.  This can occur, for example, when
certain phones request a SIP hold.

Previously, once a dialog was associated with an SRTP object, any
subsequent attempt to process crypto keys in any SDP offer - either
the current one or a new offer in a new SIP request - were ignored.  This
patch changes this behavior to only ignore subsequent crypto keys within
the current SDP offer, but allows future SDP offers to change the keys.

(issue ASTERISK-19253)
Reported by: Thomas Arimont
Tested by: Thomas Arimont

Review: https://reviewboard.asteriskorg/r/1885/

Merged revisions 364203 from

Merged revisions 364204 from

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

9 years agofix a wrong behavior of alarm timezones in caldav and icalendar when an alarm doesnt...
Stefan Schmidt [Fri, 27 Apr 2012 12:58:03 +0000 (12:58 +0000)]
fix a wrong behavior of alarm timezones in caldav and icalendar when an alarm doesnt use utc. This change uses the same timezone from the start time.

Merged revisions 364163 from

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

9 years agoUpdate Pickup application documentation. (With feeling this time.)
Richard Mudgett [Thu, 26 Apr 2012 21:11:25 +0000 (21:11 +0000)]
Update Pickup application documentation. (With feeling this time.)

Merged revisions 364108 from

Merged revisions 364109 from

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

9 years agoFix DTMF atxfer running h exten after the wrong bridge ends.
Richard Mudgett [Thu, 26 Apr 2012 20:35:41 +0000 (20:35 +0000)]
Fix DTMF atxfer running h exten after the wrong bridge ends.

When party B does an attended transfer of party A to party C, the
attending bridge between party B and C should not be running an h exten
when the bridge ends.  Running an h exten now sets a softhangup flag to
ensure that an AGI will run in dead AGI mode.

* Set the AST_FLAG_BRIDGE_HANGUP_DONT on the party B channel for the
attending bridge between party B and C.

(closes issue AST-870)

(closes issue ASTERISK-19717)
Reported by: Mario

(closes issue ASTERISK-19633)
Reported by: Andrey Solovyev
      jira_asterisk_19633_v1.8.patch (license #5621) patch uploaded by rmudgett
Tested by: rmudgett, Andrey Solovyev, Mario

Merged revisions 364060 from

Merged revisions 364065 from

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

9 years agoAdd more constness to the end_buf pointer in the netconsole
Terry Wilson [Thu, 26 Apr 2012 19:33:49 +0000 (19:33 +0000)]
Add more constness to the end_buf pointer in the netconsole

issue ASTERISK-18308

Merged revisions 364046 from

Merged revisions 364047 from

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

9 years agoCode formatting fixes.
Olle Johansson [Thu, 26 Apr 2012 13:59:11 +0000 (13:59 +0000)]
Code formatting fixes.

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

9 years agoFix reference leaks involving SIP Replaces transfers
Kinsey Moore [Thu, 26 Apr 2012 13:31:16 +0000 (13:31 +0000)]
Fix reference leaks involving SIP Replaces transfers

The reference held for SIP blind transfers using the Replaces header in an
INVITE was never freed on success and also failed to be freed in some error
conditions.  This caused a file descriptor leak since the RTP structures in use
at the time of the transfer were never freed.  This reference leak and another
relating to subscriptions in the same code path have now been corrected.

(closes issue ASTERISK-19579)

Merged revisions 363986 from

Merged revisions 363987 from

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

9 years agochan_sip: [general] maxforwards, not checked for a value greater than 255
Alec L Davis [Thu, 26 Apr 2012 09:48:55 +0000 (09:48 +0000)]
chan_sip: [general] maxforwards, not checked for a value greater than 255

The peer maxforwards is checked for both '< 1' and '> 255',
but the default 'maxforwards' in the [general] section is only checked for '< 1'

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


Merged revisions 363934 from

Merged revisions 363935 from

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

9 years agoUpdate Pickup application documentation. (Even better)
Richard Mudgett [Thu, 26 Apr 2012 03:12:44 +0000 (03:12 +0000)]
Update Pickup application documentation. (Even better)

Merged revisions 363875 from

Merged revisions 363876 from

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

9 years ago* Put more information in pickup_exec() LOG_NOTICE.
Richard Mudgett [Thu, 26 Apr 2012 01:29:09 +0000 (01:29 +0000)]
* Put more information in pickup_exec() LOG_NOTICE.

* Delay duplicating a string on the stack in pickup_exec().

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

9 years agoUpdate Pickup application documentation.
Richard Mudgett [Wed, 25 Apr 2012 23:00:26 +0000 (23:00 +0000)]
Update Pickup application documentation.

Merged revisions 363788 from

Merged revisions 363789 from

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

9 years agoMake DAHDISendCallreroutingFacility wait 5 seconds for a reply before disconnecting...
Richard Mudgett [Wed, 25 Apr 2012 20:51:58 +0000 (20:51 +0000)]
Make DAHDISendCallreroutingFacility wait 5 seconds for a reply before disconnecting the call.

Some switches may not handle the call-deflection/call-rerouting message if
the call is disconnected too soon after being sent.  Asteisk was not
waiting for any reply before disconnecting the call.

* Added a 5 second delay before disconnecting the call to wait for a
potential response if the peer does not disconnect first.

(closes issue ASTERISK-19708)
Reported by: mehdi Shirazi
      jira_asterisk_19708_v1.8.patch (license #5621) patch uploaded by rmudgett
Tested by: rmudgett

Merged revisions 363730 from

Merged revisions 363734 from

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

9 years agoClear ISDN channel resetting state if the peer continues to use it.
Richard Mudgett [Wed, 25 Apr 2012 19:55:12 +0000 (19:55 +0000)]
Clear ISDN channel resetting state if the peer continues to use it.

Some ISDN switches occasionally fail to send a RESTART ACKNOWLEDGE in
response to a RESTART request.

* Made the second SETUP received after sending a RESTART request clear the
channel resetting state as if the peer had sent the expected RESTART
ACKNOWLEDGE before continuing to process the SETUP.  The peer may not be
sending the expected RESTART ACKNOWLEDGE.

(issue ASTERISK-19608)
(issue AST-844)
(issue AST-815)
      jira_ast_815_v1.8.patch (license #5621) patch uploaded by rmudgett (modified)

Merged revisions 363687 from

Merged revisions 363688 from

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

9 years agoAdd documentation
Olle Johansson [Wed, 25 Apr 2012 13:57:01 +0000 (13:57 +0000)]
Add documentation

Thanks Tilghman!

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

9 years agoFormatting changes only
Olle Johansson [Wed, 25 Apr 2012 11:18:14 +0000 (11:18 +0000)]
Formatting changes only

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

9 years agoUse the DEFINED value for musicclass length.
Olle Johansson [Wed, 25 Apr 2012 10:49:13 +0000 (10:49 +0000)]
Use the DEFINED value for musicclass length.

For some reason, features.c has it's own definition. Should propably be fixed too.

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

9 years agoMake it possible to change the minimum DTMF duration in asterisk.conf
Olle Johansson [Wed, 25 Apr 2012 09:32:21 +0000 (09:32 +0000)]
Make it possible to change the minimum DTMF duration in asterisk.conf

Asterisk has a setting for the minimum allowed DTMF. If we get shorter
DTMF tones, these will be changed to the minimum on the outbound call

(closes issue ASTERISK-19772)

Reported by: oej
Tested by: oej
Patches by: oej

Thanks to the reviewers.

1.8 branch for this patch: agave-dtmf-duration-asterisk-conf-1.8

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

9 years agoFormatting fixes
Olle Johansson [Wed, 25 Apr 2012 08:39:01 +0000 (08:39 +0000)]
Formatting fixes

Developer guidelines are important.

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

9 years agoFormatting fixes
Olle Johansson [Wed, 25 Apr 2012 08:02:52 +0000 (08:02 +0000)]
Formatting fixes

Found a small amount of curly brackets in my hotel room here in Denmark.
I hereby donate them to the Asterisk project.

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

9 years agoFix recalled party B feature flags for a failed DTMF atxfer.
Richard Mudgett [Wed, 25 Apr 2012 01:26:44 +0000 (01:26 +0000)]
Fix recalled party B feature flags for a failed DTMF atxfer.

1) B calls A with Dial option T
2) B DTMF atxfer to C
3) B hangs up
4) C does not answer
5) B is called back
6) B answers
7) B cannot initiate transfers anymore

* Add dial features datastore to recalled party B channel that is a copy
of the original party B channel's dial features datastore.

* Extracted add_features_datastore() from add_features_datastores().

* Renamed struct ast_dial_features features_caller and features_callee
members to my_features and peer_features respectively.  These better names
eliminate the need for some explanatory comments.

* Simplified code accessing the struct ast_dial_features datastore.

(closes issue ASTERISK-19383)
Reported by: lgfsantos

Merged revisions 363428 from

Merged revisions 363429 from

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

9 years agoHangup affected channel in error paths of bridge_call_thread().
Richard Mudgett [Wed, 25 Apr 2012 00:03:52 +0000 (00:03 +0000)]
Hangup affected channel in error paths of bridge_call_thread().

Merged revisions 363375 from

Merged revisions 363376 from

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

9 years agoOpenBSD doesn't have rawmemchr, use strchr
Terry Wilson [Tue, 24 Apr 2012 17:52:26 +0000 (17:52 +0000)]
OpenBSD doesn't have rawmemchr, use strchr

(closes issue ASTERISK-19758)
Reported by: Barry Miller
Tested by: Terry Wilson
  362758-diff uploaded by Barry Miller (license 5434)

Merged revisions 362868 from

Merged revisions 362869 from

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

9 years agoMake app_dial and app_queue use new macro and gosub calls.
Richard Mudgett [Mon, 23 Apr 2012 17:05:55 +0000 (17:05 +0000)]
Make app_dial and app_queue use new macro and gosub calls.

* Simplify some code in app_dial and app_queue by calling
ast_app_exec_macro() and ast_app_exec_sub().

* Fix minor locking issue in app_dial for post-answer macro/gosub

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

9 years agoOn some platforms, O_RDONLY is not a flag to be checked, but merely the absence of...
Tilghman Lesher [Mon, 23 Apr 2012 16:08:33 +0000 (16:08 +0000)]
On some platforms, O_RDONLY is not a flag to be checked, but merely the absence of O_RDWR and O_WRONLY.

The POSIX specification does not mandate how these 3 flags must be specified,
only that one of the three must be specified in every call.

Merged revisions 363209 from

Merged revisions 363212 from

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

9 years agoAST-2012-004: Fix an error that allows AMI users to run shell commands sans authoriza...
Jonathan Rose [Mon, 23 Apr 2012 14:48:22 +0000 (14:48 +0000)]
AST-2012-004: Fix an error that allows AMI users to run shell commands sans authorization.

As detailed in the advisory, AMI users without write authorization for SYSTEM class AMI
actions were able to run system commands by going through other AMI commands which did
not require that authorization. Specifically, GetVar and Status allowed users to do this
by setting their variable/s options to the SHELL or EVAL functions.
Also, within 1.8, 10, and trunk there was a similar flaw with the Originate action that
allowed users with originate permission to run MixMonitor and supply a shell command
in the Data argument. That flaw is fixed in those versions of this patch.

(closes issue ASTERISK-17465)
Reported By: David Woolley
162_ami_readfunc_security_r2.diff uploaded by jrose (license 6182)
18_ami_readfunc_security_r2.diff uploaded by jrose (license 6182)
10_ami_readfunc_security_r2.diff uploaded by jrose (license 6182)

Merged revisions 363117 from

Merged revisions 363141 from

Merged revisions 363156 from

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

9 years agoAST-2012-006: Fix crash in UPDATE handling when no channel owner exists
Matthew Jordan [Mon, 23 Apr 2012 14:10:19 +0000 (14:10 +0000)]
AST-2012-006: Fix crash in UPDATE handling when no channel owner exists

If Asterisk receives a SIP UPDATE request after a call has been terminated and
the channel has been destroyed but before the SIP dialog has been destroyed, a
condition exists where a connected line update would be attempted on a
non-existing channel.  This would cause Asterisk to crash.  The patch resolves
this by first ensuring that the SIP dialog has an owning channel before
attempting a connected line update.  If an UPDATE request is received and no
channel is associated with the dialog, a 481 response is sent.

(closes issue ASTERISK-19770)
Reported by: Thomas Arimont
Tested by: Matt Jordan
  ASTERISK-19278-2012-04-16.diff uploaded by Matt Jordan (license 6283)

Merged revisions 363106 from

Merged revisions 363107 from

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

9 years agoAST-2012-005: Fix remotely exploitable heap overflow in keypad button handling
Matthew Jordan [Mon, 23 Apr 2012 13:53:24 +0000 (13:53 +0000)]
AST-2012-005: Fix remotely exploitable heap overflow in keypad button handling

When handling a keypad button message event, the received digit is placed into
a fixed length buffer that acts as a queue.  When a new message event is
received, the length of that buffer is not checked before placing the new digit
on the end of the queue.  The situation exists where sufficient keypad button
message events would occur that would cause the buffer to be overrun.  This
patch explicitly checks that there is sufficient room in the buffer before
appending a new digit.

(closes issue ASTERISK-19592)
Reported by: Russell Bryant

Merged revisions 363100 from

Merged revisions 363102 from

Merged revisions 363103 from

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

9 years agores_corosync: Recover if corosync gets restarted.
Russell Bryant [Sat, 21 Apr 2012 11:45:28 +0000 (11:45 +0000)]
res_corosync: Recover if corosync gets restarted.

If corosync gets restarted while Asterisk is running, automatically recover.

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

9 years agores_corosync: reimplement "corosync show members" command.
Russell Bryant [Sat, 21 Apr 2012 11:40:42 +0000 (11:40 +0000)]
res_corosync: reimplement "corosync show members" command.

Reimplement the "corosync show members" CLI command using a CPG iterator
instead of the cpg_membership_get API call.  This will also show all
CPG members, including those in groups other than 'asterisk', which may
be useful at some point for debugging purposes.

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

9 years agoUpdate app_dial M and U option GOTO return value documentation.
Richard Mudgett [Sat, 21 Apr 2012 01:46:34 +0000 (01:46 +0000)]
Update app_dial M and U option GOTO return value documentation.

Merged revisions 362997 from

Merged revisions 362998 from

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

9 years agoFix connected-line/redirecting interception gosubs executing more than intended.
Richard Mudgett [Fri, 20 Apr 2012 23:29:56 +0000 (23:29 +0000)]
Fix connected-line/redirecting interception gosubs executing more than intended.

* Redo ast_app_run_sub()/ast_app_exec_sub() to use a known return point so
execution will stop after the routine returns there.

* Create ast_app_exec_macro() and ast_app_exec_sub() to run the macro and
gosub application respectively with the parameter string already created.

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

9 years agoMove debug message in ast_rtp_instance_early_bridge_make_compatible().
Richard Mudgett [Fri, 20 Apr 2012 16:57:09 +0000 (16:57 +0000)]
Move debug message in ast_rtp_instance_early_bridge_make_compatible().

Move debug message in ast_rtp_instance_early_bridge_make_compatible() to
be output when what it states has actually happened.

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

9 years agoAdd missing payload type to events API
Michael L. Young [Fri, 20 Apr 2012 16:50:38 +0000 (16:50 +0000)]
Add missing payload type to events API

The Security Events Framework API was changed while adding the generation of
security events in chan_sip.  A payload type and name was missed from being
added to struct ie_maps.

(closes issue ASTERISK-19759)
Reported by: Michael L. Young
    issue-asterisk-19759.diff uploaded by Michael L. Young (license 5026)

Merged revisions 362918 from

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

9 years agoUse ast_channel_lock_both() where it was inlined before.
Richard Mudgett [Fri, 20 Apr 2012 16:23:01 +0000 (16:23 +0000)]
Use ast_channel_lock_both() where it was inlined before.

The CHANNEL_DEADLOCK_AVOIDANCE() feature of preserving where the channel
lock was originally obtained is overkill where ast_channel_lock_both() was

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

9 years ago* Add more information to some messages in __ast_pbx_run().
Richard Mudgett [Fri, 20 Apr 2012 16:04:37 +0000 (16:04 +0000)]
* Add more information to some messages in __ast_pbx_run().

* Simplify some dialplan priority setting code in ast_explicit_goto()
because of opaquification.

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

9 years agoDocument Speech* apps hangup on failure and suggest TryExec
Terry Wilson [Fri, 20 Apr 2012 14:50:42 +0000 (14:50 +0000)]
Document Speech* apps hangup on failure and suggest TryExec

The Speech API apps return -1 on failure, which will hang up the channel. This
may not be desirable behavior for some, but it isn't something that can be
changed without breaking people's dialplans or writing an option to all of the
Speech apps that does what TryExec already does. This patch documents the
hangup behavior of the apps, and suggests TryExec as the solution.

(closes issue AST-813)

Merged revisions 362815 from

Merged revisions 362816 from

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

9 years agoAdd original party id and reason support.
Richard Mudgett [Fri, 20 Apr 2012 00:57:13 +0000 (00:57 +0000)]
Add original party id and reason support.

ISDN ETSI PTP and Q.SIG (And SS7 in future) have support for reporting who
was the original redirecting party of a call.

* Added support for the original redirecting party and reason to the
REDIRECTING function and the system core as well as to the stubbed
locations in sig_pri.c.


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

9 years agoFix documentation for ${VERSION(ASTERISK_VERSION_NUM)}.
Walter Doekes [Thu, 19 Apr 2012 22:01:20 +0000 (22:01 +0000)]
Fix documentation for ${VERSION(ASTERISK_VERSION_NUM)}.

Merged revisions 362729 from

Merged revisions 362730 from

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

9 years agoAdd leading and trailing backslashes
Michael L. Young [Thu, 19 Apr 2012 21:14:35 +0000 (21:14 +0000)]
Add leading and trailing backslashes

A couple of unit tests did not have have leading or trailing backslashes when
setting their test category resulting in a warning message being displayed.
Added the backslash where needed.

Merged revisions 362680 from

Merged revisions 362681 from

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

9 years agoUpdate membermacro and membergosub documentation in queues.conf.sample.
Richard Mudgett [Thu, 19 Apr 2012 21:01:07 +0000 (21:01 +0000)]
Update membermacro and membergosub documentation in queues.conf.sample.

Merged revisions 362677 from

Merged revisions 362678 from

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

9 years agoConvert some strncpys to ast_copy_string
Terry Wilson [Thu, 19 Apr 2012 19:05:17 +0000 (19:05 +0000)]
Convert some strncpys to ast_copy_string


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

9 years agoPrevent a crash in ExternalIVR when the 'S' command is sent first.
Sean Bright [Thu, 19 Apr 2012 16:10:04 +0000 (16:10 +0000)]
Prevent a crash in ExternalIVR when the 'S' command is sent first.

If the first command sent from an ExternalIVR client is an 'S' command, we were
blindly removing the first element from the play list and deferencing it, even
if it was NULL.  This corrects that and also locks appropriately in one place.

(issue ASTERISK-17889)
Reported by: Chris Maciejewski

Merged revisions 362586 from

Merged revisions 362587 from

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

9 years agoHandle multiple commands per connection via netconsole
Terry Wilson [Thu, 19 Apr 2012 14:35:56 +0000 (14:35 +0000)]
Handle multiple commands per connection via netconsole

Asterisk would accept multiple NULL-delimited CLI commands via the
netconsole socket, but would occasionally miss a command due to the
command not being completely read into the buffer. This patch ensures
that any partial commands get moved to the front of the read buffer,
appended to, and properly sent.

(closes issue ASTERISK-18308)

Merged revisions 362536 from

Merged revisions 362537 from

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

9 years agoFix a variety of potential buffer overflows
Matthew Jordan [Thu, 19 Apr 2012 02:40:55 +0000 (02:40 +0000)]
Fix a variety of potential buffer overflows

* chan_mobile: Fixed an overrun where the cind_state buffer (an integer array
  of size 16) would be overrun due to improper bounds checking. At worst, the
  buffer can be overrun by a total of 48 bytes (assuming 4-byte integers),
  which would still leave it within the allocated memory of struct hfp.  This
  would corrupt other elements in that struct but not necessarily cause any
  further issues.

* app_sms: The array imsg is of size 250, while the array (ud) that the data
  is copied into is of size 160.  If the size of the inbound message is
  greater then 160, up to 90 bytes could be overrun in ud.  This would corrupt
  the user data header (array udh) adjacent to ud.

* chan_unistim: A number of invalid memmoves are corrected.  These would move
  data (which may or may not be valid) into the ends of these buffers.

* asterisk: ast_console_toggle_loglevel does not check that the console log
  level being set is less then or equal to the allowed log levels of 32.

* format_pref: In ast_codec_pref_prepend, if any occurrence of the specified
  codec is not found, the value used to index into the array pref->order
  would be one greater then the maximum size of the array.

* jitterbuf: If the element being placed into the jitter buffer lands in the
  last available slot in the jitter history buffer, the insertion sort attempts
  to move the last entry in the buffer into one slot past the maximum length
  of the buffer.  Note that this occurred for both the min and max jitter
  history buffers.

* tdd: If a read from fsk_serial returns a character that is greater then 32,
  an attempt to read past one of the statically defined arrays containing the
  values that character maps to would occur.

* localtime: struct ast_time and tm are not the same size - ast_time is larger,
  although it contains the elements of tm within it in the same layout.  Hence,
  when using memcpy to copy the contents of tm into ast_time, the size of tm
  should be used, as opposed to the size of ast_time.

* extconf: this treats ast_timing's minmask array as if it had a length of 48,
  when it has defined the size of the array as 24.  pbx.h defines minmask as
  having a size of 48.

(issue ASTERISK-19668)
Reported by: Matt Jordan

Merged revisions 362485 from

Merged revisions 362496 from

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

9 years agoFix building security events test
Michael L. Young [Wed, 18 Apr 2012 17:03:16 +0000 (17:03 +0000)]
Fix building security events test

The Security Events Framework API changed in trunk to support IPv6.  This broke
the building of the security events test which was based around IPv4.  This
patches fixes the build by changing the test to conform to the new changes.

(related to issue ASTERISK-19447)


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

9 years agoAdd ability to ignore layer 1 alarms for BRI PTMP lines.
Richard Mudgett [Wed, 18 Apr 2012 16:41:17 +0000 (16:41 +0000)]
Add ability to ignore layer 1 alarms for BRI PTMP lines.

Several telcos bring the BRI PTMP layer 1 down when the line is idle.
When layer 1 goes down, Asterisk cannot make outgoing calls.  Incoming
calls could fail as well because the alarm processing is handled by a
different code path than the Q.931 messages.

* Add the layer1_presence configuration option to ignore layer 1 alarms
when the telco brings layer 1 down.  This option can be configured by span
while the similar DAHDI driver teignorered=1 option is system wide.  This
option unlike layer2_persistence does not require libpri v1.4.13 or newer.

Related to JIRA AST-598


Merged revisions 362428 from

Merged revisions 362429 from

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

9 years agoHandle case where an unknown format is used to get the preferred codec size
Matthew Jordan [Tue, 17 Apr 2012 21:23:25 +0000 (21:23 +0000)]
Handle case where an unknown format is used to get the preferred codec size

In ast_codec_pref_getsize, if an unknown format is passed to the method,
no preferred codec will be selected and a negative number will be used to
index into the format list.  The method now logs an unknown format as a
warning, and returns an empty format list.

(issue ASTERISK-19655)
Reported by: Matt Jordan


Merged revisions 362377 from

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

9 years agoFix places in resources where a negative return value could impact execution
Matthew Jordan [Tue, 17 Apr 2012 21:14:49 +0000 (21:14 +0000)]
Fix places in resources where a negative return value could impact execution

This patch addresses a number of modules in resources that did not handle the
negative return value from function calls adequately.  This includes:

* res_agi.c: if the result of the read function is a negative number,
indicating some failure, the result would instead be treated as the number
of bytes read.  This patch now treats negative results in the same manner
as an end of file condition, with the exception that it also logs the
error code indicated by the return.

* res_musiconhold.c: if spawn_mp3 fails to assign a file descriptor to srcfd,
and instead assigns a negative value, that file descriptor could later be
passed to functions that require a valid file descriptor.  If spawn_mp3 fails,
we now immediately retry instead of continuing in the logic.

* res_rtp_asterisk.c: if no codec can be matched between two RTP instances
in a peer to peer bridge, we immediately return instead of attempting to
use the codec payload type as an index to determine the appropriate negotiated

(issue ASTERISK-19655)
Reported by: Matt Jordan


Merged revisions 362362 from

Merged revisions 362364 from

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

9 years agoMake use of va_args more appropriate to form in various res_config modules plus utils.
Jonathan Rose [Tue, 17 Apr 2012 21:10:50 +0000 (21:10 +0000)]
Make use of va_args more appropriate to form in various res_config modules plus utils.

A number of va_copy operations weren't matched with a corresponding va_end in res_config_odbc. Also, there was a potential for va_end to be invoked twice on the same va_arg in utils, which would mean invoking va_end on an undefined variable... which is bad.
va_end is removed from various functions in config_pgsql and config_curl since they aren't making their own copy.  The invokers of those functions are responsible for calling va_end on them.

(issue ASTERISK-19451)
Reported by: Walter Doekes

Merged revisions 362354 from

Merged revisions 362357 from

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

9 years agoFix places in main where a negative return value could impact execution
Matthew Jordan [Tue, 17 Apr 2012 21:08:05 +0000 (21:08 +0000)]
Fix places in main where a negative return value could impact execution

This patch addresses a number of modules in main that did not handle the
negative return value from function calls adequately, or were not sufficiently
clear that the conditions leading to improper handling of the return values
could not occur.  This includes:

* asterisk.c: A negative return value from the read function would be used
directly as an index into a buffer.  We now check for success of the read
function prior to using its result as an index.

* manager.c: Check for failures in mkstemp and lseek when handling the
temporary file created for processing data returned from a CLI command in
action_command.  Also check that the result of an lseek is sanitized prior
to using it as the size of a memory map to allocate.

(issue ASTERISK-19655)
Reported by: Matt Jordan


Merged revisions 362359 from

Merged revisions 362360 from

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

9 years agoFix places where a negative return from ftello could be used as invalid input
Matthew Jordan [Tue, 17 Apr 2012 20:59:25 +0000 (20:59 +0000)]
Fix places where a negative return from ftello could be used as invalid input

In a variety of locations in both reading and writing a file, the result
from the C library function ftello is used as input to other functions.  For
the parameters and functions in question, a negative value is invalid input.
This patch checks the return value from the ftello function to determine if
we were able to determine the current position in the file stream and, if not,
fail gracefully.

(issue ASTERISK-19655)
Reported by: Matt Jordan


Merged revisions 362355 from

Merged revisions 362356 from

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

9 years agoAvoid cppcheck warnings; removing unused vars and a bit of cleanup.
Walter Doekes [Tue, 17 Apr 2012 18:57:40 +0000 (18:57 +0000)]
Avoid cppcheck warnings; removing unused vars and a bit of cleanup.

Patch by: junky

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

9 years agoFix error that caused seek format operations to set max file size to '1' or '0'
Matthew Jordan [Tue, 17 Apr 2012 18:29:51 +0000 (18:29 +0000)]
Fix error that caused seek format operations to set max file size to '1' or '0'

A very inappropriate placement of a ')' (introduced in r362151) caused the
maximum size of a file to be set as the result of a comparison operation, as
opposed to the result of the ftello operation.  This resulted in seeking being
restricted to the beginning of the file, or 1 byte into the file.  Thanks to
the Asterisk Test Suite for properly freaking out about this on at least one

(issue ASTERISK-19655)
Reported by: Matt Jordan

Merged revisions 362304 from

Merged revisions 362305 from

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