[asterisk-dev] Need help to get ast_dsp_call_progress working in a	module
    Wai Wu 
    wkwu at calltrol.com
       
    Tue Jul 10 18:30:37 CDT 2007
    
    
  
 
This is part of the code in my test module. The ast_dsp_call_progress
always return 0. I have setup an system calling into the * box and this
module is called from a extension. 
	xcpa = ast_dsp_new();
	if (!xcpa)
		return 0;
	/* Set read format to signed linear so we get signed linear
frames in */
	readFormat = chan->readformat;
	if (ast_set_read_format(chan, AST_FORMAT_SLINEAR) < 0 ) {
		ast_dsp_free(xcpa);
		return 0;
	}
	while ((res = ast_waitfor(chan, 40000)) > -1) 
	{
		/* If we fail to read in a frame, that means they hung
up */
		if (!(f = ast_read(chan))) 
			break;
		if (f->frametype == AST_FRAME_VOICE) 
		{
			/* get total time spent here */			
			TotalTime += (ast_codec_get_samples(f) /
DEFAULT_SAMPLES_PER_MS);;
			rc = ast_dsp_call_progress(xcpa, f);
			if (rc) ast_verbose(VERBOSE_PREFIX_3
"ast_dsp_call_progress %d.\r\n", rc);
			if (TotalTime >= 40000) 
				break;
		}
		ast_frfree(f);
	}
	if (readFormat)
		ast_set_read_format(chan, readFormat);
	ast_dsp_free(xcpa);
	return 0;
    
    
More information about the asterisk-dev
mailing list