[asterisk-bugs] [Asterisk 0011529]: One recording file empty for calls in queue with callback agents

noreply at bugs.digium.com noreply at bugs.digium.com
Wed Dec 12 15:31:05 CST 2007


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=11529 
====================================================================== 
Reported By:                atis
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   11529
Category:                   Core/Channels
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     new
Asterisk Version:           1.4.15  
SVN Branch (only for SVN checkouts, not tarball releases): N/A  
SVN Revision (number only!):  
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             12-12-2007 11:35 CST
Last Modified:              12-12-2007 15:31 CST
====================================================================== 
Summary:                    One recording file empty for calls in queue with
callback agents
Description: 
After upgrade from 1.4.10 to 1.4.14 there's a problem with recording of
queue calls. Only agent's voice is recorded, the recording of customer
voice has 0 size.

Agents are logged in trough AgentCallbackLogin, and Monitor() is issued
within answer macro of Dial().

I pinpointed that the problem starts with r85158 - where sound is
completely lost between agent and customer (that's fixed in
http://bugs.digium.com/view.php?id=0011071), but
after that fix (r88931), recording is still lost. Applying patch of
http://bugs.digium.com/view.php?id=0011071 to r85158 shows that recording is
also lost exactly in that
commit.
====================================================================== 

---------------------------------------------------------------------- 
 putnopvut - 12-12-07 15:31  
---------------------------------------------------------------------- 
I have found the offending section of code, however I am not able to fix
the problem immediately. The problem comes from within ast_write in
channel.c. When using callback agents, ast_write bypasses the agent
channel's write and just uses the underlying channel's write function
instead. The problem is that Monitor is listening on the agent channel, not
the base channel. The reason that the get_base_channel methods were added
to chan_agent was as a method of deadlock avoidance, so a new deadlock
avoidance scheme will need to be devised in order to change this. 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
12-12-07 15:31  putnopvut      Note Added: 0075304                          
======================================================================




More information about the asterisk-bugs mailing list