An index structure is defined in this clause. Index can be used by the operator to inform the end user about the type of CBS services available. Index has the structure of a tree. It can thus have sub parts which are called subindexes. A subindex can be embedded in the same index message as its parent ("embedded subindex") or it can physically be in a separate index message ("child subindex"). Every index message has a unique message identifier. They are always of the same type. Message Code 1010101010b shall be used to indicate this type. The root of the index structure shall be the index message with message identifier 0. Other index messages are linked to the root index with links. Definition of their message identifiers is left to the operator.
A format ("enhanced format") for the index messages is described in this clause. If this enhanced format is used in the index message the MS/UE can present the index messages in its preferred format.
Available CBS services are introduced in the index. This means that their message identifier and name are stated. Enhanced format includes a mechanism for separating a normal service introduction from embedded subindex introduction and child subindex introduction. The introduction of an embedded subindex specifies the "subindex-id" used for identifying services that belong to this subindex. Embedded subindexes can have subindexes embedded in them etc. If these "second level embedded subindexes" are introduced their subindex-id shall begin with the subindex-id of their parent. Same principle applies for subindexes in third, fourth etc. level. An example of an index structure is given in Figure 6
Enhanced format includes a mechanism which allows the terminals to identify that the format of the index message is enhanced. The index-id -field and the above mentioned Message Code (1010101010b) constitute this mechanism:
message-format = index-id index-element-intro+.
index-id = "EI" version crlf.
version = number+.
number = "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "0".
index-element-intro = subindex-intro | service-intro.
subindex-intro = subindex-id " " subindex-name crlf.
subindex-id = subindex-character+.
subindex-character = "a" | "b" | … | "z" | "A" | "B" | … | "Z".
subindex-name = name-character+.
name-character = <gsm03.38character excluding <CR> and <LF> >.
crlf = <CR> <LF>.
service-intro = subindex-id message-id delimiter service-name crlf.
message-id = number+.
delimiter = "." | " ".
service-name = name-character+.
Current version used is 1.
The use of "." as delimiter means that this service is a child subindex of the index structure.
Delimiter " " is used in all other cases.
Subindex-id shall not be used if the service introduced is in the first level of the index. Subindex-id:s are used in alphabetical order within an index message. They can be re-used in a child subindex.