首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >星号AsterNET怎么从停车到排队?

星号AsterNET怎么从停车到排队?
EN

Stack Overflow用户
提问于 2019-09-04 15:54:51
回答 2查看 466关注 0票数 1

我使用C# AsterNET来管理我的星号命令和事件,现在我确实有了一个新的特性。

这很简单(我想),但我现在被塞了起来。

场景

我有两个队列,8100和8300,两个分机是8101和8301。当我接到来自PSTN的电话时,它会被驱动到8100队列。当8101扩展可用时,我确实将这个扩展添加到8100队列中,因此调用的PSTN设备将被重定向到这个8101扩展。

在这里之前一切都很顺利。

有时候,我会把呼叫设备停下来,让8301知道我的应用程序,所以使用同一应用程序的8301用户可以发送命令,请求将停靠的频道重定向到SIP电话。工作也很好。

作用域

现在我想有一些功能让8101将这个呼叫设备传送到我的另一个队列,8300。所以我试着重新使用我的停放方法和重定向方法

代码语言:javascript
复制
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")

问题

我是停车罚款,但当我试图重定向从停车到我的队列,呼叫设备只是断开了,连接失去了。

如何将一个已停靠的呼叫转移到我的队列,或者直接将其传输到队列(更好),而不需要发起?

EN

回答 2

Stack Overflow用户

发布于 2019-09-04 21:04:41

只需坚持而不是停车,并制定你自己的名单这样的电话。

票数 0
EN

Stack Overflow用户

发布于 2019-09-05 16:58:03

为了传送到队列,我可以做一个盲传输记录在星号网站上。链接如下:

BlindTransfer

BlindTransfer

为了使用AsterNET实现这一点,我可以使用我使用的相同的RedirectAction,但我确实需要更改上下文。它不能默认为上下文,因为默认情况下,我们让星号管理它,不知怎么它不能处理,因为我驱逐。因此,它需要明确规定为内部转移。此上下文传输后引发的事件是Manager_BlindTransfer。

RedirectAction

因此,在调试引发事件方法的调试过程中,我使用我的SIP电话成功地传输了一个呼叫,这样我就可以捕获使用在其中的上下文。使用正确的上下文

代码语言:javascript
复制
ManagerConnection manager = new ManagerConnection(address, port, user, password);

manager.BlindTransfer += Manager_BlindTransfer;

private void Manager_BlindTransfer(object sender, BlindTransferEvent e)
{

}

在此之后,我创建了另一个使用正确上下文直接传输到队列的方法。

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57792024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档