Skype for Business Online 上のセッション情報を取り出す方法について


SfB サポートのワトソンです。

現在、Skype for Business Online 管理シェルにて、ほぼリアルタイムで、ユーザーが行ったアクティビティの確認が可能になっております。

セッションの確認に利用するコマンドは Get-CsUserSession となります。

参考情報

Title: Get-CsUserSession
URL: https://technet.microsoft.com/ja-jp/library/mt715516.aspx

Get-CsUserSession は -User のパラメターを指定し、指定したユーザーの以下のようなセッション情報をどりだします。

・サインイン
・P2p IM
・P2P ファイル転送
・P2P 音声・ビデオ通話
・会議に Join した情報
・会議 IM セッションの情報
・会議 の ビデオ・音声通話

現在、こちらのコマンドに関する公開情報が少ないため、一度本ブログで入門レベルでお話をさせていただきます。

まず、セッションを取り出すには以下のようにコマンドを実行します。

Get-CsUserSession -StartTime 10/1/2016 -EndTime 10/30/2016 -User online10@contoso.com.

実行した際、戻り値として、以下のようなオブジェクトが戻されます。

---------------
RunspaceId            : 9935e799-6aed-4186-b6df-756c318cd7d9
DialogId              : 5a77ef2710e14306aea2e450454188e1;b88e1374fb;
ReplacesDialogId      :
StartTime             : 2016/10/07 2:47:57
EndTime               : 2016/10/07 2:47:57
FromUri               : online10@contoso.com
ToUri                 : online10@contoso.com
FromClientVersion     : UCCAPI/16.0.4339.1000 OC/16.0.4351.1000 (Skype for Business)
ToClientVersion       :
FromTelNumber         :
ToTelNumber           :
ToEndpointId          :
FromEndpointId        : 58DDF337-0282-568B-86CF-ABABA9A5582D
ConferenceUrl         :
ConfInstance          :
OnBehalfOfUri         :
ReferredByUri         :
ResponseCode          :
MediaTypesDescription : [RegisterEvent]
ErrorReports          :
QoEReport             :
-----------------------------------

戻り値に含まれる情報は以下となります。

■ RunspaceId
内部で利用されている値となります。

■ DialogId
一つのセッションに対して一つの DialogID が割り当てられます。
例えば、online10@contoso.com がサインインを行った場合、サインアウトするまで、EndTime が空白なイベントが一つありますが、
サインアウトした後は さらにもう一つの EndTime があるイベントがさらに増えます。

ただし、DialogId は同一となりますので、レポートではこのパラメターをキーにし、フィルターするとよいです。

同じ用に、online10@contoso.com が online11@contoso.com の会議に参加をした際、同一の DialogID で、online10 およびに、online11 のセッション情報にに online10@contoso.com の会議に参加した記録がのこります。

そのため、ユニークなユーザーアクティビティをトラックしている場合には、DialogID でフィルターするようお願いします。

■ ReplacesDialogId
こちらはコールトランスファーなどで Dialogid が入れ替えらえる際に利用される値です。
■ StartTime
セッションが開始された時間となります。
時間は、PDT (GMT - 7:00)

■ EndTime
セッションが終了した時間となります。
時間は、PDT (GMT - 7:00)
■ FromUri
セッションの開始したユーザー

■ ToUri
セッションのターゲットユーザー
会議の場合は会議開催者の URI となります。

■ FromClientVersion
セッションを開始したユーザーのクライアントバージョンとなります。

■ ToClientVersion
セッションに応答したユーザーのクライアントバージョンとなります。

■ FromTelNumber
セッションを開始したユーザーの電話番号となります。

■ ToTelNumber
通話先の電話番号となります。
注意:プライバシーのため番号の一部はマスキングされます。
マスキングを外すことはできません。

■ ToEndpointId
セッションに応答したユーザーのユニークなエンドポイント ID
ユーザーが複数の端末でサインインを行っている場合、複数のエンドポイント ID が存在し、
こちらの値で、エンドポイントを判別します。
■ FromEndpointId
セッションを開始したユーザーのユニークなエンドポイント ID

■ ConferenceUrl
会議 URI となります。

例:
sip:online10@contoso.com;gruu;opaque=app:conf:focus:id:s5qkr803

上記の URL では会議の開催者が、online10 であることおよびに、ユニークな会議 ID が、s5qkr803 であることがわかります。

■ ConfInstance
会議に割り当てられるユニークなインスタンス ID となります。
会議の中では、IM/Audio/Video など複数のセッションが行われますが、
ConfInstance はユニークですので、こちらでトラックするようお願いいたします。

■ OnBehalfOfUri
代理人が開始したセッションの場合こちらでだれの代理で行われたセッションかを判別します。
■ ReferredByUri
通話を転送したユーザーの sip アドレスがここに記録されます。

■ ResponseCode
レスポンスコードがここに記録されます。
レスポンスコードは 2xx が正常、3xx はリーダイレクトなど処理中のものとなり、4xx はユーザーのアクションによるエラー、5xx はサーバー側のエラーとなります。

Skype for Business では 基準に基づきダイヤログのレスポンスを返しており、以下のページにダイヤログの詳細が公開されております。

http://www.iana.org/assignments/sip-parameters/sip-parameters.xhtml#sip-parameters-7
■ MediaTypesDescription
どのようなセッションであったかについてここで判別できます。

イベントは以下のようなものがあります。
P2p およびにサインインのセッションの場合
[RegisterEvent]
[IM]
[Audio]
[Video]

会議の場合上記の同じとなりますが、前方に、[Conference] が追加されます。
[Conference] (会議の Focus セッションに参加をした場合)
[Conference][IM] (会議の IM セッションに参加した場合)
[Conference][Audio] (会議の Audio セッションに参加した場合)
[Conference][Video] (会議の Video セッションに参加した場合)

■ ErrorReports
セッションのエラーレポートなります。
一つ一つのパラメターが カンマ区切りで記録されます。
エラーレポートとはなりますが、必ず、エラーが含まれているわけではございません。

例:

ResponseCode          : 200
MediaTypesDescription :
ErrorReports          : {{"RequestType":"BYE","RequestTime":"2016-10-12T23:26:19.7926417","ContentType":"","ResponseCod
e":"200","DiagnosticId":51004,"ErrorCategory":"Success","DiagnosticHeader":"51004; reason=\"Act
ion initiated by user\""}, {"RequestType":"BYE","RequestTime":"2016-10-12T23:26:19.2382095","Co
ntentType":"","ResponseCode":"200","DiagnosticId":51004,"ErrorCategory":"Success","DiagnosticHe
ader":"51004; reason=\"Action initiated by user\""}}
例えば、上記は、ResponseCode が 200 であり、正常となります。
ErrorReports の中には、51004 Action initiated by user となりますので、ユーザーが通話・セッションを自分で終了した事がわかります。

通話が正常にできなかった問題お調べになる際、こちらの中の ICEWarn フラグなだ調査に有力な情報が多く記録されます。

■ QoEReport
通話終了後に、エンドポイントからサーバー送信された通話品質のレポートがここに記録されます。
こちらの情報より、端末の OS や音声の再生・マイク・CPUの情報・ネットワークの通信の ジッタ、パケットロスおよびに、通話全体の MOS (Mean Opinion Score) がわかります。

もし、2 以下の MOS の場合、QOEReport の中に含まれる情報より、ネットワークの問題であったかまたは、デバイスの問題であったかについて調査が可能となります。

Get-CsUserSession についてはユーザー単位で実施する必要があるため、テナント全体で実施した場合スクリプトなどで実施を行う必要があります。

簡単なサンプルとなりますが、以下のような PowerShell をにて、会議のセッション情報がとりだせます。

siplist2

上記の簡単のサンプルの場合、EndTime がある、会議のユニークなダイヤログを取り出し、ユニークな会議のセッションをcsv ファイルに出力しております。

組み合わせでは多くのことが実施でます。

詳細なカスタマイズについては、Premier サポートにて、サンプルコードの提供を承ります。

引き続き快適な SfB ライフをお楽しみください。

 

 

Skip to main content