[asterisk-commits] murf: branch group/newcdr r170231 - in /team/group/newcdr: ./ apps/ build_too...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu Jan 22 12:36:51 CST 2009


Author: murf
Date: Thu Jan 22 12:36:50 2009
New Revision: 170231

URL: http://svn.digium.com/svn-view/asterisk?view=rev&rev=170231
Log:
Merged revisions 168705,168711-168712,168719,168722,168725,168728,168732,168734,168737,168746,168759-168760,168832,168898,168941,168976,169044,169080,169116,169153,169211,169277,169325,169327,169365,169367,169369,169438,169486,169510,169557,169574,169611,169614,169620,169625,169673,169723,169791,169793-169794,169798,169866,169869,169910,169944,170007,170047,170051,170112,170148,170165 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/trunk

................
r168705 | seanbright | 2009-01-15 08:33:18 -0700 (Thu, 15 Jan 2009) | 11 lines

Add a missing unlock and properly handle the 'maxusers' setting on MeetMe
conferences.  We were using the 'user number' field to compare against the
maximum allowed users, which works assuming users with lower user numbers
didn't leave the conference.

(closes issue #14117)
Reported by: sergedevorop
Patches:
      20090114__bug14117-2.diff.txt uploaded by seanbright (license 71)
Tested by: sergedevorop

................
r168711 | oej | 2009-01-15 10:55:53 -0700 (Thu, 15 Jan 2009) | 4 lines

Clarify some misunderstandings and make it even more clear that you can refer to a peer
in the register= line.


................
r168712 | oej | 2009-01-15 11:08:59 -0700 (Thu, 15 Jan 2009) | 3 lines

Make sure that we have the same terminology in sip.conf.sample and the source code warning.
Thanks Nick Lewis for pointing this out in the bug tracker.

................
r168719 | tilghman | 2009-01-15 11:39:56 -0700 (Thu, 15 Jan 2009) | 4 lines

Resolve issue with negative vs non-negative length parameters.
(closes issue #14245)
 Reported by: dveiga

................
r168722 | oej | 2009-01-15 11:47:14 -0700 (Thu, 15 Jan 2009) | 10 lines

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

........
r168721 | oej | 2009-01-15 19:43:43 +0100 (Tor, 15 Jan 2009) | 2 lines

Meetme actually has realtime but wasn't documented

........

................
r168725 | mmichelson | 2009-01-15 12:00:06 -0700 (Thu, 15 Jan 2009) | 17 lines

Remove an unneeded condition for line addition to a SIP request/response

In Asterisk 1.4 and 1.6.0, the sip_request structure had a statically
allocated buffer to hold the text of the request. There was a check in the
add_line function to not attempt to write the line into the buffer if we
did not have room for it.

In trunk and Asterisk versions starting with 1.6.1, an expandable ast_str
structure is used to hold the text. Since it may grow to fit an arbitrarily
sized string, this check in add_line is no longer valid.

I found this oddity while attempting to fix issue #14220; however, I do not
believe that this is the fix for that issue since the output supplied by the
reporter did not contain the warning message that would be printed had this
condition been satisfied.


................
r168728 | mmichelson | 2009-01-15 12:16:29 -0700 (Thu, 15 Jan 2009) | 3 lines

Fix the compactheaders option in sip.conf


................
r168732 | mmichelson | 2009-01-15 13:00:46 -0700 (Thu, 15 Jan 2009) | 3 lines

Add missing brace


................
r168734 | kpfleming | 2009-01-15 13:18:53 -0700 (Thu, 15 Jan 2009) | 5 lines

remove the PBX_ODBC logic from the configure script, and add GENERIC_ODCB logic that includes copying the relevant LIB and INCLUDE data from either UnixODBC or iODBC, based on which was found; if both were found, prefer UnixODBC

this stops modules from being linked against both sets of libraries on systems that have both installed


................
r168737 | murf | 2009-01-15 13:54:59 -0700 (Thu, 15 Jan 2009) | 16 lines

This patch allows null args in ast_expr2 func calls, and fixes commas being converted to pipes, which was 1.4 type stuff.

If the user says count=ENUMLOOKUP(${EXTEN},ALL,c,,enum.mydomain.tld);

then it won't complain about the empty arg (c,,...) and fabled's patch
won't let it swap the commas for pipes.

Ran it thru my dialplan and no complaints.


(closes issue #14169)
Reported by: fabled
Patches:
      function-argument-separator-fix.diff uploaded by fabled (license 448)


................
r168746 | murf | 2009-01-15 17:34:31 -0700 (Thu, 15 Jan 2009) | 20 lines

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

........
  r168745 | murf | 2009-01-15 17:19:12 -0700 (Thu, 15 Jan 2009) | 14 lines
  
  This patch fixes a problem where a goto (or jump, in this case)
  fails a consistency check because it can't find a matching 
  extension. The problem was a missing instruction to end
  the range notation in the code where it converts the pattern
  into a regex and uses the regex code to determine the match.
  
  I tested using the AEL code the user supplied, and now,
  the consistency check passes.
  
  
  (closes issue #14141)
  Reported by: dimas
........

................
r168759 | russell | 2009-01-16 09:18:41 -0700 (Fri, 16 Jan 2009) | 1 line

build in dev mode
................
r168760 | russell | 2009-01-16 10:09:13 -0700 (Fri, 16 Jan 2009) | 2 lines

Fix a spelling mistake.

................
r168832 | tilghman | 2009-01-16 11:49:09 -0700 (Fri, 16 Jan 2009) | 13 lines

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

........
  r168828 | tilghman | 2009-01-16 12:41:35 -0600 (Fri, 16 Jan 2009) | 6 lines
  
  Fix the conjugation of Russian and Ukrainian languages.
  (related to issue #12475)
   Reported by: chappell
   Patches: 
         vm_multilang.patch uploaded by chappell (license 8)
........

................
r168898 | mmichelson | 2009-01-16 12:54:39 -0700 (Fri, 16 Jan 2009) | 26 lines

Fix a logic error that occur when using the timerfd interface

This sequence of events posed a problem

timerfd_timer_open
timerfd_timer_enable_continuous
timerfd_timer_set_rate
timerfd_timer_disable_continuous

The reason was that the timing module was written under the assumption
that timerfd_timer_set_rate would not be called between enabling and
disabling continuous mode. What happened in this situation was that 
timerfd_timer_enable_continuous saved off our previously set timer (in this
situation a 0 timer, meaning it never runs out). Then timerfd_timer_disable_continuous
would restore this 0 timer, even though it logically should set the timer to be whatever
was set in timerfd_timer_set_rate.

Now the behavior in timerfd_timer_set_rate is to overwrite the saved timer that may
or may not have been set in timerfd_timer_enable_continuous. Even if
timerfd_timer_enable_continuous has not been previously called, this will not harm the
operation.

Thanks to Terry Wilson for discovering the problem and giving me a really great debug
capture that pointed out the problem clearly


................
r168941 | twilson | 2009-01-16 15:16:23 -0700 (Fri, 16 Jan 2009) | 19 lines

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

........
  r168716 | twilson | 2009-01-15 12:22:49 -0600 (Thu, 15 Jan 2009) | 12 lines
  
  Convert call to park_call_full to masq_park_call_announce
  
  Since we removed the AST_PBX_KEEPALIVE return value, we need to use masqueraded
  parking, otherwise we will try to call ast_hangup() in __pbx_run() and in
  do_parking_thread() and then promptly crash.
  (closes issue #14215)
  	Reported by: waverly360	
  	Tested by: otherwiseguy
  (closes issue #14228)
  	Reported by: kobaz
  	Tested by: otherwiseguy
........

................
r168976 | mmichelson | 2009-01-16 15:43:09 -0700 (Fri, 16 Jan 2009) | 26 lines

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

........
r168975 | mmichelson | 2009-01-16 16:42:13 -0600 (Fri, 16 Jan 2009) | 18 lines

Account for possible NULL pointer when we receive a 408 in response to a REGISTER

It may be that by the time we receive a reply to a REGISTER request, the attempt has
timed out and thus the registry structure pointed to by the corresponding sip_pvt has
gone away. This situation was handled properly for a 200 OK response, but the 408
case assumed that the sip_registry struct was non-NULL, thus potentially causing a crash

This commit fixes this assumption and prints out a message to the console if we should
receive a late 408 response to a REGISTER


(closes issue #14211)
Reported by: aborghi
Patches:
      14211.diff uploaded by putnopvut (license 60)
Tested by: aborghi


........

................
r169044 | twilson | 2009-01-16 17:03:39 -0700 (Fri, 16 Jan 2009) | 8 lines

Fix port :0 added to SIP INVITE URI when outboundproxy used

(closes issue #14233)
Reported by: chris-mac
Patches: 
      asterisk-bug14233.diff.txt uploaded by jamesgolovich (license 176)
Tested by: jamesgolovich, chris-mac, otherwiseguy

................
r169080 | twilson | 2009-01-16 18:56:36 -0700 (Fri, 16 Jan 2009) | 8 lines

Fix qualify for TCP peer

(closes issue #14192)
Reported by: pabelanger
Patches: 
      asterisk-bug14192.diff.txt uploaded by jamesgolovich (license 176)
Tested by: jamesgolovich

................
r169116 | seanbright | 2009-01-16 19:52:30 -0700 (Fri, 16 Jan 2009) | 8 lines

Change intializer types.  Found while working on asterisk-cpp.  I have a new
favorite error message from g++:

    pbx_dundi.c:4580: sorry, unimplemented: non-trivial designated
                      initializers not supported

I like it when compilers are apologetic.

................
r169153 | dbailey | 2009-01-17 11:26:44 -0700 (Sat, 17 Jan 2009) | 3 lines

Add discriminator for when ring pulse alert signal is used to preface MWI spills
This prevents the situation when MWI messages are added to caller ID spills causing the channel to be hung up

................
r169211 | mmichelson | 2009-01-19 08:54:06 -0700 (Mon, 19 Jan 2009) | 21 lines

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

........
r169210 | mmichelson | 2009-01-19 09:52:15 -0600 (Mon, 19 Jan 2009) | 13 lines

Prevent a crash in chan_local due to a potential NULL pointer dereference

Move the check for if both channels on a local_pvt have generators to below
where p->chan is checked for NULLity (NULLness?). This prevents a crash from
occurring if p->chan is NULL.

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


........

................
r169277 | dbailey | 2009-01-19 09:33:41 -0700 (Mon, 19 Jan 2009) | 9 lines

Add enhanced MWI generation to take advantage of new dahdi line reversal MWI ability. 

(closes issue #14104)
Reported by: alecdavis
Patches:
      asttrunk-14104.diff2.txt uploaded by dbailey (license )
      chan_dahdi.rpas_and_fsk.diff.txt uploaded by alecdavis (license 585)
Tested by: alecdavis, dbailey

................
r169325 | dbailey | 2009-01-19 11:22:44 -0700 (Mon, 19 Jan 2009) | 3 lines

Get rid of magic number and replace with DAHDI_VMWI_NUMBER_MASK when 
determining the number of messages pending for MWI call

................
r169327 | mvanbaak | 2009-01-19 11:36:24 -0700 (Mon, 19 Jan 2009) | 11 lines

Make asterisk compile on non-amd64 versions of OpenBSD.

The HW_PHYSMEM64 is only available in latest OpenBSD and/or amd64 versions of OpenBSD.
Use HW_PHYSMEM when HW_PHYSMEM64 is not available.

(closes issue #14129)
Reported by: ys
Patches:
      2009011600_physmem64.diff.txt uploaded by mvanbaak (license 7)
Tested by: mvanbaak, jtodd

................
r169365 | tilghman | 2009-01-19 13:05:52 -0700 (Mon, 19 Jan 2009) | 11 lines

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

........
  r169364 | tilghman | 2009-01-19 13:49:25 -0600 (Mon, 19 Jan 2009) | 4 lines
  
  Truncate userevents at the end of a line, when the command exceeds the buffer.
  (closes issue #14278)
   Reported by: fnordian
........

................
r169367 | mvanbaak | 2009-01-19 13:09:11 -0700 (Mon, 19 Jan 2009) | 15 lines

Redo the event-based MWI in chan_skinny.

Dan saw regular segfaults with the old implementation and
rewrote it to make it really eventbased.
I altered it to be trunk compatible and wedhorn gave some feedback
and ideas how to make it even better.

(closes issue #13821)
Reported by: DEA
Patches:
      chan_skinny-mwi-events.txt uploaded by DEA (license 3)
Tested by: mvanbaak, DEA

"no probs by me" from wedhorn

................
r169369 | mvanbaak | 2009-01-19 13:14:27 -0700 (Mon, 19 Jan 2009) | 7 lines

fix assignment in swapmode plug.
Spotted and fix provided by ys

(closes issue #14129)
Reported by: ys
Tested by: ys

................
r169438 | kpfleming | 2009-01-19 14:42:46 -0700 (Mon, 19 Jan 2009) | 5 lines

ast_str_SQLGetData is *not* part of the ast_str API, it's part of the ast_odbc API and just happens to use an ast_str as the buffer; move all of it to res_odbc.c and res_odbc.h, renaming appropriately

along the way fix some minor coding style issues in strings.h and add some attribute_pure annotations to functions in the ast_str API


................
r169486 | twilson | 2009-01-20 11:48:14 -0700 (Tue, 20 Jan 2009) | 13 lines

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

........
  r169485 | twilson | 2009-01-20 12:40:56 -0600 (Tue, 20 Jan 2009) | 6 lines
  
  Don't play audio to the channel if we've masqueraded
  
  (closes issue #14066)
  Reported by: bluefox
  Tested by: otherwiseguy, bluefox
........

................
r169510 | twilson | 2009-01-20 12:22:24 -0700 (Tue, 20 Jan 2009) | 7 lines

Make a proper builtin attended transfer to parking work

This is an ugly hack from 1.4 that allows the timeout callback from a parked
call to use the right channel name for the callback when the park is done with
a builtin attended transfer (that isn't completed early).  This hasn't ever
worked in trunk and no one has complained yet, so eh.

................
r169557 | mmichelson | 2009-01-20 13:10:31 -0700 (Tue, 20 Jan 2009) | 19 lines

Convert the character pointers in a sip_request to be pointer offsets

When an ast_str expands to hold more data, any pointers that were pointing
to the data prior to the expansion will be pointing at invalid memory. This
change makes such pointers used in chan_sip.c instead be offsets from the
beginning of the string so that the same math may be applied no matter where
in memory the string resides.

To help ease this transition, a macro called REQ_OFFSET_TO_STR has been added
to chan_sip.c so that given a sip_request and an offset, the string at that
offset is returned.

(closes issue #14220)
Reported by: riksta
Tested by: putnopvut

Review http://reviewboard.digium.com/r/126/


................
r169574 | mmichelson | 2009-01-20 14:57:24 -0700 (Tue, 20 Jan 2009) | 6 lines

Use the default timeout for a queue instead of -1

(closes issue #14272)
Reported by: timking


................
r169611 | mmichelson | 2009-01-20 17:33:32 -0700 (Tue, 20 Jan 2009) | 22 lines

Fix device state parsing issues for channel names with multiple slashes

The fix being applied is a bit different for trunk and the 1.6.X branches.
For trunk, we only wish to strip off the characters beyond the second slash
if the channel is a Local channel (i.e. we are removing the /n from the device
name). Other channel technologies with multiple slashes (e.g. DAHDI) need the
information after the second slash in order to get the proper device state
information.

In addition to this fix, the 1.6.X branches are receiving a much more important
fix as well. The problem in 1.6.X is that the member's device name was being directly
changed instead of having a copy changed. This meant that we would strip off the
second slash and trailing characters and then leave the member's device name like
that permanently thereafter.

(closes issue #14014)
Reported by: kebl0155
Patches:
      14014_number2.patch uploaded by putnopvut (license 60)
Tested by: kebl0155


................
r169614 | twilson | 2009-01-20 17:40:55 -0700 (Tue, 20 Jan 2009) | 8 lines

Blocked revisions 169581 via svnmerge

........
  r169581 | twilson | 2009-01-20 17:49:34 -0600 (Tue, 20 Jan 2009) | 2 lines
  
  One-touch parking was calling back the wrong channel on timeout
........

................
r169620 | russell | 2009-01-21 03:26:07 -0700 (Wed, 21 Jan 2009) | 10 lines

Fix a regression in TCP support.

This patch fixes a problem that caused chan_sip to think that every open TCP session
was to a remote address of 0.0.0.0:0.

(closes issue #14287)
Reported by: jamesgolovich
Patches:
      bug-14287.diff.txt uploaded by jamesgolovich (license 176)

................
r169625 | russell | 2009-01-21 03:49:00 -0700 (Wed, 21 Jan 2009) | 2 lines

Remove properties that erroneously got merged into trunk

................
r169673 | murf | 2009-01-21 10:21:40 -0700 (Wed, 21 Jan 2009) | 14 lines

This patch corrects a segfault reported in 14289,
due to a null ptr being refd.

Yes, seanbright is right in the bug comments, that is the fix.
Sorry for this oversight; I guess my personal
usage didn't have this happen!

murf

(closes issue #14289)
Reported by: jamesgolovich



................
r169723 | tilghman | 2009-01-21 14:03:40 -0700 (Wed, 21 Jan 2009) | 15 lines

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

........
  r169722 | tilghman | 2009-01-21 15:02:32 -0600 (Wed, 21 Jan 2009) | 8 lines
  
  Extra NULLs in the output cause some terminal types to abort in the middle of
  a color code, causing terminal weirdness.
  (closes issue #14130)
   Reported by: coolmig
   Patches: 
         20090121__bug14130.diff.txt uploaded by Corydon76 (license 14)
   Tested by: Corydon76, coolmig
........

................
r169791 | mmichelson | 2009-01-21 14:53:55 -0700 (Wed, 21 Jan 2009) | 18 lines

Further fix some oddities in sip show users and sip show peers logic

ccesario on IRC pointed out that his sip peers were not displayed
properly when he would issue the command "sip show peers." The problem
was that the onlymatchonip field was used to determine if the endpoint
was a "peer" or "user." The tricky part is that a "friend" is supposed
to be treated as both a "user" and a "peer" but the logic would not allow
"friends" to show up as "peers" since onlymatchonip was set to FALSE
for friends.

I have modified the sip_peer structure to more explicitly keep track of
what type endpoint it is so that the various manager and CLI commands
will display the expected information

Reported by ccesario via IRC
Tested by ccesario


................
r169793 | mvanbaak | 2009-01-21 15:04:16 -0700 (Wed, 21 Jan 2009) | 2 lines

remove duplicated sentence.

................
r169794 | mmichelson | 2009-01-21 15:10:02 -0700 (Wed, 21 Jan 2009) | 17 lines

Fix a crash when saying certain numbers in Chinese

This commit fixes a crash that was occurring when attempting to
say a number between 10000 and 100000 due to dividing by 0.

This also removes some places where a "zero" is spoken when it
should not be.


(closes issue #14291)
Reported by: dant
Patches:
      say.c-14291.diff uploaded by dant (license 670)
Tested by: dant



................
r169798 | mmichelson | 2009-01-21 15:15:16 -0700 (Wed, 21 Jan 2009) | 10 lines

Blocked revisions 169797 via svnmerge

........
r169797 | mmichelson | 2009-01-21 16:14:52 -0600 (Wed, 21 Jan 2009) | 3 lines

Adding revision 169794 to 1.4 since 1.4 is also affected by the issue


........

................
r169866 | mmichelson | 2009-01-21 16:20:27 -0700 (Wed, 21 Jan 2009) | 3 lines

Test commit for test issue #14303


................
r169869 | file | 2009-01-21 16:25:27 -0700 (Wed, 21 Jan 2009) | 11 lines

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

........
  r169867 | file | 2009-01-21 19:20:47 -0400 (Wed, 21 Jan 2009) | 4 lines
  
  Read lock the contexts to maintain the locking order when we are notified that the state of a device has changed.
  (closes issue #13839)
  Reported by: mcallist
........

................
r169910 | rmudgett | 2009-01-21 17:23:30 -0700 (Wed, 21 Jan 2009) | 1 line

Whitespace changes only
................
r169944 | tilghman | 2009-01-21 17:44:52 -0700 (Wed, 21 Jan 2009) | 16 lines

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

........
  r169943 | tilghman | 2009-01-21 18:43:31 -0600 (Wed, 21 Jan 2009) | 9 lines
  
  AST_RWLOCK_INIT_VALUE is always defined.  What we really wanted to ask is
  whether autoconf detected a static initializer value.  This fixes rwlocks
  on all such platforms (mainly, Mac OS X).
  (closes issue #13767)
   Reported by: jcovert
   Patches: 
         20090121__bug13767.diff.txt uploaded by Corydon76 (license 14)
   Tested by: jcovert, Corydon76
........

................
r170007 | rmudgett | 2009-01-21 19:10:41 -0700 (Wed, 21 Jan 2009) | 3 lines

*  Adjust some conditionals to balance curly braces.
*  Other minor changes.

................
r170047 | file | 2009-01-22 08:01:54 -0700 (Thu, 22 Jan 2009) | 4 lines

Clear the autoloop flag when parsing and setting the context/extension/priority to go back to. When the channel executes a PBX again we want it to start out at the point we explicitly say and at that point it will not yet be doing autoloop.
(closes issue #14304)
Reported by: jcovert

................
r170051 | file | 2009-01-22 08:14:50 -0700 (Thu, 22 Jan 2009) | 13 lines

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

........
  r170050 | file | 2009-01-22 11:13:56 -0400 (Thu, 22 Jan 2009) | 6 lines
  
  Do a string comparison instead of pointer comparison since some people specify the context they are actually in as an argument to get around some funkiness.
  (closes issue #14011)
  Reported by: dveiga
  Patches:
        pbx.c.patch uploaded by dveiga (license 665)
........

................
r170112 | dbailey | 2009-01-22 08:49:24 -0700 (Thu, 22 Jan 2009) | 8 lines

change VMWI to use new DAHDI_VMWI ioctl call.  
Change configure script to detect the new ioctl call data structure.    
(issue #14104)
Reported by: alecdavis
Patches:
      mwiioctl_structure_asterisk.diff4.txt uploaded by dbailey (license )
Tested by: alecdavis, dbailey

................
r170148 | file | 2009-01-22 09:52:21 -0700 (Thu, 22 Jan 2009) | 11 lines

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

........
  r170147 | file | 2009-01-22 12:50:54 -0400 (Thu, 22 Jan 2009) | 4 lines
  
  If we are unable to request a DAHDI pseudo channel and we are using the user introduction without review option make sure it gets unset so other code does not blindly assume a DAHDI pseudo channel exists.
  (closes issue #14282)
  Reported by: cheesegrits
........

................
r170165 | tilghman | 2009-01-22 10:19:28 -0700 (Thu, 22 Jan 2009) | 13 lines

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

........
  r170158 | tilghman | 2009-01-22 11:18:07 -0600 (Thu, 22 Jan 2009) | 6 lines
  
  Allow global variables after substitution to be as long as other variables.
  (closes issue #14263)
   Reported by: markd
   Patches: 
         20090120__bug14263.diff.txt uploaded by Corydon76 (license 14)
........

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

Modified:
    team/group/newcdr/   (props changed)
    team/group/newcdr/CHANGES
    team/group/newcdr/apps/app_meetme.c
    team/group/newcdr/apps/app_parkandannounce.c
    team/group/newcdr/apps/app_queue.c
    team/group/newcdr/apps/app_userevent.c
    team/group/newcdr/apps/app_voicemail.c
    team/group/newcdr/build_tools/menuselect-deps.in
    team/group/newcdr/cdr/cdr_adaptive_odbc.c
    team/group/newcdr/cdr/cdr_odbc.c
    team/group/newcdr/channels/chan_dahdi.c
    team/group/newcdr/channels/chan_local.c
    team/group/newcdr/channels/chan_misdn.c
    team/group/newcdr/channels/chan_sip.c
    team/group/newcdr/channels/chan_skinny.c
    team/group/newcdr/configs/chan_dahdi.conf.sample
    team/group/newcdr/configs/extconfig.conf.sample
    team/group/newcdr/configs/sip.conf.sample
    team/group/newcdr/configure
    team/group/newcdr/configure.ac
    team/group/newcdr/doc/tex/extensions.tex
    team/group/newcdr/funcs/func_odbc.c
    team/group/newcdr/include/asterisk/autoconfig.h.in
    team/group/newcdr/include/asterisk/linkedlists.h
    team/group/newcdr/include/asterisk/res_odbc.h
    team/group/newcdr/include/asterisk/say.h
    team/group/newcdr/include/asterisk/strings.h
    team/group/newcdr/include/asterisk/tcptls.h
    team/group/newcdr/main/ast_expr2.c
    team/group/newcdr/main/ast_expr2.y
    team/group/newcdr/main/asterisk.c
    team/group/newcdr/main/features.c
    team/group/newcdr/main/http.c
    team/group/newcdr/main/manager.c
    team/group/newcdr/main/pbx.c
    team/group/newcdr/main/say.c
    team/group/newcdr/main/tcptls.c
    team/group/newcdr/makeopts.in
    team/group/newcdr/pbx/pbx_config.c
    team/group/newcdr/pbx/pbx_dundi.c
    team/group/newcdr/res/ael/pval.c
    team/group/newcdr/res/res_config_odbc.c
    team/group/newcdr/res/res_odbc.c
    team/group/newcdr/res/res_timing_timerfd.c
    team/group/newcdr/utils/refcounter.c

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

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

Propchange: team/group/newcdr/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Thu Jan 22 12:36:50 2009
@@ -1,1 +1,1 @@
-/trunk:1-168653
+/trunk:1-170220

Modified: team/group/newcdr/CHANGES
URL: http://svn.digium.com/svn-view/asterisk/team/group/newcdr/CHANGES?view=diff&rev=170231&r1=170230&r2=170231
==============================================================================
--- team/group/newcdr/CHANGES (original)
+++ team/group/newcdr/CHANGES Thu Jan 22 12:36:50 2009
@@ -40,7 +40,7 @@
    version received is different from the current SDP session version.  This
    option is required to interoperate with devices that have non-standard SDP
    session version implementations (observed with Microsoft OCS).  This option
-   is diabled by default.
+   is disabled by default.
  * The parsing of register => lines in sip.conf has been modified to allow a port
    to be present in the "user" portion. Please see the sip.conf.sample file for more
    information

Modified: team/group/newcdr/apps/app_meetme.c
URL: http://svn.digium.com/svn-view/asterisk/team/group/newcdr/apps/app_meetme.c?view=diff&rev=170231&r1=170230&r2=170231
==============================================================================
--- team/group/newcdr/apps/app_meetme.c (original)
+++ team/group/newcdr/apps/app_meetme.c Thu Jan 22 12:36:50 2009
@@ -2187,10 +2187,12 @@
 		user->user_no = AST_LIST_LAST(&conf->userlist)->user_no + 1;
 
 	if (rt_schedule && conf->maxusers)
-		if (user->user_no > conf->maxusers) {
+		if (conf->users >= conf->maxusers) {
 			/* Sorry, but this confernce has reached the participant limit! */	
 			if (!ast_streamfile(chan, "conf-full", chan->language))
 				ast_waitstream(chan, "");
+			ast_mutex_unlock(&conf->playlock);
+			user->user_no = 0;
 			goto outrun;
 		}
 
@@ -3453,9 +3455,9 @@
 	if (cnf) {
 		if (confflags && !cnf->chan &&
 		    !ast_test_flag(confflags, CONFFLAG_QUIET) &&
-		    ast_test_flag(confflags, CONFFLAG_INTROUSER)) {
+		    ast_test_flag(confflags, CONFFLAG_INTROUSER | CONFFLAG_INTROUSERNOREVIEW)) {
 			ast_log(LOG_WARNING, "No DAHDI channel available for conference, user introduction disabled (is chan_dahdi loaded?)\n");
-			ast_clear_flag(confflags, CONFFLAG_INTROUSER);
+			ast_clear_flag(confflags, CONFFLAG_INTROUSER | CONFFLAG_INTROUSERNOREVIEW);
 		}
 		
 		if (confflags && !cnf->chan &&
@@ -3555,9 +3557,9 @@
 	if (cnf) {
 		if (confflags && !cnf->chan &&
 		    !ast_test_flag(confflags, CONFFLAG_QUIET) &&
-		    ast_test_flag(confflags, CONFFLAG_INTROUSER)) {
+		    ast_test_flag(confflags, CONFFLAG_INTROUSER | CONFFLAG_INTROUSERNOREVIEW)) {
 			ast_log(LOG_WARNING, "No DAHDI channel available for conference, user introduction disabled (is chan_dahdi loaded?)\n");
-			ast_clear_flag(confflags, CONFFLAG_INTROUSER);
+			ast_clear_flag(confflags, CONFFLAG_INTROUSER | CONFFLAG_INTROUSERNOREVIEW);
 		}
 		
 		if (confflags && !cnf->chan &&

Modified: team/group/newcdr/apps/app_parkandannounce.c
URL: http://svn.digium.com/svn-view/asterisk/team/group/newcdr/apps/app_parkandannounce.c?view=diff&rev=170231&r1=170230&r2=170231
==============================================================================
--- team/group/newcdr/apps/app_parkandannounce.c (original)
+++ team/group/newcdr/apps/app_parkandannounce.c Thu Jan 22 12:36:50 2009
@@ -121,8 +121,10 @@
 	dialtech = strsep(&args.dial, "/");
 	ast_verb(3, "Dial Tech,String: (%s,%s)\n", dialtech, args.dial);
 
-	if (!ast_strlen_zero(args.return_context))
+	if (!ast_strlen_zero(args.return_context)) {
+		ast_clear_flag(chan, AST_FLAG_IN_AUTOLOOP);
 		ast_parseable_goto(chan, args.return_context);
+	}
 
 	ast_verb(3, "Return Context: (%s,%s,%d) ID: %s\n", chan->context, chan->exten, chan->priority, chan->cid.cid_num);
 		if (!ast_exists_extension(chan, chan->context, chan->exten, chan->priority, chan->cid.cid_num)) {

Modified: team/group/newcdr/apps/app_queue.c
URL: http://svn.digium.com/svn-view/asterisk/team/group/newcdr/apps/app_queue.c?view=diff&rev=170231&r1=170230&r2=170231
==============================================================================
--- team/group/newcdr/apps/app_queue.c (original)
+++ team/group/newcdr/apps/app_queue.c Thu Jan 22 12:36:50 2009
@@ -1032,7 +1032,7 @@
 			ast_copy_string(interface, m->state_interface, sizeof(interface));
 
 			if ((slash_pos = strchr(interface, '/')))
-				if ((slash_pos = strchr(slash_pos + 1, '/')))
+				if (!strncasecmp(interface, "Local/", 6) && (slash_pos = strchr(slash_pos + 1, '/')))
 					*slash_pos = '\0';
 
 			if (!strcasecmp(interface, sc->dev)) {
@@ -1146,7 +1146,7 @@
 
 	q->dead = 0;
 	q->retry = DEFAULT_RETRY;
-	q->timeout = -1;
+	q->timeout = DEFAULT_TIMEOUT;
 	q->maxlen = 0;
 	q->announcefrequency = 0;
 	q->minannouncefrequency = DEFAULT_MIN_ANNOUNCE_FREQUENCY;

Modified: team/group/newcdr/apps/app_userevent.c
URL: http://svn.digium.com/svn-view/asterisk/team/group/newcdr/apps/app_userevent.c?view=diff&rev=170231&r1=170230&r2=170231
==============================================================================
--- team/group/newcdr/apps/app_userevent.c (original)
+++ team/group/newcdr/apps/app_userevent.c Thu Jan 22 12:36:50 2009
@@ -58,15 +58,22 @@
 
 static int userevent_exec(struct ast_channel *chan, void *data)
 {
-	char *parse, buf[2048] = "";
-	int x, buflen = 0;
+	char *parse;
+	int x;
 	AST_DECLARE_APP_ARGS(args,
 		AST_APP_ARG(eventname);
 		AST_APP_ARG(extra)[100];
 	);
+	struct ast_str *body = ast_str_create(16);
 
 	if (ast_strlen_zero(data)) {
 		ast_log(LOG_WARNING, "UserEvent requires an argument (eventname,optional event body)\n");
+		ast_free(body);
+		return -1;
+	}
+
+	if (!body) {
+		ast_log(LOG_WARNING, "Unable to allocate buffer\n");
 		return -1;
 	}
 
@@ -75,13 +82,11 @@
 	AST_STANDARD_APP_ARGS(args, parse);
 
 	for (x = 0; x < args.argc - 1; x++) {
-		ast_copy_string(buf + buflen, args.extra[x], sizeof(buf) - buflen - 2);
-		buflen += strlen(args.extra[x]);
-		ast_copy_string(buf + buflen, "\r\n", 3);
-		buflen += 2;
+		ast_str_append(&body, 0, "%s\r\n", args.extra[x]);
 	}
 
-	manager_event(EVENT_FLAG_USER, "UserEvent", "UserEvent: %s\r\n%s", args.eventname, buf);
+	manager_event(EVENT_FLAG_USER, "UserEvent", "UserEvent: %s\r\n%s", args.eventname, ast_str_buffer(body));
+	ast_free(body);
 
 	return 0;
 }

Modified: team/group/newcdr/apps/app_voicemail.c
URL: http://svn.digium.com/svn-view/asterisk/team/group/newcdr/apps/app_voicemail.c?view=diff&rev=170231&r1=170230&r2=170231
==============================================================================
--- team/group/newcdr/apps/app_voicemail.c (original)
+++ team/group/newcdr/apps/app_voicemail.c Thu Jan 22 12:36:50 2009
@@ -47,10 +47,8 @@
 /*** MAKEOPTS
 <category name="MENUSELECT_OPTS_app_voicemail" displayname="Voicemail Build Options" positive_output="yes" remove_on_change="apps/app_voicemail.o apps/app_voicemail.so apps/app_directory.o apps/app_directory.so">
 	<member name="ODBC_STORAGE" displayname="Storage of Voicemail using ODBC">
-		<depend>odbc</depend>
+		<depend>generic_odbc</depend>
 		<depend>ltdl</depend>
-		<use>unixodbc</use>
-		<use>iodbc</use>
 		<conflict>IMAP_STORAGE</conflict>
 		<defaultenabled>no</defaultenabled>
 	</member>
@@ -7176,7 +7174,102 @@
 	return res;
 }
 
-/* Hebrew syntax */
+/* Version of vm_intro() designed to work for many languages.
+ *
+ * It is hoped that this function can prevent the proliferation of 
+ * language-specific vm_intro() functions and in time replace the language-
+ * specific functions which already exist.  An examination of the language-
+ * specific functions revealed that they all corrected the same deficiencies
+ * in vm_intro_en() (which was the default function). Namely:
+ *
+ *  1) The vm-Old and vm-INBOX sound files were overloaded.  The English 
+ *     wording of the voicemail greeting hides this problem.  For example,
+ *     vm-INBOX contains only the word "new".  This means that both of these
+ *     sequences produce valid utterances:
+ *      * vm-youhave digit/1 vm-INBOX vm-message (you have one new message)
+ *      * vm-press digit/1 vm-for vm-INBOX vm-messages (press 1 for new messages)
+ *     However, if we rerecord vm-INBOX to say "the new" (which is unavoidable
+ *     in many languages) the first utterance becomes "you have 1 the new message".
+ *  2) The function contains hardcoded rules for pluralizing the word "message".
+ *     These rules are correct for English, but not for many other languages.
+ *  3) No attempt is made to pluralize the adjectives ("old" and "new") as
+ *     required in many languages.
+ *  4) The gender of the word for "message" is not specified. This is a problem
+ *     because in many languages the gender of the number in phrases such
+ *     as "you have one new message" must match the gender of the word
+ *     meaning "message".
+ *
+ * Fixing these problems for each new language has meant duplication of effort.
+ * This new function solves the problems in the following general ways:
+ *  1) Add new sound files vm-new and vm-old.  These can be linked to vm-INBOX
+ *     and vm-Old respectively for those languages where it makes sense.
+ *  2) Call ast_say_counted_noun() to put the proper gender and number prefix
+ *     on vm-message.
+ *  3) Call ast_say_counted_adjective() to put the proper gender and number
+ *     prefix on vm-new and vm-old (none for English).
+ *  4) Pass the gender of the language's word for "message" as an agument to
+ *     this function which is can in turn pass on to the functions which 
+ *     say numbers and put endings on nounds and adjectives.
+ *
+ * All languages require these messages:
+ *  vm-youhave		"You have..."
+ *  vm-and		"and"
+ *  vm-no		"no" (in the sense of "none", as in "you have no messages")
+ *
+ * To use it for English, you will need these additional sound files:
+ *  vm-new		"new"
+ *  vm-message		"message", singular
+ *  vm-messages		"messages", plural
+ *
+ * If you use it for Russian and other slavic languages, you will need these additional sound files:
+ *
+ *  vm-newn		"novoye" (singular, neuter)
+ *  vm-newx		"novikh" (counting plural form, genative plural)
+ *  vm-message		"sobsheniye" (singular form)
+ *  vm-messagex1	"sobsheniya" (first counting plural form, genative singular)
+ *  vm-messagex2	"sobsheniy" (second counting plural form, genative plural)
+ *  digits/1n		"odno" (neuter singular for phrases such as "one message" or "thirty one messages")
+ *  digits/2n		"dva" (neuter singular)
+ */
+static int vm_intro_multilang(struct ast_channel *chan, struct vm_state *vms, const char message_gender[])
+{
+	int res;
+	int lastnum = 0;
+
+	res = ast_play_and_wait(chan, "vm-youhave");
+
+	if (!res && vms->newmessages) {
+		lastnum = vms->newmessages;
+
+		if (!(res = ast_say_number(chan, lastnum, AST_DIGIT_ANY, chan->language, message_gender))) {
+			res = ast_say_counted_adjective(chan, lastnum, "vm-new", message_gender);
+		}
+
+		if (!res && vms->oldmessages) {
+			res = ast_play_and_wait(chan, "vm-and");
+		}
+	}
+
+	if (!res && vms->oldmessages) {
+		lastnum = vms->oldmessages;
+
+		if (!(res = ast_say_number(chan, lastnum, AST_DIGIT_ANY, chan->language, message_gender))) {
+			res = ast_say_counted_adjective(chan, lastnum, "vm-old", message_gender);
+		}
+	}
+
+	if (!res) {
+		if (lastnum == 0) {
+			res = ast_play_and_wait(chan, "vm-no");
+		} else {
+			res = ast_say_counted_noun(chan, lastnum, "vm-message");
+		}
+	}
+
+	return res;
+}
+
+/* Default Hebrew syntax */
 static int vm_intro_he(struct ast_channel *chan, struct vm_state *vms)
 {
 	int res = 0;
@@ -7859,78 +7952,6 @@
 	return res;
 }
 
-static int get_lastdigits(int num)
-{
-	num %= 100;
-	return (num < 20) ? num : num % 10;
-}
-
-static int vm_intro_ru(struct ast_channel *chan,struct vm_state *vms)
-{
-	int res;
-	int lastnum = 0;
-	int dcnum;
-
-	res = ast_play_and_wait(chan, "vm-youhave");
-	if (!res && vms->newmessages) {
-		lastnum = get_lastdigits(vms->newmessages);
-		dcnum = vms->newmessages - lastnum;
-		if (dcnum)
-			res = say_and_wait(chan, dcnum, chan->language);
-		if (!res && lastnum) {
-			if (lastnum == 1) 
-				res = ast_play_and_wait(chan, "digits/odno");
-			else
-				res = say_and_wait(chan, lastnum, chan->language);
-		}
-
-		if (!res)
-			res = ast_play_and_wait(chan, (lastnum == 1) ? "vm-novoe" : "vm-novyh");
-
-		if (!res && vms->oldmessages)
-			res = ast_play_and_wait(chan, "vm-and");
-	}
-
-	if (!res && vms->oldmessages) {
-		lastnum = get_lastdigits(vms->oldmessages);
-		dcnum = vms->oldmessages - lastnum;
-		if (dcnum)
-			res = say_and_wait(chan, dcnum, chan->language);
-		if (!res && lastnum) {
-			if (lastnum == 1) 
-				res = ast_play_and_wait(chan, "digits/odno");
-			else
-				res = say_and_wait(chan, lastnum, chan->language);
-		}
-
-		if (!res)
-			res = ast_play_and_wait(chan, (lastnum == 1) ? "vm-staroe" : "vm-staryh");
-	}
-
-	if (!res && !vms->newmessages && !vms->oldmessages) {
-		lastnum = 0;
-		res = ast_play_and_wait(chan, "vm-no");
-	}
-
-	if (!res) {
-		switch (lastnum) {
-		case 1:
-			res = ast_play_and_wait(chan, "vm-soobshenie");
-			break;
-		case 2:
-		case 3:
-		case 4:
-			res = ast_play_and_wait(chan, "vm-soobsheniya");
-			break;
-		default:
-			res = ast_play_and_wait(chan, "vm-soobsheniy");
-			break;
-		}
-	}
-
-	return res;
-}
-
 /* CHINESE (Taiwan) syntax */
 static int vm_intro_tw(struct ast_channel *chan, struct vm_state *vms)
 {
@@ -7967,77 +7988,6 @@
 		if (!res)
 			res = ast_play_and_wait(chan, "vm-messages");
 	}
-	return res;
-}
-
-/* UKRAINIAN syntax */
-/* in ukrainian the syntax is different so we need the following files
- * --------------------------------------------------------
- * /digits/ua/1e 'odne'
- * vm-nove       'nove'
- * vm-stare      'stare'
- */
-static int vm_intro_ua(struct ast_channel *chan,struct vm_state *vms)
-{
-	int res;
-	int lastnum = 0;
-	int dcnum;
-
-	res = ast_play_and_wait(chan, "vm-youhave");
-	if (!res && vms->newmessages) {
-		lastnum = get_lastdigits(vms->newmessages);
-		dcnum = vms->newmessages - lastnum;
-		if (dcnum)
-			res = say_and_wait(chan, dcnum, chan->language);
-		if (!res && lastnum) {
-			if (lastnum == 1) 
-				res = ast_play_and_wait(chan, "digits/ua/1e");
-			else
-				res = say_and_wait(chan, lastnum, chan->language);

[... 7184 lines stripped ...]



More information about the asterisk-commits mailing list