Change language on one extension


I’m trying to change the language setting for just one extension. I have loaded the “Languages” module and have set the alternate language on the target extension. However, when I call *97 to get voicemail from that extension, I hear almost all prompts in the default ‘en’ language.

I have narrowed it down to this: any prompts that are located in the subdirectories under ‘phonetic’, ‘digits’ and ‘letters’ for their respective languages work fine. For example,

Playing ‘digits/1M’ (language ‘es’)

will correctly play the “one message” prompt in Spanish. However,

Playing ‘vm-password’ (language ‘es’)

will not play the Spanish prompt but instead will play the English prompt under the default …/sounds directory. I do have a …/sounds/es dir with all of the corresponding sound files there and the permissions are all set to asterisk:asterisk.

Am I missing something here?


Update: issuing a sip show peer xxx command to print the extension details shows the “language” field blank. The language setting in the extension config page does have the correct language setting. Any clues?


if you are getting partial Spanish prompts then the language is being set appropriately. It is not set in the sip channel, it is set in the dialplan for the given user when they call in.

It would appear that there may be issues with your sound file setup given what you describe, otherwise you would not be getting any of the Spanish files played.

ok good info Philippe.

The problem was that the language directories, for some reason, were set to 664 which means they couldn’t be listed even when asterisk:asterisk owned them. I ran chmod 775 on the directories and that fixed it.

Thanks for your help!

glad it works, for future reference:

amportal chown

that should change ownership and I think permissions across the board to everything that FreePBX cares about (and should cover asterisk also).

Never knew that, thanks. Ran it just in case.

I have a DID dedicated to this extension so to change the language for incoming external calls, I create a new language instance in the language module and pointed the inbound route for this DID to it. The language instance then points to the extension. Works great.