From 1d6f702faa47697721e52b67b4b0fc1e81bce538 Mon Sep 17 00:00:00 2001 From: Christian Weiske Date: Tue, 24 Jul 2012 07:47:44 +0200 Subject: [PATCH] dummy callref support --- src/callnotifier/EDSS1/Parser.php | 17 +++++++++-------- tests/callnotifier/EDSS1/ParserTest.php | 7 +++++++ 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/callnotifier/EDSS1/Parser.php b/src/callnotifier/EDSS1/Parser.php index f3ebeba..b5a906d 100644 --- a/src/callnotifier/EDSS1/Parser.php +++ b/src/callnotifier/EDSS1/Parser.php @@ -19,16 +19,17 @@ class EDSS1_Parser if ($crLen == 0xFF) { return $m; } - $m->callRefType = ord($cCallRef{0}) >> 7; - $nCallRef = ord($cCallRef{0}) & 127; - if ($crLen > 1) { - $nCallRef = ord($cCallRef{1}) + ($nCallRef << 8); - if ($crLen > 2) { - $nCallRef = ord($cCallRef{2}) + ($nCallRef << 8); + if ($crLen > 0) { + $m->callRefType = ord($cCallRef{0}) >> 7; + $nCallRef = ord($cCallRef{0}) & 127; + if ($crLen > 1) { + $nCallRef = ord($cCallRef{1}) + ($nCallRef << 8); + if ($crLen > 2) { + $nCallRef = ord($cCallRef{2}) + ($nCallRef << 8); + } } + $m->callRef = $nCallRef; } - $m->callRef = $nCallRef; - //var_dump($curpos, dechex($m->callRef)); $m->type = ord($bytes{++$curpos}); $complete = false; diff --git a/tests/callnotifier/EDSS1/ParserTest.php b/tests/callnotifier/EDSS1/ParserTest.php index e31367d..78347be 100644 --- a/tests/callnotifier/EDSS1/ParserTest.php +++ b/tests/callnotifier/EDSS1/ParserTest.php @@ -78,6 +78,13 @@ class EDSS1_ParserTest extends \PHPUnit_Framework_TestCase self::assertEquals(0x050607, $msg->callRef, 'Call reference is wrong'); self::assertEquals(1, $msg->callRefType, 'Call reference type is wrong'); } + + public function testParseCallRefDummy() + { + $msg = $this->parseMsg( + '02 FF FF 03 08 00 62 1C 12 91 A1 0F 02 02 41 06 06 06 04 00 82 67 01 0A 02 01 01 70 0B A1 33 34 32 36 31 34 30 38 36 32 FF 0A' + ); + } } ?> -- 2.30.2