[asterisk-bugs] [Asterisk 0012489]: Queue language is not inherited or available to answering interface

noreply at bugs.digium.com noreply at bugs.digium.com
Tue Apr 22 04:24:09 CDT 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=12489 
====================================================================== 
Reported By:                bcnit
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   12489
Category:                   Applications/app_queue
Reproducibility:            always
Severity:                   tweak
Priority:                   normal
Status:                     new
Asterisk Version:           1.6.0-beta7.1 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             04-22-2008 03:57 CDT
Last Modified:              04-22-2008 04:24 CDT
====================================================================== 
Summary:                    Queue language is not inherited or available to
answering interface
Description: 
The problem is that when an interface answers a call from a queue, the
language used to play the 'announce' message to the callee is the default
language for that interface and not the language defined in the channel
which placed the call into the queue.

This is not the case for the A() parameter in the Dial() application,
which plays the file in the language of the source and not the destination
interface.

So if a call has the language set as 'fr' and is placed into the queue
with 'Queue(one,,calltype)', for example, all the announcements to the
caller are made in the 'fr' language, but when the language of the
interface answering the call is 'en', they hear 'en/calltype' and not
'fr/calltype'.

I see three ways around this problem. One of which I can probably hack
together myself and two which I probably can't.

The first is to create a variable 'QUEUELANGUAGE' when 'setqueuevar' is
'yes' and then have a macro/subroutine use this variable set the language
on the answering channel as appropriate.

The second would be to have some way of selectively inheriting the
language from the calling channel. This one I have no idea how to
implement!!

The third would be to duplicate the behaviour of the A() parameter of the
Dial() application and use the language from the caller's channel to play
the announcement.

I don't want to do anything without discussing this with everybody first,
but I've just found a different bug which may make the first option even
easier for me!

So, what's the best way forward?
====================================================================== 

---------------------------------------------------------------------- 
 bcnit - 04-22-08 04:24  
---------------------------------------------------------------------- 
The first option isn't viable. The macro is run _after_ the announcement is
made.

A short term fix is to prefix the language onto the announcement as
follows:

Queue(queuename,,,${CHANNEL(language)}/calltype)

which isn't ideal as this has to be done in the dialplan rather than just
set

announce=calltype

within the queue definition. 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
04-22-08 04:24  bcnit          Note Added: 0085802                          
======================================================================




More information about the asterisk-bugs mailing list