5069 lines
168 KiB
C
5069 lines
168 KiB
C
/*************************************************
|
|
File name: command.c
|
|
Author:
|
|
Version: 9:00:00
|
|
Date: 2007-8-4
|
|
Description:该文件定义了命令的参数在数据库里的值与输入输出的值的相互转换模式
|
|
|
|
|
|
|
|
|
|
|
|
History:
|
|
No.
|
|
Author:
|
|
Date:
|
|
Version:
|
|
Description:
|
|
*************************************************/
|
|
#include "smcli.h"
|
|
|
|
/* by simon at 23/9/26 */
|
|
extern CmdBuf *cmdBuf;
|
|
extern int OptNo_index;
|
|
|
|
//hlr exchange mode define
|
|
#define exM_hlrImsi 1
|
|
#define exM_hlrMsisdn 2
|
|
#define exM_hlrCcNdcSn 3
|
|
#define exM_hlrState 4
|
|
#define exM_hlrNam 5
|
|
#define exM_hlrClirpm 6
|
|
#define exM_hlrCfuopt 7
|
|
#define exM_hlrCfbopt 8
|
|
#define exM_hlrCfnryopt 9
|
|
#define exM_hlrCfnryTimer 10
|
|
#define exM_hlrCfnrcopt 11
|
|
#define exM_hlrSms 12
|
|
#define exM_hlrCategory 13
|
|
#define exM_hlrRszi 14
|
|
#define exM_hlrCsrr 15
|
|
#define exM_hlrCbsp 16
|
|
#define exM_hlrCbwpa 17
|
|
#define exM_hlrOCsi1 21
|
|
#define exM_hlrOCsi2 22
|
|
#define exM_hlrOCsi3 23
|
|
#define exM_hlrOCsi4 24
|
|
#define exM_hlrOCsi5 25
|
|
#define exM_hlrOCsi6 26
|
|
#define exM_hlrOCsi7 27
|
|
#define exM_hlrOCsi8 28
|
|
#define exM_hlrOCsi9 29
|
|
#define exM_hlrOCsi10 30
|
|
#define exM_hlrOCsi11 31
|
|
#define exM_hlrOCsi12 32
|
|
#define exM_hlrOCsi13 33
|
|
#define exM_hlrOCsi14 34
|
|
#define exM_hlrOCsi15 35
|
|
#define exM_hlrOCsi16 36
|
|
#define exM_hlrOCsi17 37
|
|
#define exM_hlrOCsi18 38
|
|
#define exM_hlrSsCsi 41
|
|
#define exM_hlrSsCsi1 42
|
|
#define exM_hlrPdp1 43
|
|
#define exM_hlrPdp2 44
|
|
#define exM_hlrPdp3 45
|
|
#define exM_hlrPdp4 46
|
|
#define exM_hlrPdp5 47
|
|
#define exM_hlrPdp6 48
|
|
#define exM_hlrPdp7 49
|
|
#define exM_hlrPdp8 50
|
|
#define exM_hlrPdp9 51
|
|
#define exM_hlrPdp10 52
|
|
#define exM_hlrPdp11 53
|
|
#define exM_hlrPdp12 54
|
|
#define exM_hlrPdp13 55
|
|
#define exM_hlrPdp14 56
|
|
#define exM_hlrPdp15 57
|
|
#define exM_hlrPdp16 58
|
|
#define exM_hlrPdp17 59
|
|
#define exM_hlrPdp18 60
|
|
#define exM_hlrPdp19 61
|
|
#define exM_hlrPdp20 62
|
|
#define exM_hlrPdp21 63
|
|
#define exM_hlrPdp22 64
|
|
#define exM_hlrPdp23 65
|
|
#define exM_hlrPdp24 66
|
|
#define exM_hlrPdp25 67
|
|
#define exM_hlrPdp26 68
|
|
#define exM_hlrPdp27 69
|
|
#define exM_hlrPdp28 70
|
|
#define exM_hlrPdp29 71
|
|
#define exM_hlrPdp30 72
|
|
#define exM_hlrPdp31 73
|
|
#define exM_hlrPdp32 74
|
|
#define exM_hlrPdp33 75
|
|
#define exM_hlrPdp34 76
|
|
#define exM_hlrPdp35 77
|
|
#define exM_hlrUserNo 78
|
|
|
|
#define optNo_Rszi 31
|
|
#define optNo_Sscsi 156
|
|
|
|
//pps exchange mode define
|
|
#define exM_ppsDate 1
|
|
#define exM_ppsRentType 2
|
|
#define exM_ppsCallType 3
|
|
#define exM_ppsSM 4
|
|
#define exM_ppsBalance 5
|
|
#define exM_ppsCardStatus 6
|
|
#define exM_ppsPoolAccountType 30
|
|
#define exM_ppsFFPlanState 31
|
|
|
|
//vms exchange mode define
|
|
#define exM_vmsHexDec 1 //20041101
|
|
#define exM_vmsGreetingType 2 //20041101
|
|
#define exM_vmsMailboxId 3 //20041101
|
|
|
|
//mnp exchange mode define
|
|
#define exM_mnpStatus 1
|
|
#define exM_mnpDate 2
|
|
|
|
//imdm exchange mode define
|
|
#define exM_imdmMsisdn 1
|
|
#define exM_imdmImei 2
|
|
#define exM_imdmImsi 3
|
|
#define exM_imdmOprFlag 4
|
|
#define exM_imdmClass 5
|
|
#define exM_imdmUserType 6
|
|
//#define exM_imdmType 5
|
|
//#define exM_imdmStatus 6
|
|
|
|
//ipalim exchange mode define
|
|
#define exM_ipalimImsi 1
|
|
#define exM_ipalimMsisdn 2
|
|
#define exM_ipalimMsisdnExtern 3
|
|
#define exM_ipalimTmsi 4
|
|
#define exM_ipalimLai 5
|
|
#define exM_ipalimType 6
|
|
|
|
//auc exchange mode define
|
|
#define exM_aucImsi 1
|
|
|
|
/*
|
|
CmdBuf defCmdBuf[CmdBufSize] = {
|
|
|
|
{1, "omc", "account", "172.18.128.1",
|
|
0, 0, 0, 0, "OMC_PUB.sysUser", "", "", "",
|
|
{2, 2, 2, 2, 9, 2, 9, 9, 9}
|
|
, 12,
|
|
{
|
|
//{{0,1,2,3,4,5,6,7,9}, 0=mandatory,1~8=privilege1.........privilege8,9=nouse
|
|
//{{0,re,mo,cr,de,co,ex,im,di}
|
|
//,"optName","exMode","fieldName","initFieldValue","optValue","fieldValue"
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, "", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, "", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 1, 9, 9}
|
|
, "expfile", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 1, 9, 9}
|
|
, "query", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 1, 9, 9}
|
|
, "fields", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 1, 9, 9}
|
|
, "max", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, "", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, "", 0, "", "", "", ""}
|
|
,
|
|
{{0, 0, 0, 0, 0, 9, 9, 9, 9}
|
|
, "account_name", 9 * 10000000 + 1 * 100000 + 16 * 1000 + 0,
|
|
"userName", "", "", ""}
|
|
,
|
|
{{0, 9, 2, 0, 9, 9, 9, 9, 9}
|
|
, "password", 9 * 10000000 + 6 * 100000 + 16 * 1000 + 0, "password",
|
|
"", "", ""}
|
|
,
|
|
{{0, 1, 2, 0, 9, 9, 9, 9, 9}
|
|
, "real_name", 9 * 10000000 + 1 * 100000 + 16 * 1000 + 0,
|
|
"realName", "", "", ""}
|
|
,
|
|
{{0, 1, 2, 0, 9, 9, 9, 9, 9}
|
|
, "privilege", 0 * 10000000 + 1 * 100000 + 1 * 1000 + 0,
|
|
"privilege", "", "", ""}
|
|
}
|
|
}
|
|
,
|
|
|
|
{0, "hlr", "subscriber", "172.18.98.1",
|
|
330, 0, 0, 0, "HLR_DB.subscriberData", "OBJ_330.tmpSubsData_0", "",
|
|
"",
|
|
{1, 2, 2, 2, 1, 1, 2, 1, 9}
|
|
, 216,
|
|
{
|
|
//{{0,1,2,3,4,5,6,7,9}, 0=mandatory,1~8=privilege1.........privilege8,9=nouse
|
|
//{{0,re,mo,cr,de,co,ex,im,di}
|
|
//,"optName","exMode","fieldName","initFieldValue","optValue","fieldValue"
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, "ipaddress", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 0, 9, 9, 9}
|
|
, "passwd", 0, "", "123456", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 1, 9, 9}
|
|
, "expfile", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 1, 9, 9}
|
|
, "query", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 1, 9, 9}
|
|
, "fields", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 1, 9, 9}
|
|
, "max", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 9, 0, 9}
|
|
, "impfile", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 1, 9, 9, 9}
|
|
, "srvip", 0, "", "", "", ""}
|
|
,
|
|
{{0, 0, 0, 0, 0, 9, 9, 9, 9}
|
|
, "imsi", 0 * 10000000 + 15 * 100000 + 16 * 1000 + exM_hlrImsi,
|
|
"imsi", "0000000000000000", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "imsi_flag", exM_hlrState, "used_flag", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "nam", exM_hlrNam, "nam", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 0, 2, 9, 9, 9, 9}
|
|
, "msisdn", 0 * 10000000 + 6 * 100000 + 16 * 1000 + exM_hlrCcNdcSn,
|
|
"inter_msisdn",
|
|
"EEEEEEEEEEEEEEEEEE", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "category", exM_hlrCategory, "category", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "odb", exM_hlrState, "sub_status", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "baoc", exM_byte0_bit0, "odb_general", "00000000", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "boic", exM_byte0_bit1, "odb_general", "00000000", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "boic_hplmn", exM_byte0_bit2, "odb_general", "00000000", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "bpric", exM_byte0_bit3, "odb_general", "00000000", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "bprec", exM_byte0_bit4, "odb_general", "00000000", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "bass", exM_byte0_bit5, "odb_general", "00000000", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "osb1", exM_byte0_bit0, "odb_specific", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "osb2", exM_byte0_bit1, "odb_specific", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "baic", exM_byte2_bit0, "odb_general", "00000000", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "baic_hplmn", exM_byte2_bit1, "odb_general", "00000000", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "roaming", exM_byte2_bit3, "odb_general", "00000000", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "roaming_ct", exM_byte2_bit4, "odb_general", "00000000", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "mct", exM_byte0_bit2, "odb_specific", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "bearer_service", 1 * 10000000 + 8 * 100000 + 8 * 1000 + 0,
|
|
"bearer_data", "07FFFFFF", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "telephony", exM_byte0_bit0, "tele_data", "0F00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "emergency_call", exM_byte0_bit1, "tele_data", "0F00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "sms", exM_hlrSms, "tele_data", "0F00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "rszi0", 4 * 10000000 + 1 * 100000 + 2 * 1000 + exM_hlrRszi,
|
|
"rszi", "FFFFFFFFFFFFFFFFFFFF",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "rszi1", 4 * 10000000 + 1 * 100000 + 2 * 1000 + exM_hlrRszi,
|
|
"rszi", "FFFFFFFFFFFFFFFFFFFF",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "rszi2", 4 * 10000000 + 1 * 100000 + 2 * 1000 + exM_hlrRszi,
|
|
"rszi", "FFFFFFFFFFFFFFFFFFFF",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "rszi3", 4 * 10000000 + 1 * 100000 + 2 * 1000 + exM_hlrRszi,
|
|
"rszi", "FFFFFFFFFFFFFFFFFFFF",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "rszi4", 4 * 10000000 + 1 * 100000 + 2 * 1000 + exM_hlrRszi,
|
|
"rszi", "FFFFFFFFFFFFFFFFFFFF",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "rszi5", 4 * 10000000 + 1 * 100000 + 2 * 1000 + exM_hlrRszi,
|
|
"rszi", "FFFFFFFFFFFFFFFFFFFF",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "rszi6", 4 * 10000000 + 1 * 100000 + 2 * 1000 + exM_hlrRszi,
|
|
"rszi", "FFFFFFFFFFFFFFFFFFFF",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "rszi7", 4 * 10000000 + 1 * 100000 + 2 * 1000 + exM_hlrRszi,
|
|
"rszi", "FFFFFFFFFFFFFFFFFFFF",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "rszi8", 4 * 10000000 + 1 * 100000 + 2 * 1000 + exM_hlrRszi,
|
|
"rszi", "FFFFFFFFFFFFFFFFFFFF",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "rszi9", 4 * 10000000 + 1 * 100000 + 2 * 1000 + exM_hlrRszi,
|
|
"rszi", "FFFFFFFFFFFFFFFFFFFF",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "csrr", exM_hlrCsrr, "csr_type", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "clip_a", exM_byte0_bit0, "clip_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "clip_r", exM_byte0_bit1, "clip_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "clip_p", exM_byte0_bit2, "clip_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "clip_q", exM_byte0_bit3, "clip_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "clip_o", exM_byte0_bit7, "clip_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "clir_a", exM_byte0_bit0, "clir_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "clir_r", exM_byte0_bit1, "clir_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "clir_p", exM_byte0_bit2, "clir_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "clir_q", exM_byte0_bit3, "clir_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "clir_pm", exM_hlrClirpm, "clir_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "colp_a", exM_byte0_bit0, "colp_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "colp_r", exM_byte0_bit1, "colp_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "colp_p", exM_byte0_bit2, "colp_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "colp_q", exM_byte0_bit3, "colp_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "colp_o", exM_byte0_bit7, "colp_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "colr_a", exM_byte0_bit0, "colr_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "colr_r", exM_byte0_bit1, "colr_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "colr_p", exM_byte0_bit2, "colr_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "colr_q", exM_byte0_bit3, "colr_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "cbsp", exM_hlrCbsp, "subs_option", "01", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "cbp", 0 * 10000000 + 4 * 100000 + 4 * 1000 + 0, "passwd", "12",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "cbwpa", 4 * 10000000 + 1 * 100000 + 2 * 1000 + exM_hlrCbwpa,
|
|
"attempt_count", "03", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "baoc_a", exM_byte0_bit0, "baoc_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "baoc_r", exM_byte0_bit1, "baoc_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "baoc_p", exM_byte0_bit2, "baoc_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "baoc_q", exM_byte0_bit3, "baoc_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "boic_a", exM_byte0_bit0, "boic_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "boic_r", exM_byte0_bit1, "boic_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "boic_p", exM_byte0_bit2, "boic_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "boic_q", exM_byte0_bit3, "boic_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "boic_ex_a", exM_byte0_bit0, "boichc_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "boic_ex_r", exM_byte0_bit1, "boichc_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "boic_ex_p", exM_byte0_bit2, "boichc_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "boic_ex_q", exM_byte0_bit3, "boichc_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "baic_a", exM_byte0_bit0, "baic_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "baic_r", exM_byte0_bit1, "baic_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "baic_p", exM_byte0_bit2, "baic_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "baic_q", exM_byte0_bit3, "baic_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "bicr_a", exM_byte0_bit0, "bicroam_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "bicr_r", exM_byte0_bit1, "bicroam_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "bicr_p", exM_byte0_bit2, "bicroam_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "bicr_q", exM_byte0_bit3, "bicroam_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "cfu_a", exM_byte0_bit0, "cfu_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "cfu_r", exM_byte0_bit1, "cfu_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "cfu_p", exM_byte0_bit2, "cfu_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "cfu_q", exM_byte0_bit3, "cfu_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "cfu_c", exM_byte0_bit5, "cfu_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "cfu_no", 0 * 10000000 + 0 * 100000 + 16 * 1000 + exM_hlrMsisdn,
|
|
"cfu_num", "EEEEEEEEEEEEEEEEEE", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "cfb_a", exM_byte0_bit0, "cfb_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "cfb_r", exM_byte0_bit1, "cfb_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "cfb_p", exM_byte0_bit2, "cfb_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "cfb_q", exM_byte0_bit3, "cfb_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "cfb_c", exM_byte0_bit5, "cfb_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "cfb_f", exM_byte0_bit7, "cfb_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "cfb_no", 0 * 10000000 + 1 * 100000 + 16 * 1000 + exM_hlrMsisdn,
|
|
"cfb_num", "EEEEEEEEEEEEEEEEEE", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "cfnry_a", exM_byte0_bit0, "cfnry_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "cfnry_r", exM_byte0_bit1, "cfnry_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "cfnry_p", exM_byte0_bit2, "cfnry_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "cfnry_q", exM_byte0_bit3, "cfnry_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "cfnry_c", exM_byte0_bit5, "cfnry_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "cfnry_f", exM_byte0_bit7, "cfnry_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "cfnry_t",
|
|
0 * 10000000 + 1 * 100000 + 2 * 1000 + exM_hlrCfnryTimer,
|
|
"cfnry_time", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "cfnry_no", 0 * 10000000 + 1 * 100000 + 16 * 1000 + exM_hlrMsisdn,
|
|
"cfnry_num", "EEEEEEEEEEEEEEEEEE", "",
|
|
""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "cfnrc_a", exM_byte0_bit0, "cfnrc_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "cfnrc_r", exM_byte0_bit1, "cfnrc_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "cfnrc_p", exM_byte0_bit2, "cfnrc_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "cfnrc_q", exM_byte0_bit3, "cfnrc_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "cfnrc_c", exM_byte0_bit5, "cfnrc_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "cfnrc_no", 0 * 10000000 + 1 * 100000 + 16 * 1000 + exM_hlrMsisdn,
|
|
"cfnrc_num", "EEEEEEEEEEEEEEEEEE", "",
|
|
""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "cw_a", exM_byte0_bit0, "callwait_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "cw_r", exM_byte0_bit1, "callwait_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "cw_p", exM_byte0_bit2, "callwait_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "cw_q", exM_byte0_bit3, "callwait_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "ch_a", exM_byte0_bit0, "callhold_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "ch_r", exM_byte0_bit1, "callhold_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "ch_p", exM_byte0_bit2, "callhold_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "ch_q", exM_byte0_bit3, "callhold_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "ect_a", exM_byte0_bit0, "ect_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "ect_r", exM_byte0_bit1, "ect_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "ect_p", exM_byte0_bit2, "ect_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "ect_q", exM_byte0_bit3, "ect_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "mpc_a", exM_byte0_bit0, "mtpy_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "mpc_r", exM_byte0_bit1, "mtpy_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "mpc_p", exM_byte0_bit2, "mtpy_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "mpc_q", exM_byte0_bit3, "mtpy_state", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "camel", exM_byte0_bit7, "camel_flag", "801F", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "o_csi", exM_byte1_bit0, "camel_flag", "801F", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "t_csi", exM_byte1_bit1, "camel_flag", "801F", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "ss_csi", exM_byte1_bit2, "camel_flag", "801F", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "sms_csi", exM_byte1_bit3, "camel_flag", "801F", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "gprs_csi", exM_byte1_bit4, "camel_flag", "801F", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "o_csi_dpv", 4 * 10000000 + 1 * 100000 + 2 * 1000 + exM_hlrOCsi1,
|
|
"o_csi",
|
|
"020002918675557122010EEE00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "o_csi_sk", 4 * 10000000 + 1 * 100000 + 8 * 1000 + exM_hlrOCsi2,
|
|
"o_csi",
|
|
"020002918675557122010EEE00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "o_csi_scf_no",
|
|
0 * 10000000 + 11 * 100000 + 18 * 1000 + exM_hlrOCsi3, "o_csi",
|
|
"020002918675557122010EEE00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "o_csi_dch", exM_hlrOCsi4, "o_csi",
|
|
"020002918675557122010EEE00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "o_csi_mtf", exM_hlrOCsi5, "o_csi",
|
|
"020002918675557122010EEE00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "o_csi_mt", exM_hlrOCsi6, "o_csi",
|
|
"020002918675557122010EEE00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "o_csi_dnlf", exM_hlrOCsi7, "o_csi",
|
|
"020002918675557122010EEE00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "o_csi_d_no0",
|
|
0 * 10000000 + 11 * 100000 + 18 * 1000 + exM_hlrOCsi8, "o_csi",
|
|
"020002918675557122010EEE00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "o_csi_d_no1",
|
|
0 * 10000000 + 11 * 100000 + 18 * 1000 + exM_hlrOCsi9, "o_csi",
|
|
"020002918675557122010EEE00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "o_csi_d_no2",
|
|
0 * 10000000 + 11 * 100000 + 18 * 1000 + exM_hlrOCsi10, "o_csi",
|
|
"020002918675557122010EEE00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "o_csi_d_no3",
|
|
0 * 10000000 + 11 * 100000 + 18 * 1000 + exM_hlrOCsi11, "o_csi",
|
|
"020002918675557122010EEE00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "o_csi_dnllf", exM_hlrOCsi12, "o_csi",
|
|
"020002918675557122010EEE00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "o_csi_dnl0",
|
|
4 * 10000000 + 1 * 100000 + 2 * 1000 + exM_hlrOCsi13, "o_csi",
|
|
"020002918675557122010EEE00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "o_csi_dnl1",
|
|
4 * 10000000 + 1 * 100000 + 2 * 1000 + exM_hlrOCsi14, "o_csi",
|
|
"020002918675557122010EEE00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "o_csi_dnl2",
|
|
4 * 10000000 + 1 * 100000 + 2 * 1000 + exM_hlrOCsi15, "o_csi",
|
|
"020002918675557122010EEE00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "o_csi_ctf", exM_hlrOCsi16, "o_csi",
|
|
"020002918675557122010EEE00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "o_csi_ct", exM_hlrOCsi17, "o_csi",
|
|
"020002918675557122010EEE00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "o_csi_dc", 4 * 10000000 + 1 * 100000 + 2 * 1000 + exM_hlrOCsi18,
|
|
"o_csi",
|
|
"020002918675557122010EEE00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "t_csi_dpv", 4 * 10000000 + 1 * 100000 + 2 * 1000 + exM_hlrOCsi1,
|
|
"t_csi",
|
|
"0C0000918675557122010EEE00000000", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "t_csi_sk", 4 * 10000000 + 1 * 100000 + 8 * 1000 + exM_hlrOCsi2,
|
|
"t_csi",
|
|
"0C0000918675557122010EEE00000000", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "t_csi_scf_no",
|
|
0 * 10000000 + 11 * 100000 + 18 * 1000 + exM_hlrOCsi3, "t_csi",
|
|
"0C0000918675557122010EEE00000000", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "t_csi_dch", exM_hlrOCsi4, "t_csi",
|
|
"0C0000918675557122010EEE00000000", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "t_csi_dc", 4 * 10000000 + 1 * 100000 + 2 * 1000 + exM_hlrOCsi18,
|
|
"t_csi",
|
|
"0C0000918675557122010EEE00000000", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "ss_csi_e0", exM_hlrSsCsi, "ss_csi", "00000000918675557122010EEE",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "ss_csi_e1", exM_hlrSsCsi, "ss_csi", "00000000918675557122010EEE",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "ss_csi_e2", exM_hlrSsCsi, "ss_csi", "00000000918675557122010EEE",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "ss_csi_e3", exM_hlrSsCsi, "ss_csi", "00000000918675557122010EEE",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "ss_csi_scf_no",
|
|
4 * 10000000 + 11 * 100000 + 18 * 1000 + exM_hlrSsCsi1, "ss_csi",
|
|
"00000000918675557122010EEE", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "sms_csi_dpv",
|
|
4 * 10000000 + 1 * 100000 + 2 * 1000 + exM_hlrOCsi1, "sms_csi",
|
|
"010003918675557122010EEE00000000", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "sms_csi_sk", 4 * 10000000 + 1 * 100000 + 8 * 1000 + exM_hlrOCsi2,
|
|
"sms_csi",
|
|
"010003918675557122010EEE00000000", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "sms_csi_scf_no",
|
|
0 * 10000000 + 11 * 100000 + 18 * 1000 + exM_hlrOCsi3, "sms_csi",
|
|
"010003918675557122010EEE00000000", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "sms_csi_dch", exM_hlrOCsi4, "sms_csi",
|
|
"010003918675557122010EEE00000000", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "sms_csi_dc",
|
|
4 * 10000000 + 1 * 100000 + 2 * 1000 + exM_hlrOCsi18, "sms_csi",
|
|
"010003918675557122010EEE00000000", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "gprs_csi_dpv",
|
|
4 * 10000000 + 1 * 100000 + 2 * 1000 + exM_hlrOCsi1, "gprs_csi",
|
|
"000003EEEEEEEEEEEEEEEEEE00000000", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "gprs_csi_sk",
|
|
4 * 10000000 + 1 * 100000 + 8 * 1000 + exM_hlrOCsi2, "gprs_csi",
|
|
"000003EEEEEEEEEEEEEEEEEE00000000", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "gprs_csi_scf_no",
|
|
0 * 10000000 + 11 * 100000 + 18 * 1000 + exM_hlrOCsi3, "gprs_csi",
|
|
"000003EEEEEEEEEEEEEEEEEE00000000", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "gprs_csi_dch", exM_hlrOCsi4, "gprs_csi",
|
|
"000003EEEEEEEEEEEEEEEEEE00000000", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "gprs_csi_dc",
|
|
4 * 10000000 + 1 * 100000 + 2 * 1000 + exM_hlrOCsi18, "gprs_csi",
|
|
"000003EEEEEEEEEEEEEEEEEE00000000", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "gprs_flag", exM_hlrState, "gprs_flag", "00", "", ""}
|
|
,
|
|
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp1_flag", exM_hlrPdp1, "pdp1",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp1_type", exM_hlrPdp2, "pdp1",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
//the pdpAddress must followed the pdpType
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp1_address",
|
|
9 * 10000000 + 1 * 100000 + 39 * 1000 + exM_hlrPdp3, "pdp1",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp1_rc", exM_hlrPdp4, "pdp1",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp1_dc", exM_hlrPdp5, "pdp1",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp1_pc", exM_hlrPdp6, "pdp1",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp1_pt", exM_hlrPdp7, "pdp1",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp1_mt", exM_hlrPdp8, "pdp1",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp1_vaaf", exM_hlrPdp9, "pdp1",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp1_apn", 9 * 10000000 + 1 * 100000 + 32 * 1000 + exM_hlrPdp10,
|
|
"pdp1",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp2_flag", exM_hlrPdp1, "pdp2",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp2_type", exM_hlrPdp2, "pdp2",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp2_address",
|
|
9 * 10000000 + 1 * 100000 + 39 * 1000 + exM_hlrPdp3, "pdp2",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp2_rc", exM_hlrPdp4, "pdp2",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp2_dc", exM_hlrPdp5, "pdp2",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp2_pc", exM_hlrPdp6, "pdp2",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp2_pt", exM_hlrPdp7, "pdp2",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp2_mt", exM_hlrPdp8, "pdp2",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp2_vaaf", exM_hlrPdp9, "pdp2",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp2_apn", 9 * 10000000 + 1 * 100000 + 32 * 1000 + exM_hlrPdp10,
|
|
"pdp2",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp3_flag", exM_hlrPdp1, "pdp3",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp3_type", exM_hlrPdp2, "pdp3",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp3_address",
|
|
9 * 10000000 + 1 * 100000 + 39 * 1000 + exM_hlrPdp3, "pdp3",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp3_rc", exM_hlrPdp4, "pdp3",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp3_dc", exM_hlrPdp5, "pdp3",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp3_pc", exM_hlrPdp6, "pdp3",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp3_pt", exM_hlrPdp7, "pdp3",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp3_mt", exM_hlrPdp8, "pdp3",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp3_vaaf", exM_hlrPdp9, "pdp3",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pdp3_apn", 9 * 10000000 + 1 * 100000 + 32 * 1000 + exM_hlrPdp10,
|
|
"pdp3",
|
|
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "user_name", 9 * 10000000 + 1 * 100000 + 24 * 1000 + 0,
|
|
"user_name", "", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "user_desc", 9 * 10000000 + 1 * 100000 + 16 * 1000 + 0,
|
|
"user_remark", "", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "user_id", 9 * 10000000 + 1 * 100000 + 16 * 1000 + 0,
|
|
"user_certifiacate", "", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "user_no", 0 * 10000000 + 1 * 100000 + 16 * 1000 + exM_hlrUserNo,
|
|
"user_number", "0000000000000000", "",
|
|
""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "lmsi", 0, "lmsi", "00000000", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "vlr_no", 0, "vlr_num", "000000000000000000", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "msc_no", 0, "msc_num", "000000000000000000", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pmf_gsm", exM_byte0_bit0, "purgems_flag", "03", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "pmf_gprs", exM_byte0_bit0, "purgems_flag", "03", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "sgsn_no", 0, "sgsn_num", "000000000000000000", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "ggsn_no", 0, "ggsn_num", "000000000000000000", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "ggsn_ad", 0, "ggsn_addr", "000000000000000000", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "msc_ar", 0, "mar_flag", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "rrm", 0, "rruf_flag", "00", "", ""}
|
|
}
|
|
}
|
|
,
|
|
{0, "pps", "ppsuser", "172.18.98.1",
|
|
360, 0, 0, 0, "PPS_DB.user_info", "OBJ_360.tmpSubsData_0", "ppsParam",
|
|
"smcliPpsParam",
|
|
{1, 2, 2, 2, 1, 1, 2, 1, 2} //20041010
|
|
, 47, //20041010
|
|
{
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, "ipaddress", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 0, 9, 9, 9, 9}
|
|
, "passwd", 0, "", "123456", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 1, 9, 9, 9}
|
|
, "expfile", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 1, 9, 9, 9}
|
|
, "query", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 1, 9, 9, 9}
|
|
, "fields", 0, "", "" "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 1, 9, 9, 9}
|
|
, "max", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 9, 0, 9, 9}
|
|
, "impfile", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 1, 9, 9, 9, 9}
|
|
, "srvip", 0, "", "", "", ""}
|
|
,
|
|
{{0, 0, 0, 0, 0, 9, 9, 9, 9, 0}
|
|
, "msisdn", 0 * 10000000 + 6 * 100000 + 16 * 1000 + 0, "msisdn",
|
|
"FFFFFFFFFFFFFFFFFF", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9, 9}
|
|
, "pin", 0 * 10000000 + 6 * 100000 + 6 * 1000 + 0, "PIN", "123456",
|
|
"",
|
|
""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9, 9}
|
|
, "rent_type", exM_ppsRentType, "rent_type", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9, 9}
|
|
, "status", 0 * 10000000 + 1 * 100000 + 2 * 1000 + 0, "status",
|
|
"00", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9, 9}
|
|
, "balance", 2 * 10000000 + 7 * 100000 + 8 * 1000 + exM_ppsBalance,
|
|
"balance", "20000", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9, 9}
|
|
, "promotion_balance",
|
|
0 * 10000000 + 1 * 100000 + 6 * 1000 + exM_ppsBalance,
|
|
"promo_balance", "0", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9, 9}
|
|
, "cos_id", 4 * 10000000 + 1 * 100000 + 1 * 1000 + exM_ppsSM,
|
|
"cos_id", "0", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9, 9}
|
|
, "home_location0",
|
|
0 * 10000000 + 1 * 100000 + 2 * 1000 + exM_ppsSM, "home_location0",
|
|
"0", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9, 9}
|
|
, "home_location1",
|
|
0 * 10000000 + 1 * 100000 + 2 * 1000 + exM_ppsSM, "home_location1",
|
|
"1", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9, 9}
|
|
, "home_location2",
|
|
0 * 10000000 + 1 * 100000 + 2 * 1000 + exM_ppsSM, "home_location2",
|
|
"2", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9, 9}
|
|
, "home_location3",
|
|
0 * 10000000 + 1 * 100000 + 2 * 1000 + exM_ppsSM, "home_location3",
|
|
"3", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9, 9}
|
|
, "recharge_failed_times",
|
|
4 * 10000000 + 1 * 100000 + 2 * 1000 + exM_ppsSM,
|
|
"recharge_fail_counter", "0",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9, 9}
|
|
, "overdraft",
|
|
2 * 10000000 + 7 * 100000 + 6 * 1000 + exM_ppsBalance, "overdraft",
|
|
"0", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9, 9}
|
|
, "access_day", 0 * 10000000 + 8 * 100000 + 8 * 1000 + exM_ppsDate,
|
|
"access_date", "20040201000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9, 9}
|
|
, "mo_expiry_date",
|
|
0 * 10000000 + 8 * 100000 + 8 * 1000 + exM_ppsDate,
|
|
"mo_expiration_date",
|
|
"20060701000000 ", "",
|
|
""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9, 9}
|
|
, "mt_expiry_date",
|
|
0 * 10000000 + 8 * 100000 + 8 * 1000 + exM_ppsDate,
|
|
"mt_expiration_date",
|
|
"20060701000000 ", "",
|
|
""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9, 9}
|
|
, "promotion_date",
|
|
0 * 10000000 + 8 * 100000 + 8 * 1000 + exM_ppsDate,
|
|
"promo_exp_date",
|
|
"20060701000000 ", "",
|
|
""}
|
|
,
|
|
// {{0, 1, 2, 2, 9, 9, 9, 9, 9,9}
|
|
// , "mo_tariff_id", 0, "mo_tariff_id", "00", "", ""}
|
|
// ,
|
|
// {{0, 1, 2, 2, 9, 9, 9, 9, 9,9}
|
|
// , "mt_tariff_id", 0, "mt_tariff_id", "00", "", ""}
|
|
// ,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9, 9}
|
|
, "close_user_group_id", 4 * 10000000 + 1 * 100000 + 4 * 1000 + 0,
|
|
"cug_id", "0", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9, 9}
|
|
, "sm_inquiry_counter",
|
|
4 * 10000000 + 1 * 100000 + 2 * 1000 + exM_ppsSM,
|
|
"sm_inquiry_counter", "0", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9, 9}
|
|
, "prompt_language", 0 * 10000000 + 1 * 100000 + 1 * 1000 + 0,
|
|
"language_type", "0", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9, 9}
|
|
, "favorite_no_flag", 0 * 10000000 + 1 * 100000 + 2 * 1000 + 0,
|
|
"fav_numbers", "0", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9, 9}
|
|
, "favorite_no0", 0 * 10000000 + 0 * 100000 + 16 * 1000 + 0,
|
|
"favorite_number0", "", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9, 9}
|
|
, "favorite_no1", 0 * 10000000 + 0 * 100000 + 16 * 1000 + 0,
|
|
"favorite_number1", "", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9, 9}
|
|
, "favorite_no2", 0 * 10000000 + 0 * 100000 + 16 * 1000 + 0,
|
|
"favorite_number2", "", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9, 9}
|
|
, "favorite_no3", 0 * 10000000 + 0 * 100000 + 16 * 1000 + 0,
|
|
"favorite_number3", "", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9, 9}
|
|
, "favorite_no4", 0 * 10000000 + 0 * 100000 + 16 * 1000 + 0,
|
|
"favorite_number4", "", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9, 9}
|
|
, "favorite_change_counter",
|
|
4 * 10000000 + 1 * 100000 + 2 * 1000 + exM_ppsSM,
|
|
"fav_change_counter", "0",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, "last_call_type", exM_ppsCallType, "last_call_type", "", "", ""}
|
|
,
|
|
{{0, 1, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, "last_call_time", 0 * 10000000 + 8 * 100000 + 8 * 1000 + 0,
|
|
"last_call_time", "", "", ""}
|
|
,
|
|
{{0, 1, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, "last_call_no", 0, "last_call_number", "", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9, 9}
|
|
, "cap_sm_balance0", 0 * 10000000 + 0 * 100000 + 8 * 1000 + 0,
|
|
"cap_sm_balance0", "", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9, 9}
|
|
, "cap_sm_counter0", 0 * 10000000 + 0 * 100000 + 8 * 1000 + 0,
|
|
"cap_sm_counter0", "", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9, 9}
|
|
, "cap_sm_balance1", 0 * 10000000 + 0 * 100000 + 8 * 1000 + 0,
|
|
"cap_sm_balance1", "", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9, 9}
|
|
, "cap_sm_counter1", 0 * 10000000 + 0 * 100000 + 8 * 1000 + 0,
|
|
"cap_sm_counter1", "", "", ""}
|
|
,
|
|
//20041010 start
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9, 2}
|
|
, "credit", 2 * 10000000 + 7 * 100000 + 8 * 1000 + 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9, 2}
|
|
, "promotion_credit", 2 * 10000000 + 7 * 100000 + 8 * 1000 + 0, "",
|
|
"", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9, 2}
|
|
, "mo_vday", 2 * 10000000 + 9 * 100000 + 8 * 1000 + 0, "", "", "",
|
|
""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9, 2}
|
|
, "mt_vday", 2 * 10000000 + 9 * 100000 + 8 * 1000 + 0, "", "", "",
|
|
""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9, 2}
|
|
, "promotion_vday", 2 * 10000000 + 9 * 100000 + 8 * 1000 + 0, "",
|
|
"", "", ""}
|
|
//20041010 end
|
|
}
|
|
}
|
|
,
|
|
{0, "pps", "ppscard", "172.18.98.1",
|
|
360, 0, 0, 1, "PPS_DB.card_info", "OBJ_360.tmpSubsData_1", "", "",
|
|
{1, 2, 9, 9, 9, 9, 9, 9, 9}
|
|
, 15,
|
|
{
|
|
//{{0,re,mo,cr,de,co,ex,im,di}
|
|
//,"optName","exMode","fieldName","initFieldValue","optValue","fieldValue"
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, "ipaddress", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 0, 9, 9, 9}
|
|
, "passwd", 0, "", "123456", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, "expfile", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, "query", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, "fields", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, "max", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, "impfile", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 2, 9, 9, 9}
|
|
, "srvip", 0, "", "", "", ""}
|
|
,
|
|
{{0, 0, 0, 9, 9, 9, 9, 9, 9}
|
|
, "cardno", 0 * 10000000 + 12 * 100000 + 18 * 1000 + 0, "card_no",
|
|
"0000000000000000", "", ""}
|
|
,
|
|
{{0, 1, 9, 9, 9, 9, 9, 9, 9}
|
|
, "facevalue", 0, "face_value", "00", "", ""}
|
|
,
|
|
{{0, 1, 3, 9, 9, 9, 9, 9, 9}
|
|
//, "status", exM_ppsCardStatus, "card_status", "00", "", ""}
|
|
, "status", 0, "card_status", "00", "", ""}
|
|
,
|
|
{{0, 1, 9, 9, 9, 9, 9, 9, 9}
|
|
, "expiry_date", exM_ppsDate, "expiry_date", "00000000", "", ""}
|
|
,
|
|
{{0, 1, 9, 9, 9, 9, 9, 9, 9}
|
|
, "valid_days", exM_ppsDate, "valid_time", "00", "", ""}
|
|
,
|
|
{{0, 1, 9, 9, 9, 9, 9, 9, 9}
|
|
, "recharge_date", exM_ppsDate, "updated_date", "00000000", "", ""}
|
|
,
|
|
{{0, 1, 9, 9, 9, 9, 9, 9, 9}
|
|
, "charged_to", 0 * 10000000 + 0 * 100000 + 16 * 1000 + 0,
|
|
"msisdn_used", "00", "", ""}
|
|
}
|
|
}
|
|
,
|
|
//20041101 start
|
|
{0, "vms", "vmsSubscriber", "172.18.98.1",
|
|
390, 0, 0, 0, "VMS_DB.subscriberData_0", "OBJ_390.tmpSubsData_0", "",
|
|
"",
|
|
{1, 2, 2, 2, 1, 1, 2, 1, 9}
|
|
, 22,
|
|
{
|
|
//{{0,re,mo,cr,de,co,ex,im,di}
|
|
//,"optName","exMode","fieldName","initFieldValue","optValue","fieldValue"
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, "ipaddress", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 0, 9, 9, 9}
|
|
, "passwd", 0, "", "123456", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 1, 9, 9}
|
|
, "expfile", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 1, 9, 9}
|
|
, "query", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 1, 9, 9}
|
|
, "fields", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 1, 9, 9}
|
|
, "max", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 9, 0, 9}
|
|
, "impfile", 0, "", "", "", ""}
|
|
,
|
|
{{0, 0, 0, 0, 0, 0, 0, 0, 0}
|
|
, "srvip", 0, "", "", "", ""}
|
|
,
|
|
{{0, 0, 0, 0, 0, 9, 9, 9, 9}
|
|
, "msisdn", 0 * 10000000 + 6 * 100000 + 16 * 1000 + 0, "msisdn",
|
|
"FFFFFFFFFFFFFFFFFF", "", ""}
|
|
,
|
|
{{0, 1, 9, 2, 9, 9, 9, 9, 9}
|
|
, "system_id",
|
|
0 * 10000000 + 1 * 100000 + 10 * 1000 + exM_vmsHexDec, "systemID",
|
|
"00", "", ""}
|
|
,
|
|
{{0, 1, 9, 2, 9, 9, 9, 9, 9}
|
|
, "mailbox_id",
|
|
0 * 10000000 + 1 * 100000 + 4 * 1000 + exM_vmsMailboxId,
|
|
"mailboxID", "0", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "register_flag", exM_byte0_bit2, "status", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "active_flag", exM_byte0_bit1, "status", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "locked_flag", exM_byte0_bit0, "status", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "language", 0 * 10000000 + 1 * 100000 + 1 * 1000 + exM_vmsHexDec,
|
|
"promo_language", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "temporary_greeting", exM_byte0_bit7, "greeting", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "greeting_type", exM_vmsGreetingType, "greeting", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "password_flag", exM_byte0_bit0, "optionFlag", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "callback_flag", exM_byte0_bit1, "optionFlag", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "cli_flag", exM_byte0_bit2, "optionFlag", "00", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9}
|
|
, "password", 0 * 10000000 + 4 * 100000 + 4 * 1000 + 0, "pwdValue",
|
|
"0000", "", ""}
|
|
,
|
|
{{0, 1, 3, 2, 9, 9, 9, 9, 9}
|
|
, "callback_timeout",
|
|
0 * 10000000 + 2 * 100000 + 2 * 1000 + exM_vmsHexDec, "acbTimeOut",
|
|
"10", "", ""}
|
|
}
|
|
}
|
|
,
|
|
//20041125 start
|
|
{0, "pps", "ppsesme", "172.18.98.1",
|
|
360, 0, 0, 2, "PPS_DB.third_party", "OBJ_360.tmpSubsData_2", "", "",
|
|
{9, 9, 3, 9, 9, 9, 9, 9, 9}
|
|
, 14,
|
|
{
|
|
//{{0,re,mo,cr,de,co,ex,im,di}
|
|
//,"optName","exMode","fieldName","initFieldValue","optValue","fieldValue"
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, "ipaddress", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 0, 9, 9, 9, 9}
|
|
, "passwd", 0, "", "123456", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, "expfile", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, "query", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, "fields", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, "max", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, "impfile", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 1, 9, 9, 9}
|
|
, "srvip", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 0, 9, 9, 9, 9, 9, 9}
|
|
, "no", 0, "service_number", "FFFFFFFFFFFFFFFFFF", "", ""}
|
|
,
|
|
{{0, 9, 9, 3, 9, 9, 9, 9, 9, 9}
|
|
, "id", 0, "service_id", "00000000", "", ""}
|
|
,
|
|
{{0, 9, 9, 3, 9, 9, 9, 9, 9, 9}
|
|
, "pwd", 0, "service_pwd", "00000000", "", ""}
|
|
,
|
|
{{0, 9, 9, 3, 9, 9, 9, 9, 9, 9}
|
|
, "type", 0, "service_type", "0", "", ""}
|
|
,
|
|
{{0, 9, 9, 3, 9, 9, 9, 9, 9, 9}
|
|
, "card_pwd", 0, "card_pwd", "00000000000000000000", "", ""}
|
|
,
|
|
{{0, 9, 9, 3, 9, 9, 9, 9, 9, 9}
|
|
, "amount", exM_ppsBalance, "charge_amount", "0", "", ""}
|
|
}
|
|
}
|
|
,
|
|
//20041125 end
|
|
{0, "hlr", "hlresme", "172.18.98.1",
|
|
330, 0, 0, 1, "HLR_DB.subscriberData", "OBJ_330.tmpSubsData_0", "",
|
|
"",
|
|
{1, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, 10,
|
|
{
|
|
//{{0,1,2,3,4,5,6,7,9}, 0=mandatory,1~8=privilege1.........privilege8,9=nouse
|
|
//{{0,re,mo,cr,de,co,ex,im,di}
|
|
//,"optName","exMode","fieldName","initFieldValue","optValue","fieldValue"
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, "ipaddress", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 0, 9, 9, 9}
|
|
, "passwd", 0, "", "123456", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, "expfile", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, "query", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, "fields", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, "max", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, "impfile", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 1, 9, 9, 9}
|
|
, "srvip", 0, "", "", "", ""}
|
|
,
|
|
{{0, 0, 9, 9, 9, 9, 9, 9, 9}
|
|
, "msisdn", 0 * 10000000 + 6 * 100000 + 16 * 1000 + exM_hlrCcNdcSn,
|
|
"inter_msisdn", "0000000000000000",
|
|
"", ""}
|
|
,
|
|
{{0, 1, 9, 9, 9, 9, 9, 9, 9}
|
|
, "camel", exM_byte0_bit7, "camel_flag", "801F", "", ""}
|
|
}
|
|
}
|
|
,
|
|
{0, "mnp", "mnpSubscriber", "172.18.98.1",
|
|
370, 0, 0, 0, "MNP_DB.subscriberData", "OBJ_370.tmpSubsData_0", "",
|
|
"",
|
|
{1, 2, 2, 2, 1, 1, 2, 1, 2} //20041010
|
|
, 14, //20041010
|
|
{
|
|
{{0, 9, 9, 9, 9, 9, 9, 9, 9, 9}
|
|
, "ipaddress", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 0, 9, 9, 9, 9}
|
|
, "passwd", 0, "", "123456", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 1, 9, 9, 9}
|
|
, "expfile", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 1, 9, 9, 9}
|
|
, "query", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 1, 9, 9, 9}
|
|
, "fields", 0, "", "" "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 1, 9, 9, 9}
|
|
, "max", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 9, 9, 0, 9, 9}
|
|
, "impfile", 0, "", "", "", ""}
|
|
,
|
|
{{0, 9, 9, 9, 9, 1, 9, 9, 9, 9}
|
|
, "srvip", 0, "", "", "", ""}
|
|
,
|
|
{{0, 0, 0, 0, 0, 9, 9, 9, 9, 9}
|
|
, "msisdn", 0 * 10000000 + 6 * 100000 + 16 * 1000 + 0, "msisdn",
|
|
"FFFFFFFFFFFFFFFFFF", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9, 9}
|
|
, "status", exM_mnpStatus, "status", "02", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9, 9}
|
|
, "routing_number", 0 * 10000000 + 1 * 100000 + 8 * 1000 + 0,
|
|
"routing_number", "0000000000000000", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9, 9}
|
|
, "donor", 9 * 10000000 + 1 * 100000 + 16 * 1000 + 0, "donor",
|
|
"00000000000000000000000000000000", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9, 9}
|
|
, "recipient", 9 * 10000000 + 1 * 100000 + 16 * 1000 + 0,
|
|
"recipient", "00000000000000000000000000000000", "", ""}
|
|
,
|
|
{{0, 1, 2, 2, 9, 9, 9, 9, 9, 9}
|
|
, "date",
|
|
0 * 10000000 + 8 * 100000 + 8 * 1000 + exM_mnpDate,
|
|
"date",
|
|
"20060701000000 ", "",
|
|
""}
|
|
}
|
|
}
|
|
};
|
|
*/
|
|
|
|
////////////////////////follow two function are modifiable/////////////////////
|
|
/*************************************************
|
|
Function: // exValueFieldToOpt
|
|
Description: // 参数的值从数据库的格式转换成输入输出的格式
|
|
Calls: // getBitValue
|
|
Called By: // doCmdExportAccount; doCmdRead; ......
|
|
Table Accessed: //
|
|
Table Updated: //
|
|
Input: // optNo:the index of the parameter;
|
|
Output: //
|
|
Return: //
|
|
Others: //
|
|
*************************************************/
|
|
int exValueFieldToOpt(int optNo)
|
|
{
|
|
int i = 0;
|
|
int j = 0;
|
|
int tmpValue;
|
|
unsigned char tmpBitValue;
|
|
unsigned char tmpBitValue1;
|
|
unsigned char tmpBitValue2;
|
|
unsigned char tmpBitValue3;
|
|
unsigned char tmpBitValue4;
|
|
unsigned char tmpBitValue5;
|
|
unsigned char tmpBitValue6;
|
|
unsigned char tmpBitValue7;
|
|
char tmpStr[15];
|
|
int tmpExMode;
|
|
|
|
tmpExMode = cmdBuf->optDef[optNo].exMode % 1000;
|
|
//writeDebug("tmpExMode=%d,optNo=%d,cmdBuf->optDef[optNo].exMode=%d",tmpExMode,optNo,cmdBuf->optDef[optNo].exMode);
|
|
//account
|
|
if (cmdBuf->sysTypeNo == 0) {
|
|
i = strlen(cmdBuf->optDef[optNo].fieldValue);
|
|
if ((cmdBuf->optDef[optNo].fieldValue[i - 1] == '\n')
|
|
|| (cmdBuf->optDef[optNo].fieldValue[i - 1] == '\r')) {
|
|
cmdBuf->optDef[optNo].fieldValue[i - 1] = '\0';
|
|
i = i - 1;
|
|
}
|
|
if ((cmdBuf->optDef[optNo].fieldValue[i - 1] == '\n')
|
|
|| (cmdBuf->optDef[optNo].fieldValue[i - 1] == '\r')) {
|
|
cmdBuf->optDef[optNo].fieldValue[i - 1] = '\0';
|
|
}
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "%s",
|
|
cmdBuf->optDef[optNo].fieldValue);
|
|
return (0);
|
|
}
|
|
//hlr
|
|
if (cmdBuf->sysTypeNo == 330) {
|
|
switch (tmpExMode) {
|
|
case exM_hlrImsi:
|
|
//imsi
|
|
j = strlen(cmdBuf->optDef[optNo].fieldValue);
|
|
for (i = 0; i < j; i++) {
|
|
if (cmdBuf->optDef[optNo].fieldValue[i] != '0') {
|
|
break;
|
|
}
|
|
}
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "%.*s", j - i,
|
|
cmdBuf->optDef[optNo].fieldValue + i);
|
|
break;
|
|
case exM_hlrCcNdcSn:
|
|
//msisdn
|
|
for (i = 2; i < strlen(cmdBuf->optDef[optNo].fieldValue); i++) {
|
|
if (cmdBuf->optDef[optNo].fieldValue[i] != 'E') {
|
|
cmdBuf->optDef[optNo].optValue[i - 2] =
|
|
cmdBuf->optDef[optNo].fieldValue[i];
|
|
} else {
|
|
cmdBuf->optDef[optNo].optValue[i - 2] = '\0';
|
|
return (0);
|
|
}
|
|
}
|
|
break;
|
|
case exM_hlrMsisdn:
|
|
//cfu_num,cfb_num,cfnry_num,cfnrc_num
|
|
for (i = 0; i < strlen(cmdBuf->optDef[optNo].fieldValue); i++) {
|
|
if (cmdBuf->optDef[optNo].fieldValue[i] != 'E') {
|
|
cmdBuf->optDef[optNo].optValue[i] =
|
|
cmdBuf->optDef[optNo].fieldValue[i];
|
|
} else {
|
|
cmdBuf->optDef[optNo].optValue[i] = '\0';
|
|
return (0);
|
|
}
|
|
}
|
|
if (strlen(cmdBuf->optDef[optNo].optValue) == 0) {
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "\"\"");
|
|
}
|
|
break;
|
|
case exM_hlrNam:
|
|
//nam
|
|
if (strcmp(cmdBuf->optDef[optNo].fieldValue, "01") == 0) {
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "gsm");
|
|
} else if (strcmp(cmdBuf->optDef[optNo].fieldValue, "02") == 0) {
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "gprs");
|
|
} else {
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "dual");
|
|
}
|
|
break;
|
|
case exM_hlrState:
|
|
//imsi_flag,baoc,boic,boic_hplmn,baic,cfu,cfb
|
|
//cfnry,cfnrc,clip,clir,colp,colr,ch,cw
|
|
if (strcmp(cmdBuf->optDef[optNo].fieldValue, "01") == 0) {
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "enable");
|
|
} else {
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "disable");
|
|
}
|
|
break;
|
|
case exM_hlrClirpm:
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 4,
|
|
&tmpBitValue);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 5,
|
|
&tmpBitValue1);
|
|
tmpBitValue2 = tmpBitValue1 * 2 + tmpBitValue;
|
|
switch (tmpBitValue2) {
|
|
case 0:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Permanent");
|
|
break;
|
|
case 1:
|
|
sprintf(cmdBuf->optDef[optNo].optValue,
|
|
"Temporary(Default:Restricted)");
|
|
break;
|
|
case 2:
|
|
sprintf(cmdBuf->optDef[optNo].optValue,
|
|
"Temporary(Default:Allowed)");
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
break;
|
|
case exM_hlrSms:
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 2,
|
|
&tmpBitValue);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 3,
|
|
&tmpBitValue1);
|
|
tmpBitValue2 = tmpBitValue1 * 2 + tmpBitValue;
|
|
switch (tmpBitValue2) {
|
|
case 0:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "None");
|
|
break;
|
|
case 1:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Mobile_Term");
|
|
break;
|
|
case 2:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Mobile_Org");
|
|
break;
|
|
case 3:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Both");
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
break;
|
|
case exM_hlrCfuopt:
|
|
case exM_hlrCfnrcopt:
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 5,
|
|
&tmpBitValue);
|
|
if (tmpBitValue) {
|
|
sprintf(cmdBuf->optDef[optNo].optValue,
|
|
"Calling_Party:ON");
|
|
} else {
|
|
sprintf(cmdBuf->optDef[optNo].optValue,
|
|
"Calling_Party:OFF");
|
|
}
|
|
break;
|
|
case exM_hlrCfbopt:
|
|
case exM_hlrCfnryopt:
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 5,
|
|
&tmpBitValue);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 7,
|
|
&tmpBitValue1);
|
|
tmpBitValue2 = tmpBitValue * 2 + tmpBitValue1;
|
|
switch (tmpBitValue2) {
|
|
case 0:
|
|
sprintf(cmdBuf->optDef[optNo].optValue,
|
|
"Calling_Party:OFF/Fwd_Party:OFF");
|
|
break;
|
|
case 1:
|
|
sprintf(cmdBuf->optDef[optNo].optValue,
|
|
"Calling_Party:OFF/Fwd_Party:ON");
|
|
break;
|
|
case 2:
|
|
sprintf(cmdBuf->optDef[optNo].optValue,
|
|
"Calling_Party:ON/Fwd_Party:OFF");
|
|
break;
|
|
case 3:
|
|
sprintf(cmdBuf->optDef[optNo].optValue,
|
|
"Calling_Party:ON/Fwd_Party:ON");
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
break;
|
|
case exM_hlrCfnryTimer:
|
|
//cfnry_timer
|
|
hex2dec(cmdBuf->optDef[optNo].fieldValue,
|
|
cmdBuf->optDef[optNo].optValue);
|
|
//sprintf(cmdBuf->optDef[optNo].optValue, "%s",
|
|
// cmdBuf->optDef[optNo].fieldValue);
|
|
break;
|
|
case exM_hlrCategory:
|
|
hex2dec(cmdBuf->optDef[optNo].fieldValue, tmpStr);
|
|
i = atoi(tmpStr);
|
|
switch (i) {
|
|
case 00:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Unknown");
|
|
break;
|
|
case 01:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "French");
|
|
break;
|
|
case 02:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "English");
|
|
break;
|
|
case 03:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "German");
|
|
break;
|
|
case 04:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Russian");
|
|
break;
|
|
case 05:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Spanish");
|
|
break;
|
|
case 10:
|
|
sprintf(cmdBuf->optDef[optNo].optValue,
|
|
"Ordinary_calling_subscriber");
|
|
break;
|
|
case 11:
|
|
sprintf(cmdBuf->optDef[optNo].optValue,
|
|
"Priory_calling_suscriber");
|
|
break;
|
|
default:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Unknown");
|
|
break;
|
|
}
|
|
break;
|
|
case exM_hlrRszi:
|
|
i = (optNo - optNo_Rszi);
|
|
tmpStr[0] = cmdBuf->optDef[optNo].fieldValue[i * 2];
|
|
tmpStr[1] = cmdBuf->optDef[optNo].fieldValue[i * 2 + 1];
|
|
tmpStr[2] = '\0';
|
|
hex2dec(tmpStr, cmdBuf->optDef[optNo].optValue);
|
|
break;
|
|
case exM_hlrCsrr:
|
|
hex2dec(cmdBuf->optDef[optNo].fieldValue,
|
|
cmdBuf->optDef[optNo].optValue);
|
|
i = atoi(cmdBuf->optDef[optNo].optValue);
|
|
if (i > 7)
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "No_restriction");
|
|
break;
|
|
case exM_hlrCbsp:
|
|
i = atoi(cmdBuf->optDef[optNo].fieldValue);
|
|
switch (i) {
|
|
case 0:
|
|
sprintf(cmdBuf->optDef[optNo].optValue,
|
|
"Control_provider");
|
|
break;
|
|
case 1:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Control_sub_pwd");
|
|
break;
|
|
case 2:
|
|
sprintf(cmdBuf->optDef[optNo].optValue,
|
|
"Control_sub_not_pwd");
|
|
break;
|
|
}
|
|
break;
|
|
case exM_hlrCbwpa:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "%s",
|
|
cmdBuf->optDef[optNo].fieldValue);
|
|
break;
|
|
case exM_hlrOCsi1:
|
|
tmpStr[0] = cmdBuf->optDef[optNo].fieldValue[0];
|
|
tmpStr[1] = cmdBuf->optDef[optNo].fieldValue[1];
|
|
tmpStr[2] = '\0';
|
|
hex2dec(tmpStr, cmdBuf->optDef[optNo].optValue);
|
|
break;
|
|
case exM_hlrOCsi2:
|
|
tmpStr[0] = cmdBuf->optDef[optNo].fieldValue[24];
|
|
tmpStr[1] = cmdBuf->optDef[optNo].fieldValue[25];
|
|
tmpStr[2] = cmdBuf->optDef[optNo].fieldValue[26];
|
|
tmpStr[3] = cmdBuf->optDef[optNo].fieldValue[27];
|
|
tmpStr[4] = cmdBuf->optDef[optNo].fieldValue[28];
|
|
tmpStr[5] = cmdBuf->optDef[optNo].fieldValue[29];
|
|
tmpStr[6] = cmdBuf->optDef[optNo].fieldValue[30];
|
|
tmpStr[7] = cmdBuf->optDef[optNo].fieldValue[31];
|
|
tmpStr[8] = '\0';
|
|
hex2dec(tmpStr, cmdBuf->optDef[optNo].optValue);
|
|
break;
|
|
case exM_hlrOCsi3:
|
|
for (i = 0; i < 18; i++) {
|
|
if (cmdBuf->optDef[optNo].fieldValue[i + 6] == 'E')
|
|
break;
|
|
cmdBuf->optDef[optNo].optValue[i] =
|
|
cmdBuf->optDef[optNo].fieldValue[i + 6];
|
|
}
|
|
cmdBuf->optDef[optNo].optValue[i + 1] = '\0';
|
|
break;
|
|
case exM_hlrOCsi4:
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 1, 0,
|
|
&tmpBitValue);
|
|
if (tmpBitValue == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Continue_call");
|
|
else
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Release_call");
|
|
break;
|
|
case exM_hlrOCsi5:
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 16, 0,
|
|
&tmpBitValue);
|
|
if (tmpBitValue == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Not_use");
|
|
else
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "In_use");
|
|
break;
|
|
case exM_hlrOCsi6:
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 17, 0,
|
|
&tmpBitValue);
|
|
if (tmpBitValue == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Inhabiting");
|
|
else
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Enabling");
|
|
break;
|
|
case exM_hlrOCsi7:
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 16, 2,
|
|
&tmpBitValue);
|
|
if (tmpBitValue == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Not_use");
|
|
else
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "In_use");
|
|
break;
|
|
case exM_hlrOCsi8:
|
|
for (i = 0; i < 18; i++) {
|
|
if (cmdBuf->optDef[optNo].fieldValue[i + 38] == 'E')
|
|
break;
|
|
cmdBuf->optDef[optNo].optValue[i] =
|
|
cmdBuf->optDef[optNo].fieldValue[i + 38];
|
|
}
|
|
cmdBuf->optDef[optNo].optValue[i + 1] = '\0';
|
|
break;
|
|
case exM_hlrOCsi9:
|
|
for (i = 0; i < 18; i++) {
|
|
if (cmdBuf->optDef[optNo].fieldValue[i + 56] == 'E')
|
|
break;
|
|
cmdBuf->optDef[optNo].optValue[i] =
|
|
cmdBuf->optDef[optNo].fieldValue[i + 56];
|
|
}
|
|
cmdBuf->optDef[optNo].optValue[i + 1] = '\0';
|
|
break;
|
|
case exM_hlrOCsi10:
|
|
for (i = 0; i < 18; i++) {
|
|
if (cmdBuf->optDef[optNo].fieldValue[i + 74] == 'E')
|
|
break;
|
|
cmdBuf->optDef[optNo].optValue[i] =
|
|
cmdBuf->optDef[optNo].fieldValue[i + 74];
|
|
}
|
|
cmdBuf->optDef[optNo].optValue[i + 1] = '\0';
|
|
break;
|
|
case exM_hlrOCsi11:
|
|
for (i = 0; i < 18; i++) {
|
|
if (cmdBuf->optDef[optNo].fieldValue[i + 92] == 'E')
|
|
break;
|
|
cmdBuf->optDef[optNo].optValue[i] =
|
|
cmdBuf->optDef[optNo].fieldValue[i + 92];
|
|
}
|
|
cmdBuf->optDef[optNo].optValue[i + 1] = '\0';
|
|
break;
|
|
case exM_hlrOCsi12:
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 16, 3,
|
|
&tmpBitValue);
|
|
if (tmpBitValue == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Not_use");
|
|
else
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "In_use");
|
|
break;
|
|
case exM_hlrOCsi13:
|
|
tmpStr[0] = cmdBuf->optDef[optNo].fieldValue[110];
|
|
tmpStr[1] = cmdBuf->optDef[optNo].fieldValue[111];
|
|
tmpStr[2] = '\0';
|
|
hex2dec(tmpStr, cmdBuf->optDef[optNo].optValue);
|
|
break;
|
|
case exM_hlrOCsi14:
|
|
tmpStr[0] = cmdBuf->optDef[optNo].fieldValue[112];
|
|
tmpStr[1] = cmdBuf->optDef[optNo].fieldValue[113];
|
|
tmpStr[2] = '\0';
|
|
hex2dec(tmpStr, cmdBuf->optDef[optNo].optValue);
|
|
break;
|
|
case exM_hlrOCsi15:
|
|
tmpStr[0] = cmdBuf->optDef[optNo].fieldValue[114];
|
|
tmpStr[1] = cmdBuf->optDef[optNo].fieldValue[115];
|
|
tmpStr[2] = '\0';
|
|
hex2dec(tmpStr, cmdBuf->optDef[optNo].optValue);
|
|
break;
|
|
case exM_hlrOCsi16:
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 16, 1,
|
|
&tmpBitValue);
|
|
if (tmpBitValue == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Not_use");
|
|
else
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "In_use");
|
|
break;
|
|
case exM_hlrOCsi17:
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 18, 0,
|
|
&tmpBitValue);
|
|
if (tmpBitValue == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Forward");
|
|
else
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Not_forword");
|
|
break;
|
|
case exM_hlrOCsi18:
|
|
tmpStr[0] = cmdBuf->optDef[optNo].fieldValue[4];
|
|
tmpStr[1] = cmdBuf->optDef[optNo].fieldValue[5];
|
|
tmpStr[2] = '\0';
|
|
hex2dec(tmpStr, cmdBuf->optDef[optNo].optValue);
|
|
break;
|
|
case exM_hlrSsCsi:
|
|
i = optNo - optNo_Sscsi;
|
|
tmpStr[0] = cmdBuf->optDef[optNo].fieldValue[i * 2];
|
|
tmpStr[1] = cmdBuf->optDef[optNo].fieldValue[i * 2 + 1];
|
|
tmpStr[2] = '\0';
|
|
if (strcmp(tmpStr, "24") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "cd");
|
|
else if (strcmp(tmpStr, "31") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "ect");
|
|
else if (strcmp(tmpStr, "51") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "multiPTY");
|
|
else
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "None");
|
|
break;
|
|
case exM_hlrSsCsi1:
|
|
for (i = 0; i < 18; i++) {
|
|
if (cmdBuf->optDef[optNo].fieldValue[i + 8] == 'E')
|
|
break;
|
|
cmdBuf->optDef[optNo].optValue[i] =
|
|
cmdBuf->optDef[optNo].fieldValue[i + 8];
|
|
}
|
|
cmdBuf->optDef[optNo].optValue[i + 1] = '\0';
|
|
break;
|
|
case exM_hlrPdp1:
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 0,
|
|
&tmpBitValue);
|
|
if (tmpBitValue == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "disable");
|
|
else
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "enable");
|
|
break;
|
|
case exM_hlrPdp2:
|
|
omc_AsciiToRbcd(&tmpBitValue1,
|
|
cmdBuf->optDef[optNo].fieldValue + 2, 2);
|
|
omc_AsciiToRbcd(&tmpBitValue2,
|
|
cmdBuf->optDef[optNo].fieldValue + 2 + 2, 2);
|
|
tmpValue = tmpBitValue1 * 256 + tmpBitValue2;
|
|
//printf("tmpValue=%d\n",tmpValue);
|
|
if (tmpValue == 289)
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "IPv4");
|
|
else if (tmpValue == 343)
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "IPv6");
|
|
else
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "X.25");
|
|
break;
|
|
case exM_hlrPdp3:
|
|
omc_AsciiToRbcd(&tmpBitValue1,
|
|
cmdBuf->optDef[optNo].fieldValue + 2, 2);
|
|
omc_AsciiToRbcd(&tmpBitValue2,
|
|
cmdBuf->optDef[optNo].fieldValue + 2 + 2, 2);
|
|
tmpValue = tmpBitValue1 * 256 + tmpBitValue2;
|
|
cmdBuf->optDef[optNo].optValue[0] = 0;
|
|
if (tmpValue == 289) {
|
|
omc_AsciiToRbcd(&tmpBitValue1,
|
|
cmdBuf->optDef[optNo].fieldValue + 6, 2);
|
|
if(tmpBitValue1 == 0x04)
|
|
{
|
|
omc_AsciiToRbcd(&tmpBitValue1,
|
|
cmdBuf->optDef[optNo].fieldValue + 6 + 2 +
|
|
0 * 2, 2);
|
|
omc_AsciiToRbcd(&tmpBitValue2,
|
|
cmdBuf->optDef[optNo].fieldValue + 6 + 2 +
|
|
1 * 2, 2);
|
|
omc_AsciiToRbcd(&tmpBitValue3,
|
|
cmdBuf->optDef[optNo].fieldValue + 6 + 2 +
|
|
2 * 2, 2);
|
|
omc_AsciiToRbcd(&tmpBitValue4,
|
|
cmdBuf->optDef[optNo].fieldValue + 6 + 2 +
|
|
3 * 2, 2);
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "%d.%d.%d.%d",
|
|
tmpBitValue1, tmpBitValue2, tmpBitValue3,tmpBitValue4);
|
|
}
|
|
else
|
|
{
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "null");
|
|
}
|
|
} else if (tmpValue == 343) {
|
|
for (i = 0; i < 8; i++) {
|
|
memcpy(tmpStr,
|
|
cmdBuf->optDef[optNo].fieldValue + 6 + 2 +
|
|
i * 4, 4);
|
|
tmpStr[4] = 0;
|
|
strcat(cmdBuf->optDef[optNo].optValue, tmpStr);
|
|
strcat(cmdBuf->optDef[optNo].optValue, ":");
|
|
}
|
|
cmdBuf->optDef[optNo].optValue[39] = 0;
|
|
} else {
|
|
for (i = 0; i < 14; i++) {
|
|
if (isdigit
|
|
(cmdBuf->optDef[optNo].fieldValue[6 + 2 + i]))
|
|
cmdBuf->optDef[optNo].optValue[i] =
|
|
cmdBuf->optDef[optNo].fieldValue[6 + 2 + i];
|
|
else
|
|
break;
|
|
}
|
|
cmdBuf->optDef[optNo].optValue[i] = 0;
|
|
}
|
|
break;
|
|
case exM_hlrPdp4:
|
|
/* sprintf(cmdBuf->optDef[optNo].optValue, "%c",
|
|
cmdBuf->optDef[optNo].fieldValue[41]);
|
|
break;
|
|
*/
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 20, 0,
|
|
&tmpBitValue);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 20, 1,
|
|
&tmpBitValue1);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 20, 2,
|
|
&tmpBitValue2);
|
|
tmpBitValue3 =
|
|
tmpBitValue2 * 4 + tmpBitValue1 * 2 + tmpBitValue;
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "%d", tmpBitValue3);
|
|
break;
|
|
case exM_hlrPdp5:
|
|
/*sprintf(cmdBuf->optDef[optNo].optValue, "%c",
|
|
cmdBuf->optDef[optNo].fieldValue[40]);
|
|
|
|
break; */
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 20, 3,
|
|
&tmpBitValue);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 20, 4,
|
|
&tmpBitValue1);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 20, 5,
|
|
&tmpBitValue2);
|
|
tmpBitValue3 =
|
|
tmpBitValue2 * 4 + tmpBitValue1 * 2 + tmpBitValue;
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "%d", tmpBitValue3);
|
|
break;
|
|
case exM_hlrPdp6:
|
|
omc_AsciiToRbcd(&tmpBitValue,
|
|
cmdBuf->optDef[optNo].fieldValue + 43, 1);
|
|
if (tmpBitValue == 1)
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "High");
|
|
else if (tmpBitValue == 2)
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Normal");
|
|
else
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Low");
|
|
break;
|
|
case exM_hlrPdp7:
|
|
omc_AsciiToRbcd(&tmpBitValue,
|
|
cmdBuf->optDef[optNo].fieldValue + 42, 1);
|
|
switch (tmpBitValue) {
|
|
case 1:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "8Kbps");
|
|
break;
|
|
case 2:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "16Kbps");
|
|
break;
|
|
case 3:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "32Kbps");
|
|
break;
|
|
case 4:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "64Kbps");
|
|
break;
|
|
case 5:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "128Kbps");
|
|
break;
|
|
case 6:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "256Kbps");
|
|
break;
|
|
case 7:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "512Kbps");
|
|
break;
|
|
case 8:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "1024Kbps");
|
|
break;
|
|
case 9:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "2048Kbps");
|
|
break;
|
|
}
|
|
break;
|
|
case exM_hlrPdp8:
|
|
omc_AsciiToRbcd(&tmpBitValue,
|
|
cmdBuf->optDef[optNo].fieldValue + 44, 2);
|
|
switch (tmpBitValue) {
|
|
case 1:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "100Bph");
|
|
break;
|
|
case 2:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "200Bph");
|
|
break;
|
|
case 3:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "500Bph");
|
|
break;
|
|
case 4:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "1KBph");
|
|
break;
|
|
case 5:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "2KBph");
|
|
break;
|
|
case 6:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "5KBph");
|
|
break;
|
|
case 7:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "10KBph");
|
|
break;
|
|
case 8:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "20KBph");
|
|
break;
|
|
case 9:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "50KBph");
|
|
break;
|
|
case 10:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "100KBph");
|
|
break;
|
|
case 11:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "200KBph");
|
|
break;
|
|
case 12:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "500KBph");
|
|
break;
|
|
case 13:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "1MBph");
|
|
break;
|
|
case 14:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "2MBph");
|
|
break;
|
|
case 15:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "5MBph");
|
|
break;
|
|
case 16:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "10MBph");
|
|
break;
|
|
case 17:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "20MBph");
|
|
break;
|
|
case 18:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "50MBph");
|
|
break;
|
|
case 31:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Best_effort");
|
|
break;
|
|
}
|
|
break;
|
|
case exM_hlrPdp9:
|
|
omc_AsciiToRbcd(&tmpBitValue,
|
|
cmdBuf->optDef[optNo].fieldValue + 46, 2);
|
|
if (tmpBitValue == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Not_allowed");
|
|
else
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Allowed");
|
|
break;
|
|
case exM_hlrPdp10:
|
|
for (i = 0; i < 32; i++) {
|
|
if (cmdBuf->optDef[optNo].fieldValue[48 + i * 2] == '0'
|
|
&& cmdBuf->optDef[optNo].fieldValue[48 + i * 2 + 1] ==
|
|
'0')
|
|
{
|
|
if(i==0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "null");
|
|
break;
|
|
|
|
}
|
|
else {
|
|
omc_AsciiToRbcd(&tmpBitValue,
|
|
cmdBuf->optDef[optNo].fieldValue + 48 +
|
|
i * 2, 2);
|
|
cmdBuf->optDef[optNo].optValue[i] = tmpBitValue;
|
|
}
|
|
}
|
|
if(i>0)
|
|
cmdBuf->optDef[optNo].optValue[i] = 0;
|
|
//writeDebug("optValue:%s,fieldValue:%s",cmdBuf->optDef[optNo].optValue,cmdBuf->optDef[optNo].fieldValue);
|
|
break;
|
|
case exM_hlrPdp11:
|
|
omc_AsciiToRbcd(&tmpBitValue,
|
|
cmdBuf->optDef[optNo].fieldValue + 112, 2);
|
|
//writeDebug("fied value:%s",cmdBuf->optDef[optNo].fieldValue);
|
|
switch(tmpBitValue)
|
|
{
|
|
case 0:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Non_included_Ext");
|
|
break;
|
|
case 1:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Included_Ext");
|
|
break;
|
|
case 3:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Included_Ext_and_Ext2_only_1_octet");
|
|
break;
|
|
case 7:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Included_Ext_Ext2");
|
|
break;
|
|
case 15:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Included_Ext_Ext2_Ext3");
|
|
break;
|
|
}
|
|
break;
|
|
case exM_hlrPdp12:
|
|
omc_AsciiToRbcd(&tmpBitValue,
|
|
cmdBuf->optDef[optNo].fieldValue + 114, 2);
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "%d", tmpBitValue);
|
|
break;
|
|
case exM_hlrPdp13:
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 0,
|
|
&tmpBitValue);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 1,
|
|
&tmpBitValue1);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 2,
|
|
&tmpBitValue2);
|
|
tmpBitValue3 = tmpBitValue2 * 4 + tmpBitValue1 * 2 + tmpBitValue;
|
|
//writeDebug("tmpBitValue3 =%d",tmpBitValue3);
|
|
switch(tmpBitValue3)
|
|
{
|
|
case 1:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "No_detect");
|
|
break;
|
|
case 2:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Err_SDUs_delilvered");
|
|
break;
|
|
case 3:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Err_SDUs_not_delivered");
|
|
break;
|
|
case 7:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Reserved");
|
|
break;
|
|
}
|
|
break;
|
|
case exM_hlrPdp14:
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 3,
|
|
&tmpBitValue);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 4,
|
|
&tmpBitValue1);
|
|
tmpBitValue2 = tmpBitValue1 * 2 + tmpBitValue;
|
|
switch(tmpBitValue2)
|
|
{
|
|
case 1:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "delivery_order");
|
|
break;
|
|
case 2:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "no_delivery_order");
|
|
break;
|
|
case 3:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Reserved");
|
|
break;
|
|
}
|
|
break;
|
|
case exM_hlrPdp15:
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 5,
|
|
&tmpBitValue);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 6,
|
|
&tmpBitValue1);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 7,
|
|
&tmpBitValue2);
|
|
tmpBitValue3 = tmpBitValue2 * 4 + tmpBitValue1 * 2 + tmpBitValue;
|
|
switch(tmpBitValue3)
|
|
{
|
|
case 1:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Conversation_class");
|
|
break;
|
|
case 2:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Streaming_class");
|
|
break;
|
|
case 3:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Interactive_class");
|
|
break;
|
|
case 4:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Background_classs");
|
|
break;
|
|
case 7:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Reserved");
|
|
break;
|
|
}
|
|
break;
|
|
case exM_hlrPdp16:
|
|
omc_AsciiToRbcd(&tmpBitValue,
|
|
cmdBuf->optDef[optNo].fieldValue + 118, 2);
|
|
switch (tmpBitValue) {
|
|
case 1:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "10_octets");
|
|
break;
|
|
case 20:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "200_octets");
|
|
break;
|
|
case 80:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "800_octets");
|
|
break;
|
|
case 100:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "1000_octets");
|
|
break;
|
|
case 148:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "1480_octets");
|
|
break;
|
|
case 150:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "1500_octets");
|
|
break;
|
|
case 151:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "1502_octets");
|
|
break;
|
|
case 152:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "1510_octets");
|
|
break;
|
|
case 153:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "1520_octets");
|
|
break;
|
|
case 255:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Reserved");
|
|
break;
|
|
}
|
|
break;
|
|
case exM_hlrPdp17:
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 60, 0,
|
|
&tmpBitValue1);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 60, 1,
|
|
&tmpBitValue2);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 60, 2,
|
|
&tmpBitValue3);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 60, 3,
|
|
&tmpBitValue4);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 60, 4,
|
|
&tmpBitValue5);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 60, 5,
|
|
&tmpBitValue6);
|
|
tmpBitValue =tmpBitValue6 * 32 + tmpBitValue5 * 16 + tmpBitValue4 * 8
|
|
+ tmpBitValue3 * 4 + tmpBitValue2 * 2 + tmpBitValue1;
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "%d", tmpBitValue);
|
|
break;
|
|
case exM_hlrPdp18:
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 60, 6,
|
|
&tmpBitValue1);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 60, 7,
|
|
&tmpBitValue2);
|
|
tmpBitValue = tmpBitValue2 * 2 + tmpBitValue1;
|
|
switch (tmpBitValue) {
|
|
case 0:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "X*1Kbps");
|
|
break;
|
|
case 1:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "64Kbps+(X*8Kbps)");
|
|
break;
|
|
case 2:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "576Kbps+(X*64Kbps)");
|
|
break;
|
|
case 3:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "4672Kbps+(X*64Kbps)");
|
|
break;
|
|
}
|
|
break;
|
|
case exM_hlrPdp19:
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 61, 0,
|
|
&tmpBitValue1);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 61, 1,
|
|
&tmpBitValue2);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 61, 2,
|
|
&tmpBitValue3);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 61, 3,
|
|
&tmpBitValue4);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 61, 4,
|
|
&tmpBitValue5);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 61, 5,
|
|
&tmpBitValue6);
|
|
tmpBitValue =tmpBitValue6 * 32 + tmpBitValue5 * 16 + tmpBitValue4 * 8
|
|
+ tmpBitValue3 * 4 + tmpBitValue2 * 2 + tmpBitValue1;
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "%d", tmpBitValue);
|
|
break;
|
|
case exM_hlrPdp20:
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 61, 6,
|
|
&tmpBitValue1);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 61, 7,
|
|
&tmpBitValue2);
|
|
tmpBitValue = tmpBitValue2 * 2 + tmpBitValue1;
|
|
switch (tmpBitValue) {
|
|
case 0:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "X*1Kbps");
|
|
break;
|
|
case 1:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "64Kbps+(X*8Kbps)");
|
|
break;
|
|
case 2:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "576Kbps+(X*64Kbps)");
|
|
break;
|
|
case 3:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "4672Kbps+(X*64Kbps)");
|
|
break;
|
|
}
|
|
break;
|
|
case exM_hlrPdp21:
|
|
omc_AsciiToRbcd(&tmpBitValue,
|
|
cmdBuf->optDef[optNo].fieldValue + 125, 1);
|
|
switch (tmpBitValue) {
|
|
case 1:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "1E_2");
|
|
break;
|
|
case 2:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "7E_3");
|
|
break;
|
|
case 3:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "1E_3");
|
|
break;
|
|
case 4:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "1E_4");
|
|
break;
|
|
case 5:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "1E_5");
|
|
break;
|
|
case 6:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "1E_6");
|
|
break;
|
|
case 7:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "1E_1");
|
|
break;
|
|
case 15:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Reserved");
|
|
break;
|
|
}
|
|
break;
|
|
case exM_hlrPdp22:
|
|
omc_AsciiToRbcd(&tmpBitValue,
|
|
cmdBuf->optDef[optNo].fieldValue + 124, 1);
|
|
switch (tmpBitValue) {
|
|
case 1:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "5E_2");
|
|
break;
|
|
case 2:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "1E_2");
|
|
break;
|
|
case 3:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "5E_3");
|
|
break;
|
|
case 4:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "4E_3");
|
|
break;
|
|
case 5:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "1E_3");
|
|
break;
|
|
case 6:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "1E_4");
|
|
break;
|
|
case 7:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "1E_5");
|
|
break;
|
|
case 8:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "1E_6");
|
|
break;
|
|
case 9:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "6E_8");
|
|
break;
|
|
case 15:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Reserved");
|
|
break;
|
|
}
|
|
break;
|
|
case exM_hlrPdp23:
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 63, 0,
|
|
&tmpBitValue);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 63, 1,
|
|
&tmpBitValue1);
|
|
tmpBitValue2 = tmpBitValue1 * 2 + tmpBitValue;
|
|
switch(tmpBitValue2)
|
|
{
|
|
case 0:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Reserved");
|
|
break;
|
|
case 1:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Level_1");
|
|
break;
|
|
case 2:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Level_2");
|
|
break;
|
|
case 3:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Level_3");
|
|
break;
|
|
}
|
|
break;
|
|
case exM_hlrPdp24:
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 63, 2,
|
|
&tmpBitValue1);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 63, 3,
|
|
&tmpBitValue2);
|
|
tmpBitValue = tmpBitValue2 * 2 + tmpBitValue1;
|
|
switch(tmpBitValue)
|
|
{
|
|
case 0:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "X*10ms");
|
|
break;
|
|
case 1:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "200ms+X*50ms");
|
|
break;
|
|
case 2:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "1000ms+X*100ms");
|
|
break;
|
|
case 3:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "2600ms+X*100ms");
|
|
break;
|
|
}
|
|
break;
|
|
case exM_hlrPdp25:
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 64, 0,
|
|
&tmpBitValue1);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 64, 1,
|
|
&tmpBitValue2);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 64, 2,
|
|
&tmpBitValue3);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 64, 3,
|
|
&tmpBitValue4);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 64, 4,
|
|
&tmpBitValue5);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 64, 5,
|
|
&tmpBitValue6);
|
|
tmpBitValue =tmpBitValue6 * 32 + tmpBitValue5 * 16 + tmpBitValue4 * 8
|
|
+ tmpBitValue3 * 4 + tmpBitValue2 * 2 + tmpBitValue1;
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "%d", tmpBitValue);
|
|
break;
|
|
case exM_hlrPdp26:
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 64, 6,
|
|
&tmpBitValue1);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 64, 7,
|
|
&tmpBitValue2);
|
|
tmpBitValue = tmpBitValue2 * 2 + tmpBitValue1;
|
|
switch (tmpBitValue) {
|
|
case 0:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "X*1Kbps");
|
|
break;
|
|
case 1:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "64Kbps+(X*8Kbps)");
|
|
break;
|
|
case 2:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "576Kbps+(X*64Kbps)");
|
|
break;
|
|
case 3:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "4672Kbps+(X*64Kbps)");
|
|
break;
|
|
}
|
|
break;
|
|
case exM_hlrPdp27:
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 65, 0,
|
|
&tmpBitValue1);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 65, 1,
|
|
&tmpBitValue2);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 65, 2,
|
|
&tmpBitValue3);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 65, 3,
|
|
&tmpBitValue4);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 65, 4,
|
|
&tmpBitValue5);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 65, 5,
|
|
&tmpBitValue6);
|
|
tmpBitValue =tmpBitValue6 * 32 + tmpBitValue5 * 16 + tmpBitValue4 * 8
|
|
+ tmpBitValue3 * 4 + tmpBitValue2 * 2 + tmpBitValue1;
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "%d", tmpBitValue);
|
|
break;
|
|
case exM_hlrPdp28:
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 65, 6,
|
|
&tmpBitValue1);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 65, 7,
|
|
&tmpBitValue2);
|
|
tmpBitValue = tmpBitValue2 * 2 + tmpBitValue1;
|
|
switch (tmpBitValue) {
|
|
case 0:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "X*1Kbps");
|
|
break;
|
|
case 1:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "64Kbps+(X*8Kbps)");
|
|
break;
|
|
case 2:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "576Kbps+(X*64Kbps)");
|
|
break;
|
|
case 3:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "4672Kbps+(X*64Kbps)");
|
|
break;
|
|
}
|
|
break;
|
|
case exM_hlrPdp29:
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 66, 0,
|
|
&tmpBitValue1);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 66, 1,
|
|
&tmpBitValue2);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 66, 2,
|
|
&tmpBitValue3);
|
|
tmpBitValue = tmpBitValue3 * 4 + tmpBitValue2 * 2 + tmpBitValue1;
|
|
switch (tmpBitValue) {
|
|
case 0:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Spare");
|
|
break;
|
|
case 1:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Speech");
|
|
break;
|
|
}
|
|
break;
|
|
case exM_hlrPdp30:
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 66, 4,
|
|
&tmpBitValue);
|
|
switch (tmpBitValue) {
|
|
case 0:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Not_optimised");
|
|
break;
|
|
case 1:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "Optimised");
|
|
break;
|
|
}
|
|
break;
|
|
case exM_hlrPdp32:
|
|
omc_AsciiToRbcd(&tmpBitValue,
|
|
cmdBuf->optDef[optNo].fieldValue + 134, 2);
|
|
switch (tmpBitValue) {
|
|
case 0:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "<=8600kbps");
|
|
break;
|
|
case 1:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "8700kbps");
|
|
break;
|
|
case 74:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "16000kbps");
|
|
break;
|
|
case 75:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "17Mbps");
|
|
break;
|
|
case 186:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "128Mbps");
|
|
break;
|
|
case 187:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "130Mbps");
|
|
break;
|
|
case 250:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "256Mbps");
|
|
break;
|
|
}
|
|
break;
|
|
case exM_hlrPdp33:
|
|
omc_AsciiToRbcd(&tmpBitValue,
|
|
cmdBuf->optDef[optNo].fieldValue + 136, 2);
|
|
switch (tmpBitValue) {
|
|
case 0:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "<=8600kbps");
|
|
break;
|
|
case 1:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "8700kbps");
|
|
break;
|
|
case 74:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "16000kbps");
|
|
break;
|
|
case 75:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "17Mbps");
|
|
break;
|
|
case 186:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "128Mbps");
|
|
break;
|
|
case 187:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "130Mbps");
|
|
break;
|
|
case 250:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "256Mbps");
|
|
break;
|
|
}
|
|
break;
|
|
case exM_hlrPdp34:
|
|
omc_AsciiToRbcd(&tmpBitValue,
|
|
cmdBuf->optDef[optNo].fieldValue + 138, 2);
|
|
switch (tmpBitValue) {
|
|
case 0:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "<=8600kbps");
|
|
break;
|
|
case 1:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "8700kbps");
|
|
break;
|
|
case 74:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "16000kbps");
|
|
break;
|
|
case 75:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "17Mbps");
|
|
break;
|
|
case 186:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "128Mbps");
|
|
break;
|
|
case 187:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "130Mbps");
|
|
break;
|
|
case 250:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "256Mbps");
|
|
break;
|
|
}
|
|
break;
|
|
case exM_hlrPdp35:
|
|
omc_AsciiToRbcd(&tmpBitValue,
|
|
cmdBuf->optDef[optNo].fieldValue + 140, 2);
|
|
switch (tmpBitValue) {
|
|
case 0:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "<=8600kbps");
|
|
break;
|
|
case 1:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "8700kbps");
|
|
break;
|
|
case 74:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "16000kbps");
|
|
break;
|
|
case 75:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "17Mbps");
|
|
break;
|
|
case 186:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "128Mbps");
|
|
break;
|
|
case 187:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "130Mbps");
|
|
break;
|
|
case 250:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "256Mbps");
|
|
break;
|
|
}
|
|
break;
|
|
case exM_hlrUserNo:
|
|
//user_no
|
|
for (i = 0; i < strlen(cmdBuf->optDef[optNo].fieldValue); i++) {
|
|
if (cmdBuf->optDef[optNo].fieldValue[i] != 'E') {
|
|
cmdBuf->optDef[optNo].optValue[i] =
|
|
cmdBuf->optDef[optNo].fieldValue[i];
|
|
} else {
|
|
cmdBuf->optDef[optNo].optValue[i] = '\0';
|
|
return (0);
|
|
}
|
|
}
|
|
if (strlen(cmdBuf->optDef[optNo].optValue) == 0) {
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "\"\"");
|
|
}
|
|
break;
|
|
|
|
default:
|
|
//printf("\n tmpSql=%s \n", cmdBuf->optDef[optNo].fieldValue);
|
|
if (tmpExMode >= 100 && tmpExMode < 200) {
|
|
int byteOffset = (int) ((tmpExMode - 100) / 10);
|
|
int bitOffset = tmpExMode % 10;
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, byteOffset,
|
|
bitOffset, &tmpBitValue);
|
|
if (tmpBitValue > 0) {
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "enable");
|
|
} else {
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "disable");
|
|
}
|
|
} else {
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "%s",
|
|
cmdBuf->optDef[optNo].fieldValue);
|
|
}
|
|
break;
|
|
}
|
|
} //end of if(cmdBuf->sysTypeNo == 330)
|
|
if (cmdBuf->sysTypeNo == 360||cmdBuf->sysTypeNo == 395) { //pps
|
|
if (tmpExMode == exM_ppsRentType) {
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 0,
|
|
&tmpBitValue);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 1,
|
|
&tmpBitValue1);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 2,
|
|
&tmpBitValue2);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 3,
|
|
&tmpBitValue3);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 4,
|
|
&tmpBitValue4);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 5,
|
|
&tmpBitValue5);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 6,
|
|
&tmpBitValue6);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 7,
|
|
&tmpBitValue7);
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "%d%d%d%d%d%d%d%d",
|
|
tmpBitValue7, tmpBitValue6, tmpBitValue5, tmpBitValue4,
|
|
tmpBitValue3, tmpBitValue2, tmpBitValue1, tmpBitValue);
|
|
} else if (tmpExMode == exM_ppsDate) {
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "%.*s", 14,
|
|
cmdBuf->optDef[optNo].fieldValue);
|
|
} else if (tmpExMode == exM_ppsCallType) {
|
|
i = atoi(cmdBuf->optDef[optNo].fieldValue);
|
|
if (i == 0)
|
|
strcpy(cmdBuf->optDef[optNo].optValue, "mo_call");
|
|
else if (i == 1)
|
|
strcpy(cmdBuf->optDef[optNo].optValue, "mt_call");
|
|
else if (i == 2)
|
|
strcpy(cmdBuf->optDef[optNo].optValue, "mf_call");
|
|
else
|
|
strcpy(cmdBuf->optDef[optNo].optValue, "mo_sms");
|
|
} else if (tmpExMode == exM_ppsSM) {
|
|
hex2dec(cmdBuf->optDef[optNo].fieldValue,
|
|
cmdBuf->optDef[optNo].optValue);
|
|
} else if (tmpExMode == exM_ppsBalance) {
|
|
if (cmdBuf->optDef[optNo].fieldValue[0] == '-')
|
|
cmdBuf->optDef[optNo].fieldValue[0] = '~';
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "%s",
|
|
cmdBuf->optDef[optNo].fieldValue);
|
|
} else if (tmpExMode == exM_ppsCardStatus) {
|
|
i = atoi(cmdBuf->optDef[optNo].fieldValue);
|
|
if (i == 0)
|
|
strcpy(cmdBuf->optDef[optNo].optValue, "Fresh");
|
|
else
|
|
strcpy(cmdBuf->optDef[optNo].optValue, "Charged");
|
|
} else if (tmpExMode == exM_ppsPoolAccountType) {
|
|
i = atoi(cmdBuf->optDef[optNo].fieldValue);
|
|
if (i == 0)
|
|
strcpy(cmdBuf->optDef[optNo].optValue, "normal");
|
|
else if (i == 1)
|
|
strcpy(cmdBuf->optDef[optNo].optValue, "parent");
|
|
else if (i == 2)
|
|
strcpy(cmdBuf->optDef[optNo].optValue, "child");
|
|
} else if (tmpExMode == exM_ppsFFPlanState) {
|
|
i = atoi(cmdBuf->optDef[optNo].fieldValue);
|
|
if (i == 0)
|
|
strcpy(cmdBuf->optDef[optNo].optValue, "normal");
|
|
else if (i == 1)
|
|
strcpy(cmdBuf->optDef[optNo].optValue, "suspend");
|
|
} else {
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "%s",
|
|
cmdBuf->optDef[optNo].fieldValue);
|
|
}
|
|
}
|
|
//20041101 start
|
|
if (cmdBuf->sysTypeNo == 390) { //vms
|
|
switch (tmpExMode) {
|
|
case exM_vmsHexDec:
|
|
hex2dec(cmdBuf->optDef[optNo].fieldValue,
|
|
cmdBuf->optDef[optNo].optValue);
|
|
break;
|
|
case exM_vmsMailboxId:
|
|
hex2dec(cmdBuf->optDef[optNo].fieldValue,
|
|
cmdBuf->optDef[optNo].optValue);
|
|
break;
|
|
case exM_vmsGreetingType:
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 0,
|
|
&tmpBitValue);
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 1,
|
|
&tmpBitValue1);
|
|
tmpBitValue2 = tmpBitValue1 * 2 + tmpBitValue;
|
|
switch (tmpBitValue2) {
|
|
case 0:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "system");
|
|
break;
|
|
case 1:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "hostname");
|
|
break;
|
|
case 2:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "personal");
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
break;
|
|
default:
|
|
//printf("\n tmpSql=%s \n", cmdBuf->optDef[optNo].fieldValue);
|
|
if (tmpExMode >= 100 && tmpExMode < 200) {
|
|
int byteOffset = (int) ((tmpExMode - 100) / 10);
|
|
int bitOffset = tmpExMode % 10;
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, byteOffset,
|
|
bitOffset, &tmpBitValue);
|
|
if (tmpBitValue > 0) {
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "enable");
|
|
} else {
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "disable");
|
|
}
|
|
} else {
|
|
//printf("%s=%s", cmdBuf->optDef[optNo].fieldName,
|
|
// cmdBuf->optDef[optNo].fieldValue);
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "%s",
|
|
cmdBuf->optDef[optNo].fieldValue);
|
|
//printf("%s=%s\n", cmdBuf->optDef[optNo].optName,
|
|
// cmdBuf->optDef[optNo].optValue);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
//20041101 end
|
|
|
|
if (cmdBuf->sysTypeNo == 370) { //mnp
|
|
switch (tmpExMode) {
|
|
case exM_mnpStatus:
|
|
tmpValue = atoi(cmdBuf->optDef[optNo].fieldValue);
|
|
if (tmpValue == 2) {
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "own_ported_out");
|
|
} else if (tmpValue == 3) {
|
|
sprintf(cmdBuf->optDef[optNo].optValue,
|
|
"foreign_ported_in");
|
|
} else {
|
|
sprintf(cmdBuf->optDef[optNo].optValue,
|
|
"foreign_ported_to_third_party");
|
|
}
|
|
break;
|
|
case exM_mnpDate:
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "%.*s", 8,
|
|
cmdBuf->optDef[optNo].fieldValue);
|
|
break;
|
|
default:
|
|
if (tmpExMode >= 100 && tmpExMode < 200) {
|
|
int byteOffset = (int) ((tmpExMode - 100) / 10);
|
|
int bitOffset = tmpExMode % 10;
|
|
getBitValue(cmdBuf->optDef[optNo].fieldValue, byteOffset,
|
|
bitOffset, &tmpBitValue);
|
|
if (tmpBitValue > 0) {
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "enable");
|
|
} else {
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "disable");
|
|
}
|
|
} else {
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "%s",
|
|
cmdBuf->optDef[optNo].fieldValue);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
//opps
|
|
if (cmdBuf->sysTypeNo == 375) {
|
|
switch (tmpExMode) {
|
|
case exM_imdmMsisdn:
|
|
for (i = 0; i < strlen(cmdBuf->optDef[optNo].fieldValue); i++) {
|
|
if (cmdBuf->optDef[optNo].fieldValue[i] != 'E') {
|
|
cmdBuf->optDef[optNo].optValue[i] =
|
|
cmdBuf->optDef[optNo].fieldValue[i];
|
|
} else {
|
|
cmdBuf->optDef[optNo].optValue[i] = '\0';
|
|
return (0);
|
|
}
|
|
}
|
|
break;
|
|
case exM_imdmImsi:
|
|
//imsi
|
|
j = strlen(cmdBuf->optDef[optNo].fieldValue);
|
|
//printf("exValueFieldToOpt,cmdBuf->optDef[optNo].fieldValue=+%s+,len=%d\n",cmdBuf->optDef[optNo].fieldValue[i],j);
|
|
for (i = 0; i < j; i++) {
|
|
if (cmdBuf->optDef[optNo].fieldValue[i] != '0') {
|
|
break;
|
|
}
|
|
}
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "%.*s", j - i,
|
|
cmdBuf->optDef[optNo].fieldValue + i);
|
|
if(j == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue,"000000000000000");
|
|
break;
|
|
case exM_imdmImei:
|
|
//imei
|
|
j = strlen(cmdBuf->optDef[optNo].fieldValue);
|
|
for (i = 0; i < j; i++) {
|
|
if (cmdBuf->optDef[optNo].fieldValue[i] != '0') {
|
|
break;
|
|
}
|
|
}
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "%.*s", j - i,
|
|
cmdBuf->optDef[optNo].fieldValue + i);
|
|
if(j == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue,"000000000000000");
|
|
break;
|
|
case exM_imdmOprFlag:
|
|
if(strcmp(cmdBuf->optDef[optNo].fieldValue,"0") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue,"OPR_0");
|
|
else if(strcasecmp(cmdBuf->optDef[optNo].fieldValue,"1") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue,"OPR_1");
|
|
else if(strcasecmp(cmdBuf->optDef[optNo].fieldValue,"2") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue,"OPR_2a");
|
|
else if(strcasecmp(cmdBuf->optDef[optNo].fieldValue,"3") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue,"OPR_2b");
|
|
else if(strcasecmp(cmdBuf->optDef[optNo].fieldValue,"4") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue,"IMDX_P1");
|
|
else if(strcasecmp(cmdBuf->optDef[optNo].fieldValue,"5") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue,"IMDX_P2");
|
|
else if(strcasecmp(cmdBuf->optDef[optNo].fieldValue,"6") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue,"IMDX_H");
|
|
else
|
|
sprintf(cmdBuf->optDef[optNo].optValue,"Unknown");
|
|
//printf("cmdBuf->optDef[optNo].fieldValue=%s\n",cmdBuf->optDef[optNo].fieldValue);
|
|
//sprintf(cmdBuf->optDef[optNo].optValue,"%s",cmdBuf->optDef[optNo].fieldValue);
|
|
break;
|
|
case exM_imdmClass:
|
|
if(strcmp(cmdBuf->optDef[optNo].fieldValue,"0") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue,"Ordinary");
|
|
else if(strcasecmp(cmdBuf->optDef[optNo].fieldValue,"1") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue,"Premium");
|
|
else if(strcasecmp(cmdBuf->optDef[optNo].fieldValue,"2") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue,"VIP");
|
|
else
|
|
sprintf(cmdBuf->optDef[optNo].optValue,"Unknown");
|
|
break;
|
|
case exM_imdmUserType:
|
|
if(strcmp(cmdBuf->optDef[optNo].fieldValue,"0") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue,"OPPS");
|
|
else if(strcasecmp(cmdBuf->optDef[optNo].fieldValue,"1") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue,"Reserved");
|
|
else if(strcasecmp(cmdBuf->optDef[optNo].fieldValue,"2") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue,"iPALIM");
|
|
else
|
|
sprintf(cmdBuf->optDef[optNo].optValue,"Unknown");
|
|
break;
|
|
//case exM_imdmType:
|
|
// sprintf(cmdBuf->optDef[optNo].optValue,"%s",cmdBuf->optDef[optNo].fieldValue);
|
|
// break;
|
|
//case exM_imdmStatus:
|
|
// sprintf(cmdBuf->optDef[optNo].optValue,"%s",cmdBuf->optDef[optNo].fieldValue);
|
|
// break;
|
|
}
|
|
}
|
|
|
|
//ipalim
|
|
if(cmdBuf->sysTypeNo == 378) {
|
|
switch(tmpExMode) {
|
|
case exM_ipalimImsi:
|
|
j = strlen(cmdBuf->optDef[optNo].fieldValue);
|
|
for(i = 0; i < j; i++) {
|
|
if(cmdBuf->optDef[optNo].fieldValue[i] != '0')
|
|
break;
|
|
}
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "%.*s", j - i, cmdBuf->optDef[optNo].fieldValue + i);
|
|
if(j == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue,"000000000000000");
|
|
break;
|
|
case exM_ipalimMsisdn:
|
|
for (i = 0; i < strlen(cmdBuf->optDef[optNo].fieldValue); i++) {
|
|
if (cmdBuf->optDef[optNo].fieldValue[i] != 'E') {
|
|
cmdBuf->optDef[optNo].optValue[i] =
|
|
cmdBuf->optDef[optNo].fieldValue[i];
|
|
} else {
|
|
cmdBuf->optDef[optNo].optValue[i] = '\0';
|
|
return (0);
|
|
}
|
|
}
|
|
if (strlen(cmdBuf->optDef[optNo].optValue) == 0) {
|
|
sprintf(cmdBuf->optDef[optNo].optValue, " ");
|
|
}
|
|
break;
|
|
case exM_ipalimMsisdnExtern:
|
|
for (i = 0; i < strlen(cmdBuf->optDef[optNo].fieldValue); i++) {
|
|
if (cmdBuf->optDef[optNo].fieldValue[i] != 'E') {
|
|
cmdBuf->optDef[optNo].optValue[i] =
|
|
cmdBuf->optDef[optNo].fieldValue[i];
|
|
} else {
|
|
cmdBuf->optDef[optNo].optValue[i] = '\0';
|
|
return (0);
|
|
}
|
|
}
|
|
if (strlen(cmdBuf->optDef[optNo].optValue) == 0) {
|
|
sprintf(cmdBuf->optDef[optNo].optValue, " ");
|
|
}
|
|
break;
|
|
case exM_ipalimTmsi:
|
|
for (i = 0; i < strlen(cmdBuf->optDef[optNo].fieldValue); i++) {
|
|
if (cmdBuf->optDef[optNo].fieldValue[i] != 'E') {
|
|
cmdBuf->optDef[optNo].optValue[i] =
|
|
cmdBuf->optDef[optNo].fieldValue[i];
|
|
} else {
|
|
cmdBuf->optDef[optNo].optValue[i] = '\0';
|
|
return (0);
|
|
}
|
|
}
|
|
if (strlen(cmdBuf->optDef[optNo].optValue) == 0) {
|
|
sprintf(cmdBuf->optDef[optNo].optValue, " ");
|
|
}
|
|
break;
|
|
case exM_ipalimLai:
|
|
for (i = 0; i < strlen(cmdBuf->optDef[optNo].fieldValue); i++) {
|
|
if (cmdBuf->optDef[optNo].fieldValue[i] != 'E') {
|
|
cmdBuf->optDef[optNo].optValue[i] =
|
|
cmdBuf->optDef[optNo].fieldValue[i];
|
|
} else {
|
|
cmdBuf->optDef[optNo].optValue[i] = '\0';
|
|
return (0);
|
|
}
|
|
}
|
|
if (strlen(cmdBuf->optDef[optNo].optValue) == 0) {
|
|
sprintf(cmdBuf->optDef[optNo].optValue, " ");
|
|
}
|
|
break;
|
|
case exM_ipalimType:
|
|
i=atoi(cmdBuf->optDef[optNo].fieldValue);
|
|
if(i == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue,"Private");
|
|
else if(i == 1)
|
|
sprintf(cmdBuf->optDef[optNo].optValue,"Public");
|
|
else if(i == 2)
|
|
sprintf(cmdBuf->optDef[optNo].optValue,"Hybrid");
|
|
else
|
|
sprintf(cmdBuf->optDef[optNo].optValue,"not_defined");
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
//auc
|
|
if (cmdBuf->sysTypeNo == 340) {
|
|
switch (tmpExMode) {
|
|
case exM_aucImsi:
|
|
//imsi
|
|
j = strlen(cmdBuf->optDef[optNo].fieldValue);
|
|
//printf("exValueFieldToOpt,cmdBuf->optDef[optNo].fieldValue=+%s+,len=%d\n",cmdBuf->optDef[optNo].fieldValue[i],j);
|
|
for (i = 0; i < j; i++) {
|
|
if (cmdBuf->optDef[optNo].fieldValue[i] != '0') {
|
|
break;
|
|
}
|
|
}
|
|
sprintf(cmdBuf->optDef[optNo].optValue, "%.*s", j - i,
|
|
cmdBuf->optDef[optNo].fieldValue + i);
|
|
if(j == 0)
|
|
sprintf(cmdBuf->optDef[optNo].optValue,"000000000000000");
|
|
break;
|
|
}
|
|
}
|
|
|
|
return (0);
|
|
}
|
|
|
|
/*************************************************
|
|
Function: // exValueOptToField
|
|
Description: // 参数的值从输入输出的格式转换成数据库的格式
|
|
Calls: // isxdigit; isdigit;
|
|
Called By: // changeDefaultValueProcInput; doCmdReadAccount; doCmdModifyAccount; .....
|
|
Table Accessed: //
|
|
Table Updated: //
|
|
Input: // optNo:the index of the parameter;
|
|
Output: //
|
|
Return: // 0:successful; 1:failed;
|
|
Others: //
|
|
*************************************************/
|
|
int exValueOptToField(int optNo)
|
|
{
|
|
int i = 0;
|
|
int j = 0;
|
|
int optValueType;
|
|
float tmpField = 0;
|
|
char tmpStr[15];
|
|
char tmpStr_1[15];
|
|
char tmpValue[64];
|
|
int tmp = 0;
|
|
|
|
int tmpExMode;
|
|
|
|
//general check the optValue
|
|
if (cmdBuf->optDef[optNo].exMode > 999) {
|
|
//printf("%ld\n",cmdBuf->optDef[optNo].exMode);
|
|
optValueType = cmdBuf->optDef[optNo].exMode / 10000000;
|
|
//writeDebug("%ld\n,optValueType:%d,:%s,%d",cmdBuf->optDef[optNo].exMode,optValueType,cmdBuf->optDef[optNo].optValue,strlen(cmdBuf->optDef[optNo].optValue));
|
|
switch (optValueType) {
|
|
case 0:
|
|
if (strlen(cmdBuf->optDef[optNo].optValue) <
|
|
cmdBuf->optDef[optNo].exMode % 10000000 / 100000
|
|
|| strlen(cmdBuf->optDef[optNo].optValue) >
|
|
cmdBuf->optDef[optNo].exMode % 10000000 % 100000 / 1000)
|
|
return (1);
|
|
for (i = 0; i < strlen(cmdBuf->optDef[optNo].optValue); i++) {
|
|
if (isdigit(cmdBuf->optDef[optNo].optValue[i]) <= 0) {
|
|
return (1);
|
|
}
|
|
}
|
|
break;
|
|
case 1:
|
|
if (strlen(cmdBuf->optDef[optNo].optValue) <
|
|
cmdBuf->optDef[optNo].exMode % 10000000 / 100000
|
|
|| strlen(cmdBuf->optDef[optNo].optValue) >
|
|
cmdBuf->optDef[optNo].exMode % 10000000 % 100000 / 1000)
|
|
return (1);
|
|
for (i = 0; i < strlen(cmdBuf->optDef[optNo].optValue); i++) {
|
|
if (isxdigit(cmdBuf->optDef[optNo].optValue[i]) <= 0)
|
|
return (1);
|
|
}
|
|
break;
|
|
case 2:
|
|
if (cmdBuf->optDef[optNo].optValue[0] == '~') {
|
|
if (strlen(cmdBuf->optDef[optNo].optValue) < 2
|
|
|| strlen(cmdBuf->optDef[optNo].optValue) >
|
|
cmdBuf->optDef[optNo].exMode % 10000000 / 100000)
|
|
return (1);
|
|
for (i = 1; i < strlen(cmdBuf->optDef[optNo].optValue);
|
|
i++) {
|
|
if (isdigit(cmdBuf->optDef[optNo].optValue[i]) <= 0)
|
|
return (1);
|
|
}
|
|
} else {
|
|
if (strlen(cmdBuf->optDef[optNo].optValue) < 1
|
|
|| strlen(cmdBuf->optDef[optNo].optValue) >
|
|
cmdBuf->optDef[optNo].exMode % 10000000 % 100000 /
|
|
1000)
|
|
return (1);
|
|
for (i = 0; i < strlen(cmdBuf->optDef[optNo].optValue);
|
|
i++) {
|
|
if (isdigit(cmdBuf->optDef[optNo].optValue[i]) <= 0)
|
|
return (1);
|
|
}
|
|
}
|
|
|
|
break;
|
|
case 3:
|
|
if (cmdBuf->optDef[optNo].optValue[0] == '~') {
|
|
if (strlen(cmdBuf->optDef[optNo].optValue) < 2
|
|
|| strlen(cmdBuf->optDef[optNo].optValue) >
|
|
cmdBuf->optDef[optNo].exMode % 10000000 / 100000)
|
|
return (1);
|
|
for (i = 1; i < strlen(cmdBuf->optDef[optNo].optValue);
|
|
i++) {
|
|
if (isxdigit(cmdBuf->optDef[optNo].optValue[i]) <= 0)
|
|
return (1);
|
|
}
|
|
} else {
|
|
if (strlen(cmdBuf->optDef[optNo].optValue) < 1
|
|
|| strlen(cmdBuf->optDef[optNo].optValue) >
|
|
cmdBuf->optDef[optNo].exMode % 10000000 % 100000 /
|
|
1000)
|
|
return (1);
|
|
for (i = 0; i < strlen(cmdBuf->optDef[optNo].optValue);
|
|
i++) {
|
|
if (isxdigit(cmdBuf->optDef[optNo].optValue[i]) <= 0)
|
|
return (1);
|
|
}
|
|
}
|
|
|
|
break;
|
|
case 4:
|
|
for (i = 0; i < strlen(cmdBuf->optDef[optNo].optValue); i++) {
|
|
if (isdigit(cmdBuf->optDef[optNo].optValue[i]) <= 0)
|
|
return (1);
|
|
}
|
|
if (strlen(cmdBuf->optDef[optNo].optValue) <= 0)
|
|
return (1);
|
|
sprintf(tmpValue, "%lx", atol(cmdBuf->optDef[optNo].optValue));
|
|
if (strlen(tmpValue) <
|
|
cmdBuf->optDef[optNo].exMode % 10000000 / 100000
|
|
|| strlen(tmpValue) >
|
|
cmdBuf->optDef[optNo].exMode % 10000000 % 100000 / 1000)
|
|
return (1);
|
|
break;
|
|
case 5:
|
|
if (cmdBuf->optDef[optNo].optValue[0] == '~') {
|
|
for (i = 1; i < strlen(cmdBuf->optDef[optNo].optValue);
|
|
i++) {
|
|
if (isdigit(cmdBuf->optDef[optNo].optValue[i]) <= 0)
|
|
return (1);
|
|
}
|
|
if (strlen(cmdBuf->optDef[optNo].optValue) <= 1)
|
|
return (1);
|
|
sprintf(tmpValue, "%lx",
|
|
atol(cmdBuf->optDef[optNo].optValue));
|
|
if (strlen(tmpValue) < 2
|
|
|| strlen(tmpValue) >
|
|
cmdBuf->optDef[optNo].exMode % 10000000 / 100000)
|
|
return (1);
|
|
} else {
|
|
for (i = 0; i < strlen(cmdBuf->optDef[optNo].optValue);
|
|
i++) {
|
|
if (isxdigit(cmdBuf->optDef[optNo].optValue[i]) <= 0)
|
|
return (1);
|
|
}
|
|
if (strlen(cmdBuf->optDef[optNo].optValue) <= 0)
|
|
return (1);
|
|
sprintf(tmpValue, "%lx",
|
|
atol(cmdBuf->optDef[optNo].optValue));
|
|
if (strlen(tmpValue) < 1
|
|
|| strlen(tmpValue) >
|
|
cmdBuf->optDef[optNo].exMode % 10000000 % 100000 /
|
|
1000)
|
|
return (1);
|
|
}
|
|
break;
|
|
default:
|
|
if (strlen(cmdBuf->optDef[optNo].optValue) <
|
|
cmdBuf->optDef[optNo].exMode % 10000000 / 100000
|
|
|| strlen(cmdBuf->optDef[optNo].optValue) >
|
|
cmdBuf->optDef[optNo].exMode % 10000000 % 100000 / 1000)
|
|
return (1);
|
|
}
|
|
}
|
|
|
|
if ((cmdBuf->sysTypeNo == 330)
|
|
&& (!strcmp(cmdBuf->optDef[OptNo_index].fieldName, "inter_msisdn"))
|
|
&& optNo == OptNo_index)
|
|
tmpExMode = 0;
|
|
else
|
|
tmpExMode = cmdBuf->optDef[optNo].exMode % 1000;
|
|
//writeDebug("optNo:%d,tmpExMode:%d,fieldName:%s",optNo,tmpExMode,cmdBuf->optDef[OptNo_index].fieldName);
|
|
if (cmdBuf->sysTypeNo == 0) {
|
|
i = strlen(cmdBuf->optDef[optNo].optValue);
|
|
if ((cmdBuf->optDef[optNo].optValue[i - 1] == '\n')
|
|
|| (cmdBuf->optDef[optNo].optValue[i - 1] == '\r')) {
|
|
cmdBuf->optDef[optNo].optValue[i - 1] = '\0';
|
|
i = i - 1;
|
|
}
|
|
if ((cmdBuf->optDef[optNo].optValue[i - 1] == '\n')
|
|
|| (cmdBuf->optDef[optNo].optValue[i - 1] == '\r')) {
|
|
cmdBuf->optDef[optNo].optValue[i - 1] = '\0';
|
|
}
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%s",
|
|
cmdBuf->optDef[optNo].optValue);
|
|
return (0);
|
|
}
|
|
|
|
if (cmdBuf->sysTypeNo == 330) {
|
|
switch (tmpExMode) {
|
|
case exM_hlrImsi:
|
|
//imsi
|
|
|
|
if (strlen(cmdBuf->optDef[optNo].optValue) <= 15) {
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "0%s",
|
|
cmdBuf->optDef[optNo].optValue);
|
|
|
|
} else {
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%s",
|
|
cmdBuf->optDef[optNo].optValue);
|
|
|
|
}
|
|
|
|
break;
|
|
case exM_hlrCcNdcSn:
|
|
//cc_ndc_sn
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "91%s",
|
|
cmdBuf->optDef[optNo].optValue);
|
|
for (i = strlen(cmdBuf->optDef[optNo].fieldValue); i < 18; i++) {
|
|
cmdBuf->optDef[optNo].fieldValue[i] = 'E';
|
|
}
|
|
//cmdBuf->optDef[optNo].fieldValue[18] = '\0';
|
|
break;
|
|
case exM_hlrMsisdn:
|
|
//basic_msisdn,cfu_num,cfb_num,cfnry_num,cfnrc_num
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "\"\"") == 0) {
|
|
memset(cmdBuf->optDef[optNo].fieldValue, 0,
|
|
sizeof(cmdBuf->optDef[optNo].fieldValue));
|
|
} else {
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%s",
|
|
cmdBuf->optDef[optNo].optValue);
|
|
}
|
|
for (i = strlen(cmdBuf->optDef[optNo].fieldValue); i < 18; i++) {
|
|
cmdBuf->optDef[optNo].fieldValue[i] = 'E';
|
|
}
|
|
break;
|
|
case exM_hlrNam:
|
|
//nam
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "gsm") == 0) {
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "01");
|
|
} else if (strcmp(cmdBuf->optDef[optNo].optValue, "gprs") == 0) {
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "02");
|
|
} else if (strcmp(cmdBuf->optDef[optNo].optValue, "dual") == 0) {
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "00");
|
|
} else {
|
|
return (1);
|
|
}
|
|
break;
|
|
case exM_hlrState:
|
|
//imsi_flag,baoc,boic,boic_hplmn,baic,cfu,cfb
|
|
//cfnry,cfnrc,clip,clir,colp,colr,ch,cw
|
|
//printf("optValue=%s\n",cmdBuf->optDef[optNo].optValue);
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "enable") == 0) {
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "01");
|
|
} else if (strcmp(cmdBuf->optDef[optNo].optValue, "disable") ==
|
|
0) {
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "00");
|
|
} else
|
|
return (1);
|
|
//printf("fieldValue=%s\n",cmdBuf->optDef[optNo].fieldValue);
|
|
break;
|
|
case exM_hlrClirpm:
|
|
if (strcmp
|
|
(cmdBuf->optDef[optNo].optValue,
|
|
"Temporary(Default:Allowed)") == 0) {
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 5, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 4, 0);
|
|
} else
|
|
if (strcmp
|
|
(cmdBuf->optDef[optNo].optValue,
|
|
"Temporary(Default:Restricted)") == 0) {
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 5, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 4, 1);
|
|
} else if (strcmp(cmdBuf->optDef[optNo].optValue, "Permanent") == 0) { //Permanent
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 4, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 5, 0);
|
|
} else
|
|
return (1);
|
|
break;
|
|
case exM_hlrSms:
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "None") == 0) {
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 2, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 3, 0);
|
|
} else
|
|
if (strcmp
|
|
(cmdBuf->optDef[optNo].optValue, "Mobile_Term") == 0) {
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 2, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 3, 0);
|
|
} else if (strcmp
|
|
(cmdBuf->optDef[optNo].optValue,
|
|
"Mobile_Org") == 0) {
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 2, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 3, 1);
|
|
} else if (strcmp(cmdBuf->optDef[optNo].optValue, "Both") == 0) {
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 2, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 3, 1);
|
|
} else
|
|
return (1);
|
|
break;
|
|
/* case exM_hlrCfuopt:
|
|
case exM_hlrCfnrcopt:
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "Calling_Party:ON")
|
|
== 0) {
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 5, 1);
|
|
} else {
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 5, 0);
|
|
}
|
|
break;
|
|
case exM_hlrCfbopt:
|
|
case exM_hlrCfnryopt:
|
|
if (strcmp
|
|
(cmdBuf->optDef[optNo].optValue,
|
|
"Calling_Party:ON/Fwd_Party:ON") == 0) {
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 5, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 7, 1);
|
|
} else
|
|
if (strcmp
|
|
(cmdBuf->optDef[optNo].optValue,
|
|
"Calling_Party:ON/Fwd_Party:OFF") == 0) {
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 5, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 7, 0);
|
|
} else
|
|
if (strcmp
|
|
(cmdBuf->optDef[optNo].optValue,
|
|
"Calling_Party:OFF/Fwd_Party:ON") == 0) {
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 5, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 7, 1);
|
|
} else {
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 5, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 7, 0);
|
|
}
|
|
break;
|
|
*/ case exM_hlrCfnryTimer:
|
|
//cfnry_timer
|
|
//tmpInt = atoi(cmdBuf->optDef[optNo].optValue);
|
|
i = strlen(cmdBuf->optDef[optNo].optValue);
|
|
if ((cmdBuf->optDef[optNo].optValue[i - 1] == '\n')
|
|
|| (cmdBuf->optDef[optNo].optValue[i - 1] == '\r')) {
|
|
cmdBuf->optDef[optNo].optValue[i - 1] = '\0';
|
|
i = i - 1;
|
|
}
|
|
if ((cmdBuf->optDef[optNo].optValue[i - 1] == '\n')
|
|
|| (cmdBuf->optDef[optNo].optValue[i - 1] == '\r'))
|
|
cmdBuf->optDef[optNo].optValue[i - 1] = '\0';
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%X",
|
|
atoi(cmdBuf->optDef[optNo].optValue));
|
|
break;
|
|
case exM_hlrCategory:
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "Unknown") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "00");
|
|
else if (strcmp(cmdBuf->optDef[optNo].optValue, "French") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "01");
|
|
else if (strcmp(cmdBuf->optDef[optNo].optValue, "English") ==
|
|
0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "02");
|
|
else if (strcmp(cmdBuf->optDef[optNo].optValue, "German") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "03");
|
|
else if (strcmp(cmdBuf->optDef[optNo].optValue, "Russian") ==
|
|
0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "04");
|
|
else if (strcmp(cmdBuf->optDef[optNo].optValue, "Spanish") ==
|
|
0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "05");
|
|
else if (strcmp
|
|
(cmdBuf->optDef[optNo].optValue,
|
|
"Ordinary_calling_subscriber") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "0A");
|
|
else if (strcmp
|
|
(cmdBuf->optDef[optNo].optValue,
|
|
"Priory_calling_subscriber") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "0B");
|
|
else
|
|
return (1);
|
|
break;
|
|
case exM_hlrRszi:
|
|
i = (optNo - optNo_Rszi);
|
|
sprintf(tmpStr, "%2X", atoi(cmdBuf->optDef[optNo].optValue));
|
|
cmdBuf->optDef[optNo].fieldValue[i * 2] = tmpStr[0];
|
|
cmdBuf->optDef[optNo].fieldValue[i * 2 + 1] = tmpStr[1];
|
|
break;
|
|
case exM_hlrCsrr:
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "No_restriction") ==
|
|
0) {
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "FF");
|
|
break;
|
|
}
|
|
if (strlen(cmdBuf->optDef[optNo].optValue) > 2)
|
|
return (1);
|
|
for (i = 0; i < strlen(cmdBuf->optDef[optNo].optValue); i++) {
|
|
if (isdigit(cmdBuf->optDef[optNo].optValue[i]) <= 0)
|
|
return (1);
|
|
}
|
|
i = atoi(cmdBuf->optDef[optNo].optValue);
|
|
switch (i) {
|
|
case 0:
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%2d", i);
|
|
break;
|
|
case 1:
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%2d", i);
|
|
break;
|
|
case 2:
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%2d", i);
|
|
break;
|
|
case 3:
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%2d", i);
|
|
break;
|
|
case 4:
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%2d", i);
|
|
break;
|
|
case 5:
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%2d", i);
|
|
break;
|
|
case 6:
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%2d", i);
|
|
break;
|
|
case 7:
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%2d", i);
|
|
break;
|
|
default:
|
|
return (1);
|
|
}
|
|
break;
|
|
case exM_hlrCbsp:
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "Control_provider")
|
|
== 0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "00");
|
|
else if (strcmp
|
|
(cmdBuf->optDef[optNo].optValue,
|
|
"Control_sub_pwd") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "01");
|
|
else if (strcmp
|
|
(cmdBuf->optDef[optNo].optValue,
|
|
"Control_sub_not_pwd") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "02");
|
|
else
|
|
return (1);
|
|
break;
|
|
case exM_hlrCbwpa:
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%s",
|
|
cmdBuf->optDef[optNo].optValue);
|
|
break;
|
|
case exM_hlrOCsi1:
|
|
sprintf(tmpStr, "%2x", atoi(cmdBuf->optDef[optNo].optValue));
|
|
for (i = 0; i < 2; i++)
|
|
cmdBuf->optDef[optNo].fieldValue[i + 0] = tmpStr[i];
|
|
break;
|
|
case exM_hlrOCsi2:
|
|
sprintf(tmpStr, "%8lx", atol(cmdBuf->optDef[optNo].optValue));
|
|
for (i = 0; i < 8; i++)
|
|
cmdBuf->optDef[optNo].fieldValue[i + 24] = tmpStr[i];
|
|
break;
|
|
case exM_hlrOCsi3:
|
|
i = strlen(cmdBuf->optDef[optNo].optValue);
|
|
for (j = 0; j < i; j++)
|
|
cmdBuf->optDef[optNo].fieldValue[j + 6] =
|
|
cmdBuf->optDef[optNo].optValue[j];
|
|
for (; j < 18; j++)
|
|
cmdBuf->optDef[optNo].fieldValue[j + 6] = 'E';
|
|
break;
|
|
case exM_hlrOCsi4:
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "Release_call") ==
|
|
0)
|
|
cmdBuf->optDef[optNo].fieldValue[3] = '1';
|
|
else if (strcmp
|
|
(cmdBuf->optDef[optNo].optValue,
|
|
"Continue_call") == 0)
|
|
cmdBuf->optDef[optNo].fieldValue[3] = '0';
|
|
else
|
|
return (1);
|
|
break;
|
|
case exM_hlrOCsi5:
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "In_use") == 0)
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 16, 0, 1);
|
|
else if (strcmp(cmdBuf->optDef[optNo].optValue, "Not_use") ==
|
|
0)
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 16, 0, 0);
|
|
else
|
|
return (1);
|
|
break;
|
|
case exM_hlrOCsi6:
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "Enabling") == 0)
|
|
cmdBuf->optDef[optNo].fieldValue[35] = '1';
|
|
else if (strcmp(cmdBuf->optDef[optNo].optValue, "Inhabiting")
|
|
== 0)
|
|
cmdBuf->optDef[optNo].fieldValue[35] = '0';
|
|
else
|
|
return (1);
|
|
break;
|
|
case exM_hlrOCsi7:
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "In_use") == 0)
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 16, 2, 1);
|
|
else if (strcmp(cmdBuf->optDef[optNo].optValue, "Not_use") ==
|
|
0)
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 16, 2, 0);
|
|
else
|
|
return (1);
|
|
break;
|
|
case exM_hlrOCsi8:
|
|
i = strlen(cmdBuf->optDef[optNo].optValue);
|
|
for (j = 0; j < i; j++)
|
|
cmdBuf->optDef[optNo].fieldValue[j + 38] =
|
|
cmdBuf->optDef[optNo].optValue[j];
|
|
for (; j < 18; j++)
|
|
cmdBuf->optDef[optNo].fieldValue[j + 38] = 'E';
|
|
break;
|
|
case exM_hlrOCsi9:
|
|
i = strlen(cmdBuf->optDef[optNo].optValue);
|
|
for (j = 0; j < i; j++)
|
|
cmdBuf->optDef[optNo].fieldValue[j + 56] =
|
|
cmdBuf->optDef[optNo].optValue[j];
|
|
for (; j < 18; j++)
|
|
cmdBuf->optDef[optNo].fieldValue[j + 56] = 'E';
|
|
break;
|
|
case exM_hlrOCsi10:
|
|
i = strlen(cmdBuf->optDef[optNo].optValue);
|
|
for (j = 0; j < i; j++)
|
|
cmdBuf->optDef[optNo].fieldValue[j + 74] =
|
|
cmdBuf->optDef[optNo].optValue[j];
|
|
for (; j < 18; j++)
|
|
cmdBuf->optDef[optNo].fieldValue[j + 74] = 'E';
|
|
break;
|
|
case exM_hlrOCsi11:
|
|
i = strlen(cmdBuf->optDef[optNo].optValue);
|
|
for (j = 0; j < i; j++)
|
|
cmdBuf->optDef[optNo].fieldValue[j + 92] =
|
|
cmdBuf->optDef[optNo].optValue[j];
|
|
for (; j < 18; j++)
|
|
cmdBuf->optDef[optNo].fieldValue[j + 92] = 'E';
|
|
break;
|
|
case exM_hlrOCsi12:
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "In_use") == 0)
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 16, 3, 1);
|
|
else if (strcmp(cmdBuf->optDef[optNo].optValue, "Not_use") ==
|
|
0)
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 16, 3, 0);
|
|
else
|
|
return (1);
|
|
break;
|
|
case exM_hlrOCsi13:
|
|
sprintf(tmpStr, "%2x", atoi(cmdBuf->optDef[optNo].optValue));
|
|
for (i = 0; i < 2; i++)
|
|
cmdBuf->optDef[optNo].fieldValue[i + 110] = tmpStr[i];
|
|
break;
|
|
case exM_hlrOCsi14:
|
|
sprintf(tmpStr, "%2x", atoi(cmdBuf->optDef[optNo].optValue));
|
|
for (i = 0; i < 2; i++)
|
|
cmdBuf->optDef[optNo].fieldValue[i + 112] = tmpStr[i];
|
|
break;
|
|
case exM_hlrOCsi15:
|
|
sprintf(tmpStr, "%2x", atoi(cmdBuf->optDef[optNo].optValue));
|
|
for (i = 0; i < 2; i++)
|
|
cmdBuf->optDef[optNo].fieldValue[i + 114] = tmpStr[i];
|
|
break;
|
|
case exM_hlrOCsi16:
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "In_use") == 0)
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 16, 1, 1);
|
|
else if (strcmp(cmdBuf->optDef[optNo].optValue, "Not_use") ==
|
|
0)
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 16, 1, 0);
|
|
else
|
|
return (1);
|
|
break;
|
|
case exM_hlrOCsi17:
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "Not_forward") == 0)
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 18, 0, 1);
|
|
else if (strcmp(cmdBuf->optDef[optNo].optValue, "Forward") ==
|
|
0)
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 18, 0, 0);
|
|
else
|
|
return (1);
|
|
break;
|
|
case exM_hlrOCsi18:
|
|
sprintf(tmpStr, "%2x", atoi(cmdBuf->optDef[optNo].optValue));
|
|
for (i = 0; i < 2; i++)
|
|
cmdBuf->optDef[optNo].fieldValue[i + 4] = tmpStr[i];
|
|
break;
|
|
case exM_hlrSsCsi:
|
|
j = optNo - optNo_Sscsi;
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "cd") == 0) {
|
|
cmdBuf->optDef[optNo].fieldValue[0 + j * 2] = '2';
|
|
cmdBuf->optDef[optNo].fieldValue[0 + j * 2 + 1] = '4';
|
|
} else if (strcmp(cmdBuf->optDef[optNo].optValue, "ect") == 0) {
|
|
cmdBuf->optDef[optNo].fieldValue[0 + j * 2] = '3';
|
|
cmdBuf->optDef[optNo].fieldValue[0 + j * 2 + 1] = '1';
|
|
} else if (strcmp(cmdBuf->optDef[optNo].optValue, "multiPTY")
|
|
== 0) {
|
|
cmdBuf->optDef[optNo].fieldValue[0 + j * 2] = '5';
|
|
cmdBuf->optDef[optNo].fieldValue[0 + j * 2 + 1] = '1';
|
|
} else if (strcmp(cmdBuf->optDef[optNo].optValue, "None")
|
|
== 0) {
|
|
cmdBuf->optDef[optNo].fieldValue[0 + j * 2] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[0 + j * 2 + 1] = '0';
|
|
} else
|
|
return (1);
|
|
break;
|
|
case exM_hlrSsCsi1:
|
|
i = strlen(cmdBuf->optDef[optNo].optValue);
|
|
if(i < 11 || i > 18)
|
|
return 1;
|
|
for (j = 0; j < i; j++)
|
|
cmdBuf->optDef[optNo].fieldValue[j + 8] =
|
|
cmdBuf->optDef[optNo].optValue[j];
|
|
for (; j < 18; j++)
|
|
cmdBuf->optDef[optNo].fieldValue[j + 8] = 'E';
|
|
break;
|
|
case exM_hlrPdp1:
|
|
if (!strcmp(cmdBuf->optDef[optNo].optValue, "enable")) {
|
|
cmdBuf->optDef[optNo].fieldValue[0] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[1] = '1';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "disable")) {
|
|
cmdBuf->optDef[optNo].fieldValue[0] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[1] = '0';
|
|
} else
|
|
return (1);
|
|
break;
|
|
case exM_hlrPdp2:
|
|
if (!strcmp(cmdBuf->optDef[optNo].optValue, "IPv4")) {
|
|
sprintf(tmpStr, "%4X", 289);
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "IPv6")) {
|
|
sprintf(tmpStr, "%4X", 343);
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "X.25")) {
|
|
sprintf(tmpStr, "%4X", 0);
|
|
} else
|
|
return (1);
|
|
for (i = 0; i < 4; i++)
|
|
cmdBuf->optDef[optNo].fieldValue[2 + i] = tmpStr[i];
|
|
break;
|
|
case exM_hlrPdp3:
|
|
if (cmdBuf->optDef[optNo - 1].optFlag[0] == 1) {
|
|
if (!strcmp(cmdBuf->optDef[optNo - 1].optValue, "IPv4")) {
|
|
if(strcasecmp(cmdBuf->optDef[optNo].optValue,"null") == 0)
|
|
{
|
|
sprintf(tmpValue, "0000000000");
|
|
strcat(tmpValue, "EEEEEEEEEEEEEEEEEEEEEEEE");
|
|
for (i = 0; i < 34; i++)
|
|
cmdBuf->optDef[optNo].fieldValue[6 + i] =
|
|
tmpValue[i];
|
|
}
|
|
else
|
|
{
|
|
|
|
sprintf(tmpValue, "04");
|
|
j = 0;
|
|
tmpStr[0] = 0;
|
|
for (i = 0;
|
|
i < strlen(cmdBuf->optDef[optNo].optValue) + 1;
|
|
i++) {
|
|
if (isdigit(cmdBuf->optDef[optNo].optValue[i])) {
|
|
tmpStr[j] = cmdBuf->optDef[optNo].optValue[i];
|
|
j++;
|
|
} else if (cmdBuf->optDef[optNo].optValue[i] == '.'
|
|
|| cmdBuf->optDef[optNo].optValue[i] ==
|
|
0) {
|
|
if (j > 3 || j < 1)
|
|
return (1);
|
|
tmpStr[j] = 0;
|
|
if (atoi(tmpStr) > 255)
|
|
return (1);
|
|
sprintf(tmpStr_1, "%02X", atoi(tmpStr));
|
|
strcat(tmpValue, tmpStr_1);
|
|
j = 0;
|
|
tmpStr[0] = 0;
|
|
} else
|
|
return (1);
|
|
}
|
|
if (strlen(tmpValue) != 10)
|
|
return (1);
|
|
strcat(tmpValue, "EEEEEEEEEEEEEEEEEEEEEEEE");
|
|
for (i = 0; i < 34; i++)
|
|
cmdBuf->optDef[optNo].fieldValue[6 + i] =
|
|
tmpValue[i];
|
|
}
|
|
} else
|
|
if (!strcmp
|
|
(cmdBuf->optDef[optNo - 1].optValue, "IPv6")) {
|
|
sprintf(tmpValue, "10");
|
|
j = 0;
|
|
tmpStr[0] = 0;
|
|
for (i = 0;
|
|
i < strlen(cmdBuf->optDef[optNo].optValue) + 1;
|
|
i++) {
|
|
if (isxdigit(cmdBuf->optDef[optNo].optValue[i])) {
|
|
tmpStr[j] = cmdBuf->optDef[optNo].optValue[i];
|
|
j++;
|
|
} else if (cmdBuf->optDef[optNo].optValue[i] == ':'
|
|
|| cmdBuf->optDef[optNo].optValue[i] ==
|
|
0) {
|
|
if (j != 4) {
|
|
return (1);
|
|
}
|
|
tmpStr[j] = 0;
|
|
strcat(tmpValue, tmpStr);
|
|
j = 0;
|
|
tmpStr[0] = 0;
|
|
} else {
|
|
return (1);
|
|
}
|
|
}
|
|
|
|
if (strlen(tmpValue) != 34) {
|
|
return (1);
|
|
}
|
|
for (i = 0; i < 34; i++)
|
|
cmdBuf->optDef[optNo].fieldValue[6 + i] =
|
|
tmpValue[i];
|
|
} else
|
|
if (!strcmp
|
|
(cmdBuf->optDef[optNo - 1].optValue, "X.25")) {
|
|
if (strlen(cmdBuf->optDef[optNo].optValue) != 14
|
|
&& strlen(cmdBuf->optDef[optNo].optValue) != 12)
|
|
return (1);
|
|
sprintf(tmpValue, "%02X",
|
|
strlen(cmdBuf->optDef[optNo].optValue) / 2);
|
|
for (i = 0; i < strlen(cmdBuf->optDef[optNo].optValue);
|
|
i++) {
|
|
if (!isdigit(cmdBuf->optDef[optNo].optValue[i]))
|
|
return (1);
|
|
}
|
|
strcat(tmpValue, cmdBuf->optDef[optNo].optValue);
|
|
for (i = strlen(tmpValue); i < 34; i++)
|
|
tmpValue[i] = 'E';
|
|
for (i = 0; i < 34; i++)
|
|
cmdBuf->optDef[optNo].fieldValue[6 + i] =
|
|
tmpValue[i];
|
|
} else
|
|
return (1);
|
|
} else {
|
|
if (strchr(cmdBuf->optDef[optNo].optValue, '.')) {
|
|
sprintf(tmpValue, "04");
|
|
j = 0;
|
|
tmpStr[0] = 0;
|
|
for (i = 0;
|
|
i < strlen(cmdBuf->optDef[optNo].optValue) + 1;
|
|
i++) {
|
|
if (isdigit(cmdBuf->optDef[optNo].optValue[i])) {
|
|
tmpStr[j] = cmdBuf->optDef[optNo].optValue[i];
|
|
j++;
|
|
} else if (cmdBuf->optDef[optNo].optValue[i] == '.'
|
|
|| cmdBuf->optDef[optNo].optValue[i] ==
|
|
0) {
|
|
if (j > 3 || j < 1)
|
|
return (1);
|
|
tmpStr[j] = 0;
|
|
if (atoi(tmpStr) > 255)
|
|
return (1);
|
|
sprintf(tmpStr_1, "%02X", atoi(tmpStr));
|
|
strcat(tmpValue, tmpStr_1);
|
|
j = 0;
|
|
tmpStr[0] = 0;
|
|
} else
|
|
return (1);
|
|
}
|
|
if (strlen(tmpValue) != 10)
|
|
return (1);
|
|
strcat(tmpValue, "EEEEEEEEEEEEEEEEEEEEEEEE");
|
|
for (i = 0; i < 34; i++)
|
|
cmdBuf->optDef[optNo].fieldValue[6 + i] =
|
|
tmpValue[i];
|
|
} else if (strchr(cmdBuf->optDef[optNo].optValue, ':')) {
|
|
sprintf(tmpValue, "10");
|
|
j = 0;
|
|
tmpStr[0] = 0;
|
|
for (i = 0;
|
|
i < strlen(cmdBuf->optDef[optNo].optValue) + 1;
|
|
i++) {
|
|
if (isxdigit(cmdBuf->optDef[optNo].optValue[i])) {
|
|
tmpStr[j] = cmdBuf->optDef[optNo].optValue[i];
|
|
j++;
|
|
} else if (cmdBuf->optDef[optNo].optValue[i] == ':'
|
|
|| cmdBuf->optDef[optNo].optValue[i] ==
|
|
0) {
|
|
if (j != 4) {
|
|
return (1);
|
|
}
|
|
tmpStr[j] = 0;
|
|
strcat(tmpValue, tmpStr);
|
|
j = 0;
|
|
tmpStr[0] = 0;
|
|
} else {
|
|
return (1);
|
|
}
|
|
}
|
|
|
|
if (strlen(tmpValue) != 34) {
|
|
return (1);
|
|
}
|
|
for (i = 0; i < 34; i++)
|
|
cmdBuf->optDef[optNo].fieldValue[6 + i] =
|
|
tmpValue[i];
|
|
} else {
|
|
if (strlen(cmdBuf->optDef[optNo].optValue) != 14
|
|
&& strlen(cmdBuf->optDef[optNo].optValue) != 12)
|
|
return (1);
|
|
sprintf(tmpValue, "%02X",
|
|
strlen(cmdBuf->optDef[optNo].optValue) / 2);
|
|
for (i = 0; i < strlen(cmdBuf->optDef[optNo].optValue);
|
|
i++) {
|
|
if (!isdigit(cmdBuf->optDef[optNo].optValue[i]))
|
|
return (1);
|
|
}
|
|
strcat(tmpValue, cmdBuf->optDef[optNo].optValue);
|
|
for (i = strlen(tmpValue); i < 34; i++)
|
|
tmpValue[i] = 'E';
|
|
for (i = 0; i < 34; i++)
|
|
cmdBuf->optDef[optNo].fieldValue[6 + i] =
|
|
tmpValue[i];
|
|
}
|
|
}
|
|
break;
|
|
case exM_hlrPdp4:
|
|
if (strlen(cmdBuf->optDef[optNo].optValue) > 1)
|
|
return (1);
|
|
if (cmdBuf->optDef[optNo].optValue[0] < '1'
|
|
|| cmdBuf->optDef[optNo].optValue[0] > '5')
|
|
return (1);
|
|
/*cmdBuf->optDef[optNo].fieldValue[41] =
|
|
cmdBuf->optDef[optNo].optValue[0];
|
|
*/
|
|
tmp = atoi(cmdBuf->optDef[optNo].optValue);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 20, 0, tmp % 2);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 20, 1,
|
|
tmp % 4 / 2);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 20, 2, tmp / 4);
|
|
break;
|
|
case exM_hlrPdp5:
|
|
if (strlen(cmdBuf->optDef[optNo].optValue) > 1)
|
|
return (1);
|
|
if (cmdBuf->optDef[optNo].optValue[0] < '1'
|
|
|| cmdBuf->optDef[optNo].optValue[0] > '4')
|
|
return (1);
|
|
/* cmdBuf->optDef[optNo].fieldValue[40] =
|
|
cmdBuf->optDef[optNo].optValue[0];
|
|
*/
|
|
tmp = atoi(cmdBuf->optDef[optNo].optValue);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 20, 3, tmp % 2);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 20, 4,
|
|
tmp % 4 / 2);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 20, 5, tmp / 4);
|
|
break;
|
|
case exM_hlrPdp6:
|
|
if (!strcmp(cmdBuf->optDef[optNo].optValue, "High"))
|
|
cmdBuf->optDef[optNo].fieldValue[43] = '1';
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "Normal"))
|
|
cmdBuf->optDef[optNo].fieldValue[43] = '2';
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "Low"))
|
|
cmdBuf->optDef[optNo].fieldValue[43] = '3';
|
|
else
|
|
return (1);
|
|
break;
|
|
case exM_hlrPdp7:
|
|
if (!strcmp(cmdBuf->optDef[optNo].optValue, "8Kbps"))
|
|
cmdBuf->optDef[optNo].fieldValue[42] = '1';
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "16Kbps"))
|
|
cmdBuf->optDef[optNo].fieldValue[42] = '2';
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "32Kbps"))
|
|
cmdBuf->optDef[optNo].fieldValue[42] = '3';
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "64Kbps"))
|
|
cmdBuf->optDef[optNo].fieldValue[42] = '4';
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "128Kbps"))
|
|
cmdBuf->optDef[optNo].fieldValue[42] = '5';
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "256Kbps"))
|
|
cmdBuf->optDef[optNo].fieldValue[42] = '6';
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "512Kbps"))
|
|
cmdBuf->optDef[optNo].fieldValue[42] = '7';
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "1024Kbps"))
|
|
cmdBuf->optDef[optNo].fieldValue[42] = '8';
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "2048Kbps"))
|
|
cmdBuf->optDef[optNo].fieldValue[42] = '9';
|
|
else
|
|
return (1);
|
|
break;
|
|
case exM_hlrPdp8:
|
|
if (!strcmp(cmdBuf->optDef[optNo].optValue, "100Bph")) {
|
|
cmdBuf->optDef[optNo].fieldValue[44] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[45] = '1';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "200Bph")) {
|
|
cmdBuf->optDef[optNo].fieldValue[44] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[45] = '2';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "500Bph")) {
|
|
cmdBuf->optDef[optNo].fieldValue[44] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[45] = '3';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "1KBph")) {
|
|
cmdBuf->optDef[optNo].fieldValue[44] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[45] = '4';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "2KBph")) {
|
|
cmdBuf->optDef[optNo].fieldValue[44] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[45] = '5';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "5KBph")) {
|
|
cmdBuf->optDef[optNo].fieldValue[44] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[45] = '6';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "10KBph")) {
|
|
cmdBuf->optDef[optNo].fieldValue[44] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[45] = '7';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "20KBph")) {
|
|
cmdBuf->optDef[optNo].fieldValue[44] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[45] = '8';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "50KBph")) {
|
|
cmdBuf->optDef[optNo].fieldValue[44] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[45] = '9';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "100KBph")) {
|
|
cmdBuf->optDef[optNo].fieldValue[44] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[45] = 'A';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "200KBph")) {
|
|
cmdBuf->optDef[optNo].fieldValue[44] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[45] = 'B';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "500KBph")) {
|
|
cmdBuf->optDef[optNo].fieldValue[44] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[45] = 'C';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "1MBph")) {
|
|
cmdBuf->optDef[optNo].fieldValue[44] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[45] = 'D';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "2MBph")) {
|
|
cmdBuf->optDef[optNo].fieldValue[44] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[45] = 'E';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "5MBph")) {
|
|
cmdBuf->optDef[optNo].fieldValue[44] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[45] = 'F';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "10MBph")) {
|
|
cmdBuf->optDef[optNo].fieldValue[44] = '1';
|
|
cmdBuf->optDef[optNo].fieldValue[45] = '0';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "20MBph")) {
|
|
cmdBuf->optDef[optNo].fieldValue[44] = '1';
|
|
cmdBuf->optDef[optNo].fieldValue[45] = '1';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "50MBph")) {
|
|
cmdBuf->optDef[optNo].fieldValue[44] = '1';
|
|
cmdBuf->optDef[optNo].fieldValue[45] = '2';
|
|
} else
|
|
if (!strcmp(cmdBuf->optDef[optNo].optValue, "Best_effort"))
|
|
{
|
|
cmdBuf->optDef[optNo].fieldValue[44] = '1';
|
|
cmdBuf->optDef[optNo].fieldValue[45] = 'F';
|
|
} else
|
|
return (1);
|
|
break;
|
|
case exM_hlrPdp9:
|
|
if (!strcmp(cmdBuf->optDef[optNo].optValue, "Not_allowed")) {
|
|
cmdBuf->optDef[optNo].fieldValue[46] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[47] = '0';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "Allowed")) {
|
|
cmdBuf->optDef[optNo].fieldValue[46] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[47] = '1';
|
|
} else
|
|
return (1);
|
|
break;
|
|
case exM_hlrPdp10:
|
|
for (i = 0; i < strlen(cmdBuf->optDef[optNo].optValue); i++) {
|
|
sprintf(tmpStr, "%02X", cmdBuf->optDef[optNo].optValue[i]);
|
|
cmdBuf->optDef[optNo].fieldValue[48 + i * 2 + 0] =
|
|
tmpStr[0];
|
|
cmdBuf->optDef[optNo].fieldValue[48 + i * 2 + 1] =
|
|
tmpStr[1];
|
|
}
|
|
for (j = 0;
|
|
j < 64 - strlen(cmdBuf->optDef[optNo].optValue) * 2;
|
|
j++) {
|
|
cmdBuf->optDef[optNo].fieldValue[48 + i * 2 + j] = '0';
|
|
}
|
|
break;
|
|
case exM_hlrPdp11:
|
|
if (!strcmp(cmdBuf->optDef[optNo].optValue, "Non_included_Ext")) {
|
|
cmdBuf->optDef[optNo].fieldValue[112] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[113] = '0';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "Included_Ext")) {
|
|
cmdBuf->optDef[optNo].fieldValue[112] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[113] = '1';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "Included_Ext_and_Ext2_only_1_octet")) {
|
|
cmdBuf->optDef[optNo].fieldValue[112] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[113] = '3';
|
|
}else if (!strcmp(cmdBuf->optDef[optNo].optValue, "Included_Ext_Ext2")) {
|
|
cmdBuf->optDef[optNo].fieldValue[112] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[113] = '7';
|
|
}else if (!strcmp(cmdBuf->optDef[optNo].optValue, "Included_Ext_Ext2_EXt3")) {
|
|
cmdBuf->optDef[optNo].fieldValue[112] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[113] = 'F';
|
|
}else
|
|
return (1);
|
|
break;
|
|
case exM_hlrPdp12:
|
|
if (strlen(cmdBuf->optDef[optNo].optValue) > 1)
|
|
return (1);
|
|
if (cmdBuf->optDef[optNo].optValue[0] < '0'
|
|
|| cmdBuf->optDef[optNo].optValue[0] > '4')
|
|
return (1);
|
|
tmp = atoi(cmdBuf->optDef[optNo].optValue);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 57, 0, tmp % 2);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 57, 1,
|
|
tmp % 4 / 2);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 57, 2, tmp / 4);
|
|
break;
|
|
case exM_hlrPdp13:
|
|
if (!strcmp(cmdBuf->optDef[optNo].optValue, "No_detect"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 0, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 1, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 2, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "Err_SDUs_delilvered"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 0, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 1, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 2, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "Err_SDUs_not_delivered"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 0, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 1, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 2, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "Reserved"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 0, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 1, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 2, 1);
|
|
}
|
|
else
|
|
return (1);
|
|
break;
|
|
case exM_hlrPdp14:
|
|
if (!strcmp(cmdBuf->optDef[optNo].optValue, "delivery_order"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 3, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 4, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "no_delivery_order"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 3, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 4, 1);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "Reserved"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 3, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 4, 1);
|
|
}
|
|
else
|
|
return (1);
|
|
break;
|
|
case exM_hlrPdp15:
|
|
if (!strcmp(cmdBuf->optDef[optNo].optValue, "Conversation_class"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 5, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 6, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 7, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "Streaming_class"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 5, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 6, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 7, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "Interactive_class"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 5, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 6, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 7, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "Background_class"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 5, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 6, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 7, 1);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "Reserved"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 5, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 6, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 58, 7, 1);
|
|
}
|
|
else
|
|
return (1);
|
|
break;
|
|
case exM_hlrPdp16:
|
|
if (!strcmp(cmdBuf->optDef[optNo].optValue, "10_octets")) {
|
|
cmdBuf->optDef[optNo].fieldValue[118] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[119] = '1';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "200_octets")) {
|
|
cmdBuf->optDef[optNo].fieldValue[118] = '1';
|
|
cmdBuf->optDef[optNo].fieldValue[119] = '4';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "800_octets")) {
|
|
cmdBuf->optDef[optNo].fieldValue[118] = '5';
|
|
cmdBuf->optDef[optNo].fieldValue[119] = '0';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "1000_octets")) {
|
|
cmdBuf->optDef[optNo].fieldValue[118] = '6';
|
|
cmdBuf->optDef[optNo].fieldValue[119] = '4';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "1480_octets")) {
|
|
cmdBuf->optDef[optNo].fieldValue[118] = '9';
|
|
cmdBuf->optDef[optNo].fieldValue[119] = '4';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "1500_octets")) {
|
|
cmdBuf->optDef[optNo].fieldValue[118] = '9';
|
|
cmdBuf->optDef[optNo].fieldValue[119] = '6';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "1502_octets")) {
|
|
cmdBuf->optDef[optNo].fieldValue[118] = '9';
|
|
cmdBuf->optDef[optNo].fieldValue[119] = '7';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "1510_octets")) {
|
|
cmdBuf->optDef[optNo].fieldValue[118] = '9';
|
|
cmdBuf->optDef[optNo].fieldValue[119] = '8';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "1520_octets")) {
|
|
cmdBuf->optDef[optNo].fieldValue[118] = '9';
|
|
cmdBuf->optDef[optNo].fieldValue[119] = '9';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "Reserved"))
|
|
{
|
|
cmdBuf->optDef[optNo].fieldValue[118] = 'F';
|
|
cmdBuf->optDef[optNo].fieldValue[119] = 'F';
|
|
} else
|
|
return (1);
|
|
break;
|
|
case exM_hlrPdp17:
|
|
tmp = atoi(cmdBuf->optDef[optNo].optValue);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 60, 0, tmp % 2);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 60, 1,
|
|
tmp /2%2);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 60, 2, tmp /2/2 % 2);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 60, 3, tmp /2/2/2 % 2);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 60, 4, tmp /2/2/2/2 %2);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 60, 5, tmp /2/2/2/2/2 %2);
|
|
break;
|
|
case exM_hlrPdp18:
|
|
if (!strcmp(cmdBuf->optDef[optNo].optValue, "X*1Kbps"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 60, 6, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 60, 7, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "64Kbps+(X*8Kbps)"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 60, 6, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 60, 7, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "576Kbps+(X*64Kbps)"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 60, 6, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 60, 7, 1);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "4672Kbps+(X*64Kbps)"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 60, 6, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 60, 7, 1);
|
|
}
|
|
else
|
|
return (1);
|
|
break;
|
|
case exM_hlrPdp19:
|
|
tmp = atoi(cmdBuf->optDef[optNo].optValue);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 61, 0, tmp % 2);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 61, 1,
|
|
tmp % 4 / 2);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 61, 2, tmp %2%2%2 % 2);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 61, 3, tmp %2%2%2%2 % 2);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 61, 4, tmp %2%2%2%2%2 %2);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 61, 5, tmp %2%2%2%2%2%2 %2);
|
|
break;
|
|
case exM_hlrPdp20:
|
|
if (!strcmp(cmdBuf->optDef[optNo].optValue, "X*1Kbps"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 61, 6, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 61, 7, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "64Kbps+(X*8Kbps)"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 61, 6, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 61, 7, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "576Kbps+(X*64Kbps)"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 61, 6, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 61, 7, 1);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "4672Kbps+(X*64Kbps)"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 61, 6, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 61, 7, 1);
|
|
}
|
|
else
|
|
return (1);
|
|
break;
|
|
case exM_hlrPdp21:
|
|
if (!strcmp(cmdBuf->optDef[optNo].optValue, "1E_2"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 0, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 1, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 2, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 3, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "7E_3"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 0, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 1, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 2, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 3, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "1E_3"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 0, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 1, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 2, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 3, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "1E_4"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 0, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 1, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 2, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 3, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "1E_5"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 0, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 1, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 2, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 3, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "1E_6"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 0, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 1, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 2, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 3, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "1E_1"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 0, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 1, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 2, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 3, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "Reserved"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 0, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 1, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 2, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 3, 1);
|
|
}
|
|
else
|
|
return (1);
|
|
break;
|
|
case exM_hlrPdp22:
|
|
if (!strcmp(cmdBuf->optDef[optNo].optValue, "5E_2"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 4, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 5, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 6, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 7, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "1E_2"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 4, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 5, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 6, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 7, 0);
|
|
}
|
|
else if(!strcmp(cmdBuf->optDef[optNo].optValue, "5E_3"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 4, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 5, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 6, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 7, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "4E_3"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 4, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 5, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 6, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 7, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "1E_3"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 4, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 5, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 6, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 7, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "1E_4"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 4, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 5, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 6, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 7, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "1E_5"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 4, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 5, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 6, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 7, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "1E_6"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 4, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 5, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 6, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 7, 1);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "6E_8"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 4, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 5, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 6, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 7, 1);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "Reserved"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 4, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 5, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 6, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 62, 7, 1);
|
|
}
|
|
else
|
|
return (1);
|
|
break;
|
|
case exM_hlrPdp23:
|
|
if (!strcmp(cmdBuf->optDef[optNo].optValue, "Level_1"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 63, 0, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 63, 1, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "Level_2"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 63, 0, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 63, 1, 1);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "Level_3"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 63, 0, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 63, 1, 1);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "Reserved"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 63, 0, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 63, 1, 0);
|
|
}
|
|
else
|
|
return (1);
|
|
break;
|
|
case exM_hlrPdp24:
|
|
if (!strcmp(cmdBuf->optDef[optNo].optValue, "X*10ms"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 63, 2, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 63, 3, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "200ms+X*50ms"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 63, 2, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 63, 3, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "1000ms+X*100ms"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 63, 2, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 63, 3, 1);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "2600ms+X*100ms"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 63, 2, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 63, 3, 1);
|
|
}
|
|
else
|
|
return (1);
|
|
break;
|
|
case exM_hlrPdp25:
|
|
tmp = atoi(cmdBuf->optDef[optNo].optValue);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 64, 0, tmp % 2);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 64, 1,
|
|
tmp % 4 / 2);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 64, 2, tmp %2%2%2 % 2);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 64, 3, tmp %2%2%2%2 % 2);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 64, 4, tmp %2%2%2%2%2 %2);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 64, 5, tmp %2%2%2%2%2%2 %2);
|
|
break;
|
|
case exM_hlrPdp26:
|
|
if (!strcmp(cmdBuf->optDef[optNo].optValue, "X*1Kbps"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 64, 6, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 64, 7, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "64Kbps+(X*8Kbps)"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 64, 6, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 64, 7, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "576Kbps+(X*64Kbps)"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 64, 6, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 64, 7, 1);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "4672Kbps+(X*64Kbps)"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 64, 6, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 64, 7, 1);
|
|
}
|
|
else
|
|
return (1);
|
|
break;
|
|
case exM_hlrPdp27:
|
|
tmp = atoi(cmdBuf->optDef[optNo].optValue);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 65, 0, tmp % 2);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 65, 1,
|
|
tmp % 4 / 2);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 65, 2, tmp %2%2%2 % 2);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 65, 3, tmp %2%2%2%2 % 2);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 65, 4, tmp %2%2%2%2%2 %2);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 65, 5, tmp %2%2%2%2%2%2 %2);
|
|
break;
|
|
case exM_hlrPdp28:
|
|
if (!strcmp(cmdBuf->optDef[optNo].optValue, "X*1Kbps"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 65, 6, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 65, 7, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "64Kbps+(X*8Kbps)"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 65, 6, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 65, 7, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "576Kbps+(X*64Kbps)"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 65, 6, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 65, 7, 1);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "4672Kbps+(X*64Kbps)"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 65, 6, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 65, 7, 1);
|
|
}
|
|
else
|
|
return (1);
|
|
break;
|
|
case exM_hlrPdp29:
|
|
if (!strcmp(cmdBuf->optDef[optNo].optValue, "Spare"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 66, 0, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 66, 1, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "Speech"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 66, 0, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 66, 1, 0);
|
|
}
|
|
else
|
|
return (1);
|
|
break;
|
|
case exM_hlrPdp30:
|
|
if (!strcmp(cmdBuf->optDef[optNo].optValue, "Not_optimised"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 66, 4, 0);
|
|
}
|
|
else if (!strcmp(cmdBuf->optDef[optNo].optValue, "Optimised"))
|
|
{
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 66, 4, 1);
|
|
}
|
|
else
|
|
return (1);
|
|
break;
|
|
case exM_hlrPdp32:
|
|
if (!strcmp(cmdBuf->optDef[optNo].optValue, "<=8600kbps")) {
|
|
cmdBuf->optDef[optNo].fieldValue[134] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[135] = '0';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "8700kbps")) {
|
|
cmdBuf->optDef[optNo].fieldValue[134] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[135] = '1';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "16000kbps")) {
|
|
cmdBuf->optDef[optNo].fieldValue[134] = '4';
|
|
cmdBuf->optDef[optNo].fieldValue[135] = 'A';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "17Mbps")) {
|
|
cmdBuf->optDef[optNo].fieldValue[134] = '4';
|
|
cmdBuf->optDef[optNo].fieldValue[135] = 'B';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "128Mbps")) {
|
|
cmdBuf->optDef[optNo].fieldValue[134] = 'B';
|
|
cmdBuf->optDef[optNo].fieldValue[135] = 'A';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "130Mbps")) {
|
|
cmdBuf->optDef[optNo].fieldValue[134] = 'B';
|
|
cmdBuf->optDef[optNo].fieldValue[135] = 'B';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "256Mbps")) {
|
|
cmdBuf->optDef[optNo].fieldValue[134] = 'F';
|
|
cmdBuf->optDef[optNo].fieldValue[135] = 'A';
|
|
}else
|
|
return (1);
|
|
break;
|
|
case exM_hlrPdp33:
|
|
if (!strcmp(cmdBuf->optDef[optNo].optValue, "<=8600kbps")) {
|
|
cmdBuf->optDef[optNo].fieldValue[136] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[137] = '0';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "8700kbps")) {
|
|
cmdBuf->optDef[optNo].fieldValue[136] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[137] = '1';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "16000kbps")) {
|
|
cmdBuf->optDef[optNo].fieldValue[136] = '4';
|
|
cmdBuf->optDef[optNo].fieldValue[137] = 'A';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "17Mbps")) {
|
|
cmdBuf->optDef[optNo].fieldValue[136] = '4';
|
|
cmdBuf->optDef[optNo].fieldValue[137] = 'B';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "128Mbps")) {
|
|
cmdBuf->optDef[optNo].fieldValue[136] = 'B';
|
|
cmdBuf->optDef[optNo].fieldValue[137] = 'A';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "130Mbps")) {
|
|
cmdBuf->optDef[optNo].fieldValue[136] = 'B';
|
|
cmdBuf->optDef[optNo].fieldValue[137] = 'B';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "256Mbps")) {
|
|
cmdBuf->optDef[optNo].fieldValue[136] = 'F';
|
|
cmdBuf->optDef[optNo].fieldValue[137] = 'A';
|
|
}else
|
|
return (1);
|
|
break;
|
|
case exM_hlrPdp34:
|
|
if (!strcmp(cmdBuf->optDef[optNo].optValue, "<=8600kbps")) {
|
|
cmdBuf->optDef[optNo].fieldValue[138] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[139] = '0';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "8700kbps")) {
|
|
cmdBuf->optDef[optNo].fieldValue[138] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[139] = '1';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "16000kbps")) {
|
|
cmdBuf->optDef[optNo].fieldValue[138] = '4';
|
|
cmdBuf->optDef[optNo].fieldValue[139] = 'A';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "17Mbps")) {
|
|
cmdBuf->optDef[optNo].fieldValue[138] = '4';
|
|
cmdBuf->optDef[optNo].fieldValue[139] = 'B';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "128Mbps")) {
|
|
cmdBuf->optDef[optNo].fieldValue[138] = 'B';
|
|
cmdBuf->optDef[optNo].fieldValue[139] = 'A';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "130Mbps")) {
|
|
cmdBuf->optDef[optNo].fieldValue[138] = 'B';
|
|
cmdBuf->optDef[optNo].fieldValue[139] = 'B';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "256Mbps")) {
|
|
cmdBuf->optDef[optNo].fieldValue[138] = 'F';
|
|
cmdBuf->optDef[optNo].fieldValue[139] = 'A';
|
|
}else
|
|
return (1);
|
|
break;
|
|
case exM_hlrPdp35:
|
|
if (!strcmp(cmdBuf->optDef[optNo].optValue, "<=8600kbps")) {
|
|
cmdBuf->optDef[optNo].fieldValue[140] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[141] = '0';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "8700kbps")) {
|
|
cmdBuf->optDef[optNo].fieldValue[140] = '0';
|
|
cmdBuf->optDef[optNo].fieldValue[141] = '1';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "16000kbps")) {
|
|
cmdBuf->optDef[optNo].fieldValue[140] = '4';
|
|
cmdBuf->optDef[optNo].fieldValue[141] = 'A';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "17Mbps")) {
|
|
cmdBuf->optDef[optNo].fieldValue[140] = '4';
|
|
cmdBuf->optDef[optNo].fieldValue[141] = 'B';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "128Mbps")) {
|
|
cmdBuf->optDef[optNo].fieldValue[140] = 'B';
|
|
cmdBuf->optDef[optNo].fieldValue[141] = 'A';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "130Mbps")) {
|
|
cmdBuf->optDef[optNo].fieldValue[140] = 'B';
|
|
cmdBuf->optDef[optNo].fieldValue[141] = 'B';
|
|
} else if (!strcmp(cmdBuf->optDef[optNo].optValue, "256Mbps")) {
|
|
cmdBuf->optDef[optNo].fieldValue[140] = 'F';
|
|
cmdBuf->optDef[optNo].fieldValue[141] = 'A';
|
|
}else
|
|
return (1);
|
|
break;
|
|
case exM_hlrUserNo:
|
|
//user_no
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "\"\"") == 0) {
|
|
memset(cmdBuf->optDef[optNo].fieldValue, 0,
|
|
sizeof(cmdBuf->optDef[optNo].fieldValue));
|
|
} else {
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%s",
|
|
cmdBuf->optDef[optNo].optValue);
|
|
}
|
|
for (i = strlen(cmdBuf->optDef[optNo].fieldValue); i < 16; i++) {
|
|
cmdBuf->optDef[optNo].fieldValue[i] = 'E';
|
|
}
|
|
break;
|
|
default:
|
|
if (tmpExMode >= 100 && tmpExMode < 200) {
|
|
int byteOffset = (int) ((tmpExMode - 100) / 10);
|
|
int bitOffset = tmpExMode % 10;
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "enable") == 0) {
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue,
|
|
byteOffset, bitOffset, 1);
|
|
} else
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "disable")
|
|
== 0) {
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue,
|
|
byteOffset, bitOffset, 0);
|
|
} else
|
|
return (1);
|
|
} else {
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%s",
|
|
cmdBuf->optDef[optNo].optValue);
|
|
}
|
|
break;
|
|
}
|
|
} //end of if(cmdBuf->sysTypeNo == 330)
|
|
|
|
if (cmdBuf->sysTypeNo == 360||cmdBuf->sysTypeNo == 395) {
|
|
if (tmpExMode == exM_ppsRentType) {
|
|
if (strlen(cmdBuf->optDef[optNo].optValue) != 8)
|
|
return (1);
|
|
for (i = 0; i < 8; i++) {
|
|
if (cmdBuf->optDef[optNo].optValue[i] == '\0')
|
|
break;
|
|
else if (cmdBuf->optDef[optNo].optValue[i] == '1')
|
|
tmpField = tmpField + ldexp(1, (7 - i));
|
|
else if (cmdBuf->optDef[optNo].optValue[i] == '0')
|
|
continue;
|
|
else
|
|
return (1);
|
|
}
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%3.0f", tmpField);
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%2x",
|
|
atoi(cmdBuf->optDef[optNo].fieldValue));
|
|
} else if (tmpExMode == exM_ppsDate) {
|
|
if(strlen(cmdBuf->optDef[optNo].optValue) == 8)
|
|
{
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%s000000", cmdBuf->optDef[optNo].optValue);
|
|
}
|
|
else if(strlen(cmdBuf->optDef[optNo].optValue) == 10)
|
|
{
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%s0000", cmdBuf->optDef[optNo].optValue);
|
|
}
|
|
else if(strlen(cmdBuf->optDef[optNo].optValue) == 12)
|
|
{
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%s00", cmdBuf->optDef[optNo].optValue);
|
|
}
|
|
else if(strlen(cmdBuf->optDef[optNo].optValue) == 14)
|
|
{
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%s", cmdBuf->optDef[optNo].optValue);
|
|
}
|
|
else
|
|
{
|
|
return 1;
|
|
}
|
|
} else if (tmpExMode == exM_ppsCallType) {
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "mo_call") == 0)
|
|
strcpy(cmdBuf->optDef[optNo].fieldValue, "00");
|
|
else if (strcmp(cmdBuf->optDef[optNo].optValue, "mt_call") ==
|
|
0)
|
|
strcpy(cmdBuf->optDef[optNo].fieldValue, "01");
|
|
else if (strcmp(cmdBuf->optDef[optNo].optValue, "mf_call") ==
|
|
0)
|
|
strcpy(cmdBuf->optDef[optNo].optValue, "02");
|
|
else if (strcmp(cmdBuf->optDef[optNo].optValue, "mo_sms") == 0)
|
|
strcpy(cmdBuf->optDef[optNo].optValue, "03");
|
|
else
|
|
return (1);
|
|
} else if (tmpExMode == exM_ppsPoolAccountType) {
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "normal") == 0)
|
|
strcpy(cmdBuf->optDef[optNo].fieldValue, "00");
|
|
else if (strcmp(cmdBuf->optDef[optNo].optValue, "parent") == 0)
|
|
strcpy(cmdBuf->optDef[optNo].fieldValue, "01");
|
|
else if (strcmp(cmdBuf->optDef[optNo].optValue, "child") == 0)
|
|
strcpy(cmdBuf->optDef[optNo].optValue, "02");
|
|
else
|
|
return 1;
|
|
} else if (tmpExMode == exM_ppsSM) {
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%X",
|
|
atoi(cmdBuf->optDef[optNo].optValue));
|
|
} else if (tmpExMode == exM_ppsBalance) {
|
|
if (cmdBuf->optDef[optNo].optValue[0] == '~')
|
|
cmdBuf->optDef[optNo].optValue[0] = '-';
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%s",
|
|
cmdBuf->optDef[optNo].optValue);
|
|
} else if (tmpExMode == exM_ppsCardStatus) {
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "Fresh") == 0)
|
|
strcpy(cmdBuf->optDef[optNo].fieldValue, "00");
|
|
else if (strcmp(cmdBuf->optDef[optNo].optValue, "Charged") ==
|
|
0)
|
|
strcpy(cmdBuf->optDef[optNo].fieldValue, "01");
|
|
else
|
|
return (1);
|
|
} else if (tmpExMode == exM_ppsFFPlanState) {
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "normal") == 0)
|
|
strcpy(cmdBuf->optDef[optNo].fieldValue, "00");
|
|
else if (strcmp(cmdBuf->optDef[optNo].optValue, "suspend") == 0)
|
|
strcpy(cmdBuf->optDef[optNo].fieldValue, "01");
|
|
else
|
|
return (1);
|
|
} else {
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%s",
|
|
cmdBuf->optDef[optNo].optValue);
|
|
}
|
|
}
|
|
//20041101 start
|
|
if (cmdBuf->sysTypeNo == 390) { //vms
|
|
switch (tmpExMode) {
|
|
case exM_vmsHexDec:
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%X",
|
|
atoi(cmdBuf->optDef[optNo].optValue));
|
|
break;
|
|
case exM_vmsMailboxId:
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%8X",
|
|
atoi(cmdBuf->optDef[optNo].optValue));
|
|
break;
|
|
case exM_vmsGreetingType:
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "system") == 0) {
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 0, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 1, 0);
|
|
} else if (strcmp(cmdBuf->optDef[optNo].optValue, "hostname")
|
|
== 0) {
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 0, 1);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 1, 0);
|
|
} else if (strcmp(cmdBuf->optDef[optNo].optValue, "personal")
|
|
== 0) {
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 0, 0);
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue, 0, 1, 1);
|
|
} else
|
|
return (1);
|
|
|
|
break;
|
|
default:
|
|
if (tmpExMode >= 100 && tmpExMode < 200) {
|
|
int byteOffset = (int) ((tmpExMode - 100) / 10);
|
|
int bitOffset = tmpExMode % 10;
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "enable") == 0) {
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue,
|
|
byteOffset, bitOffset, 1);
|
|
} else
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "disable")
|
|
== 0) {
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue,
|
|
byteOffset, bitOffset, 0);
|
|
} else
|
|
return (1);
|
|
} else {
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%s",
|
|
cmdBuf->optDef[optNo].optValue);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
//20041101 end
|
|
if (cmdBuf->sysTypeNo == 370) { //mnp
|
|
switch (tmpExMode) {
|
|
case exM_mnpStatus:
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "own_ported_out") ==
|
|
0) {
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "02");
|
|
} else
|
|
if (strcmp
|
|
(cmdBuf->optDef[optNo].optValue,
|
|
"foreign_ported_in") == 0) {
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "03");
|
|
} else
|
|
if (strcmp
|
|
(cmdBuf->optDef[optNo].optValue,
|
|
"foreign_ported_to_third_party") == 0) {
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "04");
|
|
} else
|
|
return (1);
|
|
//printf("fieldValue=%s\n",cmdBuf->optDef[optNo].fieldValue);
|
|
break;
|
|
case exM_mnpDate:
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%s000000",
|
|
cmdBuf->optDef[optNo].optValue);
|
|
default:
|
|
if (tmpExMode >= 100 && tmpExMode < 200) {
|
|
int byteOffset = (int) ((tmpExMode - 100) / 10);
|
|
int bitOffset = tmpExMode % 10;
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "enable") == 0) {
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue,
|
|
byteOffset, bitOffset, 1);
|
|
} else
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "disable")
|
|
== 0) {
|
|
setBitValue(cmdBuf->optDef[optNo].fieldValue,
|
|
byteOffset, bitOffset, 0);
|
|
} else
|
|
return (1);
|
|
} else {
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%s",
|
|
cmdBuf->optDef[optNo].optValue);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
//opps
|
|
if (cmdBuf->sysTypeNo == 375) {
|
|
switch (tmpExMode) {
|
|
case exM_imdmMsisdn:
|
|
if (strcmp(cmdBuf->optDef[optNo].optValue, "\"\"") == 0) {
|
|
memset(cmdBuf->optDef[optNo].fieldValue, 0,
|
|
sizeof(cmdBuf->optDef[optNo].fieldValue));
|
|
} else {
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%s",
|
|
cmdBuf->optDef[optNo].optValue);
|
|
}
|
|
/*for (i = strlen(cmdBuf->optDef[optNo].fieldValue); i < 16; i++) {
|
|
cmdBuf->optDef[optNo].fieldValue[i] = '0';
|
|
}*/
|
|
break;
|
|
case exM_imdmImei:
|
|
//imei
|
|
if (strlen(cmdBuf->optDef[optNo].optValue) < 15) {
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "0%s",
|
|
cmdBuf->optDef[optNo].optValue);
|
|
|
|
} else {
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%s",
|
|
cmdBuf->optDef[optNo].optValue);
|
|
}
|
|
if(strlen(cmdBuf->optDef[optNo].optValue) == 0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue,"000000000000000");
|
|
break;
|
|
case exM_imdmImsi:
|
|
//imsi
|
|
if (strlen(cmdBuf->optDef[optNo].optValue) < 15) {
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "0%s",
|
|
cmdBuf->optDef[optNo].optValue);
|
|
|
|
} else {
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%s",
|
|
cmdBuf->optDef[optNo].optValue);
|
|
}
|
|
if(strlen(cmdBuf->optDef[optNo].optValue) == 0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue,"000000000000000");
|
|
break;
|
|
case exM_imdmOprFlag:
|
|
if(strcasecmp(cmdBuf->optDef[optNo].optValue,"OPR_0") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue,"0");
|
|
else if(strcasecmp(cmdBuf->optDef[optNo].optValue,"OPR_1") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue,"1");
|
|
else if(strcasecmp(cmdBuf->optDef[optNo].optValue,"OPR_2a") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue,"2");
|
|
else if(strcasecmp(cmdBuf->optDef[optNo].optValue,"OPR_2b") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue,"3");
|
|
else if(strcasecmp(cmdBuf->optDef[optNo].optValue,"IMDX_P1") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue,"4");
|
|
else if(strcasecmp(cmdBuf->optDef[optNo].optValue,"IMDX_P2") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue,"5");
|
|
else if(strcasecmp(cmdBuf->optDef[optNo].optValue,"IMDX_H") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue,"6");
|
|
else
|
|
return 1;
|
|
|
|
//sprintf(cmdBuf->optDef[optNo].fieldValue,"%s",cmdBuf->optDef[optNo].optValue);
|
|
break;
|
|
case exM_imdmClass:
|
|
if(strcasecmp(cmdBuf->optDef[optNo].optValue,"Ordinary") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue,"0");
|
|
else if(strcasecmp(cmdBuf->optDef[optNo].optValue,"Premium") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue,"1");
|
|
else if(strcasecmp(cmdBuf->optDef[optNo].optValue,"VIP") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue,"2");
|
|
else
|
|
return 1;
|
|
break;
|
|
case exM_imdmUserType:
|
|
if(strcasecmp(cmdBuf->optDef[optNo].optValue,"OPPS") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue,"0");
|
|
else if(strcasecmp(cmdBuf->optDef[optNo].optValue,"Reserved") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue,"1");
|
|
else if(strcasecmp(cmdBuf->optDef[optNo].optValue,"iPALIM") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue,"2");
|
|
else
|
|
return 1;
|
|
break;
|
|
//case exM_imdmType:
|
|
// sprintf(cmdBuf->optDef[optNo].fieldValue,"%s",cmdBuf->optDef[optNo].optValue);
|
|
// break;
|
|
//case exM_imdmStatus:
|
|
// sprintf(cmdBuf->optDef[optNo].fieldValue,"%s",cmdBuf->optDef[optNo].optValue);
|
|
// break;
|
|
}
|
|
}
|
|
|
|
//ipalim
|
|
if(cmdBuf->sysTypeNo == 378) {
|
|
switch(tmpExMode) {
|
|
case exM_ipalimImsi:
|
|
if(strlen(cmdBuf->optDef[optNo].optValue) < 15)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "0%s", cmdBuf->optDef[optNo].optValue);
|
|
else
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%s", cmdBuf->optDef[optNo].optValue);
|
|
if(strlen(cmdBuf->optDef[optNo].optValue) == 0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "000000000000000");
|
|
break;
|
|
case exM_ipalimMsisdn:
|
|
if(strcmp(cmdBuf->optDef[optNo].optValue, "") == 0)
|
|
memset(cmdBuf->optDef[optNo].fieldValue, 0, sizeof(cmdBuf->optDef[optNo].fieldValue));
|
|
else
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%s", cmdBuf->optDef[optNo].optValue);
|
|
break;
|
|
case exM_ipalimMsisdnExtern:
|
|
if(strcmp(cmdBuf->optDef[optNo].optValue, "") == 0)
|
|
memset(cmdBuf->optDef[optNo].fieldValue, 0, sizeof(cmdBuf->optDef[optNo].fieldValue));
|
|
else
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%s", cmdBuf->optDef[optNo].optValue);
|
|
break;
|
|
case exM_ipalimTmsi:
|
|
if(strcmp(cmdBuf->optDef[optNo].optValue, "") == 0)
|
|
memset(cmdBuf->optDef[optNo].fieldValue, 0, sizeof(cmdBuf->optDef[optNo].fieldValue));
|
|
else
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%s", cmdBuf->optDef[optNo].optValue);
|
|
break;
|
|
case exM_ipalimLai:
|
|
if(strcmp(cmdBuf->optDef[optNo].optValue, "") == 0)
|
|
memset(cmdBuf->optDef[optNo].fieldValue, 0, sizeof(cmdBuf->optDef[optNo].fieldValue));
|
|
else
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%s", cmdBuf->optDef[optNo].optValue);
|
|
break;
|
|
case exM_ipalimType:
|
|
if(strcasecmp(cmdBuf->optDef[optNo].optValue,"Private") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "0");
|
|
else if(strcasecmp(cmdBuf->optDef[optNo].optValue, "Public") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "1");
|
|
else if(strcasecmp(cmdBuf->optDef[optNo].optValue, "Hybrid") == 0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "2");
|
|
else
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "0");
|
|
break;
|
|
}
|
|
|
|
}
|
|
//auc
|
|
if (cmdBuf->sysTypeNo == 340) {
|
|
switch (tmpExMode) {
|
|
case exM_aucImsi:
|
|
//imsi
|
|
if (strlen(cmdBuf->optDef[optNo].optValue) <= 15) {
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "0%s",
|
|
cmdBuf->optDef[optNo].optValue);
|
|
|
|
} else {
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue, "%s",
|
|
cmdBuf->optDef[optNo].optValue);
|
|
}
|
|
if(strlen(cmdBuf->optDef[optNo].optValue) == 0)
|
|
sprintf(cmdBuf->optDef[optNo].fieldValue,"000000000000000");
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
fieldSync(optNo);
|
|
return (0);
|
|
}
|
|
|