Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private function queue_command($adevs, $commandid, $ipcommand = null)
- {
- //adevs key = id, value = Phone
- $ret = 0;
- $db = new ods_db();
- global $config;
- if($db->open()) {
- $serverCID = '';
- $executor = $_SESSION['userid'] ?? 'system';
- $remoteIp = $_SERVER['HTTP_X_FORWARDED_FOR'] ?? $_SERVER['REMOTE_ADDR'] ?? null;
- $remoteIp = trim(explode(',', (string)$remoteIp)[0]);
- $errortext = 'user:' . mb_substr($executor, 0, 90);
- $sql = 'select * from ServerCommand where id = ?';
- try {
- $stmt = $db->db->prepare($sql);
- $stmt->execute(array($commandid));
- $cmd = $stmt->fetch();
- } catch (Exception $e) {
- return false;
- }
- if(!empty($cmd['Letter'])) {
- $sql = "select * from ServerPhones where Letter=? limit 1";
- try {
- $stmt = $db->db->prepare($sql);
- $stmt->execute(array($cmd['Letter']));
- $sp = $stmt->fetch();
- } catch (Exception $e) {
- return false;
- }
- $serverCID = $sp['Number'];
- }
- $sql = 'INSERT INTO OutgoingLog (`Devices_id`, `ServerCommand_id`, `ServerCID`, `DeviceNUM`, `cmd`, `IPCommand_id`, `errortext`, `RemoteIP`) VALUES ';
- $sql .= trim(str_repeat('(?,?,?,?,?,?,?,?),', count($adevs)), ',');
- try {
- $stmt = $db->db->prepare($sql);
- $ains = [];
- foreach($adevs as $key => $value) {
- array_push(
- $ains,
- $key,
- $commandid,
- $serverCID,
- $value,
- $cmd['cmd'],
- $ipcommand,
- $errortext,
- $remoteIp
- );
- $ret++;
- }
- $stmt->execute($ains);
- } catch (Exception $e) {
- $ret = false;
- }
- if($cmd['type']==3) {//ip command
- reset($adevs);
- $sql = "SELECT id from ServerCommand
- where DeviceType= (select type from Devices where id = ?)
- and type=1 and letter='F'
- ";
- try {
- $stmt = $db->db->prepare($sql);
- $stmt->execute([key($adevs)]);
- $rqcommand = $stmt->fetch();
- } catch (Exception $e) {
- $ret = false;
- }
- if(!($ret===false)) {
- $this->queue_command($adevs, $rqcommand['id'], $commandid);
- }
- }
- }
- else
- $ret = false;
- return $ret;
- }
Advertisement
Add Comment
Please, Sign In to add comment