[asterisk-commits] dhubbard: branch group/taskprocessors r114059 - in /team/group/taskprocessors...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu Apr 10 21:49:48 CDT 2008


Author: dhubbard
Date: Thu Apr 10 21:49:48 2008
New Revision: 114059

URL: http://svn.digium.com/view/asterisk?view=rev&rev=114059
Log:
Merged revisions 112653,112656,112708,112710,112712,112714,112785,112821,112874,112906,112939,112972,113009,113013,113066,113119,113170,113172,113207,113241,113243,113245,113297,113349,113400,113403,113452,113455,113505,113508,113559,113597,113647,113649,113682,113731,113752,113785,113834,113836,113838,113840,113875,113928,113980,114022,114024,114027,114030,114033,114036,114042,114046,114049,114052 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/trunk

................
r112653 | dhubbard | 2008-04-03 17:13:11 -0500 (Thu, 03 Apr 2008) | 1 line

add a Zaptel timer check to verify the timer is responding when Zaptel support is compiled into Asterisk and Zaptel drivers are loaded.  This will help people not waste their valuable time debugging side effects.
................
r112656 | dhubbard | 2008-04-03 17:19:43 -0500 (Thu, 03 Apr 2008) | 1 line

satisfy buildbot
................
r112708 | dhubbard | 2008-04-03 19:32:05 -0500 (Thu, 03 Apr 2008) | 1 line

blocked for trunk....woot
................
r112710 | file | 2008-04-03 19:49:01 -0500 (Thu, 03 Apr 2008) | 9 lines

Blocked revisions 112709 via svnmerge

........
r112709 | file | 2008-04-03 21:48:01 -0300 (Thu, 03 Apr 2008) | 2 lines

One thing at a time... let's get 1.4 building.

........

................
r112712 | file | 2008-04-03 19:53:19 -0500 (Thu, 03 Apr 2008) | 10 lines

Merged revisions 112711 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r112711 | file | 2008-04-03 21:52:36 -0300 (Thu, 03 Apr 2008) | 2 lines

Pass in the path to Zaptel for systems that install Zaptel headers in a separate location.

........

................
r112714 | dhubbard | 2008-04-03 19:57:33 -0500 (Thu, 03 Apr 2008) | 1 line

sleep long enough for the zaptel timer error message to display before exit
................
r112785 | phsultan | 2008-04-04 12:32:46 -0500 (Fri, 04 Apr 2008) | 15 lines

Merged revisions 112766 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r112766 | phsultan | 2008-04-04 19:16:59 +0200 (Fri, 04 Apr 2008) | 7 lines

Prevent call connections when codecs don't match.

(closes issue #10604)
Reported by: keepitcool
Patches:
      branch-1.4-10604-2.diff uploaded by phsultan (license 73)
Tested by: phsultan
........

................
r112821 | phsultan | 2008-04-04 14:28:49 -0500 (Fri, 04 Apr 2008) | 9 lines

Merged revisions 112820 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r112820 | phsultan | 2008-04-04 21:26:15 +0200 (Fri, 04 Apr 2008) | 1 line

Free newly allocated channel before returning
........

................
r112874 | murf | 2008-04-04 20:33:13 -0500 (Fri, 04 Apr 2008) | 15 lines

Found a little problem with the sip request handling that could lead to a quick crash of asterisk, and a road to a DOS attack if left unfixed.

Attaching to a running asterisk with "telnet hostname 5060", I would input "something", then hit return three times, and asterisk crashes.

I traced it to handle_request_do(), which zeroes out the data (an ast_str ptr) if the string is too short. 
Instead of freeing the struct and nulling the pointer, it now just resets it, because this 
ast_str is expected by the calling routine to still be there after handle_request_do() returns.

This appears to fix the crash. I assume that it was introduced with ast_str's being adopted.  It's a subtle and easy-to-miss sort of problem.

I also found all the places where the req.data is freed, and made sure the ptr is Nulled out as well; 
no good leaving bad ptrs laying around-- I didn't need to do this, but it seemed a good thing to do...



................
r112906 | twilson | 2008-04-04 23:59:25 -0500 (Fri, 04 Apr 2008) | 2 lines

Multi-line support for phoneprov

................
r112939 | twilson | 2008-04-05 02:58:42 -0500 (Sat, 05 Apr 2008) | 2 lines

Clean up some memory leak/ref counting issues

................
r112972 | tilghman | 2008-04-05 08:24:12 -0500 (Sat, 05 Apr 2008) | 6 lines

AsyncAGI should not close the manager session on error.
(closes issue #12370)
 Reported by: srt
 Patches: 
       asterisk-12370.diff uploaded by srt (license 378)

................
r113009 | file | 2008-04-07 09:54:42 -0500 (Mon, 07 Apr 2008) | 2 lines

Put my slinfactory changes back in.

................
r113013 | jpeeler | 2008-04-07 10:18:10 -0500 (Mon, 07 Apr 2008) | 15 lines

Merged revisions 113012 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r113012 | jpeeler | 2008-04-07 10:16:44 -0500 (Mon, 07 Apr 2008) | 7 lines

(closes issue #12362)
(closes issue #12372)
Reported by: vinsik
Tested by: tecnoxarxa

This one line change makes an if inside a for loop (in realtime_peer) check all the ast_variables the loop was intending to test rather than just the first one.

........

................
r113066 | mmichelson | 2008-04-07 11:12:30 -0500 (Mon, 07 Apr 2008) | 21 lines

Merged revisions 113065 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r113065 | mmichelson | 2008-04-07 11:08:45 -0500 (Mon, 07 Apr 2008) | 13 lines

This fix prevents a deadlock that was experienced in chan_local. There was
deadlock prevention in place in chan_local, but it would not work in a specific
case because the channel was recursively locked. By unlocking the channel prior
to calling the generator's generate callback in ast_read_generator_actions(), we
prevent the recursive locking, and therefore the deadlock.

(closes issue #12307)
Reported by: callguy
Patches:
      12307.patch uploaded by putnopvut (license 60)
Tested by: callguy


........

................
r113119 | qwell | 2008-04-07 13:02:51 -0500 (Mon, 07 Apr 2008) | 16 lines

Merged revisions 113118 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r113118 | qwell | 2008-04-07 13:00:09 -0500 (Mon, 07 Apr 2008) | 8 lines

Allow playback with noanswer (and add earlyrtp option).

(closes issue #9077)
Reported by: pj
Patches:
      earlyrtp.diff uploaded by wedhorn (license 30)
Tested by: pj, qwell, DEA, wedhorn

........

................
r113170 | twilson | 2008-04-07 13:57:21 -0500 (Mon, 07 Apr 2008) | 2 lines

atoi(NULL) is bad

................
r113172 | tilghman | 2008-04-07 14:06:46 -0500 (Mon, 07 Apr 2008) | 11 lines

Merged revisions 113117 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r113117 | tilghman | 2008-04-07 12:51:49 -0500 (Mon, 07 Apr 2008) | 3 lines

Force ast_mktime() to check for DST, since strptime(3) does not.
(Closes issue #12374)

........

................
r113207 | mmichelson | 2008-04-07 15:22:06 -0500 (Mon, 07 Apr 2008) | 7 lines

This is a "fix" for something that's been bugging the crap out of me for a while.
The variable name "flag" to distinguish between whether a message is being forwarded or
is new is not a helpful name. The newly added doxygen documentation to app_voicemail is
tremendously helpful, but I still just...hate this variable name. I think is_new_message
is more indicative of what its purpose is.


................
r113241 | jpeeler | 2008-04-07 16:35:48 -0500 (Mon, 07 Apr 2008) | 23 lines

Merged revisions 113013 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/trunk

................
r113013 | jpeeler | 2008-04-07 10:18:10 -0500 (Mon, 07 Apr 2008) | 15 lines

Merged revisions 113012 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r113012 | jpeeler | 2008-04-07 10:16:44 -0500 (Mon, 07 Apr 2008) | 7 lines

(closes issue #12362)
(closes issue #12372)
Reported by: vinsik
Tested by: tecnoxarxa

This one line change makes an if inside a for loop (in realtime_peer) check all the ast_variables the loop was intending to test rather than just the first one.

........

................

................
r113243 | qwell | 2008-04-07 16:49:27 -0500 (Mon, 07 Apr 2008) | 1 line

Document 'originate' permission in manager sample config.
................
r113245 | tilghman | 2008-04-07 17:16:46 -0500 (Mon, 07 Apr 2008) | 2 lines

Additional note

................
r113297 | file | 2008-04-08 10:05:35 -0500 (Tue, 08 Apr 2008) | 12 lines

Merged revisions 113296 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r113296 | file | 2008-04-08 12:03:43 -0300 (Tue, 08 Apr 2008) | 4 lines

If audio suddenly gets fed into one side of a channel after a lapse of frames flush the other factory so that old audio does not remain in the factory causing the sync code to not execute.
(closes issue #12296)
Reported by: jvandal

........

................
r113349 | tilghman | 2008-04-08 10:48:58 -0500 (Tue, 08 Apr 2008) | 15 lines

Merged revisions 113348 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r113348 | tilghman | 2008-04-08 10:39:16 -0500 (Tue, 08 Apr 2008) | 7 lines

Move check for still-bridged channels out a little further, to avoid possible
deadlocks.  (Closes issue #12252)
Reported by: callguy
 Patches: 
       20080319__bug12252.diff.txt uploaded by Corydon76 (license 14)
 Tested by: callguy

........

................
r113400 | tilghman | 2008-04-08 11:54:21 -0500 (Tue, 08 Apr 2008) | 14 lines

Merged revisions 113399 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r113399 | tilghman | 2008-04-08 11:51:28 -0500 (Tue, 08 Apr 2008) | 6 lines

Add security note on astgenkey's manpage.
(closes issue #12373)
 Reported by: lmamane
 Patches: 
       20080406__bug12373.diff.txt uploaded by Corydon76 (license 14)

........

................
r113403 | qwell | 2008-04-08 12:00:55 -0500 (Tue, 08 Apr 2008) | 9 lines

Merged revisions 113402 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r113402 | qwell | 2008-04-08 11:56:52 -0500 (Tue, 08 Apr 2008) | 1 line

Work around some silliness caused by sys/capability.h - this should fix compile errors a number of users have been experiencing.
........

................
r113452 | qwell | 2008-04-08 12:32:42 -0500 (Tue, 08 Apr 2008) | 9 lines

Move AST_FEATURE_FLAG_* and FEATURE_RETURN_* to features.h so that they can be used by modules.

(closes issue #12384)
Reported by: fnordian
Patches:
      features.patch uploaded by fnordian (license 110)

(patch modified by me, to give FEATURE_RETURN_* an AST_ prefix)

................
r113455 | qwell | 2008-04-08 13:08:35 -0500 (Tue, 08 Apr 2008) | 12 lines

Merged revisions 113454 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r113454 | qwell | 2008-04-08 13:07:49 -0500 (Tue, 08 Apr 2008) | 4 lines

Add support for several new(ish) devices - most notably, 7942/7945, 7962/7965, 7975.

Thanks to Greg Oliver for providing me the required information.

........

................
r113505 | qwell | 2008-04-08 13:49:21 -0500 (Tue, 08 Apr 2008) | 9 lines

Merged revisions 113504 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r113504 | qwell | 2008-04-08 13:48:55 -0500 (Tue, 08 Apr 2008) | 1 line

Add a little more that is required for previously added devices.
........

................
r113508 | mmichelson | 2008-04-08 14:09:16 -0500 (Tue, 08 Apr 2008) | 15 lines

Blocked revisions 113507 via svnmerge

........
r113507 | mmichelson | 2008-04-08 14:07:38 -0500 (Tue, 08 Apr 2008) | 8 lines

Fix potential buffer overflow that could happen if more than 100 announce files
were specified when calling ParkAndAnnounce. This overflow is not exploitable remotely
and so there is no need for a security advisory.

(closes issue #12386)
Reported by: davidw


........

................
r113559 | tilghman | 2008-04-08 16:33:11 -0500 (Tue, 08 Apr 2008) | 6 lines

Add commandline tool for doing CLI commands through AMI (instead of using asterisk -rx)
(closes issue #12389)
 Reported by: davevg
 Patches: 
       astcli uploaded by davevg (license 209)

................
r113597 | twilson | 2008-04-08 20:36:58 -0500 (Tue, 08 Apr 2008) | 10 lines

Merged revisions 113596 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r113596 | twilson | 2008-04-08 20:34:25 -0500 (Tue, 08 Apr 2008) | 2 lines

Initialize fr->cacheable to make valgrind happy

........

................
r113647 | tilghman | 2008-04-09 08:23:44 -0500 (Wed, 09 Apr 2008) | 6 lines

Additional enhancements
(closes issue #12390)
 Reported by: tzafrir
 Patches: 
       astcli_fixes.diff uploaded by tzafrir (license 46)

................
r113649 | tilghman | 2008-04-09 08:55:28 -0500 (Wed, 09 Apr 2008) | 6 lines

Permit callee to continue in the dialplan, after caller has hung up.
(closes issue #11954)
 Reported by: johan
 Patches: 
       app_dial_rev104031.patch uploaded by johan (license 334)

................
r113682 | mmichelson | 2008-04-09 09:41:58 -0500 (Wed, 09 Apr 2008) | 17 lines

Merged revisions 113681 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r113681 | mmichelson | 2008-04-09 09:40:05 -0500 (Wed, 09 Apr 2008) | 9 lines

If Asterisk receives a 488 on an INVITE (not a reinvite), then
we should not send a BYE.

(closes issue #12392)
Reported by: fnordian
Patches:
      chan_sip.patch uploaded by fnordian (license 110) with small modification from me


........

................
r113731 | tilghman | 2008-04-09 11:16:44 -0500 (Wed, 09 Apr 2008) | 6 lines

Permit message wrap-around during message retrieval.
(closes issue #12254)
 Reported by: andrew
 Patches: 
       bug-12253.diff uploaded by snuffy (license 35)

................
r113752 | tilghman | 2008-04-09 11:23:30 -0500 (Wed, 09 Apr 2008) | 2 lines

Mark recent additions from #11954 and #12254

................
r113785 | file | 2008-04-09 11:52:04 -0500 (Wed, 09 Apr 2008) | 12 lines

Merged revisions 113784 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r113784 | file | 2008-04-09 13:50:45 -0300 (Wed, 09 Apr 2008) | 4 lines

If we receive an AUTHREQ from the remote server and we are unable to reply (for example they have a secret configured, but we do not) then queue a hangup frame on the Asterisk channel. This will cause the channel to hangup and a HANGUP to be sent via IAX2 to the remote side which is the proper thing to do in this scenario.
(closes issue #12385)
Reported by: viraptor

........

................
r113834 | qwell | 2008-04-09 12:41:09 -0500 (Wed, 09 Apr 2008) | 7 lines

Move all messages wrapped in skinnydebug from debug to verbose.

(closes issue #12224)
Reported by: DEA
Patches:
      chan_skinny-debug-log.txt uploaded by DEA (license 3)

................
r113836 | mmichelson | 2008-04-09 12:48:33 -0500 (Wed, 09 Apr 2008) | 14 lines

There was a subtle logical difference between 1.4 and trunk with regards to how timeouts
were handled. In 1.4, if the absolute timeout were reached on a call, no matter what
the return value of ast_spawn_extension was, the pbx would attempt to go to the 'T'
extension or hangup otherwise. The rearrangement of this function in trunk made this check
only happen in the case that ast_spawn_extension returned 0. If ast_spawn_extension returned
1, then the fact that the timeout expired resulted in a no-op, and would cause an infinite
loop to occur in __ast_pbx_run. This change fixes this problem. Now timeouts will
behave as they did in 1.4

(closes issue #11550)
Reported by: pj
Tested by: putnopvut


................
r113838 | qwell | 2008-04-09 12:56:07 -0500 (Wed, 09 Apr 2008) | 2 lines

Fix a small file handle "leak" pointed out by jjshoe on #asterisk.

................
r113840 | file | 2008-04-09 13:05:40 -0500 (Wed, 09 Apr 2008) | 4 lines

Enable enough RTP bridging to allow P2P to work.
(closes issue #11901)
Reported by: pj

................
r113875 | tilghman | 2008-04-09 14:00:40 -0500 (Wed, 09 Apr 2008) | 12 lines

Merged revisions 113874 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r113874 | tilghman | 2008-04-09 13:57:33 -0500 (Wed, 09 Apr 2008) | 4 lines

If the [csv] section does not exist in cdr.conf, then an unload/load sequence
is needed to correct the problem.  Track whether the load succeeded with a
variable, so we can fix this with a simple reload event, instead.

........

................
r113928 | mmichelson | 2008-04-09 15:56:14 -0500 (Wed, 09 Apr 2008) | 16 lines

Merged revisions 113927 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r113927 | mmichelson | 2008-04-09 15:54:31 -0500 (Wed, 09 Apr 2008) | 8 lines

We need to set the persistant_route [sic] parameter for the sip_pvt
during the initial INVITE, no matter if we're building the route set from
an INVITE request or response.

(closes issue #12391)
Reported by: benjaminbohlmann
Tested by: benjaminbohlmann

........

................
r113980 | mmichelson | 2008-04-09 17:32:32 -0500 (Wed, 09 Apr 2008) | 8 lines

Fix a crash that happened due to accessing free'd memory

(closes issue #12396)
Reported by: tcalosi
Patches:
      12396.patch uploaded by putnopvut (license 60)
	  Tested by: tcalosi

................
r114022 | file | 2008-04-10 08:28:30 -0500 (Thu, 10 Apr 2008) | 14 lines

Merged revisions 114021 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r114021 | file | 2008-04-10 10:27:11 -0300 (Thu, 10 Apr 2008) | 6 lines

Don't add custom URI options if they don't exist OR they are empty.
(closes issue #12407)
Reported by: homesick
Patches:
      uri_options-1.4.diff uploaded by homesick (license 91)

........

................
r114024 | file | 2008-04-10 08:45:45 -0500 (Thu, 10 Apr 2008) | 4 lines

Fix spelling of existent in a few places.
(closes issue #12409)
Reported by: candlerb

................
r114027 | file | 2008-04-10 09:53:19 -0500 (Thu, 10 Apr 2008) | 6 lines

Don't hardcode ru into the digits filename so that languageprefix can work.
(closes issue #12404)
Reported by: IgorG
Patches:
      voicemail_ru_hardcoded-v1.patch uploaded by IgorG (license 20)

................
r114030 | file | 2008-04-10 10:10:47 -0500 (Thu, 10 Apr 2008) | 14 lines

Merged revisions 114029 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r114029 | file | 2008-04-10 12:09:04 -0300 (Thu, 10 Apr 2008) | 6 lines

Create the directory where name recordings will go if it does not exist.
(closes issue #12311)
Reported by: rkeene
Patches:
      12311-mkdir.diff uploaded by qwell (license 4)

........

................
r114033 | file | 2008-04-10 10:59:13 -0500 (Thu, 10 Apr 2008) | 13 lines

Blocked revisions 114032 via svnmerge

........
r114032 | file | 2008-04-10 12:58:39 -0300 (Thu, 10 Apr 2008) | 6 lines

Forgot the 1.4 branch for russian language fix.
(closes issue #12404)
Reported by: IgorG
Patches:
      voicemail_ru_hardcoded-v1.patch uploaded by IgorG (license 20)

........

................
r114036 | qwell | 2008-04-10 12:27:16 -0500 (Thu, 10 Apr 2008) | 18 lines

Merged revisions 114035 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r114035 | qwell | 2008-04-10 12:26:10 -0500 (Thu, 10 Apr 2008) | 10 lines

Only try to prefix language if we are not using an absolute path (suffix it otherwise).

en/var/lib/asterisk/sounds/blah.gsm is a very silly path.

(closes issue #12379)
Reported by: kuj
Patches:
      12379-absolutepath.diff uploaded by qwell (license 4)
Tested by: kuj, qwell

........

................
r114042 | tilghman | 2008-04-10 14:04:29 -0500 (Thu, 10 Apr 2008) | 7 lines

The hydra grows yet another head...
(closes issue #12401)
 Reported by: davevg
 Patches: 
       astcli.diff2 uploaded by davevg (license 209)
 Tested by: davevg, Corydon76

................
r114046 | mmichelson | 2008-04-10 14:58:36 -0500 (Thu, 10 Apr 2008) | 14 lines

Merged revisions 114045 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r114045 | mmichelson | 2008-04-10 14:55:33 -0500 (Thu, 10 Apr 2008) | 6 lines

Be sure that we're not about to set bridgepvt NULL prior to dereferencing it.

(closes issue #11775)
Reported by: fujin


........

................
r114049 | file | 2008-04-10 15:28:40 -0500 (Thu, 10 Apr 2008) | 2 lines

A 'b' option has been added which causes chan_local to return the actual channel that is behind it when queried. This is useful for transfer scenarios as the actual channel will be transferred, not the Local channel. If you have been using Local channels as queue members and having issues when the agent did a blind transfer this option may solve the issue.

................
r114052 | mmichelson | 2008-04-10 17:02:32 -0500 (Thu, 10 Apr 2008) | 11 lines

Merged revisions 114051 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r114051 | mmichelson | 2008-04-10 15:59:49 -0500 (Thu, 10 Apr 2008) | 3 lines

Fix 1.4 build when LOW_MEMORY is enabled.


........

................

Added:
    team/group/taskprocessors/contrib/scripts/astcli
      - copied unchanged from r114052, trunk/contrib/scripts/astcli
    team/group/taskprocessors/phoneprov/polycom_line.xml
      - copied unchanged from r114052, trunk/phoneprov/polycom_line.xml
Modified:
    team/group/taskprocessors/   (props changed)
    team/group/taskprocessors/CHANGES
    team/group/taskprocessors/apps/app_dial.c
    team/group/taskprocessors/apps/app_meetme.c
    team/group/taskprocessors/apps/app_queue.c
    team/group/taskprocessors/apps/app_voicemail.c
    team/group/taskprocessors/cdr/cdr_csv.c
    team/group/taskprocessors/channels/chan_gtalk.c
    team/group/taskprocessors/channels/chan_h323.c
    team/group/taskprocessors/channels/chan_iax2.c
    team/group/taskprocessors/channels/chan_local.c
    team/group/taskprocessors/channels/chan_sip.c
    team/group/taskprocessors/channels/chan_skinny.c
    team/group/taskprocessors/channels/chan_unistim.c
    team/group/taskprocessors/configs/cdr.conf.sample
    team/group/taskprocessors/configs/manager.conf.sample
    team/group/taskprocessors/configs/skinny.conf.sample
    team/group/taskprocessors/configs/voicemail.conf.sample
    team/group/taskprocessors/contrib/scripts/astgenkey.8
    team/group/taskprocessors/funcs/func_strings.c
    team/group/taskprocessors/include/asterisk/features.h
    team/group/taskprocessors/include/asterisk/lock.h
    team/group/taskprocessors/include/asterisk/slinfactory.h
    team/group/taskprocessors/main/Makefile
    team/group/taskprocessors/main/asterisk.c
    team/group/taskprocessors/main/audiohook.c
    team/group/taskprocessors/main/channel.c
    team/group/taskprocessors/main/features.c
    team/group/taskprocessors/main/file.c
    team/group/taskprocessors/main/manager.c
    team/group/taskprocessors/main/pbx.c
    team/group/taskprocessors/main/rtp.c
    team/group/taskprocessors/main/slinfactory.c
    team/group/taskprocessors/main/utils.c
    team/group/taskprocessors/phoneprov/000000000000-directory.xml
    team/group/taskprocessors/phoneprov/polycom.xml
    team/group/taskprocessors/res/res_agi.c
    team/group/taskprocessors/res/res_phoneprov.c
    team/group/taskprocessors/utils/Makefile
    team/group/taskprocessors/utils/ael_main.c
    team/group/taskprocessors/utils/astman.c
    team/group/taskprocessors/utils/check_expr.c
    team/group/taskprocessors/utils/conf2ael.c
    team/group/taskprocessors/utils/hashtest.c
    team/group/taskprocessors/utils/hashtest2.c

Propchange: team/group/taskprocessors/
------------------------------------------------------------------------------
Binary property 'branch-1.4-blocked' - no diff available.

Propchange: team/group/taskprocessors/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.

Propchange: team/group/taskprocessors/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Thu Apr 10 21:49:48 2008
@@ -1,1 +1,1 @@
-/trunk:1-112611
+/trunk:1-114058

Modified: team/group/taskprocessors/CHANGES
URL: http://svn.digium.com/view/asterisk/team/group/taskprocessors/CHANGES?view=diff&rev=114059&r1=114058&r2=114059
==============================================================================
--- team/group/taskprocessors/CHANGES (original)
+++ team/group/taskprocessors/CHANGES Thu Apr 10 21:49:48 2008
@@ -25,6 +25,10 @@
    the arguments to Directory; previously, you could enter only 3, regardless
    of how many names are in your company.  For large companies, this should be
    quite helpful.
+ * Voicemail now permits a mailbox setting to wrap around from first to last
+   messages, if the "messagewrap" option is set to a true value.
+ * Dial has a new option: F(context^extension^pri), which permits a callee to
+   continue in the dialplan, at the specified label, if the caller hangs up.
 
 SIP Changes
 -----------
@@ -253,6 +257,9 @@
      SIP call to Voicemail by putting a Local channel in the middle.  This
      feature is enabled by using the 'j' option in the Dial string to the Local
      channel in conjunction with the existing 'n' option for local channels.
+  * A 'b' option has been added which causes chan_local to return the actual channel
+     that is behind it when queried. This is useful for transfer scenarios as the
+     actual channel will be transferred, not the Local channel.
 
 Zaptel channel driver (chan_zap) Changes
 ----------------------------------------

Modified: team/group/taskprocessors/apps/app_dial.c
URL: http://svn.digium.com/view/asterisk/team/group/taskprocessors/apps/app_dial.c?view=diff&rev=114059&r1=114058&r2=114059
==============================================================================
--- team/group/taskprocessors/apps/app_dial.c (original)
+++ team/group/taskprocessors/apps/app_dial.c Thu Apr 10 21:49:48 2008
@@ -116,6 +116,8 @@
 "           extension associated with the channel using a dialplan 'hint'.\n"
 "           For example, some PSTNs do not allow CallerID to be set to anything\n"
 "           other than the number assigned to the caller.\n"
+"    F(context^exten^pri) - When the caller hangs up, transfer the called party\n"
+"           to the specified context and extension and continue execution.\n"
 "    g    - Proceed with dialplan execution at the current extension if the\n"
 "           destination channel hangs up.\n"
 "    G(context^exten^pri) - If the call is answered, transfer the calling party to\n"
@@ -147,7 +149,7 @@
 "           specified.\n"
 "    M(x[^arg]) - Execute the Macro for the *called* channel before connecting\n"
 "           to the calling channel. Arguments can be specified to the Macro\n"
-"           using '^' as a delimeter. The Macro can set the variable\n"
+"           using '^' as a delimiter. The Macro can set the variable\n"
 "           MACRO_RESULT to specify the following actions after the Macro is\n"
 "           finished executing.\n"
 "           * ABORT        Hangup both legs of the call.\n"
@@ -194,7 +196,7 @@
 "           DTMF sequence defined in features.conf.\n"
 "    U(x[^arg]) - Execute via Gosub the routine 'x' for the *called* channel before connecting\n"
 "           to the calling channel. Arguments can be specified to the Gosub\n"
-"           using '^' as a delimeter. The Gosub routine can set the variable\n"
+"           using '^' as a delimiter. The Gosub routine can set the variable\n"
 "           GOSUB_RESULT to specify the following actions after the Gosub returns.\n"
 "           * ABORT        Hangup both legs of the call.\n"
 "           * CONGESTION   Behave as if line congestion was encountered.\n"
@@ -269,6 +271,7 @@
 #define DIAL_NOFORWARDHTML   ((uint64_t)1 << 32) /* flags are now 64 bits, so keep it up! */
 #define OPT_CANCEL_ELSEWHERE ((uint64_t)1 << 33)
 #define OPT_PEER_H           ((uint64_t)1 << 34)
+#define OPT_CALLEE_GO_ON     ((uint64_t)1 << 35)
 
 enum {
 	OPT_ARG_ANNOUNCE = 0,
@@ -278,6 +281,7 @@
 	OPT_ARG_MUSICBACK,
 	OPT_ARG_CALLEE_MACRO,
 	OPT_ARG_CALLEE_GOSUB,
+	OPT_ARG_CALLEE_GO_ON,
 	OPT_ARG_PRIVACY,
 	OPT_ARG_DURATION_STOP,
 	OPT_ARG_OPERMODE,
@@ -293,6 +297,7 @@
 	AST_APP_OPTION_ARG('D', OPT_SENDDTMF, OPT_ARG_SENDDTMF),
 	AST_APP_OPTION('e', OPT_PEER_H),
 	AST_APP_OPTION('f', OPT_FORCECLID),
+	AST_APP_OPTION_ARG('F', OPT_CALLEE_GO_ON, OPT_ARG_CALLEE_GO_ON),
 	AST_APP_OPTION('g', OPT_GO_ON),
 	AST_APP_OPTION_ARG('G', OPT_GOTO, OPT_ARG_GOTO),
 	AST_APP_OPTION('h', OPT_CALLEE_HANGUP),
@@ -1919,9 +1924,15 @@
 			ast_set2_flag(peer, autoloopflag, AST_FLAG_IN_AUTOLOOP);  /* set it back the way it was */
 		}
 		if (res != AST_PBX_NO_HANGUP_PEER) {
-			if (!ast_check_hangup(chan))
-				chan->hangupcause = peer->hangupcause;
-			ast_hangup(peer);
+			if (!ast_check_hangup(peer) && ast_test_flag64(&opts, OPT_CALLEE_GO_ON) && !ast_strlen_zero(opt_args[OPT_ARG_CALLEE_GO_ON])) {		
+                        	replace_macro_delimiter(opt_args[OPT_ARG_CALLEE_GO_ON]);
+                        	ast_parseable_goto(peer, opt_args[OPT_ARG_CALLEE_GO_ON]);
+	                        ast_pbx_start(peer);
+			} else {
+				if (!ast_check_hangup(chan))
+					chan->hangupcause = peer->hangupcause;
+				ast_hangup(peer);
+			}
 		}
 	}
 out:

Modified: team/group/taskprocessors/apps/app_meetme.c
URL: http://svn.digium.com/view/asterisk/team/group/taskprocessors/apps/app_meetme.c?view=diff&rev=114059&r1=114058&r2=114059
==============================================================================
--- team/group/taskprocessors/apps/app_meetme.c (original)
+++ team/group/taskprocessors/apps/app_meetme.c Thu Apr 10 21:49:48 2008
@@ -1694,8 +1694,17 @@
 	ast_mutex_unlock(&conf->playlock);
 
 	if (!(confflags & CONFFLAG_QUIET) && ((confflags & CONFFLAG_INTROUSER) || (confflags & CONFFLAG_INTROUSERNOREVIEW))) {
+		char destdir[PATH_MAX];
+
+		snprintf(destdir, sizeof(destdir), "%s/meetme", ast_config_AST_SPOOL_DIR);
+
+		if (mkdir(destdir, 0777) && errno != EEXIST) {
+			ast_log(LOG_WARNING, "mkdir '%s' failed: %s\n", destdir, strerror(errno));
+			goto outrun;
+		}
+
 		snprintf(user->namerecloc, sizeof(user->namerecloc),
-			 "%s/meetme/meetme-username-%s-%d", ast_config_AST_SPOOL_DIR,
+			 "%s/meetme-username-%s-%d", destdir,
 			 conf->confno, user->user_no);
 		if (confflags & CONFFLAG_INTROUSERNOREVIEW)
 			res = ast_play_and_record(chan, "vm-rec-name", user->namerecloc, 10, "sln", &duration, ast_dsp_get_threshold_from_settings(THRESHOLD_SILENCE), 0, NULL);

Modified: team/group/taskprocessors/apps/app_queue.c
URL: http://svn.digium.com/view/asterisk/team/group/taskprocessors/apps/app_queue.c?view=diff&rev=114059&r1=114058&r2=114059
==============================================================================
--- team/group/taskprocessors/apps/app_queue.c (original)
+++ team/group/taskprocessors/apps/app_queue.c Thu Apr 10 21:49:48 2008
@@ -1468,7 +1468,6 @@
 			q->strategy = QUEUE_STRATEGY_RINGALL;
 		init_queue(q);		/* Ensure defaults for all parameters not set explicitly. */
 		ao2_link(queues, q);
-		ast_variables_destroy(tmpvar);
 	}
 
 	memset(tmpbuf, 0, sizeof(tmpbuf));

Modified: team/group/taskprocessors/apps/app_voicemail.c
URL: http://svn.digium.com/view/asterisk/team/group/taskprocessors/apps/app_voicemail.c?view=diff&rev=114059&r1=114058&r2=114059
==============================================================================
--- team/group/taskprocessors/apps/app_voicemail.c (original)
+++ team/group/taskprocessors/apps/app_voicemail.c Thu Apr 10 21:49:48 2008
@@ -206,23 +206,24 @@
 #define MAX_DATETIME_FORMAT	512
 #define MAX_NUM_CID_CONTEXTS 10
 
-#define VM_REVIEW        (1 << 0)
-#define VM_OPERATOR      (1 << 1)
-#define VM_SAYCID        (1 << 2)
-#define VM_SVMAIL        (1 << 3)
-#define VM_ENVELOPE      (1 << 4)
-#define VM_SAYDURATION   (1 << 5)
-#define VM_SKIPAFTERCMD  (1 << 6)
+#define VM_REVIEW        (1 << 0)   /*!< After recording, permit the caller to review the recording before saving */
+#define VM_OPERATOR      (1 << 1)   /*!< Allow 0 to be pressed to go to 'o' extension */
+#define VM_SAYCID        (1 << 2)   /*!< Repeat the CallerID info during envelope playback */
+#define VM_SVMAIL        (1 << 3)   /*!< Allow the user to compose a new VM from within VoicemailMain */
+#define VM_ENVELOPE      (1 << 4)   /*!< Play the envelope information (who-from, time received, etc.) */
+#define VM_SAYDURATION   (1 << 5)   /*!< Play the length of the message during envelope playback */
+#define VM_SKIPAFTERCMD  (1 << 6)   /*!< After deletion, assume caller wants to go to the next message */
 #define VM_FORCENAME     (1 << 7)   /*!< Have new users record their name */
 #define VM_FORCEGREET    (1 << 8)   /*!< Have new users record their greetings */
-#define VM_PBXSKIP       (1 << 9)
-#define VM_DIRECFORWARD  (1 << 10)  /*!< directory_forward */
-#define VM_ATTACH        (1 << 11)
-#define VM_DELETE        (1 << 12)
-#define VM_ALLOCED       (1 << 13)
-#define VM_SEARCH        (1 << 14)
+#define VM_PBXSKIP       (1 << 9)   /*!< Skip the [PBX] preamble in the Subject line of emails */
+#define VM_DIRECFORWARD  (1 << 10)  /*!< Permit caller to use the Directory app for selecting to which mailbox to forward a VM */
+#define VM_ATTACH        (1 << 11)  /*!< Attach message to voicemail notifications? */
+#define VM_DELETE        (1 << 12)  /*!< Delete message after sending notification */
+#define VM_ALLOCED       (1 << 13)  /*!< Structure was malloc'ed, instead of placed in a return (usually static) buffer */
+#define VM_SEARCH        (1 << 14)  /*!< Search all contexts for a matching mailbox */
 #define VM_TEMPGREETWARN (1 << 15)  /*!< Remind user tempgreeting is set */
 #define VM_MOVEHEARD     (1 << 16)  /*!< Move a "heard" message to Old after listening to it */
+#define VM_MESSAGEWRAP   (1 << 17)  /*!< Wrap around from the last message to the first, and vice-versa */
 #define ERROR_LOCK_PATH  -100
 #define ERROR_MAILBOX_FULL	-200
 
@@ -750,6 +751,8 @@
 		ast_set2_flag(vmu, ast_true(value), VM_REVIEW);
 	} else if (!strcasecmp(var, "tempgreetwarn")) {
 		ast_set2_flag(vmu, ast_true(value), VM_TEMPGREETWARN);	
+	} else if (!strcasecmp(var, "messagewrap")){
+		ast_set2_flag(vmu, ast_true(value), VM_MESSAGEWRAP);	
 	} else if (!strcasecmp(var, "operator")) {
 		ast_set2_flag(vmu, ast_true(value), VM_OPERATOR);	
 	} else if (!strcasecmp(var, "envelope")) {
@@ -4757,18 +4760,18 @@
  * \param vms
  * \param sender
  * \param fmt
- * \param flag Used to indicate the mode for which this method was invoked. 
+ * \param is_new_message Used to indicate the mode for which this method was invoked. 
  *             Will be 0 when called to forward an existing message (option 8)
  *             Will be 1 when called to leave a message (option 3->5)
  * \param record_gain 
  *
  * Reads the destination mailbox(es) from keypad input for CID, or if use_directory feature is enabled, the Directory.
  * 
- * When in the leave message mode (flag == 1):
- *   - allow the leaving of a message for ourselves. (Will not allow us to forward a message to ourselves, when flag == 0).
+ * When in the leave message mode (is_new_message == 1):
+ *   - allow the leaving of a message for ourselves. (Will not allow us to forward a message to ourselves, when is_new_message == 0).
  *   - attempt to determine the context and and mailbox, and then invoke leave_message() function to record and store the message.
  *
- * When in the forward message mode (flag == 0):
+ * When in the forward message mode (is_new_message == 0):
  *   - retreives the current message to be forwarded
  *   - copies the original message to a temporary file, so updates to the envelope can be done.
  *   - determines the target mailbox and folders
@@ -4776,7 +4779,7 @@
  *
  * \return zero on success, -1 on error.
  */
-static int forward_message(struct ast_channel *chan, char *context, struct vm_state *vms, struct ast_vm_user *sender, char *fmt, int flag, signed char record_gain)
+static int forward_message(struct ast_channel *chan, char *context, struct vm_state *vms, struct ast_vm_user *sender, char *fmt, int is_new_message, signed char record_gain)
 {
 #ifdef IMAP_STORAGE
 	BODY *body;
@@ -4892,8 +4895,8 @@
 		/* start optimistic */
 		valid_extensions = 1;
 		while (s) {
-			/* Don't forward to ourselves but allow leaving a message for ourselves (flag == 1).  find_user is going to malloc since we have a NULL as first argument */
-			if ((flag == 1 || strcmp(s, sender->mailbox)) && (receiver = find_user(NULL, context, s))) {
+			/* Don't forward to ourselves but allow leaving a message for ourselves (is_new_message == 1).  find_user is going to malloc since we have a NULL as first argument */
+			if ((is_new_message == 1 || strcmp(s, sender->mailbox)) && (receiver = find_user(NULL, context, s))) {
 				AST_LIST_INSERT_HEAD(&extensions, receiver, list);
 				found++;
 			} else {
@@ -4927,7 +4930,7 @@
 	/* check if we're clear to proceed */
 	if (AST_LIST_EMPTY(&extensions) || !valid_extensions)
 		return res;
-	if (flag==1) {
+	if (is_new_message == 1) {
 		struct leave_vm_options leave_options;
 		char mailbox[AST_MAX_EXTENSION * 2 + 2];
 		/* Make sure that context doesn't get set as a literal "(null)" (or else find_user won't find it) */
@@ -6643,7 +6646,7 @@
 			res = say_and_wait(chan, dcnum, chan->language);
 		if (!res && lastnum) {
 			if (lastnum == 1) 
-				res = ast_play_and_wait(chan, "digits/ru/odno");
+				res = ast_play_and_wait(chan, "digits/odno");
 			else
 				res = say_and_wait(chan, lastnum, chan->language);
 		}
@@ -6662,7 +6665,7 @@
 			res = say_and_wait(chan, dcnum, chan->language);
 		if (!res && lastnum) {
 			if (lastnum == 1) 
-				res = ast_play_and_wait(chan, "digits/ru/odno");
+				res = ast_play_and_wait(chan, "digits/odno");
 			else
 				res = say_and_wait(chan, lastnum, chan->language);
 		}
@@ -6852,7 +6855,7 @@
 	}
 }
 
-static int vm_instructions_en(struct ast_channel *chan, struct vm_state *vms, int skipadvanced)
+static int vm_instructions_en(struct ast_channel *chan, struct ast_vm_user *vmu, struct vm_state *vms, int skipadvanced)
 {
 	int res = 0;
 	/* Play instructions and wait for new command */
@@ -6874,20 +6877,23 @@
 			}
 		} else {
 			/* Added for additional help */
-			if (skipadvanced)  {
+			if (skipadvanced) {
 				res = ast_play_and_wait(chan, "vm-onefor-full");
 				if (!res)
 					res = vm_play_folder_name(chan, vms->vmbox);
 				res = ast_play_and_wait(chan, "vm-opts-full");
-                        }
-			if (vms->curmsg)
+			}
+			if (vms->curmsg || (ast_test_flag(vmu, VM_MESSAGEWRAP) && vms->lastmsg > 0)) {
 				res = ast_play_and_wait(chan, "vm-prev");
+			}
 			if (!res && !skipadvanced)
 				res = ast_play_and_wait(chan, "vm-advopts");
 			if (!res)
 				res = ast_play_and_wait(chan, "vm-repeat");
-			if (!res && (vms->curmsg != vms->lastmsg))
+			if (!res && (vms->curmsg != vms->lastmsg || 
+				(ast_test_flag(vmu, VM_MESSAGEWRAP) && vms->lastmsg > 0) )) {
 				res = ast_play_and_wait(chan, "vm-next");
+			}
 			if (!res) {
 				if (!vms->deleted[vms->curmsg])
 					res = ast_play_and_wait(chan, "vm-delete");
@@ -6917,7 +6923,7 @@
 	return res;
 }
 
-static int vm_instructions_tw(struct ast_channel *chan, struct vm_state *vms, int skipadvanced)
+static int vm_instructions_tw(struct ast_channel *chan, struct ast_vm_user *vmu, struct vm_state *vms,  int skipadvanced)
 {
 	int res = 0;
 	/* Play instructions and wait for new command */
@@ -6935,18 +6941,18 @@
 			res = ast_play_and_wait(chan, "vm-opts");
 		if (!res) {
 			vms->starting = 0;
-			return vm_instructions_en(chan, vms, skipadvanced);
+			return vm_instructions_en(chan, vmu, vms, skipadvanced);
 		}
 	}
 	return res;
 }
 
-static int vm_instructions(struct ast_channel *chan, struct vm_state *vms, int skipadvanced)
+static int vm_instructions(struct ast_channel *chan, struct ast_vm_user *vmu, struct vm_state *vms, int skipadvanced)
 {

[... 3697 lines stripped ...]



More information about the asterisk-commits mailing list