星号捕获传入呼叫并将其转移到特定分机

  • 本文关键字:转移 入呼叫 asterisk
  • 更新时间 :
  • 英文 :


我一直在使用c#构建一个windows窗体桌面应用程序,该应用程序使用Asterisk.NET与Asterisk接口。我的第一个问题是接一个来电并将其转移到特定分机。我的第一个想法是使用OriginateAction,当一个呼叫来的时候,我使用Dial事件并捕获它,并使用OriginateAction调用到一个特定的分机。

RedirectAction originateAction = new RedirectAction();
originateAction.Channel = e.Channel;
originateAction.Context = "default";
originateAction.Exten = "203";
originateAction.Priority = 1;
ManagerResponse originateResponse = manager.SendAction(originateAction);
Console.WriteLine(originateResponse);

但它不像我希望的那样工作。第二个想法是使用RedirectAction:

RedirectAction originateAction = new RedirectAction();
originateAction.Channel = e.Channel;
originateAction.Context = "default";
originateAction.Exten = "203";
originateAction.Priority = 1;
ManagerResponse originateResponse = manager.SendAction(originateAction);
Console.WriteLine(originateResponse);

它不工作。

我在很多网站上都找到了,但是文档很少。

如何解决这个问题?

谢谢!

我建议使用某种动态拨号计划而不是"捕获";反应性地电话。为什么不使用AGI脚本?

本质上,您的应用程序告诉数据库或其他中央系统,当符合特定条件的调用进入时该做什么。然后Asterisk在调用到达特定上下文(例如所有传入调用)时运行您设置的脚本,然后脚本根据应用程序给出的输入动态路由调用。

既然你似乎喜欢。net,这里有一个。net AGI项目来帮助你开始:AsterNET。看起来像你提到的那个库,星号。. NET,也能够快速CGI (AGI使用),但最后一个版本是在2009年,而AsterNet最近是活跃的3个月前。

我个人使用phpAGI在我们的呼叫中心做各种整洁的ACD和呼叫路由的东西。

有关AGI的更多信息,请参阅官方文档。

编辑:

我可能还应该解释一些基本的调用流术语(来自文档):

  • Originate:向扩展/上下文/优先级或应用/数据发出呼叫。示例:用户单击一个按钮,发起一个呼叫到他们的桌面电话,当他们接听该呼叫时,它执行dialplan,或一个dialplan应用程序。
  • 重定向:重定向(转移)呼叫。例句:座席和顾客正在谈话,但是经理想接电话。使用重定向到"获取"
  • 拨号:(仅在dialplan中,不在AMI中)拨号指定的技术/通道。注意,你只能从你的。net应用程序中发起,而不是Dial.

你能展示你的事件处理程序代码吗?看起来库会写manager.NewChannel += new ManagerEventHandler(new_channel);

相关内容

  • 没有找到相关文章

最新更新