我使用 C# AsterNET 来管理我的 Asterisk 命令和事件,现在我确实有一个新功能可以使用。
这很简单(我认为),但我现在被困住了。
设想
我确实有两个队列,8100 和 8300,以及 2 个分机是 8101 和 8301。当我确实有来自 PSTN 的呼叫时,它被驱动到 8100 队列。当 8101 分机可用时,我会将此分机添加到 8100 队列,因此主叫 PSTN 设备将被重定向到此 8101 分机。
到这里为止一切都很好。
有时我确实停放了呼叫设备并使用我的应用程序让 8301 知道它,因此使用同一应用程序的 8301 用户可以发送命令,要求将该停放的频道重定向到他的 SIP 电话。也工作正常。
范围
现在我想要一些功能让 8101 将此呼叫设备转移到我的另一个队列 8300。所以我只是尝试重用我的停放方法和重定向方法
internal void Park(string channel, int parkTimeout)
{
ParkAction pa = new ParkAction(channel, channel, parkTimeout.ToString());
ManagerResponse mr = manager.SendAction(pa);
}
internal void RedirectFromParking(string channel, string exten)
{
RedirectAction ra = new RedirectAction
{
Priority = 1,
Context = "default",
Channel = channel,
Exten = exten
};
ManagerResponse mr = manager.SendAction(ra);
}
Park("abc123456", 10000);
RedirectFromParking("abc123456", "8300")
问题
我的停车很好,但是当我尝试从停车重定向到我的队列时,呼叫设备刚刚断开并且连接丢失。
如何将驻留的呼叫转移到我的队列或将其直接转移到队列(会更好)而无需发起?