|
|
@ -0,0 +1,48 @@ |
|
|
|
|
|
from django.db import models |
|
|
|
|
|
from django.utils.translation import ugettext_lazy as _ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AsteriskCDR(models.Model): |
|
|
|
|
|
DISPOSITION_CHOICES = ( |
|
|
|
|
|
('NO ANSWER', _('No answer')), |
|
|
|
|
|
('FAILED', _('Failed')), |
|
|
|
|
|
('BUSY', _('Busy')), |
|
|
|
|
|
('ANSWERED', _('Answered')), |
|
|
|
|
|
('UNKNOWN', _('Unknown')) |
|
|
|
|
|
) |
|
|
|
|
|
calldate = models.DateTimeField(default='0000-00-00 00:00:00', primary_key=True) |
|
|
|
|
|
clid = models.CharField(max_length=80, default='') |
|
|
|
|
|
src = models.CharField(max_length=80, default='') |
|
|
|
|
|
dst = models.CharField(max_length=80, default='') |
|
|
|
|
|
dcontext = models.CharField(max_length=80, default='') |
|
|
|
|
|
channel = models.CharField(max_length=80, default='') |
|
|
|
|
|
dstchannel = models.CharField(max_length=80, default='') |
|
|
|
|
|
lastapp = models.CharField(max_length=80, default='') |
|
|
|
|
|
lastdata = models.CharField(max_length=80, default='') |
|
|
|
|
|
duration = models.IntegerField(default=0) |
|
|
|
|
|
billsec = models.IntegerField(default=0) |
|
|
|
|
|
start = models.DateTimeField(null=True, blank=True, default=None) |
|
|
|
|
|
answer = models.DateTimeField(null=True, blank=True, default=None) |
|
|
|
|
|
end = models.DateTimeField(null=True, blank=True, default=None) |
|
|
|
|
|
disposition = models.CharField(max_length=45, choices=DISPOSITION_CHOICES, default='') |
|
|
|
|
|
amaflags = models.IntegerField(default=0) |
|
|
|
|
|
accountcode = models.CharField(max_length=20, default='') |
|
|
|
|
|
userfield = models.CharField(max_length=255, default='') |
|
|
|
|
|
uniqueid = models.CharField(max_length=32, default='') |
|
|
|
|
|
|
|
|
|
|
|
def save(self, *args, **kwargs): |
|
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
|
|
def delete(self, *args, **kwargs): |
|
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
|
|
class Meta: |
|
|
|
|
|
abstract = True |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def getModel(): |
|
|
|
|
|
class DynamicCDR(AsteriskCDR): |
|
|
|
|
|
class Meta: |
|
|
|
|
|
abstract = False |
|
|
|
|
|
db_table = 'cdr' |
|
|
|
|
|
return DynamicCDR |