-
IIN SMP MML Open Interface Protocols Confidentiality level
2008-06-03 All rights reserved. Page 1 of 24
Product version Confidentiality level
Product name: Huawei Technologies Co. Ltd.
Total 24pages
IIN SMP MML Open Interface Protocols
Huawei Technologies Co., Ltd.
All rights reserved
-
IIN SMP MML Open Interface Protocols Confidentiality level
2008-06-03 All rights reserved. Page 2 of 24
Catalog
1 SMP Open Interface Protocols
.................................................................................................4
1.1 Connection
.......................................................................................................................4
1.2
Message...........................................................................................................................4
1.2.1 Service Message Code (Version number: 1.00)
......................................................5
I. Message start flag (4
Byte)..................................................................................
5
II. Message length (4
Byte).....................................................................................
5
III. Message header (20 Byte)
................................................................................
5
IV. Session header (18 Byte)
..................................................................................
6
V. Transaction header (18 Byte)
.............................................................................
6
VI. Operative
information........................................................................................
7
VII. Checksum (8 Byte)
..........................................................................................
7
1.2.2 Service Message Code (Version number: 1.01)
......................................................7
I. Message start flag (4
Byte)..................................................................................
7
II. Message length (4
Byte).....................................................................................
7
III. Message header (28 Byte)
................................................................................
8
IV. Session header (18 Byte)
..................................................................................
8
V. Transaction header (18 Byte)
.............................................................................
8
VI. Operative
information........................................................................................
8
VII. Checksum (8 Byte)
..........................................................................................
8
1.2.3 Heartbeat Message
................................................................................................8
1.2.4 Timeout
Judgment..................................................................................................8
1.3 Format of Message Through SMP Interface
......................................................................9
1.4
Format..............................................................................................................................9
1.4.1 MML
Command......................................................................................................9
1.4.2 Command Code
...................................................................................................10
1.4.3 Parameter Block
...................................................................................................10
I.
Definition............................................................................................................10
II.
Name................................................................................................................11
III.
Value................................................................................................................11
IV. Information element
.........................................................................................11
V. Combined information elements
........................................................................11
VI. Default parameter:
...........................................................................................11
1.4.4 Character Set in MML
Command..........................................................................12
I. Letter
.................................................................................................................12
II. Digit
..................................................................................................................12
III. List separator
...................................................................................................12
IV. Numerical system indicator
..............................................................................12
V. Special character
..............................................................................................12
1.5 MML Grammar
...............................................................................................................12
1.5.1 Identifier
...............................................................................................................12
1.5.2 Numerical Value
...................................................................................................13
-
IIN SMP MML Open Interface Protocols Confidentiality level
2008-06-03 All rights reserved. Page 3 of 24
I. Decimal
number.................................................................................................13
II. Numerical character
string.................................................................................13
III. Character
string................................................................................................13
IV.
Date.................................................................................................................14
V.
Time..................................................................................................................14
VI. Date and time
..................................................................................................14
1.6 MML Feature
..................................................................................................................14
1.6.1 Batch
Operation....................................................................................................14
1.6.2 Prompt of
Confirmation.........................................................................................14
1.7
Procedure.......................................................................................................................15
1.8 Information Flow
.............................................................................................................16
1.9 Request and Acknowledgement Stream of SMP
.............................................................18
1.9.1 Request and Acknowledgement Stream of SMP (Version 1.00)
............................18 1.9.2 Request and Acknowledgement
Stream of SMP (1.01 and later versions).............20
1.10 Heartbeat Message Stream of
SMP..............................................................................20
1.11 Calculating Program of Message Checksum
.................................................................21
1.12 Login and Logout Messages
.........................................................................................22
1.12.1 Login
..................................................................................................................22
1.12.2 Login ACK
..........................................................................................................22
1.12.3 Logout
................................................................................................................23
1.12.4 Logout
ACK........................................................................................................23
-
IIN SMP MML Open Interface Protocols Confidentiality level
2008-06-03 All rights reserved. Page 4 of 24
IIN SMP MML Open Interface Protocols
Abbreviations
Abbreviation Full name
SMP Service Management Point
BSS/OSS Business Support System
MML MAN Machine Language
Structure of SMP Open Interface Protocol Stack
TCP/IP is adopted at the lower layer of SMP open interface. See
the figure below for the interface protocol stack.
Interface
protocols
TCP/IP
Physical
connection
Interface
protocols
TCP/IP
Physical
connection
SMP BSS/OSS/SMAP
1 SMP Open Interface Protocols
1.1 Connection
TCP/IP SOCKET connection must be established when SMP client
communicates with SMP and then released after interaction. In idle
state, heartbeat message is required to connect SMP client and
SMP.
1.2 Message
Service message over SMP open interface protocol is the smallest
unit to transfer operative information of users. When the
connection is established, the client sends a MML command to SMP in
a message packet after transaction ID of the session is determined,
and then decodes packets received. Format of message involved in
this process is determined by SMP open interface protocol.
See the figure below for the structure of messages transmitted
through SMP open interface.
-
IIN SMP MML Open Interface Protocols Confidentiality level
2008-06-03 All rights reserved. Page 5 of 24
Message
start flag
Message
lengthSession
header
Message
headerTransaction
header
Operative
informationChecksum
Message
start flag
Message sending sequence
Message
start flag
Message
lengthSession
header
Message
headerTransaction
header
Operative
informationChecksum
Message
start flag
Message sending sequence
Heartbeat message over SMP open interface protocol is used to
detect the connection between the client and SMP. It is sent 180 s
(It can be configured.) later when the connection is idle. See the
figure below for the structure of heartbeat message.
Message sending sequence
Message lengthContentChecksum Message start flag
Message sending sequence
Message lengthContentChecksum Message start flag
1.2.1 Service Message Code (Version number: 1.00)
Code of parameter configured over SMP open interface protocol
must conform to the following rules:
For the integral of 16 or 32 bits in hexadecimal format, the
upper significant Octet must be the first, and then is the lower
significant Octet. Fill with blank spaces when the character string
cannot reach the specified length.
I. Message start flag (4 Byte)
It denotes the start and end of a message.
Length: 4 Byte
Code: `SC `
II. Message length (4 Byte)
It denotes the total length of the interval between the message
header and operative message. Its value is denoted by an integral
of 4 bits in hexadecimal format ranging from 0-65535
(0000-FFFF).
III. Message header (20 Byte)
It contains the following parameters:
-----Version number: It denotes the version of SMP open
interface protocol with the code of 4 Octet character strings. The
current version number is 1.00.
-----Terminal identifier: It is denoted by 8 Octet character
strings to identify the front end processor and terminal of BSS/OSS
accessed to SMP. By the use of it, SMP can judge whether the
terminal user accessed is legal. For example, it can used to
configure terminals requiring precedent access.
Note: Terminal identifier of the front end processor in BSS/OSS
must be contained in the message header in case of initial access,
because SMP performs authentication only to the terminal identifier
of front end processor. From then on, the terminal identifier of a
specific terminal must be filled in.
Coding rule of terminal identifier is determined by the
network.
-----Service name: It denotes the service that the operator
applies for, and its code is composed of 8 Octet character strings.
The service name is specified in MML commands. See the following
service names.
-
IIN SMP MML Open Interface Protocols Confidentiality level
2008-06-03 All rights reserved. Page 6 of 24
PPS: Services offered to PPS subscribers
FS: File service
LOG: Log service
RPT: Report service
OPRM: Operator management
SRVM: SMP versatile services
IV. Session header (18 Byte)
Session is a virtual connection (logical connection) between SMP
and BSS/OSS accessed and also a unique identifier of a valid login.
With the identifier of session ID, BSS/OSS originates a virtual
connection to SMP. Session ID over the same SOCKET connection
cannot repeat.
Session ID is filled in with the value larger than 0 when
BSS/OSS sends a message, and it cannot repeat.
One or more sessions can be established based on one connection
between BSS/OSS and SMP. MML commands can be sent through the
session newly established when the message of login success is
received from SMP. Execute the logout command to notify SMP to
clear information of the session when the session is not
required.
Session header consists of session ID, session control
characters and reserved field.
-----Session ID: It is denoted by an integral of 32 bits (8
Byte) in hexadecimal format starting with 1. With its value larger
than 0, session ID is the unique identifier of each session
originated by BSS/OSS. It varies with the session. In the front end
processor of BSS/OSS, TCP connection (physical connection) and
session (logical connection) ID are used to determine the path for
sent messages (The login ID can be used as session ID if one
logical connection corresponds to one physical connection.).
-----Session control character: It is denoted by 6 Octet
character strings (6 Byte).
Codes of session control character are shown as follows:
DlgLgn: Login request
DlgCon: Session hold
DlgEnd: Session end
By the use of session control character, DlgLgn, DlgCon are
filled respectively for login, message transmission. When BSS/OSS
send the logout message, SMP return the Message filled DlgEnd.
-----Reserved field: It is of 4 Byte used for subsequent
extended services.
Bit sending sequence
Session IDSession control characterReserved field
V. Transaction header (18 Byte)
Transaction contained in a session refers to a deal between SMP
and BSS/OSS accessed. It involves one or more MML commands
(contained in one or more messages) and the result of it is
contained in one or more MML ACK commands.
Based on the session, BSS/OSS sends messages to SMP to execute
various operations, thereby implementing the function of service
management. According to
-
IIN SMP MML Open Interface Protocols Confidentiality level
2008-06-03 All rights reserved. Page 7 of 24
the number of MML and MML ACK commands, the function can be
classified as that single or multiple messages can be returned when
single command is sent. Transaction ID is managed by BSS/OSS to
identify MML command and MML ACK in different operations (An
operation is taken as a deal.), and it is unique when used in a
session.
Transaction header consists of the following parts:
------Transaction ID: It is denoted by an integral of 32 bits in
hexadecimal format starting with 1. Transaction ID with the value
larger than 0 is allocated by the client (BSS/OSS) to identify a
transaction. In the same session, they are different from each
other.
------Transaction control character: It is denoted by 6 Octet
character strings (6 Byte).
TxBeg: Transaction start
TxCon: Transaction proceed
TxEnd: Transaction end
------Reserved field: It is of 4 Byte used for subsequent
extended services.
Note: SMP keeps the result obtained from an operation for
certain a period that can be configured.
VI. Operative information
It denotes MML commands executed. See Section 3 for the format
of MML command.
Fill with blank spaces if the length of MML command is not the
multiple of 4.
VII. Checksum (8 Byte)
It is denoted by an integral (8 Byte) of 32 bits in hexadecimal
format. The calculation algorithm of checksum is shown as
follows.
1. Perform XOR for Message header + Session header + Transaction
header + Operative information as 32 Byte, and the inverse of
result obtained from XOR is the checksum.
2. SMP disables the check of checksum when interfaces are
tested.
1.2.2 Service Message Code (Version number: 1.01)
Version 1.01 keeps the same with version 1.00 except for added
languages in coding MML messages. And SMP can handle MML messages
in version 1.00 and 1.01 simultaneously.
I. Message start flag (4 Byte)
It denotes the start and end of a message.
Length: 4 Byte
Code: `SC `
II. Message length (4 Byte)
It denotes the total length of the interval between the message
header and operative message.
-
IIN SMP MML Open Interface Protocols Confidentiality level
2008-06-03 All rights reserved. Page 8 of 24
III. Message header (28 Byte)
Message header contains the following parameters:
-----Version number: It denotes the version of SMP open
interface protocol with the code of 4 Octet character strings.
Current version number is 1.01.
-----Terminal identifier: It is denoted by the code of 8 Octet
character strings to identify the front end processor and terminal
of BSS/OSS accessed to SMP.
-----Service name: It denotes the service that the operator
applies for, and its code is composed of 8 Octet character
strings.
------Language: It is designated by the client with the code of
8 Octet character strings to describe information returned from
SMP. For example, information returned from SMP is in English if
English is selected.
Chinese and English are supported in current version.
IV. Session header (18 Byte)
------Session ID: It is denoted by an integral (8 Byte) of 32
bits in hexadecimal format.
------Session control character: It is denoted by 6 Octet
character strings (6 Byte).
------Reserved field: It is of 4 Byte used for subsequent
extended services.
V. Transaction header (18 Byte)
------Transaction ID: It is denoted by an integral (8 Byte) of
32 bits in hexadecimal format starting with 1.
------Transaction control character: It is denoted by 6 Octet
character strings.
------Reserved field: It is of 4 Byte used for subsequent
extended services.
VI. Operative information
It remains the same with that in version 1.00.
VII. Checksum (8 Byte)
It remains the same with that in version 1.00.
1.2.3 Heartbeat Message
Start flag, message length and checksum of heartbeat message are
identical with those of service message. HBHB is used to identify
the heartbeat message.
Heartbeat message is sent when no messages are transmitted
within period C between SMP and BSS/OSS. And when N heartbeat
messages are not received, the two is considered to be
disconnected. Therefore, another login is required.
Parameters C and N can be configured in principle. C = 2 minutes
and N = 3 are recommended.
1.2.4 Timeout Judgment
SMP must return ACK message as the response of MML command sent
from BSS/OSS within period T. When multiple ACK messages are
involved, they must be sent with an interval of T until the
transaction ends. SMP timeout occurs if BSS/OSS not receives the
ACK message sent from SMP within period T.
-
IIN SMP MML Open Interface Protocols Confidentiality level
2008-06-03 All rights reserved. Page 9 of 24
T can be configured in principle. T = 1 minute is recommended.
However, T varies with transaction.
1.3 Format of Message Through SMP Interface
Format of message SMP processing
(Downlink message: websmap->caa
Uplink message: caa -> websmap )
Message start flag (4B) It is fixedly configured to 60 53 43 60
(that is, `SC`)
Message length (4B) Total length of the interval between message
header and operative information. Fill with blank spaces based on
practical situation.
Version number (4B) It is used to identify the version of SMP
open interface protocols
Terminal identifier (8B)
It is used to identify the front end processor and terminal of
BSS/OSS.
Service name (8B) It denotes the service that operators apply
for.
Message header (20B in version 1.00, 28B in version 1.01 and
later ones)
Language (8B) It is contained in version 1.01 and later ones. In
current version, only Chinese and English are supported.
Session ID (8B) With its value larger than 0, it is a unique
identifier of the session originated by BSS/OSS. It varies with the
session.
Session control character (6B)
By the use of session control character, BSS/OSS fills in
DlgLgn, DlgCon respectively for login, message transmission and
logout. When BSS/OSS send the logout message, SMP will return the
Message filled with DlgEnd.
Session header (18B)
Reserved field (4B) It is used for subsequent extended
services.
Transaction ID (8B) It is allocated by the client (BSS/OSS) to
identify a transaction. In the same session, they (value: larger
than 0) are different from each other.
Transaction control character (6B)
TxBeg: Transaction start; TxCon: Transaction proceed; TxEnd:
Transaction end
Transaction header (18B)
Reserved field (4B) It is used for subsequent extended
services.
Operative information
It denotes MML command. See Section 3 for details. Operative
information
Blank space Fill with blank spaces if the length of MML command
is not the multiple of 4.
Checksum 8B Perform XOR for Message header + Session header +
Transaction header + Operative information as 32 Byte.
Table 1 Processing format of SMP message
MML Command
1.4 Format
1.4.1 MML Command
A command is started with a command code that specifies its
function executed by the system. And further information is
contained in parameter part following the command code. This part
is separated from the command code with a colon and defined by the
parameter block. Among multiple commands, semicolon is adopted,
while it is omitted in one command. In addition, parameter part is
always omitted.
-
IIN SMP MML Open Interface Protocols Confidentiality level
2008-06-03 All rights reserved. Page 10 of 24
Parameter block
Command code
Figure 1 Format of MML command
Note: Several commands are not listed.
1.4.2 Command Code
It consists of command prefix and body without match of
upper/lower case.
Command prefix denotes the type of command. A command with the
prefix of ACK is an acknowledgement one, and the prefix is
separated from the command body with a colon, while a command
started with MON refers to a detection command. In addition, the
command is a notice message when NOTIFY is taken as the prefix.
Prefix MON is not supported temporarily in current version.
Command body is composed of 3 identifiers at most, which are
separated with blanks.
Identifier 1 Identifier 2 Identifier 3sp spCommand prefix
Figure 2 Format of command code
Meaning:
-Identifier 1: With a maximum length of 8 Byte, it denotes the
operation to be executed.
QRY, DISP, MOD, CRE.
-Identifier 2: With a maximum length of 8 Byte, it denotes the
service involving the operation.
DGNK, VPN, IN800.
-Identifier 3: With a maximum length of 8 Byte, it denotes the
target of operations.
ACNT, OPER.
For example:
Execute the command DISP VPN ACNT : MSISDN="13900001234" to list
the VPN account.
1.4.3 Parameter Block
Parameter block is indispensable to execution of the function
specified by command code. And a command determines parameters
contained in the block. Two or more parameters in one block are
separated with commas. All parameters are defined based on their
names, so execution of command may not be affected when user inputs
them in a casual order.
I. Definition
A parameter consists of a name and a value, which are separated
with =.
If value of a parameter is omitted, the corresponding name, =
and , (between parameters) must be omitted as well.
A default value is designated when the parameter is omitted.
However, the default value can be replaced with a specified
parameter value.
-
IIN SMP MML Open Interface Protocols Confidentiality level
2008-06-03 All rights reserved. Page 11 of 24
II. Name
Parameter name is denoted by an identifier with 8 characters at
most.
Upper and lower cases are not matched for a parameter name.
III. Value
Parameter value refers to an information element or a
combination of information elements.
IV. Information element
Identifier
Decimal number
Date
Time
Character string
Identifier
Decimal number
Date
Time
Character string
Figure 3 Format of information element
V. Combined information elements
Several information elements can be input in a parameter
contained in the command after they are combined into one. As
mentioned above, only the combination of simple information
elements is taken into account in this document. SMP open interface
supports flexible combination modes of information elements.
To count the number of them, separate information elements in
the parameter value with &. For example, 5 & 9 denotes 5
and 9.
Information elements of least and most significant bits as well
as && (between the two) are required to denote a sequence
(Incremental = 1) of information elements. For example, 5 &
& 9 refers to 5, 6, 7, 8, and 9, while N'62280000 &&
N'62289999 denotes a number segment with 10,000 numbers.
Note: && is supported in part of MML commands.
Number of information elements involved in a combination is
limited by the size of a message. In current version, the size is
65535 Byte.
VI. Default parameter:
Parameter in a command can be divided into mandatory one,
optional one and default one.
Mandatory parameter: Indispensable to the execution of a
command
Optional parameter: Dispensable one in execution of a
command
Default parameter: It is configured by the system
automatically.
Pay attention to the following rules about the default
parameter:
1. A parameter configured with default value must be designated
to be default. (Non-critical parameters involved in a command to
add a user can be configured with the default value.)
2. Default value of parameters in a command is unique.
3. A default parameter can be configured with different values
in different commands.
-
IIN SMP MML Open Interface Protocols Confidentiality level
2008-06-03 All rights reserved. Page 12 of 24
4. Default value must be the one commonly configured for this
parameter.
1.4.4 Character Set in MML Command
I. Letter
It includes letters from a to z in upper and lower case.
II. Digit
It includes all decimal digits as well as those from 0 to 9.
III. List separator
It is used to separate information elements in the
conversation.
(:): It is used to separate the command name or code from the
first parameter.
(=): It is used to separate the parameter name or code from the
first value of the parameter.
(,): It is used to separate parameters.
&: It is used to separate equivalent characters in a
parameter.
&&: It is used to separate the upper and lower limit of
an equivalent character.
(): It is used to separate the value from its indicator.
(;): It is used to separate commands.
IV. Numerical system indicator
B: Binary
O: Octal
D: Decimal
H: Hex
N: Numerical character string
V. Special character
("): It is used to emphasize character strings in a text as a
mnemonic.
Blank: It is used to separate command codes as well as increase
readability.
Carriage return: It is unavailable in this system, but it can be
used to increase readability.
*
#
Chinese character
(-)
1.5 MML Grammar
1.5.1 Identifier
Identifier refers to a character string containing one or more
characters. Started with a letter or an underline, it involves
figure, /, letter and underline. For example, UPDATE and NO7.
-
IIN SMP MML Open Interface Protocols Confidentiality level
2008-06-03 All rights reserved. Page 13 of 24
Letter/underline
Letter/underline
Figure
Letter/underline
Letter/underline
Figure
Figure 4 Identifier format
1.5.2 Numerical Value
I. Decimal number
Decimal number is composed of D and a group of characters
involving one or more figures. Numerical system is applied to
information element, in which D can be omitted.
Figure
D
Figure
D
Figure
D
Figure 5 Format of decimal number
II. Numerical character string
Numerical character string is used to denote such numerical
information as card number or telephone number that decimal number
fails to denote.
N' Figure
Figure 6 Format of numerical character string
III. Character string
Character (excluding)
" "
Character (excluding)
" "
Figure 7 Format of character string
Text and delimiter can be input in a character string (text
string). The delimiter is of grammatical meaning when input beyond
the text string.
-
IIN SMP MML Open Interface Protocols Confidentiality level
2008-06-03 All rights reserved. Page 14 of 24
Text string is a string of characters with the number of 0 or
more and contained between quotation marks. All characters even
double quotation marks (\ must be input before it.) can be input in
a text string.
IV. Date
The date is denoted by putting the date in digital format into
the quotation mark. It conforms to the order of Year, Month, Day,
among which Year is denoted by a decimal number of 4 digits, while
Month and Day are denoted by a decimal number of 2 digits. Between
the three, hyphens are put.
For example: October 13 2003 must be "2003-10-13".
V. Time
The time is denoted by putting the time expressed with digit and
colon into double quotation marks in the timing system of 24 hours.
Time elements are ordered like that: Hour, Minute, Second, which
are denoted by a decimal number of 2 digits. Among them, Hour is
denoted by the number ranging from 00 to 23, while Minute and
Second are from 00 to 59 (59 is included).
For example: 25 minutes and 1 second past 12 can be denoted like
that: "12:25:01".
VI. Date and time
Date and time are denoted based on formats mentioned above,
between which there is a blank space.
For example: 25 minutes and 1 second past 12 October 13 2003 can
be denoted as below:
2003-10-13 12:25:01"
1.6 MML Feature
1.6.1 Batch Operation
It indicates that only one command is executed to implement
certain a process (such as adding, deletion, modification and
query) for objects of the same kind. For example, subscription for
multi-function card service.
Functions of batch operation are listed as follows:
1. Progress feedback function must be supported.
2. A result must be output when a small batch operation is
completed and a statistical result is output when all operations
end.
3. Concurrent execution of batch command and common one must be
allowed.
1.6.2 Prompt of Confirmation
A prompt of confirmation must be displayed for users in case of
important operations. For example, a timer is activated upon the
execution of an important command so that execution may be
cancelled when timeout occurs.
Interaction Between BSS/OSS and SMP
-
IIN SMP MML Open Interface Protocols Confidentiality level
2008-06-03 All rights reserved. Page 15 of 24
1.7 Procedure
The complete procedure of interaction between BSS/OSS and SMP is
illustrated in the figure below. For a brief description, handling
of abnormal cases and establishment of multiple sessions are not
involved.
INSMPBSS/OSS
Establish a SOCKET connection
Send a LOGIN message
LOGIN success
Send a MML message
Send to IN
Return a ACK message to SMP
Send a MML ACK message
Send a LOGOUT message
LOGOUT success
INSMPBSS/OSS
Establish a SOCKET connection
Send a LOGIN message
Send a MML message
Send to IN
Return a ACK message to SMP
Send a MML ACK message
Send a LOGOUT message
LOGOUT success
Release SOCKET connection
INSMPBSS/OSS
Establish a SOCKET connection
Send a LOGIN message
LOGIN success
Send a MML message
Send to IN
Return a ACK message to SMP
Send a MML ACK message
Send a LOGOUT message
LOGOUT success
INSMPBSS/OSS
Establish a SOCKET connection
Send a LOGIN message
Send a MML message
Send to IN
Return a ACK message to SMP
Send a MML ACK message
Send a LOGOUT message
LOGOUT success
Release SOCKET connection
Figure 8 Interaction between SMP and BSS/OSS
-
IIN SMP MML Open Interface Protocols Confidentiality level
2008-06-03 All rights reserved. Page 16 of 24
1.8 Information Flow
Success
or not
Start
Establsh a SOCKET
connection between BSS/
OSS and SMP
Send a login
message
Whether SMPsucceeds in returning a
message
Send a logoutmessage
Yes
No
End
No
ReleaseSOCKETconnection
Whether operationsare not required
No
TransactionID+1Send
all commands
or not?
Operationstarts
Send the first
MML command
Send the next MMLcommand
Yes
No
Operationends
No
Execute theoperation
Concurrent operations
Yes
ReceiveMML ACK
messages
Transaction
ends or not?
Yes
Wait for the end of all operations
Yes
Figure 9 Procedure of Interaction between BSS/OSS and SMP
Note 1:
1. Multiple sessions can be established concurrently based on
one TCP connection.
2. Each session starts with DlgLgn and ends with DlgEnd.
3. Multiple transactions can be started concurrently in a
session.
4. Each transaction starts with TxBeg and ends with TxEnd.
5. Each transaction can contain multiple messages.
6. Only one MML or MML ACK command can be stored in the
operative information field of a message.
-
IIN SMP MML Open Interface Protocols Confidentiality level
2008-06-03 All rights reserved. Page 17 of 24
Figure 10 Information flow of interaction between BSS/OSS and
SMP
Note 2:
1. n stands for the length of operative information.
2. x stands for session ID (x>0), and it is unique in
sessions based on a connection.
3. y stands for transaction ID (y>0), and it increments with
the transaction.
4. z stands for checksum of a message. See 11.2.1.7 for the
specific algorithm.
Complete information flow of operation after access of SMP
Access to the equipmet SMP
Establish a TCP connection access to the agent
Transaction ID increments
Note:1. n stands for the length of operative information. (with
the value ranging
from0-64944)2. x stands for sesson ID. It is allocated by SMP,
and returned with the firstACK message in a session.
3. y stands for transaction ID, and it increments with the
transaction.4. z stands for checksum of a message, and it is the
inverse value of result
obtained from XOR for "Message header + Session header +
Transactionheader + Operative information" as 32 Byte.
5. The terminal identifier allocated by SMP administrator is
filled in the field of
terminal identifier by the client.6. The field of service name
is filled based on commands. SRVM is filled asthe service name when
commands Login and Logout are executed.
TCP connection succeeds
Send a login message (Message 1)
`SC`
Startflag
56+n
Messagelength
1.00
MSG VER TERMSRVM
SERV ID
DLGLGN
DLGCTRL
Null
RSVMessage header Session header
y
ID
TXBEG
DLGCTRL
n Byte (n must be the
integral multiple of 4.)
RSVTransaction header Operative information
LOGIN: USER=a, PSWD=b z
Checksum
120 4 8 20 28 36 42 46 54 60 64 64+n 72+n
Null
Message1: Login message
4 4 8 8 8 6 4 8 6 4 84
Return a login result message (Message 2) `SC`
Start
flag56+n
Message
length1.00
MSGVER TERMSRVMSERV
xID
DLGCODLGCTRL
Null
Message header Session header
yID
TXEND
n Byte (n must be the
integral multiple of 4.)
Transaction headerOperative information
ACK:LOGIN: RETN=a z
Checksum
120 4 8 20 28 36 42 46 54 60 64 64+n 72+n
Null
Message 2: Login result message
4 4 8 8 8 6 4 8 6 4 84
Login starts
Login ends
Send an operation message (First transaction message)
Message 3
Return an operation result message (Last transaction
message)
Message 6
Transaction starts
Transaction ends
`SC`
Startflag
60+n
Messagelength
1.00 x
ID
DLGCO Null
Message header Session header
y+1
ID
TXBEGn Byte (n must be the
integral multiple of 4.)
Transaction header Operative information
GET FS: ... z
Checksum
120 4 8 20 28 36 42 46 54 60 64 64+n 72+n
Null
Message 3: Operation message (First transaction message)
4 4 8 8 8 6 4 8 6 4 84
`SC`
Start
flag60+n
Message
length1.00 x
IDDLGCO Null
Message header Session header
y+1ID
TXCON
n Byte (n must be the
integral multiple of 4.)
Transaction headerOperative information
ACK:GET FS: ... z
Checksum
120 4 8 20 28 36 42 46 54 60 64 64+n 72+n
Null
Message 4: Operation result message (Second transaction
message)
4 4 8 8 8 6 4 8 6 4 84
Return an operation result message (Second transaction
message)
Message 4
Send an operation message (Third transaction message)
Message 5
`SC`
Start
flag56+n
Message
length1.00 x
ID
DLGCO Null
Message header Session header
y+1ID
TXCON
n Byte (n must be theintegral multiple of 4.)
Transaction headerOperative information
CONFIRM PPS BATDEL:.. z
Checksum
120 4 8 20 28 36 42 46 54 60 64 64+n 72+n
Null
Message 5: Operation message (Third transaction message)
4 4 8 8 8 6 4 8 6 4 84
`SC`
Startflag
56+n
Messagelength
1.00 x
ID
DLGCO Null
Message header Session header
y+1
ID
TXENDn Byte (n must be the
integral multiple of 4.)
Transaction headerOperative information
ACK:GET FS: ... z
Checksum
120 4 8 20 28 36 42 46 54 60 64 64+n 72+n
Null
Message 6: Operation message (Last transaction message)
4 4 8 8 8 6 4 8 6 4 84
Send a logout message (Message 7)
Return a logout ACK message (Message 8)
Logout starts
Logout ends
`SC`
Start
flag56+n
Message
length1.00 SRVM x
IDDLGCO Null
Message header Session header
y+2ID
TXBEG
n Byte (n must be the
integral multiple of 4.)
Transaction headerOperative information
LOGOUT: z
Checksum
120 4 8 20 28 36 42 46 54 60 64 64+n 72+n
Null
Message 7: Logout message
4 4 8 8 8 6 4 8 6 4 84
`SC`
Startflag
60+n
Messagelength
1.00 Filled SRVM x
ID
DLGEND Null
Message header Session header
y+2
ID
TXEND
n Byte (n must be theintegral multiple of 4.)
Transaction headerOperative information
ACK:LOGOUT: ... z
Checksum
120 4 8 20 28 36 42 46 54 60 64 64+n 72+n
Null
Message 8: Logout ACK message
4 4 8 8 8 6 4 8 6 4 84
Release TCP connection
Session ID increments
Heartbeat message
Heartbeat message (Message 9)
`SC`
Startflag
4
Messagelength
4
Heartbeatmessage
HBHB B7BDB7BD
Checksum
0 4 12 16
Message 9: Heartbeat message
4 84
8
Note:1. Multiple sessions can be established concurrently based
on
one TCP connection.2. Each session starts with DlgLgn and ends
with DlgEnd.3. Multiple transactions can be started concurrently in
a
session.4. Each transaction starts with TxBeg and ends with
TxEnd.
5. Each transaction can contain multiple messages.6. Only one
MML command or MML ACK one of a message
can be stored in the operative information field.
DLGCTRL
DLGCTRL DLGCTRL
DLGCTRLDLGCTRL
DLGCTRL DLGCTRL
DLGCTRL DLGCTRL
DLGCTRLDLGCTRL
DLGCTRLDLGCTRL
MSG VER
MSG VER
MSG VER
MSG VER
MSG VER
MSG VER
TERM
TERM
TERM
TERM
TERM
SERV
SERV
SERV
SERV
SERV
SERVTERM
RSV
RSV
RSV
RSV
RSV
RSV
RSV RSV
RSV
RSV
RSV
RSV
RSV
RSV
Filled
Filled Filled
Filled Filled
Filled Filled
Filled Filled
Filled
FilledFilled
-
IIN SMP MML Open Interface Protocols Confidentiality level
2008-06-03 All rights reserved. Page 18 of 24
5. The terminal identifier allocated by SMP administrator is
filled in the field of terminal identifier by the client.
6. The field of service name is filled based on commands. SRVM
is filled as the service name when commands Login and Logout are
executed.
Annex:
1.9 Request and Acknowledgement Stream of SMP
1.9.1 Request and Acknowledgement Stream of SMP (Version
1.00)
DISP VPN GRPINFO:GRPID=1111111111,TYPE=3
0000: 60 53 43 60 30 30 36 34 31 2e 30 30 69 6e 74 65
`SC`00641.00inte
0010: 72 6e 61 6c 56 50 4e 20 20 20 20 20 30 30 30 30 rnalVPN
0000
0020: 30 30 30 32 44 4c 47 43 4f 4e 30 30 30 30 30 30
0002DLGCON000000
0030: 30 30 30 30 30 41 54 58 42 45 47 20 30 30 30 30
00000ATXBEG 0000
0040: 44 49 53 50 20 56 50 4e 20 47 52 50 49 4e 46 4f DISP VPN
GRPINFO
0050: 3a 47 52 50 49 44 3d 31 31 31 31 31 31 31 31 31
:GRPID=111111111
0060: 31 2c 54 59 50 45 3d 33 20 20 20 20 44 35 43 42 1,TYPE=3
D5CB
0070: 44 31 44 35 .. .. .. .. .. .. .. .. .. .. .. .. D1D5
ACK:DISP VPN GRPINFO: RETN=1001, DESC="The group does not
exist.";
0000: 60 53 43 60 30 30 37 63 31 2e 30 30 69 6e 74 65
`SC`007c1.00inte
0010: 72 6e 61 6c 20 20 20 20 20 41 43 4b 30 30 30 30 rnal
ACK0000
0020: 30 30 30 32 44 4c 47 43 4f 4e 30 30 30 30 30 30
0002DLGCON000000
0030: 30 30 30 30 30 61 20 54 58 45 4e 44 30 30 30 30 00000a
TXEND0000
0040: 41 43 4b 3a 44 49 53 50 20 56 50 4e 20 47 52 50 ACK:DISP
VPN GRP
0050: 49 4e 46 4f 3a 20 52 45 54 4e 3d 31 30 30 31 2c INFO:
RETN=1001,
0060: 20 44 45 53 43 3d 22 54 68 65 20 67 72 6f 75 70 DESC="The
group
0070: 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e does not
exist.
0080: 22 3b 20 20 38 31 46 32 39 30 46 33 .. .. .. .. ";
81F290F3
Message format Websmap-caa
Stream
Caa-websmap
Stream
Description
Message start flag (4B) 60 53 43 60 60 53 43 60 It is fixedly
configured to 60 53 43 60 (that is, `SC`)
Message length (4B) 30 30 36 34(0064) 30 30 37 63 (007c) Total
length of the interval between message header and operative
information. Fill with blank spaces based on practical
situation.
Version number 4B
31 2e 30 30(1.00) 31 2e 30 30(1.00) It is used to identify the
version of SMP open interface protocols
Message header (20 B in version 1.00) Terminal
identifier8B
69 6e 74 65 72 6e 61 6c(internal)
69 6e 74 65 72 6e 61 6c(internal)
-
IIN SMP MML Open Interface Protocols Confidentiality level
2008-06-03 All rights reserved. Page 19 of 24
Message format Websmap-caa
Stream
Caa-websmap
Stream
Description
Service name 8B
56 50 4e 20 20 20 20 20(VPN )
20 20 20 20 20 41 43 4b It denotes the service that operators
apply for..
Session ID 8B
30 30 30 30 30 30 30 32(00000002)
30 30 30 30 30 30 30 32(00000002)
With its value larger than 0, it is a unique identifier of the
session originated by BSS/OSS. It varies with the session.
Session control character 6B
44 4c 47 43 4f 4e(DLGCON)
44 4c 47 43 4f 4e(DLGCON)
By the use of session control character, BSS/OSS fills in
DlgLgn, DlgCon respectively for login, message transmission , When
BSS/OSS send the logout message, SMP will return the Message filled
with DlgEnd.
Session ID 18B
Reserved field of session 4B
30 30 30 30(0000) 30 30 30 30(0000) It is used for subsequent
extended services.
Transaction ID 8B
30 30 30 30 30 41 (0000000A)
30 30 30 30 30 61 (0000000a)
It is allocated by the client (BSS/OSS) to identify a
transaction. In the same session, they (value: larger than 0) are
different from each other.s
Transaction control character 6B
54 58 42 45 47 20 (TXBEG )
20 54 58 45 4e 44 ( TXEND)
TxBeg: Transaction starts; TxCon: Transaction proceeds; TxEnd:
Transaction ends
Transaction header 18B
Reserved field of transaction 4B
30 30 30 30(0000) 30 30 30 30(0000) It is used for subsequent
extended services.
Operative information
44 49 53 50 20 56 50 4e 20 47 52 50 49 4e 46 4f 3a 47 52 50 49
44 3d 31 31 31 31 31 31 31 31 31 31 2c 54 59 50 45 3d 33 20(DISP
VPN GRPINFO:GRPID=1111111111,TYPE=3 )
41 43 4b 3a 44 49 53 50 20 56 50 4e 20 47 52 50 49 4e 46 4f 3a
20 52 45 54 4e 3d 31 30 30 31 2c 20 44 45 53 43 3d 22 54 68 65 20
67 72 6f 75 70 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 22
3b(ACK:DISP VPN GRPINFO: RETN=1001, DESC="The group does not
exist.";)
It denotes MML command. See Section 3 for details.
Operative information
Fill with blank spaces
20 20 20( ) 20 20 ( )
Checksum 8B 44 35 43 42 44 31 44 35
38 31 46 32 39 30 46 33
Perform XOR for Message header + Session header + Transaction
header + Operative information as 32 Byte.
-
IIN SMP MML Open Interface Protocols Confidentiality level
2008-06-03 All rights reserved. Page 20 of 24
1.9.2 Request and Acknowledgement Stream of SMP (1.01 and later
versions)
GET SECU USERDATA: USERID=-1, USERNAME="root";
0000: 60 53 43 60 30 30 37 30 31 2e 30 32 69 6e 74 65
`SC`00701.02inte
0010: 72 6e 61 6c 20 20 20 20 53 45 43 55 20 63 68 69 rnal SECU
chi
0020: 6e 65 73 65 30 30 30 30 30 30 30 31 44 4c 47 43
nese00000001DLGC
0030: 4f 4e 30 30 30 30 30 30 30 30 30 30 30 32 20 54
ON000000000002 T
0040: 58 42 45 47 30 30 30 32 47 45 54 20 53 45 43 55
XBEG0002GET SECU
0050: 20 55 53 45 52 44 41 54 41 3a 20 55 53 45 52 49 USERDATA:
USERI
0060: 44 3d 2d 31 2c 20 55 53 45 52 4e 41 4d 45 3d 22 D=-1,
USERNAME="
0070: 72 6f 6f 74 22 3b 20 20 46 46 43 30 42 33 43 33 root";
FFC0B3C3
ACK:GET SECU USERDATA: RETN=0, DESC=, USERID=0, USERNAME="root",
HOMEAREA=;
0000: 60 53 43 60 30 30 38 63 31 2e 30 32 69 6e 74 65
`SC`008c1.02inte
0010: 72 6e 61 6c 20 20 20 20 20 41 43 4b 20 63 68 69 rnal ACK
chi
0020: 6e 65 73 65 30 30 30 30 30 30 30 31 44 4c 47 43
nese00000001DLGC
0030: 4f 4e 30 30 30 30 30 30 30 30 30 30 30 32 20 54
ON000000000002 T
0040: 58 45 4e 44 30 30 30 32 41 43 4b 3a 47 45 54 20
XEND0002ACK:GET
0050: 53 45 43 55 20 55 53 45 52 44 41 54 41 3a 20 52 SECU
USERDATA: R
0060: 45 54 4e 3d 30 2c 20 44 45 53 43 3d 2c 20 55 53 ETN=0,
DESC=, US
0070: 45 52 49 44 3d 30 2c 20 55 53 45 52 4e 41 4d 45 ERID=0,
USERNAME
0080: 3d 22 72 6f 6f 74 22 2c 20 48 4f 4d 45 41 52 45 ="root",
HOMEARE
0090: 41 3d 3b 20 41 37 38 32 38 36 46 30 .. .. .. .. A=;
A78286F0
This message is similar with that in version 1.00 in format
except that message header is added with languages (8B) in version
1.01.
Message header is listed in the following table.
Version number 4B
31 2e 30 32(1.02) 31 2e 30 32 (1.02) It is used to identify the
version of SMP open interface protocols.
Terminal identifier 8B
69 6e 74 65 72 6e 61 6c(internal)
69 6e 74 65 72 6e 61 6c(internal)
Service name 8B
20 20 20 20 53 45 43 55 ( SECU)
20 20 20 20 20 41 43 4b( ACK)
It denotes the service that operators apply for.
Message header
Language 63 68 69 6e 65 73 65 (Chinese)
63 68 69 6e 65 73 65 (Chinese)
Language
1.10 Heartbeat Message Stream of SMP
Sent from CAA
0000: 60 53 43 60 30 30 30 34 48 42 48 42 42 37 42 44
`SC`0004HBHBB7BD
0010: 42 37 42 44 .. .. .. .. .. .. .. .. .. .. .. .. B7BD
Received by CAA
-
IIN SMP MML Open Interface Protocols Confidentiality level
2008-06-03 All rights reserved. Page 21 of 24
0000: 60 53 43 60 30 30 30 34 48 42 48 42 42 37 42 44
`SC`0004HBHBB7BD
0010: 42 37 42 44 .. .. .. .. .. .. .. .. .. .. .. .. B7BD
Stream sent and received by caa are the same in format. See the
following table.
Message format Stream received by Caa/Stream sent from caa
Description
Message start flag (4B) 60 53 43 60 It is fixedly configured to
60 53 43 60 (that is, `SC`)
Message length (4B) 30 30 30 34(0004) Fixed length of heartbeat
message: 4B
Operative information 48 42 48 42(HBHB) Fixed content of
heartbeat message: HBHB
Checksum (8B) 42 37 42 44 42 37 42 44 Checksum
1.11 Calculating Program of Message Checksum
// Convert the checksum of 4 Byte in hexadecimal format into
that of 8 Byte in visible character format.
GetChkSum(UInt2 len, PSTR buf, PSTR res)
{
memset(res, 0, 8);
for(int i=0; i"E8")
for(i = MSG_CHKSUM_LEN-1; i >= 0; i --)
{
if ( i % 2 ) // LOW
{
res[i] = (res[i/2] & 0x0F) + '0';
if ( res[i] > '9' )
{
res[i] = res[i] + 'A' - '0' - 10;
-
IIN SMP MML Open Interface Protocols Confidentiality level
2008-06-03 All rights reserved. Page 22 of 24
}
}
else // HIGH
{
res[i] = ((res[i/2] >> 4) & 0x0F) + '0';
if ( res[i] > '9' )
{
res[i] = res[i] + 'A' - '0' - 10;
}
}
}
};
1.12 Login and Logout Messages
1.12.1 Login
Execute this command to log in IN system. See the format
below.
LOGIN: USER= , PSWD=
Parameters:
USER: Username, which is denoted by a character string from 1 to
8 characters.
PSWD: Password, which is denoted by a character string from 1 to
8 characters.
mml=LOGIN:PSWD=TELLIN,USER=vpnadm
0000: 60 53 43 60 30 30 35 38 31 2e 30 30 69 6e 74 65
`SC`00581.00inte
0010: 72 6e 61 6c 53 52 56 4d 20 20 20 20 30 30 30 30 rnalSRVM
0000
0020: 30 30 30 32 44 4c 47 4c 47 4e 30 30 30 30 30 30
0002DLGLGN000000
0030: 30 30 30 30 30 31 54 58 42 45 47 20 30 30 30 30
000001TXBEG 0000
0040: 4c 4f 47 49 4e 3a 50 53 57 44 3d 54 45 4c 4c 49
LOGIN:PSWD=TELLI
0050: 4e 2c 55 53 45 52 3d 76 70 6e 61 64 6d 20 20 20
N,USER=vpnadm
0060: 45 31 41 38 42 37 46 42 .. .. .. .. .. .. .. ..
E1A8B7FB
1.12.2 Login ACK
This command is returned when the login command is received. See
the format below.
ACK: LOGIN: RETN= [, DESC=]
Parameters:
RETN: Returned value of ACK command, Which is an integral in
decimal format. See Annex E for details.
DESC: Error cause, which is denoted by a character string with
1-256 characters. It is not required when RETN succeeds and is
optional when RETN values others.
ACK:LOGIN: RETN=0, DESC=The command is executed
successfully;
-
IIN SMP MML Open Interface Protocols Confidentiality level
2008-06-03 All rights reserved. Page 23 of 24
0000: 60 53 43 60 30 30 37 38 31 2e 30 30 69 6e 74 65
`SC`00781.00inte
0010: 72 6e 61 6c 20 20 41 43 4b 4c 47 4e 30 30 30 30 rnal
ACKLGN0000
0020: 30 30 30 32 44 4c 47 43 4f 4e 30 30 30 30 30 30
0002DLGCON000000
0030: 30 30 30 30 30 31 20 54 58 45 4e 44 30 30 30 30 000001
TXEND0000
0040: 41 43 4b 3a 4c 4f 47 49 4e 3a 20 52 45 54 4e 3d ACK:LOGIN:
RETN=
0050: 30 2c 20 44 45 53 43 3d 54 68 65 20 63 6f 6d 6d 0,
DESC=The comm
0060: 61 6e 64 20 69 73 20 65 78 65 63 75 74 65 64 20 and is
executed
0070: 73 75 63 63 65 73 73 66 75 6c 6c 79 3b 20 20 20
successfully;
0080: 46 35 42 36 45 33 46 45 .. .. .. .. .. .. .. ..
F5B6E3FE
1.12.3 Logout
Execute this command to end the session between operator and
SMP. See the format below.
LOGOUT [: USER=]
Parameters:
USER: Username of the operator, which is denoted by a character
string with 1 to 8 characters. It is required for logout of
operators.
DEFAULT: Username of operator involved in current session.
LOGOUT:
0000: 60 53 43 60 30 30 34 30 31 2e 30 30 69 6e 74 65
`SC`00401.00inte
0010: 72 6e 61 6c 53 52 56 4d 20 20 20 20 30 30 30 30 rnalSRVM
0000
0020: 30 30 30 35 44 4c 47 43 4f 4e 30 30 30 30 30 30
0005DLGCON000000
0030: 30 30 30 30 30 36 54 58 42 45 47 20 30 30 30 30
000006TXBEG 0000
0040: 4c 4f 47 4f 55 54 3a 20 46 36 46 39 38 35 46 41 LOGOUT:
F6F985FA
1.12.4 Logout ACK
This command is returned when the logout command is received.
See the format below.
ACK: LOGOUT: RETN= [, DESC=]
Parameters:
RETN: Returned value of ACK command.
DESC: Error cause, which is denoted by a character string with
1-256 characters. It is not required when RETN succeeds and is
optional when RETN values others.
ACK:LOGOUT: RETN=0, DESC=The command is executed
successfully;
0000: 60 53 43 60 30 30 37 38 31 2e 30 30 69 6e 74 65
`SC`00781.00inte
0010: 72 6e 61 6c 20 20 20 20 20 41 43 4b 30 30 30 30 rnal
ACK0000
0020: 30 30 30 35 44 4c 47 45 4e 44 30 30 30 30 30 30
0005DLGEND000000
0030: 30 30 30 30 30 36 20 54 58 45 4e 44 30 30 30 30 000006
TXEND0000
0040: 41 43 4b 3a 4c 4f 47 4f 55 54 3a 20 52 45 54 4e
ACK:LOGOUT: RETN
0050: 3d 30 2c 20 44 45 53 43 3d 54 68 65 20 63 6f 6d =0,
DESC=The com
0060: 6d 61 6e 64 20 69 73 20 65 78 65 63 75 74 65 64 mand is
executed
-
IIN SMP MML Open Interface Protocols Confidentiality level
2008-06-03 All rights reserved. Page 24 of 24
0070: 20 73 75 63 63 65 73 73 66 75 6c 6c 79 3b 20 20
successfully;
0080: 45 38 46 38 44 44 39 32 .. .. .. .. .. .. .. ..
E8F8DD92