. */ /** * Signal Transport * * @author kzink * @copyright 2021 kzink, LibreNMS * @license GPL */ namespace LibreNMS\Alert\Transport; use LibreNMS\Alert\Transport; class Signal extends Transport { public function deliverAlert($obj, $opts) { $signalOpts = [ 'path' => escapeshellarg($this->config['path']), 'recipient-type' => ($this->config['recipient-type'] == 'group') ? ' -g ' : ' ', 'recipient' => escapeshellarg($this->config['recipient']), ]; return $this->contactSignal($obj, $signalOpts); } public function contactSignal($obj, $opts) { exec($opts['path'] . ' --dbus-system send' . $opts['recipient-type'] . $opts['recipient'] . ' -m ' . escapeshellarg($obj['title'])); return true; } public static function configTemplate() { return [ 'validation' => [], 'config' => [ [ 'title' => 'Path', 'name' => 'path', 'descr' => 'Local Path to CLI', 'type' => 'text', ], [ 'title' => 'Recipient type', 'name' => 'recipient-type', 'descr' => 'Phonenumber ', 'type' => 'select', 'options' => [ 'Mobile number' => 'single', 'Group' => 'group', ], ], [ 'title' => 'Recipient', 'name' => 'recipient', 'descr' => 'Message recipient', 'type' => 'text', ], ], ]; } }