asterisk/asterisk.git
11 years agoBlocked revisions 185531 via svnmerge
Mark Michelson [Tue, 31 Mar 2009 20:56:46 +0000 (20:56 +0000)]
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

11 years agoMerged revisions 185468 via svnmerge from
Mark Michelson [Tue, 31 Mar 2009 19:46:18 +0000 (19:46 +0000)]
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

11 years agoImprove performance of the code handling the frame queue in chan_iax2.
Russell Bryant [Tue, 31 Mar 2009 19:07:58 +0000 (19:07 +0000)]
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

11 years agoMerged revisions 185362 via svnmerge from
David Brooks [Tue, 31 Mar 2009 16:46:57 +0000 (16:46 +0000)]
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

11 years agoBlocked revisions 185298 via svnmerge
Mark Michelson [Tue, 31 Mar 2009 15:34:29 +0000 (15:34 +0000)]
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

11 years agoDon't free() an astobj2 object.
Russell Bryant [Tue, 31 Mar 2009 14:53:45 +0000 (14:53 +0000)]
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

11 years agoMerged revisions 185196 via svnmerge from
Joshua Colp [Tue, 31 Mar 2009 14:07:36 +0000 (14:07 +0000)]
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

11 years agoMerged revisions 185121 via svnmerge from
Richard Mudgett [Mon, 30 Mar 2009 20:42:14 +0000 (20:42 +0000)]
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

11 years agoMerged revisions 185120 via svnmerge from
Richard Mudgett [Mon, 30 Mar 2009 20:41:24 +0000 (20:41 +0000)]
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

11 years agoMerged revisions 185031 via svnmerge from
Mark Michelson [Mon, 30 Mar 2009 16:26:48 +0000 (16:26 +0000)]
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

11 years agoBlocked revisions 184980 via svnmerge
Mark Michelson [Mon, 30 Mar 2009 15:25:04 +0000 (15:25 +0000)]
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

11 years agoMerged revisions 184947 via svnmerge from
Joshua Colp [Mon, 30 Mar 2009 14:37:47 +0000 (14:37 +0000)]
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

11 years agoFix build error when chan_h323 is not being built.
Russell Bryant [Mon, 30 Mar 2009 13:55:44 +0000 (13:55 +0000)]
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

11 years agoMerged revisions 184842 via svnmerge from
Russell Bryant [Sun, 29 Mar 2009 05:52:20 +0000 (05:52 +0000)]
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

11 years agoSimplify chan_h323 build to not require a second run of "make".
Russell Bryant [Sun, 29 Mar 2009 05:32:04 +0000 (05:32 +0000)]
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

11 years agoFix a typo in app_ices.
Leif Madsen [Fri, 27 Mar 2009 20:08:44 +0000 (20:08 +0000)]
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

11 years agoUpdate commit message guidelines in re: to punctuation.
Leif Madsen [Fri, 27 Mar 2009 19:31:04 +0000 (19:31 +0000)]
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

11 years agoImprove timing interface to remember which provider provided a timer
Kevin P. Fleming [Fri, 27 Mar 2009 19:10:32 +0000 (19:10 +0000)]
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

11 years agoUse ast_random() instead of rand() to ensure we use the best RNG available.
Russell Bryant [Fri, 27 Mar 2009 18:04:43 +0000 (18:04 +0000)]
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

11 years agoChange global_app_buf to ast_str_thread_global_buf.
Russell Bryant [Fri, 27 Mar 2009 16:21:10 +0000 (16:21 +0000)]
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

11 years agoFix a potential timer leak in bridge_softmix.
Joshua Colp [Fri, 27 Mar 2009 15:57:28 +0000 (15:57 +0000)]
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

11 years agoFix speech structure leak in the AGI speech recognition integration.
Joshua Colp [Fri, 27 Mar 2009 15:46:46 +0000 (15:46 +0000)]
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

11 years agoRemove a cast that is not needed.
Joshua Colp [Fri, 27 Mar 2009 14:18:40 +0000 (14:18 +0000)]
Remove a cast that is not needed.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184639 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoChange g_eid to ast_eid_default.
Russell Bryant [Fri, 27 Mar 2009 14:00:18 +0000 (14:00 +0000)]
Change g_eid to ast_eid_default.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184630 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoFix a potential race condition when creating a software based mixing bridge.
Joshua Colp [Fri, 27 Mar 2009 13:57:29 +0000 (13:57 +0000)]
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

11 years agoMerged revisions 184565 via svnmerge from
Joshua Colp [Fri, 27 Mar 2009 13:15:26 +0000 (13:15 +0000)]
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

11 years agoFix some issues with rwlock corruption that caused deadlock like symptoms.
Russell Bryant [Fri, 27 Mar 2009 02:20:23 +0000 (02:20 +0000)]
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

11 years agoDon't act surprised if we get a -1 indication.
Russell Bryant [Fri, 27 Mar 2009 01:40:28 +0000 (01:40 +0000)]
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

11 years agoPass more useful information through to lock tracking when DEBUG_THREADS is on.
Russell Bryant [Fri, 27 Mar 2009 01:35:56 +0000 (01:35 +0000)]
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

11 years agoMerged revisions 184447 via svnmerge from
Kevin P. Fleming [Thu, 26 Mar 2009 22:18:14 +0000 (22:18 +0000)]
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

11 years agoMerged revisions 184388 via svnmerge from
David Vossel [Thu, 26 Mar 2009 21:09:37 +0000 (21:09 +0000)]
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

11 years agoRemove unneeded AST_LIST_ENTRY() and comment on the purpose of ast_event_ref.
Russell Bryant [Wed, 25 Mar 2009 22:11:35 +0000 (22:11 +0000)]
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

11 years agoImprove performance of the ast_event cache functionality.
Russell Bryant [Wed, 25 Mar 2009 21:57:19 +0000 (21:57 +0000)]
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

11 years agoFix issue with a T38 reinvite being sent even if not configured to do so.
Joshua Colp [Wed, 25 Mar 2009 19:22:06 +0000 (19:22 +0000)]
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

11 years agoMerged revisions 184188 via svnmerge from
Eliel C. Sardanons [Wed, 25 Mar 2009 14:38:19 +0000 (14:38 +0000)]
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

11 years agoInclude poll-compat.h
Russell Bryant [Wed, 25 Mar 2009 14:33:32 +0000 (14:33 +0000)]
Include poll-compat.h

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184219 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoChange poll() to ast_poll().
Russell Bryant [Wed, 25 Mar 2009 02:03:13 +0000 (02:03 +0000)]
Change poll() to ast_poll().

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184151 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoFix build issues on Mac OSX.
Russell Bryant [Wed, 25 Mar 2009 01:42:10 +0000 (01:42 +0000)]
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

11 years agoMerged revisions 184078 via svnmerge from
Mark Michelson [Tue, 24 Mar 2009 22:40:39 +0000 (22:40 +0000)]
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

11 years agoPut siren7 and siren14 in ast_best_codec() just so they're in there somewhere.
Russell Bryant [Tue, 24 Mar 2009 22:00:58 +0000 (22:00 +0000)]
Put siren7 and siren14 in ast_best_codec() just so they're in there somewhere.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184043 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoExclude slin16, siren7, and siren14 from bandwidth=low and =medium
Russell Bryant [Tue, 24 Mar 2009 21:40:44 +0000 (21:40 +0000)]
Exclude slin16, siren7, and siren14 from bandwidth=low and =medium

The default codec configuration for chan_iax2 is bandwidth=low.  I noticed
slin16 being negotiated as the codec in some test calls, but that no longer
happens after this change.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184037 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoSIP preferred codec only feature
David Vossel [Tue, 24 Mar 2009 20:01:29 +0000 (20:01 +0000)]
SIP preferred codec only feature

Added an option to respond to a SIP invite with only the single most preferred joint codec.  This limits the options of what codecs the other side can use.

(closes issue #12485)
Reported by: bamby
Review: http://reviewboard.digium.com/r/206/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@183995 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoMerged revisions 183913 via svnmerge from
Tilghman Lesher [Tue, 24 Mar 2009 15:26:42 +0000 (15:26 +0000)]
Merged revisions 183913 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r183913 | tilghman | 2009-03-24 10:25:42 -0500 (Tue, 24 Mar 2009) | 3 lines

  Additionally note that the operator option needs an 'o' extension.
  (Related to issue #14731)
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@183914 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoAllow browsers to cache images and other static content.
Tilghman Lesher [Mon, 23 Mar 2009 23:28:20 +0000 (23:28 +0000)]
Allow browsers to cache images and other static content.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@183865 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoRemoved trailing whitespace in chan_misdn files.
Richard Mudgett [Mon, 23 Mar 2009 22:35:02 +0000 (22:35 +0000)]
Removed trailing whitespace in chan_misdn files.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@183831 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoMerged revisions 183700 via svnmerge from
Mark Michelson [Mon, 23 Mar 2009 18:58:03 +0000 (18:58 +0000)]
Merged revisions 183700 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r183700 | mmichelson | 2009-03-23 12:59:28 -0500 (Mon, 23 Mar 2009) | 7 lines

  Fix a memory leak in res_monitor.c

  The only way that this leak would occur is if Monitor were started
  using the Manager interface and no File: header were given. Discovered
  while reviewing the ast_channel_ao2 review request.
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@183766 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoFixes a documentation error introduced during the CLI cleanup at AstriDevCon 2008.
Leif Madsen [Mon, 23 Mar 2009 18:06:40 +0000 (18:06 +0000)]
Fixes a documentation error introduced during the CLI cleanup at AstriDevCon 2008.

(closes issue #14655)
Reported by: ulogic
Patches:
      chan_dahdi.patch uploaded by ulogic (license 728)
Tested by: lmadsen

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@183701 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoFix a minor logic flaw with the bridge generic thread.
Joshua Colp [Sun, 22 Mar 2009 21:00:28 +0000 (21:00 +0000)]
Fix a minor logic flaw with the bridge generic thread.

We only want to move the channel pointers that are actually present.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@183652 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoMerged revisions 183559 via svnmerge from
Russell Bryant [Fri, 20 Mar 2009 17:00:58 +0000 (17:00 +0000)]
Merged revisions 183559 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r183559 | russell | 2009-03-20 11:53:25 -0500 (Fri, 20 Mar 2009) | 2 lines

Fix a crash in IAX2 registration handling found during load testing with dvossel.

........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@183560 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoFix chan_sip so it builds.
Mark Michelson [Fri, 20 Mar 2009 16:25:17 +0000 (16:25 +0000)]
Fix chan_sip so it builds.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@183555 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoRemove symbols I just added to main/asterisk.exports and instead rename the functions.
Mark Michelson [Fri, 20 Mar 2009 16:24:20 +0000 (16:24 +0000)]
Remove symbols I just added to main/asterisk.exports and instead rename the functions.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@183554 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoAdd some missing symbols to main/asterisk.exports
Mark Michelson [Fri, 20 Mar 2009 16:19:53 +0000 (16:19 +0000)]
Add some missing symbols to main/asterisk.exports

Hey! chan_sip.so loads now!

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@183553 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoRemove duplicate <description> inside the xml documentation.
Eliel C. Sardanons [Fri, 20 Mar 2009 12:12:49 +0000 (12:12 +0000)]
Remove duplicate <description> inside the xml documentation.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@183511 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoMerged revisions 183386 via svnmerge from
David Vossel [Thu, 19 Mar 2009 20:30:39 +0000 (20:30 +0000)]
Merged revisions 183386 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r183386 | dvossel | 2009-03-19 14:40:07 -0500 (Thu, 19 Mar 2009) | 6 lines

  Cleaning up a few things in detect disconnect patch

  Initialized ast_call_feature in detect_disconnect to avoid accessing uninitialized memory.  Cleaned up /param tags in features.h.  No longer send dynamic features in ast_feature_detect.

  issue #11583
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@183436 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoRecorded merge of revisions 183342 via svnmerge from
Tilghman Lesher [Thu, 19 Mar 2009 19:22:12 +0000 (19:22 +0000)]
Recorded merge of revisions 183342 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r183342 | tilghman | 2009-03-19 14:21:30 -0500 (Thu, 19 Mar 2009) | 2 lines

  Reordering, to change prior to unlocking
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@183345 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoMerged revisions 183319 via svnmerge from
Tilghman Lesher [Thu, 19 Mar 2009 19:17:31 +0000 (19:17 +0000)]
Merged revisions 183319 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r183319 | tilghman | 2009-03-19 14:15:33 -0500 (Thu, 19 Mar 2009) | 8 lines

  Delay signalling progress until a PRI channel really signals progress.
  (closes issue #13034)
   Reported by: klaus3000
   Patches:
         20090316__bug13034.diff.txt uploaded by tilghman (license 14)
         patch_trunk_183progress_klaus3000.txt uploaded by klaus3000 (license 65)
   Tested by: klaus3000
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@183321 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoMerged revisions 183291 via svnmerge from
Jason Parker [Thu, 19 Mar 2009 18:34:11 +0000 (18:34 +0000)]
Merged revisions 183291 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r183291 | qwell | 2009-03-19 13:28:16 -0500 (Thu, 19 Mar 2009) | 1 line

  Export some more required symbols.
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@183312 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoFix a memory leak associated with queues.
Mark Michelson [Thu, 19 Mar 2009 18:10:34 +0000 (18:10 +0000)]
Fix a memory leak associated with queues.

For every attempt that app_queue made to place an outbound call to a queue member,
we would allocate a queue_end_bridge structure. When the bridge for the call had
completed, we would free the structure. Unfortunately not all call attempts actually
end up bridged to a member, so we need to be more selective of when to allocate
the structure. With this change, the allocation occurs in an area where we can
guarantee that the call will be bridged.

(closes issue #14680)
Reported by: caspy
Patches:
      14680.patch uploaded by mmichelson (license 60)
Tested by: caspy

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@183244 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoMerged revisions 183241 via svnmerge from
Russell Bryant [Thu, 19 Mar 2009 18:00:15 +0000 (18:00 +0000)]
Merged revisions 183241 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r183241 | russell | 2009-03-19 12:52:52 -0500 (Thu, 19 Mar 2009) | 2 lines

Remove the use of RTLD_NOLOAD, as it is not behaving like expected.

........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@183242 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoMerged revisions 183238 via svnmerge from
Russell Bryant [Thu, 19 Mar 2009 17:42:06 +0000 (17:42 +0000)]
Merged revisions 183238 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r183238 | russell | 2009-03-19 12:41:39 -0500 (Thu, 19 Mar 2009) | 1 line

Allow the AES API to work.
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@183239 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years ago2 symbols defined when DEBUG_THREADS
Tilghman Lesher [Thu, 19 Mar 2009 17:00:13 +0000 (17:00 +0000)]
2 symbols defined when DEBUG_THREADS

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@183196 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoMerged revisions 183126 via svnmerge from
David Vossel [Thu, 19 Mar 2009 16:28:33 +0000 (16:28 +0000)]
Merged revisions 183126 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r183126 | dvossel | 2009-03-19 11:15:16 -0500 (Thu, 19 Mar 2009) | 17 lines

  Allow disconnect feature before a call is bridged

  feature.conf has a disconnect option.  By default this option is set to '*', but it could be anything.  If a user wishes to disconnect a call before the other side answers, only '*' will work, regardless if the disconnect option is set to something else.  This is because features are unavailable until bridging takes place.  The default disconnect option, '*', was hardcoded in app_dial, which doesn't make any sense from a user perspective since they may expect it to be something different.  This patch allows features to be detected from outside of the bridge, but not operated on.  In this case, the disconnect feature can be detected before briding and handled outside of features.c.

  (closes issue #11583)
  Reported by: sobomax
  Patches:
   patch-apps__app_dial.c uploaded by sobomax (license 359)
   11583.latest-patch uploaded by murf (license 17)
   detect_disconnect.diff uploaded by dvossel (license 671)
  Tested by: sobomax, dvossel
  Review: http://reviewboard.digium.com/r/195/
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@183172 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoMerged revisions 183145 via svnmerge from
Russell Bryant [Thu, 19 Mar 2009 16:22:27 +0000 (16:22 +0000)]
Merged revisions 183145 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r183145 | russell | 2009-03-19 11:21:56 -0500 (Thu, 19 Mar 2009) | 1 line

Add missing semicolon in exports script.
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@183148 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoMerged revisions 183123 via svnmerge from
Russell Bryant [Thu, 19 Mar 2009 16:14:06 +0000 (16:14 +0000)]
Merged revisions 183123 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r183123 | russell | 2009-03-19 11:13:18 -0500 (Thu, 19 Mar 2009) | 2 lines

Allow the CallerID API to work again.

........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@183124 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoMerged revisions 183115 via svnmerge from
Mark Michelson [Thu, 19 Mar 2009 16:07:54 +0000 (16:07 +0000)]
Merged revisions 183115 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r183115 | mmichelson | 2009-03-19 11:04:02 -0500 (Thu, 19 Mar 2009) | 14 lines

  Fix an issue where cancelled outgoing SIP calls would erroneously report the device as "in use."

  A user was having an issue where if an outgoing SIP call was canceled, the SIP device
  would remain in use if we had not received any response to the initial INVITE we sent out.
  The SIP device would remain in use until the autocongestion timer was exhausted.

  I tracked down the cause of this to be the section of code I am removing here. I asked several
  people what the purpose of this code was meant to be, but no one could give me any sort of
  answer as to why this was here. The person who was having this issue has been using this patch
  for several months and it has stopped the problems they have had.

  AST-196
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@183117 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoImprove our triggering of a T38 switchover internally when triggered by a received...
Joshua Colp [Thu, 19 Mar 2009 15:37:23 +0000 (15:37 +0000)]
Improve our triggering of a T38 switchover internally when triggered by a received reinvite.

Previously we reached across the channel bridge to get the other party's SIP dialog
structure in order to trigger an outgoing reinvite. This is extremely dangerous to do
and only works if bridged to another SIP channel. This patch changes this to use the
T38 control frame method of requesting a switchover. This change also causes the SIP
channel driver to propogate back whether the switchover worked or not instead of blindly
accepting the incoming T38 reinvite.

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

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@183108 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoFix an issue where a T38 control frame would get dropped.
Joshua Colp [Wed, 18 Mar 2009 22:22:56 +0000 (22:22 +0000)]
Fix an issue where a T38 control frame would get dropped.

If two channels were bridged together using a generic bridge the T38
control frame would get passed up instead of being indicated on the
other channel.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@183057 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoallow this module to export everything for now
Kevin P. Fleming [Wed, 18 Mar 2009 21:28:28 +0000 (21:28 +0000)]
allow this module to export everything for now

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@183032 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoAdd some code removed by mistake from commit 182722 that works around a file
Jeff Peeler [Wed, 18 Mar 2009 21:18:27 +0000 (21:18 +0000)]
Add some code removed by mistake from commit 182722 that works around a file
descriptor leak in versions of PWLib prior to 1.12.0.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@183028 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoBlocked revisions 182965 via svnmerge
Jeff Peeler [Wed, 18 Mar 2009 20:03:28 +0000 (20:03 +0000)]
Blocked revisions 182965 via svnmerge

........
  r182965 | jpeeler | 2009-03-18 15:02:40 -0500 (Wed, 18 Mar 2009) | 1 line

  fix typo which broke configure
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@182966 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoBlocked revisions 182963 via svnmerge
Jeff Peeler [Wed, 18 Mar 2009 19:57:35 +0000 (19:57 +0000)]
Blocked revisions 182963 via svnmerge

........
  r182963 | jpeeler | 2009-03-18 14:57:05 -0500 (Wed, 18 Mar 2009) | 15 lines

  Allow H.323 Plus library to be used in addition to the OpenH323 library

  Chan_h323 can now be compiled against both the previously supported versions of
  OpenH323 as well as the current H.323 Plus (version 1.20.2). The configure
  script has been modified to look in the default install location of h323 to
  hopefully help avoid using the environment variables OPENH323DIR and PWLIBDIR.
  Also, the CLI command "h323 show version" has been added which indicates which
  version of h323 is in use.

  (closes issue 0011261)
  Reported by: vhatz
  Patches:
        asterisk-1.6.0.6-h323plus.patch uploaded by jthurman (license 614)
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@182964 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoFixing a lost symbol in manager.c
Tilghman Lesher [Wed, 18 Mar 2009 19:41:57 +0000 (19:41 +0000)]
Fixing a lost symbol in manager.c

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@182960 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoMerged revisions 182882 via svnmerge from
Kevin P. Fleming [Wed, 18 Mar 2009 11:40:11 +0000 (11:40 +0000)]
Merged revisions 182882 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r182882 | kpfleming | 2009-03-18 06:31:41 -0500 (Wed, 18 Mar 2009) | 3 lines

  fix another symbol namespace issue (reported by Andrew on asterisk-dev)
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@182883 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoa few more namespace updates... res_ael_share still needs some work before this can...
Kevin P. Fleming [Wed, 18 Mar 2009 02:39:36 +0000 (02:39 +0000)]
a few more namespace updates... res_ael_share still needs some work before this can be merged to other release branches

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@182848 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoMerged revisions 182810 via svnmerge from
Russell Bryant [Wed, 18 Mar 2009 02:28:55 +0000 (02:28 +0000)]
Merged revisions 182810 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r182810 | russell | 2009-03-17 21:09:13 -0500 (Tue, 17 Mar 2009) | 44 lines

Fix cases where the internal poll() was not being used when it needed to be.

We have seen a number of problems caused by poll() not working properly on
Mac OSX.  If you search around, you'll find a number of references to using
select() instead of poll() to work around these issues.  In Asterisk, we've
had poll.c which implements poll() using select() internally.  However, we
were still getting reports of problems.

vadim investigated a bit and realized that at least on his system, even
though we were compiling in poll.o, the system poll() was still being used.
So, the primary purpose of this patch is to ensure that we're using the
internal poll() when we want it to be used.

The changes are:

1) Remove logic for when internal poll should be used from the Makefile.
   Instead, put it in the configure script.  The logic in the configure
   script is the same as it was in the Makefile.  Ideally, we would have
   a functionality test for the problem, but that's not actually possible,
   since we would have to be able to run an application on the _target_
   system to test poll() behavior.

2) Always include poll.o in the build, but it will be empty if AST_POLL_COMPAT
   is not defined.

3) Change uses of poll() throughout the source tree to ast_poll().  I feel
   that it is good practice to give the API call a new name when we are
   changing its behavior and not using the system version directly in all cases.
   So, normally, ast_poll() is just redefined to poll().  On systems where
   AST_POLL_COMPAT is defined, ast_poll() is redefined to ast_internal_poll().

4) Change poll() in main/poll.c to be ast_internal_poll().

It's worth noting that any code that still uses poll() directly will work fine
(if they worked fine before).  So, for example, out of tree modules that are
using poll() will not stop working or anything.  However, for modules to work
properly on Mac OSX, ast_poll() needs to be used.

(closes issue #13404)
Reported by: agalbraith
Tested by: russell, vadim

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

........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@182847 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoMerged revisions 182808 via svnmerge from
Kevin P. Fleming [Wed, 18 Mar 2009 02:21:23 +0000 (02:21 +0000)]
Merged revisions 182808 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r182808 | kpfleming | 2009-03-17 20:55:22 -0500 (Tue, 17 Mar 2009) | 5 lines

  Improve the build system to *properly* remove unnecessary symbols from the runtime global namespace. Along the way, change the prefixes on some internal-only API calls to use a common prefix.

  With these changes, for a module to export symbols into the global namespace, it must have *both* the AST_MODFLAG_GLOBAL_SYMBOLS flag and a linker script that allows the linker to leave the symbols exposed in the module's .so file (see res_odbc.exports for an example).
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@182826 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoAdd support for the "name" option in the CHANNEL() function.
Russell Bryant [Tue, 17 Mar 2009 21:28:04 +0000 (21:28 +0000)]
Add support for the "name" option in the CHANNEL() function.

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

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@182762 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoAllow H.323 Plus library to be used in addition to the OpenH323 library
Jeff Peeler [Tue, 17 Mar 2009 20:47:31 +0000 (20:47 +0000)]
Allow H.323 Plus library to be used in addition to the OpenH323 library

Chan_h323 can now be compiled against both the previously supported versions of
OpenH323 as well as the current H.323 Plus (version 1.20.2). The configure
script has been modified to look in the default install location of h323 to
hopefully help avoid using the environment variables OPENH323DIR and PWLIBDIR.
Also, the CLI command "h323 show version" has been added which indicates which
version of h323 is in use.

(closes issue #11261)
Reported by: vhatz
Patches:
      asterisk-1.6.0.6-h323plus.patch uploaded by jthurman (license 614)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@182722 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoBlocked revisions 182652 via svnmerge
Jason Parker [Tue, 17 Mar 2009 20:14:17 +0000 (20:14 +0000)]
Blocked revisions 182652 via svnmerge

........
  r182652 | qwell | 2009-03-17 15:13:40 -0500 (Tue, 17 Mar 2009) | 7 lines

  Allow dahdichanname to work as advertised.

  (closes issue #14056)
  Reported by: dsedivec
  Patches:
        load_from_zapata_conf.patch uploaded by dsedivec (license 638)
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@182653 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoFixing CHANGES in rev 182596.
David Vossel [Tue, 17 Mar 2009 18:06:55 +0000 (18:06 +0000)]
Fixing CHANGES in rev 182596.

Progress DTMF was added into app_dial's D() option.  In CHANGES it should have been updated under 1.6.3 rather than 1.6.2.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@182607 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoOption to send DTMF when receiving PROGRESS status
David Vossel [Tue, 17 Mar 2009 17:17:51 +0000 (17:17 +0000)]
Option to send DTMF when receiving PROGRESS status

The D() option in app_dial is only able to send DTMF after the call has been answered.  A progress option has been added to D() to allow DTMF to be sent upon receiving PROGRESS.  This allows DTMF to be sent before the call is answered.

(closes issue #12123)
Reported by: VoipForces
Patches:
app_dial.c_patch_trunk_valid uploaded by VoipForces (license 419)
dtmf_progress.patch uploaded by dvossel (license 671)
Tested by: VoipForces, dvossel

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@182596 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoTweak the handling of the frame list inside of ast_answer().
Russell Bryant [Tue, 17 Mar 2009 15:22:12 +0000 (15:22 +0000)]
Tweak the handling of the frame list inside of ast_answer().

This does not change any behavior, but moves the frames from the local frame
list back to the channel read queue using an O(n) algorithm instead of O(n^2).

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@182553 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agocorrect logic flaw in ast_answer() changes in r182525
Kevin P. Fleming [Tue, 17 Mar 2009 14:59:33 +0000 (14:59 +0000)]
correct logic flaw in ast_answer() changes in r182525

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@182530 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoImprove behavior of ast_answer() to not lose incoming frames
Kevin P. Fleming [Tue, 17 Mar 2009 14:38:11 +0000 (14:38 +0000)]
Improve behavior of ast_answer() to not lose incoming frames

ast_answer(), when supplied a delay before returning to the caller, use ast_safe_sleep() to implement the delay. Unfortunately during this time any incoming frames are discarded, which is problematic for T.38 re-INVITES and other sorts of channel operations.

When a delay is not passed to ast_answer(), it still delays for up to 500 milliseconds, waiting for media to arrive. Again, though, it discards any control frames, or non-voice media frames.

This patch rectifies this situation, by storing all incoming frames during the delay period on a list, and then requeuing them onto the channel before returning to the caller.

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

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@182525 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoDon't include a space before the optional extra text that may follow a help
Sean Bright [Tue, 17 Mar 2009 14:24:53 +0000 (14:24 +0000)]
Don't include a space before the optional extra text that may follow a help
string.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@182521 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoMerged revisions 182449 via svnmerge from
Tilghman Lesher [Tue, 17 Mar 2009 05:51:54 +0000 (05:51 +0000)]
Merged revisions 182449 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r182449 | tilghman | 2009-03-17 00:50:52 -0500 (Tue, 17 Mar 2009) | 7 lines

  Fix race in astdb
  The underlying db1 implementation does not fully isolate the pages retrieved
  from astdb, so the lock protecting accesses needs to be extended until the
  copy from the shared memory structure is done.
  (closes issue #14682)
   Reported by: makoto
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@182450 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoOPENR2 uses an incorrect string value if the extension delimiter is not present.
Richard Mudgett [Tue, 17 Mar 2009 01:54:53 +0000 (01:54 +0000)]
OPENR2 uses an incorrect string value if the extension delimiter is not present.

*  Fixed OPENR2 using an incorrect string value if the extension
delimiter is not present in the Dial() function.  This was fixed for
SS7 and PRI in trunk -r172400.
*  Made OPENR2 stripmsd behavior the same as the SS7, PRI, and others.
*  Removed trailing whitespace that appeared with OPENR2.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@182408 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoUpdate UPGRADE.txt and CHANGES for 1.6.3
Russell Bryant [Mon, 16 Mar 2009 20:53:21 +0000 (20:53 +0000)]
Update UPGRADE.txt and CHANGES for 1.6.3

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@182362 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoAdd MFC/R2 support for chan_dahdi.
Russell Bryant [Mon, 16 Mar 2009 20:35:58 +0000 (20:35 +0000)]
Add MFC/R2 support for chan_dahdi.

This commit introduces official support for R2 signaling in chan_dahdi.  The
modifications to chan_dahdi, and the supporting library, LibOpenR2, were both
written by Moises Silva.

Many users are using this code, or a variant of it, in Asterisk 1.2, 1.4 and 1.6
in Brazil, México and Argentina. An unknown number of users (but at least 1)
are using it in each of the following countries: Colombia, Nepal, Thailand,
Venezuela, Perú, and probably others.

To use this code, LibOpenR2 must be installed from http://www.libopenr2.org/.
Information about configuration can be found in configs/chan_dahdi.conf.sample.

The code committed is the most up to date version, which was being maintained
in svn/asterisk/team/moy/mfcr2/.

I would also like to include a Thank You to the many others that tested this
code beyond those listed in this commit message.  These are the names that I
could find in the mantis issue.

(closes issue #12509)
Reported by: moy
Patches:
      chan_zap-mfr2.patch uploaded by moy (license 222)
Tested by: moy, korihor, viniciusfontes, Skarmeth, loloski, asbestoshead, titogarrido, heliocoelhojr, konsultex, ncorrare, ecarruda, rtorresduque, PTorres, ychen

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

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@182355 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoMerged revisions 182281 via svnmerge from
David Vossel [Mon, 16 Mar 2009 17:49:58 +0000 (17:49 +0000)]
Merged revisions 182281 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r182281 | dvossel | 2009-03-16 12:47:42 -0500 (Mon, 16 Mar 2009) | 7 lines

  Randomize IAX2 encryption padding

  The 16-32 byte random padding at the beginning of an encrypted IAX2 frame turns out to not be all that random at all.  This patch calls ast_random to fill the padding buffer with random data.  The padding is randomized at the beginning of every encrypted call and for every encrypted retransmit frame.

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

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@182282 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoFix an off-by-one error in the FILE() function, and extend FILE()'s length parameter...
Tilghman Lesher [Mon, 16 Mar 2009 17:33:38 +0000 (17:33 +0000)]
Fix an off-by-one error in the FILE() function, and extend FILE()'s length parameter to work like variable substitution.
Previously, FILE() returned one less character than specified, due to the
terminating NULL.  Both the offset and length parameters now behave
identically to the way variable substitution offsets and lengths also work.
(closes issue #14670)
 Reported by: BMC

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@182278 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoMerged revisions 182208 via svnmerge from
Tilghman Lesher [Mon, 16 Mar 2009 15:50:55 +0000 (15:50 +0000)]
Merged revisions 182208 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r182208 | tilghman | 2009-03-16 10:39:15 -0500 (Mon, 16 Mar 2009) | 7 lines

  Fixup glare detection, to fix a memory leak of a local pvt structure.
  (closes issue #14656)
   Reported by: caspy
   Patches:
         20090313__bug14656__2.diff.txt uploaded by tilghman (license 14)
   Tested by: caspy
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@182211 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoFix a memory leak in the ast_answer / __ast_answer API call.
Joshua Colp [Mon, 16 Mar 2009 13:58:24 +0000 (13:58 +0000)]
Fix a memory leak in the ast_answer / __ast_answer API call.

For a channel that is not yet answered this API call will wait
until a voice frame is received on the channel before returning.
It does this by waiting for frames on the channel and reading them
in. The frames read in were not freed when they should have been.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@182171 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoChange faulty comparison used when announcing average hold minutes and seconds
Mark Michelson [Fri, 13 Mar 2009 21:26:20 +0000 (21:26 +0000)]
Change faulty comparison used when announcing average hold minutes and seconds

(closes issue #14227)
Reported by: caspy

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@182121 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoRemove ast_ prefix from functions which are not public.
Mark Michelson [Fri, 13 Mar 2009 17:49:01 +0000 (17:49 +0000)]
Remove ast_ prefix from functions which are not public.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@182071 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoMerged revisions 181990 via svnmerge from
Mark Michelson [Fri, 13 Mar 2009 17:26:43 +0000 (17:26 +0000)]
Merged revisions 181990 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r181990 | mmichelson | 2009-03-13 12:12:32 -0500 (Fri, 13 Mar 2009) | 35 lines

  Check the DYNAMIC_FEATURES of both the chan and peer when interpreting DTMF.

  Dynamic features defined in the applicationmap section of features.conf allow
  one to specify whether the caller, callee, or both have the ability to use the
  feature. The documentation in the features.conf.sample file could be interpreted
  to mean that one only needs to set the DYNAMIC_FEATURES channel variable on the
  calling channel in order to allow for the callee to be able to use the features
  which he should have permission to use. However, the DYNAMIC_FEATURES variable
  would only be read from the channel of the participant that pressed the DTMF
  sequence to activate the feature. The result of this was that the callee was
  unable to use dynamic features unless the dialplan writer had taken measures
  to be sure that the DYNAMIC_FEATURES variable was set on the callee's channel.

  This commit changes the behavior of ast_feature_interpret to concatenate the
  values of DYNAMIC_FEATURES from both parties involved in the bridge. The features
  themselves determine who has permission to use them, so there is no reason to believe
  that one side of the bridge could gain the ability to perform an action that they
  should not have the ability to perform.

  Kevin Fleming pointed out on the asterisk-users list that the typical way that this
  was worked around in the past was by setting _DYNAMIC_FEATURES on the calling channel
  so that the value would be inherited by the called channel. While this works, the
  documentation alone is not enough to figure out why this is necessary for the callee
  to be able to use dynamic features. In this particular case, changing the code to match
  the documentation is safe, easy, and will generally make things easier for people for
  future installations.

  This bug was originally reported on the asterisk-users list by David Ruggles.

  (closes issue #14657)
  Reported by: mmichelson
  Patches:
        14657.patch uploaded by mmichelson (license 60)
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@182029 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoFix an issue with requesting a T38 reinvite before the call is answered.
Joshua Colp [Fri, 13 Mar 2009 17:25:09 +0000 (17:25 +0000)]
Fix an issue with requesting a T38 reinvite before the call is answered.

The code responsible for sending the T38 reinvite did not check if an INVITE was
already being handled. This caused things to get confused and the call to fail.
The code now defers sending the T38 reinvite until the current INVITE is done being
handled.

(issue AST-191)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@182022 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoimprove a bit of suboptimal code
Kevin P. Fleming [Fri, 13 Mar 2009 16:55:38 +0000 (16:55 +0000)]
improve a bit of suboptimal code

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@181985 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoMerged revisions 181898 via svnmerge from
Richard Mudgett [Fri, 13 Mar 2009 01:26:22 +0000 (01:26 +0000)]
Merged revisions 181898 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

Just recording the v1.4 change in trunk since it originally came from here.

........
  r181898 | rmudgett | 2009-03-12 20:19:29 -0500 (Thu, 12 Mar 2009) | 4 lines

  Use the correct branch integrated property when generating the version string.

  Copied the make_version file from Asterisk trunk.
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@181899 65c4cc65-6c06-0410-ace0-fbb531ad65f3

11 years agoRun the macro on the queue member's channel when he answers, not the caller's channel.
Mark Michelson [Thu, 12 Mar 2009 21:43:51 +0000 (21:43 +0000)]
Run the macro on the queue member's channel when he answers, not the caller's channel.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@181846 65c4cc65-6c06-0410-ace0-fbb531ad65f3