So... currently, we use a query modified from the one provided by the ever
helpful Olivier Taylor to get CDR-like call-log info from SER's acc:
SELECT t1.from_uri as Caller, t1.to_uri as Callee, TIMEDIFF(t2.time, t1.time)
as Duration, t1.time as CallDate FROM acc t1, acc t2 WHERE
t1.sip_callid=t2.sip_callid AND ((t1.fromtag=t2.fromtag AND t1.totag=t2.totag)
OR (t1.fromtag=t2.totag AND t1.totag=t2.fromtag)) AND t1.sip_method='INVITE'
AND t2.sip_method='BYE' AND t1.from_uri='<username>' ORDER BY
t1.time DESC;
It works really well with one glaring problem.... reINVITES get logged as
separate calls. We see a lot of these going through FWD and our PSTN stuff and
several other providers we peer with, and it becomes weird. For instance, a
normal call...
userA --> proxy --> userB
Works really well UNLESS there's a reINVITE from userB to userA for a direct
path. In that case, for a 10-second call, we get call logs that looks like:
Outgoing: uriA | uriB | 00:10 | 2006-04-04 13:34:48
Incoming: uriB | uriA | 00:10 | 2006-04-04 13:34:48
The same call is logged twice as it logs both the INVITE outgoing and the
incoming reINVITE.
Can anyone think of a query that would strip the reINVITEs? Or are we likely
going to have to do something programatically to get rid of these?
Thanks,
N.
Show replies by date