Lync LCSCDR データベースにクエリを実行する SQL コードを作成しています。
誰かが外部から応答グループを呼び出し、別のグループがそれに応答すると、レコードがsessionDetails
テーブル (およびVoipdetails
テーブル) に入り、行われた呼び出しが反映されます。
ただし、誰が電話に出たかを特定する方法はないようです。user2id
列には、通話に応答した人ではなく、応答グループのuserid
(テーブルからの)が入力されます。Users
誰が電話に出たかを推測する方法があるかどうか誰か知っていますか?
クエリは次のとおりです。
SELECT
sd.SessionIdTime,
sd.SessionEndTime,
DATEDIFF(
ss,
sd.SessionIdTime,
ISNULL(sd.SessionEndTime, sd.SessionIdTime)
) AS duration,
ph1.PhoneUri AS caller1,
ph2.PhoneUri AS receiver1,
U1.UserUri AS user1uri,
U2.UserUri AS user2uri,
U3.UserUri AS refeereruri,
sd.User1Id,
sd.User2Id,
sd.ReferredById,
sd.IsUser1Internal,
sd.IsUser2Internal,
sd.SessionIdTime,
voipd.*,
'|||',
sd.*
FROM
dbo.VoipDetails AS voipd
INNER Join
dbo.SessionDetails AS sd
ON
(
voipd.SessionIdTime = sd.SessionIdTime AND
voipd.SessionIdSeq = sd.SessionIdSeq
)
LEFT OUTER JOIN
dbo.Users AS U2 -- still 4795 with outer
ON
U2.UserId = sd.User2Id
LEFT OUTER JOIN
dbo.Users AS U1
ON
U1.UserId = sd.User1Id
LEFT OUTER JOIN
dbo.Users AS U3
ON
U3.UserId = sd.ReferredById
LEFT OUTER JOIN
dbo.Phones AS ph1
ON
ph1.PhoneId = voipd.FromNumberId
LEFT OUTER JOIN
dbo.Phones AS ph2
ON
ph2.PhoneId = voipd.ConnectedNumberId
WHERE
sd.SessionIdTime > (GETDATE() - 2)
AND sd.MediaTypes = 16
AND voipd.FromGatewayId is not null -- external
AND User1Id IS NULL