Anda di halaman 1dari 24

IIN SMP MML Open Interface Protocols

Confidentiality level

Product version
Huawei Technologies Co. Ltd.

Confidentiality level

Product name:

Total 24pages

IIN SMP MML Open Interface Protocols

Huawei Technologies Co., Ltd.


All rights reserved

2008-06-03

All rights reserved.

Page 1 of 24

IIN SMP MML Open Interface Protocols

Confidentiality level

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

2008-06-03

All rights reserved.

Page 2 of 24

IIN SMP MML Open Interface Protocols

Confidentiality level

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

2008-06-03

All rights reserved.

Page 3 of 24

IIN SMP MML Open Interface Protocols

Confidentiality level

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.

BSS/OSS/SMAP

SMP
Interface
protocols

Interface
protocols

TCP/IP

TCP/IP

Physical
connection

Physical
connection

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.

2008-06-03

All rights reserved.

Page 4 of 24

IIN SMP MML Open Interface Protocols

Message
start flag

Checksum

Operative Transaction Session


information header
header

Confidentiality level

Message
header

Message
length

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.
Checksum

Message length

Content

Message start flag


Message sending sequence

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.

2008-06-03

All rights reserved.

Page 5 of 24

IIN SMP MML Open Interface Protocols

Confidentiality level

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.

Reserved field

Session control character

Session ID

Bit sending sequence

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

2008-06-03

All rights reserved.

Page 6 of 24

IIN SMP MML Open Interface Protocols

Confidentiality level

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.

2008-06-03

All rights reserved.

Page 7 of 24

IIN SMP MML Open Interface Protocols

Confidentiality level

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.

2008-06-03

All rights reserved.

Page 8 of 24

IIN SMP MML Open Interface Protocols

Confidentiality level

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)


Message length (4B)

Message
header (20B
in version
1.00, 28B in
version 1.01
and later
ones)
Session
header (18B)

Version number (4B)


Terminal identifier
(8B)
Service name (8B)
Language (8B)
Session ID (8B)
Session control
character (6B)

Transaction
header (18B)

Reserved field (4B)


Transaction ID (8B)

Transaction control
character (6B)
Reserved field (4B)
Operative
information
Blank space

Operative
information

Checksum

8B

It is fixedly configured to 60 53 43 60 (that is, `SC`)


Total length of the interval between message header and
operative information. Fill with blank spaces based on practical
situation.
It is used to identify the version of SMP open interface protocols
It is used to identify the front end processor and terminal of
BSS/OSS.
It denotes the service that operators apply for.
It is contained in version 1.01 and later ones. In current version,
only Chinese and English are supported.
With its value larger than 0, it is a unique identifier of the session
originated by BSS/OSS. It varies with the session.
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.
It is used for subsequent extended services.
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.
TxBeg: Transaction start; TxCon: Transaction proceed; TxEnd:
Transaction end
It is used for subsequent extended services.
It denotes MML command. See Section 3 for details.
Fill with blank spaces if the length of MML command is not the
multiple of 4.
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.

2008-06-03

All rights reserved.

Page 9 of 24

IIN SMP MML Open Interface Protocols

Command code

Confidentiality level

Parameter block

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.
Command prefix

Identifier 1

sp

Identifier 2

sp

Identifier 3

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.

2008-06-03

All rights reserved.

Page 10 of 24

IIN SMP MML Open Interface Protocols

Confidentiality level

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
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.

2008-06-03

All rights reserved.

Page 11 of 24

IIN SMP MML Open Interface Protocols

Confidentiality level

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.

2008-06-03

All rights reserved.

Page 12 of 24

IIN SMP MML Open Interface Protocols

Confidentiality level

Figure
Letter/underline
Letter/underline

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 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)
"

"
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.

2008-06-03

All rights reserved.

Page 13 of 24

IIN SMP MML Open Interface Protocols

Confidentiality level

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

2008-06-03

All rights reserved.

Page 14 of 24

IIN SMP MML Open Interface Protocols

Confidentiality level

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.

BSS/OSS

SMP

IN

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
Release SOCKET connection

Figure 8 Interaction between SMP and BSS/OSS

2008-06-03

All rights reserved.

Page 15 of 24

IIN SMP MML Open Interface Protocols

Confidentiality level

1.8 Information Flow


Start
Establsh a SOCKET
connection between BSS/
OSS and SMP
Success
or not

Yes
Send a login
message

Operation
starts

Whether SMP
succeeds in returning a
message

Send the first


MML command

Yes
Concurrent operations

No
TransactionID+1
Execute the
operation
Whether operations
are not required
Yes
Send a logout
message

No

No

Send
all commands
or not?

No

Receive
MML ACK
messages

No
Send the next MML
command

Yes

Transaction
ends or not?
Yes

Wait for the end of all operations


Release
SOCKETconnection

Operation
ends

End
Figure 9 Procedure of Interaction between BSS/OSS and SMP

Note 1:

2008-06-03

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.

All rights reserved.

Page 16 of 24

IIN SMP MML Open Interface Protocols

Access to the equipmet

Confidentiality level

SMP

Establish a TCP connection access to the agent

Message1: Login message

TCP connection succeeds

Start
flag
`SC`
4

Login starts
0

Start
flag
`SC`
4

Return a login result message (Message 2)


0

Session ID increments

Start
flag
`SC`
4

Send an operation message (First transaction message)

Message 3
0

Message 4

Start
flag
`SC`
4

Send an operation message (Third transaction message)

Message 5
0

Message 6

12

20

28

36

42

46

54

60

z
8
72+n

Transaction header
ID DLGCTRL RSV
y+1 TXBEG Null
8
6
4
46

54

60

Operative information
GET FS: ...
n Byte (n must be the
64 integral multiple of 4.) 64+n

Checksum
z
8
72+n

Operation result message (Second transaction message)

(Third transaction message)

12

20

28

36

42

Message
Message header
Session header
length MSG VER TERM
SERV ID DLGCTRL RSV
56+n
1.00
x DLGCO Null
Filled
Filled
4
4
8
8
8
6
4
4

Message 7:

Logout ends

Start
flag
`SC`
4
0

Transaction header
ID DLGCTRL RSV
y+1 TXCON Null
8
6
4
46

54

60

Operative information

Checksum

CONFIRM PPS BATDEL:..


n Byte (n must be the
integral multiple of 4.)
64
64+n

72+n

z
8

Start
flag
`SC`
4
0

Operative information

Checksum

ACK:GET FS: ...


n Byte (n must be the
64 integral multiple of 4.) 64+n

12

20

28

36

42

46

54

60

72+n

z
8

Logout message

Logout ACK message

Message
Message header
Session header
Transaction header
length MSG VER TERM
SERV ID DLGCTRL RSV ID DLGCTRL RSV Operative information Checksum
60+n
1.00
SRVM x DLGEND Null y+2 TXEND Null
ACK:LOGOUT: ...
z
Filled
4
4
8
8
8
6
4
8
6
4
n Byte (n must be the
8
4
8
12
20
28 36
42
46 54
60
64 integral multiple of 4.) 64+n 72+n

Message 9:
Start
flag
`SC`
4

Transaction header
ID DLGCTRL RSV
y+1 TXEND Null
8
6
4

Message
Message header
Session header
Transaction header
Operative information Checksum
length MSG VER TERM SERV ID DLGCTRL RSV ID DLGCTRL RSV
56+n
1.00
SRVM x DLGCO Null y+2 TXBEG Null
LOGOUT:
z
Filled
4
4
8
8
8
6
4
8
6
4
n Byte (n must be the
8
4
8
12
20
28 36
42
46 54
60
64 integral multiple of 4.) 64+n
72+n

Message 8:

Heartbeat message (Message 9)

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.

42

Message
Message header
Session header
length MSG VER TERM
SERV ID DLGCTRL RSV
56+n
1.00
Filled
Filled
x DLGCO Null
4
4
8
8
8
6
4

Start
flag
`SC`
4

Send a logout message (Message 7)

Complete information flow of operation after access of SMP

36

Message 6: Operation message (Last transaction message)

Logout starts

Release TCP connection

28

Message
Message header
Session header
Transaction header
Operative information Checksum
length MSG VER TERM
SERV ID DLGCTRL RSV ID DLGCTRL RSV
60+n
1.00
Filled
Filled
x DLGCO Null y+1 TXCON Null
ACK:GET FS: ...
z
4
4
8
8
8
6
4
6
4
n Byte (n must be the
8
8
4
8
12
20
28 36
42
46 54
60
64 integral multiple of 4.) 64+n
72+n

Start
flag
`SC`
4
0

Heartbeat message

20

Checksum

Operation message (First transaction message)

Message 5: Operation message

Transaction ends

Return a logout ACK message (Message 8)

12

Message
Message header
Session header
length MSG VER TERM
SERV ID DLGCTRL RSV
Filled
Filled
60+n
1.00
x DLGCO Null
4
4
8
8
8
6
4

Message 4:

Transaction ID increments

Return an operation result message (Last transaction message)

Operative information
LOGIN: USER=a, PSWD=b
n Byte (n must be the
64 integral multiple of 4.) 64+n

Message
Transaction header
Message header
Session header
Operative information Checksum
length MSGVER
TERM
SERV ID DLGCTRL RSV ID DLGCTRL RSV
56+n
1.00
SRVM x DLGCO Null
y TXEND Null
ACK:LOGIN: RETN=a
z
Filled
4
4
8
8
8
6
4
8
6
4
n Byte (n must be the
8
4
8
12
20
28 36
42
46 54
60
64 integral multiple of 4.) 64+n
72+n

Message 3:

Transaction starts

Return an operation result message (Second transaction message)

Transaction header
ID DLGCTRL RSV
y TXBEG Null
8
6
4

Message 2: Login result message

Send a login message (Message 1)

Login ends

Message
Message header
Session header
length MSG VER TERM
SERV ID DLGCTRL RSV
56+n
1.00
SRVM FilledDLGLGN Null
Filled
4
4
8
8
8
6
4

Heartbeat message

Message Heartbeat
Checksum
length
message
4
HBHB B7BDB7BD
4
4
8
4
8
12
16

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 first
ACK 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 + Transaction
header + 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 as
the service name when commands Login and Logout are executed.

Figure 10 Information flow of interaction between BSS/OSS and SMP

Note 2:

2008-06-03

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.
All rights reserved.

Page 17 of 24

IIN SMP MML Open Interface Protocols

Confidentiality level

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
0050:

ACK:DISP VPN GRP

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

Caa-websmap

Stream

Stream

Message start flag (4B)

60 53 43 60

60 53 43 60

Message length (4B)

30 30 36 34(0064)

30 30 37 63 (007c)

Message
header (20
B in version
1.00)

31 2e 30 30(1.00)

31 2e 30 30(1.00)

69 6e 74 65 72 6e
61 6c(internal)

69 6e 74 65 72 6e 61
6c(internal)

2008-06-03

Version
number
4B
Terminal
identifier
8B

All rights reserved.

Description
It is fixedly configured to 60 53 43
60 (that is, `SC`)
Total length of the interval between
message header and operative
information. Fill with blank spaces
based on practical situation.
It is used to identify the version of
SMP open interface protocols

Page 18 of 24

IIN SMP MML Open Interface Protocols

Message format

Session ID
18B

Transaction
header 18B

Operative
information

Checksum

2008-06-03

Service
name
8B
Session
ID 8B

Confidentiality level

Websmap-caa

Caa-websmap

Stream

Stream

Description

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..

30 30 30 30 30 30
30 32(00000002)

30 30 30 30 30 30 30
32(00000002)

Session
control
characte
r 6B

44 4c 47 43 4f
4e(DLGCON)

44 4c 47 43 4f
4e(DLGCON)

Reserve
d field of
session
4B
Transact
ion ID
8B

30 30 30 30(0000)

30 30 30 30(0000)

With its value larger than 0, it is a


unique identifier of the session
originated by BSS/OSS. It varies
with the session.
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.
It is used for subsequent extended
services.

30 30 30 30 30 41
(0000000A)

30 30 30 30 30 61
(0000000a)

Transact
ion
control
characte
r 6B
Reserve
d field of
transacti
on 4B
Operativ
e
informati
on

54 58 42 45 47 20
(TXBEG )

20 54 58 45 4e 44
( TXEND)

30 30 30 30(0000)

30 30 30 30(0000)

It is used for subsequent extended


services.

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=111
1111111,TYPE=3 )

It denotes MML command. See


Section 3 for details.

Fill with
blank
spaces
8B

20 20 20(

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.";)
20 20 ( )

38 31 46 32 39 30 46
33

Perform XOR for Message header


+ Session header + Transaction
header + Operative information as
32 Byte.

44 35 43 42 44 31
44 35

All rights reserved.

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
TxBeg: Transaction starts; TxCon:
Transaction proceeds; TxEnd:
Transaction ends

Page 19 of 24

IIN SMP MML Open Interface Protocols

Confidentiality level

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.

Message
header

Version
number 4B
Terminal
identifier 8B
Service
name 8B
Language

31 2e 30 32(1.02)

31 2e 30 32 (1.02)

69 6e 74 65 72 6e 61
6c(internal)
20 20 20 20 53 45 43 55
(
SECU)
63 68 69 6e 65 73 65
(Chinese)

69 6e 74 65 72 6e 61
6c(internal)
20 20 20 20 20 41 43
4b(
ACK)
63 68 69 6e 65 73 65
(Chinese)

It is used to identify the version of


SMP open interface protocols.

It denotes the service that operators


apply for.
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

2008-06-03

All rights reserved.

Page 20 of 24

IIN SMP MML Open Interface Protocols

Confidentiality level

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

Message start flag (4B)

60 53 43 60

Message length (4B)

30 30 30 34(0004)

Operative information

48 42 48 42(HBHB)

Checksum (8B)

42 37 42 44 42 37 42 44

Description
It is fixedly configured to 60 53
43 60 (that is, `SC`)
Fixed length of heartbeat
message: 4B
Fixed content of heartbeat
message: HBHB
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<len; i+=4)
{
res[0]^=(buf+i)[0];
res[1]^=(buf+i)[1];
res[2]^=(buf+i)[2];
res[3]^=(buf+i)[3];
};
res[0]=~res[0];
res[1]=~res[1];
res[2]=~res[2];
res[3]=~res[3];
// Convert hexadecimal numbers into corresponding character string. (For
example, 0xE8--->"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;

2008-06-03

All rights reserved.

Page 21 of 24

IIN SMP MML Open Interface Protocols

Confidentiality level

}
}
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;
2008-06-03

All rights reserved.

Page 22 of 24

IIN SMP MML Open Interface Protocols

Confidentiality level

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

2008-06-03

All rights reserved.

Page 23 of 24

IIN SMP MML Open Interface Protocols

Confidentiality level

0070: 20 73 75 63 63 65 73 73 66 75 6c 6c 79 3b 20 20
0080: 45 38 46 38 44 44 39 32 .. .. .. .. .. .. .. ..

2008-06-03

All rights reserved.

successfully;

E8F8DD92

Page 24 of 24