FreePBX Multiple Language Voicemails

I am trying to set up a PBX with both English and Spanish voicemails. I am currently using FreePBX 2.11.0.38.

I have purchased some sound file for British English and Spanish spanish and I have uploaded the files into the relevant place as suggested by all guides I have come across (var/lib/asterisk/sounds).

I have run chown and chmod commands to make sure the sounds files have the right ownership and permissions.

If I go to Sip settings and change the language here to es, any time I go to voicemail I am getting the Spanish sounds files. If I set this to en I get the English voicemails, so the files seem to be installed correctly.

I need to change the voicemail on an extension basis. I have cleared the box for language in Sip Settings so this is now blank. I have created two extensions one English and one Spanish. I have gone to the voicemail admin and put en in the English extension and es in the Spanish extension. No matter what I change here the voicemail is always in English.

Only changing the sounds files on a global level makes any difference. Is there something simple I am missing here. I have read all other posts I could find about this but many are people who have forgot to chown or had other modules/service that could interfere.

Just as an update.
I ring the DID and the person is unavailable, it plays in English.
That extension dial *79 for voicemail and the prompts are in Spanish.
I need the first message to be Spanish also ie the unavailable message.

Where exactly in /lib/asterisk/sounds are the files?

It would be helpful if you pointed us to the documentation you used. We have no idea what those guidelines are or if they are accurate.

It would also be useful to have some logs of calls.

Alan

Hi Alan,

Many Thanks for your response. I will include here as much info as possible.

First here were the instructions received by the company we purchased the sound files from:

1) Extract the tar.gz file you received using the syntax "tar -xf filename" 

The file will be called something like:  
'british-english-rachael-latest-alaw.tar.gz' 

So the command to extract the files will be:

tar -zxf british-english-rachael-latest-alaw.tar.gz


2) Inside the resulting directory you will find a second file 
called 'sounds.tar.gz'. 


3) Copy this to the parent folder containing your sounds directory. 
(this is normally found in "/var/lib/asterisk) 

The contents of the parent directory will look like this (not all items are shown)
...
/var/lib/asterisk/keys
/var/lib/asterisk/mohmp3
/var/lib/asterisk/sounds
/var/lib/asterisk/sounds.tar.gz

4) Extract the sounds using this command:

tar -zxf sounds.tar.gz

After the sounds.tar.gz file has been expanded the resulting folders will 
look like this:

/var/lib/asterisk/sounds/               - Current folder
/var/lib/asterisk/sounds/en             - New folder copied in
/var/lib/asterisk/sounds/dictate        - Current folder
/var/lib/asterisk/sounds/dictate/en     - New folder copied in
/var/lib/asterisk/sounds/digits         - Current folder
/var/lib/asterisk/sounds/digits/en      - New folder copied in
/var/lib/asterisk/sounds/letters        - Current folder
/var/lib/asterisk/sounds/letters/en     - New folder copied in
/var/lib/asterisk/sounds/phonetics      - Current folder
/var/lib/asterisk/sounds/phonetics/en   - New folder copied in


These folders are also duplicated into the "en" folder for compatibility with 
asterisk 1.6.x and Elastix. In which case you will also see this structure after 
installation is complete

/var/lib/asterisk/sounds/en
/var/lib/asterisk/sounds/en/dictate
/var/lib/asterisk/sounds/en/digits
/var/lib/asterisk/sounds/en/letters
...etc...



5) In order to get your system to use the installed voice prompts instead of 
the defaultlanguage you have to edit a configuration file so that Asterisk 
can locate the prompts.


6) Asterisk: Add or customise the language parameter in the sip.conf file to be: 
(without the quotes)

"Language=en"


Elastix: Add or customise the language parameter in the sip_general_custom.conf, 
" to iax_custom.conf and chan_dahdi.conf files to be: 
(without the quotes)

"language=en"

These files can be located by navigating to the following path in your root
directory: 

/etc/asterisk/

Then reload asterisk by logging into the command shell and entering "reload" 
into asterisk. 
Alternatively if you are using freepbx press the reload button that appears on 
screen after editing an extension for example.

I have followed this guide up to step 4 to add the sound files.



I have two extensions configured one for English and one for Spanish.
100049 - English
100050 - Spanish

100049

100050

As mentioned initially I can add es to the language field in the advanced sip settings and change all sound files to Spanish on a global level, changing to en changes all to English on a global level. However the VM Option language for the extension seems to only dictate the language spoken when the extension owner rings “*97” to retrieve their voicemail, rather than when someone ring that extension and gets to their voicemail.

Here are some logs for some calls made to ext 100049 ie Engish:

-- Executing [vmx@macro-vm:10] NoOp("SIP/NodoProvicnial-000001cd", "Checking                                                                                                              if ext 100049 is enabled: ") in new stack
-- Executing [vmx@macro-vm:11] GotoIf("SIP/NodoProvicnial-000001cd", "1?s-CH                                                                                                             ANUNAVAIL,1") in new stack
-- Goto (macro-vm,s-CHANUNAVAIL,1)
-- Executing [s-CHANUNAVAIL@macro-vm:1] Macro("SIP/NodoProvicnial-000001cd",                                                                                                              "get-vmcontext,100049") in new stack
-- Executing [s@macro-get-vmcontext:1] Set("SIP/NodoProvicnial-000001cd", "V                                                                                                             MCONTEXT=default") in new stack
-- Executing [s@macro-get-vmcontext:2] GotoIf("SIP/NodoProvicnial-000001cd",                                                                                                              "0?200:300") in new stack
-- Goto (macro-get-vmcontext,s,300)
-- Executing [s@macro-get-vmcontext:300] NoOp("SIP/NodoProvicnial-000001cd",                                                                                                              "") in new stack
-- Executing [s-CHANUNAVAIL@macro-vm:2] VoiceMail("SIP/NodoProvicnial-000001                                                                                                             cd", "100049@default,u") in new stack
-- <SIP/NodoProvicnial-000001cd> Playing 'vm-theperson.gsm' (language 'en')
[2014-08-07 11:10:52] NOTICE[4184][C-000000d1]: channel.c:4259 __ast_read: Dropp                                                                                                             ing incompatible voice frame on SIP/NodoProvicnial-000001cd of format g729 since                                                                                                              our native format has changed to (alaw)
    -- <SIP/NodoProvicnial-000001cd> Playing 'digits/1.gsm' (language 'en')
-- <SIP/NodoProvicnial-000001cd> Playing 'digits/0.gsm' (language 'en')
-- <SIP/NodoProvicnial-000001cd> Playing 'digits/0.gsm' (language 'en')
-- <SIP/NodoProvicnial-000001cd> Playing 'digits/0.gsm' (language 'en')
-- <SIP/NodoProvicnial-000001cd> Playing 'digits/4.gsm' (language 'en')
-- <SIP/NodoProvicnial-000001cd> Playing 'digits/9.gsm' (language 'en')
-- <SIP/NodoProvicnial-000001cd> Playing 'vm-isunavail.gsm' (language 'en')
-- <SIP/NodoProvicnial-000001cd> Playing 'vm-intro.gsm' (language 'en')


     == Spawn extension (macro-vm, s-CHANUNAVAIL, 2) exited non-zero on 'SIP/NodoPr                                                                                                             ovicnial-000001cd' in macro 'vm'
   == Spawn extension (macro-exten-vm, s, 14) exited non-zero on 'SIP/NodoProvicn                                                                                                             ial-000001cd' in macro 'exten-vm'
  == Spawn extension (from-did-direct, 100049, 2) exited non-zero on 'SIP/NodoPr                                                                                                             ovicnial-000001cd'
-- Executing [h@from-did-direct:1] Macro("SIP/NodoProvicnial-000001cd", "han                                                                                                             gupcall,") in new stack
-- Executing [s@macro-hangupcall:1] GotoIf("SIP/NodoProvicnial-000001cd", "1                                                                                                             ?theend") in new stack
-- Goto (macro-hangupcall,s,3)
-- Executing [s@macro-hangupcall:3] ExecIf("SIP/NodoProvicnial-000001cd", "0                                                                                                             ?Set(CDR(recordingfile)=)") in new stack
-- Executing [s@macro-hangupcall:4] Hangup("SIP/NodoProvicnial-000001cd", ""                                                                                                             ) in new stack
 == Spawn extension (macro-hangupcall, s, 4) exited non-zero on 'SIP/NodoProvic                                                                                                             nial-000001cd' in macro 'hangupcall'
 == Spawn extension (from-did-direct, h, 1) exited non-zero on 'SIP/NodoProvicn                                                                                                             ial-000001cd'
 == MixMonitor close filestream (mixed)
 == End MixMonitor Recording SIP/NodoProvicnial-000001cd

Here are some logs for ext 100050 ie Spanish:

 -- Executing [vmx@macro-vm:10] NoOp("SIP/NodoProvicnial-000001d0", "Checking if ext 100050 is enabled: ") in new stack
-- Executing [vmx@macro-vm:11] GotoIf("SIP/NodoProvicnial-000001d0", "1?s-NOANSWER,1") in new stack
-- Goto (macro-vm,s-NOANSWER,1)
-- Executing [s-NOANSWER@macro-vm:1] Macro("SIP/NodoProvicnial-000001d0", "get-vmcontext,100050") in new stack
-- Executing [s@macro-get-vmcontext:1] Set("SIP/NodoProvicnial-000001d0", "VMCONTEXT=default") in new stack
-- Executing [s@macro-get-vmcontext:2] GotoIf("SIP/NodoProvicnial-000001d0", "0?200:300") in new stack
-- Goto (macro-get-vmcontext,s,300)
-- Executing [s@macro-get-vmcontext:300] NoOp("SIP/NodoProvicnial-000001d0", "") in new stack
-- Executing [s-NOANSWER@macro-vm:2] VoiceMail("SIP/NodoProvicnial-000001d0", "100050@default,u") in new stack
-- <SIP/NodoProvicnial-000001d0> Playing 'vm-theperson.gsm' (language 'en')
 [2014-08-07 11:14:50] NOTICE[4191][C-000000d3]: channel.c:4259 __ast_read: Dropping incompatible voice frame on SIP/NodoProvicnial-000001d0 of format g729 since our native format has changed to (alaw)
-- <SIP/NodoProvicnial-000001d0> Playing 'digits/1.gsm' (language 'en')
-- <SIP/NodoProvicnial-000001d0> Playing 'digits/0.gsm' (language 'en')
-- <SIP/NodoProvicnial-000001d0> Playing 'digits/0.gsm' (language 'en')
-- <SIP/NodoProvicnial-000001d0> Playing 'digits/0.gsm' (language 'en')
-- <SIP/NodoProvicnial-000001d0> Playing 'digits/5.gsm' (language 'en')
-- <SIP/NodoProvicnial-000001d0> Playing 'digits/0.gsm' (language 'en')
-- <SIP/NodoProvicnial-000001d0> Playing 'vm-isunavail.gsm' (language 'en')
-- <SIP/NodoProvicnial-000001d0> Playing 'vm-intro.gsm' (language 'en')
-- <SIP/NodoProvicnial-000001d0> Playing 'beep.gsm' (language 'en')
-- Recording the message
-- x=0, open writing:  /var/spool/asterisk/voicemail/default/100050/tmp/JKE7il format: wav49, 0x7fccb8064b98
-- x=1, open writing:  /var/spool/asterisk/voicemail/default/100050/tmp/JKE7il format: gsm, 0x7fccb8060a78
-- x=2, open writing:  /var/spool/asterisk/voicemail/default/100050/tmp/JKE7il format: wav, 0x7fccb807eac8
-- User hung up