Page 1 of 1

Multilanguage prompts support with central sound control

PostPosted: Mon Oct 05, 2015 12:30 pm
by bobchaos
Hello everyone,
I'm having an issue getting french prompts to play on my Vicidial system when using central sound control. I can reproduce this issue across many clusters but for the purpose of this thread we can use this simple setup: 1 dialer, 1 web (the sound controller) and 1 DB, all installed using Vicibox server and currently running VERSION: 2.12-505a BUILD: 150806-1348. In the designated sounds directory (the one linked on the system settings page, not /var/lib/asterisk/sounds/) on the web server, I've uploaded all my french files by unpacking the directory right in there through console. I've chowned and chmoded it (recursively of course) to the same permissions/ownerships as the other sound files in there. I've then asked Vicidial to rebuild the sounds for both the dialing and web server. I gave it ample time to run it's scripts but it's still not playing the french prompts. In my asterisk console I can see it means to play the (fr) version of the file, but I end up with the english one, presumably because it can't find the french one.

In the audio store page, I can't see the french files, suggesting it's not listing the server content but checking the DB for the path of the files. I've tried simply uploading the folder through the audio store but it won't take it as a whole. Am I misunderstanding something here? Is there a simple way of adding extra languages to Vicidial central sound control at this time that i'm missing? Or am I just better off going back to regular sound control for now and if so, how will that impact recordings made through the Vicidial extension (8501 if i recall correctly)? Thanks!

Re: Multilanguage prompts support with central sound control

PostPosted: Mon Oct 05, 2015 1:07 pm
by mflorell
The Vicidial Central Sound Control is not really designed for the way Asterisk does multiple languages. Asterisk expects languages to be in a separate folder within the sounds directory, (i.e. conf.gsm in French would need to be in fr/conf.gsm directory inside of the Asterisk sounds directory).

Re: Multilanguage prompts support with central sound control

PostPosted: Mon Oct 05, 2015 3:54 pm
by bobchaos
I hope you'll consider adding that in at some point in the future to complement the multi-language support that was added to the interface. Maybe have a "prompts" section added to the language menu where you can upload new sound packages the same way you import phrases.

Re: Multilanguage prompts support with central sound control

PostPosted: Mon Oct 05, 2015 4:21 pm
by mflorell
It's a good idea, but none of our clients have ever asked for this, so it will probably get put on the unpaid-development list of things to add.

We are working on a very complex custom IVR for a client now that uses 6 different languages, but due to it's complexity, it is all being programmed in a custom AGI script, and the prompts are all staying in the default sounds directory.

Re: Multilanguage prompts support with central sound control

PostPosted: Tue Oct 06, 2015 9:13 pm
by bobchaos
Thanks! In the meantime, I've tried just replacing the existing sounds in the directory and having the servers do a sounds update but that doesn't work either. Is there any way for me to play non-english prompts even if I have to delete the original ones?

*Edit* just curious, how big a bounty would you say in order to get the feature I described above? Maybe I can get my clients to pitch in, up here in Quebec we're all pretty worried the french police might crack down on us XD

Re: Multilanguage prompts support with central sound control

PostPosted: Tue Oct 06, 2015 10:34 pm
by mflorell
If you haven't triggered a sound update on the server, it isn't going to look for new files to replace the Asterisk sounds with.

As for how to force a change in the language that is used to play a prompt, here's how we do it in AGI scripts:

$AGI->exec("EXEC Set(CHANNEL(language)=$language)");

Where $language is the 2-character abbreviation for the language.

You can also use the dialplan channel variable:

${LANGUAGE()}