【Skype for Business Server】予定表連携の流れ

Skype for Businessでは、Outlookで設定した予定表を取得し、プレゼンス情報(連絡可能、取り込み中など)を変化させる。
とはいっても、クライアントで動作しているOutlookとSkypeが連携しているわけではなくて、SkypeクライアントはEWS接続でExchangeサーバに接続し、予定表をSIP通信で取得する流れになるよ。

Skypeサーバ側のPowershellを使って、「Start-CsClsLogging -Scenario alwayson」を実行して、集中管理ログを取得する。
使い方は、Start-CsClsLoggingで取得開始、Stop-CsClsLoggingで取得終了、Search-CsClsLoggingでログファイル取得といった感じ。以下のように実行するよ。

ログファイルは以下のように出力される。

次は、Skypeサーバ側でログ取得をしつつ、Skypeクライアントでは、予定表を故意に変化させるよ。なにはともあれ、EWS連携ができていることが前提条件になるので、構成情報をチェック。

Outlookの予定表に適当な予定を設定し、Skypeクライアントを再起動。

再起動後、プレゼンス情報が「取り込み中」となる。

ログをStop-CsClsLoggingで止めて解析する。
解析するのは、専用のデバッグツールを使うと分かりやすい。
公式では、Skype for Busieness Server 2015のインストールフォルダに入れましょう。と言われているので、C:\Program Files\Skype for Busieness Server 2015\の下に入れる。
テキストエディタでも見れるけど、デバッグツールではSIP通信のIN/OUTをわかりやすく表示してくれる。
https://www.microsoft.com/en-us/download/details.aspx?id=47263

取得したLogFile.txtをSnooper.exeで読み込むとこんな感じ。
まず、SIP通信の中身を見てみる。availabilityの6500は取り込み中、meetingSubjectは予定表の名前などやり取りしていることがわかる。
※MSDNブログのでは、Out→inの順番だったが、逆になっちゃった。とりあえず、プレゼンスの動きは分かったからいいかな?
ただ、流れとしては、以下っぽい。
1.ExchangeのGetUserAvailabilityでSkypeサーバにプレゼンス情報を送信
2.Skypeサーバは送られてきたプレゼンス情報を連絡先リストに登録しているユーザへ送信

プレゼンスの対応表は以下の通り。

Value Availability
3500 Available
6500 Busy
9500 Do Not Disturb
12500 Be Right Back
15500 Away
18500 Offline

うーん、奥が深いね。

参考サイト

Skype for Business クライアントと予定表の連携について


https://msdn.microsoft.com/ja-jp/library/dd253506(v=office.13).aspx
https://technet.microsoft.com/ja-jp/library/jj687958(v=ocs.15).aspx

【Windows】msiファイルを展開する

msi実行時に展開が失敗することがある。そんなときは、手動で展開してしまおう。
msiexecコマンドでできるよ。

/aで展開、/qnで非表示(GUI画面の「次へ」とかがでない)

実行してみる

ちなみに、7-zipだと楽。
右クリ→展開でOK。

【GPD Pocket】到着したのでWindows 10 Proで再インストール

念願かなってGPD Pocketが到着しました。
Gear Buyingで6万くらいだったかな。

日本語で設定しても、ところどころに英語設定が残ってしたりしたので、再インストールすることにしたよ。それに、ちゃんとわかっていないんだけど、Microsoftアカウントを設定させられるので嫌だった。すごい使いにくいし、わかりにくいんだよね。

ということで、分かりにくいと思うけど、再インストールしたよ。
USBにインストールイメージを入れてやったよ。
ドライバーは以下サイトから落とせるよ。
https://www.reddit.com/r/GPDPocket/comments/6iktjm/gpd_drivers_and_windows_factory_restore_image/https://www.reddit.com/r/GPDPocket/comments/6iktjm/gpd_drivers_and_windows_factory_restore_image/

ブート中にDELキーでBIOS画面へ

USBを最優先に

インストールはよしなに

とりあえず、リカバリー領域以外残した

 

GPD Pocket用のドライバー一式をインストールするよ。
exe,iniフォルダ内のbatファイルを管理者実行するよ。

ディスプレイ設定を縦から横に

いい感じかな。

【Skype for Business Server】EWS連携がうまくいかないときに確認すること

 

Skype for BusinessではExchange Serverと連携することで、以下機能を拡張することができる

・会話履歴の保存
OutlookやOWAに「会話履歴」フォルダが作成され、そこにメッセージの履歴が保存される

・予定表のプレゼンス機能連携
予定表のスケジュールに合わせて、退席中、連絡可能など自動で状態を変化させる

で、EWSっていうのは、Exchange Web Servicesの略で、ExchangeServerとhttpもしくはhttpsでやり取りするプロトコルのこと。
Skypeでは、EWSを使ってExchangeと連携しているよ。

【確認することその1】
Outlook、OWAで会話履歴フォルダがあるか。
これがあれば、EWS連携はできているはず。

 

【確認することその2】
タスクバーのSkypeアイコンをShift押しつつ右クリックの構成情報の「EWS情報」をチェック。
「EWS状態OK」となっていれば、いいはず。OKとなっていたけど、会話履歴フォルダができていない場合もあったような・・・謎い

 

【確認することその3】
レジストリ「\HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Lync\nexuser03@extest.local\Autodiscovery」があるかチェック。
ここのキーは、EWS状態がOKとなれば引っ張られてくるキーっぽい。
autodiscoverの性質的に、ExchangeServerを見つけられたなら、その後はautodiscoverの通信は発生させず、見つけたExchangeServerに対してのみアクセスする動作っぽい気がする。パケットキャプチャを見た限りそうっぽかった。

 

【確認することその4】
AutodiscoverのSRVレコードをエントリしているか。
Skypeでは、EWS接続をする前段階で、ExchangeServerを見つけるために、Autodiscoverというレコードを探しにいくよ。
なので、以下のようなSRVレコードを登録する必要があるよ。

 

【確認することその5】
AutodiscoverのSIPドメイン名をExchangeServerのWebサーバ証明書に登録しているか。
EWSは、443のhttpsでアクセスしにいくので、必要っぽい。
mmc→証明書から確認するとこんな感じ。

参考にしたサイト

LyncとExchangeの連携の落とし穴

Lync と Exchange の統合 EWS part1

【Skype for Business Server】アドレス帳の取得方法

Skype for Business 2016でアドレス帳を取得する方式。
取得方式は2種類あるよ。

・WebSearchAndFileDownload
デフォルトの方式で、SkypeクライアントはGalContacts.dbとGalContacts.db.idxを「%userprofille%\AppData\Local\Microsoft\Office\16.0\Lync\sipドメイン名」フォルダ内に格納し、それを参照する方式

・WebSearchOnly
Skypeクライアントでユーザがアドレス帳検索をすると、その都度SkypeServer側へ問い合わせをする方式

Get-CsClientPolicyのAddressBookAvailabilityで設定確認ができる。

WebSearchAndFileDownloadへ変更

WebSearchOnlyへ変更

MS的にはWebSearchOnlyを推しているみたい。

Skype for Business 2016 のアドレス帳ダウンロードの不具合

【Skype for Business Server】ローカル構成ストアインストール時に、rewite_2.0_rtx_x64.msiのインストールに失敗する

今のプロジェクトでSkype for Business Serverの担当をしてるんだけど、書ける範囲でSkype関連も書いていこうかなと。

サーバー:Windows Server 2016
ミドル:Skype for Business Server 2015、IIS10

タイトルの通り、ローカル構成ストアのインストール時に、以下メッセージが表示されて失敗する場合

一時的に、レジストリ「HKLM\SOFTWARE\Microsoft\InetStp」の
MajorVersionの値を10から7に変えてあげるとうまくいく。

こんな感じに。

InetStpってのは、IIS関連のバージョンみたいで、インストール時にチェックして、対象外のバージョンならはじくみたいなことをやっているんだと思う。なんかWindows Serve 2016とIIS10の組み合わせがいけない模様?
ここに詳しく載ってた。英語だけど。

[solved]Prerequisite Installation failed: RewriteModule

【Linux】findでの時間指定

10分以内に更新されたファイルを探したい。とかの時に使う。

 

10分以上経過したファイルを探す場合

 

10分ジャスト

 

日付で指定する場合-mtimeを使う