diff --git a/app/xml_cdr/resources/classes/xml_cdr.php b/app/xml_cdr/resources/classes/xml_cdr.php index cc009c7767..e4ffb88e1c 100644 --- a/app/xml_cdr/resources/classes/xml_cdr.php +++ b/app/xml_cdr/resources/classes/xml_cdr.php @@ -202,6 +202,7 @@ if (!class_exists('xml_cdr')) { $this->fields[] = $field_name; } } + $this->fields = array_unique($this->fields); } /** @@ -571,20 +572,22 @@ if (!class_exists('xml_cdr')) { $fields = explode(",", $field); $field_name = end($fields); $this->fields[] = $field_name; - if (count($fields) == 1) { - $this->array[$key][$field_name] = urldecode($xml->variables->{$fields[0]}); - } - if (count($fields) == 2) { - $this->array[$key][$field_name] = urldecode($xml->{$fields[0]}->{$fields[1]}); - } - if (count($fields) == 3) { - $this->array[$key][$field_name] = urldecode($xml->{$fields[0]}->{$fields[1]}->{$fields[2]}); - } - if (count($fields) == 4) { - $this->array[$key][$field_name] = urldecode($xml->{$fields[0]}->{$fields[1]}->{$fields[2]}->{$fields[3]}); - } - if (count($fields) == 5) { - $this->array[$key][$field_name] = urldecode($xml->{$fields[0]}->{$fields[1]}->{$fields[2]}->{$fields[3]}->{$fields[4]}); + if (!isset($this->array[$key][$field_name])){ + if (count($fields) == 1) { + $this->array[$key][$field_name] = urldecode($xml->variables->{$fields[0]}); + } + if (count($fields) == 2) { + $this->array[$key][$field_name] = urldecode($xml->{$fields[0]}->{$fields[1]}); + } + if (count($fields) == 3) { + $this->array[$key][$field_name] = urldecode($xml->{$fields[0]}->{$fields[1]}->{$fields[2]}); + } + if (count($fields) == 4) { + $this->array[$key][$field_name] = urldecode($xml->{$fields[0]}->{$fields[1]}->{$fields[2]}->{$fields[3]}); + } + if (count($fields) == 5) { + $this->array[$key][$field_name] = urldecode($xml->{$fields[0]}->{$fields[1]}->{$fields[2]}->{$fields[3]}->{$fields[4]}); + } } } }