|
@@ -157,7 +157,11 @@ async def presenceStatusCallback(mngr: Manager, msg: Message):
|
|
|
if combinedState != prevState:
|
|
if combinedState != prevState:
|
|
|
await userStateChangeCallback(user, combinedState, prevState)
|
|
await userStateChangeCallback(user, combinedState, prevState)
|
|
|
|
|
|
|
|
-async def getCDR(start=None, end=None, table='cdr', field='calldate'):
|
|
|
|
|
|
|
+async def getCDR(start=None,
|
|
|
|
|
+ end=None,
|
|
|
|
|
+ table='cdr',
|
|
|
|
|
+ field='calldate',
|
|
|
|
|
+ sort='CAST(linkedid AS DECIMAL(12,2)), CAST(uniqueid AS DECIMAL(12,2)), sequence'):
|
|
|
_cdr = {}
|
|
_cdr = {}
|
|
|
if end is None:
|
|
if end is None:
|
|
|
end = dt.now()
|
|
end = dt.now()
|
|
@@ -169,8 +173,10 @@ async def getCDR(start=None, end=None, table='cdr', field='calldate'):
|
|
|
IN (SELECT DISTINCT(linkedid)
|
|
IN (SELECT DISTINCT(linkedid)
|
|
|
FROM {table}
|
|
FROM {table}
|
|
|
WHERE {field}
|
|
WHERE {field}
|
|
|
- BETWEEN :start AND :end);'''.format(table=table,
|
|
|
|
|
- field=field),
|
|
|
|
|
|
|
+ BETWEEN :start AND :end)
|
|
|
|
|
+ ORDER BY {sort};'''.format(table=table,
|
|
|
|
|
+ field=field,
|
|
|
|
|
+ sort=sort),
|
|
|
values={'start':start,
|
|
values={'start':start,
|
|
|
'end':end}):
|
|
'end':end}):
|
|
|
if row['linkedid'] in _cdr:
|
|
if row['linkedid'] in _cdr:
|
|
@@ -182,8 +188,8 @@ async def getCDR(start=None, end=None, table='cdr', field='calldate'):
|
|
|
cdr.append(_cdr[_id])
|
|
cdr.append(_cdr[_id])
|
|
|
return cdr
|
|
return cdr
|
|
|
|
|
|
|
|
-async def getCEL(start=None, end=None, table='cel', field='eventtime'):
|
|
|
|
|
- return await getCDR(start, end, table, field)
|
|
|
|
|
|
|
+async def getCEL(start=None, end=None, table='cel', field='eventtime', sort='id'):
|
|
|
|
|
+ return await getCDR(start, end, table, field, sort)
|
|
|
|
|
|
|
|
@app.before_first_request
|
|
@app.before_first_request
|
|
|
async def initHttpClient():
|
|
async def initHttpClient():
|