aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Weiske <cweiske@cweiske.de>2012-08-12 21:50:01 +0200
committerChristian Weiske <cweiske@cweiske.de>2012-08-12 21:50:01 +0200
commit1b28b0289cdcb6adcbd496be07fda3a5ec705bfd (patch)
treef7c05fe9c673243eaf3817d0c200c01f5c760cb2
parentce9357171bbfda5d7fe2b53f07b0a27ceafa8b2f (diff)
downloadauerswald-callnotifier-1b28b0289cdcb6adcbd496be07fda3a5ec705bfd.tar.gz
auerswald-callnotifier-1b28b0289cdcb6adcbd496be07fda3a5ec705bfd.zip
load call details on finished calls, too
-rw-r--r--src/callnotifier/CallMonitor.php3
-rw-r--r--src/callnotifier/CallMonitor/Detailler/CSV.php8
-rw-r--r--src/callnotifier/CallMonitor/Detailler/LDAP.php8
-rw-r--r--src/callnotifier/CallMonitor/Detailler/OpenGeoDb.php8
4 files changed, 21 insertions, 6 deletions
diff --git a/src/callnotifier/CallMonitor.php b/src/callnotifier/CallMonitor.php
index f55bfa7..4923967 100644
--- a/src/callnotifier/CallMonitor.php
+++ b/src/callnotifier/CallMonitor.php
@@ -101,6 +101,9 @@ class CallMonitor
case EDSS1_Message::RELEASE:
case EDSS1_Message::RELEASE_COMPLETE:
$call->end = time();
+ //we need to load details here because they might not have been
+ //loaded yet, e.g. for calls to MSNs that have no phones.
+ $this->loadCallDetails($call);
$this->log->log('finishedCall', array('call' => $call));
unset($this->currentCalls[$callId]);
break;
diff --git a/src/callnotifier/CallMonitor/Detailler/CSV.php b/src/callnotifier/CallMonitor/Detailler/CSV.php
index 2261169..ab881dd 100644
--- a/src/callnotifier/CallMonitor/Detailler/CSV.php
+++ b/src/callnotifier/CallMonitor/Detailler/CSV.php
@@ -66,9 +66,13 @@ class CallMonitor_Detailler_CSV implements CallMonitor_Detailler
public function loadCallDetails(CallMonitor_Call $call)
{
if ($call->type == CallMonitor_Call::INCOMING) {
- $call->fromName = $this->loadName($call->from);
+ if (!isset($call->fromName) || $call->fromName === null) {
+ $call->fromName = $this->loadName($call->from);
+ }
} else {
- $call->toName = $this->loadName($call->to);
+ if (!isset($call->toName) || $call->toName === null) {
+ $call->toName = $this->loadName($call->to);
+ }
}
}
diff --git a/src/callnotifier/CallMonitor/Detailler/LDAP.php b/src/callnotifier/CallMonitor/Detailler/LDAP.php
index 72fe07b..26599f4 100644
--- a/src/callnotifier/CallMonitor/Detailler/LDAP.php
+++ b/src/callnotifier/CallMonitor/Detailler/LDAP.php
@@ -43,9 +43,13 @@ class CallMonitor_Detailler_LDAP implements CallMonitor_Detailler
public function loadCallDetails(CallMonitor_Call $call)
{
if ($call->type == CallMonitor_Call::INCOMING) {
- $call->fromName = $this->loadName($call->from);
+ if (!isset($call->fromName) || $call->fromName === null) {
+ $call->fromName = $this->loadName($call->from);
+ }
} else {
- $call->toName = $this->loadName($call->to);
+ if (!isset($call->toName) || $call->toName === null) {
+ $call->toName = $this->loadName($call->to);
+ }
}
}
diff --git a/src/callnotifier/CallMonitor/Detailler/OpenGeoDb.php b/src/callnotifier/CallMonitor/Detailler/OpenGeoDb.php
index 8345128..46711b0 100644
--- a/src/callnotifier/CallMonitor/Detailler/OpenGeoDb.php
+++ b/src/callnotifier/CallMonitor/Detailler/OpenGeoDb.php
@@ -58,9 +58,13 @@ class CallMonitor_Detailler_OpenGeoDb implements CallMonitor_Detailler
public function loadCallDetails(CallMonitor_Call $call)
{
if ($call->type == CallMonitor_Call::INCOMING) {
- $call->fromLocation = $this->loadLocation($call->from);
+ if (!isset($call->fromLocation) || $call->fromLocation === null) {
+ $call->fromLocation = $this->loadLocation($call->from);
+ }
} else {
- $call->toLocation = $this->loadLocation($call->to);
+ if (!isset($call->toLocation) || $call->toLocation === null) {
+ $call->toLocation = $this->loadLocation($call->to);
+ }
}
}