2012-05-19 6 views
5

私の会社のSilverlightアプリケーションにIMプレゼンス情報をコーディングしています。これまでに私が見つけた唯一の解決策は、CodePlex(Silverlight.OCS)のソリューションでした。それは「大丈夫ですが、非常に日付があります。Microsoft Lync APIを使用してCommunicator 2007/2007 R2と通信できますか?

Lync SDKを使用すると、銀色の内部に存在情報を簡単に取得できます。残念ながら、私たちのネットワーク上のユーザーの99%はまだOFfice Communicator(R2)を使用しているため、すぐに使用できるLyncメソッド(Control:PresenceIndicator ... xaml)を使用することはできません。

Lync SDKにOffice Communicatorと通信する方法が含まれているかどうか不思議です。

もしそうなら、a)実行中のクライアントを確認し、b)クライアントに接続します.LyncまたはCommunicatorです。どんな助けでも大歓迎です!最後は重要なことですが、可能な限りC#コードを探しています。ありがとう!

+0

['NameCtrl'](http://msdn.microsoft.com/en-us/library/ms455335)ActiveXコントロールを参照してください。あなたはそれからプレゼンスを得ることができます。 –

答えて

2

あなたは、SDKの前身は、Office CommunicatorのオートメーションAPI(OCAA)である

Office Communicatorの、唯一のLync 2010に対してLync 2010のSDKを使用することはできません。これはCOMベースのAPIであり、Communication 2007および2007 R2に対して機能します。まだサポートされています...今のところ!

API hereをダウンロードできます。 MSDNのランディングページはhereです。

プレゼンス情報を取得するためとして...まあ、うまくいけば、これはあなたを助けるかもしれません(私はOCSのAPIの作業を行っているには若すぎるよ免責事項;)

Getting a contact record

private IMessengerContact FindContact(string userID) 
{ 
    IMessengerContact contact = null; 
    // Try the local contact list first 
    try 
    { 
     contact = (IMessengerContact)communicator.GetContact(userID, ""); 
    } 
    catch 
    { 
     contact = null; 
    } 

    // For a nonlocal contact, try the SIP Provider of Communicator 
    if (contact == null || contact.Status == MISTATUS.MISTATUS_UNKNOWN) 
    { 
     try 
     { 
      contact = 
       (IMessengerContact)communicator.GetContact(userID, 
       communicator.MyServiceId); 
      return contact; 
     } 
     catch 
     { 
      contact = null; 
      return contact; 
     } 
    } 
    else 
    { 
     return contact; 
    } 
} 

コンタクトのステータスを返す:

IMessengerContactインターフェースはMISTATUS値の数のいずれかを含むプロパティStatusを、定義します。