hello
Again, encode in MAP:
CancelLocationArg ::= [3] SEQUENCE {
identity Indentity,
cancellationType CancellationType OPTIONAL,
extensionContainer ExtensionContainer OPTIONAL,
...}
Indentity ::= CHOICE {
imsi IMSI,
imsi-WithLMSI IMSI-WithLMSI}
IMSI-WithLMSI ::= SEQUENCE {
imsi IMSI,
lmsi LMSI,
-- a special value 00000000 indicates that the LMSI is not in use
...}
CancellationType ::= ENUMERATED {
updateProcedure (0),
subscriptionWithdraw (1),
...}
CancelLocation is a operation of MAP,and in invoke component,operation name is
the value of operation TLV,and after it,is parameter TLV, my question is how to
encode/decode parameters?
If cancellationType and extensionContainer are not present, whether the first
octet of parameter is the tag of identity(certainly identity is choice,it's tag
equals to the tag of imsi or imsi-WithLMSI) ?
And if so, how to judge the two conditions as follows:
1 identity only contain imsi,and cancellationType is present,so the 0x30 of
CancelLocationArg SEQUENCE will present.
from parameter's first octet:
0x30(CancelLocationArg SEQUENCE) 0xXX {0x04(IMSI OCTET) 0xXX
����}{0x0A(CancellationType Enumerated type) 0xXX 0x00(or 0x01)}
2 identity contain imsi-WithLMSI,and the tag of imsi-WithLMSI is 0x30
from parameter's first octet:
0X30(imsi-WithLMSI SEQUENCE) 0xXX {0x04(IMSI OCTET) 0xXX ����}{0x04(LMSI OCTET) 0xXX
����}
so how to judge 1 or 2 ?