X-Git-Url: https://git.cweiske.de/auerswald-callnotifier.git/blobdiff_plain/19e5e158f8a6e9dda406c2eb70ad035211613df8:/src/callnotifier/Socket.php..706ce1501a9ab1a33e4106774665c631a3ad3749:/src/callnotifier/Source/Remote.php diff --git a/src/callnotifier/Socket.php b/src/callnotifier/Source/Remote.php similarity index 58% rename from src/callnotifier/Socket.php rename to src/callnotifier/Source/Remote.php index 1130bd8..36e468d 100644 --- a/src/callnotifier/Socket.php +++ b/src/callnotifier/Source/Remote.php @@ -1,20 +1,19 @@ ip = $ip; + $this->config = $config; + $this->handler = $handler; } public function run() { - $this->connect($this->ip, $this->port); + $this->connect($this->config->host, $this->config->port); $this->init(); $this->loop(); $this->disconnect(); @@ -54,9 +53,10 @@ class Socket while (true) { $dbgmsg = $this->read_response(); //echo $dbgmsg . "\n"; - $this->handle_msg($dbgmsg); + $this->handler->handle($dbgmsg); } } + function read_response() { $res = socket_read($this->socket, 2048, PHP_NORMAL_READ); @@ -69,33 +69,6 @@ class Socket socket_close($this->socket); } - function handle_msg($msg) - { - if (substr($msg, 0, 9) != '[DKANPROT') { - //unknown message type - return; - } - $regex = '#^\\[DKANPROT-([^ ]+) ([0-9]+)\\] (.*)$#'; - if (!preg_match($regex, $msg, $matches)) { - //message should always be that way - return false; - } - list(, $type, $someid, $details) = $matches; - - if ($type != 'Info') { - //we only want info messages - var_dump($type . ': ' . $details); - return; - } - //Vegw/Ets-Cref:[0xffef]/[0x64] - VEGW_SETUP from upper layer to internal destination: CGPN[**22]->CDPN[41], - var_dump($details); - $regex = '#CGPN\\[([^\\]]+)\\]->CDPN\\[([^\\]]+)\\]#'; - if (preg_match($regex, $details, $matches)) { - var_dump('a call!', $matches); - } - } - - } ?>