[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