aboutsummaryrefslogtreecommitdiff
path: root/callnotifier.php
diff options
context:
space:
mode:
authorChristian Weiske <cweiske@cweiske.de>2012-07-14 21:14:29 +0200
committerChristian Weiske <cweiske@cweiske.de>2012-07-14 21:14:29 +0200
commit19e5e158f8a6e9dda406c2eb70ad035211613df8 (patch)
tree4307e9a237f5306daacacd9239d79e4f7a65fc30 /callnotifier.php
parentff87c8d9c123b42917097456828df83b580894ab (diff)
downloadauerswald-callnotifier-19e5e158f8a6e9dda406c2eb70ad035211613df8.tar.gz
auerswald-callnotifier-19e5e158f8a6e9dda406c2eb70ad035211613df8.zip
introduce classes
Diffstat (limited to 'callnotifier.php')
-rw-r--r--callnotifier.php95
1 files changed, 17 insertions, 78 deletions
diff --git a/callnotifier.php b/callnotifier.php
index a481b1f..9093691 100644
--- a/callnotifier.php
+++ b/callnotifier.php
@@ -1,84 +1,23 @@
#!/usr/bin/env php
<?php
-$ip = '192.168.3.95';
-$port = 42225;
-
-$socket = awcn_connect($ip, $port);
-awcn_init($socket);
-awcn_loop($socket);
-awcn_disconnect($socket);
-
-function awcn_connect($ip, $port) {
- $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
- if ($socket === false) {
- echo "socket_create() failed: reason: "
- . socket_strerror(socket_last_error()) . "\n";
- } else {
- echo "OK.\n";
- }
- echo "Attempting to connect to '$ip' on port '$port'...";
- $result = socket_connect($socket, $ip, $port);
- if ($result === false) {
- echo "socket_connect() failed.\nReason: ($result) "
- . socket_strerror(socket_last_error($socket)) . "\n";
- } else {
- echo "OK.\n";
- }
- return $socket;
-}
-
-function awcn_init($socket)
-{
- $msg = "\x00\x01DecoderV=1\n";
- socket_write($socket, $msg, strlen($msg));
- $res = awcn_read_response($socket);
- socket_write($socket, "\x00\x02", 2);
-}
-
-function awcn_loop($socket)
-{
- while (true) {
- $dbgmsg = awcn_read_response($socket);
- //echo $dbgmsg . "\n";
- awcn_handle_msg($dbgmsg);
+namespace callnotifier;
+
+set_include_path(
+ __DIR__ . '/src/'
+ . PATH_SEPARATOR . get_include_path()
+);
+spl_autoload_register(
+ function ($class) {
+ $file = str_replace(array('\\', '_'), '/', $class) . '.php';
+ $hdl = @fopen($file, 'r', true);
+ if ($hdl !== false) {
+ fclose($hdl);
+ require $file;
+ }
}
-}
-function awcn_read_response($socket)
-{
- $res = socket_read($socket, 2048, PHP_NORMAL_READ);
- return substr($res, 2, -1);
-}
+);
-function awcn_disconnect($socket)
-{
- socket_write($socket, "\x00\x03", 2);
- socket_close($socket);
-}
-
-function awcn_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);
- }
-}
+$cli = new CLI();
+$cli->run();
?> \ No newline at end of file