Commit Graph

2268 Commits

Author SHA1 Message Date
Jonathan Rose
83fad31713 DTMF wasn't being logged on connected consoles when enabled in logger.conf
Previously in order for DTMF to be logged in a connected console session, the user would
have to do logger set channel DTMF on.  This corrects that so that it is on by default.
This issue was caused by an off by one error incurred by a logger level count of 6 in
logger.h where it should have been 7.

(closes issue: ASTERISK-17974)
Reported by: Luke H



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@324768 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-24 16:48:06 +00:00
David Vossel
e1adc7cefa Merged revisions 324634 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r324634 | dvossel | 2011-06-23 13:18:46 -0500 (Thu, 23 Jun 2011) | 13 lines
  
  Merged revisions 324627 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r324627 | dvossel | 2011-06-23 13:16:52 -0500 (Thu, 23 Jun 2011) | 7 lines
    
    Addresses AST-2011-010, remote crash in IAX2 driver
    
    Thanks to twilson for identifying the issue and providing the patches.
    
    AST-2011-010
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@324652 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-23 18:23:21 +00:00
Terry Wilson
0ada0bfea3 Stop sending IPv6 link-local scope-ids in SIP messages
The idea behind the patch listed below was used, but in a more targeted manner.
There are now address stringification functions for addresses that are meant to
be sent to a remote party. Link-local scope-ids only make sense on the machine
from which they originate and so are stripped in the new functions.

There is also a host sanitization function added to chan_sip which is used
for when peer and dialog tohost fields or sip_registry hostnames are used to
craft a SIP message.

Also added are some basic unit tests for netsock2 address parsing.

(closes issue ASTERISK-17711)
Reported by: ch_djalel
Patches:
      asterisk-1.8.3.2-ipv6_ll_scope.patch uploaded by ch_djalel (license 1251)

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@324484 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-22 18:52:04 +00:00
David Vossel
87908a3f5d Fixes locking inversion issue in ast_async_goto()
During this function we can not hold the "chan" lock while
doing the masquerade, the explicit goto on the tmp chan, or
the channel alloc.  Instead we need to get the channel lock,
store off information about the channel that we need, and
then let the channel lock go for the remainder of the function.

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@324364 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-21 20:11:52 +00:00
Terry Wilson
c84e7b911e Lock the channel before calling the setoption callback
The channel needs to be locked before calling these callback functions. Also,
sip_setoption needs to lock the pvt and a check p->rtp is non-null before using
it.

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@324048 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-16 22:35:41 +00:00
Terry Wilson
c71181a78f Make ARRAY_LEN() return the same type on x86 and x86_64 systems
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@323863 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-15 19:58:18 +00:00
Terry Wilson
ee2920afba Add rtpkeepalives back to 1.8
The RTP-engine conversion left out support for handling rtpkeepalives.
This patch adds them back.

(closes issue ASTERISK-17304)
Reported by: lmadsen

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@323370 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-14 16:33:55 +00:00
Terry Wilson
b304546811 Correct ast_db_deltree documentation
ast_db_deltree returns -1 on error, otherwise the number of deletions


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@322865 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-09 22:29:20 +00:00
Richard Mudgett
aec1979e7f Remove potential deadlock in call pickup race.
Deadlock is possible in ast_do_pickup() when holding the target channel
lock and trying to get the chan channel lock.  Also, holding the target
lock when calling ast_channel_masquerade() is not a good idea because that
routine does deadlock avoidance.

* Removed the need to hold the target lock after marking the target with a
datastore and getting the connected line data off of the target channel.

* Moved can_pickup() to ast_can_pickup() in features.c.  Now all the call
pickup methods use the same basic call pickup availability check.

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@322749 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-09 16:31:53 +00:00
Jonathan Rose
5f46b994f4 Adds ast_escape_encoded utility to properly handle escaping of quoted field before uri.
This commit backports a feature in trunk affecting initreqprep so that display name won't
be encoded improperly. Also includes unit tests for the ast_escape_quoted function.
This patch gives 1.8 a much improved outlook in countries which don't use standard
ASCII characters.

(closes issue ASTERISK-16949)
Reported by: Örn Arnarson
Review: https://reviewboard.asterisk.org/r/1235/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@322585 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-09 14:06:42 +00:00
Jonathan Rose
c728c8d56b Fixes level toggling for logger set levels since it was reversed
(closes issue ASTERISK-17850)
Reported by: Luke H
Tested by: jrose, Luke H
  
Review: https://reviewboard.asterisk.org/r/1244/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@322069 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-06 19:07:56 +00:00
Richard Mudgett
a32c86fb71 Constify subscription description parameter string.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@321813 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-03 19:56:09 +00:00
Richard Mudgett
8668ec7ef9 Update some comments.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@321517 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-05-31 20:54:35 +00:00
Leif Madsen
9718442188 Fix issue with playback of H.261 video.
(closes issue #19379)
Reported by: neutrino88
Patches:
      videoprompt.patch uploaded by neutrino88 (license 297)
(changes by russell)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@321335 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-05-27 21:54:54 +00:00
Richard Mudgett
7257b78f53 Update ast_sockaddr comment with an important note.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@321044 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-05-26 18:10:17 +00:00
Richard Mudgett
aa64eb1077 Give zombies a safe channel driver to use.
Recent crashes from zombie channels suggests that they need a safe home to
goto.  When a masquerade happens, the physical part of the zombie channel
is hungup.  The hangup normally sets the channel private pointer to NULL.
If someone then blindly does a callback to the channel driver, a crash is
likely because the private pointer is NULL.

The masquerade now sets the channel technology of zombie channels to the
kill channel driver.

Related to the following issues:
(issue #19116)
(issue #19310)

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@320796 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-05-25 16:23:11 +00:00
Terry Wilson
95bf6f2fc3 Revert part of a change to the bridging API code
The capabilities used in the bridging API are very different than the
ones used for formats. When the conversion was made expanding the bit
width of codecs, the bridging code was accidentally accosted in ways
that it didn't deserve.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@319920 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-05-19 23:28:13 +00:00
Paul Belanger
e8935ca8e4 Support gmime-2.4
(closes issue #18863)
Reported by: tzafrir
Patches:
      gmime-2.4-18.diff uploaded by tzafrir (license 46)
      Tested by: tzafrir

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@319085 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-05-16 14:35:21 +00:00
Alec L Davis
87d80af96c Fix directed group pickup feature code *8 with pickupsounds enabled
Since 1.6.2, the new pickupsound and pickupfailsound in features.conf cause many issues.

1). chan_sip:handle_request_invite() shouldn't be playing out the fail/success audio, as it has 'netlock' locked.
2). dialplan applications for directed_pickups shouldn't beep.
3). feature code for directed pickup should beep on success/failure if configured.

Created a sip_pickup() thread to handle the pickup and playout the audio, spawned from handle_request_invite.

Moved app_directed:pickup_do() to features:ast_do_pickup().

Functions below, all now use the new ast_do_pickup()
app_directed_pickup.c:
   pickup_by_channel()
   pickup_by_exten()
   pickup_by_mark()
   pickup_by_part()
features.c:
   ast_pickup_call()

(closes issue #18654)
Reported by: Docent
Patches: 
      ast_do_pickup_1.8_trunk.diff.txt uploaded by alecdavis (license 585)
Tested by: lmadsen, francesco_r, amilcar, isis242, alecdavis, irroot, rymkus, loloski, rmudgett

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



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@318671 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-05-12 22:52:08 +00:00
Russell Bryant
a82f1bb995 Fix a bunch of compiler warnings generated by gcc 4.6.0.
Most of these are -Wunused-but-set-variable, but there were a few others
mixed in here, as well.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@316265 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-05-03 19:55:49 +00:00
Tilghman Lesher
016370cc5c Merged revisions 315502 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r315502 | tilghman | 2011-04-26 14:22:52 -0500 (Tue, 26 Apr 2011) | 21 lines
  
  Merged revisions 315501 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r315501 | tilghman | 2011-04-26 14:18:46 -0500 (Tue, 26 Apr 2011) | 14 lines
    
    Fix the bounds-checking code.
    
    The code that set the bit within the select bitfield was correct, but the
    bounds-checking code was not.  The change to that line uses the new _bitsize
    macro for clarity.  Also, FD_ZERO macro did not zero-out anything but the
    first word of the bitfield, so this could have caused problems with modules
    using that macro with the expanded bitfield.
    
    (closes issue #18773)
     Reported by: jamicque
     Patches: 
           20110423__issue18773.diff.txt uploaded by tilghman (license 14)
     Tested by: chris-mac
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@315503 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-04-26 19:32:50 +00:00
Richard Mudgett
79e275d265 AST_CONTROL_XXX comment changes.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@314417 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-04-20 16:54:02 +00:00
David Vossel
2998c62fc4 sip codec negotiation of dynamic rtp payloads error fix
This patch fixes how chan_sip handles dynamic rtp payload types
it does not understand.  At the moment if a dynamic payload's mime
type does not match one we understand, the payload does not get
removed from our payload table.  As a result of this, the payload
is set to whatever dynamic codec we use internally for that payload
number on outgoing INVITES.  This is incorrect.

This patch fixes this by properly checking the rtpmap set function's
return code to make sure it was found.  The function can return both
-1 and -2 depending on the source of the mismatch.  We were just
checking -1 explicitly.

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



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@314017 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-04-18 13:41:06 +00:00
Leif Madsen
55aa84a6e9 Merged revisions 313278 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r313278 | lmadsen | 2011-04-11 14:33:03 -0500 (Mon, 11 Apr 2011) | 14 lines
  
  Merged revisions 313277 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r313277 | lmadsen | 2011-04-11 14:30:20 -0500 (Mon, 11 Apr 2011) | 6 lines
    
    Fix detection of OpenSSL 1.0
    
    (closes issue #19093)
    Reported by: tzafrir
    Patches: 
          detect_openssl_10.diff uploaded by tzafrir (license 46)
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@313279 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-04-11 19:36:40 +00:00
Tilghman Lesher
b17b0a7fa8 Merged revisions 312287 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r312287 | tilghman | 2011-04-01 05:51:24 -0500 (Fri, 01 Apr 2011) | 14 lines
  
  Merged revisions 312285 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r312285 | tilghman | 2011-04-01 05:36:42 -0500 (Fri, 01 Apr 2011) | 7 lines
    
    Found some leaking file descriptors while looking at ast_FD_SETSIZE dead code.
    
    (issue #18969)
     Reported by: oej
     Patches: 
           20110315__issue18969__14.diff.txt uploaded by tilghman (license 14)
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@312288 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-04-01 10:58:45 +00:00
Tilghman Lesher
56cd7709a5 Merged revisions 309251 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

........
  r309251 | tilghman | 2011-03-01 19:06:02 -0600 (Tue, 01 Mar 2011) | 7 lines
  
  Revert previous 2 commits, and instead conditionally redefine the same macro used in flex 2.5.35 that clashed with our workaround.
  
  Not surprisingly, the workaround was exactly the same code as was provided by
  the Flex maintainers, albeit in two different places, in different macros.
  
  This should fix the FreeBSD builds, which have an older version of Flex.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@309808 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-03-07 00:54:42 +00:00
Tilghman Lesher
1b78442e0d Merged revisions 309033-309034 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

........
  r309033 | tilghman | 2011-02-28 04:43:12 -0600 (Mon, 28 Feb 2011) | 4 lines
  
  A later version of flex already includes the fwrite workaround code, which if used twice causes a compilation error.
  
  Detect whether Flex will compile without the workaround; if so, suppress our workaround code.
........
  r309034 | tilghman | 2011-02-28 05:07:52 -0600 (Mon, 28 Feb 2011) | 2 lines
  
  Clarify meaning, removing double negative (stupid!)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@309035 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-02-28 11:10:28 +00:00
Richard Mudgett
a5f6367057 No response sent for SIP CC subscribe/resubscribe request.
Asterisk does not send a response if we try to subscribe for call
completion after we have received a 180 Ringing.  You can only subscribe
for call completion when the call has been cleared.

When we receive the 180 Ringing, for this call, its call-completion state
is 'CC_AVAILABLE'.  If we then send a subscribe message to Asterisk, it
trys to change the call-completion state to 'CC_CALLER_REQUESTED'.
Because this is an invalid state change, it just ignores the message.  The
only state Asterisk will accept our subscribe message is in the
'CC_CALLER_OFFERED' state.

Asterisk will go into the 'CC_CALLER_OFFERED' when the SIP client clears
the call by sending a CANCEL.

Asterisk should always send a response.  Even if its a negative one.


The fix is to allow for the CCSS core to notify a CC agent that a failure
has occurred when CC is requested.  The "ack" callback is replaced with a
"respond" callback.  The "respond" callback has a parameter indicating
either a successful response or a specific type of failure that may need
to be communicated to the requester.

(closes issue #18336)
Reported by: GeorgeKonopacki
Tested by: mmichelson, rmudgett

JIRA SWP-2633

(closes issue #18337)
Reported by: GeorgeKonopacki
Tested by: mmichelson

JIRA SWP-2634


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@307879 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-02-15 16:13:55 +00:00
Andrew Latham
5f9a130198 Documentation Updates.
More updates to the removed doc folder and
start updates to the man page.

(issue #16505)
Reported by: tzafrir
Tested by: lathama


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@306826 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-02-08 01:45:04 +00:00
Tilghman Lesher
1440b054eb Use the non-specific API aliases, to avoid a problem with building the utils directory.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@305040 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-31 07:51:40 +00:00
Tilghman Lesher
fd11f34692 Change mutex tracking so that it only consumes memory in the core mutex object when it's actually being used.
This reduces the overall size of a mutex which was 3016 bytes before this back
down to 216 bytes (this is on 64-bit Linux with a glibc-implemented mutex).
The exactness of the numbers here may vary slightly based upon how mutexes are
implemented on a platform, but the long and short of it is that prior to this
commit, chan_iax2 held down 98MB of memory on a 64-bit system for nothing more
than a table of 32767 locks.  After this commit, the same table occupies a mere
7MB of memory.

(closes issue #18194)
 Reported by: job
 Patches: 
       20110124__issue18194.diff.txt uploaded by tilghman (license 14)
 Tested by: tilghman
 
Review: https://reviewboard.asterisk.org/r/1066


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@304950 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-31 06:41:36 +00:00
Matthew Nicholson
193a80b513 Reimplemented fax session reservation to reverse the ABI breakage introduced in r297486.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@303907 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-25 20:56:12 +00:00
Russell Bryant
cfc893a5bc Merged revisions 303548 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r303548 | russell | 2011-01-24 14:49:53 -0600 (Mon, 24 Jan 2011) | 38 lines
  
  Merged revisions 303546 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r303546 | russell | 2011-01-24 14:32:21 -0600 (Mon, 24 Jan 2011) | 31 lines
    
    Fix channel redirect out of MeetMe() and other issues with channel softhangup.
    
    Mantis issue #18585 reports that a channel redirect out of MeetMe() stopped
    working properly.  This issue includes a patch that resolves the issue by
    removing a call to ast_check_hangup() from app_meetme.c.  I left that in my
    patch, as it doesn't need to be there.  However, the rest of the patch fixes
    this problem with or without the change to app_meetme.
    
    The key difference between what happens before and after this patch is the
    effect of the END_OF_Q control frame.  After END_OF_Q is hit in ast_read(),
    ast_read() will return NULL.  With the ast_check_hangup() removed, app_meetme
    sees this which causes it to exit as intended.  Checking ast_check_hangup()
    caused app_meetme to exit earlier in the process, and the target of the
    redirect saw the condition where ast_read() returned NULL.
    
    Removing ast_check_hangup() works around the issue in app_meetme, but doesn't
    solve the issue if another application did the same thing.  There are also
    other edge cases where if an application finishes at the same time that a
    redirect happens, the target of the redirect will think that the channel hung
    up.  So, I made some changes in pbx.c to resolve it at a deeper level.  There
    are already places that unset the SOFTHANGUP_ASYNCGOTO flag in an attempt to
    abort the hangup process.  My patch extends this to remove the END_OF_Q frame
    from the channel's read queue, making the "abort hangup" more complete.  This
    same technique was used in every place where a softhangup flag was cleared.
    
    (closes issue #18585)
    Reported by: oej
    Tested by: oej, wedhorn, russell
    
    Review: https://reviewboard.asterisk.org/r/1082/
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@303549 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-24 20:51:37 +00:00
Tilghman Lesher
44ba86f7aa Merged revisions 302675 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r302675 | tilghman | 2011-01-19 15:22:45 -0600 (Wed, 19 Jan 2011) | 9 lines
  
  Merged revisions 302663 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r302663 | tilghman | 2011-01-19 15:20:28 -0600 (Wed, 19 Jan 2011) | 2 lines
    
    Add some API documentation
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@302680 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-19 21:23:31 +00:00
Tilghman Lesher
d70a3b0856 Merged revisions 298957 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r298957 | tilghman | 2010-12-17 17:30:55 -0600 (Fri, 17 Dec 2010) | 13 lines
  
  Merged revisions 298905 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r298905 | tilghman | 2010-12-17 15:40:56 -0600 (Fri, 17 Dec 2010) | 6 lines
    
    Let Asterisk find better backtrace information with libbfd.
    
    The menuselect option BETTER_BACKTRACES, if enabled, will use libbfd to search
    for better symbol information within both the Asterisk binary, as well as
    loaded modules, to assist when using inline backtraces to track down problems.
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@298960 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-12-17 23:52:04 +00:00
Tilghman Lesher
5c50b497f5 Merged revisions 298050 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

........
  r298050 | tilghman | 2010-12-10 10:24:13 -0600 (Fri, 10 Dec 2010) | 11 lines
  
  Portability issue on OpenSolaris.
  
  Also detect the required structure element, because OpenSolaris defines
  SIOCGIFHWADDR, but without support for IP sockets.
  
  (closes issue #18442)
   Reported by: ranjtech
   Patches: 
         20101209__issue18442.diff.txt uploaded by tilghman (license 14)
   Tested by: ranjtech
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@298051 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-12-10 16:26:46 +00:00
Matthew Nicholson
93454c0e30 Add support for reserving a fax session before answering the channel.
Note: this change breaks ABI compatibility.

FAX-217


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@297486 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-12-02 21:30:47 +00:00
Tilghman Lesher
5e42199e7b Merged revisions 296991 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r296991 | tilghman | 2010-12-01 11:01:00 -0600 (Wed, 01 Dec 2010) | 12 lines
  
  Merged revisions 296990 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r296990 | tilghman | 2010-12-01 10:59:26 -0600 (Wed, 01 Dec 2010) | 5 lines
    
    Clarify documentation on how we store codec preference lists.
    
    (closes issue #18397)
     Reported by: birgita
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@296992 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-12-01 17:01:56 +00:00
Tilghman Lesher
5211e1c9d3 Merged revisions 296533 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

........
  r296533 | tilghman | 2010-11-29 01:27:09 -0600 (Mon, 29 Nov 2010) | 13 lines
  
  I love standards.  There are so many to choose from.  Except when there isn't one.
  
  Linux and *BSD disagree on the elements within the ucred structure.  Detect
  which one is in use on the system.
  
  (closes issue #18384)
   Reported by: bjm
   Patches: 
         cred-diffs uploaded by bjm (license 473)
         20101127__issue18384__1.6.2.diff.txt uploaded by tilghman (license 14)
         20101127__issue18384__1.8.diff.txt uploaded by tilghman (license 14)
   Tested by: tilghman, bjm
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@296534 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-29 07:28:44 +00:00
Tilghman Lesher
dfbc5b89f9 Also don't build DEBUG_FD_LEAKS when STANDALONE2 is defined.
(closes issue #18385)
 Reported by: cmaj


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@296429 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-27 09:58:57 +00:00
Richard Mudgett
c08103f033 Merged revisions 295843 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r295843 | rmudgett | 2010-11-22 13:28:23 -0600 (Mon, 22 Nov 2010) | 53 lines
  
  Merged revisions 295790 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r295790 | rmudgett | 2010-11-22 12:46:26 -0600 (Mon, 22 Nov 2010) | 46 lines
    
    The channel redirect function (CLI or AMI) hangs up the call instead of redirecting the call.
    
    To recreate the problem:
    1) Party A calls Party B
    2) Invoke CLI "channel redirect" command to redirect channel call leg
    associated with A.
    3) All associated channels are hung up.
    
    Note that if the CLI command were done on the channel call leg associated
    with B it works.
    
    This regression was a result of the fix for issue #16946
    (https://reviewboard.asterisk.org/r/740/).
    
    The regression affects all features that use an async goto to execute the
    dialplan because of an external event: Channel redirect, AMI redirect, SIP
    REFER, and FAX detection.
    
    The struct ast_channel._softhangup code is a mess.  The variable is used
    for several purposes that do not necessarily result in the call being hung
    up.  I have added doxygen comments to describe how the various _softhangup
    bits are used.  I have corrected all the places where the variable was
    tested in a non-bit oriented manner.
    
    The primary fix is the new AST_CONTROL_END_OF_Q frame.  It acts as a weak
    hangup request so the soft hangup requests that do not normally result in
    a hangup do not hangup.
    
    JIRA SWP-2470
    JIRA SWP-2489
    
    (closes issue #18171)
    Reported by: SantaFox
    (closes issue #18185)
    Reported by: kwemheuer
    (closes issue #18211)
    Reported by: zahir_koradia
    (closes issue #18230)
    Reported by: vmarrone
    (closes issue #18299)
    Reported by: mbrevda
    (closes issue #18322)
    Reported by: nerbos
    
    Review:	https://reviewboard.asterisk.org/r/1013/
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@295866 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-22 19:36:10 +00:00
Russell Bryant
5153fbef97 Merged revisions 295710 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

........
  r295710 | russell | 2010-11-19 18:45:51 -0600 (Fri, 19 Nov 2010) | 29 lines
  
  Fix cache of device state changes for multiple servers.
  
  This patch addresses a regression where device states across multiple servers
  were not being processing completely correctly.  The code works to determine
  the overall state by looking at the last known state of a device on each
  server.  However, there was a regression due to some invasive rewrites of how
  the cache works that led to the cache only storing the last device state change
  for a device, regardless of which server it was on.
  
  The code is set up to cache device state change events by ensuring that each
  event in the cache has a unique device name + entity ID (server ID).  The code
  that was responsible for comparing raw information elements (which EID is)
  always returned a match due to a memcmp() with a length of 0.
  
  There isn't much code to fix the actual bug.  This patch also introduces a new
  CLI command that was very useful for debugging this problem.  The command
  allows you to dump the contents of the event cache.
  
  (closes issue #18284)
  Reported by: klaus3000
  Patches:
        issue18284.rev1.txt uploaded by russell (license 2)
  Tested by: russell, klaus3000
  
  (closes issue #18280)
  Reported by: klaus3000
  
  Review: https://reviewboard.asterisk.org/r/1012/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@295711 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-20 00:50:00 +00:00
Paul Belanger
f284b66dda Merged revisions 295440 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

........
  r295440 | pabelanger | 2010-11-18 12:51:34 -0500 (Thu, 18 Nov 2010) | 4 lines
  
  Fix compiler warnings when using openssl-dev 1.0.0+
  
  Review: https://reviewboard.asterisk.org/r/1016/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@295441 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-18 18:02:12 +00:00
Jeff Peeler
aafc5f4e99 Merged revisions 294639 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r294639 | jpeeler | 2010-11-11 13:31:00 -0600 (Thu, 11 Nov 2010) | 53 lines
  
  Merged revisions 294384 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r294384 | jpeeler | 2010-11-09 11:37:59 -0600 (Tue, 09 Nov 2010) | 47 lines
    
    Fix a deadlock in device state change processing.
    
    Copied from some notes from the original author (Russell):
    
    Deadlock scenario:
    Thread 1: device state change thread
      Holds - rdlock on contexts
      Holds - hints lock
      Waiting on channels container lock
    
    Thread 2: SIP monitor thread
      Holds the "iflock"
      Holds a sip_pvt lock
      Holds channel container lock
      Waiting for a channel lock
    
    Thread 3: A channel thread (chan_local in this case)
      Holds 2 channel locks acquired within app_dial
      Holds a 3rd channel lock it got inside of chan_local
      Holds a local_pvt lock
      Waiting on a rdlock of the contexts lock
    
    A bunch of other threads waiting on a wrlock of the contexts lock
    
    
    To address this deadlock, some locking order rules must be put in place and
    enforced. Existing relevant rules:
    
    1) channel lock before a pvt lock
    2) contexts lock before hints lock
    3) channels container before a channel
    
    What's missing is some enforcement of the order when you involve more than any
    two. To fix this problem, I put in some code that ensures that (at least in the
    code paths involved in this bug) the locks in (3) come before the locks in (2).
    To change the operation of thread 1 to comply, I converted the storage of hints
    to an astobj2 container. This allows processing of hints without holding the
    hints container lock. So, in the code path that led to thread 1's state, it no
    longer holds either the contexts or hints lock while it attempts to lock the
    channels container.
    
    (closes issue #18165)
    Reported by: antonio
    
    ABE-2583
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@294640 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-11 19:42:06 +00:00
Tilghman Lesher
2d6a9d607f Merged revisions 294429 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

........
  r294429 | tilghman | 2010-11-09 14:27:23 -0600 (Tue, 09 Nov 2010) | 8 lines
  
  Detect GMime properly on systems where gmime flags and libs are configured with pkg-config.
  
  (closes issue #16155)
   Reported by: jcollie
   Patches: 
         20100917__issue16155.diff.txt uploaded by tilghman (license 14)
   Tested by: tilghman
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@294430 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-09 20:33:05 +00:00
Richard Mudgett
3f9644b7db Analog lines do not transfer CONNECTED LINE or execute the interception macros.
Add connected line update for sig_analog transfers and simplify the
corresponding sig_pri and chan_misdn transfer code.

Note that if you create a three-way call in sig_analog before transferring
the call, the distinction of the caller/callee interception macros make
little sense.  The interception macro writer needs to be prepared for
either caller/callee macro to be executed.  The current implementation
swaps which caller/callee interception macro is executed after a three-way
call is created.

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

JIRA ABE-2589
JIRA SWP-2372


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@294349 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-09 16:55:32 +00:00
Jeff Peeler
375b5b6b09 Merged revisions 294277 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

........
  r294277 | jpeeler | 2010-11-08 15:58:13 -0600 (Mon, 08 Nov 2010) | 16 lines
  
  Fix playback failure when using IAX with the timerfd module.
  
  To fix this issue the alert pipe will now be used when the timerfd module is
  in use. There appeared to be a race that was not solved by adding locking in the
  timerfd module, but needed to be there anyway. The race was between the timer
  being put in non-continuous mode in ast_read on the channel thread and the IAX 
  frame scheduler queuing a frame which would enable continuous mode before the
  non-continuous mode event was read. This race for now is simply avoided.
  
  (closes issue #18110)
  Reported by: tpanton
  Tested by: tpanton
  
  I put tested by tpanton because it was tested on his hardware. Thanks for the
  remote access to debug this issue!
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@294278 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-08 21:59:45 +00:00
Terry Wilson
6dfc9dddd8 Avoid valgrind warnings for ast_rtp_instance_get_xxx_address
The documentation for ast_rtp_instance_get_(local/remote)_address stated that
they returned 0 for success and -1 on failure. Instead, they returned 0 if the
address structure passed in was already equivalent to the address instance
local/remote address or 1 otherwise. 90% of the calls to these functions
completely ignored the return address and passed in an uninitialized struct,
which would make valgrind complain even though the operation was technically
safe.

This patch fixes the documentation and converts the get_xxx_address functions
to void since all they really do is copy the address and cannot fail.
Additionally two new functions
(ast_rtp_instance_get_and_cmp_(local/remote)_address) are created for the 3
times where the return value was actually checked. The
get_and_cmp_local_address function is currently unused, but exists for the sake
of symmetry.

The only functional change as a result of this change is that we will not do an
ast_sockaddr_cmp() on (mostly uninitialized) addresses before doing the
ast_sockaddr_copy() in the get_*_address functions. So, even though it is an
API change, it shouldn't have a noticeable change in behavior.

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@293803 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-03 18:05:14 +00:00
Richard Mudgett
d411ade931 Allow the DAHDI driver to compile, even with a sufficiently older version of libpri.
Fixes our Bamboo builds.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@293046 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-10-26 15:53:58 +00:00
Tilghman Lesher
cdc420235e Allow the DAHDI driver to compile, even with a sufficiently older version of libpri.
Fixes our Bamboo builds.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@292906 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-10-25 19:28:35 +00:00