public function add(CDRFlow $cdr_flow) { $time = $cdr_flow->getTime(); if ($time <= Parser::timeDay()) { $h = 0; } elseif ($time >= Parser::timeDayEnd()) { $h = 23; } else { $h = (int) date("G", $time); } self::$data[$h][] = $cdr_flow->getAsString(); }
protected function isDublicate(CDRFlow $cdr_flow) { $i = ['datet', 'duration', 'A164', 'B164']; $c = $cdr_flow->get(); $num_str = $cdr_flow->getNumStr(); if (isset($this->dublicates[$c[$i[0]]][$c[$i[1]]][$c[$i[2]]][$c[$i[3]]])) { $vals = $this->dublicates[$c[$i[0]]][$c[$i[1]]][$c[$i[2]]][$c[$i[3]]]; $cdr_str = $cdr_flow->getAsString(); $dublicated_str = implode(', ', $vals); Log::instance()->warning("CDR #{$num_str} is dublicated CDR(s) #{$dublicated_str} ({$cdr_str})"); $this->dublicates[$c[$i[0]]][$c[$i[1]]][$c[$i[2]]][$c[$i[3]]][] = $num_str; return TRUE; } $this->dublicates = array_slice($this->dublicates, -$this->dublicates_limit - 1); $this->dublicates[$c[$i[0]]][$c[$i[1]]][$c[$i[2]]][$c[$i[3]]][] = $num_str; return FALSE; }