[asterisk-commits] schmidts: branch schmidts/unleash-the-beast r343159 - in /team/schmidts/unlea...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed Nov 2 16:41:54 CDT 2011


Author: schmidts
Date: Wed Nov  2 16:41:26 2011
New Revision: 343159

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=343159
Log:
Multiple revisions 340279,340284,340365,340418,340470,340522,340534,340576,340662,340715,340717,340809,340863,340878,340970,341022,341074,341088,341108,341112,341189,341254,341312,341314,341366,341379,341435,341529,341664,341704,341717,341806,341809,341906,341921,342061,342223,342276,342328,342380,342383,342435,342484,342487,342545,342602,342661,342769,342869,342927,342990

........
  r340279 | rmudgett | 2011-10-11 18:23:14 +0000 (Tue, 11 Oct 2011) | 31 lines
  
  Convert registered AMI actions to ao2 objects.
  
  * Fixed race between calling an AMI action callback and unregistering that
  action.  Refixes ASTERISK-13784 broken by ASTERISK-17785 change.
  
  * Fixed potential memory leak if an AMI action failed to get registered
  because is already was registered.  Part of the ao2 conversion.
  
  * Fixed AMI ListCommands action not walking the actions list with a lock
  held.
  
  * Fix usage of ast_strdupa() and alloca() in loops.  Excess stack usage.
  
  * Fix AMI Originate action Variable header requiring a space after the
  header colon.  Reported by Yaroslav Panych on the asterisk-dev list.
  
  * Increased the number of listed variables allowed per AMI Originate
  action Variable header to 64.
  
  * Fixed AMI GetConfigJSON action output format.
  
  * Fixed usage of res contents outside of scope in append_channel_vars().
  
  * Fixed inconsistency of config file channelvars option.  The values no
  longer accumulate with every channelvars option in the config file.  Only
  the last value is kept to be consistent with the CLI "manager show
  settings" command.
  
  (closes issue ASTERISK-18479)
  Reported by: Jaco Kroon
........
  r340284 | rmudgett | 2011-10-11 19:16:47 +0000 (Tue, 11 Oct 2011) | 20 lines
  
  Fix some potential deadlocks pointed out by helgrind.
  
  * Fixed deadlock potential calling dialog_unlink_all() in
  __sip_autodestruct().  Found by helgrind.
  
  * Fixed deadlock potential in handle_request_invite() after calling
  sip_new().  Found by helgrind.
  
  * The sip_new() function now returns with the created channel already
  locked.
  
  * Removed the dead code that starts a PBX in in sip_new().  No sip_new()
  callers caused that code to be executed and it was a bad thing to do
  anyway.
  
  * Removed unused parameters and return value from dialog_unlink_all().
  
  * Made dialog_unlink_all() and __sip_autodestruct() safely obtain the
  owner and private channel locks without a deadlock avoidance loop.
........
  r340365 | rmudgett | 2011-10-11 21:03:15 +0000 (Tue, 11 Oct 2011) | 15 lines
  
  Add protection for SS7 channel allocation and better glare handling.
  
  * Added a CLI "ss7 show channels" command that might prove useful for
  future debugging.
  
  * Made the incoming SS7 channel event check and gripe message uniform.
  
  * Made sure that the DNID string for an incoming call is always
  initialized.
  
  (issue ASTERISK-17966)
  Reported by: Kenneth Van Velthoven
  Patches:
        jira_asterisk_17966_v1.8_glare.patch (license #5621) patch uploaded by rmudgett
........
  r340418 | pabelanger | 2011-10-12 16:27:23 +0000 (Wed, 12 Oct 2011) | 5 lines
  
  Fix verbose messages when IPv6 logic was added
  
  (closes issue ASTERISK-18612)
  Reported by: Tim Osman
........
  r340470 | rmudgett | 2011-10-12 17:49:19 +0000 (Wed, 12 Oct 2011) | 10 lines
  
  Update MeetMe p and X option documentation when interacting with the s option.
  
  ASTERISK-12175 changed the p and X options to not interfere with the s
  option when they are used together.  It makes more sense for the s option
  to have priority for the DTMF '*' key since it cannot change its
  activation code.  Otherwise, you could not use option s with the p or X
  options.
  
  JIRA AST-671
........
  r340522 | rmudgett | 2011-10-12 20:07:33 +0000 (Wed, 12 Oct 2011) | 7 lines
  
  Initialize the PRI channel alarms properly on startup.
  
  The PRI channel alarms were initialized with an inverted sense.
  
  (closes issue ASTERISK-18710)
  Reported by: Tzafrir Cohen
........
  r340534 | twilson | 2011-10-12 20:19:36 +0000 (Wed, 12 Oct 2011) | 9 lines
  
  Update SIP realtime fullcontact regardless of caching
  
  We should update the fullcontact field in the realtime table whether or
  not rtcachefriends is set. There is no reason to treat a non-cached
  realtime entity differently than a cached in this regard.
  
  (closes issue ASTERISK-18446)
   Reported by: wdoekes
........
  r340576 | schmidts | 2011-10-12 20:30:37 +0000 (Wed, 12 Oct 2011) | 3 lines
  
  Store route-set from provisional SIP responses so early-dialog requests can be routed properly
........
  r340662 | twilson | 2011-10-13 00:05:17 +0000 (Thu, 13 Oct 2011) | 10 lines
  
  Don't skip the query field on a realtime multi query
  
  There is no documented reason to not add the query field to the varlist
  returned by a realtime multi query, despite the config category being
  set to its value. Of course, there is no documentation that the category
  should be set to the value either. There is lots of no documentation
  when it comes to realtime. But, other engines do not skip this field so
  I am forcing this backend to follow the convention, because not doing so
  is very silly.
........
  r340715 | twilson | 2011-10-13 06:52:12 +0000 (Thu, 13 Oct 2011) | 4 lines
  
  Initialize ast_sockaddr before calling ast_sockaddr_resolve
  
  Avoid possible jump based on unitialized value
........
  r340717 | schmidts | 2011-10-13 06:58:00 +0000 (Thu, 13 Oct 2011) | 3 lines
  
  storing the route-set also on a 181 response not only on 180,182 or 183.
........
  r340809 | rmudgett | 2011-10-13 22:48:58 +0000 (Thu, 13 Oct 2011) | 23 lines
  
  Fix DTMF blind transfer continuing to execute dialplan after transfer.
  
  Party A calls Party B.
  Party A DTMF blind transfers Party B to Party C.
  Party A channel continues to execute dialplan.
  
  * Fixed the return value of builtin_blindtransfer() to return the correct
  value after a transfer so the dialplan will not keep executing.
  
  * Removed unnecessary connected line update that did not really do
  anything.
  
  * Made access to GOTO_ON_BLINDXFR thread safe in check_goto_on_transfer().
  
  * Fixed leak of xferchan for failure cases in check_goto_on_transfer().
  
  * Updated debug messages in builtin_blindtransfer() and
  check_goto_on_transfer().
  
  (closes issue ASTERISK-18275)
  Reported by: rmudgett
  Tested by: rmudgett
........
  r340863 | jrose | 2011-10-14 15:58:44 +0000 (Fri, 14 Oct 2011) | 5 lines
  
  Fixes some support level info so that it can be read by menuselect.
  
  (issue ASTERISK-18268)
  Review: https://reviewboard.asterisk.org/r/1525/
........
  r340878 | twilson | 2011-10-14 16:33:28 +0000 (Fri, 14 Oct 2011) | 8 lines
  
  Avoid unnecessary WARNING message
  
  Add AST_CONTROL_UPDATE_RTP_PEER frame to be ignored here to avoid
  displaying a WARNING message.
  
  (closes issue ASTERISK-18610)
   Patch by: Kristijan_Vrban
........
  r340970 | kmoore | 2011-10-14 20:49:39 +0000 (Fri, 14 Oct 2011) | 8 lines
  
  Quiet RTCP Receiver Reports during fax transmission
  
  RTCP is now disabled for "inactive" RTP audio streams during SIP T.38 sessions.
  The ability to disable RTCP streams in res_rtp_asterisk was missing, so this
  code was added to support the bug fix.
  
  (closes issue ASTERISK-18400)
........
  r341022 | kpfleming | 2011-10-14 21:36:06 +0000 (Fri, 14 Oct 2011) | 10 lines
  
  Change the internal name of the menuselect options that are used to control
  whether modules are embedded or not; using just the bare category name led to
  accidentally enabling these options when users used the wrong "--enable"
  operation on the menuselect command line.
  
  Now the internal option names are prefixed with "EMBED_", so they won't be
  the same as the name of the category containing the modules they control
  the embedding of.
........
  r341074 | tzafrir | 2011-10-17 15:08:21 +0000 (Mon, 17 Oct 2011) | 5 lines
  
  Remove an unused include of md5.h
  
  Unused include of asterisk/md5.h in pbx_realtime.c . A commit needed to
  test the commit message.
........
  r341088 | twilson | 2011-10-17 15:35:05 +0000 (Mon, 17 Oct 2011) | 4 lines
  
  Don't try to remove peers without IPs from peers_by_ip
  
  (closes issue ASTERISK-18696)
........
  r341108 | pabelanger | 2011-10-17 16:22:19 +0000 (Mon, 17 Oct 2011) | 2 lines
  
  Voicemail compiler flags are 'core' support
........
  r341112 | pabelanger | 2011-10-17 16:23:33 +0000 (Mon, 17 Oct 2011) | 2 lines
  
  Fix previous commit
........
  r341189 | twilson | 2011-10-17 17:35:23 +0000 (Mon, 17 Oct 2011) | 10 lines
  
  Initialize variables before calling parse_uri
  
  If parse_uri was called with an empty URI, some pointers would be
  modified and an invalid read could result. This patch avoids calling
  parse_uri with an empty contact uri when parsing REGISTER requests. 
  
  AST-2011-012
  
  (closes issue ASTERISK-18668)
........
  r341254 | rmudgett | 2011-10-18 21:03:04 +0000 (Tue, 18 Oct 2011) | 13 lines
  
  More parking issues.
  
  * Fix potential deadlocks in SIP and IAX blind transfer to parking.
  
  * Fix SIP, IAX, DAHDI analog, and MGCP channel drivers to respect the
  parkext_exclusive option with transfers (Park(,,,,,exclusive_lot)
  parameter).  Created ast_park_call_exten() and ast_masq_park_call_exten()
  to maintian API compatibility.
  
  * Made masq_park_call() handle a failed ast_channel_masquerade() setup.
  
  * Reduced excessive struct parkeduser.peername[] size.
........
  r341312 | may | 2011-10-18 23:20:53 +0000 (Tue, 18 Oct 2011) | 3 lines
  
  fix issue on channel numbering (calls could have same channel number
  on heavy loaded system)
........
  r341314 | twilson | 2011-10-18 23:37:57 +0000 (Tue, 18 Oct 2011) | 12 lines
  
  Don't resolve numeric hosts or contact unresolved hosts
  
  If a SIP dial string contains a numeric hostname that is not a peer name,
  don't try to resolve it as it is unlikely that someone really means
  Dial(SIP/0.0.4.26) when Dial(SIP/1050) is called. Also, make sure that
  create_addr returns -1 if an address isn't resolved so that we don't
  attempt to send SIP requests to an address that doesn't resolve.
  
  (closes issue ASTERISK-17146, ASTERISK-17716)
  
  Review: https://reviewboard.asterisk.org/r/1532/
........
  r341366 | schmidts | 2011-10-19 07:15:51 +0000 (Wed, 19 Oct 2011) | 2 lines
  
  Don't sent in-dialog requests like UPDATE when Asterisk has not yet received a Contact URI from a UAS
........
  r341379 | twilson | 2011-10-19 07:38:52 +0000 (Wed, 19 Oct 2011) | 7 lines
  
  Don't use is_int() since it doesn't link well on all platforms
  
  Just create an normal API function in strings.h that does the same thing
  just to be safe.
  
  ASTERISK-17146
........
  r341435 | pabelanger | 2011-10-19 18:59:39 +0000 (Wed, 19 Oct 2011) | 12 lines
  
  Outgoing calls with Google Voice
  
  Google has recently make some changes (again) to their protocol.  Rather then
  patching asterisk to flip between the two different methods, we now allow both.
  
  Lets hope this keeps Google Voice happy for a while.
  
  (closes issue ASTERISK-18714)
  Reported by: Iordan Iordanov
  Patches:
      chan_gtalk.patch uploaded by Iordan Iordanov (licenses 6311)
........
  r341529 | twilson | 2011-10-20 15:11:44 +0000 (Thu, 20 Oct 2011) | 6 lines
  
  Clean up ast_check_digits
  
  The code was originally copied from the is_int() function in the AEL
  code. wdoekes pointed out that the function should take a const char*
  and that their was an unneeded variable. This is now fixed.
........
  r341664 | pabelanger | 2011-10-20 20:46:58 +0000 (Thu, 20 Oct 2011) | 2 lines
  
  Updated documentation for the optional CID parameter with CALLERID
........
  r341704 | pabelanger | 2011-10-20 21:26:41 +0000 (Thu, 20 Oct 2011) | 2 lines
  
  Fixed typo from previous commit
........
  r341717 | rmudgett | 2011-10-20 21:54:11 +0000 (Thu, 20 Oct 2011) | 18 lines
  
  Fix AGI exec Park to honor the Park application parameters.
  
  The fix for ASTERISK-12715 and ASTERISK-12685 added a check for the Park
  application because the channel needed to be masqueraded to prevent a
  crash.  Since the Park application now always masquerades the channel into
  the parking lot, the special check is no longer needed.  The fix also
  resulted in AGI exec Park attempting to double park the call and not honor
  the Park application parameters.
  
  * Removed no longer necessary call to ast_masq_park_call() by AGI exec for
  the Park application.  (Reverts -r146923)
  
  * Fix Park application to only return 0 or -1.  The AGI exec Park was
  causing broken pipe error messages because the Park application returned 1
  on successful park.
  
  (closes issue ASTERISK-18737)
........
  r341806 | mnicholson | 2011-10-21 16:18:51 +0000 (Fri, 21 Oct 2011) | 4 lines
  
  don't limit the length of app and function arguments
  
  ASTERISK-18395
........
  r341809 | mnicholson | 2011-10-21 16:41:59 +0000 (Fri, 21 Oct 2011) | 4 lines
  
  only process args that exist
  
  ASTERISK-18395
........
  r341906 | irroot | 2011-10-23 11:09:42 +0000 (Sun, 23 Oct 2011) | 5 lines
  
  Whitespace Fixups / Add Braces
  
  This janitorial patch is related to work on RB1538
........
  r341921 | irroot | 2011-10-23 11:36:01 +0000 (Sun, 23 Oct 2011) | 1 line
  
  Revert Janitor patch 341906 For now 
........
  r342061 | jrose | 2011-10-24 19:49:51 +0000 (Mon, 24 Oct 2011) | 11 lines
  
  Outbound SIP OPTIONS messages will now include fromuser of related peer.
  
  This behavior matches up more closely with the way invite/register/etc are handled.
  This patch also modifies some adjacent code for code style compliance.  Pretty minor.
  
  (closes issue ASTERISK-17616)
  Reported by: Jeremy Kister
  Patches:
       chan_sip.c-options-fromuser-fix-v1.patch uploaded by Jeremy Kister (license #6232)
........
  r342223 | twilson | 2011-10-25 01:23:29 +0000 (Tue, 25 Oct 2011) | 8 lines
  
  Return NULL when no results returned for realtime_multientry
  
  It was not documented what the return value should be when no entries
  were returned with the multientry realtime callback. This change forces
  consistent behavior even if the backends return an empty ast_config.
  
  Review: https://reviewboard.asterisk.org/r/1521/
........
  r342276 | kmoore | 2011-10-25 16:06:57 +0000 (Tue, 25 Oct 2011) | 18 lines
  
  Fix spool handling to allow call files to be hardlinked into place
  
  This fixes the inotify code to handle call files being hardlinked into the
  spool directory.
  
  The smsq utility does this, instead of rename(), to ensure that it cannot
  accidentally overwrite an existing spool file. A rename() might do that, but
  link() will definitely not.
  
  The inotify code had broken this, because it would wait for an IN_CLOSE_WRITE
  event on the file... which was never forthcoming, since it was never opened.
  Now we look for IN_OPEN events following the IN_CREATE event, and only wait
  for an IN_CLOSE_WRITE if the file was actually opened.
  
  Patch-by: dwmw2
  (closes issue ASTERISK-18331)
  Review: https://reviewboard.asterisk.org/r/1391/
........
  r342328 | kmoore | 2011-10-25 19:08:04 +0000 (Tue, 25 Oct 2011) | 6 lines
  
  Fix compilation on Snow Leopard/FreeBSD for pbx_spool.c
  
  One of the changes in the recent spool handling of hardlinks patch was just
  outside a HAVE_INOTIFY block and caused compilation to fail in some build
  environments.  This has been corrected.
........
  r342380 | twilson | 2011-10-25 19:52:16 +0000 (Tue, 25 Oct 2011) | 9 lines
  
  Properly update membercount for reloaded members
  
  Since q->membercount is set to 0 before reloading, it is important
  to increment it again for reloaded members as well as added.
  
  (closes issue AST-676)
  
  Review: https://reviewboard.asterisk.org/r/1541/
........
  r342383 | twilson | 2011-10-25 20:02:55 +0000 (Tue, 25 Oct 2011) | 21 lines
  
  Simplify queue membercount code
  
  Despite an ominous sounding comment stating that membercount was for "logged
  in" members only and thus we couldn't use ao2_container_count(), I could not
  find a single place in the code where that seemed to be accurate. The only time
  we decremented membercount was when we were marking something dead or actually
  removing it. The only places we incremented it were either after ao2_link(), or
  trying to correct for having set it to 0 during a reload. In every case where
  we were correcting the value, it seemed that we were trying to make the count
  actually match what ao2_container_count() would return. The only place I could
  find where we made a determination about something being "logged in" or not, we
  didn't trust the membercount, but instead looked at devicestate, paused, etc.
  
  This patch removes membercount, replaces its use with ao2_container_count, and
  manually adds the results of ao2_container_count to a "membercount" field for
  ast_data queue query results. This patch also would fix AST-676, but as it is
  slightly riskier than the previously committed fix, the two commits have been
  made separately.
  
  Reivew: https://reviewboard.asterisk.org/r/1541/
........
  r342435 | twilson | 2011-10-25 21:08:23 +0000 (Tue, 25 Oct 2011) | 4 lines
  
  Use int for storing ao2_container_count instad of size_t
  
  AST-676
........
  r342484 | rmudgett | 2011-10-25 21:45:54 +0000 (Tue, 25 Oct 2011) | 12 lines
  
  Change D-channel warning to be less confusing on non-NFAS setups.
  
  The "No D-channels available!  Using Primary channel as D-channel anyway!"
  WARNING message has been confusing on non-NFAS setups.  The message refers
  to things that are NFAS specific.
  
  * Changed the warning to several different warnings to be more accurate
  for the situation and less confusing as a result:
  "No D-channels up!  Switching selected D-channel from X to Y.",
  "No D-channels up!", and
  "D-channel is down!".
........
  r342487 | rmudgett | 2011-10-25 22:04:59 +0000 (Tue, 25 Oct 2011) | 7 lines
  
  Check fopen return value for ao2 reference debug output.
  
  Reported by: wdoekes
  Patched by: wdoekes
  
  Review: https://reviewboard.asterisk.org/r/1539/
........
  r342545 | jrose | 2011-10-27 13:58:21 +0000 (Thu, 27 Oct 2011) | 8 lines
  
  Cleanup reference leaks in res_jabber
  
  res_jabber.c had a number of places where astobjs would be referenced and have their
  reference counts bumped without having a dereference made before the object lost scope.
  This patch adds a number of ASTOBJ_UNREFs to resolve that.
  
  Review: https://reviewboard.asterisk.org/r/1478/
........
  r342602 | jrose | 2011-10-27 19:34:29 +0000 (Thu, 27 Oct 2011) | 15 lines
  
  Fix sequence number overflow over 16 bits causing codec change in RTP packets.
  
  Sequence number was handled as an unsigned integer (usually 32 bits I think, more
  depending on the architecture) and was put into the rtp packet which is basically
  just a bunch of bits using an or operation. Sequence number only has 16 bits
  allocated to it in an RTP packet anyway, so it would add to the next field which
  just happened to be the codec. This makes sure the sequence number is set to be
  a 16 bit integer regardless of architecture (hopefully) and also makes it so the
  incrementing of the sequence number does bitwise or at the peak of a 16 bit number
  so that the value will be set back to 0 when going beyond 65535 anyway.
  
  (closes issue ASTERISK-18291)
  Reported by: Will Schick
  Review: https://reviewboard.asterisk.org/r/1542/
........
  r342661 | rmudgett | 2011-10-29 04:19:42 +0000 (Sat, 29 Oct 2011) | 14 lines
  
  Fix AST_LIST_INSERT_BEFORE_CURRENT() updating the wrong variable.
  
  AST_LIST_INSERT_BEFORE_CURRENT() could not be used twice in an iteration
  or before AST_LIST_REMOVE_CURRENT() without corrupting the list.
  AST_LIST_INSERT_BEFORE_CURRENT() could also corrupt the list if
  AST_LIST_INSERT_BEFORE_CURRENT() or AST_LIST_REMOVE_CURRENT() is used on
  the next iteration.
  
  * Fixed cut and paste error using the wrong variable in
  AST_LIST_INSERT_BEFORE_CURRENT().
  
  * Added linked list unit tests for AST_LIST_INSERT_BEFORE_CURRENT(),
  AST_LIST_APPEND_LIST(), and AST_LIST_INSERT_LIST_AFTER().
........
  r342769 | mjordan | 2011-10-31 15:58:06 +0000 (Mon, 31 Oct 2011) | 24 lines
  
  Fixed invalid memory access when adding extension to pattern match tree
  
  When an extension is removed from a context, its entry in the pattern match
  tree is not deleted.  Instead, the extension is marked as deleted.  When an
  extension is removed and re-added, if that extension is also a prefix of
  another extension, several log messages would report an error and did not
  check whether or not the extension was deleted before accessing the memory.
  Additionally, if the extension was already in the tree but previously
  deleted, and the pattern was at the end of a match, the findonly flag was
  not honored and the extension would be erroneously undeleted.  
  
  Additionaly, it was discovered that an IAX2 peer could be unregistered
  via the CLI, while at the same time it could be scheduled for unregistration
  by Asterisk.  The unregistration method now checks to see if the peer
  was already unregistered before continuing with an unregistration.
  
  (closes issue ASTERISK-18135)
  Reported by: Jaco Kroon, Henry Fernandes, Kristijan Vrban
  Tested by: Matt Jordan
  
  Review: https://reviewboard.asterisk.org/r/1526
........
  r342869 | wdoekes | 2011-11-01 19:37:47 +0000 (Tue, 01 Nov 2011) | 11 lines
  
  Cleanup references to sipusers and sipfriends dynamic realtime families
  
  Somewhere between 1.4 and 1.8 the sipusers family has become completely
  unused. Before that, the sipfriends family had been obsoleted in favor
  of separate sipusers and sippeers families. Apparently, they have been
  merged back again into a single family which is now called "sippeers".
  
  Reviewed by: irroot, oej, pabelanger
  
  Review: https://reviewboard.asterisk.org/r/1523
........
  r342927 | wdoekes | 2011-11-01 20:53:37 +0000 (Tue, 01 Nov 2011) | 27 lines
  
  Several fixes to the chan_sip dynamic realtime peer/user lookup
  
  There were several problems with the dynamic realtime peer/user lookup
  code. The lookup logic had become rather hard to read due to lots of
  incremental changes to the realtime_peer function. And, during the
  addition of the sipregs functionality, several possibilities for memory
  leaks had been introduced. The insecure=port matching has always been
  broken for anyone using the sipregs family. And, related, the broken
  implementation forced those using sipregs to *still* have an ipaddr
  column on their sippeers table.
  
  Thanks Terry Wilson for comprehensive testing and finding and fixing
  unexpected behaviour from the multientry realtime call which caused
  the realtime_peer to have a completely unused code path.
  
  This changeset fixes the leaks, the lookup inconsistenties and that
  you won't need an ipaddr column on your sippeers table anymore (when
  you're using sipregs). Beware that when you're using sipregs, peers
  with insecure=port will now start matching!
  
  (closes issue ASTERISK-17792)
  (closes issue ASTERISK-18356)
  Reported by: marcelloceschia, Walter Doekes
  Reviewed by: Terry Wilson
  
  Review: https://reviewboard.asterisk.org/r/1395
........
  r342990 | kpfleming | 2011-11-02 13:44:17 +0000 (Wed, 02 Nov 2011) | 9 lines
  
  Modify comments in MeetMe application documentation about DAHDI.
  
  The MeetMe application documentation has some comments about usage of DAHDI,
  and they were a bit outdated relative to modern DAHDI releases. This patch
  changes the comment to just tell the user that a functional DAHDI timing
  source is required, and no longer mention 'dahdi_dummy', since that module
  does not exist in current DAHDI releases.
........

Merged revisions 340279,340284,340365,340418,340470,340522,340534,340576,340662,340715,340717,340809,340863,340878,340970,341022,341074,341088,341108,341112,341189,341254,341312,341314,341366,341379,341435,341529,341664,341704,341717,341806,341809,341906,341921,342061,342223,342276,342328,342380,342383,342435,342484,342487,342545,342602,342661,342769,342869,342927,342990 from http://svn.asterisk.org/svn/asterisk/branches/1.8

Added:
    team/schmidts/unleash-the-beast/contrib/realtime/mysql/sippeers.sql
      - copied unchanged from r342990, branches/1.8/contrib/realtime/mysql/sippeers.sql
Removed:
    team/schmidts/unleash-the-beast/contrib/realtime/mysql/sipfriends.sql
Modified:
    team/schmidts/unleash-the-beast/   (props changed)
    team/schmidts/unleash-the-beast/Makefile.moddir_rules
    team/schmidts/unleash-the-beast/UPGRADE.txt
    team/schmidts/unleash-the-beast/addons/chan_ooh323.c
    team/schmidts/unleash-the-beast/apps/app_celgenuserevent.c
    team/schmidts/unleash-the-beast/apps/app_meetme.c
    team/schmidts/unleash-the-beast/apps/app_queue.c
    team/schmidts/unleash-the-beast/apps/app_system.c
    team/schmidts/unleash-the-beast/apps/app_voicemail.c
    team/schmidts/unleash-the-beast/build_tools/cflags.xml
    team/schmidts/unleash-the-beast/build_tools/embed_modules.xml
    team/schmidts/unleash-the-beast/channels/chan_dahdi.c
    team/schmidts/unleash-the-beast/channels/chan_gtalk.c
    team/schmidts/unleash-the-beast/channels/chan_iax2.c
    team/schmidts/unleash-the-beast/channels/chan_mgcp.c
    team/schmidts/unleash-the-beast/channels/chan_sip.c
    team/schmidts/unleash-the-beast/channels/sig_analog.c
    team/schmidts/unleash-the-beast/channels/sig_pri.c
    team/schmidts/unleash-the-beast/channels/sig_ss7.c
    team/schmidts/unleash-the-beast/channels/sig_ss7.h
    team/schmidts/unleash-the-beast/channels/sip/include/dialog.h
    team/schmidts/unleash-the-beast/channels/sip/include/sip.h
    team/schmidts/unleash-the-beast/codecs/codec_dahdi.c
    team/schmidts/unleash-the-beast/configs/dbsep.conf.sample
    team/schmidts/unleash-the-beast/configs/extconfig.conf.sample
    team/schmidts/unleash-the-beast/configs/res_config_mysql.conf.sample
    team/schmidts/unleash-the-beast/configs/res_ldap.conf.sample
    team/schmidts/unleash-the-beast/funcs/func_callerid.c
    team/schmidts/unleash-the-beast/funcs/func_realtime.c
    team/schmidts/unleash-the-beast/include/asterisk/config.h
    team/schmidts/unleash-the-beast/include/asterisk/features.h
    team/schmidts/unleash-the-beast/include/asterisk/linkedlists.h
    team/schmidts/unleash-the-beast/include/asterisk/manager.h
    team/schmidts/unleash-the-beast/include/asterisk/strings.h
    team/schmidts/unleash-the-beast/main/astobj2.c
    team/schmidts/unleash-the-beast/main/channel.c
    team/schmidts/unleash-the-beast/main/config.c
    team/schmidts/unleash-the-beast/main/features.c
    team/schmidts/unleash-the-beast/main/manager.c
    team/schmidts/unleash-the-beast/main/pbx.c
    team/schmidts/unleash-the-beast/pbx/pbx_lua.c
    team/schmidts/unleash-the-beast/pbx/pbx_realtime.c
    team/schmidts/unleash-the-beast/pbx/pbx_spool.c
    team/schmidts/unleash-the-beast/res/res_agi.c
    team/schmidts/unleash-the-beast/res/res_config_sqlite.c
    team/schmidts/unleash-the-beast/res/res_curl.c
    team/schmidts/unleash-the-beast/res/res_fax.c
    team/schmidts/unleash-the-beast/res/res_jabber.c
    team/schmidts/unleash-the-beast/res/res_realtime.c
    team/schmidts/unleash-the-beast/res/res_rtp_asterisk.c
    team/schmidts/unleash-the-beast/res/res_rtp_multicast.c
    team/schmidts/unleash-the-beast/tests/test_linkedlists.c
    team/schmidts/unleash-the-beast/utils/utils.xml

Propchange: team/schmidts/unleash-the-beast/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Wed Nov  2 16:41:26 2011
@@ -1,1 +1,1 @@
-/branches/1.8:1-340276
+/branches/1.8:1-343045

Modified: team/schmidts/unleash-the-beast/Makefile.moddir_rules
URL: http://svnview.digium.com/svn/asterisk/team/schmidts/unleash-the-beast/Makefile.moddir_rules?view=diff&rev=343159&r1=343158&r2=343159
==============================================================================
--- team/schmidts/unleash-the-beast/Makefile.moddir_rules (original)
+++ team/schmidts/unleash-the-beast/Makefile.moddir_rules Wed Nov  2 16:41:26 2011
@@ -1,6 +1,6 @@
 #
 # Asterisk -- A telephony toolkit for Linux.
-# 
+#
 # Makefile rules for subdirectories containing modules
 #
 # Copyright (C) 2006, Digium, Inc.
@@ -46,7 +46,7 @@
 C_MODS:=$(filter-out $(MENUSELECT_$(MENUSELECT_CATEGORY)),$(ALL_C_MODS))
 CC_MODS:=$(filter-out $(MENUSELECT_$(MENUSELECT_CATEGORY)),$(ALL_CC_MODS))
 
-ifneq ($(findstring $(MENUSELECT_CATEGORY),$(MENUSELECT_EMBED)),)
+ifneq ($(findstring EMBED_$(MENUSELECT_CATEGORY),$(MENUSELECT_EMBED)),)
     EMBEDDED_MODS:=$(C_MODS) $(CC_MODS)
 else
     LOADABLE_MODS:=$(C_MODS) $(CC_MODS)

Modified: team/schmidts/unleash-the-beast/UPGRADE.txt
URL: http://svnview.digium.com/svn/asterisk/team/schmidts/unleash-the-beast/UPGRADE.txt?view=diff&rev=343159&r1=343158&r2=343159
==============================================================================
--- team/schmidts/unleash-the-beast/UPGRADE.txt (original)
+++ team/schmidts/unleash-the-beast/UPGRADE.txt Wed Nov  2 16:41:26 2011
@@ -159,6 +159,9 @@
   changes to the files will not be detected.  You can revert to polling the
   directory by specifying --without-inotify to configure before compiling.
 
+* The 'sipusers' realtime table has been removed completely. Use the 'sippeers'
+  table with type 'user' for user type objects.
+
 From 1.6.1 to 1.6.2:
 
 * SIP no longer sends the 183 progress message for early media by

Modified: team/schmidts/unleash-the-beast/addons/chan_ooh323.c
URL: http://svnview.digium.com/svn/asterisk/team/schmidts/unleash-the-beast/addons/chan_ooh323.c?view=diff&rev=343159&r1=343158&r2=343159
==============================================================================
--- team/schmidts/unleash-the-beast/addons/chan_ooh323.c (original)
+++ team/schmidts/unleash-the-beast/addons/chan_ooh323.c Wed Nov  2 16:41:26 2011
@@ -353,10 +353,10 @@
 
 	/* Don't hold a h323 pvt lock while we allocate a channel */
 	ast_mutex_unlock(&i->lock);
+   	ast_mutex_lock(&ooh323c_cn_lock);
    	ch = ast_channel_alloc(1, state, i->callerid_num, i->callerid_name, 
 				i->accountcode, i->exten, i->context, linkedid, i->amaflags,
 				"OOH323/%s-%ld", host, callnumber);
-   	ast_mutex_lock(&ooh323c_cn_lock);
    	callnumber++;
    	ast_mutex_unlock(&ooh323c_cn_lock);
    

Modified: team/schmidts/unleash-the-beast/apps/app_celgenuserevent.c
URL: http://svnview.digium.com/svn/asterisk/team/schmidts/unleash-the-beast/apps/app_celgenuserevent.c?view=diff&rev=343159&r1=343158&r2=343159
==============================================================================
--- team/schmidts/unleash-the-beast/apps/app_celgenuserevent.c (original)
+++ team/schmidts/unleash-the-beast/apps/app_celgenuserevent.c Wed Nov  2 16:41:26 2011
@@ -22,6 +22,10 @@
  *
  * \ingroup applications
  */
+
+/*** MODULEINFO
+	<support_level>core</support_level>
+ ***/
 
 #include "asterisk.h"
 

Modified: team/schmidts/unleash-the-beast/apps/app_meetme.c
URL: http://svnview.digium.com/svn/asterisk/team/schmidts/unleash-the-beast/apps/app_meetme.c?view=diff&rev=343159&r1=343158&r2=343159
==============================================================================
--- team/schmidts/unleash-the-beast/apps/app_meetme.c (original)
+++ team/schmidts/unleash-the-beast/apps/app_meetme.c Wed Nov  2 16:41:26 2011
@@ -142,10 +142,13 @@
 					</option>
 					<option name="p" hasparams="optional">
 						<para>Allow user to exit the conference by pressing <literal>#</literal> (default)
-						or any of the defined keys. If keys contain <literal>*</literal> this will override
-						option <literal>s</literal>. The key used is set to channel variable
+						or any of the defined keys.  The key used is set to channel variable
 						<variable>MEETME_EXIT_KEY</variable>.</para>
 						<argument name="keys" required="true" />
+						<note>
+							<para>Option <literal>s</literal> has priority for <literal>*</literal>
+							since it cannot change its activation code.</para>
+						</note>
 					</option>
 					<option name="P">
 						<para>Always prompt for the pin even if it is specified.</para>
@@ -180,6 +183,10 @@
 						<para>Allow user to exit the conference by entering a valid single digit
 						extension <variable>MEETME_EXIT_CONTEXT</variable> or the current context
 						if that variable is not defined.</para>
+						<note>
+							<para>Option <literal>s</literal> has priority for <literal>*</literal>
+							since it cannot change its activation code.</para>
+						</note>
 					</option>
 					<option name="1">
 						<para>Do not play message when first person enters</para>
@@ -214,7 +221,7 @@
 			<para>Enters the user into a specified MeetMe conference.  If the <replaceable>confno</replaceable>
 			is omitted, the user will be prompted to enter one.  User can exit the conference by hangup, or
 			if the <literal>p</literal> option is specified, by pressing <literal>#</literal>.</para>
-			<note><para>The DAHDI kernel modules and at least one hardware driver (or dahdi_dummy)
+			<note><para>The DAHDI kernel modules and a functional DAHDI timing source (see dahdi_test)
 			must be present for conferencing to operate properly. In addition, the chan_dahdi channel driver
 			must be loaded for the <literal>i</literal> and <literal>r</literal> options to operate at
 			all.</para></note>
@@ -3535,7 +3542,10 @@
 					}
 
 					conf_flush(fd, chan);
-				/* Since this option could absorb DTMF meant for the previous (menu), we have to check this one last */
+				/*
+				 * Since options using DTMF could absorb DTMF meant for the
+				 * conference menu, we have to check them after the menu.
+				 */
 				} else if ((f->frametype == AST_FRAME_DTMF) && ast_test_flag64(confflags, CONFFLAG_EXIT_CONTEXT) && ast_exists_extension(chan, exitcontext, dtmfstr, 1, "")) {
 					if (ast_test_flag64(confflags, CONFFLAG_PASS_DTMF)) {
 						conf_queue_dtmf(conf, user, f);

Modified: team/schmidts/unleash-the-beast/apps/app_queue.c
URL: http://svnview.digium.com/svn/asterisk/team/schmidts/unleash-the-beast/apps/app_queue.c?view=diff&rev=343159&r1=343158&r2=343159
==============================================================================
--- team/schmidts/unleash-the-beast/apps/app_queue.c (original)
+++ team/schmidts/unleash-the-beast/apps/app_queue.c Wed Nov  2 16:41:26 2011
@@ -1170,12 +1170,6 @@
 	int autofill;                       /*!< Ignore the head call status and ring an available agent */
 	
 	struct ao2_container *members;             /*!< Head of the list of members */
-	/*! 
-	 * \brief Number of members _logged in_
-	 * \note There will be members in the members container that are not logged
-	 *       in, so this can not simply be replaced with ao2_container_count(). 
-	 */
-	int membercount;
 	struct queue_ent *head;             /*!< Head of the list of callers */
 	AST_LIST_ENTRY(call_queue) list;    /*!< Next call queue */
 	AST_LIST_HEAD_NOLOCK(, penalty_rule) rules; /*!< The list of penalty rules to invoke */
@@ -2136,7 +2130,6 @@
 			ao2_link(q->members, m);
 			ao2_ref(m, -1);
 			m = NULL;
-			q->membercount++;
 		}
 	}
 }
@@ -2151,7 +2144,6 @@
 	while ((cur = ao2_iterator_next(&mem_iter))) {
 		if (all || !cur->dynamic) {
 			ao2_unlink(q->members, cur);
-			q->membercount--;
 		}
 		ao2_ref(cur, -1);
 	}
@@ -2254,7 +2246,6 @@
 		ao2_lock(q);
 		clear_queue(q);
 		q->realtime = 1;
-		q->membercount = 0;
 		/*Before we initialize the queue, we need to set the strategy, so that linear strategy
 		 * will allocate the members properly
 		 */
@@ -2294,11 +2285,9 @@
 		queue_set_param(q, tmp_name, v->value, -1, 0);
 	}
 
-	/* Temporarily set realtime members dead so we can detect deleted ones. 
-	 * Also set the membercount correctly for realtime*/
+	/* Temporarily set realtime members dead so we can detect deleted ones. */
 	mem_iter = ao2_iterator_init(q->members, 0);
 	while ((m = ao2_iterator_next(&mem_iter))) {
-		q->membercount++;
 		if (m->realtime)
 			m->dead = 1;
 		ao2_ref(m, -1);
@@ -2320,7 +2309,6 @@
 		if (m->dead) {
 			ast_queue_log(q->name, "REALTIME", m->interface, "REMOVEMEMBER", "%s", "");
 			ao2_unlink(q->members, m);
-			q->membercount--;
 		}
 		ao2_ref(m, -1);
 	}
@@ -2441,7 +2429,6 @@
 		if (m->dead) {
 			ast_queue_log(q->name, "REALTIME", m->interface, "REMOVEMEMBER", "%s", "");
 			ao2_unlink(q->members, m);
-			q->membercount--;
 		}
 		ao2_ref(m, -1);
 	}
@@ -4054,7 +4041,8 @@
 static int calc_metric(struct call_queue *q, struct member *mem, int pos, struct queue_ent *qe, struct callattempt *tmp)
 {
 	/* disregarding penalty on too few members? */
-	unsigned char usepenalty = (q->membercount <= q->penaltymemberslimit) ? 0 : 1;
+	int membercount = ao2_container_count(q->members);
+	unsigned char usepenalty = (membercount <= q->penaltymemberslimit) ? 0 : 1;
 
 	if (usepenalty) {
 		if ((qe->max_penalty && (mem->penalty > qe->max_penalty)) ||
@@ -4063,7 +4051,7 @@
 		}
 	} else {
 		ast_debug(1, "Disregarding penalty, %d members and %d in penaltymemberslimit.\n",
-			  q->membercount, q->penaltymemberslimit);
+			  membercount, q->penaltymemberslimit);
 	}
 
 	switch (q->strategy) {
@@ -4406,7 +4394,7 @@
 			if (qe->parent->strategy == QUEUE_STRATEGY_RRMEMORY || qe->parent->strategy == QUEUE_STRATEGY_LINEAR || qe->parent->strategy == QUEUE_STRATEGY_RRORDERED)
 				(*tries)++;
 			else
-				*tries = qe->parent->membercount;
+				*tries = ao2_container_count(qe->parent->members);
 			*noption = 1;
 			break;
 		case 'i':
@@ -5200,7 +5188,6 @@
 				queue_t_unref(q, "Interface wasn't dynamic, expiring temporary reference");
 				return RES_NOT_DYNAMIC;
 			}
-			q->membercount--;
 			manager_event(EVENT_FLAG_AGENT, "QueueMemberRemoved",
 				"Queue: %s\r\n"
 				"Location: %s\r\n"
@@ -5246,7 +5233,6 @@
 		if ((new_member = create_queue_member(interface, membername, penalty, paused, state_interface))) {
 			new_member->dynamic = 1;
 			ao2_link(q->members, new_member);
-			q->membercount++;
 			manager_event(EVENT_FLAG_AGENT, "QueueMemberAdded",
 				"Queue: %s\r\n"
 				"Location: %s\r\n"
@@ -6009,7 +5995,7 @@
 		}
 
 		/* exit after 'timeout' cycle if 'n' option enabled */
-		if (noption && tries >= qe.parent->membercount) {
+		if (noption && tries >= ao2_container_count(qe.parent->members)) {
 			ast_verb(3, "Exiting on time-out cycle\n");
 			ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITWITHTIMEOUT", "%d", qe.pos);
 			record_abandoned(&qe);
@@ -6220,7 +6206,7 @@
 			}
 			ao2_iterator_destroy(&mem_iter);
 		} else /* must be "count" */
-			count = q->membercount;
+			count = ao2_container_count(q->members);
 		ao2_unlock(q);
 		queue_t_unref(q, "Done with temporary reference in QUEUE_MEMBER()");
 	} else
@@ -6610,8 +6596,6 @@
 
 	if (cur) {
 		ao2_ref(cur, -1);
-	} else {
-		q->membercount++;
 	}
 }
 
@@ -6627,19 +6611,11 @@
 static int kill_dead_members(void *obj, void *arg, int flags)
 {
 	struct member *member = obj;
-	struct call_queue *q = arg;
 
 	if (!member->delme) {
-		if (member->dynamic) {
-			/* dynamic members were not counted toward the member count
-			 * when reloading members from queues.conf, so we do that here
-			 */
-			q->membercount++;
-		}
 		member->status = get_queue_member_status(member);
 		return 0;
 	} else {
-		q->membercount--;
 		return CMP_MATCH;
 	}
 }
@@ -6718,7 +6694,6 @@
 		init_queue(q);
 	}
 	if (member_reload) {
-		q->membercount = 0;
 		ao2_callback(q->members, OBJ_NODATA, mark_member_dead, NULL);
 	}

[... 5651 lines stripped ...]



More information about the asterisk-commits mailing list