_fp = stream_socket_client($Socket); if ($this->_fp === false) { throw new ClientException('Could not connect to socket "' . $Socket . '"'); } stream_set_timeout($this->_fp, 1); } public function __destruct() { fclose($this->_fp); } public function exec($command) { fwrite($this->_fp, str_replace("\n", '\n', $command) . PHP_EOL); $answer = fgets($this->_fp); if (is_string($answer)) { if (substr($answer, 0, 7) === 'ANSWER ') { $bytes = (int) substr($answer, 7); if ($bytes > 0) { $Response = trim(fread($this->_fp, $bytes + 1)); return $Response; } }elseif ($answer === PHP_EOL) { return true; } } return false; } public function escapeStringArgument($argument) { return '"' . addslashes($argument) . '"'; } public function escapePeer($peer) { return str_replace(' ', '_', $peer); } public function msg($peer, $msg) { $peer = $this->escapePeer($peer); $msg = $this->escapeStringArgument($msg); return $this->exec('msg ' . $peer . ' ' . $msg); } public function send_audio($peer, $file) { $peer = $this->escapePeer($peer); return $this->exec('send_audio ' . $peer . ' ' . $file); } }