Asterisk 如何从停车场转移到排队?
我用C#AsterNET来管理我的星号命令和事件,现在我有了一个新的功能 这很简单(我想),但我现在很累 脚本 我有两个队列,8100和8300,两个扩展是8101和8301。当我有一个来自PSTN的呼叫时,它被驱动到8100队列。当8101分机可用时,我会将此分机添加到8100队列中,因此呼叫PSTN设备将重定向到此8101分机 在这里之前一切都很顺利 有时,我确实会将呼叫设备停驻,并使用我的应用程序让8301知道,因此使用相同应用程序的8301用户可以发送命令,要求将停驻的频道重定向到他的SIP电话。工作也很好 范围 现在我想拥有一些功能,让8101将这个呼叫设备转移到我的另一个队列8300。所以我试着重用我的停驻方法和重定向方法 问题 我可以正常停车,但当我尝试从停车重定向到队列时,呼叫设备刚刚断开,连接丢失Asterisk 如何从停车场转移到排队?,asterisk,asteriskami,asternet,Asterisk,Asteriskami,Asternet,我用C#AsterNET来管理我的星号命令和事件,现在我有了一个新的功能 这很简单(我想),但我现在很累 脚本 我有两个队列,8100和8300,两个扩展是8101和8301。当我有一个来自PSTN的呼叫时,它被驱动到8100队列。当8101分机可用时,我会将此分机添加到8100队列中,因此呼叫PSTN设备将重定向到此8101分机 在这里之前一切都很顺利 有时,我确实会将呼叫设备停驻,并使用我的应用程序让8301知道,因此使用相同应用程序的8301用户可以发送命令,要求将停驻的频道重定向到他的S
如何将停靠的呼叫转移到我的队列或直接转移到队列(更好)无需发起?只需等待而不是停车,并列出您自己的呼叫列表。只需等待而不是停车,并列出您自己的呼叫列表。要转移到队列中,我可以按照星号网站上的说明进行盲转。以下连结: 为了使用AsterNET实现这一点,我可以使用我使用的相同重定向操作,但我确实需要更改上下文。它不能是上下文的默认值,因为默认情况下,我们让Asterisk管理它,但不知何故,它无法按照我的经验处理。因此,需要明确规定为内部转移。此上下文传输后引发的事件是Manager\u BlindTransfer 因此,在调试引发的事件方法时,我使用SIP电话成功地转接了一个电话,这样我就可以捕获在中使用的上下文。使用正确的上下文
ManagerConnection manager = new ManagerConnection(address, port, user, password);
manager.BlindTransfer += Manager_BlindTransfer;
private void Manager_BlindTransfer(object sender, BlindTransferEvent e)
{
}
在此之后,我创建了另一个方法,使用正确的上下文将其直接传输到队列
internal void TransferToQueue(string channel, string queue)
{
RedirectAction ma = new RedirectAction
{
Priority = priority,
Context = "from-internal-xfer",
Channel = channel,
Exten = queue
};
ManagerResponse mr = manager.SendAction(ma);
}
TransferToQueue("abc123456", "8300")
总结
这只是一个正确使用上下文的问题
从内部xfer转移到队列,我可以按照星号网站上的说明进行盲转移。以下连结: 为了使用AsterNET实现这一点,我可以使用我使用的相同重定向操作,但我确实需要更改上下文。它不能是上下文的默认值,因为默认情况下,我们让Asterisk管理它,但不知何故,它无法按照我的经验处理。因此,需要明确规定为内部转移。此上下文传输后引发的事件是Manager\u BlindTransfer 因此,在调试引发的事件方法时,我使用SIP电话成功地转接了一个电话,这样我就可以捕获在中使用的上下文。使用正确的上下文
ManagerConnection manager = new ManagerConnection(address, port, user, password);
manager.BlindTransfer += Manager_BlindTransfer;
private void Manager_BlindTransfer(object sender, BlindTransferEvent e)
{
}
在此之后,我创建了另一个方法,使用正确的上下文将其直接传输到队列
internal void TransferToQueue(string channel, string queue)
{
RedirectAction ma = new RedirectAction
{
Priority = priority,
Context = "from-internal-xfer",
Channel = channel,
Exten = queue
};
ManagerResponse mr = manager.SendAction(ma);
}
TransferToQueue("abc123456", "8300")
总结
这只是一个正确使用上下文的问题
从内部xfer即使保持呼叫,我也无法将其转移到8300队列。如果我想转移等待呼叫,我需要从我的SIP发起到8300队列,就像在另一篇文章中解释的那样,即使保持呼叫,我也不能将其转移到8300队列。如果我想转移等待呼叫,我需要从我的SIP发起到8300队列,就像在另一篇文章中解释的那样