svetlana 3 年 前
コミット
7c087d8c95
2 ファイル変更11 行追加6 行削除
  1. 2 0
      app/app.py
  2. 9 6
      app/cel.py

+ 2 - 0
app/app.py

@@ -326,6 +326,8 @@ async def getUserCDR(user,
   app.logger.warning('SQL: {}'.format(_q))
   _cdr = {}
   async for row in db.iterate(query=_q):
+    if (row['disposition']=='FAILED' and row['lastapp']=='Queue'):
+        continue
     if row['linkedid'] in _cdr:
       _cdr[row['linkedid']].events.add(row)
     else:

+ 9 - 6
app/cel.py

@@ -9,11 +9,14 @@ fieldsFilter = ('id', 'linkedid', 'appdata', 'lastdata')
 class CdrChannel:
   def __init__(self, chanData):
     self._str = chanData
-    (self.tech,
-     self.peer,
-     self.context,
-     self.id,
-     self.leg) = re.match(r'(\w+)/(\w+)(?:@([\w-]+))?-([0-9a-f]{8})(?:;([0-9]+))?', chanData).groups()
+    try:
+      (self.tech,
+       self.peer,
+       self.context,
+       self.id,
+       self.leg) = re.match(r'(\w+)/(\w+)(?:@([\w-]+))?-([0-9a-f]{8})(?:;([0-9]+))?', chanData).groups()
+    except:
+      pass
   def __repr__(self):
     return self._str
 
@@ -88,7 +91,7 @@ class CdrUserEvents(CdrEvents):
         hi = len(self._events)
         while lo < hi:
           mid = (lo+hi)//2
-          if event.calldate < self._events[mid].calldate:
+          if event.calldate <= self._events[mid].calldate:
             hi = mid
           else:
             lo = mid+1