From 706ce1501a9ab1a33e4106774665c631a3ad3749 Mon Sep 17 00:00:00 2001 From: Christian Weiske Date: Sat, 14 Jul 2012 22:28:47 +0200 Subject: dumping network data is possible now --- src/callnotifier/MessageHandler.php | 61 +++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 src/callnotifier/MessageHandler.php (limited to 'src/callnotifier/MessageHandler.php') diff --git a/src/callnotifier/MessageHandler.php b/src/callnotifier/MessageHandler.php new file mode 100644 index 0000000..b4ed645 --- /dev/null +++ b/src/callnotifier/MessageHandler.php @@ -0,0 +1,61 @@ +config = $config; + $this->prepareDump(); + } + + public function handle($msg) + { + if ($this->config->dumpFile !== null) { + $this->dump($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); + } + } + + protected function prepareDump() + { + if ($this->config->dumpFile === null) { + return; + } + $this->dumpHdl = fopen($this->config->dumpFile, 'w'); + if (!$this->dumpHdl) { + throw new Exception('Cannot open replay file for reading'); + } + } + + protected function dump($msg) + { + fwrite($this->dumpHdl, $msg . "\n"); + } +} + +?> -- cgit v1.2.3