[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:31 UTC 2009


The following commit has been merged in the master branch:
commit 1fc4edc4ce9ca4331e3ff8050503aad9b0b07813
Author: Michael 'Mickey' Lauer <mickey at vanille-media.de>
Date:   Sat Dec 6 03:47:23 2008 +0100

    ogsmd: Implement org.freesmartphone.GSM.SIM.GetIssuer() -> s
    NOTE: Clients can now show the mobile virtual network operator
    (MVNO) instead of the actual network operator, if they want to.
    This is a result for FSO ticket #271.

diff --git a/ChangeLog b/ChangeLog
index 261e2c6..b1672f7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,9 @@
 2008-12-06	Michael Lauer	<mickey at openmoko.org>
 
 	* [ogsmd] Added 'cid' and 'lac' results to org.freesmartphone.GSM.Network.GetStatus()
+	* [ogsmd] Implemented org.freesmartphone.GSM.SIM.GetIssuer()
+	  NOTE: Clients can now show the Mobile Virtual Network Operator instead of the
+	  actual service provider, if they want to. See e.g. FSO ticket #271.
 
 2008-12-05	Michael Lauer	<mickey at openmoko.org>
 
diff --git a/framework/subsystems/ogsmd/device.py b/framework/subsystems/ogsmd/device.py
index 9fab5b0..b9eb158 100644
--- a/framework/subsystems/ogsmd/device.py
+++ b/framework/subsystems/ogsmd/device.py
@@ -11,7 +11,7 @@ Module: device
 """
 
 MODULE_NAME = "ogsmd.device"
-__version__ = "0.9.7.1"
+__version__ = "0.9.8.0"
 
 from framework import resource
 from modems import modemFactory, allModems, setCurrentModem
@@ -254,6 +254,12 @@ class Device( resource.Resource ):
     def GetHomeZones( self, dbus_ok, dbus_error ):
         mediator.SimGetHomeZones( self, dbus_ok, dbus_error )
 
+    @dbus.service.method( DBUS_INTERFACE_SIM, "", "s",
+                          async_callbacks=( "dbus_ok", "dbus_error" ) )
+    @resource.checkedmethod
+    def GetIssuer( self, dbus_ok, dbus_error ):
+        mediator.SimGetIssuer( self, dbus_ok, dbus_error )
+
     ### SIM phonebook
     @dbus.service.method( DBUS_INTERFACE_SIM, "", "as",
                           async_callbacks=( "dbus_ok", "dbus_error" ) )
diff --git a/framework/subsystems/ogsmd/modems/abstract/mediator.py b/framework/subsystems/ogsmd/modems/abstract/mediator.py
index f11f0c3..519c1e6 100644
--- a/framework/subsystems/ogsmd/modems/abstract/mediator.py
+++ b/framework/subsystems/ogsmd/modems/abstract/mediator.py
@@ -21,7 +21,7 @@ TODO:
  * refactor parameter validation
 """
 
-__version__ = "0.9.10.3"
+__version__ = "0.9.11.0"
 MODULE_NAME = "ogsmd.modems.abstract.mediator"
 
 from .calling import CallHandler
@@ -616,6 +616,33 @@ class SimGetHomeZones( SimMediator ): # a(siii)
                 self._ok( result )
 
 #=========================================================================#
+class SimGetIssuer( SimMediator ): # s
+#=========================================================================#
+    def trigger( self ):
+        self._commchannel.enqueue( "+CRSM=176,28486,0,0,17", self.responseFromChannel, self.errorFromChannel )
+
+    def responseFromChannel( self, request, response ):
+        if response[-1] != "OK":
+            SimMediator.responseFromChannel( self, request, response )
+        try:
+            sw1, sw2, payload = safesplit( self._rightHandSide( response[0] ), "," )
+        except ValueError: # response did not include a payload
+            self._error( error.SimNotFound( "Elementary record not present or unreadable" ) )
+        else:
+            if int(sw1) != 144 or int(sw2) != 0: # command succeeded as per GSM 11.11, 9.4.1
+                self._error( error.SimNotFound( "Elementary record not present or unreadable" ) )
+            else:
+                nameraw = payload[2:]
+                name = ""
+                for index in xrange( 0, 24, 2 ):
+                    c = int(nameraw[index:index+2],16)
+                    if 32 < c < 128:
+                        name += chr(c)
+                    else:
+                        break
+                self._ok( name )
+
+#=========================================================================#
 class SimListPhonebooks( SimMediator ):
 #=========================================================================#
     def trigger( self ):

-- 
FSO frameworkd Debian packaging



More information about the pkg-fso-commits mailing list