Asterisk 退出队列并重新进入队列而不会丢失位置

Asterisk 退出队列并重新进入队列而不会丢失位置

我想让我的客户可以选择按 1,如果他们不想听等待中的音乐。有时一直听同一首歌很烦人,哈哈。无论如何,这就是我所拥有的:

队列.conf:

[general]
    persistentmembers=yes

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

扩展.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[,announceoverride[,超时[,AGI[,宏[,gosub[,规则[,位置]]]]]]]]])

当您退出队列时,变量QUEUEPOSITION将填充您在队列中的位置。因此解决方案是重新进入支持队列:

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

相关内容