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-0600 | Date Closed: | 2010-01-08 13:44:56.000-0600 |
Priority: | Major | Regression? | Yes |
Status: | Closed/Complete | Components: | 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 |