Commit Graph

3199 Commits

Author SHA1 Message Date
Matthew Jordan
46289ce3a0 Updated filestream destructor to block until move is complete when cache is used
When a cache directory is used, the process is forked and a mv command is executed to move the temporary file to the permanent location.  This caused issues with voicemail, where a race condition occurred when the parent expected the file to be in the permanent location prior to the mv command completing.  The parent process is now blocked until the mv command completes.

(closes issue ASTERISK-17724)
Reported by: Adiren P.
Tested by: mjordan

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@326209 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-07-05 13:23:57 +00:00
Matthew Nicholson
0bdbde0690 make framehooks prevent native bridging (for real this time)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@325545 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-29 16:18:39 +00:00
Matthew Nicholson
3b216f2dc9 don't do native/remote bridging if a framehook is active on the channel
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@325537 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-29 15:34:47 +00:00
Tilghman Lesher
72d041e1b9 Save and restore errno from within signal handlers.
This is recommended by the POSIX standard, as well as by the sigaction(2) manpage
for various platforms that we support (e.g. Mac OS X).


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@324955 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-27 16:30:50 +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
Leif Madsen
557fe8bc24 Add Username and Secret fields to manager Login action.
Pointed out by Vlad Povorozniuc

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@324178 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-17 18:51:16 +00:00
Leif Madsen
cfec9cdf0d Fix grammar in documentation for Goto() and GotoIf()
(closes issue ASTERISK-18023)
Reported by: Tim Osman

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@324115 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-17 15:14:54 +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
c24706ee9e Merged revisions 323733 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r323733 | twilson | 2011-06-15 13:13:00 -0500 (Wed, 15 Jun 2011) | 16 lines
  
  Merged revisions 323732 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r323732 | twilson | 2011-06-15 13:06:24 -0500 (Wed, 15 Jun 2011) | 9 lines
    
    Fix DYNAMIC_FEATURES
    
    DYNAMIC_FEATURES were broken by a recent DTMF change. This patch makes
    sure that dynamic features are also checked when deciding whether or not
    to pass DTMF through or store it for interpreting.
    
    (closes issue ASTERISK-17914)
    Reported by: vrban
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@323754 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-15 18:21:52 +00:00
Richard Mudgett
9a19763a38 [regression] Voicemail MWI is no longer sent.
When leaving a voicemail, the MWI message is never sent.  The same thing
happens when checking a voicemail and marking it as read.

If you restart Asterisk, everything comes up at that state correctly, but
changes to the messages in voicemail causes the light to not be set
appropriately.  Very easy to reproduce.

* Made ast_event_check_subscriber() return TRUE if there are ANY
subscribers to an event type when there are no restricting ie values
passed.  This allows an event being queued to be queued.

(closes issue ASTERISK-18002)
Reported by: lmadsen
Tested by: lmadsen, irroot
Patches:
     jira_asterisk_18002_v1.8.patch uploaded by rmudgett (License #5621)

(closes issue ASTERISK-18019)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@323669 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-15 16:43:18 +00:00
Sean Bright
0701feaa95 Merged revisions 323579 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r323579 | seanbright | 2011-06-15 11:22:50 -0400 (Wed, 15 Jun 2011) | 32 lines
  
  Merged revisions 323559 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r323559 | seanbright | 2011-06-15 11:15:30 -0400 (Wed, 15 Jun 2011) | 25 lines
    
    Resolve a segfault/bus error when we try to map memory that falls on a page
    boundary.
    
    The fix for ASTERISK-15359 was incorrect in that it added 1 to the length of the
    mmap'd region.  The problem with this is that reading/writing to that extra byte
    outside of the bounds of the underlying fd causes a bus error.
    
    The real issue is that we are working with both a FILE * and the raw fd
    underneath it and not synchronizing between them.  The code that was removed in
    ASTERISK-15359 was correct, but we weren't flushing the FILE * before mapping
    the fd.
    
    Looking at the manager code in 1.4 reveals that the FILE * in 'struct
    mansession' is never used except to create a temporary file that we immediately
    fdopen.  This means we just need to write a 0 byte to the fd and everything will
    just work.  The other branches require a call to fflush() which, while not a
    guaranteed fix, should reduce the likelihood of a crash.
    
    This all makes sense in my head.
    
    (closes issue ASTERISK-16460)
    Reported by: Ravelomanantsoa Hoby (hoby)
    Patches:
    		issue17747_1.4_svn_markII.patch uploaded by Sean Bright (license #5060)
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@323608 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-15 15:31:53 +00:00
Richard Mudgett
ba678e9c1b Add missing break in ast_event_get_cached().
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@323456 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-15 00:50:20 +00:00
Richard Mudgett
0fe02d0183 Made ast_sockaddr_split_hostport() port warning msgs more meaningful.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@323394 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-14 17:21:39 +00:00
Richard Mudgett
2b2aa6ba3e Add more strict hostname checking to ast_dnsmgr_lookup().
Change suggested in review.

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@323392 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-14 17:21:24 +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
Leif Madsen
a3c4818a51 Avoid dividing by zero with L() option to Dial()
Reported by: nicolasom
Patches:
    
issue-17995.patch - nicolasom (License #5994)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@323213 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-13 19:51:52 +00:00
Terry Wilson
12cab256cc Avoid a DB1 infinite loop bug
Explicity check the last entry in the DB and make sure that we don't iterate
past it. Since there can be no duplicates, this just makes sure that we stop
after matching the last key.

This patch also refactors the code to get away from some code duplication. A
previous patch added many astdb tests and this patch passed them.

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@322981 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-10 15:29:00 +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
Richard Mudgett
6b2172bea3 SRV lookup attempted for SIP peers listed as an IP address.
Asterisk attempts to SRV lookup a host name even if the host name is an IP
address.  Regression introduced when IPv6 support was added.

* Restored the check in ast_dnsmgr_lookup() to see if the given host name
is an IP address.  The IP address could be in either IPv4 or IPv6 formats.

(closes issue ASTERISK-17815)
Reported by: Byron Clark
Tested by: Byron Clark, Richard Mudgett
Patches:
     issue19248_v1.8.patch - uploaded by Richard Mudgett (License #5621)

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@322425 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-08 18:46:30 +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
549f79b9f3 Be more explicit for CCSS generic device state event subscription.
Make CCSS generic device state event subscription specify the
AST_EVENT_IE_STATE ie exists to be safe.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@321924 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-03 21:49:17 +00:00
Richard Mudgett
779a74b358 Event subscription fixes.
Must commit the subscription fixes together with the integration
subscription tests.  The subscription fixes cause an erroneously passing
test to fail.  The new subscription tests detect errors without the
subscription fixes.

* Added missing event_names[] table entry.

* Reworked ast_event_check_subscriber()/match_sub_ie_val_to_event() to
correctly detect if a subscriber exists for the proposed event.

* Made match_ie_val() and match_sub_ie_val_to_event() check the buffer
length for RAW payload types.

* Fixed error handling memory leak in ast_event_sub_activate(),
ast_event_unsubscribe(), and ast_event_queue().

* Made ast_event_new() and ast_event_check_subscriber() better protect
themselves from an invalid payload type.

* Added container lock protection between removing old cache events and
adding the new cached event in
ast_event_queue_and_cache()/event_update_cache().

* Added new event subscription tests.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@321871 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-03 20:58:13 +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
12fa6d28e0 CDR comment tweaks.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@321547 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-01 23:11:55 +00:00
Richard Mudgett
8e6b43e331 Crash when using hagi and no servers are available.
When none of the servers returned by the SRV querey respond, asterisk
crashes.  The problem is that if the loop over all the SRV entries
finishes then the srv_context has already been cleaned up.

* Make ast_srv_cleanup() check to see if the context is already cleaned
up.

(closes issue #19256)
Reported by: byronclark


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@321392 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-05-27 23:45:41 +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
Leif Madsen
96d69b7aa8 Allow parking lot hints and musicclass to be set.
(closes issue #19378)
Reported by: sboily_proformatique
Patches:
      pf_parkinghint_music_fix uploaded by sboily proformatique (license 206)
Tested by: russell

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@321333 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-05-27 21:40:23 +00:00
Alec L Davis
fd24de3306 Fix *8 directed pickup locks system during pickupsound play out
move playout from sip_pickup_thread to bridge using BRIDGE_PLAY_SOUND method,
This stop the clash of 2 threads trying to write audio to same channel.
In addition fixes choppy audio beep in issue 19177.
 
 (issue #18654)
 (issue #19177)
 Reported by: Docent
 Patches: 
      review1232-1.88888888 alecdavis (license 585)
 Tested by: alecdavis
 
Review: https://reviewboard.asterisk.org/r/1232/



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@321211 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-05-27 08:31:15 +00:00
Mark Murawki
d21c41b26a ast_sockaddr_resolve() in netsock2.c may deref a null pointer
Added a null check in netsock2 ast_sockaddr_resolve() as well as added default initalizers in chan_sip parse_uri_legacy_check() to make sure that invalid uris will make null (and not undefined) user,pass,domain,transport variables

(closes issue #19346)
Reported by: kobaz
Patches: 
      netsock2.patch uploaded by kobaz (license 834)
Tested by: kobaz, Marquis



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@321100 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-05-26 20:09:35 +00:00
Terry Wilson
22d4d91c2c Initialize stack-allocated ast_sockaddrs before use
It is important to always initialize ast_sockaddrs before use--even if they
are passed to ast_sockaddr_copy as the underlying storage could be bigger
than what ends up being copied--leaving part of the data unitialized.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@321042 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-05-26 17:29:54 +00:00
Richard Mudgett
59a41188a8 The AMI Newstate event contains different information between v1.4 and v1.8.
The addition of connected line support in v1.8 changes the behavior of the
channel caller ID somewhat.  The channel caller ID value no longer time
shares with the connected line ID on outgoing call legs.  The timing of
some AMI events/responses output the connected line ID as caller ID.
These party ID's are now separate.

* The ConnectedLineNum and ConnectedLineName headers were added to many
AMI events/responses if the CallerIDNum/CallerIDName headers were also
present.

(closes issue #18252)
Reported by: gje
Tested by: rmudgett

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@320823 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-05-25 17:06:38 +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
Richard Mudgett
a5325746cf Add ConnectedLineNum/Name headers to output of AMI action Status.
* Add ConnectedLineNum and ConnectedLineName headers to the output of the
AMI action Status.  This makes it easier to find out who the channel is
connected to without having to lookup BridgedChannel or when they are
connected to an application (e.g.: VoiceMail) which has no bridged
channel.

* Bridged channels with no CallerID had "" instead of "<unknown>" output,
that might be a bug as "<unknown>" was what older versions used.

(closes issue #18158)
Reported by: gareth
Patches:
      svn-292308.diff uploaded by gareth (license 208)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@320650 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-05-23 17:53:44 +00:00
David Vossel
dea0171ac9 Merged revisions 320562 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

........
  r320562 | dvossel | 2011-05-23 11:15:18 -0500 (Mon, 23 May 2011) | 9 lines
  
  Adds missing part to the ast_tcptls_server_start fails second attempt to bind patch.
  
  (closes issue #19289)
  Reported by: wdoekes
  Patches: 
        issue19289_delay_old_address_setting_tcptls_2.patch uploaded by wdoekes (license 717)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@320568 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-05-23 16:18:33 +00:00
David Vossel
7f67a8bb70 Merged revisions 320271 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

........
  r320271 | dvossel | 2011-05-20 16:24:48 -0500 (Fri, 20 May 2011) | 8 lines
  
  Fixes issue with ast_tcptls_server_start failing on second attempt to bind.
  
  (closes issue #19289)
  Reported by: wdoekes
  Patches: 
        issue19289_delay_old_address_setting_tcptls.patch uploaded by wdoekes (license 717)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@320338 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-05-20 21:39:36 +00:00
Richard Mudgett
21e2b0d1e6 Misc comment cleanup in features.c.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@320059 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-05-20 17:03:49 +00:00
Richard Mudgett
11b3c3add1 Crash while transferring a call during DTMF feature timeout.
When a call is being attended transferred during the time between
AST_FRAME_DTMF_BEGIN and AST_FRAME_DTMF_END, the transferred channel
becomes a zombie (so tech data is not available), making ast_dtmf_stream()
segfault when it tries to send the DTMF digit (at least with SIP
channels).

Patch based on feature-end-zombie.patch uploaded by Irontec (license 1256)

* Check for zombies when ast_channel_bridge() returns.

* Guarantee that the fo parameter value is initialized in
ast_channel_bridge() before any returns.

(closes issue #19116)
Reported by: Irontec
Tested by: rmudgett


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@320057 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-05-20 16:43:02 +00:00
Richard Mudgett
bf91f06f9f Change some variable names to make pickup code easier to understand.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@320007 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-05-20 16:19:01 +00:00
Richard Mudgett
7e3bf4936e Crash when using directed pickup applications.
The directed pickup applications can cause a crash if the pickup was
successful because the dialplan keeps executing.

This patch does the following:

* Completes the channel masquerade on a successful pickup before the
application returns.  The channel is now guaranteed a zombie and must not
continue executing the dialplan.

* Changes the return value of the directed pickup applications to return
zero if the pickup failed and nonzero(-1) if the pickup succeeded.

* Made some code optimizations that no longer require re-checking the
pickup channel to see if it is still available to pickup.

(closes issue #19310)
Reported by: remiq
Patches:
      issue19310_v1.8_v2.patch uploaded by rmudgett (license 664)
Tested by: alecdavis, remiq, rmudgett

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@319997 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-05-20 15:48:25 +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
Jonathan Rose
3eaedb901c Fix Randomize option on Park()
The randomize option was generally not working like it should have at all on Park().
This patch restores intended functionality.

(closes issue #18862)
Reported by: davidw
Tested by: jrose

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@319866 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-05-19 18:32:38 +00:00
Richard Mudgett
8a81e98459 CCSS generic agent with POTS and ISDN phones fail caller busy call-back test.
If the following is true after a CCSS activation:
* The generic agent is for an analog phone or ISDN phone.  (Caller party)
* The called party becomes available.
* The caller party is not available.

When the caller party becomes available, the caller is not alerted to the
called party being available.  The generic agent still thinks the caller
is busy.

* Fixed the generic agent device state event subscription to look for all
device states that are considered available.

* Encapsulated the device state test for CCSS generic device available in
cc_generic_is_device_available().  Made the generic agent and monitor use
the new function instead of the manually coded inline equivalent.

JIRA AST-559
JIRA SWP-3462


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@319758 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-05-19 16:50:48 +00:00
Jonathan Rose
81ee872a32 Makes busy detection in dsp.c always allow for at least one frame (20ms) of error so that 200ms tone lengths don't get ignored by single frame error lengths.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@319261 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-05-16 21:00:55 +00:00
Richard Mudgett
933cf293cd Deadlock between generic CCSS agent and native ISDN CCSS.
Deadlock can occur when the generic CCSS agent is deleting duplicate CC
offers and the native ISDN CC driver is processing an incoming CC message.
The cc_core_instances container lock cannot be held when an agent or
monitor callback is invoked without the possibility of a deadlock.

* Make kill_duplicate_offers() remove the reference in cc_core_instances
outside of the container lock.

JIRA AST-566
JIRA SWP-3469


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@319259 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-05-16 20:33:37 +00:00
Brett Bryant
7c38148a7d Fixes a segmentation fault in dynamic hints when a channel technology isn't
loaded for a hint.

(closes issue #18495)
Reported by: bertrand
Tested by: bertrand



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@318921 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-05-13 18:09:34 +00:00
Richard Mudgett
7a0766e4ad CDR's are being written immediately on caller hangup.
CDR's are being written immediately on caller hangup.  The dialplan is not
able to modify it in the h exten.  The h exten in the initial context is
not run before closing CDR's when the bridge is unlinked if a macro is
active and does not have an h exten.

* Make ast_bridge_call() check for an h exten in the current context and
if a macro is active then the initial context.  The first h exten found is
then run before closing the CDR.

(closes issue #18212)
Reported by: leearcher
Patches:
      issue18212_v1.8.patch uploaded by rmudgett (license 664)
Tested by: rmudgett

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@318868 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-05-13 16:28:26 +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