Commit Graph

5853 Commits

Author SHA1 Message Date
Richard Mudgett
ac756bdcbb Merged revisions 185122 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r185122 | rmudgett | 2009-03-30 15:41:24 -0500 (Mon, 30 Mar 2009) | 26 lines
  
  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/branches/1.6.2@185128 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-30 20:52:07 +00:00
Joshua Colp
1e3625e133 Merged revisions 184948 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r184948 | file | 2009-03-30 11:37:47 -0300 (Mon, 30 Mar 2009) | 21 lines
  
  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/branches/1.6.2@184951 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-30 14:43:12 +00:00
Russell Bryant
dc3a259291 Merged revisions 184910 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r184910 | russell | 2009-03-30 08:55:44 -0500 (Mon, 30 Mar 2009) | 4 lines

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/branches/1.6.2@184913 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-30 13:57:56 +00:00
Russell Bryant
d627eb0451 Merged revisions 184838 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r184838 | russell | 2009-03-29 00:32:04 -0500 (Sun, 29 Mar 2009) | 8 lines

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/branches/1.6.2@184839 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-29 05:32:29 +00:00
Kevin P. Fleming
2616defc54 Merged revisions 184762 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r184762 | kpfleming | 2009-03-27 14:10:32 -0500 (Fri, 27 Mar 2009) | 12 lines
  
  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/branches/1.6.2@184779 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-27 19:21:33 +00:00
Joshua Colp
fc65b48245 Merged revisions 184566 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r184566 | file | 2009-03-27 10:15:26 -0300 (Fri, 27 Mar 2009) | 16 lines
  
  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/branches/1.6.2@184612 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-27 13:28:43 +00:00
Russell Bryant
c2f4651a4b Merged revisions 184339 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r184339 | russell | 2009-03-25 16:57:19 -0500 (Wed, 25 Mar 2009) | 35 lines

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/branches/1.6.2@184343 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-25 22:07:07 +00:00
Joshua Colp
a96d378c85 Merged revisions 184280 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r184280 | file | 2009-03-25 16:22:06 -0300 (Wed, 25 Mar 2009) | 5 lines
  
  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/branches/1.6.2@184283 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-25 19:27:08 +00:00
Russell Bryant
614ea515c1 Merged revisions 184037 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r184037 | russell | 2009-03-24 16:40:44 -0500 (Tue, 24 Mar 2009) | 6 lines

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/branches/1.6.2@184041 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-24 21:48:58 +00:00
Leif Madsen
1ef9ff6739 Merged revisions 183701 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r183701 | lmadsen | 2009-03-23 14:06:40 -0400 (Mon, 23 Mar 2009) | 7 lines
  
  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/branches/1.6.2@183704 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-23 18:12:57 +00:00
Russell Bryant
37a03f1cbb Merged revisions 183560 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r183560 | russell | 2009-03-20 12:00:58 -0500 (Fri, 20 Mar 2009) | 10 lines

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/branches/1.6.2@183564 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-20 17:09:32 +00:00
Eliel C. Sardanons
a1a62c2319 Merged revisions 183511 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r183511 | eliel | 2009-03-20 08:12:49 -0400 (Fri, 20 Mar 2009) | 2 lines
  
  Remove duplicate <description> inside the xml documentation.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.2@183519 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-20 12:19:03 +00:00
Tilghman Lesher
412ae849e7 Merged revisions 183321 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r183321 | tilghman | 2009-03-19 14:17:31 -0500 (Thu, 19 Mar 2009) | 15 lines
  
  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/branches/1.6.2@183337 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-19 19:20:20 +00:00
Mark Michelson
059683e290 Merged revisions 183117 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r183117 | mmichelson | 2009-03-19 11:07:54 -0500 (Thu, 19 Mar 2009) | 20 lines
  
  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/branches/1.6.2@183122 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-19 16:11:00 +00:00
Joshua Colp
ce6869fd95 Merged revisions 183108 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r183108 | file | 2009-03-19 12:37:23 -0300 (Thu, 19 Mar 2009) | 11 lines
  
  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/branches/1.6.2@183111 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-19 15:45:45 +00:00
Jeff Peeler
276f1c6ba9 Merged revisions 183028 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r183028 | jpeeler | 2009-03-18 16:18:27 -0500 (Wed, 18 Mar 2009) | 4 lines
  
  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/branches/1.6.2@183031 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-18 21:19:47 +00:00
Russell Bryant
b085426cda Merged revisions 182847 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r182847 | russell | 2009-03-17 21:28:55 -0500 (Tue, 17 Mar 2009) | 52 lines

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/branches/1.6.2@182947 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-18 14:39:05 +00:00
Jeff Peeler
20b2cd0eb1 Merged revisions 182722 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r182722 | jpeeler | 2009-03-17 15:47:31 -0500 (Tue, 17 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 #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/branches/1.6.2@182725 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-17 20:53:55 +00:00
Richard Mudgett
4e064fa071 Merged revisions 182408 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r182408 | rmudgett | 2009-03-16 20:54:53 -0500 (Mon, 16 Mar 2009) | 8 lines
  
  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/branches/1.6.2@182409 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-17 02:02:03 +00:00
Russell Bryant
77a6840fd3 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
2009-03-16 20:35:58 +00:00
David Vossel
18ac659dc6 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
2009-03-16 17:49:58 +00:00
Tilghman Lesher
0bf4624643 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
2009-03-16 15:50:55 +00:00
Joshua Colp
a6734b5a95 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
2009-03-13 17:25:09 +00:00
Kevin P. Fleming
87a8295303 improve a bit of suboptimal code
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@181985 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-13 16:55:38 +00:00
Mark Michelson
593d643d24 Merged revisions 181768 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r181768 | mmichelson | 2009-03-12 13:29:48 -0500 (Thu, 12 Mar 2009) | 22 lines
  
  Properly send a 487 on an INVITE we have not responded to if we receive a BYE.
  
  If we receive an INVITE from an endpoint and then later receive a BYE from that
  same endpoint before we have sent a final response for the INVITE, then we need
  to respond to the INVITE with a 487. 
  
  There was logic in the code prior to this commit which seemed to exist solely to 
  handle this situation, but there was one condition in an if statement which 
  was incorrect. The only way we would send a 487 was if the sip_pvt had no owner
  channel. This made no sense since we created the owner channel when we received
  the INVITE, meaning that the majority of the time we would never send the 487.
  The 487 being sent should not rely on whether we have created a channel. Its
  delivery should be dependent on the current state of the initial INVITE transaction.
  With this commit, that logic is now correctly in place.
  
  (closes issue #14149)
  Reported by: legranjl
  Patches:
        14149.patch uploaded by mmichelson (license 60)
  Tested by: legranjl
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@181769 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-12 18:30:58 +00:00
David Vossel
5f476b6085 Merged revisions 181340 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r181340 | dvossel | 2009-03-11 12:25:31 -0500 (Wed, 11 Mar 2009) | 11 lines
  
  encrypted IAX2 during packet loss causes decryption to fail on retransmitted frames
  
  If an iax channel is encrypted, and a retransmit frame is sent, that packet's iseqno is updated while it is encrypted.  This causes the entire frame to be corrupted.  When the corrupted frame is sent, the other side decrypts it and sends a VNAK back because the decrypted frame doesn't make any sense.  When we get the VNAK, we look through the sent queue and send the same corrupted frame causing a loop.  To fix this, encrypted frames requiring retransmission are decrypted, updated, then re-encrypted.  Since key-rotation may change the key held by the pvt struct, the keys used for encryption/decryption are held within the iax_frame to guarantee they remain correct.
  
  (closes issue #14607)
  Reported by: stevenla
  Tested by: dvossel
  
  Review: http://reviewboard.digium.com/r/192/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@181371 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-11 17:34:57 +00:00
Joshua Colp
1fc574dbf7 Merged revisions 181328 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r181328 | file | 2009-03-11 14:22:52 -0300 (Wed, 11 Mar 2009) | 14 lines
  
  Fix issue where an attended transfer could not be completed under a rare scenario.
  
  When completing an attended transfer chan_sip does a check to make sure the extension
  in the URI portion of the Refer-To header is a local valid extension. We don't actually
  need to check this since we know for sure the other channel is already up and talking to
  the extension. Some devices do not put the extension in the Refer-To header either, which
  can cause the extension check to fail. We now no longer do this check if it is an attended
  transfer.
  
  (closes issue #14628)
  Reported by: sverre
  Patches:
        14628.diff uploaded by file (license 11)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@181345 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-11 17:26:40 +00:00
Joshua Colp
60d58b8d15 Merged revisions 181295 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r181295 | file | 2009-03-11 13:36:50 -0300 (Wed, 11 Mar 2009) | 9 lines
  
  Fix a problem with inband DTMF detection on outgoing SIP calls when dtmfmode=auto.
  
  When dtmfmode was set to auto the inband DTMF detector was not setup
  on outgoing SIP calls. This caused inband DTMF detection to fail.
  The inband DTMF detector is now setup for both dtmfmode inband and auto.
  
  (closes issue #13713)
  Reported by: makoto
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@181296 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-11 16:40:48 +00:00
Jeff Peeler
58cf8b69da Fix malloc debug macros to work properly with h323.
The main problem here was that cstdlib was undefining free thereby causing the
proper debug macros to not be used. ast_h323.cxx has been changed to call
ast_free instead to avoid the issue. 

A few other issues were addressed:
- There were a few instances of functions improperly passing ast_free instead
of ast_free_ptr.
- Some clean up was done to avoid the debug macros intentionally being redefined.
(copied below from Kevin's commit, appreciate the help)
- disable astmm.h from doing anything when STANDALONE is defined, which is used
by the tools in the utils/ directory that use parts of Asterisk header files in
hackish ways; also ensure that utils/extconf.c and utils/conf2ael.c are
compiled with STANDALONE defined.

(closes issue #13593)
Reported by: pj



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@181135 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-11 04:06:44 +00:00
Mark Michelson
c1e2636be7 Add missing comment that quotes RFC 3891
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@181033 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-11 00:49:00 +00:00
Mark Michelson
85a5f68fe1 Merged revisions 181029,181031 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r181029 | mmichelson | 2009-03-10 19:30:26 -0500 (Tue, 10 Mar 2009) | 9 lines
  
  Fix incorrect tag checking on transfers when pedantic=yes is enabled.
  
  (closes issue #14611)
  Reported by: klaus3000
  Patches:
        patch_chan_sip_attended_transfer_1.4.23.txt uploaded by klaus3000 (license 65)
  Tested by: klaus3000
........
  r181031 | mmichelson | 2009-03-10 19:32:40 -0500 (Tue, 10 Mar 2009) | 3 lines
  
  Remove unused variables.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@181032 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-11 00:46:47 +00:00
Joshua Colp
4c9ab0df8c Merge phase 1 support for the new bridging architecture.
This commit brings in the bridging core, bridging technologies,
and the ConfBridge application.

For usage information on the ConfBridge application please see
the output of "core show application ConfBridge" from the CLI.

For API documentation please see the doxygen page describing the
architecture and the documentation for each API call.

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@180369 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-05 18:18:27 +00:00
Russell Bryant
6c9f6d33c7 Resolve object matching issues related to the removal of the sip_user object.
Previously, chan_sip had both sip_peer and sip_user objects in memory.  A
patch went in to remove sip_user to simplify the code, since everything
could be done with just sip_peer.  This patch resolves some regressions
found that were introduced by those changes.

This code comes from svn/asterisk/team/group/sip-object-matching/.

Here is a list of the changes that have been made:

1) When doing a match by name with the find_peer() function, make it much
   easier to specify which objects should be matched by having a parameter
   that specifies exactly which object types should be considered.  Also,
   update find_by_name() to handle this parameter.  Finally, update all
   code to use the new option values.

2) When looking up an object for an outbound request by name, consider
   peers only.  (create_addr())

3) Only match peers on an incoming registration request.

4) When doing authentication (except for SUBSCRIBE), look up users
   by name, instead of all objects by name.
   
5) When doing authentication (except for SUBSCRIBE), after looking for
   a user by name, look for a peer by IP address, instead of all objects
   by IP address.

6) When handling the SIP qualify CLI command or manager action, look for
   a peer by name, instead of any object by name.

7) When handling the SIP unregister CLI command, look for a peer by name,
   instead of any object by name.

9) In sip_do_debug_peer(), search for a peer by name, instead of any object
   by name.

9) When handling the SIPPEER() dialplan function, search for a peer by name,
   instead of any object by name.

10) In the following session timer related functions, st_get_se(),
    st_get_refresher(), and st_get_mode(), when looking for an object for a
    given sip_pvt using pvt->peername, look for a peer by name, instead of any
    object by name.

11) Fix build_peer() to properly handle the case where separate type=peer and
    type=user entries were specified in sip.conf.

(closes issue #14505)
Reported by: lmadsen

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@180261 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-04 21:01:05 +00:00
Mark Michelson
3a14487abf Allow for "magic" pickups to work when we wish to ignore the context
When the subscription context for a call pickup subscription differs
from the context of the call pickup target, there's not an easy way
to divine what context should be used for the pickup. The way to work
around this is to use PICKUPMARK as the context for the pickup.

This has been documented in the sip.conf.sample file

(ABE-1708)

closes issue #14567
submitted by: alecdavis


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@180155 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-04 17:03:32 +00:00
Olle Johansson
f000d5bb0f Please prefix default values with DEFAULT
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@179675 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-03 15:13:42 +00:00
Joshua Colp
775b30307f Do not try to remove a registration scheduled item if the scheduler context has already been destroyed.
(closes issue #14580)
Reported by: alecdavis


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@179323 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-02 14:28:09 +00:00
Mark Michelson
c9252cbaf0 Properly free memory and remove scheduler entries when a transmission failure occurs.
Previously, only the "data" field of the sip_pkt created during __sip_reliable_xmit 
was freed when XMIT_ERROR was returned by __sip_xmit. When retrans_pkt was called,
this inevitably resulted in the reading and writing of freed memory.

XMIT_ERROR is a condition meaning that we don't want to attempt resending the packet
at all. The proper action to take is to remove the scheduler entry we just created,
free the packet's data as well as the packet itself, and unlink it from the list of
packets on the sip_pvt structure.

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



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@179219 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-01 21:45:08 +00:00
Michiel van Baak
99ad18c4c5 Add reload support to chan_skinny.
Special thanks goes to DEA who had to redo this patch twice
because we first put unload/load support in and later redid the way
we configure devices and lines.

(closes issue #10297)
Reported by: DEA
Patches:
      skinny-reload-trunkv2.diff uploaded by wedhorn (license 30)
      skinny-reload-trunk-v4.txt uploaded by DEA (license 3)
	  With mods by me based on feedback from wedhorn and Russell and seanbright
Tested by: DEA, mvanbaak, pj

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@179122 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-27 20:34:00 +00:00
David Vossel
3d0aac6cd8 IAX2 prune realtime, minor tweak to last fix
A return statement was missing which caused unexpected cli output.

issue #14479


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@178871 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-26 17:46:12 +00:00
David Vossel
a0ef434095 IAX2 prune realtime fix
Iax2 prune realtime had issues.  If "iax2 prune realtime all" was called, it would appear like the command was successful, but in reality nothing happened.  This is because the reload that was supposed to take place checks the config files, sees no changes, and does nothing.  If there had been a change in the the config file, the realtime users would have been marked for deletion and everything would have been fine.  Now prune_users() and prune_peers() are called instead of reload_config() to prune all users/peers that are realtime.  These functions remove all users/peers with the rtfriend and delme flags set. iax2_prune_realtime() also lacked the code to properly delete a single friend.  For example. if iax2 prune realtime <friend> was called, only the peer instance would be removed. The user would still remain.  

(closes issue #14479)
Reported by: mousepad99
Review: http://reviewboard.digium.com/r/176/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@178767 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-26 15:50:22 +00:00
David Vossel
641dd68c4d Allows manager command to see if IAX link is trunked and encrypted. Displays what kind of encryption is enabled as well.
Manager command "iaxpeers" now shows if a link is trunked and encrypted.  Instead of encryption saying simply "yes" or "no", it now displays what type of encryption is enabled and if keyrotation is on or not.  

(closes issue #14427)
Reported by: snuffy
Patches:
	iax_show_trunks.diff uploaded by snuffy (license 35)
	2009022200_iax2_show_trunkencryption.diff.txt uploaded by mvanbaak (license 7)
Tested by: mvanbaak, dvossel, snuffy
Review: http://reviewboard.digium.com/r/173/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@178300 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-24 17:42:37 +00:00
Joshua Colp
9ccad1406b Merged revisions 178205 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r178205 | file | 2009-02-24 11:16:07 -0400 (Tue, 24 Feb 2009) | 9 lines
  
  Skip check for extension when subscribing for MWI.
  
  Since the remote side is not actually subscribing to a specific extension when
  subscribing for MWI just skip the check to see if the extension exists. They can't use it
  to specify the mailbox either since we require configuration of that in sip.conf
  
  (closes issue #14531)
  Reported by: festr
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@178213 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-24 15:18:38 +00:00
Michiel van Baak
25056db5d0 update the new manager commands in chan_skinny to match
chan_sip's headers. requested by oej.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@178061 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-23 18:23:38 +00:00
David Vossel
7d1ac32af1 Changes the way keyrotation is enabled by default
Key rotation was enabled by default by setting the global encryption method to IAX_ENCRYPT_KEYROTATE.  the problem with this is that if encryption is not enabled, and the encryption method is set to anything except 0, the peer appears to have encryption enabled when issuing a "iax2 show peers".  Rather than have the key rotation bit always set by default, it is now only set when an encryption method is enabled. 

(closes issue #14523)
Reported by: mvanbaak


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@178030 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-23 17:59:55 +00:00
Michiel van Baak
c880aa936b Add a couple of manager commands to chan_skinny
Added:
SKINNYdevices
SKINNYshowdevice
SKINNYlines
SKINNYshowline

(closes issue #14521)
Reported by: mvanbaak

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@177988 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-22 23:04:37 +00:00
Tilghman Lesher
bafd3372cf On update, test against the existence of sipregs.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@177944 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-21 15:59:49 +00:00
Michiel van Baak
d9eb973a3d make chan_sip.c compile on OpenBSD again.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@177849 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-21 12:22:32 +00:00
Jeff Peeler
138f3de410 Set sip_request ast_str data to NULL so ast_str_copy allocates space properly
in copy_request

(issue #14478)
Reported by: erik_dedecker



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@177624 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-20 00:35:53 +00:00
Jeff Peeler
c8fe75da36 Modify h323 to build against PTLib as well as the older PWLib
Several changes in PTLib have occurred requiring build time detection. Changes
accounted for include the library name change, config option change, install
location change, and a boolean type change which is handled by ast_ptlib.h.
Also, the sed check has been modified to properly work with autoconf >= 2.62.

(closes issue #14224)
Reported by: bergolth
Patches:
      asterisk-autoconf-sed.patch uploaded by bergolth (license 661)
      asterisk-pwlib-v3.patch uploaded by bergolth (license 661)
Tested by: jpeeler


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@177162 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-18 20:11:57 +00:00
Joshua Colp
2ff89e817e Fix ordering of output for a ChannelUpdate manager event.
(closes issue #14497)
Reported by: vinsik
Patches:
      chan_update_fix-chan_sip.c.diff uploaded by vinsik (license 623)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@177005 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-18 17:11:52 +00:00