--- asterisk-1.6.0-beta1-orig/main/frame.c 2008-01-19 08:08:01.000000000 +1030 +++ asterisk-1.6.0-beta1/main/frame.c 2008-01-22 15:37:04.000000000 +1030 @@ -107,7 +107,7 @@ { AST_FORMAT_SLINEAR, "slin", 8000, "16 bit Signed Linear PCM", 160, 10, 70, 10, 20, AST_SMOOTHER_FLAG_BE }, /*!< Signed linear */ { AST_FORMAT_LPC10, "lpc10", 8000, "LPC10", 7, 20, 20, 20, 20 }, /*!< codec_lpc10.c */ { AST_FORMAT_G729A, "g729", 8000, "G.729A", 10, 10, 230, 10, 20, AST_SMOOTHER_FLAG_G729 }, /*!< Binary commercial distribution */ - { AST_FORMAT_SPEEX, "speex", 8000, "SpeeX", 10, 10, 60, 10, 20 }, /*!< codec_speex.c */ + { AST_FORMAT_SPEEX, "speex", 8000, "SpeeX", 38, 20, 300, 20, 20 }, /*!< codec_speex.c */ { AST_FORMAT_ILBC, "ilbc", 8000, "iLBC", 50, 30, 30, 30, 30 }, /*!< codec_ilbc.c */ /* inc=30ms - workaround */ { AST_FORMAT_G726_AAL2, "g726aal2", 8000, "G.726 AAL2", 40, 10, 300, 10, 20 }, /*!< codec_g726.c */ { AST_FORMAT_G722, "g722", 16000, "G722", 80, 10, 150, 10, 20 }, /*!< codec_g722.c */ @@ -1389,7 +1389,9 @@ int samples=0; switch(f->subclass) { case AST_FORMAT_SPEEX: - samples = speex_samples(f->data, f->datalen); + /* DR: hard coded for quality=8 mode. + 300 bits (38 bytes) converted to 160 samples */ + samples = 160 * (f->datalen / 38); break; case AST_FORMAT_G723_1: samples = g723_samples(f->data, f->datalen); --- asterisk-1.6.0-beta1-orig/configs/modules.conf.sample 2008-01-11 02:52:10.000000000 +1030 +++ asterisk-1.6.0-beta1//configs/modules.conf.sample 2008-01-22 15:40:04.000000000 +1030 @@ -37,3 +37,4 @@ noload => chan_alsa.so ;noload => chan_oss.so ;noload => chan_console.so +noload => codec_g729.so