我目前正在构建一个c#。星号接口管理器。
我可以做一些简单的事情,比如换乘和滞留。我现在正在构建电话会议。我可以建立一个n用户会议,但我必须在现有的活动通道上使用"Action: redirect"。
我想做的是路由现在不存在的呼叫(即在"核心显示通道"中没有通道)到我的上下文/扩展,将人们放在会议室。
但是我不能让"Action: originate"为任何事情工作。当还没有通道的时候,是什么把通道作为论据的呢?你传递给频道头的是什么?SIP/不适合我。
你到底在做什么 ?你不能用一个不存在的频道来连接到会议室。如果你想创建一个会议,那么让人们拨打他们的分机号(或者任何号码,真的),然后把他们放在会议室里,这很简单。
我假设你正在使用Asterisk.NET。originate命令需要一个要拨号的号码(这是通道)、一个上下文和一个将呼叫连接到dialplan内的扩展(这可以是硬编码的,也可以通过AMI创建)。
假设你在分机300设置了一个会议室。您的原始命令看起来像这样:
OriginateAction oc = new OriginateAction();
oc.Context = "YourDialPlanContext";
oc.Priority = 1;
// Channel is however you're dialing (extensions, SIP, DAHDI, etc.)
oc.Channel = "SIP/12125551212@Your-Sip-Prover-Peer-Name";
// or in the alternative
// oc.Channel = "ZAP/ZapChannelName/12125551212";
oc.CallerId = "9998887777";
// This is the extension you want dialed once the call is connected
// 300 in our example
oc.Exten = "300";
oc.Timeout = 60000; // Our timeout in ms
oc.Variable = "VAR1=ABC|VAR2=25"; // If you need to pass variables to the dialplan
// Async should be set to true, unless you want your code to wait until the call
// is complete
oc.Async = true;
// Go ahead and place the call
ManagerResponse originateResponse = AsteriskManager.SendAction(oc, oc.Timeout);
瞧!您现在已经向您预定的会议参与者发起了一个电话,在接听后,他们将被引导到您的会议室。