Index: asterisk/frame.c =================================================================== RCS file: /usr/cvsroot/asterisk/frame.c,v retrieving revision 1.58 diff -u -r1.58 frame.c --- asterisk/frame.c 6 Jun 2005 22:12:18 -0000 1.58 +++ asterisk/frame.c 28 Jun 2005 06:22:36 -0000 @@ -1117,7 +1117,7 @@ static int speex_samples(unsigned char *data, int len) { static int SpeexSubModeSz[] = { - 0, 43, 119, 160, + 5, 43, 119, 160, 220, 300, 364, 492, 79, 0, 0, 0, 0, 0, 0, 0 }; Index: asterisk/codecs/codec_speex.c =================================================================== RCS file: /usr/cvsroot/asterisk/codecs/codec_speex.c,v retrieving revision 1.16 diff -u -r1.16 codec_speex.c --- asterisk/codecs/codec_speex.c 21 Jun 2005 23:16:32 -0000 1.16 +++ asterisk/codecs/codec_speex.c 28 Jun 2005 06:22:36 -0000 @@ -91,8 +91,6 @@ speex_encoder_ctl(tmp->speex, SPEEX_SET_QUALITY, &quality); if (vad) speex_encoder_ctl(tmp->speex, SPEEX_SET_VAD, &vad); - if (dtx) - speex_encoder_ctl(tmp->speex, SPEEX_SET_DTX, &dtx); } if (vbr) { speex_encoder_ctl(tmp->speex, SPEEX_SET_VBR, &vbr); @@ -101,6 +99,8 @@ if (abr) { speex_encoder_ctl(tmp->speex, SPEEX_SET_ABR, &abr); } + if (dtx) + speex_encoder_ctl(tmp->speex, SPEEX_SET_DTX, &dtx); tmp->tail = 0; } localusecnt++;