Commit Graph

17707 Commits

Author SHA1 Message Date
Kevin P. Fleming d99d2f22cd Merged revisions 185952 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r185952 | kpfleming | 2009-04-02 08:43:43 -0500 (Thu, 02 Apr 2009) | 5 lines
  
  the DAHDI_GETCONF, DAHDI_SETCONF and DAHDI_GET_PARAMS ioctls were recently corrected to show that they do, in fact, read data from userspace as part of their work. due to this fix, valgrind now reports a number of cases where chan_dahdi passed an uninitialized (or partially) buffer to these ioctls, which could lead to unexpected behavior.
  
  this patch corrects chan_dahdi to ensure that buffers passed to these ioctls are always fully initialized.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@185953 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-02 13:51:44 +00:00
Tilghman Lesher be40f3a33c Merge changes from str_substitution that are unrelated to that branch.
Included is a small bugfix to an ast_str helper, but most of these changes
are simply doxygen fixes.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@185912 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-01 20:13:28 +00:00
David Vossel 729f225225 Merged revisions 185845 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r185845 | dvossel | 2009-04-01 14:02:00 -0500 (Wed, 01 Apr 2009) | 10 lines
  
  Fixes issue with dropped calles due to re-Invite glare and re-Invites never executing after a 491
  
  Acknowledgement for 491 responses were never being processed because it didn't match our pending invite's seqno.  Since the ACK was never processed, the 491 frame would continue to be retransmitted until eventually the call was dropped due to max retries.  Now during a pending invite, if we receive another invite, we send an 491 and hold on to that glare invite's seqno in the "glareinvite" variable for that sip_pvt struct.  When ACK's are received, we first check to see if it is in response to our pending invite, if not we check to see if it is in response to a glare invite.  In this case, it is in response to the glare invite and must be dealt with or the call is dropped.  I've changed the wait time for resending the re-Invite after receving a 491 response to comply with RFC 3261.  Before this patch the scheduled re-Invite would only change a flag indicating that the re-Invite should be sent out, now it actually sends it out as well. 
  
  (closes issue #12013)
  Reported by: alx
  
  Review: http://reviewboard.digium.com/r/213/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@185846 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-01 19:03:32 +00:00
Mark Michelson f1707e95e5 Address Russell's comments regarding rev 185704.
Use ast_debug and ast_softhangup_nolock.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@185777 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-01 13:59:34 +00:00
Russell Bryant 083e57a5e5 Merged revisions 185771 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r185771 | russell | 2009-04-01 08:47:30 -0500 (Wed, 01 Apr 2009) | 6 lines

Fix a case where DTMF could bypass audiohooks.

This change fixes a situation where an audiohook that wants DTMF would not
actually get it.  This is in the code path where we end DTMF digit length
emulation while handling a NULL frame.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@185772 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-01 13:48:26 +00:00
Russell Bryant 1dda5f7c80 Fix dev-mode build on my box.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@185741 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-01 12:13:16 +00:00
Mark Michelson 378c2e9d2a Allow the AMI Hangup command to accept a Cause header.
(closes issue #14695)
Reported by: mneuhauser
Patches:
      cause-for-hangup-manager-action.patch uploaded by mneuhauser (license 425)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@185704 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-01 00:39:01 +00:00
Kevin P. Fleming d6b3031fe7 ignore copied (generated) file
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@185664 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-31 22:35:07 +00:00
Mark Michelson f43159ba31 Fix trunk's compilation.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@185604 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-31 22:12:52 +00:00
Mark Michelson 5c0d934e6b Merged revisions 185599 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r185599 | mmichelson | 2009-03-31 17:00:01 -0500 (Tue, 31 Mar 2009) | 6 lines
  
  Fix crash that would occur if an empty member was specified in queues.conf.
  
  (closes issue #14796)
  Reported by: pida
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@185600 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-31 22:02:48 +00:00
Kevin P. Fleming a009068110 Optimizations to the stringfields API
This patch provides a number of optimizations to the stringfields API, focused around saving (not wasting) memory whenever possible. Thanks to Mark Michelson for inspiring this work and coming up with the first two optimizations that are represented here:

Changes:

- Cleanup of some code, fix incorrect doxygen comments

- When a field is emptied or replaced with a new allocation, decrease the amount of 'active' space in the pool it was held in; if that pool reaches zero active space, and is not the current pool, then free it as it is no longer in use

- When allocating a pool, try to allocate a size that will fit in a 'standard' malloc() allocation without wasting space

- When allocating space for a field, store the amount of space in the two bytes immediately preceding the field; this eliminates the need to call strlen() on the field when overwriting it, and more importantly it 'remembers' the amount of space the field has available, even if a shorter string has been stored in it since it was allocated

- Don't automatically double the size of each successive pool allocated; it's wasteful

http://reviewboard.digium.com/r/165/



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@185581 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-31 21:29:50 +00:00
Mark Michelson d18a0cecdf Blocked revisions 185531 via svnmerge
........
  r185531 | mmichelson | 2009-03-31 15:55:47 -0500 (Tue, 31 Mar 2009) | 3 lines
  
  Use AST_SCHED_DEL_SPINLOCK instead of manually using the logic.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@185532 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-31 20:56:46 +00:00
Mark Michelson de8a0946c8 Merged revisions 185468 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r185468 | mmichelson | 2009-03-31 14:45:30 -0500 (Tue, 31 Mar 2009) | 8 lines
  
  Fix Russian voicemail intro to say the word "messages" properly.
  
  (closes issue #14736)
  Reported by: chappell
  Patches:
        voicemail_no_messages.diff uploaded by chappell (license 8)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@185469 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-31 19:46:18 +00:00
Russell Bryant 8dfcd7e418 Improve performance of the code handling the frame queue in chan_iax2.
In my tests that exercised full frame handling in chan_iax2, the version with
these changes took 30% to 40% of the CPU time compared to the same test of
Asterisk trunk before these modifications.

While doing some profiling for <http://reviewboard.digium.com/r/205/>,
one function that caught my eye was network_thread() in chan_iax2.c.
After the things that I was working on there, it was the next target
for analysis and optimization.  I used oprofile's source annotation
functionality and found that the loop traversing the frame queue in
network_thread() was to blame for the excessive CPU cycle consumption.

The frame_queue in chan_iax2 previously held all frames that either were
pending transmission or had been transmitted and are still pending
acknowledgment.

In network_thread(), the previous code would go back through the main
for loop after reading a single incoming frame or after being signaled
because a frame had been queued up for initial transmission.  In each
iteration of the loop, it traverses the entire frame queue looking for
frames that need to be transmitted.  On a busy server, this could easily
be quite a few entries.

This patch is actually quite simple.  The frame_queue has become only a list
of frames pending acknowledgment.  Frames that need to be transmitted are
queued up to a dedicated transmit thread via the taskprocessor API.

As a result, the code in network_thread() becomes much simpler, as its only
job is to read incoming frames.

In addition to the previously described changes, this patch includes some
additional changes to the frame_queue.  Instead of one big frame_queue, now
there is a list per call number to further reduce wasted list traversals.
The biggest impact of this change is in socket_process().

For additional details on testing and test results, see the review request.

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@185432 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-31 19:07:58 +00:00
David Brooks b90ee93f70 Merged revisions 185362 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r185362 | dbrooks | 2009-03-31 11:37:12 -0500 (Tue, 31 Mar 2009) | 35 lines
  
  Fix incorrect parsing in chan_gtalk when xmpp contains extra whitespaces
  
  To drill into the xmpp to find the capabilities between channels, chan_gtalk 
  calls iks_child() and iks_next(). iks_child() and iks_next() are functions in 
  the iksemel xml parsing library that traverse xml nodes. The bug here is that 
  both iks_child() and iks_next() will return the next iks_struct node 
  *regardless* of type. chan_gtalk expects the next node to be of type IKS_TAG, 
  which in most cases, it is, but in this case (a call being made from the 
  Empathy IM client), there exists iks_struct nodes which are not IKS_TAG data 
  (they are extraneous whitespaces), and chan_gtalk doesn't handle that case, 
  so capabilities don't match, and a call cannot be made.
  
  iks_first_tag() and iks_next_tag(), on the other hand, will not return the 
  very next iks_struct, but will check to see if the next iks_struct is of 
  type IKS_TAG. If it isn't, it will be skipped, and the next struct of type 
  IKS_TAG it finds will be returned. This assures that chan_gtalk will find 
  the iks_struct it is looking for.
  
  This fix simply changes all calls to iks_child() and iks_next() to become 
  calls to iks_first_tag() and iks_next_tag(), which resolves the capability 
  matching.
  
  The following is a payload listing from Empathy, which, due to the extraneous 
  whitespace, will not be parsed correctly by iksemel:
  
  <iq from='dbrooksjab@235-22-24-10/Telepathy' to='astjab@235-22-24-10/asterisk' type='set' id='542757715704'> <session xmlns='http://www.google.com/session' initiator='dbrooksjab@235-22-24-10/Telepathy' type='initiate' id='1837267342'> <description xmlns='http://www.google.com/session/phone'> <payload-type clockrate='16000' name='speex' id='96'/>
   <payload-type clockrate='8000' name='PCMA' id='8'/>
   <payload-type clockrate='8000' name='PCMU' id='0'/>
   <payload-type clockrate='90000' name='MPA' id='97'/>
   <payload-type clockrate='16000' name='SIREN' id='98'/>
   <payload-type clockrate='8000' name='telephone-event' id='99'/>
  </description>
  </session>
  </iq>

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@185363 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-31 16:46:57 +00:00
Mark Michelson 362dd83335 Blocked revisions 185298 via svnmerge
........
  r185298 | mmichelson | 2009-03-31 10:34:05 -0500 (Tue, 31 Mar 2009) | 10 lines
  
  Fix some state_interface stuff that was in trunk but not in the backport to 1.4.
  
  Issue #14359 was fixed between the time that I posted the review of the backport
  of the state interface change for 1.4. This merges the changes from that issue
  back into 1.4.
  
  (closes issue #14359)
  Reported by: francesco_r
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@185299 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-31 15:34:29 +00:00
Russell Bryant c9c8758d6d Don't free() an astobj2 object.
(closes issue #14672)
Reported by: makoto


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@185261 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-31 14:53:45 +00:00
Joshua Colp d40f86db1b Merged revisions 185196 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r185196 | file | 2009-03-31 11:06:39 -0300 (Tue, 31 Mar 2009) | 8 lines
  
  Fix crash when moving audiohooks between channels.
  
  Handle the scenario where we are called to move audiohooks between channels
  and the source channel does not actually have any on it.
  
  (closes issue #14734)
  Reported by: corruptor
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@185197 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-31 14:07:36 +00:00
Richard Mudgett 9fd753a30e Merged revisions 185121 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r185121 | rmudgett | 2009-03-30 15:40:11 -0500 (Mon, 30 Mar 2009) | 1 line
  
  Update the channel allocation method documentation.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@185123 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-30 20:42:14 +00:00
Richard Mudgett 5e707f2ded Merged revisions 185120 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r185120 | rmudgett | 2009-03-30 15:38:11 -0500 (Mon, 30 Mar 2009) | 19 lines
  
  Make chan_misdn BRI TE side normally defer channel selection to the NT side.
  
  Channel allocation collisions are not handled by chan_misdn very well.
  This patch simply avoids the problem for BRI only.
  
  For PRI, allocation collisions are still possible but less likely since
  there are simply more channels available and each end could use a different
  allocation strategy.
  
  misdn.conf options available:
  te_choose_channel - Use to force the TE side to allocate channels.
  method - Specify the channel allocation strategy.
  
  (closes issue #13488)
  Reported by: Christian_Pinedo
  Patches:
        isdn_lib.patch.txt uploaded by crich
  Tested by: crich, siepkes, festr
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@185122 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-30 20:41:24 +00:00
Mark Michelson c4e3bfb74c Merged revisions 185031 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r185031 | mmichelson | 2009-03-30 11:17:35 -0500 (Mon, 30 Mar 2009) | 39 lines
  
  Fix queue weight behavior so that calls in low-weight queues are not inappropriately blocked.
  
  (This is copied and pasted from the review request I made for this patch)
  
  Asterisk has some odd behavior when queue weights are used. The current logic used when
  potentially calling a queue member is:
  
  If the member we are going to call is part of another queue and _that other queue has any 
  callers in it_ and has a higher weight than the queue we are calling from, then don't try 
  to contact that member. The issue here is what I have marked with underscores. If the 
  higher-weighted queue has any callers in it at all, then the queue member will be unreachable 
  from the lower-weighted queue. This has the potential to be really really bad if using a 
  queue strategy, such as leastrecent or fewestcalls, with the potential to call the same 
  member repeatedly.
  
  The fix proposed by garychen on issue 13220 is very simple and, as far as I can see, works 
  well for this situation. With this set of changes, the logic used becomes:
  
  If the member we are going to call is part of another queue, the other queue has a higher 
  weight than the queue we are calling from, and the higher weight queue has at least as many 
  callers as available members, then do not try to contact the queue member. If the higher 
  weighted queue has fewer callers than available members, then there is no reason to deny 
  the call to this member since the other queue can afford to spare a member.
  
  Since the fix involved writing a generic function for determining the number of available 
  members in the queue, I also modified the is_our_turn function to make use of the new 
  num_available_members function to determine if it is our turn to try calling a member. There 
  is one small behavior change. Before writing this patch, if you had autofill disabled, then 
  if you were the head caller in a queue, you would automatically be told that it was your 
  turn to try calling a member. This did not take into account whether there were actually any 
  queue members available to take the call. Now we actually make sure there is at least one 
  member available to take the call if autofill is disabled.
  
  (closes issue #13220)
  Reported by: garychen
  
  Review: http://reviewboard.digium.com/r/202/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@185072 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-30 16:26:48 +00:00
Mark Michelson 0abfe4e942 Blocked revisions 184980 via svnmerge
........
  r184980 | mmichelson | 2009-03-30 10:23:59 -0500 (Mon, 30 Mar 2009) | 22 lines
  
  Backport state interface changes to app_queue from trunk.
  
  After several issues raised on the Asterisk bugtracker against
  the 1.4 branch were determined to be fixable with the state interface
  change available in the 1.6.X series, it finally came time to just
  suck it up and backport the change.
  
  For a detailed explanation of what this change entails, the original
  trunk commit for this feature may be found here:
  
  http://svn.digium.com/view/asterisk?view=revision&revision=97203
  
  In addition, the details for the use of this change to fix the problems
  stated in issue #12970 may be found in the review request I made for
  this change. It is linked below.
  
  (closes issue #12970)
  Reported by: edugs15
  
  Review: http://reviewboard.digium.com/r/116
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184986 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-30 15:25:04 +00:00
Joshua Colp aa056be678 Merged revisions 184947 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r184947 | file | 2009-03-30 11:35:47 -0300 (Mon, 30 Mar 2009) | 14 lines
  
  Improve our handling of T38 in the initial INVITE from a device.
  
  We now answer with matching media streams to what is requested. If an INVITE
  is received with both a T38 and RTP media stream this means we answer with both.
  For any outgoing calls created as a result of this inbound one no T38 is requested
  in the initial INVITE. Instead if we start receiving udptl packets we trigger a
  reinvite on the outbound side.
  
  (closes issue #12437)
  Reported by: marsosa
  Tested by: pinga-fogo, okrief, file, afu
  
  Review: http://reviewboard.digium.com/r/208/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184948 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-30 14:37:47 +00:00
Russell Bryant 3ec3742a97 Fix build error when chan_h323 is not being built.
(reported by cai1982 in #asterisk-dev)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184910 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-30 13:55:44 +00:00
Russell Bryant 47c3799c99 Merged revisions 184842 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r184842 | russell | 2009-03-29 00:51:55 -0500 (Sun, 29 Mar 2009) | 5 lines

Ensure targs variable is fully initialized.

(closes issue #14758)
Reported by: tim_ringenbach

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184843 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-29 05:52:20 +00:00
Russell Bryant 39c95555af Simplify chan_h323 build to not require a second run of "make".
(closes issue #14715)
Reported by: jthurman
Patches:
      h323-makefile-1.6.2.0-beta1.patch uploaded by jthurman (license 614)
Tested by: tzafrir, russell


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184838 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-29 05:32:04 +00:00
Leif Madsen 383d4fa05b Fix a typo in app_ices.
(closes issue #14765)
Reported by: timeshell
Patches:
      app_ices.svn-1.6.0.diff uploaded by timeshell (license 399)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184801 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-27 20:08:44 +00:00
Leif Madsen d000310a2a Update commit message guidelines in re: to punctuation.
The doxygen documentation has now been updated to state explicitly that I want
punctuation atthe end of the first sentence in a commit message. :).


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184798 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-27 19:31:04 +00:00
Kevin P. Fleming 9381bff79d Improve timing interface to remember which provider provided a timer
The ability to load/unload timing interfaces is nice, but it means that when a timer is allocated, it may come from provider A, but later provider B becomes the 'preferred' provider. If this happens, all timer API calls on the timer that was provided by provider A will actually be handed to provider B, which will say WTF and return an error.

This patch changes the timer API to include a pointer to the provider of the timer handle so that future operations on the timer will be forwarded to the proper provider.

(closes issue #14697)
Reported by: moy

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



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184762 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-27 19:10:32 +00:00
Russell Bryant f745326750 Use ast_random() instead of rand() to ensure we use the best RNG available.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184726 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-27 18:04:43 +00:00
Russell Bryant 2a4f9f7181 Change global_app_buf to ast_str_thread_global_buf.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184693 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-27 16:21:10 +00:00
Joshua Colp b101b68e2f Fix a potential timer leak in bridge_softmix.
It is possible for a bridge to be created without actually being used.
In that scenario a timing file descriptor would be opened and not
closed. To fix this the timing file descriptor is now closed in the
destroy callback, not the thread function.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184677 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-27 15:57:28 +00:00
Joshua Colp 9ff9df1369 Fix speech structure leak in the AGI speech recognition integration.
The AGI dialplan applications did not destroy the speech structure automatically
if it was not destroyed by the running AGI script. They will now do this.

(issue LUMENVOX-15) 


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184673 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-27 15:46:46 +00:00
Joshua Colp 39a09b0af9 Remove a cast that is not needed.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184639 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-27 14:18:40 +00:00
Russell Bryant b564b2105f Change g_eid to ast_eid_default.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184630 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-27 14:00:18 +00:00
Joshua Colp 1cd4ecd0b7 Fix a potential race condition when creating a software based mixing bridge.
It was possible for no timer to become available between creating the bridge
and starting it. We now open a timer when creating it and keep it open until the
bridge is destroyed.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184628 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-27 13:57:29 +00:00
Joshua Colp 0580121cee Merged revisions 184565 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r184565 | file | 2009-03-27 10:06:45 -0300 (Fri, 27 Mar 2009) | 9 lines
  
  Fix an issue where nat=yes would not always take effect for the RTP session on outgoing calls.
  
  If calls were placed using an IP address or hostname the global nat setting was copied over
  but was not set on the RTP session itself. This caused the RTP stack to not perform symmetric RTP
  actions.
  
  (closes issue #14546)
  Reported by: acunningham
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184566 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-27 13:15:26 +00:00
Russell Bryant 5e80b9d09a Fix some issues with rwlock corruption that caused deadlock like symptoms.
When dvossel and I were doing some load testing last week, we noticed that we
could make Asterisk trunk lock up instantly when we started generating a bunch
of calls.  The backtraces of locked threads were bizarre, and many were stuck
on an _unlock_ of an rwlock.

The changes are:

1) Fix a number of places where a backtrace would be loaded into an invalid
   index of the backtrace array.  It's an off by one error, which ends up
   writing over the rwlock itself.

2) Ensure that in the array of held locks, we NULL out an index once it is
   not being used so that it's not confusing when analyzing its contents.

3) Remove a bunch of logging referring to an rwlock operating being done
   with "deep reentrancy".  It is normal for _many_ threads to hold a
   read lock on an rwlock.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184531 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-27 02:20:23 +00:00
Russell Bryant b043f8ab1b Don't act surprised if we get a -1 indication.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184515 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-27 01:40:28 +00:00
Russell Bryant 37b5a29dc7 Pass more useful information through to lock tracking when DEBUG_THREADS is on.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184512 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-27 01:35:56 +00:00
Kevin P. Fleming 4e931d87ff Merged revisions 184447 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r184447 | kpfleming | 2009-03-26 17:17:32 -0500 (Thu, 26 Mar 2009) | 3 lines
  
  use new, improved 8kHz prompts
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184448 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-26 22:18:14 +00:00
David Vossel ba0ce88b1e Merged revisions 184388 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r184388 | dvossel | 2009-03-26 16:07:32 -0500 (Thu, 26 Mar 2009) | 8 lines
  
  pri loop TestClient/TestServer fails: server SEND DTMF 8
  
  app_test was failing when sending the last DTMF digit, 8, because of the 100ms pause issued after DTMF is sent.  During this pause the other side would hang up causing the test to look like it failed. Now the other side waits a second before hanging up.
  
  (closes issue #12442)
  Reported by: tzafrir
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184389 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-26 21:09:37 +00:00
Russell Bryant 189a55f9f0 Remove unneeded AST_LIST_ENTRY() and comment on the purpose of ast_event_ref.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184344 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-25 22:11:35 +00:00
Russell Bryant ee77b475f2 Improve performance of the ast_event cache functionality.
This code comes from svn/asterisk/team/russell/event_performance/.

Here is a summary of the changes that have been made, in order of both
invasiveness and performance impact, from smallest to largest.

1) Asterisk 1.6.1 introduces some additional logic to be able to handle
   distributed device state.  This functionality comes at a cost.
   One relatively minor change in this patch is that the extra processing
   required for distributed device state is now completely bypassed if
   it's not needed.

2) One of the things that I noticed when profiling this code was that a
   _lot_ of time was spent doing string comparisons.  I changed the way
   strings are represented in an event to include a hash value at the front.
   So, before doing a string comparison, we do an integer comparison on the
   hash.

3) Finally, the code that handles the event cache has been re-written.
   I tried to do this in a such a way that it had minimal impact on the API.
   I did have to change one API call, though - ast_event_queue_and_cache().
   However, the way it works now is nicer, IMO.  Each type of event that
   can be cached (MWI, device state) has its own hash table and rules for
   hashing and comparing objects.  This by far made the biggest impact on
   performance.

For additional details regarding this code and how it was tested, please see the
review request.

(closes issue #14738)
Reported by: russell

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184339 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-25 21:57:19 +00:00
Joshua Colp 9ae51a21c0 Fix issue with a T38 reinvite being sent even if not configured to do so.
If we receive a T38 request negotiate control frame we should only attempt to do so
if the option is enabled on the dialog.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184280 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-25 19:22:06 +00:00
Eliel C. Sardanons 79ec90b3b2 Merged revisions 184188 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r184188 | eliel | 2009-03-25 10:12:54 -0400 (Wed, 25 Mar 2009) | 13 lines
  
  Avoid destroying the CLI line when moving the cursor backward and trying to autocomplete.
  
  When moving the cursor backward and pressing TAB to autocomplete, a NULL is put
  in the line and we are loosing what we have already wrote after the actual
  cursor position.
  
  (closes issue #14373)
  Reported by: eliel
  Patches:
        asterisk.c.patch uploaded by eliel (license 64)
        Tested by: lmadsen
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184220 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-25 14:38:19 +00:00
Russell Bryant bae19927d3 Include poll-compat.h
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184219 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-25 14:33:32 +00:00
Russell Bryant f9f0d8fe96 Change poll() to ast_poll().
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184151 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-25 02:03:13 +00:00
Russell Bryant 08f561f196 Fix build issues on Mac OSX.
(closes issue #14714)
Reported by: ygor


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184147 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-25 01:42:10 +00:00
Mark Michelson a7028f2bc6 Merged revisions 184078 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r184078 | mmichelson | 2009-03-24 17:34:45 -0500 (Tue, 24 Mar 2009) | 9 lines
  
  Change NULL pointer check to be ast_strlen_zero.
  
  The 'digit' variable is guaranteed to be non-NULL, so the if
  statement could never evaluate true. Changing to ast_strlen_zero
  makes the logic correct.
  
  This was found while reviewing ast_channel_ao2 code review.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184079 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-24 22:40:39 +00:00