2012-04-12 17 views
0

私は信頼できるアプリケーションエンドポイントにユーザーのプレゼンスを公開していますが、不要になった時点でこのプレゼンスをクリアしたいと考えています。UCMA 3.0で公開されているプレゼンスをクリアする

UserEndpointインスタンスを終了する唯一のオプションはありますか?

私はこのコードスニペットを使用しています:

user.Endpoint.LocalOwnerPresence.BeginPublishPresence(
     user.categories, 
     arBeginPublishPresence => 
     { 
      try 
      { 
       user.Endpoint.PresenceServices.EndUpdatePresenceState(arBeginPublishPresence); 
       logger.log("Published presence for {0} with state {1}.", user.SipUserUri, newState.Availability); 
      } 
      catch (RealTimeException ex) 
      { 
       logger.log("Failed publishing presence for {0}. {1}", user.SipUserUri, ex); 
      } 
     }, 
     null); 

user.Endpointは、そのユーザーのUserEndpointあり、そしてuser.categoriesはPresenceCategoryWithMetaDataオブジェクトのリストです。

答えて

0

最初 - 私はこれが実際に動作して驚いています! LocalOwnerPresenceオブジェクトでBeginPublishPresenceを呼び出してから、PresenceServicesオブジェクトのEndUpdatePresenceStateを呼び出すaysncコールバックで呼び出します。そう私は私がLyncの開発と非同期プログラミングについて知っていたと思ったすべてのものを捨てるする必要がありますするつもりだ、これはタイプミスです教えてください; O)

をとにかく - あなたは

LocalOwnerPresence.BeginPublishPresenceでプレゼンスを公開していると仮定

(および非同期コールバックで対応するEndPublishPresenceを呼び出す)、パブリケーションを削除する

LocalOwnerPresence.BeginDeletePresence

を呼び出すことができます。

+0

私には、Microsoft Lync Server 2010の、第9章、「プレゼンス文法と出版プレゼンス」に関する部分で書籍プロフェッショナルユニファイドコミュニケーションの開発からこれのほとんどを得ました。これが間違っている場合は、 –

+0

私はBeginDeletePresenceを使用しようとしましたが、元のBeginPublishPresenceの非同期コールバックコードの外でした。私はJavaに慣れていますが、C#はまだ少し混乱しています。 –

+0

私が他のところで述べたように、私は各プレゼンス更新のために新しいインスタンスIDを使用したバグがありました。 BeginDeletePresenceは、私がそれらのすべてを追跡しない限り、Lyncがうんざりしてセッションを終了させない限り、うまく動作しませんでした。 –

関連する問題