From ed39da2ea138da1b4a8eac805bcde19dedd8c054 Mon Sep 17 00:00:00 2001 From: Christian Weiske Date: Mon, 23 Jul 2012 18:18:33 +0200 Subject: call reference type parsing --- src/callnotifier/EDSS1/Parser.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/callnotifier/EDSS1/Parser.php') diff --git a/src/callnotifier/EDSS1/Parser.php b/src/callnotifier/EDSS1/Parser.php index 0c9b86a..f3ebeba 100644 --- a/src/callnotifier/EDSS1/Parser.php +++ b/src/callnotifier/EDSS1/Parser.php @@ -19,7 +19,15 @@ class EDSS1_Parser if ($crLen == 0xFF) { return $m; } - $m->callRef = ord($cCallRef); + $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; //var_dump($curpos, dechex($m->callRef)); $m->type = ord($bytes{++$curpos}); -- cgit v1.2.3