Änderungen
Sie können ein eigenes [[Telefon-Logs|Telefon-Log]]-Modul erstellen, um aus sourceDESK [[Telefon-Logs]] von einem neuen Anbieter abzurufen.
== Grundaufbau ==
Ein Telefon-Log-Modul bekommt ein eigenes Verzeichnis unter ''modules/telephone_log''.In diesem Verzeichnis muss sich eine PHP-Datei mit dem gleichen Namen wie das Verzeichnis und der Endung ''.php'' befinden.In dieser PHP-Datei wird eine Klasse definiert, die von der Klasse ''TelephoneLogModule'' erbt. == Attribute ==Es werden mehrere Attribute innerhalb der erstellten Klasse benötigt, die höchstens ''protected'' sein dürfen: * ''$short'' gibt den Kurznamen des Moduls an, das entspricht dem Verzeichnis- bzw. Dateinamen* ''$name'' gibt einen Anzeigenamen für das Modul an
== Methoden ==
Folgende Methoden können definiert werden: * ''getSettings()'' gibt die verfügbaren Modul-Einstellungen als Array zurück - auf sie kann nachher über das Array ''$this->options'' zugegriffen werden* ''getLogs()'' gibt die verfügbaren Log-Einträge als Array zurück == Beispiel-Code ==<source lang="php"><?php class AnydeskLog extends TelephoneLogModule { protected $name = "Anydesk"; protected $short = "anydesk"; public function getSettings() { return Array( "licenseId" => Array("type" => "text", "name" => "Lizenz-ID"), "apiPassword" => Array("type" => "password", "name" => "API-Schlüssel"), ); } public function getLogs() { $licenseId = $this->options['licenseId']; $apiPassword = $this->options['apiPassword']; $time = time(); $contentHash = "2jmj7l5rSw0yVb/vlWAYkK/YBwk="; $resource = "/sessions?limit=20"; $tokenRaw = "GET\n$resource\n$time\n$contentHash"; $token = base64_encode(hash_hmac("sha1", $tokenRaw, $apiPassword, true)); $auth = "AD $licenseId:$time:$token"; $ch = curl_init("https://v1.api.anydesk.com:8081" . $resource); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: $auth"]); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $res = json_decode(curl_exec($ch)); curl_close($ch); if (empty($res->list)) { return Array(); } $c = Array(); foreach ($res->list as $i) { $c[] = Array( "start" => date("Y-m-d H:i:s", $i->{'start-time'}), "end" => date("Y-m-d H:i:s", $i->{'end-time'}), "info" => $i->to->alias, ); } return $c; }}</source>