it_sms; "OUT": it_sms -> Handy */ var $date; /* Date of message sent / received */ var $number; /* FQPhone number of other party z. B. 0041763901391 */ var $message; /* Message text */ var $result; /* Result of transaction or empty */ /* Private */ var $logfile; /* Log file name or empty for no log */ /* Constructor */ function it_sms($service, $keyword, $logfile="XX") { $this->service = $service; $this->keyword = $keyword; $this->logfile = $logfile; if ($logfile == "XX") $this->logfile = $_SERVER['DOCUMENT_ROOT']."/../log/sms.log"; } /* Write a log file entry */ function log() { if ($this->logfile == "") return; $log = date("Y-m-d H:i:s") . " DIR=$this->direction NUMBER=$this->number RESULT=$this->result TEXT=\"$this->message\""; if ($_COOKIE['UID']) $log .= " UID=\"" . $_COOKIE['UID'] . "\""; if ($file = fopen($this->logfile, "a")) { fwrite($file, $log . "\n"); fclose($file); } } /* Send an SMS. Returns 1 on success, 0 otherwise. */ function send($number, $message) { $this->direction = "OUT"; $this->date = date("Y-m-d H:i:s"); /* Remove all non-digits */ $number = ereg_replace('[^+0-9]', '', $number); /* Change 076 to 004176 etc. */ $this->number = ereg_replace('^0([1-9])', '0041\\1', $number); $this->message = $message; $url = "http://panther.minick.ch/cgi-bin/$this->service/send?number=$this->number&message=" . urlencode($this->keyword." ".$this->message); /* debug("Sending SMS: $url
\n"); */ $result = file($url); $this->result = trim($result[5]); /* "OKAY" or "NOTOK" w/o newline */ $this->log(); if ($this->result == "OKAY") return 1; /* Success */ return 0; /* Failure */ } /* ** Receive an SMS from HTTP GET request ** Format: number=Absendertelefonnummer, message=SMS-Text, id=xxxxx ** Returns: 1=got a valid message, 0=got invalid garbage, ignore. */ function receive($secret="") { $this->direction = "IN"; $this->date = date("Y-m-d H:i:s"); $this->number = $_GET['number']; $this->message = $_GET['message']; if ($_GET['id'] == $secret) { $this->result = "OKAY"; $this->log(); return 1; } else { $this->result = "NOTOK: Bad authentication \"".$_GET['id']."\""; $this->log(); $this->number = $this->message = ""; return 0; } } } /* End class it_sms */ ?>