Черга виходу зірочки та введення черги без втрати позиції


1

Я хочу дати своїм клієнтам можливість натиснути 1, якщо вони хочуть слухати музику не в очікуванні. Іноді дратує продовжувати слухати ту саму пісню, хай. Все що я маю:

queues.conf:

[general]
    persistentmembers=yes

[Support]
    context=Common-Queue    
    member=>SIP/Jhon
    member=>SIP/Tom

extensions.conf:

...
same => n,Playback(Press1ToListenToNoMusicOnHold) ; plays audio file that says that caller may press 1 if he wishes to listen to no music on hold
same => n,Queue(SupportQueue,Tt)  ; option T is so that caller can exit queue by pressing digits jumping to an extension
... etc

; context Common-Queue
[Common-Queue]
exten => 1,1,NoOp(enable user to not listen to music)
same => n,Set(CHANNEL(musicclass)=no-music) ; 
same => n,Queue(Support) ; enter support queue again
same => n,Hangup()

З цим сценарієм музика на утриманні видаляється, якщо користувач натискає 1, а користувач повертається до черги підтримки (це саме те, що мені потрібно). Проблема цього рішення полягає в тому, що якщо користувач натискає 1, він втрачає своє місце у черзі . Як я можу вирішити цю проблему без втрати клієнтом своїх позицій у черзі? Я хочу надати своїм клієнтам можливість чекати, коли музика не затримується, не втрачаючи місця в черзі.

Відповіді:


1

Нарешті знайшов спосіб це зробити. Якщо ви подивитесь на команду черги, вона виглядає так:

Черга (ім'я черги [, параметри [, URL [, диспетчер [, тайм-аут [, AGI [, макрос [, gosub [, правило [, позиція]]]]]]]]]])

Коли ви виходите з черги, змінна QUEUEPOSITIONзаповнюється позицією, яку ви мали у черзі. Таким чином, рішення полягає в повторному введенні черги підтримки у вигляді:

 same => n,Queue(Support,,,,,,,,,${QUEUEPOSITION})
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.