UCMA呼叫建立仅在30秒后给出忙碌响应

时间:2012-03-04 11:09:03

标签: lync lync-2010 ucma

我正在尝试使用UCMA工作流应用程序中的以下代码建立呼叫:

try{
var conversation = new Conversation(endpoint);
avCall = new AudioVideoCall(conversation);
avCall.EndEstablish(avCall.BeginEstablish(CalleeParty,options,null,null));
catch (FailureResponseException frex){
_logger.WriteToLog(frex.Message, "TransferCall", this.CallerUri, this.CalleeParty);
}
catch (OperationFailureException ofex)
{
_logger.WriteToLog(ofex.Message, "TransferCall", this.CallerUri, this.CalleeParty);
}
catch (RealTimeException rtex){
}
_logger.WriteToLog(rtex.Message, "TransferCall", this.CallerUri, this.CalleeParty);
}

如果目标方拒绝该呼叫,则仅在超时(30秒)过后,应用程序才会收到忙响应。 并且因为呼叫是在ucma应用程序内部建立的,所以我根本没有任何表示铃声和忙碌状态的声音。

是正常的,如果不是,我该如何解决?

1 个答案:

答案 0 :(得分:2)

您可以在调用BeginEstablish之前订阅Call.StateChanged事件。

如果您这样做,那么当呼叫通过它的各种状态时,您将收到通知。在您的示例中,您将看到呼叫直接从建立到终止。 (一个接受的电话会建立成立,然后在任何一方挂断时最终终止)。

MSDN在这里有一个有用的可视化图表:http://msdn.microsoft.com/en-us/library/hh347379.aspx。事实上,我会在这里链接它,供所有人查看:

Lync Call States

此外,Michael Greenlee有一个blog post talking about exactly this,并描述了如何获取其他信息,例如TransitionReason。

希望有所帮助。