Hi,

 

To minimize/eliminate transcoding, I am using mod native file, with a set of transcoded prompts with the appropriate set of file extensions.

Everything works as advertised when using the traditional codecs such as pcma, g729, gsm.

 

But speex support is a bit of a challenge.

 

Freeswitch supports: speex@8000h@20i,  speex@16000h@20i,  speex@32000h@20i.

 

When I setup calls using these various codec flavors, I can see using info (and of course detect by ear) that indeed the call is running at the different ‘rates’.

I see that regardless of which one I use, the “variable_read_codec” and “variable_write_codec” remains “SPEEX”, but depending on the flavor, a “variable_read_rate” and “variable_write_rate” of either 8000,16000 or 32000.

 

But when I try play a file when in 16000 or 32000, I get:

 

2009-03-15 16:31:13 [INFO] mod_native_file.c:81 native_file_file_open() Opening File [/usr/local/freeswitch/sounds/en/us/callie/all/16000/SUCCESS.SPEEX] 8000hz

2009-03-15 16:31:13 [WARNING] switch_core_file.c:119 switch_core_perform_file_open() Sample rate doesn't match.

 

I created my SPEEX files using: speexenc -w  <infilename> <outfilename> (note the –w option for 16kHz wideband)

 

So, even though the call is setup using a wideband 16kHz codec, it appears that mod native file is expecting a 8kHz file for all the SPEEX flavors.

 

What am I missing here? Is this module limited to 8KHz rates?  I am on 1.0.trunk (12530M).

 

I have not yet looked at these codecs:  G7221@16000h,  G7221@32000h, CELT@32000h,  CELT@48000h, but as these also have multiple rates for the same codec – I expect same issue.

 

I am using ${ variable_read_rate } in the filename path, so fs looks at a set of files encoded with a matching sample rate.

 

But looks like it’s always looking for a 8KHz file.

 

If you have had any experience with this, please let me have your advice.

 

Thanks

Keith