laforge has submitted this change. (
https://gerrit.osmocom.org/c/pysim/+/37138?usp=email
)
Change subject: pySim.cat: Add more alredy-defined IEs to ProactiveCmd classes
......................................................................
pySim.cat: Add more alredy-defined IEs to ProactiveCmd classes
... also add some spec references
Change-Id: If071abdc61c7c881bdea5292d12c74a1024f6784
---
M pySim/cat.py
1 file changed, 54 insertions(+), 9 deletions(-)
Approvals:
Jenkins Builder: Verified
osmith: Looks good to me, but someone else must approve
laforge: Looks good to me, approved
diff --git a/pySim/cat.py b/pySim/cat.py
index f2c4a30..2f05b93 100644
--- a/pySim/cat.py
+++ b/pySim/cat.py
@@ -24,7 +24,7 @@
from construct import Struct, Enum, BitStruct, this
from construct import GreedyBytes, Switch, GreedyRange, FlagsEnum
from pySim.tlv import TLV_IE, COMPR_TLV_IE, BER_TLV_IE, TLV_IE_Collection
-from pySim.construct import PlmnAdapter, BcdAdapter, HexAdapter, GsmStringAdapter,
TonNpi
+from pySim.construct import PlmnAdapter, BcdAdapter, HexAdapter, GsmStringAdapter,
TonNpi, GsmString
from pySim.utils import b2h, dec_xplmn_w_act
# Tag values as per TS 101 220 Table 7.23
@@ -408,6 +408,10 @@
class ImmediateResponse(COMPR_TLV_IE, tag=0xAB):
pass
+# TS 102 223 Section 8.44
+class DtmfString(COMPR_TLV_IE, tag=0xAC):
+ _construct = BcdAdapter(GreedyBytes)
+
# TS 102 223 Section 8.45
class Language(COMPR_TLV_IE, tag=0xAD):
_construct = HexAdapter(GreedyBytes)
@@ -417,11 +421,27 @@
_construct = Struct('me_status'/Enum(Int8ub, in_idle_state=0,
not_in_idle_state=1),
'timing_advance'/Int8ub)
+# TS 31.111 Section 8.47
+class BrowserIdentity(COMPR_TLV_IE, tag=0xB0):
+ _construct = Enum(Int8ub, default=0, wml=1, html=2, xhtml=3, chtml=4)
+
+# TS 31.111 Section 8.48
+class Url(COMPR_TLV_IE, tag=0xB1):
+ _construct = GsmString(GreedyBytes)
+
# TS 31.111 Section 8.49
class Bearer(COMPR_TLV_IE, tag=0xB2):
SingleBearer = Enum(Int8ub, sms=0, csd=1, ussd=2, packet_Service=3)
_construct = GreedyRange(SingleBearer)
+# TS 102 223 Section 8.50
+class ProvisioningFileReference(COMPR_TLV_IE, tag=0xB3):
+ _construct = HexAdapter(GreedyBytes)
+
+# TS 102 223 Section 8.51
+class BrowserTerminationCause(COMPR_TLV_IE, tag=0xB4):
+ _construct = Enum(Int8ub, user_termination=0, error_termination=1)
+
# TS 102 223 Section 8.52
class BearerDescription(COMPR_TLV_IE, tag=0xB5):
# TS 31.111 Section 8.52.1
@@ -482,7 +502,7 @@
# TS 31.111 Section 8.56
class ChannelStatus(COMPR_TLV_IE, tag = 0xB8):
# complex decoding, depends on out-of-band context/knowledge :(
- pass
+ _construct = HexAdapter(GreedyBytes)
# TS 102 223 Section 8.58
class OtherAddress(COMPR_TLV_IE, tag = 0xBE):
@@ -849,6 +869,7 @@
# TS 102 223 7.5.8 LanguageSelectionEvent
# TS 102 223 7.5.9 BrowserTerminationEvent
# TS 102 223 7.5.10 DataAvailableEvent
+ ChannelStatus, ChannelDataLength,
# TS 102 223 7.5.11 ChannelStatusEvent
# TS 102 223 7.5.12 AccessTechnologyChangeEvent
# TS 102 223 7.5.13 DisplayParametersChangedEvent
@@ -925,20 +946,24 @@
ApplicationSpecificRefreshData, PlmnWactList, PlmnList]):
pass
+# TS 102 223 Section 6.6.4
class MoreTime(ProactiveCmd, tag=0x02,
- nested=[CommandDetails]):
+ nested=[CommandDetails, DeviceIdentities]):
pass
+# TS 102 223 Section 6.6.5
class PollInterval(ProactiveCmd, tag=0x03,
- nested=[CommandDetails]):
+ nested=[CommandDetails, DeviceIdentities, Duration]):
pass
+# TS 102 223 Section 6.6.14
class PollingOff(ProactiveCmd, tag=0x04,
- nested=[CommandDetails]):
+ nested=[CommandDetails, DeviceIdentities]):
pass
+# TS 102 223 Section 6.6.16
class SetUpEventList(ProactiveCmd, tag=0x05,
- nested=[CommandDetails]):
+ nested=[CommandDetails, DeviceIdentities, EventList]):
pass
# TS 31.111 Section 6.6.12
@@ -966,20 +991,27 @@
SMS_TPDU, IconIdentifier, TextAttribute,
FrameIdentifier]):
pass
+# TS 102 223 6.6.24
class SendDTMF(ProactiveCmd, tag=0x14,
- nested=[CommandDetails]):
+ nested=[CommandDetails, DeviceIdentities, AlphaIdentifier,
+ DtmfString, IconIdentifier, TextAttribute, FrameIdentifier]):
pass
+# TS 102 223 6.6.26
class LaunchBrowser(ProactiveCmd, tag=0x15,
- nested=[CommandDetails]):
+ nested=[CommandDetails, DeviceIdentities, BrowserIdentity, Url, Bearer,
ProvisioningFileReference,
+ TextString, AlphaIdentifier, IconIdentifier, TextAttribute,
FrameIdentifier,
+ NetworkAccessName]):
pass
class GeographicalLocationRequest(ProactiveCmd, tag=0x16,
nested=[CommandDetails]):
pass
+# TS 102 223 6.6.5
class PlayTone(ProactiveCmd, tag=0x20,
- nested=[CommandDetails]):
+ nested=[CommandDetails, DeviceIdentities, AlphaIdentifier,
+ Tone, Duration, IconIdentifier, TextAttribute, FrameIdentifier]):
pass
# TS 101 220 Table 7.17 + 102 223 6.6.1/9.4 CMD=0x21
@@ -1215,6 +1247,8 @@
nested=[CommandDetails, DeviceIdentities, Result,
Duration, TextString, ItemIdentifier,
#TODO: LocalInformation and other optional/conditional
IEs
+ ChannelData, ChannelDataLength,
+ ChannelStatus, BufferSize, BearerDescription,
]):
pass
--
To view, visit
https://gerrit.osmocom.org/c/pysim/+/37138?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: If071abdc61c7c881bdea5292d12c74a1024f6784
Gerrit-Change-Number: 37138
Gerrit-PatchSet: 5
Gerrit-Owner: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-MessageType: merged