Commit Graph

13699 Commits

Author SHA1 Message Date
David Vossel
92acf5ac29 IAX2 encryption regression
The IAX2 Call Token security patch inadvertently broke the use of
encryption due to the reorganization of code in the socket_process()
function.  When encryption is used, an incoming full frame must first
be decrypted before the information elements can be parsed.  The
security release mistakenly moved IE parsing before decryption in
order to process the new Call Token IE.  To resolve this, decryption
of full frames is once again done before looking into the frame.  This
involves searching for an existing callno, checking the pvt to see if
encryption is turned on, and decrypting the packet before the internal
fields of the full frame are accessed.

associated with AST-2009-006

(closes issue #15834)
Reported by: karesmakro
Patches:
      iax2_encryption_fix_1.4.diff uploaded by dvossel (license 671)
Tested by: dvossel, karesmakro

Review: https://reviewboard.asterisk.org/r/355/



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@217806 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-10 21:06:07 +00:00
Olle Johansson
74d16bb0df Reinstate muted that was removed by mistake.
muted doesn't compile any more on os/x, so I have to disable it in order to testcompile other code...


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@217735 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-10 19:52:19 +00:00
Olle Johansson
b546a14a99 Remove harmful code that causes endless loops.
Remove code that causes loops in registrations. 

We have agreed that the patch that this code was part of was bad. I am ripping out the code that causes 
the issue. putnopvut needs to check the rest of the patch, if it needs to be changed as well.

This solves the issue reported in #15540, but needs more work before we close it (as described above).



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@217668 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-10 19:07:24 +00:00
Tilghman Lesher
b10343fd19 When MOH is playing on the channel, announcements sent through the conference are not heard.
(closes issue #14588)
 Reported by: voipas
 Patches: 
       20090716__issue14588__2.diff.txt uploaded by tilghman (license 14)
 Tested by: lmadsen, twisted, tilghman


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@217156 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-08 20:01:45 +00:00
Michiel van Baak
8edfe07e6d make asterisk compile under devmode with DEBUG_THREADS enabled on OpenBSD
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@216435 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-04 13:56:10 +00:00
Michiel van Baak
da349b0e75 make chan_sip compile under devmode again
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@216432 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-04 13:53:09 +00:00
Olle Johansson
05899c19a1 Make apps send PROGRESS control frame for early media and fix too early media issue in SIP
The issue at hand is that some legacy (dying) PBX systems send empty media frames on PRI
links *before* any call progress. The SIP channel receives these frames and by default
signals 183 Session progress and starts sending media. This will cause phones to 
play silence and ignore the later 180 ringing message. A bad user experience.

The fix is twofold:
- We discovered that asterisk apps that support early media ("noanswer") did not send
  any PROGRESS frame to indicate early media. Fixed.
- We introduce a setting in chan_sip so that users can disable any relay of media frames
  before the outbound channel actually indicates any sort of call progress.
  In 1.4, 1.6.0 and 1.6.1, this will be disabled for backward compatibility. In later versions
  of Asterisk, this will be enabled. We don't assume that it will change your Asterisk
  phone experience - only for the better.

We encourage third-party application developers to make sure that if they have applications
that wants to send early media, add a PROGRESS control frame transmission to make sure that
all channel drivers actually will start sending early media. This has not been the default
in Asterisk previous to this patch, so if you got inspiration from our code, you need to
update accordingly. Sorry for the trouble and thanks for your support.

This code has been running for a few months in a large scale installation (over 250
servers with PRI and/or BRI links to old PBX systems). 
That's no proof that this is an excellent patch, but, well, it's tested :-)



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@216430 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-04 13:45:48 +00:00
Michiel van Baak
d5cc6f0879 Make sure 'start' is always initialized.
This is the same as rev 216222 in trunk but 1.4 is affected as well


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@216369 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-04 13:16:29 +00:00
Russell Bryant
3ce5ac3c0c Merged revisions 216262 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
  r216262 | russell | 2009-09-04 05:47:37 -0500 (Fri, 04 Sep 2009) | 2 lines
  
  Add a plain text version of the IAX2 security document.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@216263 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-04 10:48:00 +00:00
Russell Bryant
ff3097a592 Blocked revisions 216087 via svnmerge
........
  r216087 | russell | 2009-09-03 14:37:05 -0500 (Thu, 03 Sep 2009) | 2 lines
  
  Fix a typo.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@216089 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-03 19:37:19 +00:00
Russell Bryant
e982c31095 Merged revisions 216080 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
  r216080 | russell | 2009-09-03 14:35:23 -0500 (Thu, 03 Sep 2009) | 2 lines
  
  Add a note about IAX2 to UPGRADE.txt.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@216085 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-03 19:36:46 +00:00
Russell Bryant
5694fcdb14 Merged revisions 216005 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
  r216005 | russell | 2009-09-03 13:42:24 -0500 (Thu, 03 Sep 2009) | 2 lines
  
  Add IAX2 security document related to AST-2009-006.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@216008 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-03 18:44:58 +00:00
David Vossel
ed1951d895 Merge code associated with AST-2009-006
(closes issue #12912)
Reported by: rathaus
Tested by: tilghman, russell, dvossel, dbrooks



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@216000 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-03 18:32:32 +00:00
Terry Wilson
82b1e162e1 Re-send non-100 provisional responses to prevent cancellation
From section 13.3.1.1 of RFC 3261:

   If the UAS desires an extended period of time to answer the INVITE,
   it will need to ask for an "extension" in order to prevent proxies
   from canceling the transaction. A proxy has the option of canceling
   a transaction when there is a gap of 3 minutes between responses in a
   transaction. To prevent cancellation, the UAS MUST send a non-100
   provisional response at every minute, to handle the possibility of
   lost provisional responses.

(closes issue #11157)
Reported by: rjain
Tested by: twilson

Review: https://reviewboard.asterisk.org/r/315/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@215682 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-02 21:41:22 +00:00
Dwayne M. Hubbard
fad010ebe7 Use strrchr() so SoftHangup will correctly truncate multi-hyphen channel names
In general channel names are in the form Foo/Bar-Z, but the channel name
could have multiple hyphens and look like Foo/B-a-r-Z.  Use strrchr to
truncate the channel name at the last hyphen.

(closes issue #15810)
Reported by: dhubbard
Patches:
      dw-softhangup-1.4.patch uploaded by dhubbard (license 733)



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@215270 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-01 23:04:52 +00:00
Tilghman Lesher
fa27e8dffa Also unlock the "other" channel, when returning, due to glare.
(closes issue #15787)
 Reported by: tim_ringenbach
 Patches: 
       chan_local.diff uploaded by tim ringenbach (license 540)
 Tested by: tim_ringenbach


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@214940 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-31 16:16:52 +00:00
Tilghman Lesher
fafa668b04 Modify comment to be a bit more accurate.
We have kept this comment around long enough, that it's pretty clear that we're
keeping the code, because changing the code would require a pretty fundamental
architectural shift.  We've also taken criticism in some quarters, because it
was believed that it was referring to the code being nasty.  No, the code isn't
nasty, just the operation itself is rather odd.  Fixed for eternity (probably
not).


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@214701 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-28 20:13:32 +00:00
Tilghman Lesher
4b133920a5 Use autoconf to detect libcurl, as this enables cross-compilation checks, something we didn't allow before.
(closes issue #15714)
 Reported by: pprindeville
 Patches: 
       20090813__issue15714.diff.txt uploaded by tilghman (license 14)
 Tested by: pprindeville


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@214517 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-27 21:45:34 +00:00
Tilghman Lesher
7215954ccf One more build system change, to make the descriptions look better, if we have better information.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@214436 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-27 16:53:58 +00:00
Tilghman Lesher
60fd401064 Make autoheader descriptions render correctly in our autoconfig.h file.
(Figured out while working with issue #14906)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@214357 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-27 16:03:50 +00:00
David Vossel
899272c2cc ast_write() ignores ast_audiohook_write() results
In ast_write(), if a channel has a list of audiohooks, those
lists are written to and the resulting frame is what ast_write()
should continue with.  The problem was the returned audiohook frame
was not being handled at all, and the original frame passed
into it did not contain the mixed audio, so essentially audio
was being lost.  One result of this was chan_spy's whisper
mode no longer worked.  To complicate the issue, frames
passed into ast_write may either be a single frame, or a list
of frames.  So, as the list of frames is processed in the
audiohook_write, the returned frames had to be added to a new
list.

(closes issue #15660)
Reported by: corruptor
Tested by: dvossel



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@214194 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-26 16:36:42 +00:00
Tilghman Lesher
a45f5e5be0 I should always compile before committing...
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@214069 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-25 19:28:42 +00:00
Tilghman Lesher
10a972f98e Fix pronunciation of German dates.
(closes issue #15273)
 Reported by: Benjamin Kluck
 Patches: 
       say_c.patch uploaded by Benjamin Kluck (license 803)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@214068 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-25 19:26:50 +00:00
Tilghman Lesher
0055593341 Improve error message by informing user exactly which function is missing a parethesis.
(closes issue #15242)
 Reported by: Nick_Lewis
 Patches: 
       pbx.c-funcparenthesis.patch2 uploaded by dbrooks (license 790)
       pbx.c-funcparenthesis-1.4.diff uploaded by loloski (license 68)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@213970 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-25 06:34:44 +00:00
Tilghman Lesher
679cefec98 Use the default runlevels for Debian derivatives, instead of making up our own.
(closes issue #14730)
 Reported by: pkempgen


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@213899 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-25 02:40:22 +00:00
Kevin P. Fleming
79221dad8d Ensure that T.38 INVITEs generated by Asterisk properly result in T.38 being enabled.
(closes issue #15373)
Reported by: dcolombo
Patches:
      chan_sip.patch uploaded by mbrancaleoni (license 342)
Tested by: dcolombo, mbrancaleoni


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@213631 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-21 20:23:45 +00:00
Tilghman Lesher
1ea4af21ca Permit DEBUG_FD_LEAKS to be used with C++ source files.
(closes issue #15698)
 Reported by: slavon
 Patches: 
       20090817__issue15698.diff.txt uploaded by tilghman (license 14)
 Tested by: slavon, tilghman


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@213559 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-21 16:52:53 +00:00
Jason Parker
3300ac5b40 Clarify queues.conf comments to specify that variables should be set in the dialplan.
(closes issue #15755)
Reported by: trendboy


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@213493 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-21 16:03:21 +00:00
Matthew Nicholson
4fa5fa014f Fix a crash by checking the proper pointer for validity before deferencing it.
(closes issue #15751)
Reported by: atis
Patches:
      ast_bridge_call_peer_cdr.patch uploaded by atis (license 242)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@213339 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-20 20:33:07 +00:00
Jeff Peeler
d581b4216a Make all the symbols for the C-client callbacks global
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@213283 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-20 19:53:34 +00:00
David Vossel
941ed1b2fe Fixes memory leak caused by incorrectly freeing mixmonitor
(closes issue #15699)
Reported by: edantie
Patches:
      mixmonitor.patch uploaded by edantie (license 862)



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@213103 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-19 21:18:37 +00:00
Kevin P. Fleming
f5bc668276 Convert this branch to Opsound music-on-hold.
For more details:
http://blogs.digium.com/2009/08/18/asterisk-music-on-hold-changes/



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@212913 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-18 20:26:53 +00:00
Sean Bright
a4d1e6120f Delay the creation of temporary files until we have a valid manager command to handle.
Without this patch, asterisk creates a temporary file before determining if the
specified command is valid.  If invalid, we weren't properly cleaning up the file.

(closes issue #15730)
Reported by: zmehmood
Patches:
      M15730.diff uploaded by junky (license 177)
Tested by: zmehmood


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@212763 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-18 16:36:00 +00:00
Richard Mudgett
309898993f Removed some deadwood and added some doxygen comments.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@212727 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-18 16:00:56 +00:00
Jeff Peeler
d924b5349e Fix segfault when reloading chan_misdn.
If more ports were specified than configured in misdn.conf a reload would crash
asterisk. The problem was the unconfigured port was using data from the
previously configured port. When the data for an unconfigured port was freed a
crash would result from the double free.

(closes issue #12113)
Reported by: agupta
Patches:
      bug12113.patch uploaded by jpeeler (license 325)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@212498 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-17 16:34:56 +00:00
Richard Mudgett
00de2431be Fix uninitialized variable.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@212430 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-17 15:36:28 +00:00
Matthew Nicholson
b35312b15b This patch adds additional checking when generating queue log TRANSFER events.
The additional checks prevent generation of false TRANSFER events in certain situations.

(closes issue #14536)
Reported by: aragon
Patches:
      queue-log-xfer-fix1.diff uploaded by mnicholson (license 96)
Tested by: aragon, mnicholson


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@211953 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-12 23:04:02 +00:00
Mark Michelson
ad76c40551 Backport fix so that outbound CANCEL requests have same branch as challenged INVITEs.
There already was code present to be sure that a CANCEL will contain the same branch-id
as the INVITE it is cancelling. However, for INVITES which are challenged downstream,
this mechanism did not work properly. Now this is taken care of.

This is a backport of a fix already present in all 1.6.X branches and in trunk. It also
fixes ABE-1907.



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@211807 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-12 18:46:09 +00:00
Tilghman Lesher
90f3605f6f Conversion specifiers, not format specifiers
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@211583 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-10 19:48:48 +00:00
Tilghman Lesher
63cc189747 AST-2009-005
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@211528 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-10 19:15:57 +00:00
Tilghman Lesher
541976843e Small oops. Clear the flags which have been checked.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@211274 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-09 15:41:01 +00:00
Russell Bryant
a56006702e Resolve a deadlock involving app_chanspy and masquerades.
(ABE-1936)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@211112 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-07 20:11:31 +00:00
Tilghman Lesher
17656694c3 QUEUE_MEMBER_LIST _really_ wants the interface name, not the membername.
This is a partial revert of revision 82590, which was an attempted cleanup,
but in reality, it broke QUEUE_MEMBER_LIST, which has always been intended
as a method by which component interfaces could be queried from the queue.
Membername isn't useful here, because that field cannot be used to obtain
further information about the member.  See the documentation on
QUEUE_MEMBER_LIST, RemoveQueueMember, QUEUE_MEMBER_PENALTY, and the various
AMI commands which take a member argument for further justification.
(closes issue #15664)
 Reported by: rain
 Patches: 
       app_queue-queue_member_list.diff uploaded by rain (license 327)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@211038 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-07 18:16:28 +00:00
Tilghman Lesher
e87d76cb94 Because channel information can be accessed outside of the channel thread, we must lock the channel prior to modifying it.
(closes issue #15397)
 Reported by: caspy
 Patches: 
       20090714__issue15397.diff.txt uploaded by tilghman (license 14)
 Tested by: caspy


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@210913 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-06 21:45:01 +00:00
Richard Mudgett
20d63bd1c0 Dialplan starts execution before the channel setup is complete.
*  Issue 15655: For the case where dialing is complete for an incoming
call, dahdi_new() was asked to start the PBX and then the code set more
channel variables.  If the dialplan hungup before these channel variables
got set, asterisk would likely crash.
*  Fixed potential for overlap incoming call to erroneously set channel
variables as global dialplan variables if the ast_channel structure failed
to get allocated.
*  Added missing set of CALLINGSUBADDR in the dialing is complete case.

(closes issue #15655)
Reported by: alecdavis


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@210575 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-05 19:18:56 +00:00
Leif Madsen
01416248d5 Update imapstorage.txt documentation.
Updated the imapstorage.txt documentation to reflect that issues with
c-client versions older than 2007 seem to cause crashing issues that
are not seen with more recent versions. Documentation has been updated
to reflect this.

(closes issue #14496)
Reported by: vbcrlfuser
Patches:
      __20090727-imap-documentation-patch.txt uploaded by lmadsen (license 10)
Tested by: lmadsen, mmichelson, dbrooks

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@210563 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-05 18:46:21 +00:00
Kevin P. Fleming
22140c486f Eliminate spurious compiler warnings from system headers on *BSD platforms.
Ensure that system headers located in /usr/local/include are actually treated
as system headers by the compiler, and not as local headers which are subject
to warnings from the -Wundef compiler option and others.

(closes issue #15606)
Reported by: mvanbaak



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@210237 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-04 14:51:39 +00:00
David Brooks
29f865ad17 Fixes dialplan wildcard extension taking precedence over call pickup code.
Prior to this patch, a wildcard extension in the dialplan (for example, _*.) would take
precedence over picking up a call in the channel's pickup group. This patch simply moves
the block of code handling pickup group matching to above the extension matching code.

(closes issue #14735)
Reported by: stevedavies

Review: https://reviewboard.asterisk.org/r/319/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@210067 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-03 16:15:20 +00:00
Tilghman Lesher
ca0f026f41 Reverting index() fix, applying a different methodology, based upon developer discussions.
(related to issue #15639)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@210066 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-03 16:11:29 +00:00
Tilghman Lesher
f5a5763ee9 Helps if we export the index() function.
(Related to issue #15639)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@210065 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-03 15:42:10 +00:00