v3.18.1: the raw envelope action takes the source override too
The events without a semantic builder (MT call, IMS registration, slices, ...) are network-sourced, but the raw `envelope` action had no `src` override - the only way to express them was the semantic set. `envelope` now accepts `src` (82 terminal / 83 network) exactly like the `event` action; the step editor exposes it and the authoring guide gets the row. Also: the guide marks `por` as SCP80-only (the normaliser refuses it elsewhere) and the semantic-events section names the shared src override. Tests: 813 frontend + 717 Python; sw cache simple-v382.
This commit is contained in:
@@ -34,7 +34,7 @@ from osmocom.tlv import BER_TLV_IE
|
||||
from osmocom.utils import rpad
|
||||
|
||||
|
||||
VERSION = '3.18.0'
|
||||
VERSION = '3.18.1'
|
||||
|
||||
MAX_ENVELOPE_SEGMENTS = 5 # max SMS segments for outgoing C-APDU in ENVELOPE
|
||||
|
||||
@@ -5953,7 +5953,7 @@ def _test_run_action(server, step, ctx):
|
||||
if kind == 'envelope':
|
||||
data, sw = _send_event_download(scc, p['event'],
|
||||
bytes.fromhex(p['data']) if p['data'] else None,
|
||||
drain=False)
|
||||
drain=False, src=p.get('src'))
|
||||
sent = 'ENVELOPE(Event Download) type=0x%02X' % p['event']
|
||||
elif kind == 'event':
|
||||
# The semantic event download: the builder owns the byte layout.
|
||||
|
||||
@@ -218,8 +218,15 @@ def _normalise_params(kind, p):
|
||||
if kind == 'envelope':
|
||||
if p.get('event') is None:
|
||||
raise ScriptError('envelope: event is required')
|
||||
return {'event': _int(p['event'], 'envelope event', 0, 255),
|
||||
'data': _data_hex(p.get('data'), 'envelope data', allow_empty=True)}
|
||||
out = {'event': _int(p['event'], 'envelope event', 0, 255),
|
||||
'data': _data_hex(p.get('data'), 'envelope data', allow_empty=True)}
|
||||
src = str(p.get('src') or '').strip().upper()
|
||||
if src:
|
||||
if not re.fullmatch(r'[0-9A-F]{2}', src):
|
||||
raise ScriptError('envelope: src must be one hex byte '
|
||||
'(82 terminal / 83 network)')
|
||||
out['src'] = src
|
||||
return out
|
||||
if kind == 'event':
|
||||
# The semantic event download: the builder owns the field set and the
|
||||
# byte layout (events.py mirrors the PWA's forms for the supported
|
||||
|
||||
Reference in New Issue
Block a user