2015-02-05 8 views
2

난은 Lync LCSCDR 데이터베이스를 조회 할 몇 가지 SQL 코드를 쓰고 있어요에 호출에 응답하는 사람들에게 그들의 방법입니다.는 응답 그룹

누군가가 외부에서 응답 그룹을 호출하고 다른 하나는 응답하면, 기록이 sessionDetails 테이블 (및 Voipdetails 테이블)로 전환 - 만든 호출을 반영합니다.

그러나 호출에 응답하는 사람들 식별 할 수있는 방법은없는 것처럼 보인다. user2id 열은 응답 그룹이 아닌 호출에 응답 한 사람의합니다 (Users 테이블)에 userid로 채워집니다. 누구에게 전화를 받았는지 추측 할 수있는 방법이 있는지 아는 사람이 있습니까?

쿼리는 다음과 같습니다

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 
+0

와 라인의 발신자입니다 ................ –

답변

0

질문에 대한 anwser를 찾을 수있는 방법이 있지만, 당신이

RG를 호출

통화가 채울 것입니다 수행하는 두 번째 응용 프로그램이 필요합니다 correlationId에는이 가득 각 라인에 대한 CorrelationID를

, 당신은 RefferdByID가 호출 된 RG입니다 CorrelationID를하지 않고 라인을 검색해야합니다. 는 대부분의 시간 응답 사용자는 발신자가 될 것이며, 수신자는 CorrelationID를