aboutsummaryrefslogtreecommitdiff
path: root/src/callnotifier/Logger/CallNotifySend.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/callnotifier/Logger/CallNotifySend.php')
-rw-r--r--src/callnotifier/Logger/CallNotifySend.php65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/callnotifier/Logger/CallNotifySend.php b/src/callnotifier/Logger/CallNotifySend.php
new file mode 100644
index 0000000..d5cb9dd
--- /dev/null
+++ b/src/callnotifier/Logger/CallNotifySend.php
@@ -0,0 +1,65 @@
+<?php
+namespace callnotifier;
+
+class Logger_CallNotifySend extends Logger_CallBase
+{
+ public function log($type, $arData)
+ {
+ switch ($type) {
+ case 'startingCall':
+ $this->displayStart($arData['call']);
+ break;
+ case 'finishedCall':
+ $this->displayFinished($arData['call']);
+ break;
+ }
+ }
+
+
+ protected function displayStart(CallMonitor_Call $call)
+ {
+ $this->addUnsetVars($call);
+ if ($call->type == CallMonitor_Call::INCOMING) {
+ $this->notify(
+ trim($this->getNumberString($call, 'from')),
+ 'Incoming call'
+ );
+ } else {
+ $this->notify(
+ trim($this->getNumberString($call, 'to')),
+ 'Outgoing call'
+ );
+ }
+ }
+
+ protected function displayFinished(CallMonitor_Call $call)
+ {
+ $this->addUnsetVars($call);
+ if ($call->type == CallMonitor_Call::INCOMING) {
+ $title = trim($this->getNumberString($call, 'from'));
+ $msg = 'End of incoming call';
+ } else {
+ $title = trim($this->getNumberString($call, 'to'));
+ $msg = 'End of outgoing call';
+ }
+ $this->notify(
+ $title,
+ $msg
+ . ', length ' . date('H:i:s', $call->end - $call->start - 3600)
+ );
+ }
+
+ protected function notify($title, $msg)
+ {
+ exec(
+ 'notify-send'
+ . ' -u low'
+ . ' --expire-time=1000'
+ . ' -i phone'
+ . ' -c callmonitor'
+ . ' ' . escapeshellarg($title)
+ . ' ' . escapeshellarg($msg)
+ );
+ }
+}
+?>