This commit is contained in:
zhangsz
2025-03-03 11:01:26 +08:00
parent 5f1710dc22
commit dae6fc93f7
1057 changed files with 519829 additions and 0 deletions

View File

@@ -0,0 +1,95 @@
K 25
svn:wc:ra_dav:version-url
V 58
/svn/wxc2/!svn/ver/1/trunk/R4S/plat/smpp/ut/conf/MIB_files
END
mib_list_file.txt
K 25
svn:wc:ra_dav:version-url
V 76
/svn/wxc2/!svn/ver/1/trunk/R4S/plat/smpp/ut/conf/MIB_files/mib_list_file.txt
END
WXC2-SS7-MIB.txt
K 25
svn:wc:ra_dav:version-url
V 75
/svn/wxc2/!svn/ver/1/trunk/R4S/plat/smpp/ut/conf/MIB_files/WXC2-SS7-MIB.txt
END
Special_App-SMI.txt
K 25
svn:wc:ra_dav:version-url
V 78
/svn/wxc2/!svn/ver/1/trunk/R4S/plat/smpp/ut/conf/MIB_files/Special_App-SMI.txt
END
System_IP_List.txt
K 25
svn:wc:ra_dav:version-url
V 77
/svn/wxc2/!svn/ver/1/trunk/R4S/plat/smpp/ut/conf/MIB_files/System_IP_List.txt
END
WXC2-MSC-MIB.txt
K 25
svn:wc:ra_dav:version-url
V 75
/svn/wxc2/!svn/ver/1/trunk/R4S/plat/smpp/ut/conf/MIB_files/WXC2-MSC-MIB.txt
END
WXC2-SMI.txt
K 25
svn:wc:ra_dav:version-url
V 71
/svn/wxc2/!svn/ver/1/trunk/R4S/plat/smpp/ut/conf/MIB_files/WXC2-SMI.txt
END
WXC2-HLR-MIB.txt
K 25
svn:wc:ra_dav:version-url
V 75
/svn/wxc2/!svn/ver/1/trunk/R4S/plat/smpp/ut/conf/MIB_files/WXC2-HLR-MIB.txt
END
menu_page
K 25
svn:wc:ra_dav:version-url
V 68
/svn/wxc2/!svn/ver/1/trunk/R4S/plat/smpp/ut/conf/MIB_files/menu_page
END
menu_tree.txt
K 25
svn:wc:ra_dav:version-url
V 72
/svn/wxc2/!svn/ver/1/trunk/R4S/plat/smpp/ut/conf/MIB_files/menu_tree.txt
END
WXC2-PPS-MIB.txt
K 25
svn:wc:ra_dav:version-url
V 75
/svn/wxc2/!svn/ver/1/trunk/R4S/plat/smpp/ut/conf/MIB_files/WXC2-PPS-MIB.txt
END
WXC2-MSS-MIB.txt
K 25
svn:wc:ra_dav:version-url
V 75
/svn/wxc2/!svn/ver/1/trunk/R4S/plat/smpp/ut/conf/MIB_files/WXC2-MSS-MIB.txt
END
WXC2-SMSC-MIB.txt
K 25
svn:wc:ra_dav:version-url
V 76
/svn/wxc2/!svn/ver/1/trunk/R4S/plat/smpp/ut/conf/MIB_files/WXC2-SMSC-MIB.txt
END
IWV-SMI.txt
K 25
svn:wc:ra_dav:version-url
V 70
/svn/wxc2/!svn/ver/1/trunk/R4S/plat/smpp/ut/conf/MIB_files/IWV-SMI.txt
END
WXC2-AUC-MIB.txt
K 25
svn:wc:ra_dav:version-url
V 75
/svn/wxc2/!svn/ver/1/trunk/R4S/plat/smpp/ut/conf/MIB_files/WXC2-AUC-MIB.txt
END
mib_write_tree.txt
K 25
svn:wc:ra_dav:version-url
V 77
/svn/wxc2/!svn/ver/1/trunk/R4S/plat/smpp/ut/conf/MIB_files/mib_write_tree.txt
END

View File

@@ -0,0 +1,538 @@
10
dir
114
http://172.25.201.20/svn/wxc2/trunk/R4S/plat/smpp/ut/conf/MIB_files
http://172.25.201.20/svn/wxc2
2011-09-23T09:01:37.023785Z
1
xueqiang.sheng
4a7aa47d-8bee-446f-9599-049dc37ff264
mib_list_file.txt
file
2012-12-28T03:06:04.156250Z
e59e7013ff47d5331bc5e68f42248885
2011-09-23T09:01:37.023785Z
1
xueqiang.sheng
has-props
259
WXC2-SS7-MIB.txt
file
2012-12-28T03:06:04.171875Z
91d2557ea5be19fe06b92e2c879d8377
2011-09-23T09:01:37.023785Z
1
xueqiang.sheng
has-props
93367
Special_App-SMI.txt
file
2012-12-28T03:06:04.187500Z
97ed2af0dacccade5e3baab77ca99295
2011-09-23T09:01:37.023785Z
1
xueqiang.sheng
has-props
932
System_IP_List.txt
file
2012-12-28T03:06:04.203125Z
7f68bfdab1c0892d2391924bd1115f73
2011-09-23T09:01:37.023785Z
1
xueqiang.sheng
has-props
888
WXC2-MSC-MIB.txt
file
2012-12-28T03:06:04.203125Z
51e7fa91629d05cf8eca01f20d967fc8
2011-09-23T09:01:37.023785Z
1
xueqiang.sheng
has-props
102848
WXC2-SMI.txt
file
2012-12-28T03:06:04.234375Z
2e85c17d3dc4bb21d376a86eb9a5f849
2011-09-23T09:01:37.023785Z
1
xueqiang.sheng
has-props
1107
WXC2-HLR-MIB.txt
file
2012-12-28T03:06:04.250000Z
12831926c39eb44e7d775167b0ed38ce
2011-09-23T09:01:37.023785Z
1
xueqiang.sheng
has-props
51898
menu_page
file
2012-12-28T03:06:04.171875Z
a4c3041b9ba49e5e98a6c7888e52aa7b
2011-09-23T09:01:37.023785Z
1
xueqiang.sheng
has-props
528
menu_tree.txt
file
2012-12-28T03:06:04.187500Z
addab8c771a403371f6b208388c37f8a
2011-09-23T09:01:37.023785Z
1
xueqiang.sheng
has-props
33070
WXC2-PPS-MIB.txt
file
2012-12-28T03:06:04.218750Z
d3905e6500df6a9afe34b0e128f6a8b4
2011-09-23T09:01:37.023785Z
1
xueqiang.sheng
has-props
390028
WXC2-MSS-MIB.txt
file
2012-12-28T03:06:04.218750Z
6629dfee3fa27b4fda3b74d5bcb3f6a1
2011-09-23T09:01:37.023785Z
1
xueqiang.sheng
has-props
1326
WXC2-SMSC-MIB.txt
file
2012-12-28T03:06:04.250000Z
fac370b62b453bf23d5d43e5c47e0a10
2011-09-23T09:01:37.023785Z
1
xueqiang.sheng
has-props
5823
IWV-SMI.txt
file
2012-12-28T03:06:04.234375Z
98316bf7b30187298164c96030583d89
2011-09-23T09:01:37.023785Z
1
xueqiang.sheng
has-props
1036
WXC2-AUC-MIB.txt
file
2012-12-28T03:06:04.265625Z
35cb757ffc0367d867e78026b8d9996b
2011-09-23T09:01:37.023785Z
1
xueqiang.sheng
has-props
10058
mib_write_tree.txt
file
2012-12-28T03:06:04.265625Z
ca660623f2314251a90d317e99acdf64
2011-09-23T09:01:37.023785Z
1
xueqiang.sheng
has-props
639972

View File

@@ -0,0 +1,5 @@
K 14
svn:executable
V 1
*
END

View File

@@ -0,0 +1,5 @@
K 14
svn:executable
V 1
*
END

View File

@@ -0,0 +1,5 @@
K 14
svn:executable
V 1
*
END

View File

@@ -0,0 +1,5 @@
K 14
svn:executable
V 1
*
END

View File

@@ -0,0 +1,5 @@
K 14
svn:executable
V 1
*
END

View File

@@ -0,0 +1,5 @@
K 14
svn:executable
V 1
*
END

View File

@@ -0,0 +1,5 @@
K 14
svn:executable
V 1
*
END

View File

@@ -0,0 +1,5 @@
K 14
svn:executable
V 1
*
END

View File

@@ -0,0 +1,5 @@
K 14
svn:executable
V 1
*
END

View File

@@ -0,0 +1,5 @@
K 14
svn:executable
V 1
*
END

View File

@@ -0,0 +1,5 @@
K 14
svn:executable
V 1
*
END

View File

@@ -0,0 +1,5 @@
K 14
svn:executable
V 1
*
END

View File

@@ -0,0 +1,5 @@
K 14
svn:executable
V 1
*
END

View File

@@ -0,0 +1,5 @@
K 14
svn:executable
V 1
*
END

View File

@@ -0,0 +1,5 @@
K 14
svn:executable
V 1
*
END

View File

@@ -0,0 +1,40 @@
-- *****************************************************************
-- IWV-SMI: interWAVE Enterprise Structure of Management Information
--
-- draft November 2000, Huang qilong
-- 1st November 2004, Sheng Xueqiang
--
-- Copyright (c) 2000 by interWAVE, Inc.
-- All rights reserved.
--
-- *****************************************************************
--
IWV-SMI DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY,
OBJECT-IDENTITY,
enterprises
FROM SNMPv2-SMI;
IWV MODULE-IDENTITY
LAST-UPDATED "0411170000Z"
ORGANIZATION "interWAVE, Inc."
CONTACT-INFO
"http://www.iwv.com"
DESCRIPTION
"The Structure of Management Information for the interWAVE enterprise."
REVISION "200411170000Z"
DESCRIPTION
"1st version of this MIB module."
::= { enterprises 1373 } -- assigned by IANA
IWV_Products OBJECT-IDENTITY
STATUS current
DESCRIPTION
"iwvProducts is the root OBJECT IDENTIFIER from which sysObjectID values are assigned. Actual values are defined in IWV-PRODUCTS-MIB."
::= { IWV 1 }
END

View File

@@ -0,0 +1,43 @@
-- *****************************************************************
-- Special_App-SMI: WXC2 Structure of Management Information
--
-- draft November 2004, Sheng Xueqiang
--
-- Copyright (c) 2004 by interWAVE, Inc.
-- All rights reserved.
--
-- *****************************************************************
--
Special_App-SMI DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY,
OBJECT-IDENTITY,
FROM SNMPv2-SMI
IWV_Products
FROM IWV-SMI;
Special_App MODULE-IDENTITY
LAST-UPDATED "0411180000Z"
ORGANIZATION "interWAVE, Inc."
CONTACT-INFO
"http://www.iwv.com"
DESCRIPTION
"The Structure of Management Information for the Special Application of interWAVE enterprise."
REVISION "200411180000Z"
DESCRIPTION
"1st version of this MIB module."
::= { IWV_Products 2 }
-- CNF Center
-- IWF
IWF OBJECT-IDENTITY
STATUS current
DESCRIPTION
"IWF "
::= { Special_App 8 }
-- PPP Route
END

View File

@@ -0,0 +1,26 @@
// host ip
// "//" is the annotation characters; ";" is the septation characters;
// Please put the localhost subsystem ip at the first of the group ip on one subsystem
MTP3_0_0 mss-0 ; LocalHost;
MTP3_1_0 mss-1 ; 172.18.133.1;
MTP3_2_0 -- ; 172.18.123.1;
MTP3_3_0 -- ; 172.18.143.1;
SCCP_0_0 mss-0 ; LOCALHOST;
SCCP_1_0 mss-1 ; 172.18.133.1;
XAPP_0_0 MSS-0 ; localhost;
XAPP_1_0 MSS-1 ; 172.18.133.1;
SMPP_0_0 SMPP-0; LocalHost;
MSC_0_0 -- ; LocalHost;
MSC_1_0 -- ; 172.18.133.1;
CCF(MSC)_0_0 --; LocalHost;
CCF(MSC)_0_1 --; 172.18.133.1;
VLR_0_0 VLR-0 ; LocalHost;
VLR_1_0 VLR-1 ; 172.18..1;
HLR_0_0 -- ; LocalHost;
HLR_1_0 -- ; 172.18.234.230;
AUC_0_0 -- ; LocalHost;
AUC_1_0 -- ; 172.18.234.230;
SMSC_0_0 -- ; LocalHost;
SMSC_1_0 -- ; 172.18.234.230;
PPS_0_0 -- ; LocalHost;
PPS_1_0 -- ; 172.18.234.230;

View File

@@ -0,0 +1,437 @@
alvr1188-MIB DEFINITIONS ::= BEGIN
IMPORTS
OBJECT-TYPE, Integer32, Opaque
FROM SNMPv2-SMI
TEXTUAL-CONVENTION, DisplayString, TruthValue
FROM SNMPv2-TC
App
FROM WXC2-SMI;
AUC OBJECT-IDENTITY
STATUS current
DESCRIPTION
"
[SubSystem_Module]Subsystems for AUC .
"
::= { App 4 }
Configuration OBJECT-IDENTITY
STATUS current
DESCRIPTION
"
Configuration for AUC .
"
::= { AUC 2 }
Public_parameter OBJECT-IDENTITY
STATUS current
DESCRIPTION
"
Public_parameter for AUC .
"
::= { Configuration 1 }
SSD OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 8
Default: 0000000000000000
Field: [1]share SSD
{
[u]0.0-0.7
[u]select
[v]0[opt]not share
[v]1[opt]share
}
[2]Update SSD timer
{
[u]1.0-2.7
[u]input
[v]toDec-high-0
}
[3]reserved
{
[u]3.0-7.7
[u]select
}
Remark: SSD
[End]
"
::= { Public_parameter 2 }
Count OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 8
Default: 0000000000000000
Field: [1]Count Match Range
{
[u]0.0-0.7
[u]input
[v]toDec-high-0
}
[2]reserved
{
[u]1.0-7.7
[u]select
}
Remark: Count.
[End]
"
::= { Public_parameter 3 }
Failures OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 8
Default: 0000000000000000
Field:
[1]AUTHR Mismatch
{
[u]0.0-0.7
[u]select
[v]0[opt]Allow Access
[v]1[opt]Deny Access
[v]2[opt]Unique Challenge
}
[2]Count Mismatch
{
[u]1.0-1.7
[u]select
[v]0[opt]Allow Access
[v]1[opt]Deny Access
}
[3]Unique Challenge Failure
{
[u]2.0-2.7
[u]select
[v]0[opt]Allow Access
[v]1[opt]Deny Access
}
[4]SSD Update Failure
{
[u]3.0-3.7
[u]select
[v]0[opt]Allow Access
[v]1[opt]Deny Access
}
[5]Count Update Failure
{
[u]4.0-4.7
[u]select
[v]0[opt]Allow Access
[v]1[opt]Deny Access
}
[6]Missing AUTH Parameters
{
[u]5.0-5.7
[u]select
[v]0[opt]Allow Access
[v]1[opt]Deny Access
[v]2[opt]Unique Challenge
}
[7]reserved
{
[u]6.0-7.7
[u]select
}
Remark: Count.
[End]
"
::= { Public_parameter 4 }
Management OBJECT-IDENTITY
STATUS current
DESCRIPTION
"
Management .
"
::= { Configuration 2 }
Command OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 1
Default: 00
Flag: S1.2
Field: [1]Save parameters to HD
{
[u]00.0-00.2
[u]select
[v]00[opt]Idle
[v]01[opt]Save
[v]01[opt]Saving
[v]02[opt]Save succeeds
[v]03[opt]Save fails
}
[2]Save user data to HD&OMC
{
[u]00.3-00.5
[u]select
[v]00[opt]Idle
[v]01[opt]Save
[v]01[opt]Saving
[v]02[opt]Save succeeds
[v]03[opt]Save fails
}
[3]Reserved
{
[u]00.6-00.7
[u]select
}
Remark: Command for AUC paramters and user data operation, and the result of command.
[End]
"
::= { Management 2 }
License_Control OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS write-only
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 8
Default: 0000000000000000
Field: [1]Licenses
{
[u]00.0-15.7
[u]input
[v]keepHex-high-0
}
Remark: 8-byte encrypted license provided by interWAVE used to provision an approved quantiy of AUC subscribers for service provider. The new license can not support less AUC subscribers than what the old license supports.
[End]
"
::= { Management 3 }
MAX_License OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS write-only
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 4
Default: 00000000
Field: [1]Max Licenses
{
[u]0.0-3.7
[u]input
[v]toDec-high-0
}
Remark: The maximum quantity of approved AUC subscribers determined by License control Read only.
[End]
"
::= { Management 11 }
Used_License OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 4
Default: 00000000
Field: [1]Used Licenses
{
[u]00.0-03.7
[u]input
[v]toDec-high-0
}
Remark: The quantity of currently registered EIR subscribers (Read only).
[End]
"
::= { Management 12 }
User_information OBJECT-IDENTITY
STATUS current
DESCRIPTION
"
User Information .
"
::= { Management 13 }
Provisioned_Users OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 4
Default: 000000
Field: [1]Provisioned users
{
[u]00.0-03.7
[u]input
[v]toDec-high-0
}
Remark: The quantity of service enabled AUC subscribers (Read only).
[End]
"
::= { User_information 1 }
Version OBJECT-IDENTITY
STATUS current
DESCRIPTION
"
Version .
"
::= { Management 14 }
Software OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 3
Default: 000000
Field: [1]System
{
[u]00.0-00.7
[u]input
[v]keepHex-high-0
}
[2]Module
{
[u]01.0-01.7
[u]input
[v]keepHex-high-0
}
[3]Test
{
[u]02.0-02.7
[u]input
[v]keepHex-high-0
}
Remark: Version of AUC software (Read only).
System: System release version, based on basic function and structure.
Module: Software module version, based on software module.
Test: Test version, 0=Release version. 1=Test version.
[End]
"
::= { Version 1 }
User_data OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 3
Default: 000000
Field: [1]System
{
[u]00.0-00.7
[u]input
[v]keepHex-high-0
}
[2]User data
{
[u]01.0-01.7
[u]input
[v]keepHex-high-0
}
[3]Test
{
[u]02.0-02.7
[u]input
[v]keepHex-high-0
}
Remark: Version of AUC subscriber data (Read only).
System: System release version, based on basic function and structure.
User data: Subscriber profile version, based on software module.
Test: Test version, 0=Release version. 1=Test version.
[End]
"
::= { Version 2 }
IMSI_Segment OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1000
Length: 4
Default: 00000000
Field: [1]IMSI segment
{
[u]00.0-03.7
[u]input
[v]toDec-high-0
}
Remark: IMSI segment table (Read only):
100,000 IMSIs are subdivided into 1000 segments, each IMSI segment use the 8 most significant digits (from the 6th digit to 13th digit of 15-digit of IMSI) as the segment number.
IMSI=MCC(3)+MNC(2)+MSIN(10)
Segment number=the 8 most significant digits of the MSIN, each segment has 100 subscribers (00-99).
e.g. If IMSI=460002356090098 then it belongs to IMSI segemt 23560900 and its account number in that segment=98. 0=empty segment.
[End]
"
::= { Management 15 }
Status OBJECT-IDENTITY
STATUS current
DESCRIPTION
"
Status for AUC .
"
::= { AUC 3 }
Import_status OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 12
Default: 000000000000000000000000
Field:
Remark: Import status.
[End]
"
::= { Status 2 }
END

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,54 @@
WXC2-MSS-MIB DEFINITIONS ::= BEGIN
IMPORTS
OBJECT-TYPE, Integer32, Opaque
FROM SNMPv2-SMI
TEXTUAL-CONVENTION, DisplayString, TruthValue
FROM SNMPv2-TC
App
FROM WXC2-SMI;
MSS OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Subsystems for MSS . "
::= { App 16 }
Configuration OBJECT-IDENTITY
STATUS current
DESCRIPTION
" Configuration for MSS . "
::= { MSS 2 }
Management OBJECT-IDENTITY
STATUS current
DESCRIPTION
" Management for MSS . "
::= { Configuration 1 }
Command OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS write-only
STATUS current
DESCRIPTION
"
[Begin]
Instance : 1
Length : 1
Default : 00
Field : [1]Command
{
[u]00.0-00.7
[u]select
[v]4[opt]Shutdown
[v]5[opt]Undefine value
}
Remark : Safely shut down MSS server by stoping MSS process, saving subscriber data to harddisk and shut down the server.
Operation procedures:
1. Select -Shutdown- at above pulldown menu.
2. Click -Set- button in this set window.
3. Click -SET- button on operation page.
[End]
"
::= { Management 1 }
END

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,57 @@
-- *****************************************************************
-- WXC2-SMI: WXC2 Structure of Management Information
--
-- draft November 2000, Huang qilong
-- 1st November 2004, Sheng Xueqiang
--
-- Copyright (c) 2004 by interWAVE, Inc.
-- All rights reserved.
--
-- *****************************************************************
--
WXC2-SMI DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY,
OBJECT-IDENTITY,
FROM SNMPv2-SMI
IWV_Products
FROM IWV-SMI;
WXC2 MODULE-IDENTITY
LAST-UPDATED "200506050000Z"
ORGANIZATION "interWAVE, Inc."
CONTACT-INFO
"http://www.iwv.com"
DESCRIPTION
"The Structure of Management Information for the WXC2 of interWAVE enterprise."
REVISION "200506050000Z"
DESCRIPTION
"1st version of this MIB module."
::= { IWV_Products 3 }
-- WXC2_PCM
PCM OBJECT-IDENTITY
STATUS current
DESCRIPTION
"PCM "
::= { WXC2 1 }
-- WXC2_platform
Platform OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Platform "
::= { WXC2 2 }
-- WXC2_App
App OBJECT-IDENTITY
STATUS current
DESCRIPTION
"App platform"
::= { WXC2 3 }
END

View File

@@ -0,0 +1,259 @@
WXC2-SMSC-MIB DEFINITIONS ::= BEGIN
IMPORTS
OBJECT-TYPE, Integer32, Opaque
FROM SNMPv2-SMI
TEXTUAL-CONVENTION, DisplayString, TruthValue
FROM SNMPv2-TC
App
FROM WXC2-SMI;
SMSC OBJECT-IDENTITY
STATUS current
DESCRIPTION
"[SubSystem_Module]Subsystems for SMSC . "
::= { App 5 }
Configuration OBJECT-IDENTITY
STATUS current
DESCRIPTION
" Configuration for SMSC . "
::= { SMSC 2 }
System_Param OBJECT-IDENTITY
STATUS current
DESCRIPTION
" system parameter . "
::= { Configuration 1 }
CDR_Flag OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 1
Default: 03
Field: [1]SMSC CDR
{
[u]0.0-0.0
[u]select
[v]0[opt]Not generate
[v]1[opt]Generate
}
[2]SMSC LOG
{
[u]0.1-0.1
[u]select
[v]0[opt]Not generate
[v]1[opt]Generate
}
[3]Reserved
{
[u]0.2-0.7
[u]select
}
Remark: SMSC CDR generation enable or disable.
[End]
"
::= { System_Param 1 }
SM_Validity OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 4
Default: 0000A8C0
Field: [1]SM validity
{
[u]00.0-03.7
[u]input
[v]toDec-high-0
}
Remark: Period of validity of short message, define a threshold how long an awaiting sending message should be kept in sending array till sent to MS, unit is second, default=0c0a8h seconds=12 hours.
[End]
"
::= { System_Param 2 }
MSISDN_Segment OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"
[Begin]
Instance: 16
Length: 19
Default: 8675557127000EEEEE8675557127999EEEEE00
Field: [1]Start MSISDN
{
[u]00.0-08.7
[u]input
[v]keepHex-low-E
}
[2]End MSISDN
{
[u]09.0-17.7
[u]input
[v]keepHex-low-E
}
[3]Number Type
{
[u]18.0-18.7
[u]select
[v]0[opt]GSM
[v]1[opt]CDMA
}
Remark: Specify the beginning MSISDN for the range of provisioned subscriber. F=end tag.
[End]
"
::= { System_Param 3 }
SMPP_parameters OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"
[Begin]
Instance: 32
Length: 12
Default: 000000000000000000000000
Field: [1]Enable flag
{
[u]00.0-00.7
[u]select
[v]00[opt]Disable
[v]01[opt]Enable
}
[2]Session type
{
[u]01.0-01.7
[u]select
[v]00[opt]BIND_TX
[v]01[opt]BIND_RX
[v]02[opt]BIND_TRX
}
[3]Service number
{
[u]02.0-9.7
[u]input
[v]toAscii-low-0
}
[4]Message mode
{
[u]10.0-10.7
[u]select
[v]00[opt]Store and forward
[v]01[opt]Datagram
[v]02[opt]Transaction
}
[5]Data Coding Scheme
{
[u]11.0-11.7
[u]select
[v]00[opt]To smpp=7bit,default=7bit
[v]01[opt]To smpp=8bit,default=7bit
[v]16[opt]To smpp=7bit,default=8bit
[v]17[opt]To smpp=8bit,default=8bit
}
Remark: Name: Can be any name, generally use the name of the connected device.
Service number: SMPP connected party MSISDN used for display on MT MS,
e.g. for a SMPP to PPS, set the service number as MSISDN of PPS.
Data coding scheme:
00:smsc to smpp=7bit,when dcs = 0,smsc to smpp default = 7bit
01:smsc to smpp=8bit,when dcs = 0,smsc to smpp default = 7bit
10:smsc to smpp=7bit,when dcs = 0,smsc to smpp default = 8bit
11:smsc to smpp=8bit,when dcs = 0,smsc to smpp default = 8bit
Default=0.
[End]
"
::= { Configuration 2 }
Management OBJECT-IDENTITY
STATUS current
DESCRIPTION
"
Management for SMSC .
"
::= { SMSC 3 }
SMSC_ID OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 1
Default: 00
Field: [1]SMSC ID
{
[u]00.0-00.7
[u]input
[v]keepHex-low-E
}
Remark: SMSC ID
[End]
"
::= { Management 1 }
Software_Version OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS write-only
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 7
Default: 00000000000000
Field: [1]Version
{
[u]00.0-02.7
[u]input
[v]keepHex-low-E
}
Remark: Software version
[End]
"
::= { Management 2 }
Command OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 1
Default: 01
Flag: S1.1
Field: [1]Command
{
[u]00.0-00.7
[u]select
[v]01[opt]Save parameters
[v]04[opt]Reset system
[v]05[opt]Delete pending SM
}
Remark: SMSC system command.
Save parameters: Save the SMSC parameters in memory to SMSC harddisk.
Delete pending SM: Delete the pending SM in awaiting array.
[End]
"
::= { Management 3 }
END

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,13 @@
*******************
* Module Page *
*******************
a -- IPTR i -- HLR
b -- MTP3 j -- SMSC
c -- SCCP k -- PPS
d -- TCAP l -- SNMP
e -- XAPP m -- M2UA
f -- MSC n -- DEBUG
g -- VLR o -- AUC
h -- SSF p -- EIR

View File

@@ -0,0 +1,908 @@
############## The debug menu tree config file root=wxc2 root_oid={1.3.6.1.4.1.1373.1.3}
#(0)(1)(2)(9) ip group
#/ the layer
#.1.1.3. menu_id
#{3.2.2.1.2} the last oid from the root
#[name] menu name
#M:8 the id of the menu in the current object
############## all the line must end for ';',and menu id and last oid must do not contain space
##WXC2
/. (9);
M:1 [MSC] {3.2};
M:2 [VLR] {3.2.5};
M:3 [HLR] {3.3};
M:4 [PPS] {3.6};
M:5 [SMSC] {3.5};
M:6 [AUC] {3.4};
##M:7 [EIR] {3.8};
##MSC
/ /.1. (9);
M:1 [Prefix Assignment] {3.2.2.2.1.1};
M:2 [Prefix Attributes] {3.2.2.2.1.2};
M:3 [Assign TG to Prefix] {3.2.2.2.1.3};
M:4 [TG attributes] {3.2.2.2.1.4};
M:5 [CDR Flag] {3.2.2.2.1.5};
M:6 [Announcement Option] {3.2.2.2.1.6};
M:7 [Warning tone] {3.2.2.2.1.7};
M:8 [Emergency call] {3.2.2.2.2.5};
M:9 [Location management] {3.2.2.2.2.8};
M:10 [Max. call duration] {3.2.2.2.3.7};
M:11 [E1 Port] {3.2.2.2.4};
M:12 [channel attributes] {3.2.2.2.5};
M:13 [Platform] {2};
M:14 [MSC0] (1) {3.2};
M:15 [MSC1] (2) {3.2};
##MSC->E1 Port
/ / /.1.11. (9);
M:1 [E1 interface] {3.2.2.2.4.1};
M:2 [Assign TG to E1] {3.2.2.2.4.2};
M:3 [CIC of E1] {3.2.2.2.4.3};
##MSC->channel attributes->8K card 0-31
/ / /.1.12. (9);
M:1 [Card 0 channel attributes] {3.2.2.2.5.1};
M:2 [Card 1 channel attributes] {3.2.2.2.5.2};
M:3 [Card 2 channel attributes] {3.2.2.2.5.3};
M:4 [Card 3 channel attributes] {3.2.2.2.5.4};
M:5 [Card 4 channel attributes] {3.2.2.2.5.5};
M:6 [Card 5 channel attributes] {3.2.2.2.5.6};
M:7 [Card 6 channel attributes] {3.2.2.2.5.7};
M:8 [Card 7 channel attributes] {3.2.2.2.5.8};
M:9 [Card 8 channel attributes] {3.2.2.2.5.9};
M:10 [Card 9 channel attributes] {3.2.2.2.5.10};
M:11 [Card 10 channel attributes] {3.2.2.2.5.11};
M:12 [Card 11 channel attributes] {3.2.2.2.5.12};
M:13 [Card 12 channel attributes] {3.2.2.2.5.13};
M:14 [Card 13 channel attributes] {3.2.2.2.5.14};
M:15 [Card 14 channel attributes] {3.2.2.2.5.15};
M:16 [Card 15 channel attributes] {3.2.2.2.5.16};
M:17 [Card 16 channel attributes] {3.2.2.2.5.17};
M:18 [Card 17 channel attributes] {3.2.2.2.5.18};
M:19 [Card 18 channel attributes] {3.2.2.2.5.19};
M:20 [Card 19 channel attributes] {3.2.2.2.5.20};
M:21 [Card 20 channel attributes] {3.2.2.2.5.21};
M:22 [Card 21 channel attributes] {3.2.2.2.5.22};
M:23 [Card 22 channel attributes] {3.2.2.2.5.23};
M:24 [Card 23 channel attributes] {3.2.2.2.5.24};
M:25 [Card 24 channel attributes] {3.2.2.2.5.25};
M:26 [Card 25 channel attributes] {3.2.2.2.5.26};
M:27 [Card 26 channel attributes] {3.2.2.2.5.27};
M:28 [Card 27 channel attributes] {3.2.2.2.5.28};
M:29 [Card 28 channel attributes] {3.2.2.2.5.29};
M:30 [Card 29 channel attributes] {3.2.2.2.5.30};
M:31 [Card 30 channel attributes] {3.2.2.2.5.31};
M:32 [Card 31 channel attributes] {3.2.2.2.5.32};
##MSC->Platform
/ / /.1.13. (9);
M:1 [MTP3] {2.2.2};
M:2 [SCCP] {2.2.3};
M:3 [XAPP] {2.2.5};
##MSC->Platform->MTP3
/ / /.1.13.1. (9);
M:1 [Network Indicator] {2.2.2.2.2};
M:2 [Originating Point code] {2.2.2.2.3};
M:3 [Link Set] {2.2.2.2.4};
M:4 [Link] {2.2.2.2.5};
M:5 [Routing] {2.2.2.2.6};
M:6 [ACN] {2.2.2.2.7};
M:7 [Status] {2.2.2.3};
M:8 [Signaling GateWay] {2.2.2.2.9};
##MSC->Platform->MTP3->Status
/ / /.1.13.1.7. (9);
M:1 [Link status] {2.2.2.3.1};
M:2 [Link set status] {2.2.2.3.2};
M:3 [International routing] {2.2.2.3.3};
M:4 [International spare] {2.2.2.3.4};
M:5 [National routing] {2.2.2.3.5};
M:6 [National spare routing] {2.2.2.3.6};
M:7 [Command] {2.2.2.3.7};
##MSC->Platform->SCCP
/ / /.1.13.2. (9);
M:1 [Local node] {2.2.3.2.1};
M:2 [GTT] {2.2.3.2.2};
M:3 [Command] {2.2.3.3.2};
##MSC->Platform->XAPP
/ / /.1.13.3. (9);
M:1 [MCC] {2.2.5.2.1};
M:2 [MNC] {2.2.5.2.2};
M:3 [CC] {2.2.5.2.3};
M:4 [NDC] {2.2.5.2.4};
M:5 [International prefix] {2.2.5.2.5};
M:6 [National Prefix] {2.2.5.2.6};
M:7 [Local Prefix] {2.2.5.2.7};
M:8 [Convert Prefix] {2.2.5.2.8};
M:9 [Command] {2.2.5.3.2};
##MSC->MSC0->E1 status
/ / /.1.14. (1);
M:1 [E1 Status] {3.2.2.3.4};
M:2 [Channel Status] {3.2.2.3.5};
##M:3 [CSU0] {1.1};
##MSC->MSC1->E1 status
/ / /.1.15. (2);
M:1 [E1 Status] {3.2.2.3.4};
M:2 [Channel Status] {3.2.2.3.5};
##M:3 [CSU1] {1.1};
##MSC->MSC0->Channel Status
/ / / /.1.14.2. (1);
M:1 [8K Card 0] {3.2.2.3.5.1};
M:2 [8K Card 1] {3.2.2.3.5.2};
M:3 [8K Card 2] {3.2.2.3.5.3};
M:4 [8K Card 3] {3.2.2.3.5.4};
M:5 [8K Card 4] {3.2.2.3.5.5};
M:6 [8K Card 5] {3.2.2.3.5.6};
M:7 [8K Card 6] {3.2.2.3.5.7};
M:8 [8K Card 7] {3.2.2.3.5.8};
M:9 [8K Card 8] {3.2.2.3.5.9};
M:10 [8K Card 9] {3.2.2.3.5.10};
M:11 [8K Card 10] {3.2.2.3.5.11};
M:12 [8K Card 11] {3.2.2.3.5.12};
M:13 [8K Card 12] {3.2.2.3.5.13};
M:14 [8K Card 13] {3.2.2.3.5.14};
M:15 [8K Card 14] {3.2.2.3.5.15};
M:16 [8K Card 15] {3.2.2.3.5.16};
##MSC->MSC1->channel status
/ / / /.1.15.2. (2);
M:1 [8K Card 0] {3.2.2.3.5.1};
M:2 [8K Card 1] {3.2.2.3.5.2};
M:3 [8K Card 2] {3.2.2.3.5.3};
M:4 [8K Card 3] {3.2.2.3.5.4};
M:5 [8K Card 4] {3.2.2.3.5.5};
M:6 [8K Card 5] {3.2.2.3.5.6};
M:7 [8K Card 6] {3.2.2.3.5.7};
M:8 [8K Card 7] {3.2.2.3.5.8};
M:9 [8K Card 8] {3.2.2.3.5.9};
M:10 [8K Card 9] {3.2.2.3.5.10};
M:11 [8K Card 10] {3.2.2.3.5.11};
M:12 [8K Card 11] {3.2.2.3.5.12};
M:13 [8K Card 12] {3.2.2.3.5.13};
M:14 [8K Card 13] {3.2.2.3.5.14};
M:15 [8K Card 14] {3.2.2.3.5.15};
M:16 [8K Card 15] {3.2.2.3.5.16};
##MSC->MSC0->CSU0
##/ / / / /.1.14.3. (1);
##M:1 [E1 enable] {1.1.1.2.1};
##M:2 [MTP alarm on/off] {1.1.1.2.2};
##M:3 [Link type] {1.1.1.2.3};
##M:4 [NT/LT] {1.1.1.2.4};
##M:5 [DPLL priority] {1.1.1.2.5};
##M:6 [CRC4 flag] {1.1.1.2.6};
##M:7 [Ringback Tone] {1.1.1.2.7.1};
##M:8 [Busy Tone] {1.1.1.2.7.2};
##M:9 [Unavailable Tone] {1.1.1.2.7.3};
##M:10 [Congestion Tone] {1.1.1.2.7.4};
##M:11 [Proceeding Tone] {1.1.1.2.7.5};
##M:12 [Warning tone] {1.1.1.2.7.6};
##M:13 [Tone assignment] {1.1.1.2.7.9};
##M:14 [DTMF mark&space] {1.1.1.2.7.10};
##M:15 [8KE1_0] (0) {1.1.1.3};
##M:16 [8KE1_1] (0) {1.1.1.3};
##M:17 [8KE1_2] (0) {1.1.1.3};
##M:18 [8KE1_3] (0) {1.1.1.3};
##M:19 [8KE1_4] (0) {1.1.1.3};
##M:20 [8KE1_5] (0) {1.1.1.3};
##M:21 [8KE1_6] (0) {1.1.1.3};
##M:22 [8KE1_7] (0) {1.1.1.3};
##M:23 [8KE1_8] (0) {1.1.1.3};
##M:24 [8KE1_9] (0) {1.1.1.3};
##M:25 [8KE1_10] (0) {1.1.1.3};
##M:26 [8KE1_11] (0) {1.1.1.3};
##M:27 [8KE1_12] (0) {1.1.1.3};
##M:28 [8KE1_13] (0) {1.1.1.3};
##M:29 [8KE1_14] (0) {1.1.1.3};
##M:30 [8KE1_15] (0) {1.1.1.3};
##MSC->MSC1->CSU1
##/ / / / /.1.15.3. (2);
##M:1 [E1 enable] {1.1.1.2.1};
##M:2 [MTP alarm on/off] {1.1.1.2.2};
##M:3 [Link type] {1.1.1.2.3};
##M:4 [NT/LT] {1.1.1.2.4};
##M:5 [DPLL priority] {1.1.1.2.5};
##M:6 [CRC4 flag] {1.1.1.2.6};
##M:7 [Ringback Tone] {1.1.1.2.7.1};
##M:8 [Busy Tone] {1.1.1.2.7.2};
##M:9 [Unavailable Tone] {1.1.1.2.7.3};
##M:10 [Congestion Tone] {1.1.1.2.7.4};
##M:11 [Proceeding Tone] {1.1.1.2.7.5};
##M:12 [Warning tone] {1.1.1.2.7.6};
##M:13 [Tone assignment] {1.1.1.2.7.9};
##M:14 [DTMF mark&space] {1.1.1.2.7.10};
##M:15 [8KE1_0] (0) {1.1.1.3};
##M:16 [8KE1_1] (0) {1.1.1.3};
##M:17 [8KE1_2] (0) {1.1.1.3};
##M:18 [8KE1_3] (0) {1.1.1.3};
##M:19 [8KE1_4] (0) {1.1.1.3};
##M:20 [8KE1_5] (0) {1.1.1.3};
##M:21 [8KE1_6] (0) {1.1.1.3};
##M:22 [8KE1_7] (0) {1.1.1.3};
##M:23 [8KE1_8] (0) {1.1.1.3};
##M:24 [8KE1_9] (0) {1.1.1.3};
##M:25 [8KE1_10] (0) {1.1.1.3};
##M:26 [8KE1_11] (0) {1.1.1.3};
##M:27 [8KE1_12] (0) {1.1.1.3};
##M:28 [8KE1_13] (0) {1.1.1.3};
##M:29 [8KE1_14] (0) {1.1.1.3};
##M:30 [8KE1_15] (0) {1.1.1.3};
##VLR
/ / /.2. (9);
M:1 [OptAuthReq] {3.2.5.2.1.1};
M:2 [OpReuseTriplets] {3.2.5.2.1.2};
M:3 [OptCipReq] {3.2.5.2.1.3};
M:4 [OptCiphAlgo] {3.2.5.2.1.4};
M:5 [OptTmsiAlloc] {3.2.5.2.1.5};
M:6 [OptEcsSetUpAllow] {3.2.5.2.1.7};
M:7 [OptCheckIMEI] {3.2.5.2.1.8};
M:8 [OptVlrPurge] {3.2.5.2.1.9};
M:9 [idlePeriod2Purge] {3.2.5.2.1.10};
M:10 [CDR flag] {3.2.5.2.1.11};
M:11 [MSRN] {3.2.5.2.1.13};
M:12 [VLR0] {3.2.5};
M:13 [VLR1] {3.2.5};
##VLR->VLR0
/ / /.2.12. (1);
M:1 [Version] {3.2.5.3.2};
M:2 [Command] {3.2.5.3.3};
M:3 [Status] {3.2.5.3.4};
##VLR->VLR0
/ / /.2.13. (2);
M:1 [Version] {3.2.5.3.2};
M:2 [Command] {3.2.5.3.3};
M:3 [Status] {3.2.5.3.4};
##HLR
/ / /.3. (9);
M:1 [HPLMN] {3.3.2.1.11};
M:2 [VPLMNs] {3.3.2.1.12};
M:3 [CSRR list] {3.3.2.1.13};
M:4 [Regional Subscription] {3.3.2.1.14};
M:5 [License control] {3.3.2.1.15};
M:6 [CDR control] {3.3.2.1.16};
M:7 [Feature Code] {3.3.2.1.27};
M:8 [Platform] {2};
M:9 [HLR0] {3.3};
M:10 [HLR1] {3.3};
##HLR->Platform
/ / /.3.8. (9);
M:1 [MTP3] {2.2.2};
M:2 [SCCP] {2.2.3};
M:3 [XAPP] {2.2.5};
##HLR->Platform->MTP3
/ / /.3.8.1. (9);
M:1 [Network Indicator] {2.2.2.2.2};
M:2 [Originating Point code] {2.2.2.2.3};
M:3 [Link Set] {2.2.2.2.4};
M:4 [Link] {2.2.2.2.5};
M:5 [Routing] {2.2.2.2.6};
M:6 [ACN] {2.2.2.2.7};
M:7 [Status] {2.2.2.3};
M:8 [Signaling GateWay] {2.2.2.2.9};
##HLR->Platform->MTP3->Status
/ / /.3.8.1.7. (9);
M:1 [Link status] {2.2.2.3.1};
M:2 [Link set status] {2.2.2.3.2};
M:3 [International routing] {2.2.2.3.3};
M:4 [International spare] {2.2.2.3.4};
M:5 [National routing] {2.2.2.3.5};
M:6 [National spare routing] {2.2.2.3.6};
M:7 [Command] {2.2.2.3.7};
##HLR->Platform->SCCP
/ / /.3.8.2. (9);
M:1 [Local node] {2.2.3.2.1};
M:2 [GTT] {2.2.3.2.2};
M:3 [Command] {2.2.3.3.2};
##HLR->Platform->XAPP
/ / /.3.8.3. (9);
M:1 [MCC] {2.2.5.2.1};
M:2 [MNC] {2.2.5.2.2};
M:3 [CC] {2.2.5.2.3};
M:4 [NDC] {2.2.5.2.4};
M:5 [International prefix] {2.2.5.2.5};
M:6 [National Prefix] {2.2.5.2.6};
M:7 [Local Prefix] {2.2.5.2.7};
M:8 [Convert Prefix] {2.2.5.2.8};
M:9 [Command] {2.2.5.3.2};
##HLR->HLR0
/ / /.3.9. (1);
M:1 [Command] {3.3.2.2.2};
M:2 [Subscriber import] {3.3.2.2.3};
M:3 [Max Licenses] {3.3.2.2.11};
M:4 [Used Licenses] {3.3.2.2.12};
M:5 [Subscriber information] {3.3.2.2.13};
M:6 [Version] {3.3.2.2.14};
M:7 [IMSI segment] {3.3.2.2.15};
M:8 [MSISDN segment] {3.3.2.2.16};
M:9 [CNF applicant info] {3.3.2.2.27};
##M:10 [Contry code] {3.3.2.2.10};
##HLR->HLR0->Subscriber information
/ / /.3.9.5. (1);
M:1 [Provisioned subscribers] {3.3.2.2.13.1};
M:2 [Registered subscribers] {3.3.2.2.13.2};
M:3 [Roaming subscribers] {3.3.2.2.13.3};
##HLR->HLR0->Version
/ / /.3.9.6. (1);
M:1 [Software] {3.3.2.2.14.1};
M:2 [User data] {3.3.2.2.14.2};
##HLR->HLR1
/ / /.3.10. (2);
M:1 [Command] {3.3.2.2.2};
M:2 [Subscriber import] {3.3.2.2.3};
M:3 [Max Licenses] {3.3.2.2.11};
M:4 [Used Licenses] {3.3.2.2.12};
M:5 [Subscriber information] {3.3.2.2.13};
M:6 [Version] {3.3.2.2.14};
M:7 [IMSI segment] {3.3.2.2.15};
M:8 [MSISDN segment] {3.3.2.2.16};
M:9 [CNF applicant info] {3.3.2.2.27};
##M:10 [Contry code] {3.3.2.2.10};
##HLR->HLR1->Subscriber information
/ / /.3.10.5. (2);
M:1 [Provisioned subscribers] {3.3.2.2.13.1};
M:2 [Registered subscribers] {3.3.2.2.13.2};
M:3 [Roaming subscribers] {3.3.2.2.13.3};
##HLR->HLR1->Version
/ / /.3.10.6. (2);
M:1 [Software] {3.3.2.2.14.1};
M:2 [User data] {3.3.2.2.14.2};
##PPS
/ / /.4. (9);
M:1 [Service control] {3.6.2.1.1};
M:2 [SRF Number] {3.6.2.1.2.1};
M:3 [Service number] {3.6.2.1.2.2};
M:4 [Service key] {3.6.2.1.2.3};
M:5 [COS Parameter] {3.6.2.1.4};
M:6 [Call routing to VMS] {3.6.2.1.5};
M:7 [Status] {3.6.2.1.6};
M:8 [Platform] {2};
##PPS->Service control
/ / /.4.1. (9);
M:1 [CDR flag] {3.6.2.1.1.1};
M:2 [Blacklist threshhold] {3.6.2.1.1.2};
M:3 [Maximun balance] {3.6.2.1.1.3};
M:4 [license control] {3.6.2.1.1.4};
M:5 [Prompt resolution] {3.6.2.1.1.5};
M:6 [SMS Sentence] {3.6.2.1.1.6};
M:7 [Last call info] {3.6.2.1.1.7};
M:8 [Currency Symbol] {3.6.2.1.1.8};
M:9 [Third party info] {3.6.2.1.1.9};
M:10 [Basic Tariff Zone] {3.6.2.1.1.10};
##PPS->Service number
/ / /.4.3. (9);
M:1 [Hotline] {3.6.2.1.2.2.1};
M:2 [Inquiry] {3.6.2.1.2.2.2};
M:3 [Scratch card rechagne] {3.6.2.1.2.2.3};
M:4 [Credit card recharge] {3.6.2.1.2.2.4};
M:5 [Third party recharge] {3.6.2.1.2.2.5};
M:6 [Customer care center] {3.6.2.1.2.2.6};
M:7 [Recharge] {3.6.2.1.2.2.7};
##PPS->Service key
/ / /.4.4. (9);
M:1 [Inquiry] {3.6.2.1.2.3.2};
M:2 [Scratch card rechagne] {3.6.2.1.2.3.3};
M:3 [Credit card recharge] {3.6.2.1.2.3.4};
M:4 [Set favorite number] {3.6.2.1.2.3.5};
M:5 [Set password] {3.6.2.1.2.3.6};
##PPS->COS Parameter
/ / /.4.5. (9);
M:1 [COS0] {3.6.2.1.4.1};
M:2 [COS1] {3.6.2.1.4.2};
M:3 [COS2] {3.6.2.1.4.3};
M:4 [COS3] {3.6.2.1.4.4};
M:5 [COS4] {3.6.2.1.4.5};
M:6 [COS5] {3.6.2.1.4.6};
M:7 [COS6] {3.6.2.1.4.7};
M:8 [COS7] {3.6.2.1.4.8};
M:9 [COS8] {3.6.2.1.4.9};
M:10 [COS9] {3.6.2.1.4.10};
M:11 [COS10] {3.6.2.1.4.11};
M:12 [COS11] {3.6.2.1.4.12};
M:13 [COS12] {3.6.2.1.4.13};
M:14 [COS13] {3.6.2.1.4.14};
M:15 [COS14] {3.6.2.1.4.15};
M:16 [COS15] {3.6.2.1.4.16};
##PPS->COS Parameter->COS 0-15
/ / /.4.5.1. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.1.1};
M:2 [Tariff Resolution] {3.6.2.1.4.1.2};
M:3 [Account control] {3.6.2.1.4.1.3};
M:4 [MT Call control] {3.6.2.1.4.1.4};
M:5 [Validity control] {3.6.2.1.4.1.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.1.6};
/ / /.4.5.2. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.2.1};
M:2 [Tariff Resolution] {3.6.2.1.4.2.2};
M:3 [Account control] {3.6.2.1.4.2.3};
M:4 [MT Call control] {3.6.2.1.4.2.4};
M:5 [Validity control] {3.6.2.1.4.2.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.2.6};
/ / /.4.5.3. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.3.1};
M:2 [Tariff Resolution] {3.6.2.1.4.3.2};
M:3 [Account control] {3.6.2.1.4.3.3};
M:4 [MT Call control] {3.6.2.1.4.3.4};
M:5 [Validity control] {3.6.2.1.4.3.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.3.6};
/ / /.4.5.4. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.4.1};
M:2 [Tariff Resolution] {3.6.2.1.4.4.2};
M:3 [Account control] {3.6.2.1.4.4.3};
M:4 [MT Call control] {3.6.2.1.4.4.4};
M:5 [Validity control] {3.6.2.1.4.4.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.4.6};
/ / /.4.5.5. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.5.1};
M:2 [Tariff Resolution] {3.6.2.1.4.5.2};
M:3 [Account control] {3.6.2.1.4.5.3};
M:4 [MT Call control] {3.6.2.1.4.5.4};
M:5 [Validity control] {3.6.2.1.4.5.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.5.6};
/ / /.4.5.6. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.6.1};
M:2 [Tariff Resolution] {3.6.2.1.4.6.2};
M:3 [Account control] {3.6.2.1.4.6.3};
M:4 [MT Call control] {3.6.2.1.4.6.4};
M:5 [Validity control] {3.6.2.1.4.6.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.6.6};
/ / /.4.5.7. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.7.1};
M:2 [Tariff Resolution] {3.6.2.1.4.7.2};
M:3 [Account control] {3.6.2.1.4.7.3};
M:4 [MT Call control] {3.6.2.1.4.7.4};
M:5 [Validity control] {3.6.2.1.4.7.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.7.6};
/ / /.4.5.8. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.8.1};
M:2 [Tariff Resolution] {3.6.2.1.4.8.2};
M:3 [Account control] {3.6.2.1.4.8.3};
M:4 [MT Call control] {3.6.2.1.4.8.4};
M:5 [Validity control] {3.6.2.1.4.8.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.8.6};
/ / /.4.5.9. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.9.1};
M:2 [Tariff Resolution] {3.6.2.1.4.9.2};
M:3 [Account control] {3.6.2.1.4.9.3};
M:4 [MT Call control] {3.6.2.1.4.9.4};
M:5 [Validity control] {3.6.2.1.4.9.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.9.6};
/ / /.4.5.10. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.10.1};
M:2 [Tariff Resolution] {3.6.2.1.4.10.2};
M:3 [Account control] {3.6.2.1.4.10.3};
M:4 [MT Call control] {3.6.2.1.4.10.4};
M:5 [Validity control] {3.6.2.1.4.10.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.10.6};
/ / /.4.5.11. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.11.1};
M:2 [Tariff Resolution] {3.6.2.1.4.11.2};
M:3 [Account control] {3.6.2.1.4.11.3};
M:4 [MT Call control] {3.6.2.1.4.11.4};
M:5 [Validity control] {3.6.2.1.4.11.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.11.6};
/ / /.4.5.12. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.12.1};
M:2 [Tariff Resolution] {3.6.2.1.4.12.2};
M:3 [Account control] {3.6.2.1.4.12.3};
M:4 [MT Call control] {3.6.2.1.4.12.4};
M:5 [Validity control] {3.6.2.1.4.12.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.12.6};
/ / /.4.5.13. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.13.1};
M:2 [Tariff Resolution] {3.6.2.1.4.13.2};
M:3 [Account control] {3.6.2.1.4.13.3};
M:4 [MT Call control] {3.6.2.1.4.13.4};
M:5 [Validity control] {3.6.2.1.4.13.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.13.6};
/ / /.4.5.14. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.14.1};
M:2 [Tariff Resolution] {3.6.2.1.4.14.2};
M:3 [Account control] {3.6.2.1.4.14.3};
M:4 [MT Call control] {3.6.2.1.4.14.4};
M:5 [Validity control] {3.6.2.1.4.14.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.14.6};
/ / /.4.5.15. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.15.1};
M:2 [Tariff Resolution] {3.6.2.1.4.15.2};
M:3 [Account control] {3.6.2.1.4.15.3};
M:4 [MT Call control] {3.6.2.1.4.15.4};
M:5 [Validity control] {3.6.2.1.4.15.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.15.6};
/ / /.4.5.16. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.16.1};
M:2 [Tariff Resolution] {3.6.2.1.4.16.2};
M:3 [Account control] {3.6.2.1.4.16.3};
M:4 [MT Call control] {3.6.2.1.4.16.4};
M:5 [Validity control] {3.6.2.1.4.16.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.16.6};
##PPS->call routing to VMS
/ / /.4.6. (9);
M:1 [VMS service number-PLMN] {3.6.2.1.5.1};
M:2 [VMS service number-PSTN] {3.6.2.1.5.2};
M:3 [VMS leave message number] {3.6.2.1.5.3};
M:4 [Routing rule] {3.6.2.1.5.4};
M:5 [VMS user segments] {3.6.2.1.5.5};
##PPS->Status
/ / /.4.7. (9);
M:1 [Activaion] {3.6.2.1.6.1};
M:2 [Command] {3.6.2.1.6.2};
##PPS->Platform
/ / /.4.8. (9);
M:1 [MTP3] {2.2.2};
M:2 [SCCP] {2.2.3};
M:3 [XAPP] {2.2.5};
M:4 [SMPP] {2.3.4}
##PPS->Platform->MTP3
/ / /.4.8.1. (9);
M:1 [Network Indicator] {2.2.2.2.2};
M:2 [Originating Point code] {2.2.2.2.3};
M:3 [Link Set] {2.2.2.2.4};
M:4 [Link] {2.2.2.2.5};
M:5 [Routing] {2.2.2.2.6};
M:6 [CAN] {2.2.2.2.7};
M:7 [Status] {2.2.2.3};
M:8 [Signaling GateWay] {2.2.2.2.9};
##PPS->Platform->MTP3->Status
/ / /.4.8.1.7. (9);
M:1 [Link status] {2.2.2.3.1};
M:2 [Link set status] {2.2.2.3.2};
M:3 [International routing] {2.2.2.3.3};
M:4 [International spare] {2.2.2.3.4};
M:5 [National routing] {2.2.2.3.5};
M:6 [National spare routing] {2.2.2.3.6};
M:7 [Command] {2.2.2.3.7};
##PPS->Platform->SCCP
/ / /.4.8.2. (9);
M:1 [Local node] {2.2.3.2.1};
M:2 [GTT] {2.2.3.2.2};
M:3 [Command] {2.2.3.3.2};
##PPS->Platform->XAPP
/ / /.4.8.3. (9);
M:1 [MCC] {2.2.5.2.1};
M:2 [MNC] {2.2.5.2.2};
M:3 [CC] {2.2.5.2.3};
M:4 [NDC] {2.2.5.2.4};
M:5 [International prefix] {2.2.5.2.5};
M:6 [National Prefix] {2.2.5.2.6};
M:7 [Local Prefix] {2.2.5.2.7};
M:8 [Convert Prefix] {2.2.5.2.8};
M:9 [Command] {2.2.5.3.2};
##PPS-->Platform->SMPP
/ / /.4.8.4. (9);
M:1 [SMPP_Link_Param] {2.3.4.2.1};
M:2 [Command] {2.3.4.3.2};
## SMSC
/ / /.5. (9);
M:1 [CDR flag] {3.5.2.1.1};
M:2 [SM Validity] {3.5.2.1.2};
M:3 [MSISDN Segment] {3.5.2.1.3};
M:4 [SMPP parameters] {3.5.2.2};
M:5 [Command] {3.5.3.3};
M:6 [Platform] {2};
M:7 [SMSC0] {3.5};
M:8 [SMSC1] {3.5};
##SMSC->Platform
/ / /.5.6. (9);
M:1 [MTP3] {2.2.2};
M:2 [SCCP] {2.2.3};
M:3 [XAPP] {2.2.5};
M:4 [SMPP] {2.3.4};
##SMSC->Platform->MTP3
/ / /.5.6.1. (9);
M:1 [Network Indicator] {2.2.2.2.2};
M:2 [Originating Point code] {2.2.2.2.3};
M:3 [Link Set] {2.2.2.2.4};
M:4 [Link] {2.2.2.2.5};
M:5 [Routing] {2.2.2.2.6};
M:6 [CAN] {2.2.2.2.7};
M:7 [Status] {2.2.2.3};
M:8 [Signaling GateWay] {2.2.2.2.9};
##SMSC->Platform->MTP3->Status
/ / /.5.6.1.7. (9);
M:1 [Link status] {2.2.2.3.1};
M:2 [Link set status] {2.2.2.3.2};
M:3 [International routing] {2.2.2.3.3};
M:4 [International spare] {2.2.2.3.4};
M:5 [National routing] {2.2.2.3.5};
M:6 [National spare routing] {2.2.2.3.6};
M:7 [Command] {2.2.2.3.7};
##SMSC->Platform->SCCP
/ / /.5.6.2. (9);
M:1 [Local node] {2.2.3.2.1};
M:2 [GTT] {2.2.3.2.2};
M:3 [Command] {2.2.3.3.2};
##SMSC->Platform->XAPP
/ / /.5.6.3. (9);
M:1 [MCC] {2.2.5.2.1};
M:2 [MNC] {2.2.5.2.2};
M:3 [CC] {2.2.5.2.3};
M:4 [NDC] {2.2.5.2.4};
M:5 [International prefix] {2.2.5.2.5};
M:6 [National Prefix] {2.2.5.2.6};
M:7 [Local Prefix] {2.2.5.2.7};
M:8 [Convert Prefix] {2.2.5.2.8};
M:9 [Command] {2.2.5.3.2};
##SMSC->Platform->SMPP
/ / /.5.6.4. (9);
M:1 [SMPP_Link_Param] {2.3.4.2.1};
M:2 [Command] {2.3.4.3.2};
##SMSC->SMSC0
/ / /.5.7. (1);
M:1 [SMSC ID] {3.5.3.1};
M:2 [Software version] {3.5.3.2};
##SMSC->SMSC1
/ / /.5.8. (2);
M:1 [SMSC ID] {3.5.3.1};
M:2 [Software version] {3.5.3.2};
##AUC
/ / /.6. (9);
M:1 [Platform] {2};
M:2 [AUC0] (1) {3.4};
M:3 [AUC1] (2) {3.4};
##AUC->Platform
/ / /.6.1. (9);
M:1 [MTP3] {2.2.2};
M:2 [SCCP] {2.2.3};
M:3 [XAPP] {2.2.5};
##AUC->Platform->MTP3
/ / /.6.1.1. (9);
M:1 [Network Indicator] {2.2.2.2.2};
M:2 [Originating Point code] {2.2.2.2.3};
M:3 [Link Set] {2.2.2.2.4};
M:4 [Link] {2.2.2.2.5};
M:5 [Routing] {2.2.2.2.6};
M:6 [CAN] {2.2.2.2.7};
M:7 [Status] {2.2.2.3};
M:8 [Signaling GateWay] {2.2.2.2.9};
##AUC->Platform->MTP3->Status
/ / /.6.1.1.7. (9);
M:1 [Link status] {2.2.2.3.1};
M:2 [Link set status] {2.2.2.3.2};
M:3 [International routing] {2.2.2.3.3};
M:4 [International spare] {2.2.2.3.4};
M:5 [National routing] {2.2.2.3.5};
M:6 [National spare routing] {2.2.2.3.6};
M:7 [Command] {2.2.2.3.7};
##AUC->Platform->SCCP
/ / /.6.1.2. (9);
M:1 [Local node] {2.2.3.2.1};
M:2 [GTT] {2.2.3.2.2};
M:3 [Command] {2.2.3.3.2};
##AUC->Platform->XAPP
/ / /.6.1.3. (9);
M:1 [MCC] {2.2.5.2.1};
M:2 [MNC] {2.2.5.2.2};
M:3 [CC] {2.2.5.2.3};
M:4 [NDC] {2.2.5.2.4};
M:5 [International prefix] {2.2.5.2.5};
M:6 [National Prefix] {2.2.5.2.6};
M:7 [Local Prefix] {2.2.5.2.7};
M:8 [Convert Prefix] {2.2.5.2.8};
M:9 [Command] {2.2.5.3.2};
##EIR
##/ / /.7. (9);
##M:1 [Platform] {2};
##M:2 [EIR0] (1) {3.8};
##M:3 [EIR1] (2) {3.8};
##EIR->Platform
##/ / /.7.1. (9);
##M:1 [MTP3] {2.2.2};
##M:2 [SCCP] {2.2.3};
##M:3 [XAPP] {2.2.5};
##EIR->Platform->MTP3
##/ / /.7.1.1. (9);
##M:1 [Network Indicator] {2.2.2.2.2};
##M:2 [Originating Point code] {2.2.2.2.3};
##M:3 [Link Set] {2.2.2.2.4};
##M:4 [Link] {2.2.2.2.5};
##M:5 [Routing] {2.2.2.2.6};
##M:6 [CAN] {2.2.2.2.7};
##M:7 [Status] {2.2.2.3};
M:8 [Signaling GateWay] {2.2.2.2.9};
##EIR->Platform->MTP3->Status
##/ / /.7.1.1.7. (9);
####M:1 [Link status] {2.2.2.3.1};
##M:2 [Link set status] {2.2.2.3.2};
##M:3 [International routing] {2.2.2.3.3};
##M:4 [International spare] {2.2.2.3.4};
##M:5 [National routing] {2.2.2.3.5};
##M:6 [National spare routing] {2.2.2.3.6};
##M:7 [Command] {2.2.2.3.7};
##EIR->Platform->SCCP
##/ / /.7.1.2. (9);
##M:1 [Local node] {2.2.3.2.1};
##M:2 [GTT] {2.2.3.2.2};
##M:3 [Command] {2.2.3.3.2};
##EIR->Platform->XAPP
##/ / /.7.1.3. (9);
##M:1 [MCC] {2.2.5.2.1};
##M:2 [MNC] {2.2.5.2.2};
##M:3 [CC] {2.2.5.2.3};
##M:5 [International prefix] {2.2.5.2.5};
##M:6 [National Prefix] {2.2.5.2.6};
##M:7 [Local Prefix] {2.2.5.2.7};
##M:8 [Convert Prefix] {2.2.5.2.8};
##M:9 [Command] {2.2.5.3.2};

View File

@@ -0,0 +1,14 @@
// "//" is the annotation characters;
IWV-SMI.txt
Special_App-SMI.txt
//PPPRT-MIB.txt
WXC2-SMI.txt
//WXC2-CSU-MIB.txt
WXC2-SS7-MIB.txt
WXC2-MSC-MIB.txt
WXC2-HLR-MIB.txt
WXC2-AUC-MIB.txt
//WXC2-EIR-MIB.txt
WXC2-SMSC-MIB.txt
WXC2-PPS-MIB.txt
WXC2-MSS-MIB.txt

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,40 @@
-- *****************************************************************
-- IWV-SMI: interWAVE Enterprise Structure of Management Information
--
-- draft November 2000, Huang qilong
-- 1st November 2004, Sheng Xueqiang
--
-- Copyright (c) 2000 by interWAVE, Inc.
-- All rights reserved.
--
-- *****************************************************************
--
IWV-SMI DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY,
OBJECT-IDENTITY,
enterprises
FROM SNMPv2-SMI;
IWV MODULE-IDENTITY
LAST-UPDATED "0411170000Z"
ORGANIZATION "interWAVE, Inc."
CONTACT-INFO
"http://www.iwv.com"
DESCRIPTION
"The Structure of Management Information for the interWAVE enterprise."
REVISION "200411170000Z"
DESCRIPTION
"1st version of this MIB module."
::= { enterprises 1373 } -- assigned by IANA
IWV_Products OBJECT-IDENTITY
STATUS current
DESCRIPTION
"iwvProducts is the root OBJECT IDENTIFIER from which sysObjectID values are assigned. Actual values are defined in IWV-PRODUCTS-MIB."
::= { IWV 1 }
END

View File

@@ -0,0 +1,43 @@
-- *****************************************************************
-- Special_App-SMI: WXC2 Structure of Management Information
--
-- draft November 2004, Sheng Xueqiang
--
-- Copyright (c) 2004 by interWAVE, Inc.
-- All rights reserved.
--
-- *****************************************************************
--
Special_App-SMI DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY,
OBJECT-IDENTITY,
FROM SNMPv2-SMI
IWV_Products
FROM IWV-SMI;
Special_App MODULE-IDENTITY
LAST-UPDATED "0411180000Z"
ORGANIZATION "interWAVE, Inc."
CONTACT-INFO
"http://www.iwv.com"
DESCRIPTION
"The Structure of Management Information for the Special Application of interWAVE enterprise."
REVISION "200411180000Z"
DESCRIPTION
"1st version of this MIB module."
::= { IWV_Products 2 }
-- CNF Center
-- IWF
IWF OBJECT-IDENTITY
STATUS current
DESCRIPTION
"IWF "
::= { Special_App 8 }
-- PPP Route
END

View File

@@ -0,0 +1,26 @@
// host ip
// "//" is the annotation characters; ";" is the septation characters;
// Please put the localhost subsystem ip at the first of the group ip on one subsystem
MTP3_0_0 mss-0 ; LocalHost;
MTP3_1_0 mss-1 ; 172.18.133.1;
MTP3_2_0 -- ; 172.18.123.1;
MTP3_3_0 -- ; 172.18.143.1;
SCCP_0_0 mss-0 ; LOCALHOST;
SCCP_1_0 mss-1 ; 172.18.133.1;
XAPP_0_0 MSS-0 ; localhost;
XAPP_1_0 MSS-1 ; 172.18.133.1;
SMPP_0_0 SMPP-0; LocalHost;
MSC_0_0 -- ; LocalHost;
MSC_1_0 -- ; 172.18.133.1;
CCF(MSC)_0_0 --; LocalHost;
CCF(MSC)_0_1 --; 172.18.133.1;
VLR_0_0 VLR-0 ; LocalHost;
VLR_1_0 VLR-1 ; 172.18..1;
HLR_0_0 -- ; LocalHost;
HLR_1_0 -- ; 172.18.234.230;
AUC_0_0 -- ; LocalHost;
AUC_1_0 -- ; 172.18.234.230;
SMSC_0_0 -- ; LocalHost;
SMSC_1_0 -- ; 172.18.234.230;
PPS_0_0 -- ; LocalHost;
PPS_1_0 -- ; 172.18.234.230;

View File

@@ -0,0 +1,437 @@
alvr1188-MIB DEFINITIONS ::= BEGIN
IMPORTS
OBJECT-TYPE, Integer32, Opaque
FROM SNMPv2-SMI
TEXTUAL-CONVENTION, DisplayString, TruthValue
FROM SNMPv2-TC
App
FROM WXC2-SMI;
AUC OBJECT-IDENTITY
STATUS current
DESCRIPTION
"
[SubSystem_Module]Subsystems for AUC .
"
::= { App 4 }
Configuration OBJECT-IDENTITY
STATUS current
DESCRIPTION
"
Configuration for AUC .
"
::= { AUC 2 }
Public_parameter OBJECT-IDENTITY
STATUS current
DESCRIPTION
"
Public_parameter for AUC .
"
::= { Configuration 1 }
SSD OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 8
Default: 0000000000000000
Field: [1]share SSD
{
[u]0.0-0.7
[u]select
[v]0[opt]not share
[v]1[opt]share
}
[2]Update SSD timer
{
[u]1.0-2.7
[u]input
[v]toDec-high-0
}
[3]reserved
{
[u]3.0-7.7
[u]select
}
Remark: SSD
[End]
"
::= { Public_parameter 2 }
Count OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 8
Default: 0000000000000000
Field: [1]Count Match Range
{
[u]0.0-0.7
[u]input
[v]toDec-high-0
}
[2]reserved
{
[u]1.0-7.7
[u]select
}
Remark: Count.
[End]
"
::= { Public_parameter 3 }
Failures OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 8
Default: 0000000000000000
Field:
[1]AUTHR Mismatch
{
[u]0.0-0.7
[u]select
[v]0[opt]Allow Access
[v]1[opt]Deny Access
[v]2[opt]Unique Challenge
}
[2]Count Mismatch
{
[u]1.0-1.7
[u]select
[v]0[opt]Allow Access
[v]1[opt]Deny Access
}
[3]Unique Challenge Failure
{
[u]2.0-2.7
[u]select
[v]0[opt]Allow Access
[v]1[opt]Deny Access
}
[4]SSD Update Failure
{
[u]3.0-3.7
[u]select
[v]0[opt]Allow Access
[v]1[opt]Deny Access
}
[5]Count Update Failure
{
[u]4.0-4.7
[u]select
[v]0[opt]Allow Access
[v]1[opt]Deny Access
}
[6]Missing AUTH Parameters
{
[u]5.0-5.7
[u]select
[v]0[opt]Allow Access
[v]1[opt]Deny Access
[v]2[opt]Unique Challenge
}
[7]reserved
{
[u]6.0-7.7
[u]select
}
Remark: Count.
[End]
"
::= { Public_parameter 4 }
Management OBJECT-IDENTITY
STATUS current
DESCRIPTION
"
Management .
"
::= { Configuration 2 }
Command OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 1
Default: 00
Flag: S1.2
Field: [1]Save parameters to HD
{
[u]00.0-00.2
[u]select
[v]00[opt]Idle
[v]01[opt]Save
[v]01[opt]Saving
[v]02[opt]Save succeeds
[v]03[opt]Save fails
}
[2]Save user data to HD&OMC
{
[u]00.3-00.5
[u]select
[v]00[opt]Idle
[v]01[opt]Save
[v]01[opt]Saving
[v]02[opt]Save succeeds
[v]03[opt]Save fails
}
[3]Reserved
{
[u]00.6-00.7
[u]select
}
Remark: Command for AUC paramters and user data operation, and the result of command.
[End]
"
::= { Management 2 }
License_Control OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS write-only
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 8
Default: 0000000000000000
Field: [1]Licenses
{
[u]00.0-15.7
[u]input
[v]keepHex-high-0
}
Remark: 8-byte encrypted license provided by interWAVE used to provision an approved quantiy of AUC subscribers for service provider. The new license can not support less AUC subscribers than what the old license supports.
[End]
"
::= { Management 3 }
MAX_License OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS write-only
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 4
Default: 00000000
Field: [1]Max Licenses
{
[u]0.0-3.7
[u]input
[v]toDec-high-0
}
Remark: The maximum quantity of approved AUC subscribers determined by License control Read only.
[End]
"
::= { Management 11 }
Used_License OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 4
Default: 00000000
Field: [1]Used Licenses
{
[u]00.0-03.7
[u]input
[v]toDec-high-0
}
Remark: The quantity of currently registered EIR subscribers (Read only).
[End]
"
::= { Management 12 }
User_information OBJECT-IDENTITY
STATUS current
DESCRIPTION
"
User Information .
"
::= { Management 13 }
Provisioned_Users OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 4
Default: 000000
Field: [1]Provisioned users
{
[u]00.0-03.7
[u]input
[v]toDec-high-0
}
Remark: The quantity of service enabled AUC subscribers (Read only).
[End]
"
::= { User_information 1 }
Version OBJECT-IDENTITY
STATUS current
DESCRIPTION
"
Version .
"
::= { Management 14 }
Software OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 3
Default: 000000
Field: [1]System
{
[u]00.0-00.7
[u]input
[v]keepHex-high-0
}
[2]Module
{
[u]01.0-01.7
[u]input
[v]keepHex-high-0
}
[3]Test
{
[u]02.0-02.7
[u]input
[v]keepHex-high-0
}
Remark: Version of AUC software (Read only).
System: System release version, based on basic function and structure.
Module: Software module version, based on software module.
Test: Test version, 0=Release version. 1=Test version.
[End]
"
::= { Version 1 }
User_data OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 3
Default: 000000
Field: [1]System
{
[u]00.0-00.7
[u]input
[v]keepHex-high-0
}
[2]User data
{
[u]01.0-01.7
[u]input
[v]keepHex-high-0
}
[3]Test
{
[u]02.0-02.7
[u]input
[v]keepHex-high-0
}
Remark: Version of AUC subscriber data (Read only).
System: System release version, based on basic function and structure.
User data: Subscriber profile version, based on software module.
Test: Test version, 0=Release version. 1=Test version.
[End]
"
::= { Version 2 }
IMSI_Segment OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1000
Length: 4
Default: 00000000
Field: [1]IMSI segment
{
[u]00.0-03.7
[u]input
[v]toDec-high-0
}
Remark: IMSI segment table (Read only):
100,000 IMSIs are subdivided into 1000 segments, each IMSI segment use the 8 most significant digits (from the 6th digit to 13th digit of 15-digit of IMSI) as the segment number.
IMSI=MCC(3)+MNC(2)+MSIN(10)
Segment number=the 8 most significant digits of the MSIN, each segment has 100 subscribers (00-99).
e.g. If IMSI=460002356090098 then it belongs to IMSI segemt 23560900 and its account number in that segment=98. 0=empty segment.
[End]
"
::= { Management 15 }
Status OBJECT-IDENTITY
STATUS current
DESCRIPTION
"
Status for AUC .
"
::= { AUC 3 }
Import_status OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 12
Default: 000000000000000000000000
Field:
Remark: Import status.
[End]
"
::= { Status 2 }
END

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,54 @@
WXC2-MSS-MIB DEFINITIONS ::= BEGIN
IMPORTS
OBJECT-TYPE, Integer32, Opaque
FROM SNMPv2-SMI
TEXTUAL-CONVENTION, DisplayString, TruthValue
FROM SNMPv2-TC
App
FROM WXC2-SMI;
MSS OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Subsystems for MSS . "
::= { App 16 }
Configuration OBJECT-IDENTITY
STATUS current
DESCRIPTION
" Configuration for MSS . "
::= { MSS 2 }
Management OBJECT-IDENTITY
STATUS current
DESCRIPTION
" Management for MSS . "
::= { Configuration 1 }
Command OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS write-only
STATUS current
DESCRIPTION
"
[Begin]
Instance : 1
Length : 1
Default : 00
Field : [1]Command
{
[u]00.0-00.7
[u]select
[v]4[opt]Shutdown
[v]5[opt]Undefine value
}
Remark : Safely shut down MSS server by stoping MSS process, saving subscriber data to harddisk and shut down the server.
Operation procedures:
1. Select -Shutdown- at above pulldown menu.
2. Click -Set- button in this set window.
3. Click -SET- button on operation page.
[End]
"
::= { Management 1 }
END

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,57 @@
-- *****************************************************************
-- WXC2-SMI: WXC2 Structure of Management Information
--
-- draft November 2000, Huang qilong
-- 1st November 2004, Sheng Xueqiang
--
-- Copyright (c) 2004 by interWAVE, Inc.
-- All rights reserved.
--
-- *****************************************************************
--
WXC2-SMI DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY,
OBJECT-IDENTITY,
FROM SNMPv2-SMI
IWV_Products
FROM IWV-SMI;
WXC2 MODULE-IDENTITY
LAST-UPDATED "200506050000Z"
ORGANIZATION "interWAVE, Inc."
CONTACT-INFO
"http://www.iwv.com"
DESCRIPTION
"The Structure of Management Information for the WXC2 of interWAVE enterprise."
REVISION "200506050000Z"
DESCRIPTION
"1st version of this MIB module."
::= { IWV_Products 3 }
-- WXC2_PCM
PCM OBJECT-IDENTITY
STATUS current
DESCRIPTION
"PCM "
::= { WXC2 1 }
-- WXC2_platform
Platform OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Platform "
::= { WXC2 2 }
-- WXC2_App
App OBJECT-IDENTITY
STATUS current
DESCRIPTION
"App platform"
::= { WXC2 3 }
END

View File

@@ -0,0 +1,259 @@
WXC2-SMSC-MIB DEFINITIONS ::= BEGIN
IMPORTS
OBJECT-TYPE, Integer32, Opaque
FROM SNMPv2-SMI
TEXTUAL-CONVENTION, DisplayString, TruthValue
FROM SNMPv2-TC
App
FROM WXC2-SMI;
SMSC OBJECT-IDENTITY
STATUS current
DESCRIPTION
"[SubSystem_Module]Subsystems for SMSC . "
::= { App 5 }
Configuration OBJECT-IDENTITY
STATUS current
DESCRIPTION
" Configuration for SMSC . "
::= { SMSC 2 }
System_Param OBJECT-IDENTITY
STATUS current
DESCRIPTION
" system parameter . "
::= { Configuration 1 }
CDR_Flag OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 1
Default: 03
Field: [1]SMSC CDR
{
[u]0.0-0.0
[u]select
[v]0[opt]Not generate
[v]1[opt]Generate
}
[2]SMSC LOG
{
[u]0.1-0.1
[u]select
[v]0[opt]Not generate
[v]1[opt]Generate
}
[3]Reserved
{
[u]0.2-0.7
[u]select
}
Remark: SMSC CDR generation enable or disable.
[End]
"
::= { System_Param 1 }
SM_Validity OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 4
Default: 0000A8C0
Field: [1]SM validity
{
[u]00.0-03.7
[u]input
[v]toDec-high-0
}
Remark: Period of validity of short message, define a threshold how long an awaiting sending message should be kept in sending array till sent to MS, unit is second, default=0c0a8h seconds=12 hours.
[End]
"
::= { System_Param 2 }
MSISDN_Segment OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"
[Begin]
Instance: 16
Length: 19
Default: 8675557127000EEEEE8675557127999EEEEE00
Field: [1]Start MSISDN
{
[u]00.0-08.7
[u]input
[v]keepHex-low-E
}
[2]End MSISDN
{
[u]09.0-17.7
[u]input
[v]keepHex-low-E
}
[3]Number Type
{
[u]18.0-18.7
[u]select
[v]0[opt]GSM
[v]1[opt]CDMA
}
Remark: Specify the beginning MSISDN for the range of provisioned subscriber. F=end tag.
[End]
"
::= { System_Param 3 }
SMPP_parameters OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"
[Begin]
Instance: 32
Length: 12
Default: 000000000000000000000000
Field: [1]Enable flag
{
[u]00.0-00.7
[u]select
[v]00[opt]Disable
[v]01[opt]Enable
}
[2]Session type
{
[u]01.0-01.7
[u]select
[v]00[opt]BIND_TX
[v]01[opt]BIND_RX
[v]02[opt]BIND_TRX
}
[3]Service number
{
[u]02.0-9.7
[u]input
[v]toAscii-low-0
}
[4]Message mode
{
[u]10.0-10.7
[u]select
[v]00[opt]Store and forward
[v]01[opt]Datagram
[v]02[opt]Transaction
}
[5]Data Coding Scheme
{
[u]11.0-11.7
[u]select
[v]00[opt]To smpp=7bit,default=7bit
[v]01[opt]To smpp=8bit,default=7bit
[v]16[opt]To smpp=7bit,default=8bit
[v]17[opt]To smpp=8bit,default=8bit
}
Remark: Name: Can be any name, generally use the name of the connected device.
Service number: SMPP connected party MSISDN used for display on MT MS,
e.g. for a SMPP to PPS, set the service number as MSISDN of PPS.
Data coding scheme:
00:smsc to smpp=7bit,when dcs = 0,smsc to smpp default = 7bit
01:smsc to smpp=8bit,when dcs = 0,smsc to smpp default = 7bit
10:smsc to smpp=7bit,when dcs = 0,smsc to smpp default = 8bit
11:smsc to smpp=8bit,when dcs = 0,smsc to smpp default = 8bit
Default=0.
[End]
"
::= { Configuration 2 }
Management OBJECT-IDENTITY
STATUS current
DESCRIPTION
"
Management for SMSC .
"
::= { SMSC 3 }
SMSC_ID OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 1
Default: 00
Field: [1]SMSC ID
{
[u]00.0-00.7
[u]input
[v]keepHex-low-E
}
Remark: SMSC ID
[End]
"
::= { Management 1 }
Software_Version OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS write-only
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 7
Default: 00000000000000
Field: [1]Version
{
[u]00.0-02.7
[u]input
[v]keepHex-low-E
}
Remark: Software version
[End]
"
::= { Management 2 }
Command OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"
[Begin]
Instance: 1
Length: 1
Default: 01
Flag: S1.1
Field: [1]Command
{
[u]00.0-00.7
[u]select
[v]01[opt]Save parameters
[v]04[opt]Reset system
[v]05[opt]Delete pending SM
}
Remark: SMSC system command.
Save parameters: Save the SMSC parameters in memory to SMSC harddisk.
Delete pending SM: Delete the pending SM in awaiting array.
[End]
"
::= { Management 3 }
END

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,13 @@
*******************
* Module Page *
*******************
a -- IPTR i -- HLR
b -- MTP3 j -- SMSC
c -- SCCP k -- PPS
d -- TCAP l -- SNMP
e -- XAPP m -- M2UA
f -- MSC n -- DEBUG
g -- VLR o -- AUC
h -- SSF p -- EIR

View File

@@ -0,0 +1,908 @@
############## The debug menu tree config file root=wxc2 root_oid={1.3.6.1.4.1.1373.1.3}
#(0)(1)(2)(9) ip group
#/ the layer
#.1.1.3. menu_id
#{3.2.2.1.2} the last oid from the root
#[name] menu name
#M:8 the id of the menu in the current object
############## all the line must end for ';',and menu id and last oid must do not contain space
##WXC2
/. (9);
M:1 [MSC] {3.2};
M:2 [VLR] {3.2.5};
M:3 [HLR] {3.3};
M:4 [PPS] {3.6};
M:5 [SMSC] {3.5};
M:6 [AUC] {3.4};
##M:7 [EIR] {3.8};
##MSC
/ /.1. (9);
M:1 [Prefix Assignment] {3.2.2.2.1.1};
M:2 [Prefix Attributes] {3.2.2.2.1.2};
M:3 [Assign TG to Prefix] {3.2.2.2.1.3};
M:4 [TG attributes] {3.2.2.2.1.4};
M:5 [CDR Flag] {3.2.2.2.1.5};
M:6 [Announcement Option] {3.2.2.2.1.6};
M:7 [Warning tone] {3.2.2.2.1.7};
M:8 [Emergency call] {3.2.2.2.2.5};
M:9 [Location management] {3.2.2.2.2.8};
M:10 [Max. call duration] {3.2.2.2.3.7};
M:11 [E1 Port] {3.2.2.2.4};
M:12 [channel attributes] {3.2.2.2.5};
M:13 [Platform] {2};
M:14 [MSC0] (1) {3.2};
M:15 [MSC1] (2) {3.2};
##MSC->E1 Port
/ / /.1.11. (9);
M:1 [E1 interface] {3.2.2.2.4.1};
M:2 [Assign TG to E1] {3.2.2.2.4.2};
M:3 [CIC of E1] {3.2.2.2.4.3};
##MSC->channel attributes->8K card 0-31
/ / /.1.12. (9);
M:1 [Card 0 channel attributes] {3.2.2.2.5.1};
M:2 [Card 1 channel attributes] {3.2.2.2.5.2};
M:3 [Card 2 channel attributes] {3.2.2.2.5.3};
M:4 [Card 3 channel attributes] {3.2.2.2.5.4};
M:5 [Card 4 channel attributes] {3.2.2.2.5.5};
M:6 [Card 5 channel attributes] {3.2.2.2.5.6};
M:7 [Card 6 channel attributes] {3.2.2.2.5.7};
M:8 [Card 7 channel attributes] {3.2.2.2.5.8};
M:9 [Card 8 channel attributes] {3.2.2.2.5.9};
M:10 [Card 9 channel attributes] {3.2.2.2.5.10};
M:11 [Card 10 channel attributes] {3.2.2.2.5.11};
M:12 [Card 11 channel attributes] {3.2.2.2.5.12};
M:13 [Card 12 channel attributes] {3.2.2.2.5.13};
M:14 [Card 13 channel attributes] {3.2.2.2.5.14};
M:15 [Card 14 channel attributes] {3.2.2.2.5.15};
M:16 [Card 15 channel attributes] {3.2.2.2.5.16};
M:17 [Card 16 channel attributes] {3.2.2.2.5.17};
M:18 [Card 17 channel attributes] {3.2.2.2.5.18};
M:19 [Card 18 channel attributes] {3.2.2.2.5.19};
M:20 [Card 19 channel attributes] {3.2.2.2.5.20};
M:21 [Card 20 channel attributes] {3.2.2.2.5.21};
M:22 [Card 21 channel attributes] {3.2.2.2.5.22};
M:23 [Card 22 channel attributes] {3.2.2.2.5.23};
M:24 [Card 23 channel attributes] {3.2.2.2.5.24};
M:25 [Card 24 channel attributes] {3.2.2.2.5.25};
M:26 [Card 25 channel attributes] {3.2.2.2.5.26};
M:27 [Card 26 channel attributes] {3.2.2.2.5.27};
M:28 [Card 27 channel attributes] {3.2.2.2.5.28};
M:29 [Card 28 channel attributes] {3.2.2.2.5.29};
M:30 [Card 29 channel attributes] {3.2.2.2.5.30};
M:31 [Card 30 channel attributes] {3.2.2.2.5.31};
M:32 [Card 31 channel attributes] {3.2.2.2.5.32};
##MSC->Platform
/ / /.1.13. (9);
M:1 [MTP3] {2.2.2};
M:2 [SCCP] {2.2.3};
M:3 [XAPP] {2.2.5};
##MSC->Platform->MTP3
/ / /.1.13.1. (9);
M:1 [Network Indicator] {2.2.2.2.2};
M:2 [Originating Point code] {2.2.2.2.3};
M:3 [Link Set] {2.2.2.2.4};
M:4 [Link] {2.2.2.2.5};
M:5 [Routing] {2.2.2.2.6};
M:6 [ACN] {2.2.2.2.7};
M:7 [Status] {2.2.2.3};
M:8 [Signaling GateWay] {2.2.2.2.9};
##MSC->Platform->MTP3->Status
/ / /.1.13.1.7. (9);
M:1 [Link status] {2.2.2.3.1};
M:2 [Link set status] {2.2.2.3.2};
M:3 [International routing] {2.2.2.3.3};
M:4 [International spare] {2.2.2.3.4};
M:5 [National routing] {2.2.2.3.5};
M:6 [National spare routing] {2.2.2.3.6};
M:7 [Command] {2.2.2.3.7};
##MSC->Platform->SCCP
/ / /.1.13.2. (9);
M:1 [Local node] {2.2.3.2.1};
M:2 [GTT] {2.2.3.2.2};
M:3 [Command] {2.2.3.3.2};
##MSC->Platform->XAPP
/ / /.1.13.3. (9);
M:1 [MCC] {2.2.5.2.1};
M:2 [MNC] {2.2.5.2.2};
M:3 [CC] {2.2.5.2.3};
M:4 [NDC] {2.2.5.2.4};
M:5 [International prefix] {2.2.5.2.5};
M:6 [National Prefix] {2.2.5.2.6};
M:7 [Local Prefix] {2.2.5.2.7};
M:8 [Convert Prefix] {2.2.5.2.8};
M:9 [Command] {2.2.5.3.2};
##MSC->MSC0->E1 status
/ / /.1.14. (1);
M:1 [E1 Status] {3.2.2.3.4};
M:2 [Channel Status] {3.2.2.3.5};
##M:3 [CSU0] {1.1};
##MSC->MSC1->E1 status
/ / /.1.15. (2);
M:1 [E1 Status] {3.2.2.3.4};
M:2 [Channel Status] {3.2.2.3.5};
##M:3 [CSU1] {1.1};
##MSC->MSC0->Channel Status
/ / / /.1.14.2. (1);
M:1 [8K Card 0] {3.2.2.3.5.1};
M:2 [8K Card 1] {3.2.2.3.5.2};
M:3 [8K Card 2] {3.2.2.3.5.3};
M:4 [8K Card 3] {3.2.2.3.5.4};
M:5 [8K Card 4] {3.2.2.3.5.5};
M:6 [8K Card 5] {3.2.2.3.5.6};
M:7 [8K Card 6] {3.2.2.3.5.7};
M:8 [8K Card 7] {3.2.2.3.5.8};
M:9 [8K Card 8] {3.2.2.3.5.9};
M:10 [8K Card 9] {3.2.2.3.5.10};
M:11 [8K Card 10] {3.2.2.3.5.11};
M:12 [8K Card 11] {3.2.2.3.5.12};
M:13 [8K Card 12] {3.2.2.3.5.13};
M:14 [8K Card 13] {3.2.2.3.5.14};
M:15 [8K Card 14] {3.2.2.3.5.15};
M:16 [8K Card 15] {3.2.2.3.5.16};
##MSC->MSC1->channel status
/ / / /.1.15.2. (2);
M:1 [8K Card 0] {3.2.2.3.5.1};
M:2 [8K Card 1] {3.2.2.3.5.2};
M:3 [8K Card 2] {3.2.2.3.5.3};
M:4 [8K Card 3] {3.2.2.3.5.4};
M:5 [8K Card 4] {3.2.2.3.5.5};
M:6 [8K Card 5] {3.2.2.3.5.6};
M:7 [8K Card 6] {3.2.2.3.5.7};
M:8 [8K Card 7] {3.2.2.3.5.8};
M:9 [8K Card 8] {3.2.2.3.5.9};
M:10 [8K Card 9] {3.2.2.3.5.10};
M:11 [8K Card 10] {3.2.2.3.5.11};
M:12 [8K Card 11] {3.2.2.3.5.12};
M:13 [8K Card 12] {3.2.2.3.5.13};
M:14 [8K Card 13] {3.2.2.3.5.14};
M:15 [8K Card 14] {3.2.2.3.5.15};
M:16 [8K Card 15] {3.2.2.3.5.16};
##MSC->MSC0->CSU0
##/ / / / /.1.14.3. (1);
##M:1 [E1 enable] {1.1.1.2.1};
##M:2 [MTP alarm on/off] {1.1.1.2.2};
##M:3 [Link type] {1.1.1.2.3};
##M:4 [NT/LT] {1.1.1.2.4};
##M:5 [DPLL priority] {1.1.1.2.5};
##M:6 [CRC4 flag] {1.1.1.2.6};
##M:7 [Ringback Tone] {1.1.1.2.7.1};
##M:8 [Busy Tone] {1.1.1.2.7.2};
##M:9 [Unavailable Tone] {1.1.1.2.7.3};
##M:10 [Congestion Tone] {1.1.1.2.7.4};
##M:11 [Proceeding Tone] {1.1.1.2.7.5};
##M:12 [Warning tone] {1.1.1.2.7.6};
##M:13 [Tone assignment] {1.1.1.2.7.9};
##M:14 [DTMF mark&space] {1.1.1.2.7.10};
##M:15 [8KE1_0] (0) {1.1.1.3};
##M:16 [8KE1_1] (0) {1.1.1.3};
##M:17 [8KE1_2] (0) {1.1.1.3};
##M:18 [8KE1_3] (0) {1.1.1.3};
##M:19 [8KE1_4] (0) {1.1.1.3};
##M:20 [8KE1_5] (0) {1.1.1.3};
##M:21 [8KE1_6] (0) {1.1.1.3};
##M:22 [8KE1_7] (0) {1.1.1.3};
##M:23 [8KE1_8] (0) {1.1.1.3};
##M:24 [8KE1_9] (0) {1.1.1.3};
##M:25 [8KE1_10] (0) {1.1.1.3};
##M:26 [8KE1_11] (0) {1.1.1.3};
##M:27 [8KE1_12] (0) {1.1.1.3};
##M:28 [8KE1_13] (0) {1.1.1.3};
##M:29 [8KE1_14] (0) {1.1.1.3};
##M:30 [8KE1_15] (0) {1.1.1.3};
##MSC->MSC1->CSU1
##/ / / / /.1.15.3. (2);
##M:1 [E1 enable] {1.1.1.2.1};
##M:2 [MTP alarm on/off] {1.1.1.2.2};
##M:3 [Link type] {1.1.1.2.3};
##M:4 [NT/LT] {1.1.1.2.4};
##M:5 [DPLL priority] {1.1.1.2.5};
##M:6 [CRC4 flag] {1.1.1.2.6};
##M:7 [Ringback Tone] {1.1.1.2.7.1};
##M:8 [Busy Tone] {1.1.1.2.7.2};
##M:9 [Unavailable Tone] {1.1.1.2.7.3};
##M:10 [Congestion Tone] {1.1.1.2.7.4};
##M:11 [Proceeding Tone] {1.1.1.2.7.5};
##M:12 [Warning tone] {1.1.1.2.7.6};
##M:13 [Tone assignment] {1.1.1.2.7.9};
##M:14 [DTMF mark&space] {1.1.1.2.7.10};
##M:15 [8KE1_0] (0) {1.1.1.3};
##M:16 [8KE1_1] (0) {1.1.1.3};
##M:17 [8KE1_2] (0) {1.1.1.3};
##M:18 [8KE1_3] (0) {1.1.1.3};
##M:19 [8KE1_4] (0) {1.1.1.3};
##M:20 [8KE1_5] (0) {1.1.1.3};
##M:21 [8KE1_6] (0) {1.1.1.3};
##M:22 [8KE1_7] (0) {1.1.1.3};
##M:23 [8KE1_8] (0) {1.1.1.3};
##M:24 [8KE1_9] (0) {1.1.1.3};
##M:25 [8KE1_10] (0) {1.1.1.3};
##M:26 [8KE1_11] (0) {1.1.1.3};
##M:27 [8KE1_12] (0) {1.1.1.3};
##M:28 [8KE1_13] (0) {1.1.1.3};
##M:29 [8KE1_14] (0) {1.1.1.3};
##M:30 [8KE1_15] (0) {1.1.1.3};
##VLR
/ / /.2. (9);
M:1 [OptAuthReq] {3.2.5.2.1.1};
M:2 [OpReuseTriplets] {3.2.5.2.1.2};
M:3 [OptCipReq] {3.2.5.2.1.3};
M:4 [OptCiphAlgo] {3.2.5.2.1.4};
M:5 [OptTmsiAlloc] {3.2.5.2.1.5};
M:6 [OptEcsSetUpAllow] {3.2.5.2.1.7};
M:7 [OptCheckIMEI] {3.2.5.2.1.8};
M:8 [OptVlrPurge] {3.2.5.2.1.9};
M:9 [idlePeriod2Purge] {3.2.5.2.1.10};
M:10 [CDR flag] {3.2.5.2.1.11};
M:11 [MSRN] {3.2.5.2.1.13};
M:12 [VLR0] {3.2.5};
M:13 [VLR1] {3.2.5};
##VLR->VLR0
/ / /.2.12. (1);
M:1 [Version] {3.2.5.3.2};
M:2 [Command] {3.2.5.3.3};
M:3 [Status] {3.2.5.3.4};
##VLR->VLR0
/ / /.2.13. (2);
M:1 [Version] {3.2.5.3.2};
M:2 [Command] {3.2.5.3.3};
M:3 [Status] {3.2.5.3.4};
##HLR
/ / /.3. (9);
M:1 [HPLMN] {3.3.2.1.11};
M:2 [VPLMNs] {3.3.2.1.12};
M:3 [CSRR list] {3.3.2.1.13};
M:4 [Regional Subscription] {3.3.2.1.14};
M:5 [License control] {3.3.2.1.15};
M:6 [CDR control] {3.3.2.1.16};
M:7 [Feature Code] {3.3.2.1.27};
M:8 [Platform] {2};
M:9 [HLR0] {3.3};
M:10 [HLR1] {3.3};
##HLR->Platform
/ / /.3.8. (9);
M:1 [MTP3] {2.2.2};
M:2 [SCCP] {2.2.3};
M:3 [XAPP] {2.2.5};
##HLR->Platform->MTP3
/ / /.3.8.1. (9);
M:1 [Network Indicator] {2.2.2.2.2};
M:2 [Originating Point code] {2.2.2.2.3};
M:3 [Link Set] {2.2.2.2.4};
M:4 [Link] {2.2.2.2.5};
M:5 [Routing] {2.2.2.2.6};
M:6 [ACN] {2.2.2.2.7};
M:7 [Status] {2.2.2.3};
M:8 [Signaling GateWay] {2.2.2.2.9};
##HLR->Platform->MTP3->Status
/ / /.3.8.1.7. (9);
M:1 [Link status] {2.2.2.3.1};
M:2 [Link set status] {2.2.2.3.2};
M:3 [International routing] {2.2.2.3.3};
M:4 [International spare] {2.2.2.3.4};
M:5 [National routing] {2.2.2.3.5};
M:6 [National spare routing] {2.2.2.3.6};
M:7 [Command] {2.2.2.3.7};
##HLR->Platform->SCCP
/ / /.3.8.2. (9);
M:1 [Local node] {2.2.3.2.1};
M:2 [GTT] {2.2.3.2.2};
M:3 [Command] {2.2.3.3.2};
##HLR->Platform->XAPP
/ / /.3.8.3. (9);
M:1 [MCC] {2.2.5.2.1};
M:2 [MNC] {2.2.5.2.2};
M:3 [CC] {2.2.5.2.3};
M:4 [NDC] {2.2.5.2.4};
M:5 [International prefix] {2.2.5.2.5};
M:6 [National Prefix] {2.2.5.2.6};
M:7 [Local Prefix] {2.2.5.2.7};
M:8 [Convert Prefix] {2.2.5.2.8};
M:9 [Command] {2.2.5.3.2};
##HLR->HLR0
/ / /.3.9. (1);
M:1 [Command] {3.3.2.2.2};
M:2 [Subscriber import] {3.3.2.2.3};
M:3 [Max Licenses] {3.3.2.2.11};
M:4 [Used Licenses] {3.3.2.2.12};
M:5 [Subscriber information] {3.3.2.2.13};
M:6 [Version] {3.3.2.2.14};
M:7 [IMSI segment] {3.3.2.2.15};
M:8 [MSISDN segment] {3.3.2.2.16};
M:9 [CNF applicant info] {3.3.2.2.27};
##M:10 [Contry code] {3.3.2.2.10};
##HLR->HLR0->Subscriber information
/ / /.3.9.5. (1);
M:1 [Provisioned subscribers] {3.3.2.2.13.1};
M:2 [Registered subscribers] {3.3.2.2.13.2};
M:3 [Roaming subscribers] {3.3.2.2.13.3};
##HLR->HLR0->Version
/ / /.3.9.6. (1);
M:1 [Software] {3.3.2.2.14.1};
M:2 [User data] {3.3.2.2.14.2};
##HLR->HLR1
/ / /.3.10. (2);
M:1 [Command] {3.3.2.2.2};
M:2 [Subscriber import] {3.3.2.2.3};
M:3 [Max Licenses] {3.3.2.2.11};
M:4 [Used Licenses] {3.3.2.2.12};
M:5 [Subscriber information] {3.3.2.2.13};
M:6 [Version] {3.3.2.2.14};
M:7 [IMSI segment] {3.3.2.2.15};
M:8 [MSISDN segment] {3.3.2.2.16};
M:9 [CNF applicant info] {3.3.2.2.27};
##M:10 [Contry code] {3.3.2.2.10};
##HLR->HLR1->Subscriber information
/ / /.3.10.5. (2);
M:1 [Provisioned subscribers] {3.3.2.2.13.1};
M:2 [Registered subscribers] {3.3.2.2.13.2};
M:3 [Roaming subscribers] {3.3.2.2.13.3};
##HLR->HLR1->Version
/ / /.3.10.6. (2);
M:1 [Software] {3.3.2.2.14.1};
M:2 [User data] {3.3.2.2.14.2};
##PPS
/ / /.4. (9);
M:1 [Service control] {3.6.2.1.1};
M:2 [SRF Number] {3.6.2.1.2.1};
M:3 [Service number] {3.6.2.1.2.2};
M:4 [Service key] {3.6.2.1.2.3};
M:5 [COS Parameter] {3.6.2.1.4};
M:6 [Call routing to VMS] {3.6.2.1.5};
M:7 [Status] {3.6.2.1.6};
M:8 [Platform] {2};
##PPS->Service control
/ / /.4.1. (9);
M:1 [CDR flag] {3.6.2.1.1.1};
M:2 [Blacklist threshhold] {3.6.2.1.1.2};
M:3 [Maximun balance] {3.6.2.1.1.3};
M:4 [license control] {3.6.2.1.1.4};
M:5 [Prompt resolution] {3.6.2.1.1.5};
M:6 [SMS Sentence] {3.6.2.1.1.6};
M:7 [Last call info] {3.6.2.1.1.7};
M:8 [Currency Symbol] {3.6.2.1.1.8};
M:9 [Third party info] {3.6.2.1.1.9};
M:10 [Basic Tariff Zone] {3.6.2.1.1.10};
##PPS->Service number
/ / /.4.3. (9);
M:1 [Hotline] {3.6.2.1.2.2.1};
M:2 [Inquiry] {3.6.2.1.2.2.2};
M:3 [Scratch card rechagne] {3.6.2.1.2.2.3};
M:4 [Credit card recharge] {3.6.2.1.2.2.4};
M:5 [Third party recharge] {3.6.2.1.2.2.5};
M:6 [Customer care center] {3.6.2.1.2.2.6};
M:7 [Recharge] {3.6.2.1.2.2.7};
##PPS->Service key
/ / /.4.4. (9);
M:1 [Inquiry] {3.6.2.1.2.3.2};
M:2 [Scratch card rechagne] {3.6.2.1.2.3.3};
M:3 [Credit card recharge] {3.6.2.1.2.3.4};
M:4 [Set favorite number] {3.6.2.1.2.3.5};
M:5 [Set password] {3.6.2.1.2.3.6};
##PPS->COS Parameter
/ / /.4.5. (9);
M:1 [COS0] {3.6.2.1.4.1};
M:2 [COS1] {3.6.2.1.4.2};
M:3 [COS2] {3.6.2.1.4.3};
M:4 [COS3] {3.6.2.1.4.4};
M:5 [COS4] {3.6.2.1.4.5};
M:6 [COS5] {3.6.2.1.4.6};
M:7 [COS6] {3.6.2.1.4.7};
M:8 [COS7] {3.6.2.1.4.8};
M:9 [COS8] {3.6.2.1.4.9};
M:10 [COS9] {3.6.2.1.4.10};
M:11 [COS10] {3.6.2.1.4.11};
M:12 [COS11] {3.6.2.1.4.12};
M:13 [COS12] {3.6.2.1.4.13};
M:14 [COS13] {3.6.2.1.4.14};
M:15 [COS14] {3.6.2.1.4.15};
M:16 [COS15] {3.6.2.1.4.16};
##PPS->COS Parameter->COS 0-15
/ / /.4.5.1. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.1.1};
M:2 [Tariff Resolution] {3.6.2.1.4.1.2};
M:3 [Account control] {3.6.2.1.4.1.3};
M:4 [MT Call control] {3.6.2.1.4.1.4};
M:5 [Validity control] {3.6.2.1.4.1.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.1.6};
/ / /.4.5.2. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.2.1};
M:2 [Tariff Resolution] {3.6.2.1.4.2.2};
M:3 [Account control] {3.6.2.1.4.2.3};
M:4 [MT Call control] {3.6.2.1.4.2.4};
M:5 [Validity control] {3.6.2.1.4.2.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.2.6};
/ / /.4.5.3. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.3.1};
M:2 [Tariff Resolution] {3.6.2.1.4.3.2};
M:3 [Account control] {3.6.2.1.4.3.3};
M:4 [MT Call control] {3.6.2.1.4.3.4};
M:5 [Validity control] {3.6.2.1.4.3.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.3.6};
/ / /.4.5.4. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.4.1};
M:2 [Tariff Resolution] {3.6.2.1.4.4.2};
M:3 [Account control] {3.6.2.1.4.4.3};
M:4 [MT Call control] {3.6.2.1.4.4.4};
M:5 [Validity control] {3.6.2.1.4.4.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.4.6};
/ / /.4.5.5. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.5.1};
M:2 [Tariff Resolution] {3.6.2.1.4.5.2};
M:3 [Account control] {3.6.2.1.4.5.3};
M:4 [MT Call control] {3.6.2.1.4.5.4};
M:5 [Validity control] {3.6.2.1.4.5.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.5.6};
/ / /.4.5.6. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.6.1};
M:2 [Tariff Resolution] {3.6.2.1.4.6.2};
M:3 [Account control] {3.6.2.1.4.6.3};
M:4 [MT Call control] {3.6.2.1.4.6.4};
M:5 [Validity control] {3.6.2.1.4.6.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.6.6};
/ / /.4.5.7. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.7.1};
M:2 [Tariff Resolution] {3.6.2.1.4.7.2};
M:3 [Account control] {3.6.2.1.4.7.3};
M:4 [MT Call control] {3.6.2.1.4.7.4};
M:5 [Validity control] {3.6.2.1.4.7.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.7.6};
/ / /.4.5.8. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.8.1};
M:2 [Tariff Resolution] {3.6.2.1.4.8.2};
M:3 [Account control] {3.6.2.1.4.8.3};
M:4 [MT Call control] {3.6.2.1.4.8.4};
M:5 [Validity control] {3.6.2.1.4.8.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.8.6};
/ / /.4.5.9. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.9.1};
M:2 [Tariff Resolution] {3.6.2.1.4.9.2};
M:3 [Account control] {3.6.2.1.4.9.3};
M:4 [MT Call control] {3.6.2.1.4.9.4};
M:5 [Validity control] {3.6.2.1.4.9.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.9.6};
/ / /.4.5.10. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.10.1};
M:2 [Tariff Resolution] {3.6.2.1.4.10.2};
M:3 [Account control] {3.6.2.1.4.10.3};
M:4 [MT Call control] {3.6.2.1.4.10.4};
M:5 [Validity control] {3.6.2.1.4.10.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.10.6};
/ / /.4.5.11. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.11.1};
M:2 [Tariff Resolution] {3.6.2.1.4.11.2};
M:3 [Account control] {3.6.2.1.4.11.3};
M:4 [MT Call control] {3.6.2.1.4.11.4};
M:5 [Validity control] {3.6.2.1.4.11.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.11.6};
/ / /.4.5.12. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.12.1};
M:2 [Tariff Resolution] {3.6.2.1.4.12.2};
M:3 [Account control] {3.6.2.1.4.12.3};
M:4 [MT Call control] {3.6.2.1.4.12.4};
M:5 [Validity control] {3.6.2.1.4.12.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.12.6};
/ / /.4.5.13. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.13.1};
M:2 [Tariff Resolution] {3.6.2.1.4.13.2};
M:3 [Account control] {3.6.2.1.4.13.3};
M:4 [MT Call control] {3.6.2.1.4.13.4};
M:5 [Validity control] {3.6.2.1.4.13.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.13.6};
/ / /.4.5.14. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.14.1};
M:2 [Tariff Resolution] {3.6.2.1.4.14.2};
M:3 [Account control] {3.6.2.1.4.14.3};
M:4 [MT Call control] {3.6.2.1.4.14.4};
M:5 [Validity control] {3.6.2.1.4.14.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.14.6};
/ / /.4.5.15. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.15.1};
M:2 [Tariff Resolution] {3.6.2.1.4.15.2};
M:3 [Account control] {3.6.2.1.4.15.3};
M:4 [MT Call control] {3.6.2.1.4.15.4};
M:5 [Validity control] {3.6.2.1.4.15.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.15.6};
/ / /.4.5.16. (9);
M:1 [Recharge Promotion] {3.6.2.1.4.16.1};
M:2 [Tariff Resolution] {3.6.2.1.4.16.2};
M:3 [Account control] {3.6.2.1.4.16.3};
M:4 [MT Call control] {3.6.2.1.4.16.4};
M:5 [Validity control] {3.6.2.1.4.16.5};
M:6 [SM Inquiry Notification] {3.6.2.1.4.16.6};
##PPS->call routing to VMS
/ / /.4.6. (9);
M:1 [VMS service number-PLMN] {3.6.2.1.5.1};
M:2 [VMS service number-PSTN] {3.6.2.1.5.2};
M:3 [VMS leave message number] {3.6.2.1.5.3};
M:4 [Routing rule] {3.6.2.1.5.4};
M:5 [VMS user segments] {3.6.2.1.5.5};
##PPS->Status
/ / /.4.7. (9);
M:1 [Activaion] {3.6.2.1.6.1};
M:2 [Command] {3.6.2.1.6.2};
##PPS->Platform
/ / /.4.8. (9);
M:1 [MTP3] {2.2.2};
M:2 [SCCP] {2.2.3};
M:3 [XAPP] {2.2.5};
M:4 [SMPP] {2.3.4}
##PPS->Platform->MTP3
/ / /.4.8.1. (9);
M:1 [Network Indicator] {2.2.2.2.2};
M:2 [Originating Point code] {2.2.2.2.3};
M:3 [Link Set] {2.2.2.2.4};
M:4 [Link] {2.2.2.2.5};
M:5 [Routing] {2.2.2.2.6};
M:6 [CAN] {2.2.2.2.7};
M:7 [Status] {2.2.2.3};
M:8 [Signaling GateWay] {2.2.2.2.9};
##PPS->Platform->MTP3->Status
/ / /.4.8.1.7. (9);
M:1 [Link status] {2.2.2.3.1};
M:2 [Link set status] {2.2.2.3.2};
M:3 [International routing] {2.2.2.3.3};
M:4 [International spare] {2.2.2.3.4};
M:5 [National routing] {2.2.2.3.5};
M:6 [National spare routing] {2.2.2.3.6};
M:7 [Command] {2.2.2.3.7};
##PPS->Platform->SCCP
/ / /.4.8.2. (9);
M:1 [Local node] {2.2.3.2.1};
M:2 [GTT] {2.2.3.2.2};
M:3 [Command] {2.2.3.3.2};
##PPS->Platform->XAPP
/ / /.4.8.3. (9);
M:1 [MCC] {2.2.5.2.1};
M:2 [MNC] {2.2.5.2.2};
M:3 [CC] {2.2.5.2.3};
M:4 [NDC] {2.2.5.2.4};
M:5 [International prefix] {2.2.5.2.5};
M:6 [National Prefix] {2.2.5.2.6};
M:7 [Local Prefix] {2.2.5.2.7};
M:8 [Convert Prefix] {2.2.5.2.8};
M:9 [Command] {2.2.5.3.2};
##PPS-->Platform->SMPP
/ / /.4.8.4. (9);
M:1 [SMPP_Link_Param] {2.3.4.2.1};
M:2 [Command] {2.3.4.3.2};
## SMSC
/ / /.5. (9);
M:1 [CDR flag] {3.5.2.1.1};
M:2 [SM Validity] {3.5.2.1.2};
M:3 [MSISDN Segment] {3.5.2.1.3};
M:4 [SMPP parameters] {3.5.2.2};
M:5 [Command] {3.5.3.3};
M:6 [Platform] {2};
M:7 [SMSC0] {3.5};
M:8 [SMSC1] {3.5};
##SMSC->Platform
/ / /.5.6. (9);
M:1 [MTP3] {2.2.2};
M:2 [SCCP] {2.2.3};
M:3 [XAPP] {2.2.5};
M:4 [SMPP] {2.3.4};
##SMSC->Platform->MTP3
/ / /.5.6.1. (9);
M:1 [Network Indicator] {2.2.2.2.2};
M:2 [Originating Point code] {2.2.2.2.3};
M:3 [Link Set] {2.2.2.2.4};
M:4 [Link] {2.2.2.2.5};
M:5 [Routing] {2.2.2.2.6};
M:6 [CAN] {2.2.2.2.7};
M:7 [Status] {2.2.2.3};
M:8 [Signaling GateWay] {2.2.2.2.9};
##SMSC->Platform->MTP3->Status
/ / /.5.6.1.7. (9);
M:1 [Link status] {2.2.2.3.1};
M:2 [Link set status] {2.2.2.3.2};
M:3 [International routing] {2.2.2.3.3};
M:4 [International spare] {2.2.2.3.4};
M:5 [National routing] {2.2.2.3.5};
M:6 [National spare routing] {2.2.2.3.6};
M:7 [Command] {2.2.2.3.7};
##SMSC->Platform->SCCP
/ / /.5.6.2. (9);
M:1 [Local node] {2.2.3.2.1};
M:2 [GTT] {2.2.3.2.2};
M:3 [Command] {2.2.3.3.2};
##SMSC->Platform->XAPP
/ / /.5.6.3. (9);
M:1 [MCC] {2.2.5.2.1};
M:2 [MNC] {2.2.5.2.2};
M:3 [CC] {2.2.5.2.3};
M:4 [NDC] {2.2.5.2.4};
M:5 [International prefix] {2.2.5.2.5};
M:6 [National Prefix] {2.2.5.2.6};
M:7 [Local Prefix] {2.2.5.2.7};
M:8 [Convert Prefix] {2.2.5.2.8};
M:9 [Command] {2.2.5.3.2};
##SMSC->Platform->SMPP
/ / /.5.6.4. (9);
M:1 [SMPP_Link_Param] {2.3.4.2.1};
M:2 [Command] {2.3.4.3.2};
##SMSC->SMSC0
/ / /.5.7. (1);
M:1 [SMSC ID] {3.5.3.1};
M:2 [Software version] {3.5.3.2};
##SMSC->SMSC1
/ / /.5.8. (2);
M:1 [SMSC ID] {3.5.3.1};
M:2 [Software version] {3.5.3.2};
##AUC
/ / /.6. (9);
M:1 [Platform] {2};
M:2 [AUC0] (1) {3.4};
M:3 [AUC1] (2) {3.4};
##AUC->Platform
/ / /.6.1. (9);
M:1 [MTP3] {2.2.2};
M:2 [SCCP] {2.2.3};
M:3 [XAPP] {2.2.5};
##AUC->Platform->MTP3
/ / /.6.1.1. (9);
M:1 [Network Indicator] {2.2.2.2.2};
M:2 [Originating Point code] {2.2.2.2.3};
M:3 [Link Set] {2.2.2.2.4};
M:4 [Link] {2.2.2.2.5};
M:5 [Routing] {2.2.2.2.6};
M:6 [CAN] {2.2.2.2.7};
M:7 [Status] {2.2.2.3};
M:8 [Signaling GateWay] {2.2.2.2.9};
##AUC->Platform->MTP3->Status
/ / /.6.1.1.7. (9);
M:1 [Link status] {2.2.2.3.1};
M:2 [Link set status] {2.2.2.3.2};
M:3 [International routing] {2.2.2.3.3};
M:4 [International spare] {2.2.2.3.4};
M:5 [National routing] {2.2.2.3.5};
M:6 [National spare routing] {2.2.2.3.6};
M:7 [Command] {2.2.2.3.7};
##AUC->Platform->SCCP
/ / /.6.1.2. (9);
M:1 [Local node] {2.2.3.2.1};
M:2 [GTT] {2.2.3.2.2};
M:3 [Command] {2.2.3.3.2};
##AUC->Platform->XAPP
/ / /.6.1.3. (9);
M:1 [MCC] {2.2.5.2.1};
M:2 [MNC] {2.2.5.2.2};
M:3 [CC] {2.2.5.2.3};
M:4 [NDC] {2.2.5.2.4};
M:5 [International prefix] {2.2.5.2.5};
M:6 [National Prefix] {2.2.5.2.6};
M:7 [Local Prefix] {2.2.5.2.7};
M:8 [Convert Prefix] {2.2.5.2.8};
M:9 [Command] {2.2.5.3.2};
##EIR
##/ / /.7. (9);
##M:1 [Platform] {2};
##M:2 [EIR0] (1) {3.8};
##M:3 [EIR1] (2) {3.8};
##EIR->Platform
##/ / /.7.1. (9);
##M:1 [MTP3] {2.2.2};
##M:2 [SCCP] {2.2.3};
##M:3 [XAPP] {2.2.5};
##EIR->Platform->MTP3
##/ / /.7.1.1. (9);
##M:1 [Network Indicator] {2.2.2.2.2};
##M:2 [Originating Point code] {2.2.2.2.3};
##M:3 [Link Set] {2.2.2.2.4};
##M:4 [Link] {2.2.2.2.5};
##M:5 [Routing] {2.2.2.2.6};
##M:6 [CAN] {2.2.2.2.7};
##M:7 [Status] {2.2.2.3};
M:8 [Signaling GateWay] {2.2.2.2.9};
##EIR->Platform->MTP3->Status
##/ / /.7.1.1.7. (9);
####M:1 [Link status] {2.2.2.3.1};
##M:2 [Link set status] {2.2.2.3.2};
##M:3 [International routing] {2.2.2.3.3};
##M:4 [International spare] {2.2.2.3.4};
##M:5 [National routing] {2.2.2.3.5};
##M:6 [National spare routing] {2.2.2.3.6};
##M:7 [Command] {2.2.2.3.7};
##EIR->Platform->SCCP
##/ / /.7.1.2. (9);
##M:1 [Local node] {2.2.3.2.1};
##M:2 [GTT] {2.2.3.2.2};
##M:3 [Command] {2.2.3.3.2};
##EIR->Platform->XAPP
##/ / /.7.1.3. (9);
##M:1 [MCC] {2.2.5.2.1};
##M:2 [MNC] {2.2.5.2.2};
##M:3 [CC] {2.2.5.2.3};
##M:5 [International prefix] {2.2.5.2.5};
##M:6 [National Prefix] {2.2.5.2.6};
##M:7 [Local Prefix] {2.2.5.2.7};
##M:8 [Convert Prefix] {2.2.5.2.8};
##M:9 [Command] {2.2.5.3.2};

View File

@@ -0,0 +1,14 @@
// "//" is the annotation characters;
IWV-SMI.txt
Special_App-SMI.txt
//PPPRT-MIB.txt
WXC2-SMI.txt
//WXC2-CSU-MIB.txt
WXC2-SS7-MIB.txt
WXC2-MSC-MIB.txt
WXC2-HLR-MIB.txt
WXC2-AUC-MIB.txt
//WXC2-EIR-MIB.txt
WXC2-SMSC-MIB.txt
WXC2-PPS-MIB.txt
WXC2-MSS-MIB.txt

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1 @@
594694911035

View File

@@ -0,0 +1,16 @@
******************
* HELP PAGE *
******************
Welcome to DEBUG MONITOR.
Press 's' or 'S' to enter "SUB MODULE SELECTION PAGE".
In "SUB MODULE SELECTION PAGE",
Press 'x' or 'X' to return "HELP PAGE",
Press 'a-p' or 'A-P' to select sub module.
In each sub module,
Press '0-9' and 'a-f' to select pages.
$

View File

@@ -0,0 +1,25 @@
#ipconfig for pps
4950=UDP,6,DIRECT
4951=UDP,0,BUFFER
4952=UDP,0,BUFFER
4953=UDP,0,BUFFER
4954=UDP,0,BUFFER
4955=UDP,3,BUFFER
4956=UDP,0,BUFFER
4957=UDP,4,BUFFER
4958=UDP,0,BUFFER
4959=UDP,0,BUFFER
4960=UDP,0,BUFFER
4961=UDP,0,BUFFER
4962=UDP,0,BUFFER
4963=UDP,0,BUFFER
4964=UDP,0,BUFFER
4965=TCP,6,BUFFER
4966=UDP,2,DIRECT
4967=UDP,0,BUFFER
4968=UDP,0,BUFFER
4969=UDP,0,BUFFER
4970=UDP,0,BUFFER
4971=UDP,0,BUFFER
4972=UDP,0,BUFFER
4973=UDP,0,BUFFER

View File

@@ -0,0 +1,22 @@
*********************************
* SUB MODULE SELECTION PAGE *
*********************************
a -- IPTR i -- HLR
b -- MTP3 j -- SMSC
c -- SCCP k -- SCF
d -- TCAP l -- SNMP
e -- XAP-P m -- DATA SYNC
f -- CCF n -- DEBUG
g -- VLR o -- reserved
h -- SSF p -- SMPP

1408
plat/smpp/ut/conf/mtp3.conf Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,22 @@
#SCCP Config file (R3_V1_T07)
#copy this file to /etc/sccp.conf to set global options
[Local Node]
#ssn NetID msisdn ip0 ip1
4 2 236060011 172.18.128.1 172.18.129.1
10 2 2360620103 172.18.98.1 172.18.99.1
21 2 2360620104 172.18.166.1 172.18.167.1
62 2 100 172.18.145.1 172.18.128.1
[GTT_Table]
#No NP StartDigits EndDigits NetID SPC SSN RI S E N ReplaceDigits
0 1 236060000 236069999 2 002808 6 1
1 1 236090000 236099999 2 002808 6 1
2 6 623045200000000 623045299999999 2 002808 6 1
3 1 236060013 236060013 3 222222 22 1
4 1 236060014 236060014 3 232323 22 1
5 1 100 299 2 888888 62 0
[RL_SSN]
#Subsystems needed to be detected frequently
#NetID DPC SSN

View File

@@ -0,0 +1,35 @@
#SMPP Config file (R10V0_13)
#Copy this file to ./conf/smpp.conf to set global options
#No lkEn lkType serverType sessionType sysID pwd sysType LGTT RGTT LIP RIP sessionTimer enqTimer inactTimer rspTimer ServiceNum
0 1 1 0 2 Test1 123456 -- -- -- 172.18.128.1 172.18.98.1 5 10 5 5 86755001
1 1 1 1 2 Test2 123456 -- -- -- 172.18.128.1 172.18.98.1 5 10 5 5 86755002
2 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --
3 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --
4 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --
5 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --
6 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --
7 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --
8 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --
9 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --
10 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --
11 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --
12 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --
13 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --
14 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --
15 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --
16 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --
17 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --
18 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --
19 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --
20 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --
21 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --
22 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --
23 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --
24 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --
25 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --
26 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --
27 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --
28 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --
29 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --
30 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --
31 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 --

View File

@@ -0,0 +1,688 @@
/*
** CDMA 2000 project, SMPP module
**
** File name: smpp_test.c
** Written by Li Long at 2004-11-25
** CVS $Id: smpp_test.c,v0.1 2004/11/25 17:03:14 lilong Exp $
**
*/
#include "./include/smpp.h"
#define SD_PKT_NUM 10
#define STORE_MSG_ITEM 5
typedef struct SMPP_MSG_STORE_STRUCT
{
BYTE short_message[SMPP_MSG_LEN];
BYTE message_id[65];
} SMPP_MSG_STORE_STRUCT;
typedef struct SMPP_LINK_ATTRIBUTE
{
BYTE enable;
BYTE session_type; //BIND_TX/BIND_RX/BIND_TRX
BYTE message_mode; //STORE AND FORWARD/DATAGRAM/TRANSACTION
BYTE terminal_type; //SMPP_CLIENT/SMPP_SERVER
} SMPP_LINK_ATTRIBUTE;
static struct itimerval itimer,old_itimer;
static int timer_counter[MAX_SMPP_LINK];
static int stateFlag[MAX_SMPP_LINK];
static int msg_count[MAX_SMPP_LINK];
static int msg_pointer[MAX_SMPP_LINK];
static SMPP_MSG_STORE_STRUCT store_msg_buf[MAX_SMPP_LINK][STORE_MSG_ITEM];
static SMPP_LINK_ATTRIBUTE smpp_link_attr[MAX_SMPP_LINK];
static void On_Timer();
static void SetTimer();
static void smpp_test_init();
static void sendTestSM(int, int);
static int smpp_onDataRecv(BYTE linkNo, SMPP_MSG *pData, WORD dataLen);
static int smpp_onLinkStateChange(BYTE linkNo, BYTE linkstate);
void smpp_test_init()
{
int i;
for (i=0; i<MAX_SMPP_LINK; i++)
{
memset(store_msg_buf[i], 0, sizeof(SMPP_MSG_STORE_STRUCT)*STORE_MSG_ITEM);
msg_pointer[i] = 0;
}
}
int main(int argc,char *argv[])
{
pid_t pid;
int i, ch;
BYTE link, ret;
unsigned char tx_service_number[8], rx_service_number[8];
unsigned char store_and_forward_service_number[8];
heartbeat_init(0xFFFF);
// #ifdef SMPP_DEBUG
debug_init();
// #endif
iptrMainInit();
snmp_init(SMPP_PORT);
mtp_shm_init();
sccp_init();
smpp_init_new();
smpp_test_init();
for (i=0; i<MAX_SMPP_LINK; i++)
{
stateFlag[i] = FALSE;
timer_counter[i]= 0;
msg_count[i] = 0;
}
opterr = 0;
strcpy(tx_service_number, "9910");
strcpy(rx_service_number, "9920");
strcpy(store_and_forward_service_number, "6666");
while( (ch = getopt(argc, argv, "scabd")) != -1 )
{
switch (ch)
{
case 's':
ret = smpp_registerLink(SMPP_SERVER, BIND_TX, tx_service_number, DATAGRAM);
if ((ret&0x80) == 0x80) {
link = ret&0x7f;
printf("(TX) session_type = %d, linkNo=%d\n", BIND_TX, link);
smpp_attach_link(link, smpp_onDataRecv, smpp_onLinkStateChange);
smpp_link_attr[link].enable = 1;
smpp_link_attr[link].session_type = BIND_TX;
smpp_link_attr[link].message_mode = DATAGRAM;
smpp_link_attr[link].terminal_type = SMPP_SERVER;
}
break;
case 'c':
ret = smpp_registerLink(SMPP_CLIENT, BIND_TX, tx_service_number, DATAGRAM);
if ((ret&0x80) == 0x80) {
link = ret&0x7f;
printf("(TX) session_type = %d, linkNo=%d\n", BIND_TX, link);
smpp_attach_link(link, smpp_onDataRecv, smpp_onLinkStateChange);
smpp_link_attr[link].enable = 1;
smpp_link_attr[link].session_type = BIND_TX;
smpp_link_attr[link].message_mode = DATAGRAM;
smpp_link_attr[link].terminal_type = SMPP_CLIENT;
}
break;
case 'a':
ret = smpp_registerLink(SMPP_CLIENT, BIND_RX, rx_service_number, DATAGRAM);
if ((ret&0x80) == 0x80) {
link = ret&0x7f;
printf("(RX) session_type = %d, linkNo=%d\n", BIND_RX, link);
smpp_attach_link(link, smpp_onDataRecv, smpp_onLinkStateChange);
smpp_link_attr[link].enable = 1;
smpp_link_attr[link].session_type = BIND_RX;
smpp_link_attr[link].message_mode = DATAGRAM;
smpp_link_attr[link].terminal_type = SMPP_CLIENT;
}
break;
case 'b':
ret = smpp_registerLink(SMPP_SERVER, BIND_RX, rx_service_number, DATAGRAM);
if ((ret&0x80) == 0x80) {
link = ret&0x7f;
printf("(RX) session_type = %d, linkNo=%d\n", BIND_RX, link);
smpp_attach_link(link, smpp_onDataRecv, smpp_onLinkStateChange);
smpp_link_attr[link].enable = 1;
smpp_link_attr[link].session_type = BIND_RX;
smpp_link_attr[link].message_mode = DATAGRAM;
smpp_link_attr[link].terminal_type = SMPP_SERVER;
}
break;
case 'd':
if ((pid=fork())!=0) exit(0);
setsid();
break;
default:
break;
}
}
SetTimer();
while(1)
{
usleep(50);
}
return 1;
}
void On_Timer()
{
int i;
for (i=0; i<MAX_SMPP_LINK; i++)
{ // 2 msgs per second
if (timer_counter[i]==25)
timer_counter[i]=0;
if ((timer_counter[i]%25)==0)
{
if (stateFlag[i] == TRUE)
{
if ( (smpp_link_attr[i].session_type == BIND_TX) && (smpp_link_attr[i].terminal_type == SMPP_CLIENT) )
{
sendTestSM(i, 0);
msg_count[i]++;
}
if ( (smpp_link_attr[i].session_type == BIND_RX) && (smpp_link_attr[i].terminal_type == SMPP_SERVER) )
{
sendTestSM(i, 1);
msg_count[i]++;
}
if (smpp_link_attr[i].session_type == BIND_TRX)
{
sendTestSM(i, 2);
msg_count[i]++;
}
}
}
timer_counter[i]++;
if (msg_count[i] == SD_PKT_NUM)
{
smpp_close(i);
}
}
iptrans_timer();
// #ifdef SMPP_DEBUG
debug_rt();
// #endif //end ifdef SMPP_DEBUG
snmp_timer();
mtp3_proc();
heartbeat_timer();
sccp_timer();
smpp_fsm();
}
void SetTimer()
{
struct sigaction act;
act.sa_handler=On_Timer;
sigemptyset(&act.sa_mask);
act.sa_flags=0;
if(sigaction(SIGALRM,&act,NULL)<0)
{
perror("Produce Sigaction");
exit(1);
}
itimer.it_interval.tv_sec=0;
itimer.it_interval.tv_usec=20*1000;
itimer.it_value.tv_sec=0;
itimer.it_value.tv_usec=20*1000;
if (setitimer(ITIMER_REAL,&itimer,&old_itimer) !=0 )
{
printf("Setting Timer error! \n");
exit(1);
}
}
int smpp_onDataRecv(BYTE linkNo, SMPP_MSG *pMsg, WORD dataLen)
{
int sequence_number=100;
SMPP_MSG smpp_msg;
int pointer;
int i;
switch (pMsg->message_type)
{
case 0x0B: /* SUBMIT SM */
printf("[TEST PROGRAM]Link %d received SUBMIT SM:\n", linkNo);
/* store smpp message */
if (smpp_link_attr[linkNo].message_mode == STORE_AND_FORWARD)
{
//if (pMsg->pdu.submit_sm.sm_length < SMPP_MSG_LEN)
{
pointer = (msg_pointer[linkNo]+1)%STORE_MSG_ITEM;
memcpy(&store_msg_buf[linkNo][pointer].short_message,
pMsg->pdu.submit_sm.short_message, pMsg->pdu.submit_sm.sm_length);
sprintf(store_msg_buf[linkNo][pointer].message_id,
"%ld", pMsg->pdu.submit_sm.head.sequence_number);
}
}
/* fill with SUBMIT SM RESP structure. */
smpp_msg.message_type = 0x0C;
smpp_msg.pdu.submit_sm_resp.head.command_status = htonl(ESME_ROK);
smpp_msg.pdu.submit_sm_resp.head.sequence_number = pMsg->pdu.submit_sm.head.sequence_number;
sprintf(smpp_msg.pdu.submit_sm_resp.message_id, "%ld",
smpp_msg.pdu.submit_sm_resp.head.sequence_number);
smpp_send(linkNo, &smpp_msg, dataLen);
break;
case 0x0C: /* SUBMIT SM RESP */
printf("[TEST PROGRAM]Link %d received SUBMIT SM RESP.\n", linkNo);
break;
case 0x0D: /* SUBMIT MULTI */
printf("[TEST PROGRAM]Link %d received SUBMIT MULTI.\n", linkNo);
/* store smpp message */
if (smpp_link_attr[linkNo].message_mode == STORE_AND_FORWARD)
{
//if (pMsg->pdu.submit_multi.sm_length < SMPP_MSG_LEN)
{
pointer = (msg_pointer[linkNo]+1)%STORE_MSG_ITEM;
memcpy(&store_msg_buf[linkNo][pointer].short_message,
pMsg->pdu.submit_sm.short_message, pMsg->pdu.submit_multi.sm_length);
sprintf(store_msg_buf[linkNo][pointer].message_id,
"%ld", pMsg->pdu.submit_multi.head.sequence_number);
}
}
/* fill with SUBMIT MULTI RESP structure. */
smpp_msg.message_type = 0x0E;
smpp_msg.pdu.submit_multi_resp.head.command_status = htonl(ESME_ROK);
smpp_msg.pdu.submit_multi_resp.head.sequence_number = pMsg->pdu.submit_multi.head.sequence_number;
sprintf(smpp_msg.pdu.submit_multi_resp.message_id, "%ld",
smpp_msg.pdu.submit_multi_resp.head.sequence_number);
smpp_msg.pdu.submit_multi_resp.no_unsuccess = 0;
smpp_send(linkNo, &smpp_msg, dataLen);
break;
case 0x0E: /* SUBMIT MULTI RESP */
printf("[TEST PROGRAM]Link %d received SUBMIT MULTI RESP.\n", linkNo);
break;
case 0x0F: /* DELIVER SM */
printf("[TEST PROGRAM]Link %d received DELIVER SM.\n", linkNo);
/* store smpp message */
if (smpp_link_attr[linkNo].message_mode == STORE_AND_FORWARD)
{
//if (pMsg->pdu.deliver_sm.sm_length < SMPP_MSG_LEN)
{
pointer = (msg_pointer[linkNo]+1)%STORE_MSG_ITEM;
memcpy(&store_msg_buf[linkNo][pointer].short_message,
pMsg->pdu.deliver_sm.short_message, pMsg->pdu.deliver_sm.sm_length);
sprintf(store_msg_buf[linkNo][pointer].message_id,
"%ld", pMsg->pdu.deliver_sm.head.sequence_number);
}
}
/* fill with DELIVER SM RESP structure. */
smpp_msg.message_type = 0x10;
smpp_msg.pdu.deliver_sm_resp.head.command_status = htonl(ESME_ROK);
smpp_msg.pdu.deliver_sm_resp.head.sequence_number = pMsg->pdu.deliver_sm.head.sequence_number;
smpp_msg.pdu.deliver_sm_resp.message_id = 0x0;
smpp_send(linkNo, &smpp_msg, dataLen);
break;
case 0x10: /* DELIVER SM RESP */
printf("[TEST PROGRAM]Link %d received DELIVER SM RESP.\n", linkNo);
break;
case 0x11: /* DATA SM */
printf("[TEST PROGRAM]Link %d received DATA SM.\n", linkNo);
/* store smpp message */
if (smpp_link_attr[linkNo].message_mode == STORE_AND_FORWARD)
{
if (strlen(pMsg->pdu.data_sm.message_payload) < SMPP_MSG_LEN)
{
pointer = (msg_pointer[linkNo]+1)%STORE_MSG_ITEM;
memcpy(&store_msg_buf[linkNo][pointer].short_message,
pMsg->pdu.data_sm.message_payload, strlen(pMsg->pdu.data_sm.message_payload));
sprintf(store_msg_buf[linkNo][pointer].message_id,
"%ld", pMsg->pdu.data_sm.head.sequence_number);
}
}
/* fill with DATA SM RESP structure. */
smpp_msg.message_type = 0x12;
smpp_msg.pdu.data_sm_resp.head.command_status = htonl(ESME_ROK);
smpp_msg.pdu.data_sm_resp.head.sequence_number = pMsg->pdu.data_sm.head.sequence_number;
sprintf(smpp_msg.pdu.data_sm_resp.message_id, "%ld",
smpp_msg.pdu.data_sm_resp.head.sequence_number);
smpp_send(linkNo, &smpp_msg, dataLen);
break;
case 0x12: /* DATA SM RESP */
printf("[TEST PROGRAM]Link %d received DATA SM RESP.\n", linkNo);
break;
case 0x13: /* QUERY SM */
printf("[TEST PROGRAM]Link %d received QUERY SM.\n", linkNo);
pointer = -1;
for (i=0; i<STORE_MSG_ITEM; i++)
{
if (strcmp(store_msg_buf[linkNo][i].message_id, pMsg->pdu.query_sm.message_id) == 0)
{
pointer = i;
break;
}
}
/* fill with QUERY SM RESP structure */
smpp_msg.message_type = 0x14;
smpp_msg.pdu.query_sm_resp.head.command_status = htonl(ESME_ROK);
smpp_msg.pdu.query_sm_resp.head.sequence_number = pMsg->pdu.query_sm.head.sequence_number;
sprintf(smpp_msg.pdu.query_sm_resp.message_id, "%ld",
smpp_msg.pdu.query_sm_resp.head.sequence_number);
smpp_msg.pdu.query_sm_resp.final_date[0] = 0x0;
if (pointer == -1)
{
smpp_msg.pdu.query_sm_resp.message_state = 0x04;
}
else
{
smpp_msg.pdu.query_sm_resp.message_state = 0x02;
}
smpp_msg.pdu.query_sm_resp.error_code = 0x0;
smpp_send(linkNo, &smpp_msg, dataLen);
break;
case 0x14: /* QUERY SM RESP */
printf("[TEST PROGRAM]Link %d received QUERY SM RESP.\n", linkNo);
break;
case 0x15: /* CANCEL SM */
printf("[TEST PROGRAM]Link %d received CANCEL SM RESP.\n", linkNo);
pointer = -1;
if (pMsg->pdu.cancel_sm.message_id[0] == 0){
memset(store_msg_buf[linkNo], 0, sizeof(SMPP_MSG_STORE_STRUCT)*STORE_MSG_ITEM);
msg_pointer[linkNo] = 0;
smpp_msg.pdu.cancel_sm_resp.head.command_status = htonl(ESME_ROK);
}else{
for (i=0; i<STORE_MSG_ITEM; i++)
{
printf("[TEST program]message id in query sm=%s, message id in store message=%s",
pMsg->pdu.cancel_sm.message_id, store_msg_buf[linkNo][i].message_id);
if (strcmp(store_msg_buf[linkNo][i].message_id, pMsg->pdu.cancel_sm.message_id) == 0)
{
pointer = i;
break;
}
}
if (pointer == -1)
{
smpp_msg.pdu.cancel_sm_resp.head.command_status = htonl(ESME_RCANCELFAIL);
}else{
smpp_msg.pdu.cancel_sm_resp.head.command_status = htonl(ESME_ROK);
}
}
/* fill with CANCEL SM RESP structure */
smpp_msg.message_type = 0x16;
smpp_msg.pdu.cancel_sm_resp.head.sequence_number = pMsg->pdu.cancel_sm.head.sequence_number;
smpp_send(linkNo, &smpp_msg, dataLen);
break;
case 0x16: /* CANCEL SM RESP */
printf("[TEST PROGRAM]Link %d received CANCEL RESP.\n", linkNo);
break;
case 0x17: /* REPLACE SM */
printf("[TEST PROGRAM]Link %d received REPLACE SM.\n", linkNo);
pointer = -1;
for (i=0; i<STORE_MSG_ITEM; i++)
{
if (strcmp(store_msg_buf[linkNo][i].message_id, pMsg->pdu.replace_sm.message_id) == 0)
{
pointer = i;
break;
}
}
/* store new smpp message */
if (pointer != -1)
{
//if (pMsg->pdu.replace_sm.sm_length < SMPP_MSG_LEN)
{
memcpy(&store_msg_buf[linkNo][pointer].short_message,
pMsg->pdu.replace_sm.short_message, pMsg->pdu.replace_sm.sm_length);
}
}
/* fill with REPLACE SM RESP structure */
smpp_msg.message_type = 0x18;
if (pointer == -1)
{
smpp_msg.pdu.replace_sm_resp.head.command_status = htonl(ESME_RREPLACEFAIL);
}
else
{
smpp_msg.pdu.replace_sm_resp.head.command_status = htonl(ESME_ROK);
}
smpp_msg.pdu.replace_sm_resp.head.sequence_number = pMsg->pdu.replace_sm.head.sequence_number;
smpp_send(linkNo, &smpp_msg, dataLen);
break;
case 0x18: /* REPLACE SM RESP */
printf("[TEST PROGRAM]Link %d received REPLACE SM RESP.\n", linkNo);
break;
default:
return 0;
}
return sequence_number;
}
int smpp_onLinkStateChange(BYTE linkNo, BYTE linkstate)
{
printf("[TEST PROGRAM]link %d state change to %d\n",linkNo, linkstate);
if (linkstate == 1)
stateFlag[linkNo] = TRUE;
else
stateFlag[linkNo] = FALSE;
return linkNo;
}
//0-submit_sm, 1-deliver_sm, 2-data_sm
void sendTestSM(int linkNo, int msg_type)
{
SMPP_MSG smpp_msg;
WORD dataLen;
memset(&smpp_msg, 0, sizeof(SMPP_MSG));
switch (msg_type)
{
case 0: //send submit sm
smpp_msg.message_type = 0x0B;
smpp_msg.optional_param_flag1 = 0x0FF67FFF;
smpp_msg.optional_param_flag2 = 0x0;
//Mandatory parameters.
strcpy(smpp_msg.pdu.submit_sm.service_type, "USSD");
smpp_msg.pdu.submit_sm.source_addr_ton = 0x2; //National
smpp_msg.pdu.submit_sm.source_addr_npi = 0x1; //ISDN
strcpy(smpp_msg.pdu.submit_sm.source_addr, "172.18.166.1");
smpp_msg.pdu.submit_sm.dest_addr_ton = 0x2; //National
smpp_msg.pdu.submit_sm.dest_addr_npi = 0x1; //ISDN
strcpy(smpp_msg.pdu.submit_sm.destination_addr, "13923482085");
smpp_msg.pdu.submit_sm.esm_class = 0x00;
smpp_msg.pdu.submit_sm.protocol_id = 0x0;
smpp_msg.pdu.submit_sm.priority_flag = 0x3;
strcpy(smpp_msg.pdu.submit_sm.schedule_delivery_time, "041231151200000R");
strcpy(smpp_msg.pdu.submit_sm.validity_period, "041231151200000+");
smpp_msg.pdu.submit_sm.registered_delivery = 0x11;
smpp_msg.pdu.submit_sm.replace_if_present_flag = 0x01;
smpp_msg.pdu.submit_sm.data_coding = 0x07;
smpp_msg.pdu.submit_sm.sm_default_msg_id = 0x01;
smpp_msg.pdu.submit_sm.sm_length = 0x0;
strcpy(smpp_msg.pdu.submit_sm.short_message, "");
//Optional parameters.
smpp_msg.pdu.submit_sm.user_message_reference = 0x00;
smpp_msg.pdu.submit_sm.source_port = 0x6666;
smpp_msg.pdu.submit_sm.source_addr_subunit = 0x01;
smpp_msg.pdu.submit_sm.destination_port = 0x8888;
smpp_msg.pdu.submit_sm.dest_addr_subunit = 0x02;
smpp_msg.pdu.submit_sm.sar_msg_ref_num = 0x7700;
smpp_msg.pdu.submit_sm.sar_total_segments = 0x01;
smpp_msg.pdu.submit_sm.sar_segment_seqnum = 0x01;
smpp_msg.pdu.submit_sm.more_messages_to_send = 0x01;
smpp_msg.pdu.submit_sm.payload_type = 0x00;
strcpy(smpp_msg.pdu.submit_sm.message_payload, "messae in submit sm optional");
smpp_msg.pdu.submit_sm.privacy_indicator = 0x03;
//strcpy(smpp_msg.pdu.submit_sm.callback_num, "F0453245");
smpp_msg.pdu.submit_sm.callback_num[0] = 0x01; //ASCII
smpp_msg.pdu.submit_sm.callback_num[1] = 0x02; //National
smpp_msg.pdu.submit_sm.callback_num[2] = 0x03; //Data
strcpy(smpp_msg.pdu.submit_sm.callback_num+3, "F0453245");
smpp_msg.pdu.submit_sm.callback_num_pres_ind = 0x06;
strcpy(smpp_msg.pdu.submit_sm.callback_num_atag, "callback_num_atag");
//strcpy(smpp_msg.pdu.submit_sm.source_subaddress, "123");
//smpp_msg.pdu.submit_sm.source_subaddress[0] = 0x88;
//strcpy(smpp_msg.pdu.submit_sm.source_subaddress+1,"123");
//smpp_msg.pdu.submit_sm.dest_subaddress[0] = 0x88;
//strcpy(smpp_msg.pdu.submit_sm.dest_subaddress+1, "789");
smpp_msg.pdu.submit_sm.user_response_code = 0x03;
smpp_msg.pdu.submit_sm.display_time = 0x02;
//smpp_msg.pdu.submit_sm.sms_signal = 0x03;
smpp_msg.pdu.submit_sm.ms_validity = 0x03;
smpp_msg.pdu.submit_sm.ms_msg_wait_facilities = 0x03;
smpp_msg.pdu.submit_sm.number_of_messages = 0x03;
smpp_msg.pdu.submit_sm.alert_on_message_delivery = 0x03;
smpp_msg.pdu.submit_sm.language_indicator = 0x01;
smpp_msg.pdu.submit_sm.its_reply_type = 0x03;
smpp_msg.pdu.submit_sm.its_session_info[0] = 0x01;
smpp_msg.pdu.submit_sm.its_session_info[1] = 0x53;
smpp_msg.pdu.submit_sm.ussd_service_op = 0x03;
break;
case 1: //send deliver sm
smpp_msg.message_type = 0x0F;
smpp_msg.optional_param_flag1 = 0x000167FF;
smpp_msg.optional_param_flag2 = 0x0;
//Mandatory parameters.
strcpy(smpp_msg.pdu.deliver_sm.service_type, "USSD");
smpp_msg.pdu.deliver_sm.source_addr_ton = 0x2; //National
smpp_msg.pdu.deliver_sm.source_addr_npi = 0x1; //ISDN
strcpy(smpp_msg.pdu.deliver_sm.source_addr, "172.18.166.1");
smpp_msg.pdu.deliver_sm.dest_addr_ton = 0x2; //National
smpp_msg.pdu.deliver_sm.dest_addr_npi = 0x1; //ISDN
strcpy(smpp_msg.pdu.deliver_sm.destination_addr, "13923482085");
smpp_msg.pdu.deliver_sm.esm_class = 0x00;
smpp_msg.pdu.deliver_sm.protocol_id = 0x0;
smpp_msg.pdu.deliver_sm.priority_flag = 0x3;
smpp_msg.pdu.deliver_sm.schedule_delivery_time = 0x0;
smpp_msg.pdu.deliver_sm.validity_period = 0x0;
smpp_msg.pdu.deliver_sm.registered_delivery = 0x12;
smpp_msg.pdu.deliver_sm.replace_if_present_flag = 0x01;
smpp_msg.pdu.deliver_sm.data_coding = 0x07;
smpp_msg.pdu.deliver_sm.sm_default_msg_id = 0x01;
smpp_msg.pdu.deliver_sm.sm_length = 0x0;
strcpy(smpp_msg.pdu.deliver_sm.short_message, "");
//Optional parameters.
smpp_msg.pdu.deliver_sm.user_message_reference = 0x00;
smpp_msg.pdu.deliver_sm.source_port = 0x6666;
smpp_msg.pdu.deliver_sm.destination_port = 0x8888;
smpp_msg.pdu.deliver_sm.sar_msg_ref_num = 0x7700;
smpp_msg.pdu.deliver_sm.sar_total_segments = 0x01;
smpp_msg.pdu.deliver_sm.sar_segment_seqnum = 0x01;
smpp_msg.pdu.deliver_sm.user_response_code = 0x03;
smpp_msg.pdu.deliver_sm.privacy_indicator = 0x03;
smpp_msg.pdu.deliver_sm.payload_type = 0x00;
strcpy(smpp_msg.pdu.deliver_sm.message_payload, "messae in deliver sm optional");
smpp_msg.pdu.deliver_sm.callback_num[0] = 0x01; //ASCII
smpp_msg.pdu.deliver_sm.callback_num[1] = 0x02; //National
smpp_msg.pdu.deliver_sm.callback_num[2] = 0x03; //Data
strcpy(smpp_msg.pdu.deliver_sm.callback_num+3, "F0453245");
//smpp_msg.pdu.deliver_sm.source_subaddress[0] = 0xA0;
//smpp_msg.pdu.deliver_sm.source_subaddress[1] = 0x01;
//strcpy(smpp_msg.pdu.deliver_sm.source_subaddress+1, "123");
//smpp_msg.pdu.deliver_sm.dest_subaddress[0] = 0xA0;
//smpp_msg.pdu.deliver_sm.dest_subaddress[1] = 0x01;
//strcpy(smpp_msg.pdu.deliver_sm.dest_subaddress+1, "321");
smpp_msg.pdu.deliver_sm.language_indicator = 0x01;
smpp_msg.pdu.deliver_sm.its_session_info[0] = 0x01;
smpp_msg.pdu.deliver_sm.its_session_info[1] = 0x53;
//smpp_msg.pdu.deliver_sm.network_error_code[0] = 0x03;
//smpp_msg.pdu.deliver_sm.network_error_code[1] = 0x03;
//smpp_msg.pdu.deliver_sm.network_error_code[2] = 0x00;
smpp_msg.pdu.deliver_sm.message_state = 0x01;
//strcpy(smpp_msg.pdu.deliver_sm.receipted_message_id, "receipted message id in deliver sm");
break;
case 2: //data_sm
smpp_msg.message_type = 0x11;
smpp_msg.optional_param_flag1 = 0xB3EBFFFF;
smpp_msg.optional_param_flag2 = 0x0000003F;
//smpp_msg.optional_param_flag1 = 0x0C000000;
//smpp_msg.optional_param_flag2 = 0x0;
//Mandatory parameters.
strcpy(smpp_msg.pdu.data_sm.service_type, "USSD");
smpp_msg.pdu.data_sm.source_addr_ton = 0x2; //National
smpp_msg.pdu.data_sm.source_addr_npi = 0x1; //ISDN
strcpy(smpp_msg.pdu.data_sm.source_addr, "172.18.166.1");
smpp_msg.pdu.data_sm.dest_addr_ton = 0x2; //National
smpp_msg.pdu.data_sm.dest_addr_npi = 0x1; //ISDN
strcpy(smpp_msg.pdu.data_sm.destination_addr, "13923482085");
smpp_msg.pdu.data_sm.esm_class = 0x00;
smpp_msg.pdu.data_sm.registered_delivery = 0x11;
smpp_msg.pdu.data_sm.data_coding = 0x07;
//Optional parameters.
smpp_msg.pdu.data_sm.source_port = 0x6666;
smpp_msg.pdu.data_sm.source_addr_subunit = 0x01;
smpp_msg.pdu.data_sm.source_network_type = 0x01;
smpp_msg.pdu.data_sm.source_bearer_type = 0x03;
smpp_msg.pdu.data_sm.source_telematics_id = 0x0003;
smpp_msg.pdu.data_sm.destination_port = 0x8888;
smpp_msg.pdu.data_sm.dest_addr_subunit = 0x03;
smpp_msg.pdu.data_sm.dest_network_type = 0x03;
smpp_msg.pdu.data_sm.dest_bearer_type = 0x03;
smpp_msg.pdu.data_sm.dest_telematics_id = 0x0003;
smpp_msg.pdu.data_sm.sar_msg_ref_num = 0x7700;
smpp_msg.pdu.data_sm.sar_total_segments = 0x01;
smpp_msg.pdu.data_sm.sar_segment_seqnum = 0x01;
smpp_msg.pdu.data_sm.more_messages_to_send = 0x01;
smpp_msg.pdu.data_sm.qos_time_to_live = 0x000000FF;
smpp_msg.pdu.data_sm.payload_type = 0x00;
strcpy(smpp_msg.pdu.data_sm.message_payload, "smpp message in data sm optional");
smpp_msg.pdu.data_sm.set_dpf = 0x01;
//strcpy(smpp_msg.pdu.data_sm.receipted_message_id, "receipted message id");
smpp_msg.pdu.data_sm.message_state = 0x01;
//smpp_msg.pdu.data_sm.network_error_code[0] = 0x03;
//smpp_msg.pdu.data_sm.network_error_code[1] = 0x03;
//smpp_msg.pdu.data_sm.network_error_code[2] = 0x00;
smpp_msg.pdu.data_sm.user_message_reference = 0x00;
smpp_msg.pdu.data_sm.privacy_indicator = 0x03;
smpp_msg.pdu.data_sm.callback_num[0] = 0x01;
smpp_msg.pdu.data_sm.callback_num[1] = 0x02;
smpp_msg.pdu.data_sm.callback_num[2] = 0x03;
strcpy(smpp_msg.pdu.data_sm.callback_num+3, "call back num");
smpp_msg.pdu.data_sm.callback_num_pres_ind = 0x06;
strcpy(smpp_msg.pdu.data_sm.callback_num_atag, "callback num atag in data sm");
smpp_msg.pdu.data_sm.source_subaddress[0] = 0xA0;
smpp_msg.pdu.data_sm.source_subaddress[1] = 0x01;
//strcpy(smpp_msg.pdu.data_sm.source_subaddress+1, "123");
smpp_msg.pdu.data_sm.dest_subaddress[0] = 0xA0;
smpp_msg.pdu.data_sm.dest_subaddress[1] = 0x01;
//strcpy(smpp_msg.pdu.data_sm.dest_subaddress+1, "321");
smpp_msg.pdu.data_sm.user_response_code = 0x03;
smpp_msg.pdu.data_sm.display_time = 0x02;
//smpp_msg.pdu.data_sm.sms_signal = 0x03;
smpp_msg.pdu.data_sm.ms_validity = 0x03;
smpp_msg.pdu.data_sm.ms_msg_wait_facilities = 0x03;
smpp_msg.pdu.data_sm.number_of_messages = 0x03;
smpp_msg.pdu.data_sm.alert_on_message_delivery = 0x03;
smpp_msg.pdu.data_sm.language_indicator = 0x01;
smpp_msg.pdu.data_sm.its_reply_type = 0x03;
smpp_msg.pdu.data_sm.its_session_info[0] = 0x01;
smpp_msg.pdu.data_sm.its_session_info[1] = 0x53;
break;
}
smpp_send(linkNo, &smpp_msg, dataLen);
}

View File

@@ -0,0 +1,948 @@
//--------------------------------------
// USSD EAE write for ussd test
// Author: lw 2006/7/10
//--------------------------------------
#include "./include/smpp.h"
#define ISDN_LEN 9
typedef struct GameSession
{
BYTE LinkNo;
BYTE flag;
BYTE ussd_ref;
BYTE seed[4];
BYTE ssm_state;
BYTE shmsg[256];
BYTE us_prm;
BYTE input[4];
BYTE history[512];
BYTE count;
char msisdn[(ISDN_LEN+1)*2+2];
}
GameSession;
typedef enum _USSD_OP
{
PSSDR = 0 , // MAP_Process_USS_Data request operation
PSSRR = 1 , // MAP_Process_USS_Request request operation
USSRR = 2 , // MAP_USS_Request Request operation
USSNR = 3 , // MAP_USS_Notify Request operation
OPENR = 4 , // open request operation
RELR = 5 , // Release request operation
PSSDA = 6 , // MAP_Process_USS_Data Answer operation
PSSDE = 7 , // MAP_Process_USS_Data error operation
PSSRA = 8 , // MAP_Process_USS_Request Answer operation
PSSRE = 9 , // MAP_Process_USS_Request error operation
USSRA = 10 , // MAP_USS_Request Answer operation
USSRE = 11, // MAP_USS_Request Error operation
USSNA = 12, // MAP_USS_Notify Answer operation
USSNE = 13, // MAP_USS_Notify Error operation
OPENE = 14, // open error operation
RELE = 15, // Release error operation
PSSDS = 16, // MAP_Process_USS_Data confirm operation
PSSRS = 17, // MAP_Process_USS_Request confirm operation
USSRC = 18, // MAP_USS_Request Confirm operation
USSNC = 19, // MAP_USS_Notify Confirm operation
USSRS = 20, // MAP_USS_Request response operation
USSNS = 21, // MAP_USS_Notify response operation
PSSRC = 22, // MAP_Process_USS_Request confirm operation
OPENC = 23, // open confirm operation
RELC = 24, // Release confirm operation
}
USSD_OP;
struct ussd_op
{
char *s;
USSD_OP v;
};
#define USSD_OP_NUM 25
#define USSD_OP_LEN 5
static const struct ussd_op op_map_name[25] = {
{ "PSSDR" , PSSDR }, // 0 MAP_Process_USS_Data request operation
{ "PSSRR" , PSSRR }, // 1 MAP_Process_USS_Request request operation
{ "USSRR" , USSRR }, // 2 MAP_USS_Request Request operation
{ "USSNR" , USSNR }, // 3 MAP_USS_Notify Request operation
{ "OPENR" , OPENR }, // 4 open request operation
{ "RELR " , RELR }, // 5 Release request operation
{ "PSSAE" , PSSDA }, // 6 MAP_Process_USS_Data Answer operation
{ "PSSDE" , PSSDE }, // 7 MAP_Process_USS_Data error operation
{ "PSSRE" , PSSRA }, // 8 MAP_Process_USS_Request Answer operation
{ "PSSRE" , PSSRE }, // 9 MAP_Process_USS_Request error operation
{ "USSRA" , USSRA }, // 10 MAP_USS_Request Answer operation
{ "USSRE" , USSRE }, // 11 MAP_USS_Request Error operation
{ "USSNA" , USSNA }, // 12 MAP_USS_Notify Answer operation
{ "USSNE" , USSNE }, // 13 MAP_USS_Notify Error operation
{ "OPENE" , OPENE }, // 14 open error operation
{ "RELE " , RELE }, // 15 Release error operation
{ "PSSDS" , PSSDS }, // 16 MAP_Process_USS_Data confirm operation
{ "PSSRS" , PSSRS }, // 17 MAP_Process_USS_Request confirm operation
{ "USSRC" , USSRC }, // 18 MAP_USS_Request Confirm operation
{ "USSNC" , USSNC }, // 19 MAP_USS_Notify Confirm operation
{ "USSRS" , USSRS }, // 20 MAP_USS_Request response operation
{ "USSNS" , USSNS }, // 21 MAP_USS_Notify response operation
{ "PSSRC" , PSSRC }, // 22 MAP_Process_USS_Request confirm operation
{ "OPENC" , OPENC }, // 23 open confirm operation
{ "RELC " , RELC }, // 24 Release confirm operation
};
typedef enum US_STATE
{
US_IDLE=0,
US_OPENR,
US_OPENC,
US_OPENE,
US_PSSRR,
US_PSSRA,
US_PSSRE,
US_PSSRC,
US_PSSRS,
US_USSRR,
US_USSRC,
US_USSRS,
US_USSNR,
US_USSNC,
US_USSNS,
US_RELER,
US_RELEC,
US_RELES,
US_RELEE,
}
US_STATE;
#define MAX_GAME_SESSION 255
typedef struct GuessGame
{
BYTE wxc2_hlr_number[8];
char service_number[8];
BYTE link_enable;
BYTE link;
}GuessGame;
GuessGame gg;
struct GameSession ssm_data[MAX_GAME_SESSION];
#define SD_PKT_NUM 10
#define STORE_MSG_ITEM 60
typedef struct SMPP_MSG_STORE_STRUCT
{
BYTE short_message[SMPP_MSG_LEN];
BYTE message_id[65];
} SMPP_MSG_STORE_STRUCT;
#define MAX_GAME_LINK 1
static struct itimerval itimer,old_itimer;
static int timer_counter[MAX_GAME_LINK];
static int stateFlag[MAX_GAME_LINK];
static int msg_count[MAX_GAME_LINK];
static int msg_pointer[MAX_GAME_LINK];
static SMPP_MSG_STORE_STRUCT store_msg_buf[MAX_GAME_LINK][STORE_MSG_ITEM];
static void On_Timer();
static void SetTimer();
static void smpp_test_init();
static int smpp_onDataRecv(BYTE linkNo, SMPP_MSG *pData, WORD dataLen);
static int smpp_onLinkStateChange(BYTE linkNo, BYTE linkstate);
BYTE hae_isdn_ston(BYTE *normal_isdn,BYTE *str_isdn)
{
BYTE ii;
BYTE len;
len = strlen(str_isdn);
if (len > ISDN_LEN*2-2)
return 0;
if ((len % 2) == 1) // odd number
{
AsciiToBcd(normal_isdn+1,str_isdn,len-1);
ii = len/2 + 1;
normal_isdn[ii] = (str_isdn[len-1] - '0') << 4;
normal_isdn[ii] |= 0x0E;
}
else
{
AsciiToBcd(normal_isdn+1,str_isdn,len);
ii = len/2;
}
memset(normal_isdn+ii+1,0xEE,ISDN_LEN-ii-1);
normal_isdn[0] = 0x91; // default value
return 1;
}
void hae_isdn_ntos(BYTE *str_isdn,BYTE *normal_isdn)
{
BYTE len = 0;
BYTE ii,jj;
for (ii = 1;ii < ISDN_LEN;ii ++)
{
jj = (normal_isdn[ii] >> 4) & 0x0f;
if (jj > 0x0c)
break;
str_isdn[len++] = jj + '0';
jj = normal_isdn[ii] & 0x0f;
if (jj > 0x0c)
break;
str_isdn[len++] = jj + '0';
}
str_isdn[len] = '\0';
}
int register_link()
{
BYTE ret;
strcpy( gg.service_number , "86755001");
if( gg.link == MAX_SMPP_LINK+1 )
{
ret = smpp_registerLink(SMPP_CLIENT, BIND_TRX, gg.service_number, TRANSACTION);
if ((ret&0x80) == 0x80)
{
gg.link = ret&0x7f;
printf("Get link for GuessGame EAE .link:%d", gg.link);
smpp_attach_link(gg.link, smpp_onDataRecv, smpp_onLinkStateChange);
return 1;
}
}
else
{
smpp_attach_link(gg.link, smpp_onDataRecv, smpp_onLinkStateChange);
return 1;
}
return 0;
}
void smpp_test_init(int flag)
{
int i;
FILE *fp;
char line[32];
char test_file[] = "./conf/guess_number_test.conf";
gg.link_enable = 0;
gg.link = MAX_SMPP_LINK+1;
for (i=0; i<MAX_GAME_LINK; i++)
{
memset(store_msg_buf[i], 0, sizeof(SMPP_MSG_STORE_STRUCT)*STORE_MSG_ITEM);
msg_pointer[i] = 0;
}
strcpy(gg.wxc2_hlr_number, "86755001");
register_link();
if( flag )
{
fp = fopen( test_file , "r");
if( fp == NULL )
{
printf("Open %s file fail!\n", test_file );
}
while ( !feof ( fp ) )
{
if( fgets ( line, 256, fp ) == NULL )
{
break;
}
for( i = 16 ; i > 6 ; i -- )
{
if( line[i] == ' ' || line[i] == '\t' || line[i] == '\r' || line[i] == '\n')
{
continue;
}
else if( isdigit( line[i] ) )
{
break;
}
}
if( i < 16 && i > 6 )
{
line[i+1] = '\0';
}
line[16] = '\0';
for( i = 0 ; i < MAX_GAME_SESSION ; i ++ )
{
if( !ssm_data[i].flag )
{
ssm_data[i].flag = 1;
ssm_data[i].ssm_state =6;
printf("read msisdn :%s\n",line);
strcpy ( ssm_data[i].msisdn, line );
//hae_isdn_ston ( temp_isdn, temp_msisdn );
//memcpy( ssm_data[i].msisdn , temp_isdn , ISDN_LEN);
break;
}
}
}
}
}
extern int iptrMainInit();
int main(int argc,char *argv[])
{
int i;
char ret;
heartbeat_init(0xFFFF);
debug_init();
iptrMainInit();
snmp_init(SMPP_PORT);
mtp_shm_init();
sccp_init();
smpp_init_new();
while ((ret = getopt(argc,argv,"n")) != -1)
{
switch (ret)
{
case 'n':
printf("\n\n\nNetwork initial ussd to ms\n\n\n");
smpp_test_init(1);
break;
default:
smpp_test_init(0);
break;
}
}
for (i=0; i<MAX_GAME_LINK; i++)
{
stateFlag[i] = FALSE;
timer_counter[i]= 0;
msg_count[i] = 0;
}
opterr = 0;
SetTimer();
while(1)
{
usleep(50);
}
return 1;
}
void GameFsm();
static int call_flag = 0;
void On_Timer()
{
int i;
for (i=0; i<MAX_GAME_LINK; i++)
{ // 2 msgs per second
if (timer_counter[i]==25)
timer_counter[i]=0;
if ((timer_counter[i]%25)==0)
{
if( (call_flag++)%2 == 0 )
{
GameFsm();
}
}
timer_counter[i]++;
if (msg_count[i] == SD_PKT_NUM)
{
smpp_close(i);
}
}
iptrans_timer();
debug_rt();
snmp_timer();
mtp3_proc();
heartbeat_timer();
sccp_timer();
smpp_fsm_new();
}
void SetTimer()
{
struct sigaction act;
act.sa_handler=On_Timer;
sigemptyset(&act.sa_mask);
act.sa_flags=0;
if(sigaction(SIGALRM,&act,NULL)<0)
{
perror("Produce Sigaction");
exit(1);
}
itimer.it_interval.tv_sec=0;
itimer.it_interval.tv_usec=20*1000;
itimer.it_value.tv_sec=0;
itimer.it_value.tv_usec=20*1000;
if (setitimer(ITIMER_REAL,&itimer,&old_itimer) !=0 )
{
printf("Setting Timer error! \n");
exit(1);
}
}
void SendMsgToSMPP(int sid , BYTE* msg , BYTE ussd_op);
int smpp_onDataRecv(BYTE linkNo, SMPP_MSG *pMsg, WORD dataLen)
{
int sequence_number=100;
SMPP_MSG smpp_msg;
int i;
//BYTE temp_isdn[ISDN_LEN+1];
//BYTE temp_msisdn[65];
struct GameSession *ssm_ptr;
char temp_str[256];
switch (pMsg->message_type)
{
case 0x0C: /* SUBMIT SM RESP */
printf("[TEST PROGRAM]Link %d received SUBMIT SM RESP.\n", linkNo);
break;
case 0x0F: /* DELIVER SM */
printf("[TEST PROGRAM]Link %d received DELIVER SM. op:%d \n", linkNo , pMsg->pdu.deliver_sm.ussd_service_op);
switch( pMsg->pdu.deliver_sm.ussd_service_op )
{
case PSSRR:
smpp_send_ascout("\33[32mGuess Game Recv PSSRR\33[0m\n");
if( pMsg->pdu.deliver_sm.user_message_reference >= MAX_GAME_SESSION )
{
smpp_send_ascout("\33[32mThe session id is too large!\33[0m\n");
return -1;
}
for( i = 0 ; i < MAX_GAME_SESSION ; i ++ )
{
if( pMsg->pdu.deliver_sm.user_message_reference == ssm_data[i].ussd_ref )
{
if( ssm_data[i].flag == 1)
{
smpp_send_ascout("\33[32mThe session id is in used!\33[0m\n");
return -1;
}
}
}
for( i = 0 ; i < MAX_GAME_SESSION ; i ++ )
{
if( ssm_data[i].flag == 0)
{
break;
}
}
ssm_data[i].flag = 1;
ssm_data[i].ssm_state =1;
ssm_data[i].ussd_ref = pMsg->pdu.deliver_sm.user_message_reference;
strcpy ( ssm_data[i].msisdn, pMsg->pdu.deliver_sm.source_addr );
break;
case USSRC:
for( i = 0 ; i < MAX_GAME_SESSION ; i ++ )
{
if( strcmp( pMsg->pdu.deliver_sm.source_addr ,ssm_data[i].msisdn ) == 0 )
{
break;
}
}
if( i == MAX_GAME_SESSION )
{
printf( "unkown USSRC msisdn :%s \n",pMsg->pdu.deliver_sm.source_addr );
SendMsgToSMPP( pMsg->pdu.deliver_sm.user_message_reference ,ssm_ptr->shmsg , RELR );
ssm_ptr->us_prm = US_RELER;
return -1;
}
ssm_ptr = &ssm_data[i];
ssm_ptr->us_prm = US_USSRC;
smpp_send_ascout("\33[32mGuess Game Recv USSRC\33[0m\n");
sprintf(temp_str, "\33[32mGame Fsm state :% d sid : %d\33[0m\n" , ssm_ptr->ssm_state , pMsg->pdu.deliver_sm.user_message_reference);
smpp_send_ascout(temp_str);
if( pMsg->pdu.deliver_sm.sm_length == 4 )
{
memcpy( &ssm_ptr->input , &pMsg->pdu.deliver_sm.short_message ,4);
ssm_ptr->input[0] -= '0';
ssm_ptr->input[1] -= '0';
ssm_ptr->input[2] -= '0';
ssm_ptr->input[3] -= '0';
}
strcpy( ssm_ptr->shmsg , pMsg->pdu.deliver_sm.short_message );
ssm_ptr->shmsg[pMsg->pdu.deliver_sm.sm_length] = '\0';
break;
case USSNC:
for( i = 0 ; i < MAX_GAME_SESSION ; i ++ )
{
if( strcmp( pMsg->pdu.deliver_sm.source_addr ,ssm_data[i].msisdn ) == 0 )
{
break;
}
}
if( i == MAX_GAME_SESSION )
{
printf( "unkown USSRC msisdn :%s \n",pMsg->pdu.deliver_sm.source_addr );
if( pMsg->pdu.deliver_sm.user_message_reference < MAX_GAME_SESSION )
{
ssm_ptr = &ssm_data[i];
strcpy( ssm_ptr->shmsg , " incorrect user msg reference " );
SendMsgToSMPP( pMsg->pdu.deliver_sm.user_message_reference ,ssm_ptr->shmsg , RELR );
}
return -1;
}
ssm_ptr = &ssm_data[i];
ssm_ptr->us_prm = US_USSNC;
smpp_send_ascout("\33[32mGuess Game Recv USSNC\33[0m\n");
break;
case RELR:
for( i = 0 ; i < MAX_GAME_SESSION ; i ++ )
{
if( strcmp( pMsg->pdu.deliver_sm.source_addr ,ssm_data[i].msisdn ) == 0 )
{
break;
}
}
if( i == MAX_GAME_SESSION )
{
//sprintf( ssm_ptr->shmsg ,"unkown RELR msisdn :%s \n",pMsg->pdu.deliver_sm.source_addr );
//SendMsgToSMPP( pMsg->pdu.deliver_sm.user_message_reference ,ssm_ptr->shmsg , RELR );
return -1;
}
ssm_ptr = &ssm_data[i];
ssm_ptr->us_prm = US_RELEC;
smpp_send_ascout("\33[32mGuess Game Recv RELR\33[0m\n");
break;
case RELC:
for( i = 0 ; i < MAX_GAME_SESSION ; i ++ )
{
if( strcmp( pMsg->pdu.deliver_sm.source_addr ,ssm_data[i].msisdn ) == 0 )
{
break;
}
}
if( i == MAX_GAME_SESSION )
{
printf( "unkown RELC msisdn :%s \n",pMsg->pdu.deliver_sm.source_addr );
SendMsgToSMPP( pMsg->pdu.deliver_sm.user_message_reference ,ssm_ptr->shmsg , RELR );
return -1;
}
ssm_ptr = &ssm_data[i];
ssm_ptr->us_prm = US_RELES;
smpp_send_ascout("\33[32mGuess Game Recv RELR\33[0m\n");
break;
default:
break;
}
/* fill with DELIVER SM RESP structure. */
smpp_msg.message_type = 0x10;
smpp_msg.pdu.deliver_sm_resp.head.command_status = htonl(ESME_ROK);
smpp_msg.pdu.deliver_sm_resp.head.sequence_number = pMsg->pdu.deliver_sm.head.sequence_number;
smpp_msg.pdu.deliver_sm_resp.message_id = 0x0;
smpp_send(linkNo, &smpp_msg, dataLen);
smpp_send_ascout("Send deliver_sm_resp\n");
call_flag = 0;
break;
}
return sequence_number;
}
int smpp_onLinkStateChange(BYTE linkNo, BYTE linkstate)
{
printf("[TEST PROGRAM]link %d state change to %d\n",linkNo, linkstate);
if (linkstate == 1)
gg.link_enable = 1;
else
gg.link_enable = 0;
return linkNo;
}
int RandomNum(BYTE *seed)
{
int count , i , j;
i = j = count = 0 ;
while( count < 4 )
{
j = 1 +(int)(10.0*rand()/(RAND_MAX+1.0));
if( j >= 10 )
{
continue;
}
for( i = count ; i > 0 ; i-- )
{
if( j == seed[i] )
{
break;
}
}
if( !count || j != seed[i])
{
seed[count] = j;
count++;
}
}
return (count == 4 ? 1 : 0);
}
int CheckInput(BYTE *input)
{
int input_index ,index;
for( input_index = 0 ; input_index < 4 ; input_index++ )
{
for( index = 0 ; index < 4 ; index++ )
{
if( index != input_index && input[input_index] == input[index] )
{
return 0;
}
}
}
return 1;
}
int GuessNumber(BYTE* input,BYTE* seed)
{
BYTE seed_index , input_index ;
BYTE rt_a , rt_b ;
rt_a = rt_b = 0;
for( input_index = 0 ; input_index < 4 ; input_index++ )
{
for( seed_index = 0 ; seed_index < 4 ; seed_index++ )
{
if( input[(int)input_index] == seed[(int)seed_index] )
{
if( input_index == seed_index )
{
rt_a++;
}
else
{
rt_b++;
}
}
}
}
return (rt_a << 4) + rt_b;
}
void SendMsgToSMPP(int sid , BYTE* msg , BYTE ussd_op)
{
SMPP_MSG pMsg;
int data_len;
PDU_SUBMIT_SM *submit_sm;
struct GameSession *ssm_ptr;
char temp_str[256];
if( sid >= MAX_GAME_SESSION )
{
ssm_ptr = &ssm_data[sid - MAX_GAME_SESSION];
}
else
{
ssm_ptr = &ssm_data[sid];
}
memset( &pMsg , 0 , sizeof(SMPP_MSG));
submit_sm = &pMsg.pdu.submit_sm;
pMsg.message_type = 0x0B;
pMsg.optional_param_flag1 = 0x08000001;
if( sid < MAX_GAME_SESSION )
submit_sm->user_message_reference = ssm_ptr->ussd_ref;
else
submit_sm->user_message_reference = 0xFFFF;
submit_sm->ussd_service_op = ussd_op;
strcpy( submit_sm->service_type , "USSD" );
strcpy( submit_sm->destination_addr , ssm_ptr->msisdn );
strcpy( submit_sm->source_addr , gg.service_number );
//hae_isdn_ntos( submit_sm->destination_addr , ssm_ptr->msisdn );
sprintf(temp_str, "\33[32mGuessGame send smpp msg: ussd_op :%s ssm_ptr->msisdn :%s user_refer : %d\33[0m\n"
, op_map_name[submit_sm->ussd_service_op].s ,ssm_ptr->msisdn , submit_sm->user_message_reference);
smpp_send_ascout(temp_str);
submit_sm->sm_length = strlen( msg );
strcpy( submit_sm->short_message , msg );
smpp_send( gg.link , &pMsg , data_len );
}
void GameFsm()
{
int rt;
int i;
char temp_str[1024];
struct GameSession *ssm_ptr;
if( !gg.link_enable && !register_link() )
{
smpp_send_ascout("Try to connect to WXC2 HLR fail\n");
printf("Try to connect to WXC2 HLR fail\n");
return;
}
//sprintf(debugBuf,);
//smpp_send_ascout("The session id is in used!\n");
for( i = 0 ;i < MAX_GAME_SESSION ; i++)
{
ssm_ptr = &ssm_data[i];
if( ssm_ptr->flag == 0 )
{
continue;
}
if( ssm_ptr->us_prm == US_RELES )
{
ssm_ptr->ssm_state = 7;
}
else if( ssm_ptr->us_prm == US_RELEC )
{
strcpy( ssm_ptr->shmsg , "Release ack!\n");
SendMsgToSMPP( i ,ssm_ptr->shmsg , RELC );
ssm_ptr->ssm_state = 7;
}
switch( ssm_ptr->ssm_state )
{
case 0:
continue;
case 1:
sprintf(temp_str, "\33[32mGame Fsm state :% d sid : %d\33[0m\n" , ssm_ptr->ssm_state , i);
smpp_send_ascout(temp_str);
if( !RandomNum( ssm_ptr->seed ) )
{
//"Create random number fail"
return;
}
//sid = pMsg->pdu.deliver_sm.user_message_reference ;
//if( sid > MAX_GAME_SESSION )
//{
// //"Game EAE do no support so much session .sid :%d",sid
// return;
//}
sprintf( ssm_ptr->shmsg ," WellCome to WXC2 Online Guess Number Game System!\n Please input you guess nubmer:\n");
SendMsgToSMPP( i ,ssm_ptr->shmsg , USSRR );
sprintf(temp_str , "\n\n\33[32mSend Game Info :\n%s\33[0m\n\n" , ssm_ptr->shmsg );
smpp_send_ascout(temp_str);
ssm_ptr->ssm_state = 2;
break;
case 2:
switch( ssm_ptr->us_prm )
{
case US_IDLE:
break;
case US_RELER:
break;
case US_USSRC:
sprintf(temp_str, "\33[32mGame Fsm state :% d sid : %d\33[0m\n" , ssm_ptr->ssm_state , i);
smpp_send_ascout(temp_str);
if( strlen(ssm_ptr->shmsg) != 4 )
{
sprintf(temp_str, "\33[32mThe input string length is not 4. input again.\33[0m\n");
smpp_send_ascout(temp_str);
strcpy ( ssm_ptr->shmsg , "The input string length is not 4. input again.");
SendMsgToSMPP( i ,ssm_ptr->shmsg , USSRR );
sprintf(temp_str , "\n\n\33[32mSend Game Info :\n%s\33[0m\n\n" , ssm_ptr->shmsg );
smpp_send_ascout(temp_str);
ssm_ptr->shmsg[0] = '\0';
ssm_ptr->us_prm = US_IDLE;
return;
}
if( !CheckInput( ssm_ptr->input ) )
{
sprintf( ssm_ptr->shmsg ,"Input is Error! Please input four difference numbers.\n");
SendMsgToSMPP( i ,ssm_ptr->shmsg , USSRR );
}
rt = GuessNumber( ssm_ptr->input , ssm_ptr->seed ) & 0xFF ;
ssm_ptr->count ++;
if( ssm_ptr->count >= 8 )
{
sprintf ( ssm_ptr->shmsg ,"Game Over!\n");
sprintf ( temp_str , "NO%d:%d%d%d%d ",ssm_ptr->count , ssm_ptr->input[0],ssm_ptr->input[1],ssm_ptr->input[2],ssm_ptr->input[3]);
strcat ( ssm_ptr->history , temp_str );
sprintf ( temp_str , "->%dA%dB\n" , rt>>4 , rt&0x0F);
strcat ( ssm_ptr->history , temp_str );
//strcat ( ssm_ptr->shmsg , ssm_ptr->history );
SendMsgToSMPP( i ,ssm_ptr->shmsg , USSNR );
sprintf(temp_str , "\n\n\33[32mSend Game Info :\n%s\33[0m\n\n" , ssm_ptr->shmsg );
smpp_send_ascout(temp_str);
ssm_ptr->ssm_state = 3;
ssm_ptr->us_prm = US_IDLE;
return ;
}
sprintf( temp_str , "NO%d:%d%d%d%d ",ssm_ptr->count , ssm_ptr->input[0],ssm_ptr->input[1],ssm_ptr->input[2],ssm_ptr->input[3]);
if( rt != 0x40 )
{
strcat ( ssm_ptr->history , temp_str );
sprintf( temp_str , "->%dA%dB\n" , rt>>4 , rt&0x0F);
strcat ( ssm_ptr->history , temp_str );
strcpy ( ssm_ptr->shmsg , ssm_ptr->history );
SendMsgToSMPP( i ,ssm_ptr->shmsg , USSRR );
sprintf(temp_str , "\n\n\33[32mSend Game Info :\n%s\33[0m\n\n" , ssm_ptr->shmsg );
smpp_send_ascout(temp_str);
ssm_ptr->us_prm = US_IDLE;
}
else
{
strcat ( ssm_ptr->history , temp_str );
sprintf( temp_str , "->%dA%dB\n" , rt>>4 , rt&0x0F);
strcat ( ssm_ptr->history , temp_str );
strcpy ( ssm_ptr->shmsg , ssm_ptr->history );
SendMsgToSMPP( i ,ssm_ptr->shmsg , USSNR );
sprintf(temp_str , "\n\n\33[32mSend Game Info :\n%s\33[0m\n\n" , ssm_ptr->shmsg );
smpp_send_ascout(temp_str);
ssm_ptr->ssm_state = 3;
ssm_ptr->us_prm = US_IDLE;
}
break;
}
break;
case 3:
if( ssm_ptr->us_prm == US_USSNC )
{
switch( ssm_ptr->count )
{
case 1:
sprintf ( ssm_ptr->shmsg ," So Luck!\n");
break;
case 2:
sprintf ( ssm_ptr->shmsg ," Luck\n");
break;
case 3:
sprintf ( ssm_ptr->shmsg ," Perfect\n");
break;
case 4:
sprintf ( ssm_ptr->shmsg ," Very Good\n");
break;
case 5:
sprintf ( ssm_ptr->shmsg ," Good\n");
break;
case 6:
case 7:
case 8:
sprintf ( ssm_ptr->shmsg ," Correct\n");
break;
default:
strcpy ( ssm_ptr->shmsg , ssm_ptr->history );
SendMsgToSMPP( i ,ssm_ptr->shmsg , USSNR );
sprintf(temp_str , "\n\n\33[32mSend Game Info :\n%s\33[0m\n\n" , ssm_ptr->shmsg );
smpp_send_ascout(temp_str);
ssm_ptr->ssm_state = 4;
return;
break;
}
SendMsgToSMPP( i ,ssm_ptr->shmsg , USSNR );
sprintf(temp_str , "\n\n\33[32mSend Game Info :\n%s\33[0m\n\n" , ssm_ptr->shmsg );
smpp_send_ascout(temp_str);
ssm_ptr->ssm_state = 4;
}
case 4:
if( ssm_ptr->us_prm == US_USSNC )
{
sprintf(temp_str, "\33[32mGame Fsm state :% d sid : %d\33[0m\n" , ssm_ptr->ssm_state , i);
smpp_send_ascout(temp_str);
sprintf( ssm_ptr->shmsg ," Guess Number\n1 . Restart game \n 2 . exit\n");
SendMsgToSMPP( i ,ssm_ptr->shmsg , USSRR );
ssm_ptr->ssm_state = 5;
ssm_ptr->count =0;
sprintf(temp_str , "\n\n\33[32mSend Game Info :\n%s\33[0m\n\n" , ssm_ptr->shmsg );
smpp_send_ascout(temp_str);
}
break;
case 5:
if( ssm_ptr->us_prm == US_USSRC )
{
if( ssm_ptr->shmsg[0] == '1' )
{
if( !RandomNum( ssm_ptr->seed ) )
{
//"Create random number fail"
return;
}
sprintf( ssm_ptr->shmsg ," Game Restart.input four difference numbers: \n");
SendMsgToSMPP( i ,ssm_ptr->shmsg , USSRR );
ssm_ptr->history[0]= '\0';
ssm_ptr->ssm_state = 2;
}
else if( ssm_ptr->shmsg[0] == '2' )
{
sprintf( ssm_ptr->shmsg ," Game Exit.GoodBye! Wellcome to use WXC2 system!\n");
SendMsgToSMPP( i ,ssm_ptr->shmsg , USSNR );
memset( ssm_ptr , 0 , sizeof(GameSession ));
}
else
{
sprintf( ssm_ptr->shmsg ," Unexpeced menu selection!\n");
SendMsgToSMPP( i ,ssm_ptr->shmsg , USSNR );
ssm_ptr->ssm_state = 7;
}
sprintf(temp_str , "\n\n\33[32mSend Game Info :\n%s\33[0m\n\n" , ssm_ptr->shmsg );
smpp_send_ascout(temp_str);
}
break;
case 6:
if( gg.link_enable )
{
sprintf(temp_str, "\33[32mGame Fsm state :% d sid : %d\33[0m\n" , ssm_ptr->ssm_state , i);
smpp_send_ascout(temp_str);
if( !RandomNum( ssm_ptr->seed ) )
{
//"Create random number fail"
return;
}
sprintf( ssm_ptr->shmsg ," WellCome to WXC2 Online Guess Number Game System!\n Please input you guess nubmer:\n");
SendMsgToSMPP( i+MAX_GAME_SESSION ,ssm_ptr->shmsg , USSRR );
sprintf(temp_str , "\n\n\33[32mSend Game Info :\n%s\33[0m\n\n" , ssm_ptr->shmsg );
smpp_send_ascout(temp_str);
ssm_ptr->ssm_state = 2;
sprintf(temp_str, "\33[32mGame Fsm change to state :% d sid : %d\33[0m\n" , ssm_ptr->ssm_state , i);
smpp_send_ascout(temp_str);
}
break;
case 7: //release
if( ssm_ptr->us_prm == US_USSNC )
{
strcpy( ssm_ptr->shmsg , "session is closed");
SendMsgToSMPP( i ,ssm_ptr->shmsg , RELR );
}
sprintf(temp_str, "\33[32mRecv Release command ! sid: %d ussd_ref: %d\33[0m\n" , i ,ssm_ptr->ussd_ref);
smpp_send_ascout(temp_str);
memset( ssm_ptr , 0 , sizeof(GameSession ));
break;
}
}
}

View File

@@ -0,0 +1,704 @@
//--------------------------------------
// USSD EAE write for ussd test
// Author: lw 2006/7/10
//--------------------------------------
#include "./include/smpp.h"
#define ISDN_LEN 9
typedef struct PPPChatSession
{
BYTE LinkNo;
BYTE flag;
BYTE sid;
BYTE link_sid;
BYTE link_flag;
BYTE seed[4];
BYTE ssm_state;
BYTE shmsg[256];
BYTE us_prm;
BYTE input[4];
BYTE history[512];
BYTE count;
char msisdn[ISDN_LEN*2+1];
char mt_msisdn[ISDN_LEN*2+1];
char buf[256];
}
PPPChatSession;
typedef enum _USSD_OP
{
PSSDR = 0 , // MAP_Process_USS_Data request operation
PSSRR = 1 , // MAP_Process_USS_Request request operation
USSRR = 2 , // MAP_USS_Request Request operation
USSNR = 3 , // MAP_USS_Notify Request operation
OPENR = 5 , // open request operation
RELR = 6 , // Release request operation
PSSDE = 7 , // MAP_Process_USS_Data error operation
PSSRE = 8 , // MAP_Process_USS_Request error operation
USSRA = 9 , // MAP_USS_Request Answer operation
USSRE = 10, // MAP_USS_Request Error operation
USSNE = 11, // MAP_USS_Notify Error operation
USSNA = 12, // MAP_USS_Notify Answer operation
OPENE = 13, // open error operation
RELE = 14, // Release error operation
UTEST = 15, // USSD TEST Message
PSSDS = 16, // MAP_Process_USS_Data confirm operation
PSSRS = 17, // MAP_Process_USS_Request confirm operation
USSRC = 18, // MAP_USS_Request Confirm operation
USSNC = 19, // MAP_USS_Notify Confirm operation
PSSRC = 20, // MAP_Process_USS_Request confirm operation
OPENC = 21, // open confirm operation
RELC = 22, // Release confirm operation
}
USSD_OP;
typedef enum US_STATE
{
US_IDLE=0,
US_OPENR,
US_OPENC,
US_OPENE,
US_PSSRR,
US_PSSRA,
US_PSSRE,
US_PSSRC,
US_PSSRS,
US_USSRR,
US_USSRC,
US_USSRS,
US_USSNR,
US_USSNC,
US_USSNS,
US_RELER,
US_RELEC,
US_RELEE,
}
US_STATE;
#define MAX_GAME_SESSION 255
typedef struct GuessGame
{
BYTE wxc2_hlr_number[8];
BYTE link_enable;
BYTE link;
}GuessGame;
GuessGame gg;
struct PPPChatSession ssm_data[MAX_GAME_SESSION];
#define SD_PKT_NUM 10
#define STORE_MSG_ITEM 60
typedef struct SMPP_MSG_STORE_STRUCT
{
BYTE short_message[SMPP_MSG_LEN];
BYTE message_id[65];
} SMPP_MSG_STORE_STRUCT;
#define MAX_GAME_LINK 1
static struct itimerval itimer,old_itimer;
static int timer_counter[MAX_GAME_LINK];
static int stateFlag[MAX_GAME_LINK];
static int msg_count[MAX_GAME_LINK];
static int msg_pointer[MAX_GAME_LINK];
static SMPP_MSG_STORE_STRUCT store_msg_buf[MAX_GAME_LINK][STORE_MSG_ITEM];
static void On_Timer();
static void SetTimer();
static void smpp_test_init();
static int smpp_onDataRecv(BYTE linkNo, SMPP_MSG *pData, WORD dataLen);
static int smpp_onLinkStateChange(BYTE linkNo, BYTE linkstate);
BYTE hae_isdn_ston(BYTE *normal_isdn,BYTE *str_isdn)
{
BYTE ii;
BYTE len;
len = strlen(str_isdn);
if (len > ISDN_LEN*2-2)
return 0;
if ((len % 2) == 1) // odd number
{
AsciiToBcd(normal_isdn+1,str_isdn,len-1);
ii = len/2 + 1;
normal_isdn[ii] = (str_isdn[len-1] - '0') << 4;
normal_isdn[ii] |= 0x0E;
}
else
{
AsciiToBcd(normal_isdn+1,str_isdn,len);
ii = len/2;
}
memset(normal_isdn+ii+1,0xEE,ISDN_LEN-ii-1);
normal_isdn[0] = 0x91; // default value
return 1;
}
void hae_isdn_ntos(BYTE *str_isdn,BYTE *normal_isdn)
{
BYTE len = 0;
BYTE ii,jj;
for (ii = 1;ii < ISDN_LEN;ii ++)
{
jj = (normal_isdn[ii] >> 4) & 0x0f;
if (jj > 0x0c)
break;
str_isdn[len++] = jj + '0';
jj = normal_isdn[ii] & 0x0f;
if (jj > 0x0c)
break;
str_isdn[len++] = jj + '0';
}
str_isdn[len] = '\0';
}
int register_link()
{
BYTE ret;
if( gg.link == MAX_SMPP_LINK+1 )
{
ret = smpp_registerLink(SMPP_CLIENT, BIND_TRX, gg.wxc2_hlr_number, TRANSACTION);
if ((ret&0x80) == 0x80)
{
gg.link = ret&0x7f;
printf("Get link for GuessGame EAE .link:%d", gg.link);
smpp_attach_link(gg.link, smpp_onDataRecv, smpp_onLinkStateChange);
return 1;
}
}
else
{
smpp_attach_link(gg.link, smpp_onDataRecv, smpp_onLinkStateChange);
return 1;
}
return 0;
}
void smpp_test_init(int flag)
{
int i;
FILE *fp;
char line[32];
BYTE temp_isdn[ISDN_LEN+1];
BYTE temp_msisdn[65];
char test_file[] = "./conf/guess_number_test.conf";
gg.link_enable = 0;
gg.link = MAX_SMPP_LINK+1;
for (i=0; i<MAX_GAME_LINK; i++)
{
memset(store_msg_buf[i], 0, sizeof(SMPP_MSG_STORE_STRUCT)*STORE_MSG_ITEM);
msg_pointer[i] = 0;
}
strcpy(gg.wxc2_hlr_number, "86755001");
register_link();
if( flag )
{
fp = fopen( test_file , "r");
if( fp == NULL )
{
printf("Open %s file fail!\n", test_file );
}
while ( !feof ( fp ) )
{
if( fgets ( line, 256, fp ) == NULL )
{
break;
}
for( i = 16 ; i > 6 ; i -- )
{
if( line[i] == ' ' || line[i] == '\t' || line[i] == '\r' || line[i] == '\n')
{
continue;
}
else if( isdigit( line[i] ) )
{
break;
}
}
if( i < 16 && i > 6 )
{
line[i+1] = '\0';
}
line[16] = '\0';
for( i = 0 ; i < MAX_GAME_SESSION ; i ++ )
{
if( !ssm_data[i].flag )
{
ssm_data[i].flag = 1;
ssm_data[i].ssm_state =6;
printf("read msisdn :%s\n",line);
strcpy ( temp_msisdn, line );
hae_isdn_ston ( temp_isdn, temp_msisdn );
memcpy( ssm_data[i].msisdn , temp_isdn , ISDN_LEN);
break;
}
}
}
}
}
int main(int argc,char *argv[])
{
int i;
char ret;
heartbeat_init(0xFFFF);
debug_init();
iptrMainInit();
snmp_init(SMPP_PORT);
mtp_shm_init();
sccp_init();
smpp_init_new();
while ((ret = getopt(argc,argv,"n")) != -1)
{
switch (ret)
{
case 'n':
printf("\n\n\nNetwork initial ussd to ms\n\n\n");
smpp_test_init(1);
break;
default:
smpp_test_init(0);
break;
}
}
for (i=0; i<MAX_GAME_LINK; i++)
{
stateFlag[i] = FALSE;
timer_counter[i]= 0;
msg_count[i] = 0;
}
opterr = 0;
SetTimer();
while(1)
{
usleep(50);
}
return 1;
}
void ChatFsm();
static int call_flag = 0;
void On_Timer()
{
int i;
for (i=0; i<MAX_GAME_LINK; i++)
{ // 2 msgs per second
if (timer_counter[i]==25)
timer_counter[i]=0;
if ((timer_counter[i]%25)==0)
{
if( (call_flag++)%2 == 0 )
{
ChatFsm();
}
}
timer_counter[i]++;
if (msg_count[i] == SD_PKT_NUM)
{
smpp_close(i);
}
}
iptrans_timer();
debug_rt();
snmp_timer();
mtp3_proc();
heartbeat_timer();
sccp_timer();
smpp_fsm_new();
}
void SetTimer()
{
struct sigaction act;
act.sa_handler=On_Timer;
sigemptyset(&act.sa_mask);
act.sa_flags=0;
if(sigaction(SIGALRM,&act,NULL)<0)
{
perror("Produce Sigaction");
exit(1);
}
itimer.it_interval.tv_sec=0;
itimer.it_interval.tv_usec=20*1000;
itimer.it_value.tv_sec=0;
itimer.it_value.tv_usec=20*1000;
if (setitimer(ITIMER_REAL,&itimer,&old_itimer) !=0 )
{
printf("Setting Timer error! \n");
exit(1);
}
}
int smpp_onDataRecv(BYTE linkNo, SMPP_MSG *pMsg, WORD dataLen)
{
int sequence_number=100;
SMPP_MSG smpp_msg;
int i;
BYTE temp_isdn[ISDN_LEN+1];
BYTE temp_msisdn[65];
struct PPPChatSession *ssm_ptr;
switch (pMsg->message_type)
{
case 0x0C: /* SUBMIT SM RESP */
printf("[TEST PROGRAM]Link %d received SUBMIT SM RESP.\n", linkNo);
break;
case 0x0F: /* DELIVER SM */
printf("[TEST PROGRAM]Link %d received DELIVER SM. op:%d \n", linkNo , pMsg->pdu.deliver_sm.ussd_service_op);
switch( pMsg->pdu.deliver_sm.ussd_service_op )
{
case PSSRR:
smpp_send_ascout("\33[32mPPP Chat Recv PSSRR\33[0m\n");
if( pMsg->pdu.deliver_sm.user_message_reference >= MAX_GAME_SESSION )
{
smpp_send_ascout("\33[32mThe session id is too large!\33[0m\n");
return -1;
}
for( i = 0 ; i < MAX_GAME_SESSION ; i ++ )
{
if( pMsg->pdu.deliver_sm.user_message_reference == ssm_data[i].sid || pMsg->pdu.deliver_sm.user_message_reference == ssm_data[i].link_sid )
{
if( ssm_data[i].flag == 1)
{
smpp_send_ascout("\33[32mThe session id is in used!\33[0m\n");
return -1;
}
ssm_data[i].flag = 1;
ssm_data[i].ssm_state =1;
strcpy ( temp_msisdn, pMsg->pdu.submit_sm.source_addr );
hae_isdn_ston ( temp_isdn, temp_msisdn );
memcpy( ssm_data[i].msisdn , temp_isdn , ISDN_LEN);
if( pMsg->pdu.deliver_sm.short_message_len <= ISDN*2 )
{
memcpy( ssm_data[i].mt_msisdn , pMsg->pdu.deliver_sm.short_message , pMsg->pdu.deliver_sm.short_message_len );
}
break;
}
}
break;
case USSRC:
ssm_ptr = &ssm_data[pMsg->pdu.deliver_sm.user_message_reference];
ssm_ptr->us_prm = US_USSRC;
smpp_send_ascout("\33[32mGuess Game Recv USSRC\33[0m\n");
if( pMsg->pdu.deliver_sm.sm_length == 4 )
{
memcpy( &ssm_ptr->input , &pMsg->pdu.deliver_sm.short_message ,4);
ssm_ptr->input[0] -= '0';
ssm_ptr->input[1] -= '0';
ssm_ptr->input[2] -= '0';
ssm_ptr->input[3] -= '0';
}
strcpy( ssm_ptr->shmsg , pMsg->pdu.deliver_sm.short_message );
ssm_ptr->shmsg[pMsg->pdu.deliver_sm.sm_length] = '\0';
break;
case USSNC:
ssm_ptr->us_prm = US_USSNC;
smpp_send_ascout("\33[32mGuess Game Recv USSNC\33[0m\n");
break;
default:
break;
}
/* fill with DELIVER SM RESP structure. */
smpp_msg.message_type = 0x10;
smpp_msg.pdu.deliver_sm_resp.head.command_status = htonl(ESME_ROK);
smpp_msg.pdu.deliver_sm_resp.head.sequence_number = pMsg->pdu.deliver_sm.head.sequence_number;
smpp_msg.pdu.deliver_sm_resp.message_id = 0x0;
smpp_send(linkNo, &smpp_msg, dataLen);
smpp_send_ascout("Send deliver_sm_resp\n");
call_flag = 0;
break;
}
return sequence_number;
}
int smpp_onLinkStateChange(BYTE linkNo, BYTE linkstate)
{
printf("[TEST PROGRAM]link %d state change to %d\n",linkNo, linkstate);
if (linkstate == 1)
gg.link_enable = 1;
else
gg.link_enable = 0;
return linkNo;
}
void SendMsgToSMPP(int sid , BYTE* msg , BYTE ussd_op)
{
SMPP_MSG pMsg;
int data_len;
PDU_SUBMIT_SM *submit_sm;
struct PPPChatSession *ssm_ptr;
if( sid >= MAX_GAME_SESSION )
{
ssm_ptr = &ssm_data[sid - MAX_GAME_SESSION];
}
else
{
ssm_ptr = &ssm_data[sid];
}
memset( &pMsg , 0 , sizeof(SMPP_MSG));
submit_sm = &pMsg.pdu.submit_sm;
pMsg.message_type = 0x0B;
pMsg.optional_param_flag1 = 0x08000001;
if( sid < MAX_GAME_SESSION )
submit_sm->user_message_reference = sid;
else
submit_sm->user_message_reference = 0xFFFF;
submit_sm->ussd_service_op = ussd_op;
strcpy( submit_sm->service_type , "USSD" );
hae_isdn_ntos( submit_sm->destination_addr , ssm_ptr->msisdn );
submit_sm->sm_length = strlen( msg );
strcpy( submit_sm->short_message , msg );
smpp_send( gg.link , &pMsg , data_len );
}
void ChatFsm()
{
int rt;
int i;
char temp_str[1024];
struct PPPChatSession *ssm_ptr;
if( !gg.link_enable && !register_link() )
{
smpp_send_ascout("Try to connect to WXC2 HLR fail\n");
printf("Try to connect to WXC2 HLR fail\n");
return;
}
//sprintf(debugBuf,);
//smpp_send_ascout("The session id is in used!\n");
for( i = 0 ;i < MAX_GAME_SESSION ; i++)
{
ssm_ptr = &ssm_data[i];
if( ssm_ptr->flag == 0 )
{
continue;
}
switch( ssm_ptr->ssm_state )
{
case 0:
continue;
case 1:
sprintf(temp_str, "\33[32mPPP Chat recv PSSR MO:%s MT:%s \nFsm state :% d sid : %d\33[0m\n"
, ssm_ptr->ssm_state , i , ssm_data[i].msisdn , ssm_data[i].mt_msisdn );
smpp_send_ascout(temp_str);
sprintf( ssm_ptr->shmsg ," Mobile Phone request to chat with you: 1 : Accept ;\n2 : Reject:\n ");
SendMsgToSMPP( i ,ssm_ptr->shmsg , USSRR );
sprintf(temp_str , "\n\n\33[32mSend Game Info :\n%s\33[0m\n\n" , ssm_ptr->shmsg );
smpp_send_ascout(temp_str);
ssm_ptr->ssm_state = 2;
break;
case 2:
switch( ssm_ptr->us_prm )
{
case US_IDLE:
break;
case US_RELER:
break;
case US_USSRC:
sprintf(temp_str, "\33[32mGame Fsm state :% d sid : %d\33[0m\n" , ssm_ptr->ssm_state , i);
smpp_send_ascout(temp_str);
if( strlen(ssm_ptr->shmsg) != 4 )
{
sprintf(temp_str, "\33[32mThe input string length is not 4.\33[0m\n");
smpp_send_ascout(temp_str);
return;
}
if( !CheckInput( ssm_ptr->input ) )
{
sprintf( ssm_ptr->shmsg ,"Input is Error! Please input four difference numbers.\n");
SendMsgToSMPP( i ,ssm_ptr->shmsg , USSRR );
}
rt = GuessNumber( ssm_ptr->input , ssm_ptr->seed ) & 0xFF ;
ssm_ptr->count ++;
if( ssm_ptr->count >= 8 )
{
sprintf ( ssm_ptr->shmsg ,"Game Over!\n");
sprintf ( temp_str , "NO%d:%d%d%d%d ",ssm_ptr->count , ssm_ptr->input[0],ssm_ptr->input[1],ssm_ptr->input[2],ssm_ptr->input[3]);
strcat ( ssm_ptr->history , temp_str );
sprintf ( temp_str , "->%dA%dB\n" , rt>>4 , rt&0x0F);
strcat ( ssm_ptr->history , temp_str );
//strcat ( ssm_ptr->shmsg , ssm_ptr->history );
SendMsgToSMPP( i ,ssm_ptr->shmsg , USSNR );
sprintf(temp_str , "\n\n\33[32mSend Game Info :\n%s\33[0m\n\n" , ssm_ptr->shmsg );
smpp_send_ascout(temp_str);
ssm_ptr->ssm_state = 3;
ssm_ptr->us_prm = US_IDLE;
return ;
}
sprintf( temp_str , "NO%d:%d%d%d%d ",ssm_ptr->count , ssm_ptr->input[0],ssm_ptr->input[1],ssm_ptr->input[2],ssm_ptr->input[3]);
if( rt != 0x40 )
{
strcat ( ssm_ptr->history , temp_str );
sprintf( temp_str , "->%dA%dB\n" , rt>>4 , rt&0x0F);
strcat ( ssm_ptr->history , temp_str );
strcpy ( ssm_ptr->shmsg , ssm_ptr->history );
SendMsgToSMPP( i ,ssm_ptr->shmsg , USSRR );
sprintf(temp_str , "\n\n\33[32mSend Game Info :\n%s\33[0m\n\n" , ssm_ptr->shmsg );
smpp_send_ascout(temp_str);
ssm_ptr->us_prm = US_IDLE;
}
else
{
strcat ( ssm_ptr->history , temp_str );
sprintf( temp_str , "->%dA%dB\n" , rt>>4 , rt&0x0F);
strcat ( ssm_ptr->history , temp_str );
strcpy ( ssm_ptr->shmsg , ssm_ptr->history );
SendMsgToSMPP( i ,ssm_ptr->shmsg , USSNR );
sprintf(temp_str , "\n\n\33[32mSend Game Info :\n%s\33[0m\n\n" , ssm_ptr->shmsg );
smpp_send_ascout(temp_str);
ssm_ptr->ssm_state = 3;
ssm_ptr->us_prm = US_IDLE;
}
break;
}
break;
case 3:
if( ssm_ptr->us_prm == US_USSNC )
{
switch( ssm_ptr->count )
{
case 1:
sprintf ( ssm_ptr->shmsg ," So Luck!\n");
break;
case 2:
sprintf ( ssm_ptr->shmsg ," Luck\n");
break;
case 3:
sprintf ( ssm_ptr->shmsg ," Perfect\n");
break;
case 4:
sprintf ( ssm_ptr->shmsg ," Very Good\n");
break;
case 5:
sprintf ( ssm_ptr->shmsg ," Good\n");
break;
case 6:
case 7:
case 8:
sprintf ( ssm_ptr->shmsg ," Correct\n");
break;
default:
strcpy ( ssm_ptr->shmsg , ssm_ptr->history );
SendMsgToSMPP( i ,ssm_ptr->shmsg , USSNR );
sprintf(temp_str , "\n\n\33[32mSend Game Info :\n%s\33[0m\n\n" , ssm_ptr->shmsg );
smpp_send_ascout(temp_str);
ssm_ptr->ssm_state = 4;
return;
break;
}
SendMsgToSMPP( i ,ssm_ptr->shmsg , USSNR );
sprintf(temp_str , "\n\n\33[32mSend Game Info :\n%s\33[0m\n\n" , ssm_ptr->shmsg );
smpp_send_ascout(temp_str);
ssm_ptr->ssm_state = 4;
}
case 4:
if( ssm_ptr->us_prm == US_USSNC )
{
sprintf(temp_str, "\33[32mGame Fsm state :% d sid : %d\33[0m\n" , ssm_ptr->ssm_state , i);
smpp_send_ascout(temp_str);
sprintf( ssm_ptr->shmsg ," Guess Number\n1 . Restart game \n 2 . exit\n");
SendMsgToSMPP( i ,ssm_ptr->shmsg , USSRR );
ssm_ptr->ssm_state = 5;
sprintf(temp_str , "\n\n\33[32mSend Game Info :\n%s\33[0m\n\n" , ssm_ptr->shmsg );
smpp_send_ascout(temp_str);
}
break;
case 5:
if( ssm_ptr->us_prm == US_USSNC )
{
if( ssm_ptr->shmsg[0] == '1' )
{
if( !RandomNum( ssm_ptr->seed ) )
{
//"Create random number fail"
return;
}
sprintf( ssm_ptr->shmsg ," Game Restart.input four difference numbers: \n");
SendMsgToSMPP( i ,ssm_ptr->shmsg , USSRR );
ssm_ptr->ssm_state = 2;
}
else if( ssm_ptr->shmsg[0] == '2' )
{
sprintf( ssm_ptr->shmsg ," Game Exit.GoodBye! Wellcome to use WXC2 system!\n");
SendMsgToSMPP( i ,ssm_ptr->shmsg , USSNR );
ssm_ptr->ssm_state = 0;
ssm_ptr->flag = 0;
}
else
{
sprintf( ssm_ptr->shmsg ," Unexpeced menu selection!\n");
SendMsgToSMPP( i ,ssm_ptr->shmsg , USSNR );
}
sprintf(temp_str , "\n\n\33[32mSend Game Info :\n%s\33[0m\n\n" , ssm_ptr->shmsg );
smpp_send_ascout(temp_str);
}
break;
case 6:
if( gg.link_enable )
{
sprintf(temp_str, "\33[32mGame Fsm state :% d sid : %d\33[0m\n" , ssm_ptr->ssm_state , i);
smpp_send_ascout(temp_str);
if( !RandomNum( ssm_ptr->seed ) )
{
//"Create random number fail"
return;
}
sprintf( ssm_ptr->shmsg ," WellCome to WXC2 Online Guess Number Game System!\n Please input you guess nubmer:\n");
SendMsgToSMPP( i+MAX_GAME_SESSION ,ssm_ptr->shmsg , USSRR );
sprintf(temp_str , "\n\n\33[32mSend Game Info :\n%s\33[0m\n\n" , ssm_ptr->shmsg );
smpp_send_ascout(temp_str);
ssm_ptr->ssm_state = 2;
}
break;
}
}
}