[pkg-fso-commits] [SCM] FSO frameworkd Debian packaging branch, master, updated. milestone4-368-g700ab82

Daniel Willmann daniel at totalueberwachung.de
Mon Feb 2 18:51:20 UTC 2009


The following commit has been merged in the master branch:
commit 8590d6c6bb686b63b6d4b294bd012bfa94ec3045
Merge: 1cd7057890de0c48dff0d5ef1d524535973b1f0e f2d8daeea973c860357b6513089cc916a71e47dc
Author: Daniel Willmann <daniel at totalueberwachung.de>
Date:   Thu Nov 20 15:38:18 2008 +0100

    Merge branch 'stabilization/milestone4'

diff --combined docs/ogsmd/ti_calypso/modem
index d5c3be0,8dcc7b5..a845b03
--- a/docs/ogsmd/ti_calypso/modem
+++ b/docs/ogsmd/ti_calypso/modem
@@@ -9,14 -9,14 +9,14 @@@
  
  * +CFUN=1 always "succeeds" even if it answers with ERROR (SIM PIN Required)
  
 -* I always receive CME ERROR 32 on +COPS=? until CREG=1
 +* I always receive CME ERROR 32 on +COPS=? until +CREG=1
  
  * +CREG=%d influences both the unsolicited response as well as the solicited response code
  
  * Phonebook indices start with 1 (not 0)
  
  * If SIM PIN not given, SIM file reading commands (phonebook, messagebook, crm) deliver the slightly misleading
 -  * CMS error code 310 (=SIM NOT INSERTED), or (yes, that can happen as well, if the PHB is not ready yet)
 +  * CMS ERROR 310 (=SIM NOT INSERTED), or (yes, that can happen as well, if the PHB is not ready yet)
    * OK (=empty response) :( Readyness of the PHB is available if CFUN=1 and SMS auth given
  
  * If SMS phone number available in messagebook, address name will be automatically inserted
@@@ -24,23 -24,19 +24,26 @@@
  * +CIEV supports 'signal' and 'smsfull' and has to be explicitly enabled with:
    +CMER=2,0,0,1,0 and +CIND=5,1
  
 -* +CBM Cell broadcasts only appear on the channel that issued +CNMI the last time.
 +* +CBM Cell broadcasts only appear on the virtual channel that issued +CNMI the last time.
  
 -* %CBHZ=1 needs to be issued otherwise the Calypso will swallow everything but the first CB
 +* %CBHZ=1 needs to be issued, otherwise the Calypso will swallow everything but the first Cell Broadcast message.
 +  * WARNING: %CBHZ=1 seems to have a very negative effect on power consumption and (believe it or not) voice quality :/
  
 -* Cancelling certain commands (ATH for a start) will render a channel unusable. Calypso moves into
 -  a Error 512 state in that case. You will have to restart the modem once this happens.
 +* Cancelling certain commands (ATH for a start) will render a virtual channel unusable. Calypso moves into
 +  a CMS ERROR 512 state in that case. You will have to restart the modem once this happens.
  
  * Shutting down an ongoing GPRS connection can take ages. Need to better interface with pppd here.
 -  * We should issue ATH here (first check whether there is no call ongoing though)
 +  * We should issue ATH here (first check whether there is no call ongoing though).
 +
 +* +CLIR is virtual channel-specific (yes, hard to believe), so you need to issue it on the same channel
 +  where you issue ATD.
 +
 +* Deep Sleep Mode is broken. If you suffer from permament recamping (+CREG: 0, then +CREG: 1,...), then you
 +  need to issue the (completely undocumented) command AT%SLEEP=2 (disable deep sleep). AT%SLEEP=4 enables deep sleep.
  
+ * Sometimes on outgoing calls %CPI with message type of 9 (setup MO call) wont get sent. For outgoing call progress
+   detection one should rather rely on %CPI with message type 3 (call proceed)
+ 
  === GSM standards violations ===
  
  * None found yet
@@@ -49,3 -45,4 +52,3 @@@
  
  * Too many to list here, please see http://wiki.openmoko.org
  
 -
diff --combined framework/subsystems/ogsmd/modems/ti_calypso/unsolicited.py
index 050cad9,269a42e..a0bd3a0
--- a/framework/subsystems/ogsmd/modems/ti_calypso/unsolicited.py
+++ b/framework/subsystems/ogsmd/modems/ti_calypso/unsolicited.py
@@@ -7,7 -7,7 +7,7 @@@ The Open Device Daemon - Python Impleme
  GPLv2 or later
  """
  
 -__version__ = "0.8.1"
 +__version__ = "0.8.3"
  
  from framework.config import config
  from ogsmd.modems.abstract.unsolicited import AbstractUnsolicitedResponseDelegate
@@@ -116,32 -116,12 +116,32 @@@ class UnsolicitedResponseDelegate( Abst
      # +CSSU: 2,,"",128
      def plusCSSU( self, righthandside ):
          code, index, number, type = safesplit( righthandside, "," )
 +        info = {}
 +        if code == "0":
 +            info["forwarded"] = True
 +        elif code == "1":
 +            info["cug"] = True
 +        elif code == "2":
 +            info["remotehold"] = True
 +        elif code == "3":
 +            info["remotehold"] = False
 +        else:
 +            logger.info( "unhandled +CSSU code '%s'" % code )
 +        if info:
 +            self._mediator.callHandler.statusChangeFromNetworkByStatus( "incoming", info )
  
      #
      # TI Calypso proprietary
      #
  
      # %CCCN: 0,0,A10E02010402011030068101428F0101
 +
 +    # call to homezone number while in homezone
 +    # this is sent while the call is incoming
 +    # %CCCN: 0,0,A10E0201000201103006810120850101
 +    # calling a alice sim
 +    # %CCCN: 0,0,A10E0201000201103006810128840107
 +    #
      def percentCCCN( self, righthandside ):
          direction, callId, ie = safesplit( righthandside, "," )
          # this is ASN.1 BER, but we don't want a full decoder here
@@@ -228,8 -208,14 +228,14 @@@
          if line:
              info["line"] = int( line )
  
+         # Always report the direction
+         if direction == "0":
+             info.update ( { "direction": "outgoing" } )
+         elif direction == "1":
+             info.update ( { "direction": "incoming" } )
+ 
          if msgType == "0": # setup (MT)
-             info.update ( { "status": "incoming", "direction": "incoming" } )
+             info.update ( { "status": "incoming" } )
          elif msgType == "6": # connected (MO & MT)
              info.update( { "status": "active" } )
          elif msgType == "1": # disconnected (MO & MT)
@@@ -238,17 -224,12 +244,19 @@@
          elif msgType == "8": # network reject (MO)
              info.update( { "status": "release", "reason": "no service" } )
          elif msgType == "9": # request (MO)
-             info.update( { "status": "outgoing", "direction": "outgoing" } )
-         if msgType in ( "01689" ):
+             info.update( { "status": "outgoing" } )
+         elif msgType == "3": # Sometimes setup is not sent?!
+             info.update( { "status": info["direction"] } )
+         if msgType in ( "013689" ):
              self._mediator.callHandler.statusChangeFromNetwork( int(callId), info )
  
 +    # %CPRI: 1,2
 +    def percentCPRI( self, righthandside ):
 +        gsm, gprs = safesplit( righthandside, ',' )
 +        cipher_gsm = const.NETWORK_CIPHER_STATUS.get( int(gsm), "unknown" )
 +        cipher_gprs = const.NETWORK_CIPHER_STATUS.get( int(gprs), "unknown" )
 +        self._object.CipherStatus( cipher_gsm, cipher_gprs )
 +
      # %CSSN: 1,0,A11502010802013B300D04010F0408AA510C0683C16423
      def percentCSSN( self, righthandside ):
          direction, transPart, ie = safesplit( righthandside, "," )

-- 
FSO frameworkd Debian packaging



More information about the pkg-fso-commits mailing list