voicemail messages language change - howto?

Status
Not open for further replies.

witekprytek

Joined
Dec 19, 2007
Messages
145
Reaction score
0
I have PABX with Elastix 1.6.
I have more than 1 language files installed on the system.
I have one extension 1007 with language code fr.
But when this extension is unavaiable and some other extension or incoming call is routed to 1007 voicemai I have an english voicemail greetings.

I have tried to change the language flow by adding some "language application" and I see that this application sets language code for fr.

After this some other application change again the language for "en" (see log below)

Does anybody know the way how to change voicmail messages for language different than default for some extensions?



Extension Changed 1001[ext-local] new state InUse for Notify User 809
-- Executing [1021@from-internal:1] NoOp("SIP/1001-0001b1f4", "Running miscapp 6: test_fr_voicemail") in new stack
-- Executing [1021@from-internal:2] Goto("SIP/1001-0001b1f4", "app-languages|4|1") in new stack
-- Goto (app-languages,4,1)
-- Executing [4@app-languages:1] NoOp("SIP/1001-0001b1f4", "Changing Channel to language: fr (CS_FR-voicemail)") in new stack
-- Executing [4@app-languages:2] Set("SIP/1001-0001b1f4", "CHANNEL(language)=fr") in new stack
-- Executing [4@app-languages:3] Goto("SIP/1001-0001b1f4", "ext-local|vmu1007|1") in new stack
-- Goto (ext-local,vmu1007,1)

.
.
.


-- Executing [s@macro-user-callerid:8] Set("SIP/1001-0001b1f4", "CALLERID(all)="SCom Test 1001" <1001>") in new stack
-- Executing [s@macro-user-callerid:9] ExecIf("SIP/1001-0001b1f4", "1|Set|CHANNEL(language)=en") in new stack
-- Executing [s@macro-user-callerid:10] GotoIf("SIP/1001-0001b1f4", "1?continue") in new stack
-- Goto (macro-user-callerid,s,19)
-- Executing [s@macro-user-callerid:19] NoOp("SIP/1001-0001b1f4", "Using CallerID "SCom Test 1001" <1001>") in new stack
-- Executing [s@macro-vm:2] Set("SIP/1001-0001b1f4", "VMGAIN=""") in new stack
-- Executing [s@macro-vm:3] GotoIf("SIP/1001-0001b1f4", "1?vmx|1") in new stack
-- Goto (macro-vm,vmx,1)
-- Executing [vmx@macro-vm:1] GotoIf("SIP/1001-0001b1f4", "0?s-NOANSWER|1") in new stack
-- Executing [vmx@macro-vm:2] Set("SIP/1001-0001b1f4", "MODE=unavail") in new stack
-- Executing [vmx@macro-vm:3] GotoIf("SIP/1001-0001b1f4", "1?notdirect") in new stack
-- Goto (macro-vm,vmx,5)
-- Executing [vmx@macro-vm:5] NoOp("SIP/1001-0001b1f4", "Checking if ext 1007 is enabled: ") in new stack
 
Could somebody help with this issue?
I have recorded some french messages for the voicemail box, but when caller push # button hear messages in English because the lang variable has been changed by macro "user-caller-id" used by vm.
 
Hi.

Maybe use VM option or VM context and look at [zonemessages] into voicemail configuration. (read some stuff about voicemail.conf)

Maybe you could add your extension into a specific vm context and using its own TZ with its own language.

Just an idea like that.

Regards
 
danardf said:
Hi.

Maybe use VM option or VM context and look at [zonemessages] into voicemail configuration. (read some stuff about voicemail.conf)

Maybe you could add your extension into a specific vm context and using its own TZ with its own language.

Just an idea like that.

Regards
Hi Dandarf;
I have tried a lot of thing in vm.
I have noticed that when the call is forwarded to the VM box, the macro called [macro-user-callerid]

change the language flow if it is different then language set to the caller:

exten => s,n,ExecIf($["${DB(AMPUSER/${AMPUSER}/language)}" != ""],Set,CHANNEL(language)=${DB(AMPUSER/${AMPUSER}/language)})

I can remove the above line from the macro, but it can broke the system consistency.
So my idea is to add macro-user-callerid-custom
and change the line above to add one more conditions:
&&DESTINATION!=VM_Box_nrXXXX

But I'm not sure which asterisk variable should be used to identify VM box
I think about: ${CALLERID(dnid)}
or ${VM_CIDNUM}

in the end I expect something like this (for vm1004):
Code:
exten => s,n,ExecIf(($["${DB(AMPUSER/${AMPUSER}/language)}" != "") && (${CALLERID(dnid)}" !="1004"))],Set,CHANNEL(language)=${DB(AMPUSER/${AMPUSER}/language)})

I'm not very happy to test such a functions on production systems, so I will be very graceful if somebody could confirm that my idea could vork and the code above is correct for vm box of extension 1004.
 
But I'm not sure which asterisk variable should be used to identify VM box
I think about: ${CALLERID(dnid)}
or ${VM_CIDNUM}

${CALLERID(dnid) is the number dialed from caller.

If you call the 1004 from 1010, the dnid will 1004.

VM_CIDNUM could be changed in the case where the call will forwarded to another extension.
(I guess).

Othewise,i've no other idea.

I'm not very happy to test such a functions on production systems, so I will be very graceful if somebody could confirm that my idea could vork and the code above is correct for vm box of extension 1004.

You could not use a virtual machine to make some test, no?
It's so easy right now ... :)

However, i understood your problem (i guess). You want to keep the same language even if the extension is forwarded to another vm extension. Right?

And side Freepbx forum? No clue?

Regards
 
Status
Not open for further replies.

Members Online Now

Forum statistics

Threads
111,860
Messages
589,437
Members
164,700
Latest member
Apollo Cloud