<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/pysim/+/17879">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Enable parsing of USIM Service table (UST)<br><br>As per TS.31.102, This EF indicates which USIM services are available.<br>If a service is not indicated as available in the USIM, the ME shall not select this service.<br><br>Parsing of UST is achieved by first selecting the USIM application using its AID.<br>This is followed by selecting EF.UST with File ID - 6f38 in ADF.USIM<br><br>Change-Id: I54dbbd40bd3d22cee81f7c32e58cd946f8564257<br>---<br>M pySim-read.py<br>M pysim-testdata/Fairwaves-SIM.ok<br>M pysim-testdata/Wavemobile-SIM.ok<br>M pysim-testdata/sysmoISIM-SJA2.ok<br>M pysim-testdata/sysmoUSIM-SJS1.ok<br>5 files changed, 166 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/pySim-read.py b/pySim-read.py</span><br><span>index 7557201..4551e82 100755</span><br><span>--- a/pySim-read.py</span><br><span>+++ b/pySim-read.py</span><br><span>@@ -29,6 +29,7 @@</span><br><span> import re</span><br><span> import sys</span><br><span> from pySim.ts_51_011 import EF, DF, EF_SST_map</span><br><span style="color: hsl(120, 100%, 40%);">+from pySim.ts_31_102 import EF_UST_map</span><br><span> </span><br><span> from pySim.commands import SimCardCommands</span><br><span> from pySim.cards import card_detect, Card</span><br><span>@@ -242,5 +243,17 @@</span><br><span>     else:</span><br><span>                print("SIM Service Table: Can't read, response code = %s" % (sw,))</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+  # Check whether we have th AID of USIM, if so select it by its AID</span><br><span style="color: hsl(120, 100%, 40%);">+    # EF.UST - File Id in ADF USIM : 6f38</span><br><span style="color: hsl(120, 100%, 40%);">+ if '9000' == card.select_adf_by_aid():</span><br><span style="color: hsl(120, 100%, 40%);">+                # EF.UST</span><br><span style="color: hsl(120, 100%, 40%);">+              (res, sw) = card.read_binary('6f38')</span><br><span style="color: hsl(120, 100%, 40%);">+          if sw == '9000':</span><br><span style="color: hsl(120, 100%, 40%);">+                      print("USIM Service Table: %s" % res)</span><br><span style="color: hsl(120, 100%, 40%);">+                       # Print those which are available</span><br><span style="color: hsl(120, 100%, 40%);">+                     print("%s" % dec_st(res, table="usim"))</span><br><span style="color: hsl(120, 100%, 40%);">+           else:</span><br><span style="color: hsl(120, 100%, 40%);">+                 print("USIM Service Table: Can't read, response code = %s" % (sw,))</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  # Done for this card and maybe for everything ?</span><br><span>      print("Done !\n")</span><br><span>diff --git a/pysim-testdata/Fairwaves-SIM.ok b/pysim-testdata/Fairwaves-SIM.ok</span><br><span>index 9df44fd..0dbd89f 100644</span><br><span>--- a/pysim-testdata/Fairwaves-SIM.ok</span><br><span>+++ b/pysim-testdata/Fairwaves-SIM.ok</span><br><span>@@ -86,5 +86,33 @@</span><br><span>    Service 58 - Extension 8</span><br><span>     Service 59 - MMS User Connectivity Parameters</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+USIM Service Table: 01ea1ffc21360480010000</span><br><span style="color: hsl(120, 100%, 40%);">+ Service 1 - Local Phone Book</span><br><span style="color: hsl(120, 100%, 40%);">+  Service 10 - Short Message Storage (SMS)</span><br><span style="color: hsl(120, 100%, 40%);">+      Service 12 - Short Message Service Parameters (SMSP)</span><br><span style="color: hsl(120, 100%, 40%);">+  Service 14 - Capability Configuration Parameters 2 (CCP2)</span><br><span style="color: hsl(120, 100%, 40%);">+     Service 15 - Cell Broadcast Message Identifier</span><br><span style="color: hsl(120, 100%, 40%);">+        Service 16 - Cell Broadcast Message Identifier Ranges</span><br><span style="color: hsl(120, 100%, 40%);">+ Service 17 - Group Identifier Level 1</span><br><span style="color: hsl(120, 100%, 40%);">+ Service 18 - Group Identifier Level 2</span><br><span style="color: hsl(120, 100%, 40%);">+ Service 19 - Service Provider Name</span><br><span style="color: hsl(120, 100%, 40%);">+    Service 20 - User controlled PLMN selector with Access Technology</span><br><span style="color: hsl(120, 100%, 40%);">+     Service 21 - MSISDN</span><br><span style="color: hsl(120, 100%, 40%);">+   Service 27 - GSM Access</span><br><span style="color: hsl(120, 100%, 40%);">+       Service 28 - Data download via SMS-PP</span><br><span style="color: hsl(120, 100%, 40%);">+ Service 29 - Data download via SMS-CB</span><br><span style="color: hsl(120, 100%, 40%);">+ Service 30 - Call Control by USIM</span><br><span style="color: hsl(120, 100%, 40%);">+     Service 31 - MO-SMS Control by USIM</span><br><span style="color: hsl(120, 100%, 40%);">+   Service 32 - RUN AT COMMAND command</span><br><span style="color: hsl(120, 100%, 40%);">+   Service 33 - shall be set to 1</span><br><span style="color: hsl(120, 100%, 40%);">+        Service 38 - GSM security context</span><br><span style="color: hsl(120, 100%, 40%);">+     Service 42 - Operator controlled PLMN selector with Access Technology</span><br><span style="color: hsl(120, 100%, 40%);">+ Service 43 - HPLMN selector with Access Technology</span><br><span style="color: hsl(120, 100%, 40%);">+    Service 45 - PLMN Network Name</span><br><span style="color: hsl(120, 100%, 40%);">+        Service 46 - Operator PLMN List</span><br><span style="color: hsl(120, 100%, 40%);">+       Service 51 - Service Provider Display Information</span><br><span style="color: hsl(120, 100%, 40%);">+     Service 64 - VGCS security</span><br><span style="color: hsl(120, 100%, 40%);">+    Service 65 - VBS security</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> Done !</span><br><span> </span><br><span>diff --git a/pysim-testdata/Wavemobile-SIM.ok b/pysim-testdata/Wavemobile-SIM.ok</span><br><span>index 01ba6b7..2de0892 100644</span><br><span>--- a/pysim-testdata/Wavemobile-SIM.ok</span><br><span>+++ b/pysim-testdata/Wavemobile-SIM.ok</span><br><span>@@ -91,5 +91,44 @@</span><br><span>  Service 58 - Extension 8</span><br><span>     Service 59 - MMS User Connectivity Parameters</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+USIM Service Table: 9eff1b3c37fe5900000000</span><br><span style="color: hsl(120, 100%, 40%);">+ Service 2 - Fixed Dialling Numbers (FDN)</span><br><span style="color: hsl(120, 100%, 40%);">+      Service 3 - Extension 2</span><br><span style="color: hsl(120, 100%, 40%);">+       Service 4 - Service Dialling Numbers (SDN)</span><br><span style="color: hsl(120, 100%, 40%);">+    Service 5 - Extension3</span><br><span style="color: hsl(120, 100%, 40%);">+        Service 8 - Outgoing Call Information (OCI and OCT)</span><br><span style="color: hsl(120, 100%, 40%);">+   Service 9 - Incoming Call Information (ICI and ICT)</span><br><span style="color: hsl(120, 100%, 40%);">+   Service 10 - Short Message Storage (SMS)</span><br><span style="color: hsl(120, 100%, 40%);">+      Service 11 - Short Message Status Reports (SMSR)</span><br><span style="color: hsl(120, 100%, 40%);">+      Service 12 - Short Message Service Parameters (SMSP)</span><br><span style="color: hsl(120, 100%, 40%);">+  Service 13 - Advice of Charge (AoC)</span><br><span style="color: hsl(120, 100%, 40%);">+   Service 14 - Capability Configuration Parameters 2 (CCP2)</span><br><span style="color: hsl(120, 100%, 40%);">+     Service 15 - Cell Broadcast Message Identifier</span><br><span style="color: hsl(120, 100%, 40%);">+        Service 16 - Cell Broadcast Message Identifier Ranges</span><br><span style="color: hsl(120, 100%, 40%);">+ Service 17 - Group Identifier Level 1</span><br><span style="color: hsl(120, 100%, 40%);">+ Service 18 - Group Identifier Level 2</span><br><span style="color: hsl(120, 100%, 40%);">+ Service 20 - User controlled PLMN selector with Access Technology</span><br><span style="color: hsl(120, 100%, 40%);">+     Service 21 - MSISDN</span><br><span style="color: hsl(120, 100%, 40%);">+   Service 27 - GSM Access</span><br><span style="color: hsl(120, 100%, 40%);">+       Service 28 - Data download via SMS-PP</span><br><span style="color: hsl(120, 100%, 40%);">+ Service 29 - Data download via SMS-CB</span><br><span style="color: hsl(120, 100%, 40%);">+ Service 30 - Call Control by USIM</span><br><span style="color: hsl(120, 100%, 40%);">+     Service 33 - shall be set to 1</span><br><span style="color: hsl(120, 100%, 40%);">+        Service 34 - Enabled Services Table</span><br><span style="color: hsl(120, 100%, 40%);">+   Service 35 - APN Control List (ACL)</span><br><span style="color: hsl(120, 100%, 40%);">+   Service 37 - Co-operative Network List</span><br><span style="color: hsl(120, 100%, 40%);">+        Service 38 - GSM security context</span><br><span style="color: hsl(120, 100%, 40%);">+     Service 42 - Operator controlled PLMN selector with Access Technology</span><br><span style="color: hsl(120, 100%, 40%);">+ Service 43 - HPLMN selector with Access Technology</span><br><span style="color: hsl(120, 100%, 40%);">+    Service 44 - Extension 5</span><br><span style="color: hsl(120, 100%, 40%);">+      Service 45 - PLMN Network Name</span><br><span style="color: hsl(120, 100%, 40%);">+        Service 46 - Operator PLMN List</span><br><span style="color: hsl(120, 100%, 40%);">+       Service 47 - Mailbox Dialling Numbers</span><br><span style="color: hsl(120, 100%, 40%);">+ Service 48 - Message Waiting Indication Status</span><br><span style="color: hsl(120, 100%, 40%);">+        Service 49 - Call Forwarding Indication Status</span><br><span style="color: hsl(120, 100%, 40%);">+        Service 52 - Multimedia Messaging Service (MMS)</span><br><span style="color: hsl(120, 100%, 40%);">+       Service 53 - Extension 8</span><br><span style="color: hsl(120, 100%, 40%);">+      Service 55 - MMS User Connectivity Parameters</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> Done !</span><br><span> </span><br><span>diff --git a/pysim-testdata/sysmoISIM-SJA2.ok b/pysim-testdata/sysmoISIM-SJA2.ok</span><br><span>index f1acc16..80045cf 100644</span><br><span>--- a/pysim-testdata/sysmoISIM-SJA2.ok</span><br><span>+++ b/pysim-testdata/sysmoISIM-SJA2.ok</span><br><span>@@ -100,5 +100,55 @@</span><br><span>    Service 58 - Extension 8</span><br><span>     Service 59 - MMS User Connectivity Parameters</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+USIM Service Table: beff9f9de73e0408400170730000002e00000000</span><br><span style="color: hsl(120, 100%, 40%);">+       Service 2 - Fixed Dialling Numbers (FDN)</span><br><span style="color: hsl(120, 100%, 40%);">+      Service 3 - Extension 2</span><br><span style="color: hsl(120, 100%, 40%);">+       Service 4 - Service Dialling Numbers (SDN)</span><br><span style="color: hsl(120, 100%, 40%);">+    Service 5 - Extension3</span><br><span style="color: hsl(120, 100%, 40%);">+        Service 6 - Barred Dialling Numbers (BDN)</span><br><span style="color: hsl(120, 100%, 40%);">+     Service 8 - Outgoing Call Information (OCI and OCT)</span><br><span style="color: hsl(120, 100%, 40%);">+   Service 9 - Incoming Call Information (ICI and ICT)</span><br><span style="color: hsl(120, 100%, 40%);">+   Service 10 - Short Message Storage (SMS)</span><br><span style="color: hsl(120, 100%, 40%);">+      Service 11 - Short Message Status Reports (SMSR)</span><br><span style="color: hsl(120, 100%, 40%);">+      Service 12 - Short Message Service Parameters (SMSP)</span><br><span style="color: hsl(120, 100%, 40%);">+  Service 13 - Advice of Charge (AoC)</span><br><span style="color: hsl(120, 100%, 40%);">+   Service 14 - Capability Configuration Parameters 2 (CCP2)</span><br><span style="color: hsl(120, 100%, 40%);">+     Service 15 - Cell Broadcast Message Identifier</span><br><span style="color: hsl(120, 100%, 40%);">+        Service 16 - Cell Broadcast Message Identifier Ranges</span><br><span style="color: hsl(120, 100%, 40%);">+ Service 17 - Group Identifier Level 1</span><br><span style="color: hsl(120, 100%, 40%);">+ Service 18 - Group Identifier Level 2</span><br><span style="color: hsl(120, 100%, 40%);">+ Service 19 - Service Provider Name</span><br><span style="color: hsl(120, 100%, 40%);">+    Service 20 - User controlled PLMN selector with Access Technology</span><br><span style="color: hsl(120, 100%, 40%);">+     Service 21 - MSISDN</span><br><span style="color: hsl(120, 100%, 40%);">+   Service 24 - Enhanced Multi-Level Precedence and Pre-emption Service</span><br><span style="color: hsl(120, 100%, 40%);">+  Service 25 - Automatic Answer for eMLPP</span><br><span style="color: hsl(120, 100%, 40%);">+       Service 27 - GSM Access</span><br><span style="color: hsl(120, 100%, 40%);">+       Service 28 - Data download via SMS-PP</span><br><span style="color: hsl(120, 100%, 40%);">+ Service 29 - Data download via SMS-CB</span><br><span style="color: hsl(120, 100%, 40%);">+ Service 32 - RUN AT COMMAND command</span><br><span style="color: hsl(120, 100%, 40%);">+   Service 33 - shall be set to 1</span><br><span style="color: hsl(120, 100%, 40%);">+        Service 34 - Enabled Services Table</span><br><span style="color: hsl(120, 100%, 40%);">+   Service 35 - APN Control List (ACL)</span><br><span style="color: hsl(120, 100%, 40%);">+   Service 38 - GSM security context</span><br><span style="color: hsl(120, 100%, 40%);">+     Service 39 - CPBCCH Information</span><br><span style="color: hsl(120, 100%, 40%);">+       Service 40 - Investigation Scan</span><br><span style="color: hsl(120, 100%, 40%);">+       Service 42 - Operator controlled PLMN selector with Access Technology</span><br><span style="color: hsl(120, 100%, 40%);">+ Service 43 - HPLMN selector with Access Technology</span><br><span style="color: hsl(120, 100%, 40%);">+    Service 44 - Extension 5</span><br><span style="color: hsl(120, 100%, 40%);">+      Service 45 - PLMN Network Name</span><br><span style="color: hsl(120, 100%, 40%);">+        Service 46 - Operator PLMN List</span><br><span style="color: hsl(120, 100%, 40%);">+       Service 51 - Service Provider Display Information</span><br><span style="color: hsl(120, 100%, 40%);">+     Service 60 - User Controlled PLMN selector for I-WLAN access</span><br><span style="color: hsl(120, 100%, 40%);">+  Service 71 - Equivalent HPLMN</span><br><span style="color: hsl(120, 100%, 40%);">+ Service 73 - Equivalent HPLMN Presentation Indication</span><br><span style="color: hsl(120, 100%, 40%);">+ Service 85 - EPS Mobility Management Information</span><br><span style="color: hsl(120, 100%, 40%);">+      Service 86 - Allowed CSG Lists and corresponding indications</span><br><span style="color: hsl(120, 100%, 40%);">+  Service 87 - Call control on EPS PDN connection by USIM</span><br><span style="color: hsl(120, 100%, 40%);">+       Service 89 - eCall Data</span><br><span style="color: hsl(120, 100%, 40%);">+       Service 90 - Operator CSG Lists and corresponding indications</span><br><span style="color: hsl(120, 100%, 40%);">+ Service 93 - Communication Control for IMS by USIM</span><br><span style="color: hsl(120, 100%, 40%);">+    Service 94 - Extended Terminal Applications</span><br><span style="color: hsl(120, 100%, 40%);">+   Service 95 - Support of UICC access to IMS</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> Done !</span><br><span> </span><br><span>diff --git a/pysim-testdata/sysmoUSIM-SJS1.ok b/pysim-testdata/sysmoUSIM-SJS1.ok</span><br><span>index 2244716..408f211 100644</span><br><span>--- a/pysim-testdata/sysmoUSIM-SJS1.ok</span><br><span>+++ b/pysim-testdata/sysmoUSIM-SJS1.ok</span><br><span>@@ -102,5 +102,41 @@</span><br><span>       Service 58 - Extension 8</span><br><span>     Service 59 - MMS User Connectivity Parameters</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+USIM Service Table: 9e6b1dfc67f6580000</span><br><span style="color: hsl(120, 100%, 40%);">+     Service 2 - Fixed Dialling Numbers (FDN)</span><br><span style="color: hsl(120, 100%, 40%);">+      Service 3 - Extension 2</span><br><span style="color: hsl(120, 100%, 40%);">+       Service 4 - Service Dialling Numbers (SDN)</span><br><span style="color: hsl(120, 100%, 40%);">+    Service 5 - Extension3</span><br><span style="color: hsl(120, 100%, 40%);">+        Service 8 - Outgoing Call Information (OCI and OCT)</span><br><span style="color: hsl(120, 100%, 40%);">+   Service 9 - Incoming Call Information (ICI and ICT)</span><br><span style="color: hsl(120, 100%, 40%);">+   Service 10 - Short Message Storage (SMS)</span><br><span style="color: hsl(120, 100%, 40%);">+      Service 12 - Short Message Service Parameters (SMSP)</span><br><span style="color: hsl(120, 100%, 40%);">+  Service 14 - Capability Configuration Parameters 2 (CCP2)</span><br><span style="color: hsl(120, 100%, 40%);">+     Service 15 - Cell Broadcast Message Identifier</span><br><span style="color: hsl(120, 100%, 40%);">+        Service 17 - Group Identifier Level 1</span><br><span style="color: hsl(120, 100%, 40%);">+ Service 19 - Service Provider Name</span><br><span style="color: hsl(120, 100%, 40%);">+    Service 20 - User controlled PLMN selector with Access Technology</span><br><span style="color: hsl(120, 100%, 40%);">+     Service 21 - MSISDN</span><br><span style="color: hsl(120, 100%, 40%);">+   Service 27 - GSM Access</span><br><span style="color: hsl(120, 100%, 40%);">+       Service 28 - Data download via SMS-PP</span><br><span style="color: hsl(120, 100%, 40%);">+ Service 29 - Data download via SMS-CB</span><br><span style="color: hsl(120, 100%, 40%);">+ Service 30 - Call Control by USIM</span><br><span style="color: hsl(120, 100%, 40%);">+     Service 31 - MO-SMS Control by USIM</span><br><span style="color: hsl(120, 100%, 40%);">+   Service 32 - RUN AT COMMAND command</span><br><span style="color: hsl(120, 100%, 40%);">+   Service 33 - shall be set to 1</span><br><span style="color: hsl(120, 100%, 40%);">+        Service 34 - Enabled Services Table</span><br><span style="color: hsl(120, 100%, 40%);">+   Service 35 - APN Control List (ACL)</span><br><span style="color: hsl(120, 100%, 40%);">+   Service 38 - GSM security context</span><br><span style="color: hsl(120, 100%, 40%);">+     Service 39 - CPBCCH Information</span><br><span style="color: hsl(120, 100%, 40%);">+       Service 42 - Operator controlled PLMN selector with Access Technology</span><br><span style="color: hsl(120, 100%, 40%);">+ Service 43 - HPLMN selector with Access Technology</span><br><span style="color: hsl(120, 100%, 40%);">+    Service 45 - PLMN Network Name</span><br><span style="color: hsl(120, 100%, 40%);">+        Service 46 - Operator PLMN List</span><br><span style="color: hsl(120, 100%, 40%);">+       Service 47 - Mailbox Dialling Numbers</span><br><span style="color: hsl(120, 100%, 40%);">+ Service 48 - Message Waiting Indication Status</span><br><span style="color: hsl(120, 100%, 40%);">+        Service 52 - Multimedia Messaging Service (MMS)</span><br><span style="color: hsl(120, 100%, 40%);">+       Service 53 - Extension 8</span><br><span style="color: hsl(120, 100%, 40%);">+      Service 55 - MMS User Connectivity Parameters</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> Done !</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/pysim/+/17879">change 17879</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/pysim/+/17879"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: pysim </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I54dbbd40bd3d22cee81f7c32e58cd946f8564257 </div>
<div style="display:none"> Gerrit-Change-Number: 17879 </div>
<div style="display:none"> Gerrit-PatchSet: 8 </div>
<div style="display:none"> Gerrit-Owner: herlesupreeth <herlesupreeth@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: herlesupreeth <herlesupreeth@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-CC: fixeria <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>