2012-03-04 50 views
1

我想在UCMA工作流應用程序使用下面的代碼建立呼叫忙響應:UCMA呼叫建立只給出了30秒後

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應用程序內部建立,我根本聽不到任何聲音,表示振鈴和忙碌狀態。

是正常的,如果不是我該如何解決這個問題?

回答

2

在調用BeginEstablish之前,您可以訂閱Call.StateChanged事件。

如果你這樣做,那麼你會收到通知,因爲電話通過它的各種狀態。在你的例子中,你會看到這個呼叫直接從建立到終止。 (一個接受的電話會建立成立,然後一旦任何一方掛斷,最終終止)。

MSDN在這裏有一個有用的視覺圖:http://msdn.microsoft.com/en-us/library/hh347379.aspx。事實上,我會在這裏鏈接給大家看:

Lync Call States

此外,邁克爾·格林利有blog post talking about exactly this,並介紹瞭如何你也可以得到更多的信息,如TransitionReason。

希望有所幫助。

+0

謝謝湯姆,我實際上嘗試過,並嘗試了ProvisionalResponseReceived事件,它可以告訴你在通話過程中你會得到什麼迴應,例如:振鈴,嘗試等等。問題是,當遠程用戶拒絕呼叫時,在我收到忙碌的消息之前有30秒的時間差距。即我的應用程序在30秒內沒有收到任何迴應。 例如: 我在呼叫建立期間得到以下響應: 101 - 183 - 180 - 183等 然後,如果用戶拒絕呼叫 我得到404,但30秒後好像呼叫消失30秒,沒有答覆。 – ziwar 2012-04-18 08:29:45