Email voice prompts in languages other than English

I’ve a SIP channel with language=es and the voice mail prompts when an outside caller calls an extension that goes to voice mail play in Spanish just fine, except the digits are played in English.

Relevant debug output:

– <SIP/xxx-00d83000> Playing ‘vm-theperson’ (language ‘es’)
– <SIP/xxx-00d83000> Playing ‘digits/2’ (language ‘es’)
– <SIP/xxx-00d83000> Playing ‘digits/0’ (language ‘es’)
– <SIP/xxx-00d83000> Playing ‘digits/0’ (language ‘es’)
– <SIP/xxx-00d83000> Playing ‘digits/1’ (language ‘es’)
– <SIP/xxx-00d83000> Playing ‘vm-isonphone’ (language ‘es’)
– <SIP/xxx-00d83000> Playing ‘vm-intro’ (language ‘es’)

The caller in this case hears everything in Spanish, except for the digits which play in English.

Copying the Spanish digits to the base sounds directory results in the caller hearing the digits in Spanish.

This is Asterisk 1.4.1 on FreeBSD 6.2-RELEASE, I did install all of the core and additional sounds in both English and Spanish.

Any ideas?



Sounds like you’ve got it working fine now. What’s the problem?

The problem is that the digits are being played in English, not in Spanish, depsite what the debug output suggests.


Copying the Spanish digits to the base sounds directory results in the caller hearing the digits in Spanish.[/quote]


Copying the Spanish digits to the base sounds directory results in the caller hearing the digits in Spanish.[/quote]


Well, how can that be a fix? It overwrites the English digits.

The point is that the Spanish files are being accessed in the correct directory (/usr/local/share/asterisk/sounds/es in this case), except for the digits.

I temporarily copied the Spanish digits to the English directory as a test. I need digits in both languages.

I understand that the voicemail application doesn’t play the digits, so the problem may well be in a different application.


Did you copy the spanish digits files in the directory called “digits” (in /var/lib/asterisk/sounds/digits)?

I’m not sure I understand your question.

I’m running Asterisk on FreeBSD, so the directory names are somewhat different.

In /usr/local/share/asterisk/sounds I see all of the core English sound files. Theris also a /usr/local/share/asterisk/sounds/es directory, with the core Spanish files. And, there is /usr/local/share/asterisk/sound/es/digits directory, with the Spanish digit sound files.

As I explained originally, the Spanish sound files play just fine, so the prompts are all in Spanish, except for the digits, which are played in English. I experimented with temporarily copying the Spanish digit sound files into the English digits directory, and the digits were played in Spanish.

So, the voicemail application (or whatever application si the one speaking the digits) seems to be looking for the digit sound files in the base directory (which happens to be English) instead of the Spanish directory.

Since my original posting, I tested with French as the language, and observed the same incorrect behavior.


As noted elsewhere with no reply, I confirm that with language=fr in the context the prompts are in french but the date and digits are in english.
The files are in the following directories: standard english sounds in /usr/share/asterisk/sounds and the french sounds in /var/lib/asterisk/sounds/fr where dictate,digits,followme,letters,phonetic,silence can be found as subdirectories.
As I said in my original post it seems SayDigits and SayDate aren’t looking in the right place, or not using the language variable (or have an access control problem?).

I submitted a bug on this just now (9263). I was thinking of this problem as minor in nature, until one of the users hit certain voicemail count, then he couldn’t retrieve his voicemail anymore. As explained in the bug:

Some sound files only exist in Spanish. Since the application seems to be looking for the digits files in the wrong directory, depending on the voice mail count the user might not be able to retrieve its voice mail messages since the voicemail application terminates the call when it tries to play a nonexistent file. One example is the file 1M.


I did a little test since I have 2 softphones 1 configured to be “french” and the other “english”.
exten => 3,1,Answer()
exten => 3,2,SayDigits(12345)
exten => 3,3,DateTime()
exten => 3,4,Hangup()

Both phones get almost the same voice stream in english except that the “french” one gets o’clock appended after the hour.

BTW why is DateTime called that and not SayDateTime?

The presence or absence of languagePrefix => yes in asterisk.conf seems to make no difference since I still get french prompts on the french phone.

The debug trace on the console indicates language “fr” while saying the things in english above.

I did take a look at the C code but I’m no expert and can’t see where the choice of the file to read is made.


I’ve now added a specific
exten => 3,n,set(LANGUAGE()=fr) and
exten => 3,n,Playback(/var/lib/asterisk/sounds/fr/digits/1)

The 1st one doesn’t make any difference so the SayDigits and DateTime are still in english. The latter does say “un” as opposed to “one” which proves that the french files are there, they contain the right things and that there’s no access control problem.

So it seems to me that the problem is the “languageprefix=yes” in asterisk.conf is not having the desired effect. Why?


OK if I copy the french language files from /var/lib/asterisk/sounds/fr/digits to /var/lib/asterisk/sounds/digits/fr, it works as it should but that’s not what the documentation accompanying 1.4.X says.

Can I assume this is a temporary problem which will be fixed in a not too far distant release?