私はルーティングを使用してLync 2013に基づいてルーティングアプリケーションを構築していMSPL
ます.ServerAgent
ApplicationEndpoint
ここで、ユーザーのアクティブなエンドポイントに基づいてルーティングを構成する必要があります。具体的には、ユーザーが Lync Mobile (モビリティ) クライアントであるエンドポイントを持っているかどうかを確認する必要があります。
スクリプトでユーザーのエンドポイントのリストを取得できますMSPL
が、これはエンドポイント ID、機能、および GRUU しか提供しません。適切なルーティングを決定するには、各エンドポイントのユーザー エージェント文字列が必要です。
ユーザーのプレゼンスをサブスクライブするとUCMA
、個々のエンドポイントのプレゼンスが得られますが、ユーザー エージェント文字列も得られません。
これまでに見つけた唯一のルートは、Lync .\rtclocal
SQL サーバーにアクセスしてrtcdyn.dbo.RegistrarEndpoint
テーブルにクエリを実行することです。これは、各フロントエンド SQL サーバーに SQL 接続を追加することを意味します。これは、どうしても避けたい最後の手段です。
クライアントバージョン/ユーザーエージェント文字列を含むすべてのユーザーのエンドポイントを取得するための他のオプション (できればMSPL
またはを使用) はありますか?UCMA
編集:
- MSPL コンパイラ コードを確認しましたが、現在の要求以外のエンドポイントのユーザー エージェント文字列を取得しているように見えるものはありません。文書化されていない機能がいくつかありますが、私には役に立たないようです。
- 強化されたプレゼンス コンテナーのいずれかに情報があるかどうかを確認しましたが、何も見つかりませんでした。
編集2:
"machineState"
後で掘り下げますが、プレゼンス カテゴリからデバイス タイプを取得するのが最善の策だと思います。すべてのエンドポイントはこれらのいずれかを発行します。XML は MSDN: で説明されていますstate[@type='machineState'] element
。次のものを含むことがdevice
できる要素があります。
computer
: デバイスは、Lync 2013 が実行されているコンピューターです。
deskphone
: デバイスは、Lync Phone Edition が実行されている固定電話です。
mobile
: デバイスは、Microsoft Lync 2010 for Android、iPad、iPhone、Nokia、または Windows Phone が実行されている携帯電話です。
web
: これは、Microsoft Lync Web App が実行されているコンピューターです。
しかし、からこの要素を照会する方法はMSPL
? 関数はありQueryCategory(..)
ますが、これはマシンの状態を返すようには見えず、集約されたプレゼンス状態のみを返します。