[pkg-fso-commits] [SCM] framworkd debian packageing branch, master, updated. milestone2-89-geb27523
Daniel Willmann
daniel at totalueberwachung.de
Sat Aug 23 14:06:19 UTC 2008
The following commit has been merged in the master branch:
commit 8a6e11dd1adcaeb4eb2f1a27201bf013889e56dc
Author: Daniel Willmann <daniel at totalueberwachung.de>
Date: Thu Aug 7 18:03:26 2008 +0200
ogsmd: Redo the phonenumber function
diff --git a/framework/subsystems/ogsmd/gsm/convert.py b/framework/subsystems/ogsmd/gsm/convert.py
index 438d89f..c8f7e3e 100644
--- a/framework/subsystems/ogsmd/gsm/convert.py
+++ b/framework/subsystems/ogsmd/gsm/convert.py
@@ -15,6 +15,18 @@ GSM conversion functions.
"""
#=========================================================================#
+def PDUNumberToTuple(bs):
+#=========================================================================#
+ num_type = (bs[0] & 0x70) >> 4
+ num_plan = (bs[0] & 0x0F)
+ number = bs[1:]
+ if num_type == 5:
+ number = unpack_sevenbit(bs)
+ else:
+ number = bcd_decode(bs)
+ return (num_type, num_plan, number)
+
+#=========================================================================#
def tobinary( n ):
#=========================================================================#
s = ""
diff --git a/framework/subsystems/ogsmd/gsm/sms.py b/framework/subsystems/ogsmd/gsm/sms.py
index 6fe3145..8f93b8c 100644
--- a/framework/subsystems/ogsmd/gsm/sms.py
+++ b/framework/subsystems/ogsmd/gsm/sms.py
@@ -35,7 +35,7 @@ def decodeSMS( pdu ):
# SCA - Service Center address
sca_len = bytes[offset]
offset += 1
- sms.sca = parse_number( bytes[offset:offset+sca_len] )
+ sms.sca = PDUNumberToTuple( bytes[offset:offset+sca_len] )
offset += sca_len
# PDU type
@@ -60,7 +60,7 @@ def decodeSMS( pdu ):
# WARNING, the length is coded in digits of the number, not in octets occupied!
oa_len = 1 + (bytes[offset] + 1) / 2
offset += 1
- sms.oa = parse_number( bytes[offset:offset+oa_len] )
+ sms.oa = PDUNumberToTuple( bytes[offset:offset+oa_len] )
sms.da = sms.oa
offset += oa_len
@@ -162,17 +162,6 @@ def parse_time(bs):
zone = "+%.2f" % (timezone / 4,)
return "%04d-%02d-%02d %02d:%02d:%02d GMT%s" % (year, bs[1], bs[2], bs[3], bs[4], bs[5], zone)
-def parse_number(bs):
- num_type = bs[0]
- bs = bs[1:]
- if num_type == 0x91:
- return "+" + bcd_decode(bs)
- elif num_type == 0xD0:
- return unpack_sevenbit(bs)
- else:
- return "unknown-number-type:%02x:" % (num_type,) + "".join(["%02x" % (n,) for n in bs])
-
-
if __name__ == "__main__":
pdus = [
"0791448720900253040C914497035290960000500151614414400DD4F29C9E769F41E17338ED06",
--
framworkd debian packageing
More information about the pkg-fso-commits
mailing list