library/GSUP_Types.ttcn: SS Info IE is optional for GSUP_PROC_SS_*
The 'SS Info' IE is optional for GSUP_PROC_SS_{REQ|RSP} messages, and is not carried in some cases, e.g. when a subscriber aborts an active transaction by pressing the 'red button'. Change-Id: I20d9028acbe0c457d2a2cf72eff372b749d8dc30
This commit is contained in:
parent
52f8b6ee1d
commit
911257ebb2
|
@ -581,62 +581,85 @@ template GSUP_IE tr_GSUP_IE_SSInfo(template octetstring ss) := {
|
|||
}
|
||||
}
|
||||
|
||||
private function f_gen_ts_ss_ies(
|
||||
hexstring imsi,
|
||||
OCT4 sid,
|
||||
GSUP_SessionState state,
|
||||
template (omit) octetstring ss
|
||||
) return GSUP_IEs {
|
||||
/* Mandatory IEs */
|
||||
var GSUP_IEs ies := {
|
||||
valueof(ts_GSUP_IE_IMSI(imsi)),
|
||||
valueof(ts_GSUP_IE_SessionId(sid)),
|
||||
valueof(ts_GSUP_IE_SessionState(state))
|
||||
};
|
||||
|
||||
/* Optional SS payload */
|
||||
if (isvalue(ss)) {
|
||||
ies[3] := valueof(ts_GSUP_IE_SSInfo(valueof(ss)));
|
||||
}
|
||||
|
||||
return ies;
|
||||
}
|
||||
private function f_gen_tr_ss_ies(
|
||||
template hexstring imsi,
|
||||
template OCT4 sid := ?,
|
||||
template GSUP_SessionState state := ?,
|
||||
template octetstring ss := ?
|
||||
) return template GSUP_IEs {
|
||||
/* Mandatory IEs */
|
||||
var template GSUP_IEs ies := {
|
||||
tr_GSUP_IE_IMSI(imsi),
|
||||
tr_GSUP_IE_SessionId(sid),
|
||||
tr_GSUP_IE_SessionState(state)
|
||||
};
|
||||
|
||||
/* Optional SS payload */
|
||||
if (istemplatekind(ss, "*")) {
|
||||
ies[3] := *;
|
||||
} else if (not istemplatekind(ss, "omit")) {
|
||||
ies[3] := tr_GSUP_IE_SSInfo(ss);
|
||||
}
|
||||
|
||||
return ies;
|
||||
}
|
||||
|
||||
template (value) GSUP_PDU ts_GSUP_PROC_SS_REQ(
|
||||
hexstring imsi,
|
||||
OCT4 sid,
|
||||
GSUP_SessionState state,
|
||||
octetstring ss
|
||||
template (omit) octetstring ss := omit
|
||||
) := ts_GSUP(
|
||||
OSMO_GSUP_MSGT_PROC_SS_REQUEST,
|
||||
{
|
||||
valueof(ts_GSUP_IE_IMSI(imsi)),
|
||||
valueof(ts_GSUP_IE_SessionId(sid)),
|
||||
valueof(ts_GSUP_IE_SessionState(state)),
|
||||
valueof(ts_GSUP_IE_SSInfo(ss))
|
||||
}
|
||||
f_gen_ts_ss_ies(imsi, sid, state, ss)
|
||||
);
|
||||
template GSUP_PDU tr_GSUP_PROC_SS_REQ(
|
||||
template hexstring imsi,
|
||||
template OCT4 sid := ?,
|
||||
template GSUP_SessionState state := ?,
|
||||
template octetstring ss := ?
|
||||
template octetstring ss := *
|
||||
) := tr_GSUP(
|
||||
OSMO_GSUP_MSGT_PROC_SS_REQUEST,
|
||||
{
|
||||
tr_GSUP_IE_IMSI(imsi),
|
||||
tr_GSUP_IE_SessionId(sid),
|
||||
tr_GSUP_IE_SessionState(state),
|
||||
tr_GSUP_IE_SSInfo(ss)
|
||||
}
|
||||
f_gen_tr_ss_ies(imsi, sid, state, ss)
|
||||
);
|
||||
|
||||
template (value) GSUP_PDU ts_GSUP_PROC_SS_RES(
|
||||
hexstring imsi,
|
||||
OCT4 sid,
|
||||
GSUP_SessionState state,
|
||||
octetstring ss
|
||||
template (omit) octetstring ss := omit
|
||||
) := ts_GSUP(
|
||||
OSMO_GSUP_MSGT_PROC_SS_RESULT,
|
||||
{
|
||||
valueof(ts_GSUP_IE_IMSI(imsi)),
|
||||
valueof(ts_GSUP_IE_SessionId(sid)),
|
||||
valueof(ts_GSUP_IE_SessionState(state)),
|
||||
valueof(ts_GSUP_IE_SSInfo(ss))
|
||||
}
|
||||
f_gen_ts_ss_ies(imsi, sid, state, ss)
|
||||
);
|
||||
template GSUP_PDU tr_GSUP_PROC_SS_RES(
|
||||
template hexstring imsi,
|
||||
template OCT4 sid := ?,
|
||||
template GSUP_SessionState state := ?,
|
||||
template octetstring ss := ?
|
||||
template octetstring ss := *
|
||||
) := tr_GSUP(
|
||||
OSMO_GSUP_MSGT_PROC_SS_RESULT,
|
||||
{
|
||||
tr_GSUP_IE_IMSI(imsi),
|
||||
tr_GSUP_IE_SessionId(sid),
|
||||
tr_GSUP_IE_SessionState(state),
|
||||
tr_GSUP_IE_SSInfo(ss)
|
||||
}
|
||||
f_gen_tr_ss_ies(imsi, sid, state, ss)
|
||||
);
|
||||
|
||||
template (value) GSUP_PDU ts_GSUP_PROC_SS_ERR(
|
||||
|
|
Loading…
Reference in New Issue