Changing system recordings from their default to uploaded sound files

Hey. Just submitted a support ticket, but thought I would throw this one out to the groups as well.

We recently recorded some professional voice overs for our IVR and all the system recordings. I have been trying to update the system’s default recordings for a few days now to no avail. Going into the system recordings panel and updating the file (to one of our recorded ones) seems to work as the screen reports that the information has been saved after the post back. Unfortunately, this is not the case. The system is not updated and when I go back into the panel screen, the old file is again associated with the recording.

My question is, does anyone know what is happening here? Is it a permissions issue? Do I have to make the change in another place? Is there a different config file I can change?



Joe as we discussed and so for the benefit of the readers, the System Recordings will only handle creating and changing of your custom recordings. They are all stored in the custom sound directory. So even if you give them the same name as one of the official system recordings it will not replace it as the system does not use the custom directory unless told to as is the case in our dialplan when you use those recordings for IVR creation and other places. So you need to replace the actual files where they are located by default with your custom recordings.

Philippe Lindheimer - FreePBX Project Lead
http// - IRC #freepbx

There is an alternative, which can generate less pain during upgrades.

Create a subfolder in the sound files directory (/var/lib/asterisk/sounds) and call it ‘custom’ for example,
then in various conf-files, add ‘language=custom’.

You can set the language for SIP, for IAX, or even for individual phones.

Now, for any file, such as hello-world, asterisk will check /var/lib/asterisk/sounds/custom/hello-world.ulaw, and if the file does
not exists, fall back to /var/lib/asterisk/sounds/hello-world.ulaw

Note that subdirectories, such as ‘digiits’ (/var/lib/asterisk/sounds/digits/1) must be ‘/var/lib/asterisk/sounds/digits/custom/1’ .

Where should I adjust “then in various conf-files, add ‘language=custom’.”?


The question is a bit out of date but here is a quick howto for anyone else who looking for how to replace the American accent with their own accent or language.

Mine is En_AU so feel free to replace any “au” references with your own language. I found a lot of international sound files here. I assume you already know your way around Linux, this was done with Asterisk Now version 1.70 using FreePBX version, the new sound files are individual .gsm files.

Log into the server, copy the new sound files onto the server and extract the files into a directory.

Create a new folder in the default sounds directory, /var/lib/asterik/sounds for your new language. E.G “mkdir /var/lib/asterisk/sounds/au”.
Create a digits directory under sounds. E.G. “mkdir /var/lib/asterisk/sounds/digits” and create another directory for your language. E.G. “/var/lib/asterisk/sounds/au”.

You now need to copy to the sound files into those directories copy the sound files into “/var/lib/asterisk/sounds/au” and the digits into “/var/lib/asterisk/sounds/digits/au”.

Next you need to tell Asterisk to use the custom directories. Navigate to /etc/asterisk/. You’ll need to place the line “language=au” into the sip_general_custom.conf file and iax_general_custom.conf file.

Finally restart the services or server to complete the change.

I realise this is an ancient thread, but it is still relevant, and, I hope, of use to others if I update:

I used the above post by captain cynic recently (May 2012) and found that, while the content was very useful, and got me on the right track, the content is out of date as it seems that the directory scheme employed now is slightly different
( this relates to Asterisk

If you want to use a custom language, the /au (or whatever is appropriate for the language you are adding) is now the root of that language directory tree, with all subsequent directories under that used if the language=au directive is given to Asterisk.

So, you using the example above, for an australian voice set, you would create a directory called ‘au’ and put it like so: E.G. “/var/lib/asterisk/sounds/au”.

You would then put sub-directories into the au directory.

So this instruction:
"You now need to copy to the sound files into those directories copy the sound files into “/var/lib/asterisk/sounds/au” and the digits into “/var/lib/asterisk/sounds/digits/au”. "

"You now need to copy to the sound files into those directories copy the sound files into “/var/lib/asterisk/sounds/au” and the digits into “/var/lib/asterisk/sounds/au/digits”.

So, you end up with something that looks like this:


Hope this helps someone!

Also, directly editing the conf files to insert the language definition is a bad idea and likely will be overwritten, and FreePBX complains.

Rather than edit the asterisk conf files for SIP and IAX directly
(sip_general_custom.conf file and iax_general_custom.conf file), you can update these using the Web interface via the “Settings|Asterisk SIP Settings” and “Settings|IAX Settings”

Both settings pages have a language field, so you just put ‘au’ (or whatever your added language is) in the field. (no quotes around the au)