我正在尝试从Asterisk.Net的旧版本升级到最新版本的AsterNet。我们曾经使用AsteriskManager.OriginateCall()发起调用,它返回了一个Call对象。该调用对象具有UniqueId和ChannelName。
现在我用SendAction()发起调用并向它发送一个OriginateAction。所以我的第一个问题是:这是正确的方法吗?因为在我得到的结果中,UniqueId为null并且没有ChannelName。我认为频道名称可能在属性中,但Attributes也是null。
那么如何获取我刚刚发起的通话的频道名称和唯一ID?
答案 0 :(得分:1)
我是这样做的:我创建了一个OriginateAction。在OriginateAction中,我将Asynch设置为true。然后我用SendEventGeneratingAction()发送它超时。我检查我得到的ResponseEvents是否为null,即responseEvents.Events.Count> 0,而responseEvents.Events [0]是OriginateResponseEvent。 responseEvents.Events [0]然后拥有我需要的所有信息。
答案 1 :(得分:0)
请参阅Action Originate页面。还要检查你库的源代码。
触发始发后,您会获得具有actoion ID信息的事件OriginateResponse。之后,它将产生更多事件(取决于版本),根据actionid提供更多信息。
发送其他解决方案以发起一些变量,然后在拨号播放UserEvent命令中使用,以返回您需要的所有信息。
PS。创建没有星号经验的拨号核心是一个非常糟糕的主意,因为它会在负载下出现问题。使用已经写过的核心或聘请专家。