[Home]

Summary:ASTERISK-13677: playback and set language issue
Reporter:Giedrius (voipas)Labels:
Date Opened:2009-03-02 01:37:42.000-0600Date Closed:2011-06-07 14:07:56
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Applications/app_playback
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:Hello,

 I'm migrating from Asterisk 1.4.21.2 to Asterisk 1.6.0.6. And after migrating my IVR doesn't work anymore. My IVR is a multi-language and main issue is that Playback only plays prompts in English. This is my test dialplan:

[test-prompt]

exten => s,1,Answer
exten => s,n,Wait(1)
exten => s,n(begin),Set(TIMEOUT(digit)=3)
exten => s,n,Noop(New Call)
exten => s,n,Set(TIMEOUT(response)=60)
exten => s,n,Background(choose_language)
exten => s,n,WaitExten(4)

exten => 1,1,Noop(Pressed 1)
exten => 1,n,Set(CHANNEL(language)=lt)
exten => 1,n,Noop(Choose language LT)
exten => 1,n,Goto(123,1)

exten => 2,1,Noop(Pressed 2)
exten => 2,n,Set(CHANNEL(language)=en)
exten => 2,n,Noop(Choose language EN)
exten => 2,n,Goto(123,1)

exten => 123,1,Playback(test/enter-conf-pin-number_8)

 In /var/lib/asterisk/sounds directory I've created test directory and lt subdirectory:
find /var/lib/asterisk/sounds/test -name '*.wav'
/var/lib/asterisk/sounds/test/lt/enter-conf-pin-number_8.wav
/var/lib/asterisk/sounds/test/enter-conf-pin-number_8.wav


 The ouptut of Asterisk is:
[Mar  2 09:23:47] VERBOSE[28399] logger.c:   == Using SIP RTP CoS mark 5
[Mar  2 09:23:47] VERBOSE[32265] logger.c:     -- Executing [123456789@from-trunk:1] Goto("SIP/111-ac15baf0", "test-prompt,s,1") in new stack
[Mar  2 09:23:47] VERBOSE[32265] logger.c:     -- Goto (test-prompt,s,1)
[Mar  2 09:23:47] VERBOSE[32265] logger.c:     -- Executing [s@test-prompt:1] Answer("SIP/111-ac15baf0", "") in new stack
[Mar  2 09:23:47] VERBOSE[32265] logger.c:     -- Executing [s@test-prompt:2] Wait("SIP/111-ac15baf0", "1") in new stack
[Mar  2 09:23:48] VERBOSE[32265] logger.c:     -- Executing [s@test-prompt:3] Set("SIP/111-ac15baf0", "TIMEOUT(digit)=3") in new stack
[Mar  2 09:23:48] VERBOSE[32265] logger.c:     -- Digit timeout set to 3
[Mar  2 09:23:48] VERBOSE[32265] logger.c:     -- Executing [s@test-prompt:4] NoOp("SIP/111-ac15baf0", "New Call") in new stack
[Mar  2 09:23:48] VERBOSE[32265] logger.c:     -- Executing [s@test-prompt:5] Set("SIP/111-ac15baf0", "TIMEOUT(response)=60") in new stack
[Mar  2 09:23:48] VERBOSE[32265] logger.c:     -- Response timeout set to 60
[Mar  2 09:23:48] VERBOSE[32265] logger.c:     -- Executing [s@test-prompt:6] BackGround("SIP/111-ac15baf0", "choose_language") in new stack
[Mar  2 09:23:48] VERBOSE[32265] logger.c:     -- <SIP/111-ac15baf0> Playing 'choose_language.slin' (language 'en')
[Mar  2 09:24:06] VERBOSE[32265] logger.c:   == CDR updated on SIP/111-ac15baf0
[Mar  2 09:24:06] VERBOSE[32265] logger.c:     -- Executing [1@test-prompt:1] NoOp("SIP/111-ac15baf0", "Pressed 1") in new stack
[Mar  2 09:24:06] VERBOSE[32265] logger.c:     -- Executing [1@test-prompt:2] Set("SIP/111-ac15baf0", "CHANNEL(language)=lt") in new stack
[Mar  2 09:24:06] VERBOSE[32265] logger.c:     -- Executing [1@test-prompt:3] NoOp("SIP/111-ac15baf0", "Choose language LT") in new stack
[Mar  2 09:24:06] VERBOSE[32265] logger.c:     -- Executing [1@test-prompt:4] Goto("SIP/111-ac15baf0", "123,1") in new stack
[Mar  2 09:24:06] VERBOSE[32265] logger.c:     -- Goto (test-prompt,123,1)
[Mar  2 09:24:06] VERBOSE[32265] logger.c:     -- Executing [123@test-prompt:1] Playback("SIP/111-ac15baf0", "test/enter-conf-pin-number_8") in new stack
[Mar  2 09:24:06] VERBOSE[32265] logger.c:     -- <SIP/111-ac15baf0> Playing 'test/enter-conf-pin-number_8.slin' (language 'lt')
[Mar  2 09:24:10] VERBOSE[32265] logger.c:     -- Auto fallthrough, channel 'SIP/111-ac15baf0' status is 'UNKNOWN'

  From output you can see, that I pressed "1" and set language to "lt". But Playback plays /var/lib/asterisk/sounds/test/enter-conf-pin-number_8.wav promt (not /var/lib/asterisk/sounds/test/lt/enter-conf-pin-number_8.wav)! In Asterisk 1.4.21.2 version worked fine for me.

Thanks
Comments:By: Giedrius (voipas) 2009-03-02 06:56:53.000-0600

I have solved this problem, just needed to modify in file.c :
int ast_language_is_prefix = 0

You can close this ticket

By: Joshua C. Colp (jcolp) 2009-03-02 08:31:59.000-0600

Closed per reporter. Additional note:

That option is configurable in asterisk.conf under the options context.

languageprefix=yes
languageprefix=no