web-dev-qa-db-ja.com

アスタリスクはキューを終了し、位置を失うことなくキューに再入します

保留中の音楽を聴きたくない場合は、顧客に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
Tono Nam

ついにそれを行う方法を見つけました。 queueコマンドを見ると、次のようになっています。

Queue(queuename [、options [、URL [、announceoverride [、timeout [、AGI [、macro [、gosub [、rule [、position]]]]]]]]])

キューを終了すると、変数QUEUEPOSITIONにキューにあった位置が入力されます。 したがって、解決策は次のようにサポートキューに再度入ることです:

 same => n,Queue(Support,,,,,,,,,${QUEUEPOSITION})
1
Tono Nam