2017-07-20 9 views
0

数秒後に実行中のコール転送を終了するにはどうすればよいですか? ドキュメントでは、最小コール転送時間は1分(CallTransferOptions.MaximumTransferTime)です。 私のアプリケーションでは、着信コールがリストされた順に転送されるユーザーのリストがあります。しかし、あまりにも長く待ってください。 私のコード例:c#UCMAで転送を終了する5

for (int i = 0; i < _targetsUri.Length; i++) 
{ 
    try 
    { 
     _transferType.MaximumTransferTime = new TimeSpan(0, 0, 1, 0, 0);     
     var handler = _audioVideoCall.BeginTransfer(_targetsUri[i], _transferType, null, _audioVideoCall);      
     EndTransferCall(handler);      
     _waitForTransferComplete.WaitOne(); 
    } 
    catch (Exception ex) 
    { 
     /// 
    } 
} 

は、私は20秒後に現在のユーザーへのコール転送を終了し、反復の次のサイクルで他に譲渡する開始したいです。今すぐ通話が1分で転送されます。あなたがあなたのやりたいために

+0

私は新しいスレッドでコール転送を開始し、ストップウォッチを使って20秒後にスレッドを中止しようとしたが、何も、返事のおかげで – rustrar

答えて

0

が出席したブラインド転送に出席ブラインド転送が進行している間に起こって2つのコールがあることを理解する必要があります。自分と相手との間の元の呼び出しと、相手と新しい目的地との間の新しい呼び出し。 MaximumTransferTimeオプションの制限以外

、新しい転送コールを「終了」する唯一の方法は、いずれかです:相手側(すなわちハングアップコール)から

  1. 新しい目的地から終了(つまり、拒否コール)

これはあなたのUCMAアプリケーションでは実行できません。したがって、MaximumTransferTimeオプションの制限事項を満たすか、ソリューションがより複雑になる必要があります。あなたは本当にあなたがLync Server application(基本的にはSIPプロキシプラグイン)を記述する必要がこれをやってみたかった場合

。 Lync Serverアプリケーションでは、これが呼び出しを転送し、呼び出しフェーズをタイムアウトして何らかの特別な方法でフォークを終了するUCMAアプリケーションにフォークするものと判断します。その後、Lync Serverアプリケーションは、特別な障害(またはその問題の障害)を「検出」してから、ターゲットが鳴ってから「次の」ターゲットにリダイレクトされます。

は、これを行うために必要なコードの非自明な量がありますが、必要であれば、それを行うことができます。私は同様のことをするのを手伝ってくれたので、上記の解決策が働くことが分かっています。

+0

こんにちは起こりませんでした! 回避策が見つかりました。 AコールB、Bがこのコールを受けて保留になります。 BはCへの新しいコールを開始します.Cがn秒間応答しない場合、Bはこのコールを終了し、Dに対して新しいコールを開始します.Dが応答する場合、Bはコールを最初のコールに置き換えます。これは、本書に記述されているプロフェッショナルユニファイドコミュニケーション、M.グリーンリー – rustrar

+0

監視つき転送 – rustrar

+0

教師転送を使用しての問題は、Cは、あなたが、あなたがに良好であることを気にしない場合、コールはAをBから来るとされていない見ているということです行く。 SIPヘッダーを混乱させて、Aに関する情報を表示するACDコールタイプに見えるようにすることができます。 –

関連する問題