[pkg-fso-commits] [SCM] FSO frameworkd Debian packaging branch, master, updated. milestone4-368-g700ab82
Michael 'Mickey' Lauer
mickey at vanille-media.de
Mon Feb 2 18:51:43 UTC 2009
The following commit has been merged in the master branch:
commit a06be62ed80d1097e0093096e273a8c555318948
Author: Michael 'Mickey' Lauer <mickey at vanille-media.de>
Date: Sat Dec 20 14:56:27 2008 +0100
ogsmd: move numberToPhonebookTuple from gsm.const into modems.abstract.modem
We need to be able to override it per-modem (Freescale Neptune *cough*)
diff --git a/framework/subsystems/ogsmd/gsm/const.py b/framework/subsystems/ogsmd/gsm/const.py
index c1273a8..3141c65 100644
--- a/framework/subsystems/ogsmd/gsm/const.py
+++ b/framework/subsystems/ogsmd/gsm/const.py
@@ -1032,7 +1032,7 @@ def phonebookTupleToNumber( nstring, ntype ):
if ntype not in ( 129, 145 ):
logger.warning( "Out-of-spec GSM number type seen: %s. Please report." % ntype )
- if ntype == 145: # should not include '+', but sometimes it does
+ if ntype == 145: # should not include '+' then, but on some modems, it does
if nstring[0] == '+':
return nstring
else:
@@ -1041,21 +1041,6 @@ def phonebookTupleToNumber( nstring, ntype ):
return nstring
#=========================================================================#
-def numberToPhonebookTuple( nstring ):
-#=========================================================================#
- """
- Returns a phonebook tuple depending on a number.
- """
-
- if type( nstring ) != types.StringType():
- nstring = nstring.encode( "iso-8859-1" ) # as set via +CSCS
-
- if nstring[0] == '+':
- return nstring[1:], 145
- else:
- return nstring, 129
-
-#=========================================================================#
def unicodeToString( uni ):
#=========================================================================#
"""
@@ -1199,8 +1184,6 @@ if __name__ == "__main__":
print "OK"
assert phonebookTupleToNumber( "123456789", 129 ) == "123456789"
assert phonebookTupleToNumber( "123456789", 145 ) == "+123456789"
- assert numberToPhonebookTuple( "123456789" ) == ( "123456789", 129 )
- assert numberToPhonebookTuple( "+123456789" ) == ( "123456789", 145 )
print "OK"
assert textToUnicode( "B\xf6rse" ) != "<??? undecodable ???>"
assert unicodeToString( u"\xc3\xa4" ) != "<??? unencodable ???>"
diff --git a/framework/subsystems/ogsmd/modems/abstract/mediator.py b/framework/subsystems/ogsmd/modems/abstract/mediator.py
index 5c99b04..52476b9 100644
--- a/framework/subsystems/ogsmd/modems/abstract/mediator.py
+++ b/framework/subsystems/ogsmd/modems/abstract/mediator.py
@@ -761,7 +761,7 @@ class SimStoreEntry( SimMediator ):
except KeyError:
self._error( error.InvalidParameter( "valid categories are %s" % const.PHONEBOOK_CATEGORY.keys() ) )
else:
- number, ntype = const.numberToPhonebookTuple( self.number )
+ number, ntype = currentModem().numberToPhonebookTuple( self.number )
name = convert.UnicodeToucs2hex( self.name.strip('"') )
self._commchannel.enqueue( '+CPBS="%s";+CPBW=%d,"%s",%d,"%s"' % ( self.pbcategory, self.index, number, ntype, name ), self.responseFromChannel, self.errorFromChannel, timeout=currentModem().timeout("SIMACCESS") )
@@ -1170,7 +1170,7 @@ class NetworkEnableCallForwarding( NetworkMediator ):
except KeyError:
self._error( error.InvalidParameter( "valid classes are %s" % const.CALL_FORWARDING_CLASS.keys() ) )
- number, ntype = const.numberToPhonebookTuple( self.number )
+ number, ntype = currentModem().numberToPhonebookTuple( self.number )
if self.reason == "no reply" and self.timeout > 0:
self._commchannel.enqueue( """+CCFC=%d,3,"%s",%d,%d,,,%d""" % ( reason, number, ntype, class_, self.timeout ), self.responseFromChannel, self.errorFromChannel, timeout=currentModem().timeout("NETWORK") )
@@ -1249,7 +1249,7 @@ class CallEmergency( CallMediator ):
class CallTransfer( CallMediator ):
#=========================================================================#
def trigger( self ):
- number, ntype = const.numberToPhonebookTuple( self.number )
+ number, ntype = currentModem().numberToPhonebookTuple( self.number )
self._commchannel.enqueue( '+CTFR="%s",%d' % ( number, ntype ), self.responseFromChannel, self.errorFromChannel )
#=========================================================================#
diff --git a/framework/subsystems/ogsmd/modems/abstract/modem.py b/framework/subsystems/ogsmd/modems/abstract/modem.py
index cf6116b..842c75c 100644
--- a/framework/subsystems/ogsmd/modems/abstract/modem.py
+++ b/framework/subsystems/ogsmd/modems/abstract/modem.py
@@ -102,8 +102,24 @@ class AbstractModem( object ):
self._data[key] = value
def timeout( self, category ):
+ """
+ Returns a timeout.
+ """
return self._timeouts.get( category, FALLBACK_TIMEOUT )
+ def numberToPhonebookTuple( self, nstring ):
+ """
+ Returns a phonebook tuple.
+ """
+ if type( nstring ) != types.StringType():
+ # even though we set +CSCS="UCS2" (modem charset), the name is always encoded in text format, not PDU.
+ nstring = nstring.encode( "iso-8859-1" )
+
+ if nstring[0] == '+':
+ return nstring[1:], 145
+ else:
+ return nstring, 129
+
def channel( self, category ):
"""
Returns the communication channel for certain command category.
--
FSO frameworkd Debian packaging
More information about the pkg-fso-commits
mailing list