[asterisk-bugs] [Asterisk 0011917]: Not getting answers from get_data in a call-file call

noreply at bugs.digium.com noreply at bugs.digium.com
Tue Mar 4 06:36:02 CST 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=11917 
====================================================================== 
Reported By:                mavetju
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   11917
Category:                   Applications/app_read
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     new
Asterisk Version:           1.4.17 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             02-04-2008 06:46 CST
Last Modified:              03-04-2008 06:36 CST
====================================================================== 
Summary:                    Not getting answers from get_data in a call-file
call
Description: 
When I setup a call via a call-file and then drop into an AGI script, the
function GET DATA doesn't return DTMF keys. With the same AGI script called
directly (i.e. without the call-file) the function GET DATA does return
DTMF keys.
====================================================================== 

---------------------------------------------------------------------- 
 mavetju - 03-04-08 06:36  
---------------------------------------------------------------------- 
The magic seems to fail in zt_read() in chan_zap.c: Around line 4870, there
is a line like this:
 if (p->dsp && (!p->ignoredtmf || p->callwaitcas || p->busydetect  ||
p->callprogress) && !index) {

During normal calls and callback calls all these fields are the same,
except when the callback has been answered: p->dsp is then NULL:

-- zt_read - 1 - dsp: 0x7d9180, ignoredtmf: 0, callwaitcas: 0, busydetect:
0, callprogress: 0, index:0
-- zt_read - 2
-- Moving call from channel 95 to channel 112
-- zt_read - 1 - dsp: (nil), ignoredtmf: 0, callwaitcas: 0, busydetect: 0,
callprogress: 0, index:0
-- zt_read - 1 - dsp: (nil), ignoredtmf: 0, callwaitcas: 0, busydetect: 0,
callprogress: 0, index:0

Note that this setting to NULL happens while moving the call, it doesn't
happen in any of the "dsp = NULL" assignments in chan_zap.c.

So somewhere on the move it loses its DSP. "zap show channel" confirms
this:

Channel: 95
Owner: <None>
Real: <None>
DSP: yes

Channel: 112
Owner: Zap/4:112-1
Real: Zap/4:112-1
DSP: no

According to tzafrir on #asterisk-dev, the DSP on channel 95 shouldn't be
active, and the one on channel 112 should be.

Does this analysis make sense? 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
03-04-08 06:36  mavetju        Note Added: 0083311                          
======================================================================




More information about the asterisk-bugs mailing list