我正在使用Asterisk.NET在C#WinForms中创建一个Asterisk客户端。 我的客户端只收听一个分机。我们可以查看来自我的分机的电话,拒绝或转接等。我需要源通道来转移呼叫,而源通道只能从拨号事件中获取。最近,我注意到每次连接到服务器的任何扩展程序开始拨号时都会发生拨号事件。我想过滤掉它,只有来自我的分机的电话。
void manager_Dial(object sender, DialEvent e)
{
CallingInfo.src_channel = e.Channel;
}
e.dialString给我目的地分机号码;但根据服务器状态,我不知道它是否变为空。此外,如果有一些外部电话来找我会发生什么,我不会得到拨号事件或源频道,然后它无法转移。对 ?
答案 0 :(得分:0)
你不能。
Asterisk不允许这样的功能。
您可以阅读所有内容并按您的代码所需的扩展名进行过滤。您可以编写将在服务器上过滤的deamon,并将只需要的deamon发送到您的应用程序。
原因:asterisk是pbx,所有pbx功能都不受限制。
此外,您可以在拨号之前和回答之后使用您想要的任何字段发送拨号方案UserEvent,仅捕获UserEvent。