Fix CAT registries per TS 102 223 V18.3/TS 31.111 V18.12; decode all ENVELOPE types
Spec audit found three registries drifted from an old release, plus
missing command/envelope coverage:
- EVENT_TYPES: correct from '14' up — Access Technology Change
(multiple), IMS Registration/Incoming data, Profile Container ('19),
Secured Profile Container, Poll Interval Negotiation, Data Connection
Status Change, CAG cell selection, Slices Status Change ('1F);
'20-'22 reserved. Old table wrongly showed LTE D2D/ECall/SCEF names.
- TR_RESULTS: session/user results live at '10-'14 ('14 = USSD/SS
transaction terminated), not '0A-'0E; single '20 = ME currently
unable (per-cause details are additional-info bytes); add '22-'27,
'3A BIP error; unshift '3B-'3D; '39 permanent-problem wording.
- ENVELOPE_TYPES: add D9 USSD Download, DA/DB MMS, DC Terminal
Applications, DD Geo Location Reporting, DE Envelope Container,
DF ProSe Report, E0 5G ProSe Report, E1-E3 reserved, E4 GSMA.
- CAT_COMMAND_TYPES: add '79 LSI COMMAND; F0-FE render as Proprietary.
- PLI_QUALIFIERS: add '07 ESN, '1A Supported RATs.
Phase 2:
- _decode_envelope: MENU SELECTION (item id + help request), TIMER
EXPIRATION (id + semi-octet h/m:s value), CALL CONTROL (address +
CCP), USSD DOWNLOAD (DCS text), GEO LOCATION REPORTING, ENVELOPE
CONTAINER (recursive inner dispatch); unknown inner TLVs preserved
in raw_tlv for every type.
- Device Identities now decode to names (Keypad/Display/UICC/
Terminal/Network/Card reader n/Channel n/eCAT client) in proactive
commands and envelopes; frontend renders "src → dst".
Tags verified against ETSI TS 101 220 registry (help request '15/'95,
timer id/value '24/'A4, USSD string '0A/'8A). Tests: +16 spec-derived
fixtures, one stale expectation corrected — 306 total. Version 1.13.0,
SW cache simtrace-analyser-v16.
This commit is contained in:
1 parent
fac6bd09af
commit
174df8a8ad
8 files changed
+437
-76
No files matched your search
+18
-2
@@ -651,7 +651,11 @@ function cmdRows(cmd) {
|
||||
if (cmd.subaddress) rows.push(['Subaddress', cmd.subaddress]);
|
||||
if (cmd.smsc) rows.push(['SMSC', cmd.smsc]);
|
||||
if (cmd.tp_da) rows.push(['TP-DA', cmd.tp_da]);
|
||||
if (cmd.device_ids) rows.push(['Device IDs', cmd.device_ids]);
|
||||
if (cmd.device_ids) {
|
||||
const di = cmd.device_ids;
|
||||
rows.push(['Device IDs', typeof di === 'string' ? di
|
||||
: (di.src + ' → ' + di.dst)]);
|
||||
}
|
||||
if (cmd.cb_page) {
|
||||
const cb = cmd.cb_page;
|
||||
if (cb.serial) rows.push(['CB serial', cb.serial]);
|
||||
@@ -676,6 +680,18 @@ function cmdRows(cmd) {
|
||||
if (cmd.duration) rows.push(['Duration', cmd.duration.value + ' ' + cmd.duration.unit]);
|
||||
if (cmd.address) rows.push(['Address', cmd.address]);
|
||||
if (cmd.response_length) rows.push(['Response length', cmd.response_length.min + '…' + cmd.response_length.max]);
|
||||
if (cmd.item_id !== undefined) rows.push(['Item id', '0x' + hx(cmd.item_id, 2)]);
|
||||
if (cmd.help) rows.push(['Help', 'requested']);
|
||||
if (cmd.timer_id !== undefined) rows.push(['Timer id', '0x' + hx(cmd.timer_id, 2)]);
|
||||
if (cmd.timer_value) rows.push(['Timer value', cmd.timer_value]);
|
||||
if (cmd.ussd) rows.push(['USSD string', cmd.ussd]);
|
||||
if (cmd.encapsulated && cmd.encapsulated.type) {
|
||||
rows.push(['Encapsulated', cmd.encapsulated.type]);
|
||||
}
|
||||
if (cmd.text_note) rows.push(['Text note', cmd.text_note]);
|
||||
if (cmd.raw_tlv) {
|
||||
for (const t of cmd.raw_tlv) rows.push(['TLV 0x' + t.tag, t.value || '(empty)']);
|
||||
}
|
||||
|
||||
// SM TPDU (nested in SMS-PP download / SEND SHORT MESSAGE)
|
||||
const t = cmd.tpdu;
|
||||
@@ -1852,7 +1868,7 @@ function onFilterChange() {
|
||||
}
|
||||
|
||||
// ──────────────────── Versioning ────────────────────
|
||||
const PWA_VERSION = '1.11.0';
|
||||
const PWA_VERSION = '1.13.0';
|
||||
const MIN_SERVER_VERSION = '1.0.0';
|
||||
|
||||
function parseVersion(v) {
|
||||
|
||||
Reference in new issue
Block a user