On Wed, 17 Jul 2002, tong wrote:

>   hi all
>  In GSM-MAP(ASN.1&BER IMPLICIT),I have a doubt about CHOICE:
>
> example 1:
>
> Ext-SS-InfoList ::= SEQUENCE SIZE (1..maxNumOfSS) OF
>                               Ext-SS-Info
>
> Ext-SS-Info ::= CHOICE {
>       forwardingInfo  [0] Ext-ForwInfo,
>       callBarringInfo [1] Ext-CallBarInfo,
>       cug-Info                [2] CUG-Info,
>       ss-Data                 [3] Ext-SS-Data,
>       emlpp-Info              [4] EMLPP-Info}
>
> Ext-ForwInfo ::= SEQUENCE{
>       ss-Code         SS-Code,
>       forwardingFeatureList   Ext-ForwFeatureList,
>       extensionContainer      [0] ExtensionContainer  OPTIONAL,
>       ...}
>
>
>       then begin from Ext-SS-InfoList :0x30 0xXX 0xA0(10100000) (0xXX
> mean length) Now the 0xA0 mean the tag of "forwardingInfo",and next
> octet after 0xA0 mean the length of "forwardingInfo",is this right?

Yes.

> example2:
>
> SubscriberInfo ::= SEQUENCE {
>       locationInformation     [0] LocationInformation OPTIONAL,
>               subscriberState [1] SubscriberState     OPTIONAL,
>       extensionContainer      [2] ExtensionContainer  OPTIONAL,
>       ...}
>
> SubscriberState ::= CHOICE {
>       assumedIdle     [0] NULL,
>       camelBusy       [1] NULL,
>       netDetNotReachable      NotReachableReason,
>       notProvidedFromVLR      [2] NULL}
> begin from SubscriberInfo: how can we encode the "assumedIdle"?
>       0x30 0xXX 0xA1(10100001 subscriberState) 0xXX 0x80(10000000
> assumedIdle) 0x00(length of NULL)
>
> Is the encoding of example 1 and 2 correct?

Yes.

> and so example2 is longer than example1,have an extra tag of choice.

CHOICE itself does not have a tag.  However, tags applied to CHOICE are
*always* EXPLICIT, even if at the beginning of the module it says that the
tag environment for the module is IMPLICIT.

Bancroft

Reply via email to