[Home]

Summary:ASTERISK-15376: [regression] MixMonitor stops recording after transfer using AUDIOHOOK_INHERIT
Reporter:Andrey Solovyev (corruptor)Labels:
Date Opened:2009-12-29 06:51:38.000-0600Date Closed:2010-01-08 13:44:56.000-0600
Priority:MajorRegression?Yes
Status:Closed/CompleteComponents:Applications/app_mixmonitor
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:We record calls using MixMonitor. Before dialing I use Set(AUDIOHOOK_INHERIT(MixMonitor)=yes). Asterisk writes to log "MixMonitor close filestream" only after Hangup which is ok but audio is not recorded just after transfer (it doesn't metter asterisk transfer or SIP transfer).
This worked in 1.6.0.17.
I mark is as major because this is a regression.

Comments:By: Digium Subversion (svnbot) 2010-01-08 13:39:31.000-0600

Repository: asterisk
Revision: 238635

U   trunk/include/asterisk/audiohook.h
U   trunk/main/audiohook.c

------------------------------------------------------------------------
r238635 | dvossel | 2010-01-08 13:39:30 -0600 (Fri, 08 Jan 2010) | 22 lines

fixes AUDIOHOOK_INHERIT regression

During the process of removing an audiohook from one channel
and attaching it to another the audiohook's status is updated
to DONE and then back to whatever it was previously.  Typically
updating the status after setting it to DONE is not a good idea
because DONE can trigger unrecoverable audiohook destruction
events... because of this a conditional check was added to
audiohook_update_status to explicitly prevent the audiohook
from ever changing after being set to DONE.  It was this check
that prevented audiohook inherit from work properly though.

Now ast_audiohook_move_by_source is treated as a special exception,
as the audiohook must be returned to its previous status after
attaching it to the new channel.  This is only a safe operation
because the audiohook's lock is held the entire time, otherwise
this could cause trouble.

(closes issue ASTERISK-15376)
Reported by: corruptor


------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=238635

By: Digium Subversion (svnbot) 2010-01-08 13:43:51.000-0600

Repository: asterisk
Revision: 238637

_U  branches/1.6.2/
U   branches/1.6.2/include/asterisk/audiohook.h
U   branches/1.6.2/main/audiohook.c

------------------------------------------------------------------------
r238637 | dvossel | 2010-01-08 13:43:50 -0600 (Fri, 08 Jan 2010) | 28 lines

Merged revisions 238635 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
 r238635 | dvossel | 2010-01-08 13:39:30 -0600 (Fri, 08 Jan 2010) | 22 lines
 
 fixes AUDIOHOOK_INHERIT regression
 
 During the process of removing an audiohook from one channel
 and attaching it to another the audiohook's status is updated
 to DONE and then back to whatever it was previously.  Typically
 updating the status after setting it to DONE is not a good idea
 because DONE can trigger unrecoverable audiohook destruction
 events... because of this a conditional check was added to
 audiohook_update_status to explicitly prevent the audiohook
 from ever changing after being set to DONE.  It was this check
 that prevented audiohook inherit from work properly though.
 
 Now ast_audiohook_move_by_source is treated as a special exception,
 as the audiohook must be returned to its previous status after
 attaching it to the new channel.  This is only a safe operation
 because the audiohook's lock is held the entire time, otherwise
 this could cause trouble.
 
 (closes issue ASTERISK-15376)
 Reported by: corruptor
........

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=238637

By: Digium Subversion (svnbot) 2010-01-08 13:44:29.000-0600

Repository: asterisk
Revision: 238638

_U  branches/1.6.1/
U   branches/1.6.1/include/asterisk/audiohook.h
U   branches/1.6.1/main/audiohook.c

------------------------------------------------------------------------
r238638 | dvossel | 2010-01-08 13:44:29 -0600 (Fri, 08 Jan 2010) | 28 lines

Merged revisions 238635 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
 r238635 | dvossel | 2010-01-08 13:39:30 -0600 (Fri, 08 Jan 2010) | 22 lines
 
 fixes AUDIOHOOK_INHERIT regression
 
 During the process of removing an audiohook from one channel
 and attaching it to another the audiohook's status is updated
 to DONE and then back to whatever it was previously.  Typically
 updating the status after setting it to DONE is not a good idea
 because DONE can trigger unrecoverable audiohook destruction
 events... because of this a conditional check was added to
 audiohook_update_status to explicitly prevent the audiohook
 from ever changing after being set to DONE.  It was this check
 that prevented audiohook inherit from work properly though.
 
 Now ast_audiohook_move_by_source is treated as a special exception,
 as the audiohook must be returned to its previous status after
 attaching it to the new channel.  This is only a safe operation
 because the audiohook's lock is held the entire time, otherwise
 this could cause trouble.
 
 (closes issue ASTERISK-15376)
 Reported by: corruptor
........

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=238638

By: Digium Subversion (svnbot) 2010-01-08 13:44:55.000-0600

Repository: asterisk
Revision: 238639

_U  branches/1.6.0/
U   branches/1.6.0/include/asterisk/audiohook.h
U   branches/1.6.0/main/audiohook.c

------------------------------------------------------------------------
r238639 | dvossel | 2010-01-08 13:44:55 -0600 (Fri, 08 Jan 2010) | 28 lines

Merged revisions 238635 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
 r238635 | dvossel | 2010-01-08 13:39:30 -0600 (Fri, 08 Jan 2010) | 22 lines
 
 fixes AUDIOHOOK_INHERIT regression
 
 During the process of removing an audiohook from one channel
 and attaching it to another the audiohook's status is updated
 to DONE and then back to whatever it was previously.  Typically
 updating the status after setting it to DONE is not a good idea
 because DONE can trigger unrecoverable audiohook destruction
 events... because of this a conditional check was added to
 audiohook_update_status to explicitly prevent the audiohook
 from ever changing after being set to DONE.  It was this check
 that prevented audiohook inherit from work properly though.
 
 Now ast_audiohook_move_by_source is treated as a special exception,
 as the audiohook must be returned to its previous status after
 attaching it to the new channel.  This is only a safe operation
 because the audiohook's lock is held the entire time, otherwise
 this could cause trouble.
 
 (closes issue ASTERISK-15376)
 Reported by: corruptor
........

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=238639