Not respecting language in one specific queue situation

I have configured spanish (es) as the language for the inbound route, and then also for the agents extension.
When the agent calls his voicemail he hears all prompts in spanish (this is the expected behavior)
When a call comes in and is sent to the queue, the caller hears the message “you are number 3 in the queue” in spanish (again this is the expected behavior), but then when the agent picks up and the system tells the agent the amount of time the caller has been on hold, that message is in english(wrong behavior). The spanish prompts are in the system and are in the correct location. Where else am I supposed to set the language?
thanks,
-gk
PS.- here is the log of all the call. Search for “language” to see that at the beginning its ‘es’ and then at the very end it changes to ‘en’

– Executing [s@app-announcement-2:6] Goto(“DAHDI/i1/6651092702-19”, “ivr-4,s,1”) in new stack
– Goto (ivr-4,s,1)
– Executing [s@ivr-4:1] Set(“DAHDI/i1/6651092702-19”, “MSG=custom/amcotj-panasonic-recomendacionChat&custom/amcotj-panasonic-Monitorcalidad”) in new stack
– Executing [s@ivr-4:2] Set(“DAHDI/i1/6651092702-19”, “LOOPCOUNT=0”) in new stack
– Executing [s@ivr-4:3] Set(“DAHDI/i1/6651092702-19”, “__DIR-CONTEXT=”) in new stack
– Executing [s@ivr-4:4] Set(“DAHDI/i1/6651092702-19”, “_IVR_CONTEXT_ivr-4=”) in new stack
– Executing [s@ivr-4:5] Set(“DAHDI/i1/6651092702-19”, “_IVR_CONTEXT=ivr-4”) in new stack
– Executing [s@ivr-4:6] GotoIf(“DAHDI/i1/6651092702-19”, “1?begin”) in new stack
– Goto (ivr-4,s,9)
– Executing [s@ivr-4:9] Set(“DAHDI/i1/6651092702-19”, “TIMEOUT(digit)=3”) in new stack
– Digit timeout set to 3.000
– Executing [s@ivr-4:10] Set(“DAHDI/i1/6651092702-19”, “TIMEOUT(response)=2”) in new stack
– Response timeout set to 2.000
– Executing [s@ivr-4:11] Set(“DAHDI/i1/6651092702-19”, “__IVR_RETVM=”) in new stack
– Executing [s@ivr-4:12] ExecIf(“DAHDI/i1/6651092702-19”, “1?Background(custom/amcotj-panasonic-recomendacionChat&custom/amcotj-panasonic-Monitorcalidad)”) in new stack
– <DAHDI/i1/6651092702-19> Playing ‘custom/amcotj-panasonic-recomendacionChat.slin’ (language ‘es’)
– <DAHDI/i1/6651092702-19> Playing ‘custom/amcotj-panasonic-Monitorcalidad.slin’ (language ‘es’)
– Executing [s@ivr-4:13] WaitExten(“DAHDI/i1/6651092702-19”, “,”) in new stack – Timeout on DAHDI/i1/6651092702-19, going to ‘t’
– Executing [t@ivr-4:1] NoOp(“DAHDI/i1/6651092702-19”, "Deleting: ") in new stack
– Executing [t@ivr-4:2] Set(“DAHDI/i1/6651092702-19”, “__NODEST=”) in new stack
– Executing [t@ivr-4:3] Goto(“DAHDI/i1/6651092702-19”, “ext-queues,601,1”) in new stack
– Goto (ext-queues,601,1)
– Executing [601@ext-queues:1] Macro(“DAHDI/i1/6651092702-19”, “user-callerid,”) in new stack
– Executing [s@macro-user-callerid:1] Set(“DAHDI/i1/6651092702-19”, “AMPUSER=6651092702”) in new stack
– Executing [s@macro-user-callerid:2] GotoIf(“DAHDI/i1/6651092702-19”, “0?report”) in new stack
– Executing [s@macro-user-callerid:3] ExecIf(“DAHDI/i1/6651092702-19”, “1?Set(REALCALLERIDNUM=6651092702)”) in new stack
– Executing [s@macro-user-callerid:4] Set(“DAHDI/i1/6651092702-19”, “AMPUSER=”) in new stack
– Executing [s@macro-user-callerid:5] Set(“DAHDI/i1/6651092702-19”, “AMPUSERCIDNAME=”) in new stack
– Executing [s@macro-user-callerid:6] GotoIf(“DAHDI/i1/6651092702-19”, “1?report”) in new stack
– Goto (macro-user-callerid,s,10)
– Executing [s@macro-user-callerid:10] GotoIf(“DAHDI/i1/6651092702-19”, “0?continue”) in new stack
– Executing [s@macro-user-callerid:11] Set(“DAHDI/i1/6651092702-19”, “__TTL=64”) in new stack
– Executing [s@macro-user-callerid:12] GotoIf(“DAHDI/i1/6651092702-19”, “1?continue”) in new stack
– Goto (macro-user-callerid,s,19)
– Executing [s@macro-user-callerid:19] NoOp(“DAHDI/i1/6651092702-19”, “Using CallerID “6651092702” <6651092702>”) in new stack
– Executing [601@ext-queues:2] Answer(“DAHDI/i1/6651092702-19”, “”) in new stack
– Executing [601@ext-queues:3] ExecIf(“DAHDI/i1/6651092702-19”, “1?Set(__QUEUEWAIT=1295299314)”) in new stack
– Executing [601@ext-queues:4] Set(“DAHDI/i1/6651092702-19”, “__BLKVM_OVERRIDE=BLKVM/601/DAHDI/i1/6651092702-19”) in new stack
– Executing [601@ext-queues:5] Set(“DAHDI/i1/6651092702-19”, “__BLKVM_BASE=601”) in new stack
– Executing [601@ext-queues:6] Set(“DAHDI/i1/6651092702-19”, “DB(BLKVM/601/DAHDI/i1/6651092702-19)=TRUE”) in new stack
– Executing [601@ext-queues:7] ExecIf(“DAHDI/i1/6651092702-19”, “1?Set(_DIAL_OPTIONS=trM(auto-blkvm))”) in new stack
– Executing [601@ext-queues:8] Set(“DAHDI/i1/6651092702-19”, “__NODEST=601”) in new stack
– Executing [601@ext-queues:9] GotoIf(“DAHDI/i1/6651092702-19”, “1?REPCID”) in new stack
– Goto (ext-queues,601,14)
– Executing [601@ext-queues:14] NoOp(“DAHDI/i1/6651092702-19”, “CALLERID(name) is 6651092702”) in new stack
– Executing [601@ext-queues:15] Set(“DAHDI/i1/6651092702-19”, “_RGPREFIX=ts:”) in new stack
– Executing [601@ext-queues:16] Set(“DAHDI/i1/6651092702-19”, “CALLERID(name)=ts:6651092702”) in new stack
– Executing [601@ext-queues:17] Set(“DAHDI/i1/6651092702-19”, “MONITOR_FILENAME=/var/spool/asterisk/monitor/q601-20110117-132154-1295299285.132”) in new stack
– Executing [601@ext-queues:18] Set(“DAHDI/i1/6651092702-19”, “__MOHCLASS=amcotj-panasonic-moh”) in new stack
– Executing [601@ext-queues:19] Set(“DAHDI/i1/6651092702-19”, “__CWIGNORE=TRUE”) in new stack
– Executing [601@ext-queues:20] Set(“DAHDI/i1/6651092702-19”, “__CFIGNORE=TRUE”) in new stack
– Executing [601@ext-queues:21] Set(“DAHDI/i1/6651092702-19”, “__FORWARD_CONTEXT=block-cf”) in new stack
– Executing [601@ext-queues:22] Queue(“DAHDI/i1/6651092702-19”, “601,t,”) in new stack
– Started music on hold, class ‘amcotj-panasonic-moh’, on DAHDI/i1/6651092702-19
– Executing [7677@from-queue:1] Set(“Local/7677@from-queue-82ea;2”, “QAGENT=7677”) in new stack
– Executing [7677@from-queue:2] Goto(“Local/7677@from-queue-82ea;2”, “601,1”) in new stack
– Goto (from-queue,601,1)
– Executing [601@from-queue:1] Goto(“Local/7677@from-queue-82ea;2”, “from-queue-exten-internal,7677,1”) in new stack
– Goto (from-queue-exten-internal,7677,1)
– Executing [7677@from-queue-exten-internal:1] Set(“Local/7677@from-queue-82ea;2”, “RingGroupMethod=none”) in new stack
– Executing [7677@from-queue-exten-internal:2] Macro(“Local/7677@from-queue-82ea;2”, “record-enable,7677,IN”) in new stack
– Executing [s@macro-record-enable:1] GotoIf(“Local/7677@from-queue-82ea;2”, “1?check”) in new stack
– Goto (macro-record-enable,s,4)
– Executing [s@macro-record-enable:4] ExecIf(“Local/7677@from-queue-82ea;2”, “0?MacroExit()”) in new stack
– Executing [s@macro-record-enable:5] GotoIf(“Local/7677@from-queue-82ea;2”, “0?Group:OUT”) in new stack
– Goto (macro-record-enable,s,15)
– Executing [s@macro-record-enable:15] GotoIf(“Local/7677@from-queue-82ea;2”, “1?IN”) in new stack
– Goto (macro-record-enable,s,20)
– Executing [s@macro-record-enable:20] ExecIf(“Local/7677@from-queue-82ea;2”, “1?MacroExit()”) in new stack
– Executing [7677@from-queue-exten-internal:3] Macro(“Local/7677@from-queue-82ea;2”, “dial-one,trM(auto-blkvm),7677”) in new stack
– Executing [s@macro-dial-one:1] Set(“Local/7677@from-queue-82ea;2”, “DEXTEN=7677”) in new stack
– Executing [s@macro-dial-one:2] Set(“Local/7677@from-queue-82ea;2”, “DIALSTATUS_CW=”) in new stack
– Executing [s@macro-dial-one:3] GosubIf(“Local/7677@from-queue-82ea;2”, “0?screen,1”) in new stack
– Executing [s@macro-dial-one:4] GosubIf(“Local/7677@from-queue-82ea;2”, “0?cf,1”) in new stack
– Executing [s@macro-dial-one:5] GotoIf(“Local/7677@from-queue-82ea;2”, “1?skip1”) in new stack
– Goto (macro-dial-one,s,8)
– Executing [s@macro-dial-one:8] GotoIf(“Local/7677@from-queue-82ea;2”, “0?nodial”) in new stack
– Executing [s@macro-dial-one:9] GotoIf(“Local/7677@from-queue-82ea;2”, “0?continue”) in new stack
– Executing [s@macro-dial-one:10] Set(“Local/7677@from-queue-82ea;2”, “EXTHASCW=”) in new stack
– Executing [s@macro-dial-one:11] GotoIf(“Local/7677@from-queue-82ea;2”, “1?next1:cwinusebusy”) in new stack
– Goto (macro-dial-one,s,12)
– Executing [s@macro-dial-one:12] GotoIf(“Local/7677@from-queue-82ea;2”, “0?docfu:skip3”) in new stack
– Goto (macro-dial-one,s,16)
– Executing [s@macro-dial-one:16] GotoIf(“Local/7677@from-queue-82ea;2”, “1?next2:continue”) in new stack
– Goto (macro-dial-one,s,17)
– Executing [s@macro-dial-one:17] GotoIf(“Local/7677@from-queue-82ea;2”, “1?continue”) in new stack
– Goto (macro-dial-one,s,25)
– Executing [s@macro-dial-one:25] GotoIf(“Local/7677@from-queue-82ea;2”, “0?nodial”) in new stack
– Executing [s@macro-dial-one:26] GosubIf(“Local/7677@from-queue-82ea;2”, “1?dstring,1:dlocal,1”) in new stack
– Executing [dstring@macro-dial-one:1] Set(“Local/7677@from-queue-82ea;2”, “DSTRING=”) in new stack
– Executing [dstring@macro-dial-one:2] Set(“Local/7677@from-queue-82ea;2”, “DEVICES=7677”) in new stack
– Executing [dstring@macro-dial-one:3] ExecIf(“Local/7677@from-queue-82ea;2”, “0?Return()”) in new stack
– Executing [dstring@macro-dial-one:4] ExecIf(“Local/7677@from-queue-82ea;2”, “0?Set(DEVICES=677)”) in new stack
– Executing [dstring@macro-dial-one:5] Set(“Local/7677@from-queue-82ea;2”, “LOOPCNT=1”) in new stack
– Executing [dstring@macro-dial-one:6] Set(“Local/7677@from-queue-82ea;2”, “ITER=1”) in new stack
– Executing [dstring@macro-dial-one:7] Set(“Local/7677@from-queue-82ea;2”, “THISDIAL=SIP/7677”) in new stack
– Executing [dstring@macro-dial-one:8] GosubIf(“Local/7677@from-queue-82ea;2”, “1?zap2dahdi,1”) in new stack
– Executing [zap2dahdi@macro-dial-one:1] ExecIf(“Local/7677@from-queue-82ea;2”, “0?Return()”) in new stack
– Executing [zap2dahdi@macro-dial-one:2] Set(“Local/7677@from-queue-82ea;2”, “NEWDIAL=”) in new stack
– Executing [zap2dahdi@macro-dial-one:3] Set(“Local/7677@from-queue-82ea;2”, “LOOPCNT2=1”) in new stack
– Executing [zap2dahdi@macro-dial-one:4] Set(“Local/7677@from-queue-82ea;2”, “ITER2=1”) in new stack
– Executing [zap2dahdi@macro-dial-one:5] Set(“Local/7677@from-queue-82ea;2”, “THISPART2=SIP/7677”) in new stack
– Executing [zap2dahdi@macro-dial-one:6] ExecIf(“Local/7677@from-queue-82ea;2”, “0?Set(THISPART2=DAHDI/7677)”) in new stack
– Executing [zap2dahdi@macro-dial-one:7] Set(“Local/7677@from-queue-82ea;2”, “NEWDIAL=SIP/7677&”) in new stack
– Executing [zap2dahdi@macro-dial-one:8] Set(“Local/7677@from-queue-82ea;2”, “ITER2=2”) in new stack
– Executing [zap2dahdi@macro-dial-one:9] GotoIf(“Local/7677@from-queue-82ea;2”, “0?begin2”) in new stack
– Executing [zap2dahdi@macro-dial-one:10] Set(“Local/7677@from-queue-82ea;2”, “THISDIAL=SIP/7677”) in new stack
– Executing [zap2dahdi@macro-dial-one:11] Return(“Local/7677@from-queue-82ea;2”, “”) in new stack
– Executing [dstring@macro-dial-one:9] Set(“Local/7677@from-queue-82ea;2”, “DSTRING=SIP/7677&”) in new stack
– Executing [dstring@macro-dial-one:10] Set(“Local/7677@from-queue-82ea;2”, “ITER=2”) in new stack
– Executing [dstring@macro-dial-one:11] GotoIf(“Local/7677@from-queue-82ea;2”, “0?begin”) in new stack
– Executing [dstring@macro-dial-one:12] Set(“Local/7677@from-queue-82ea;2”, “DSTRING=SIP/7677”) in new stack
– Executing [dstring@macro-dial-one:13] Return(“Local/7677@from-queue-82ea;2”, “”) in new stack
– Executing [s@macro-dial-one:27] GotoIf(“Local/7677@from-queue-82ea;2”, “0?nodial”) in new stack
– Executing [s@macro-dial-one:28] GotoIf(“Local/7677@from-queue-82ea;2”, “1?skiptrace”) in new stack
– Goto (macro-dial-one,s,30)
– Executing [s@macro-dial-one:30] Set(“Local/7677@from-queue-82ea;2”, “D_OPTIONS=trM(auto-blkvm)”) in new stack
– Executing [s@macro-dial-one:31] ExecIf(“Local/7677@from-queue-82ea;2”, “0?SIPAddHeader(Alert-Info: )”) in new stack
– Executing [s@macro-dial-one:32] ExecIf(“Local/7677@from-queue-82ea;2”, “0?SIPAddHeader()”) in new stack
– Executing [s@macro-dial-one:33] ExecIf(“Local/7677@from-queue-82ea;2”, “1?Set(CHANNEL(musicclass)=)”) in new stack
– Executing [s@macro-dial-one:34] GosubIf(“Local/7677@from-queue-82ea;2”, “1?qwait,1”) in new stack
– Executing [qwait@macro-dial-one:1] ExecIf(“Local/7677@from-queue-82ea;2”, “1?Set(__SAVEDCIDNAME=ts:6651092702)”) in new stack
– Executing [qwait@macro-dial-one:2] Set(“Local/7677@from-queue-82ea;2”, “ELAPSED=0”) in new stack
– Executing [qwait@macro-dial-one:3] Set(“Local/7677@from-queue-82ea;2”, “CALLERID(name)=M0:ts:6651092702”) in new stack
– Executing [qwait@macro-dial-one:4] Return(“Local/7677@from-queue-82ea;2”, “”) in new stack
– Executing [s@macro-dial-one:35] Set(“Local/7677@from-queue-82ea;2”, “__CWIGNORE=TRUE”) in new stack
– Executing [s@macro-dial-one:36] Set(“Local/7677@from-queue-82ea;2”, “__KEEPCID=TRUE”) in new stack
– Executing [s@macro-dial-one:37] Dial(“Local/7677@from-queue-82ea;2”, “SIP/7677,trM(auto-blkvm)”) in new stack
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
– Called 7677
– Local/7677@from-queue-82ea;1 is ringing
– SIP/7677-00000048 is ringing
– Local/7677@from-queue-82ea;1 is ringing
– Nobody picked up in 15000 ms
== Spawn extension (macro-dial-one, s, 37) exited non-zero on ‘Local/7677@from-queue-82ea;2’ in macro ‘dial-one’
== Spawn extension (from-queue-exten-internal, 7677, 3) exited non-zero on ‘Local/7677@from-queue-82ea;2’
– Executing [h@from-queue-exten-internal:1] Macro(“Local/7677@from-queue-82ea;2”, “hangupcall,”) in new stack
– Executing [s@macro-hangupcall:1] GotoIf(“Local/7677@from-queue-82ea;2”, “1?skiprg”) in new stack
– Goto (macro-hangupcall,s,4)
– Executing [s@macro-hangupcall:4] GotoIf(“Local/7677@from-queue-82ea;2”, “1?skipblkvm”) in new stack
– Goto (macro-hangupcall,s,7)
– Executing [s@macro-hangupcall:7] GotoIf(“Local/7677@from-queue-82ea;2”, “1?theend”) in new stack
– Goto (macro-hangupcall,s,9)
– Executing [s@macro-hangupcall:9] Hangup(“Local/7677@from-queue-82ea;2”, “”) in new stack
== Spawn extension (macro-hangupcall, s, 9) exited non-zero on ‘Local/7677@from-queue-82ea;2’ in macro ‘hangupcall’
== Spawn extension (from-queue-exten-internal, h, 1) exited non-zero on ‘Local/7677@from-queue-82ea;2’
– Stopped music on hold on DAHDI/i1/6651092702-19
– <DAHDI/i1/6651092702-19> Playing ‘queue-youarenext.gsm’ (language ‘es’)
– Told DAHDI/i1/6651092702-19 in 601 their queue position (which was 1)
– <DAHDI/i1/6651092702-19> Playing ‘queue-thankyou.gsm’ (language’es’ )
– Started music on hold, class ‘amcotj-panasonic-moh’, on DAHDI/i1/6651092702-19
– Executing [7677@from-queue:1] Set(“Local/7677@from-queue-d127;2”, “QAGENT=7677”) in new stack
– Executing [7677@from-queue:2] Goto(“Local/7677@from-queue-d127;2”, “601,1”) in new stack
– Goto (from-queue,601,1)
– Executing [601@from-queue:1] Goto(“Local/7677@from-queue-d127;2”, “from-queue-exten-internal,7677,1”) in new stack
– Goto (from-queue-exten-internal,7677,1)
– Executing [7677@from-queue-exten-internal:1] Set(“Local/7677@from-queue-d127;2”, “RingGroupMethod=none”) in new stack
– Executing [7677@from-queue-exten-internal:2] Macro(“Local/7677@from-queue-d127;2”, “record-enable,7677,IN”) in new stack
– Executing [s@macro-record-enable:1] GotoIf(“Local/7677@from-queue-d127;2”, “1?check”) in new stack
– Goto (macro-record-enable,s,4)
– Executing [s@macro-record-enable:4] ExecIf(“Local/7677@from-queue-d127;2”, “0?MacroExit()”) in new stack
– Executing [s@macro-record-enable:5] GotoIf(“Local/7677@from-queue-d127;2”, “0?Group:OUT”) in new stack
– Goto (macro-record-enable,s,15)
– Executing [s@macro-record-enable:15] GotoIf(“Local/7677@from-queue-d127;2”, “1?IN”) in new stack
– Goto (macro-record-enable,s,20)
– Executing [s@macro-record-enable:20] ExecIf(“Local/7677@from-queue-d127;2”, “1?MacroExit()”) in new stack
– Executing [7677@from-queue-exten-internal:3] Macro(“Local/7677@from-queue-d127;2”, “dial-one,trM(auto-blkvm),7677”) in new stack
– Executing [s@macro-dial-one:1] Set(“Local/7677@from-queue-d127;2”, “DEXTEN=7677”) in new stack
– Executing [s@macro-dial-one:2] Set(“Local/7677@from-queue-d127;2”, “DIALSTATUS_CW=”) in new stack
– Executing [s@macro-dial-one:3] GosubIf(“Local/7677@from-queue-d127;2”, “0?screen,1”) in new stack
– Executing [s@macro-dial-one:4] GosubIf(“Local/7677@from-queue-d127;2”, “0?cf,1”) in new stack
– Executing [s@macro-dial-one:5] GotoIf(“Local/7677@from-queue-d127;2”, “1?skip1”) in new stack
– Goto (macro-dial-one,s,8)
– Executing [s@macro-dial-one:8] GotoIf(“Local/7677@from-queue-d127;2”, “0?nodial”) in new stack
– Executing [s@macro-dial-one:9] GotoIf(“Local/7677@from-queue-d127;2”, “0?continue”) in new stack
– Executing [s@macro-dial-one:10] Set(“Local/7677@from-queue-d127;2”, “EXTHASCW=”) in new stack
– Executing [s@macro-dial-one:11] GotoIf(“Local/7677@from-queue-d127;2”, “1?next1:cwinusebusy”) in new stack
– Goto (macro-dial-one,s,12)
– Executing [s@macro-dial-one:12] GotoIf(“Local/7677@from-queue-d127;2”, “0?docfu:skip3”) in new stack
– Goto (macro-dial-one,s,16)
– Executing [s@macro-dial-one:16] GotoIf(“Local/7677@from-queue-d127;2”, “1?next2:continue”) in new stack
– Goto (macro-dial-one,s,17)
– Executing [s@macro-dial-one:17] GotoIf(“Local/7677@from-queue-d127;2”, “1?continue”) in new stack
– Goto (macro-dial-one,s,25)
– Executing [s@macro-dial-one:25] GotoIf(“Local/7677@from-queue-d127;2”, “0?nodial”) in new stack
– Executing [s@macro-dial-one:26] GosubIf(“Local/7677@from-queue-d127;2”, “1?dstring,1:dlocal,1”) in new stack
– Executing [dstring@macro-dial-one:1] Set(“Local/7677@from-queue-d127;2”, “DSTRING=”) in new stack
– Executing [dstring@macro-dial-one:2] Set(“Local/7677@from-queue-d127;2”, “DEVICES=7677”) in new stack
– Executing [dstring@macro-dial-one:3] ExecIf(“Local/7677@from-queue-d127;2”, “0?Return()”) in new stack
– Executing [dstring@macro-dial-one:4] ExecIf(“Local/7677@from-queue-d127;2”, “0?Set(DEVICES=677)”) in new stack
– Executing [dstring@macro-dial-one:5] Set(“Local/7677@from-queue-d127;2”, “LOOPCNT=1”) in new stack
– Executing [dstring@macro-dial-one:6] Set(“Local/7677@from-queue-d127;2”, “ITER=1”) in new stack
– Executing [dstring@macro-dial-one:7] Set(“Local/7677@from-queue-d127;2”, “THISDIAL=SIP/7677”) in new stack
– Executing [dstring@macro-dial-one:8] GosubIf(“Local/7677@from-queue-d127;2”, “1?zap2dahdi,1”) in new stack
– Executing [zap2dahdi@macro-dial-one:1] ExecIf(“Local/7677@from-queue-d127;2”, “0?Return()”) in new stack
– Executing [zap2dahdi@macro-dial-one:2] Set(“Local/7677@from-queue-d127;2”, “NEWDIAL=”) in new stack
– Executing [zap2dahdi@macro-dial-one:3] Set(“Local/7677@from-queue-d127;2”, “LOOPCNT2=1”) in new stack
– Executing [zap2dahdi@macro-dial-one:4] Set(“Local/7677@from-queue-d127;2”, “ITER2=1”) in new stack
– Executing [zap2dahdi@macro-dial-one:5] Set(“Local/7677@from-queue-d127;2”, “THISPART2=SIP/7677”) in new stack
– Executing [zap2dahdi@macro-dial-one:6] ExecIf(“Local/7677@from-queue-d127;2”, “0?Set(THISPART2=DAHDI/7677)”) in new stack
– Executing [zap2dahdi@macro-dial-one:7] Set(“Local/7677@from-queue-d127;2”, “NEWDIAL=SIP/7677&”) in new stack
– Executing [zap2dahdi@macro-dial-one:8] Set(“Local/7677@from-queue-d127;2”, “ITER2=2”) in new stack
– Executing [zap2dahdi@macro-dial-one:9] GotoIf(“Local/7677@from-queue-d127;2”, “0?begin2”) in new stack
– Executing [zap2dahdi@macro-dial-one:10] Set(“Local/7677@from-queue-d127;2”, “THISDIAL=SIP/7677”) in new stack
– Executing [zap2dahdi@macro-dial-one:11] Return(“Local/7677@from-queue-d127;2”, “”) in new stack
– Executing [dstring@macro-dial-one:9] Set(“Local/7677@from-queue-d127;2”, “DSTRING=SIP/7677&”) in new stack
– Executing [dstring@macro-dial-one:10] Set(“Local/7677@from-queue-d127;2”, “ITER=2”) in new stack
– Executing [dstring@macro-dial-one:11] GotoIf(“Local/7677@from-queue-d127;2”, “0?begin”) in new stack
– Executing [dstring@macro-dial-one:12] Set(“Local/7677@from-queue-d127;2”, “DSTRING=SIP/7677”) in new stack
– Executing [dstring@macro-dial-one:13] Return(“Local/7677@from-queue-d127;2”, “”) in new stack
– Executing [s@macro-dial-one:27] GotoIf(“Local/7677@from-queue-d127;2”, “0?nodial”) in new stack
– Executing [s@macro-dial-one:28] GotoIf(“Local/7677@from-queue-d127;2”, “1?skiptrace”) in new stack
– Goto (macro-dial-one,s,30)
– Executing [s@macro-dial-one:30] Set(“Local/7677@from-queue-d127;2”, “D_OPTIONS=trM(auto-blkvm)”) in new stack
– Executing [s@macro-dial-one:31] ExecIf(“Local/7677@from-queue-d127;2”, “0?SIPAddHeader(Alert-Info: )”) in new stack
– Executing [s@macro-dial-one:32] ExecIf(“Local/7677@from-queue-d127;2”, “0?SIPAddHeader()”) in new stack
– Executing [s@macro-dial-one:33] ExecIf(“Local/7677@from-queue-d127;2”, “1?Set(CHANNEL(musicclass)=)”) in new stack
– Executing [s@macro-dial-one:34] GosubIf(“Local/7677@from-queue-d127;2”, “1?qwait,1”) in new stack
– Executing [qwait@macro-dial-one:1] ExecIf(“Local/7677@from-queue-d127;2”, “1?Set(__SAVEDCIDNAME=ts:6651092702)”) in new stack
– Executing [qwait@macro-dial-one:2] Set(“Local/7677@from-queue-d127;2”, “ELAPSED=0”) in new stack
– Executing [qwait@macro-dial-one:3] Set(“Local/7677@from-queue-d127;2”, “CALLERID(name)=M0:ts:6651092702”) in new stack
– Executing [qwait@macro-dial-one:4] Return(“Local/7677@from-queue-d127;2”, “”) in new stack
– Executing [s@macro-dial-one:35] Set(“Local/7677@from-queue-d127;2”, “__CWIGNORE=TRUE”) in new stack
– Executing [s@macro-dial-one:36] Set(“Local/7677@from-queue-d127;2”, “__KEEPCID=TRUE”) in new stack
– Executing [s@macro-dial-one:37] Dial(“Local/7677@from-queue-d127;2”, “SIP/7677,trM(auto-blkvm)”) in new stack
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
– Called 7677
– Local/7677@from-queue-d127;1 is ringing
– SIP/7677-00000049 is ringing
– Local/7677@from-queue-d127;1 is ringing
– SIP/7677-00000049 answered Local/7677@from-queue-d127;2
– Executing [s@macro-auto-blkvm:1] Set(“SIP/7677-00000049”, “__MACRO_RESULT=”) in new stack
– Executing [s@macro-auto-blkvm:2] NoOp(“SIP/7677-00000049”, “Deleting: BLKVM/601/DAHDI/i1/6651092702-19 TRUE”) in new stack
– Local/7677@from-queue-d127;1 answered DAHDI/i1/6651092702-19
– <Local/7677@from-queue-d127;1> Playing ‘queue-reporthold.gsm’ (language ‘en’)
– <Local/7677@from-queue-d127;1> Playing ‘digits/30.gsm’ (language ‘en’)
– <Local/7677@from-queue-d127;1> Playing ‘digits/1.gsm’ (language ‘en’)
– <Local/7677@from-queue-d127;1> Playing ‘queue-seconds.gsm’ (language ‘en’)
– Stopped music on hold on DAHDI/i1/6651092702-19
== Begin MixMonitor Recording DAHDI/i1/6651092702-19

Philippe,
Hi. Sorry about the delay. I finally had a chance to get back to this and wanted to test what you suggested.
Turns out that now the language setting is not “holding” even in the freepbx interface. The day after I wrote the original message I upgraded my system using PiaF update-source (to get rid of the blind transfer bug).
I am not sure what freepbx version I was using when i wrote this post (I think it was FreePBX Version = 2.8.0.4), but the update-source might have updated freepbx (i dont know if its one of the things it does. The point is, I am now on 2.8.0.7 and there is a different bug now…still related to the language.
If I go to inbound route and fill in the language field with “es”, then press submit, the setting disappears after the page refresh.
I put “es” press submit…the same inbound route shows up again in the screen and “es” is still in the field.
I press Apply Changes…page returns and “es” is still there.
I prees either browser refresh or click on the name of the route on right side list of inbound routes…and when the page returns, the field is empty.
Because of this problem I was not able to test what you suggested.
I ran an “amportal chown” just to make sure its not write permissions somewhere…but it made no difference.
thanks,
-gk
EDIT: i just checked again, i think its the core that got updated, not the freepbx interface. i read the version info from the module admin.
Honestly iam a bit confused now and dont know if it did upgrade or not, but the bug is indeed new. When I wrote the original message in this thread last tuesday the setting would stay.

gk,

have a closer look:

exten => s,n,Dial(${DSTRING},${ARG1},${D_OPTIONS})

p.s. sorry maybe I was being a bit cryptic in the original message :frowning:

Philippe,]
Just to make things clear.
The caller waiting in queue is getting the prompts in the correct language.
The agent gets the wrong language prompts when he gets the call.
I agree with what you say about the agent receving the prompt in the language of the caller…since this is an all spanish inbound route and agent queue
I first tried just setting the inbound route…since that didnt work, thats
when i tested setting the agents extension to spanish (and tried it with
the voicemail which indeed now works in spanish).

As far as the test goes, i want to do that now.
I am looking at extensions_additional.conf right now. There is no "Dial(…"
command in the macro-dial-one.
here is what I have.
I apologize but I dont understand the code very well so I cant figure out where
to put the test lines.

[macro-dial-one]
include => macro-dial-one-custom
exten => s,1,Set(DEXTEN=${ARG3})
exten => s,n,Set(DIALSTATUS_CW=)
exten => s,n,GosubIf($["${FROM_DID}"!="" & “${SCREEN}”="" & “${DB(AMPUSER/${DEXTEN}/screen)}”!=""]?screen,1)
exten => s,n,GosubIf($["${DB(CF/${DEXTEN})}"!=""]?cf,1)
exten => s,n,GotoIf($["${DEXTEN:-1}"="#" | “${DB(DND/${DEXTEN})}”=""]?skip1)
exten => s,n,Set(DEXTEN=)
exten => s,n,Set(DIALSTATUS=BUSY)
exten => s,n(skip1),GotoIf($["${DEXTEN}"=""]?nodial)
exten => s,n,GotoIf($["${DEXTEN:-1}"="#"]?continue)
exten => s,n,Set(EXTHASCW=${IF($["${CWIGNORE}"!=""]?"":${DB(CW/${DEXTEN})})})
exten => s,n,GotoIf($["${EXTHASCW}"="" | “${DB(CFB/${DEXTEN})}”!="" | “${DB(CFU/${DEXTEN})}”!=""]?next1:cwinusebusy)
exten => s,n(next1),GotoIf($["${DB(CFU/${DEXTEN})}"!="" & ("${EXTENSION_STATE(${DEXTEN})}"=“UNAVAILABLE” | “${EXTENSION_STATE(${DEXTEN})}”=“UNKNOWN”)]?docfu:skip3)
exten => s,n(docfu),Set(DEXTEN=)
exten => s,n,Set(DIALSTATUS=NOANSWER)
exten => s,n,Goto(nodial)
exten => s,n(skip3),GotoIf($["${EXTHASCW}"="" | “${DB(CFB/${DEXTEN})}”!=""]?next2:continue)
exten => s,n(next2),GotoIf($["${EXTENSION_STATE(${DEXTEN})}"=“NOT_INUSE” | “${EXTENSION_STATE(${DEXTEN})}”=“UNAVAILABLE” | “${EXTENSION_STATE(${DEXTEN})}”=“UNKNOWN”]?continue)
exten => s,n,ExecIf($["${DB(CFB/${DEXTEN})}"!="" & “${CFIGNORE}”=""]?Set(DIALSTATUS=BUSY))
exten => s,n,GotoIf($["${EXTHASCW}"!="" | “${DEXTEN:-1}”="#"]?cwinusebusy)
exten => s,n,Set(DEXTEN=)
exten => s,n,Set(DIALSTATUS=BUSY)
exten => s,n,Goto(nodial)
exten => s,n(cwinusebusy),GotoIf($["${EXTHASCW}"!="" & “${CWINUSEBUSY}”!=""]?next3:continue)
exten => s,n(next3),ExecIf($["${EXTENSION_STATE(${DEXTEN})}"!=“UNAVAILABLE” & “${EXTENSION_STATE(${DEXTEN})}”!=“NOT_INUSE” & “${EXTENSION_STATE(${DEXTEN})}”!=“UNKNOWN”]?Set(DIALSTATUS_CW=BUSY))
exten => s,n(continue),GotoIf($["${DEXTEN}"=""]?nodial)
exten => s,n,GosubIf($["${DEXTEN:-1}"!="#"]?dstring,1:dlocal,1)
exten => s,n,GotoIf($[${LEN(${DSTRING})}=0]?nodial)
exten => s,n,GotoIf($["${DEXTEN:-1}"!="#"]?skiptrace)
exten => s,n,GosubIf($[${REGEX("^[+]?[0-9]+$" ${CALLERID(number)})} = 1]?ctset,1:ctclear,1)
exten => s,n(skiptrace),Set(D_OPTIONS=${IF($["${NODEST}"!="" & ${REGEX("(M[(]auto-blkvm[)])" ${ARG2})} != 1]?${ARG2}M(auto-blkvm):${ARG2})})
exten => s,n,ExecIf($["${ALERT_INFO}"!=""]?SIPAddHeader(Alert-Info: ${ALERT_INFO}))
exten => s,n,ExecIf($["${SIPADDHEADER}"!=""]?SIPAddHeader(${SIPADDHEADER}))
exten => s,n,ExecIf($["${MOHCLASS}"!=""]?Set(CHANNEL(musicclass)=${MEETME_MUSIC}))
exten => s,n,GosubIf($["${QUEUEWAIT}"!=""]?qwait,1)
exten => s,n,Set(__CWIGNORE=${CWIGNORE})
exten => s,n,Set(__KEEPCID=TRUE)
exten => s,n,Dial(${DSTRING},${ARG1},${D_OPTIONS})
exten => s,n,ExecIf($["${DIALSTATUS_CW}"!=""]?Set(DIALSTATUS=${DIALSTATUS_CW}))
exten => s,n,GosubIf($["${SCREEN}"!=""|"${DIALSTATUS}"=“ANSWER”]?s-${DIALSTATUS},1)
exten => s,n,MacroExit()
exten => s,n(nodial),ExecIf($["${DIALSTATUS}" = “”]?Set(DIALSTATUS=NOANSWER))
exten => s,n,Noop(Returned from dial-one with nothing to call and DIALSTATUS: ${DIALSTATUS})
exten => s,n,MacroExit()
exten => h,1,Macro(hangupcall,)
exten => screen,1,GotoIf($["${DB(AMPUSER/${DEXTEN}/screen)}"!=“nomemory” | “${CALLERID(number)}”=""]?memory)
exten => screen,n,ExecIf($[${REGEX("^[0-9a-zA-Z ]+$" ${CALLERID(number)})} = 1]?System(rm -f ${ASTVARLIBDIR}/sounds/priv-callerintros/${CALLERID(number)}.*))
exten => screen,n(memory),Set(__SCREEN=${DB(AMPUSER/${DEXTEN}/screen)})
exten => screen,n,Set(__SCREEN_EXTEN=${DEXTEN})
exten => screen,n,Set(ARG2=${ARG2}p)
exten => screen,n,Return()
exten => cf,1,Set(CFAMPUSER=${IF($["${AMPUSER}"=""]?${CALLERID(number)}:${AMPUSER})})
exten => cf,n,ExecIf($["${DB(CF/${DEXTEN})}"="${CFAMPUSER}" | “${DB(CF/${DEXTEN})}”="${REALCALLERIDNUM}" | “${CUT(CUT(BLINDTRANSFER,-,1),/,1)}” = “${DB(CF/${DEXTEN})}” | “${DEXTEN}”="${DB(CF/${DEXTEN})}"]?Return())
exten => cf,n,Set(DEXTEN=${IF($["${CFIGNORE}"=""]?"${DB(CF/${DEXTEN})}#":"")})
exten => cf,n,ExecIf($["${DEXTEN}"!=""]?Return())
exten => cf,n,Set(DIALSTATUS=NOANSWER)
exten => cf,n,Return()
exten => qwait,1,ExecIf($["${SAVEDCIDNAME}" = “”]?Set(__SAVEDCIDNAME=${CALLERID(name)}))
exten => qwait,n,Set(ELAPSED=${MATH($[${EPOCH}+30-${QUEUEWAIT}]/60,int)})
exten => qwait,n,Set(CALLERID(name)=M${ELAPSED}:${SAVEDCIDNAME})
exten => qwait,n,Return()
exten => ctset,1,Set(DB(CALLTRACE/${DEXTEN})=${CALLERID(number)})
exten => ctset,n,Return()
exten => ctclear,1,Noop(Deleting: CALLTRACE/${DEXTEN} ${DB_DELETE(CALLTRACE/${DEXTEN})})
exten => ctclear,n,Return()
exten => dstring,1,Set(DSTRING=)
exten => dstring,n,Set(DEVICES=${DB(AMPUSER/${DEXTEN}/device)})
exten => dstring,n,ExecIf($["${DEVICES}"=""]?Return())
exten => dstring,n,ExecIf($["${DEVICES:0:1}"="&"]?Set(DEVICES=${DEVICES:1}))
exten => dstring,n,Set(LOOPCNT=${FIELDQTY(DEVICES,&)})
exten => dstring,n,Set(ITER=1)
exten => dstring,n(begin),Set(THISDIAL=${DB(DEVICE/${CUT(DEVICES,&,${ITER})}/dial)})
exten => dstring,n,GosubIf($["${ASTCHANDAHDI}" != “”]?zap2dahdi,1)
exten => dstring,n,Set(DSTRING=${DSTRING}${THISDIAL}&)
exten => dstring,n,Set(ITER=$[${ITER}+1])
exten => dstring,n,GotoIf($[${ITER}<=${LOOPCNT}]?begin)
exten => dstring,n,Set(DSTRING=${DSTRING:0:$[${LEN(${DSTRING})}-1]})
exten => dstring,n,Return()
exten => dlocal,1,Set(DSTRING=Local/${DEXTEN:0:${MATH(${LEN(${DEXTEN})}-1,int)}}@from-internal/n)
exten => dlocal,n,Return()
exten => zap2dahdi,1,ExecIf($["${THISDIAL}" = “”]?Return())
exten => zap2dahdi,n,Set(NEWDIAL=)
exten => zap2dahdi,n,Set(LOOPCNT2=${FIELDQTY(THISDIAL,&)})
exten => zap2dahdi,n,Set(ITER2=1)
exten => zap2dahdi,n(begin2),Set(THISPART2=${CUT(THISDIAL,&,${ITER2})})
exten => zap2dahdi,n,ExecIf($["${THISPART2:0:3}" = “ZAP”]?Set(THISPART2=DAHDI${THISPART2:3}))
exten => zap2dahdi,n,Set(NEWDIAL=${NEWDIAL}${THISPART2}&)
exten => zap2dahdi,n,Set(ITER2=$[${ITER2} + 1])
exten => zap2dahdi,n,GotoIf($[${ITER2} <= ${LOOPCNT2}]?begin2)
exten => zap2dahdi,n,Set(THISDIAL=${NEWDIAL:0:$[${LEN(${NEWDIAL})}-1]})
exten => zap2dahdi,n,Return()
exten => s-NOANSWER,1,Macro(vm,${SCREEN_EXTEN},BUSY,${IVR_RETVM})
exten => s-NOANSWER,n,ExecIf($["${IVR_RETVM}"!=“RETURN” | “${IVR_CONTEXT}”=""]?Hangup())
exten => s-NOANSWER,n,Return()
exten => s-TORTURE,1,Goto(app-blackhole,musiconhold,1)
exten => s-TORTURE,n,Macro(hangupcall,)
exten => s-DONTCALL,1,Answer
exten => s-DONTCALL,n,Wait(1)
exten => s-DONTCALL,n,Zapateller()
exten => s-DONTCALL,n,Playback(ss-noservice)
exten => s-DONTCALL,n,Macro(hangupcall,)

; end of [macro-dial-one]

thanks,
-gk

Hi, I will try this and report on it.
as far as
"I suspect what is happening is that the Channel language which you are apparently setting prior to calling the Queue application (with the language module I assume)"
no, i am not using the language module.
I just set the language in the “inbound route” AND for the “extension”. I would assume all prompts to that extension should be in spanish because of that. Maybe I am misunderstanding this?
-gk

I forgot that you can set the language in the inbound route as well.

(Though, that’s actually the language module doing it, it’s a hook :slight_smile:

The issue is that the extension’s language is triggered when they make a call. The language of the channel is based on what you set on the incoming route. All of this is also a function of feature’s within the Queues application. I suspect it uses the channel language (but your test will determine that). It could be possible to determine the language of the agent being called and then use a post answer macro to set the channel language prior to the Queue’s application playing that message, though it is not clear if that would override or not what the Queues module is choosing.

IMHO - I would say that what irregardless of the user’s language settings, you would want the language set on the queue to be the language that is used in that situation to the agent. An example is bi-lingual agent who takes calls from a Queue where calls can come in using one of two language. (in your case, maybe you had two DIDs one for each language). As an agent, I would want to hear that pre-answer message in the language that the client who I am about to be connected to is expecting. Call it a subtle prompt for me to answer in that language since otherwise I would not know which language they had just called in.

Anyhow … thanks in advance for checking on that.

gkrawiec,

please put the following line inside of macro-dial-one in extensions_additional.conf just prior to the call to the Dial(…) command, and then do a “module reload” from the CLI:

exten => s,n,Noop(Language is: ${CHANNEL(language)});

If the channel reports “en” then report a bug about this in the tracker with a reference back to this thread.

I suspect what is happening is that the Channel language which you are apparently setting prior to calling the Queue application (with the language module I assume) does not survive the ‘inheritance’ level that occurs when the Queue application fires off the subsequent call to the agent.

If that is the case, then we will probably have to track the language in an inheritable channel variable and set it prior to calling the agent. You can test to see if setting the channel prior to calling the agent would solve the issue by adding after the above Noop() (and still before the channel is answered:

exten => s,n,Set(CHANNEL(language)=es);