diff --git a/bin/conf/server.conf b/bin/conf/server.conf index bbc8f32..b44a57b 100644 --- a/bin/conf/server.conf +++ b/bin/conf/server.conf @@ -19,7 +19,9 @@ ftpSend -d alarmAgent -d nrtrde -d sftpSend -d +tapcvt -d cstaCollector -d + [slave_task] iptrans -d paraComm -d diff --git a/bin/conf/tap.cfg b/bin/conf/tap.cfg new file mode 100644 index 0000000..48bee19 --- /dev/null +++ b/bin/conf/tap.cfg @@ -0,0 +1,10 @@ +[local] +name=NFK +currency=USD +utc_offset=+1200 +tap_path=/opt +[partners] +name=PLWPC +plmnid=46000 +place=CHINA +currency=CNY diff --git a/bin/tapcvt b/bin/tapcvt new file mode 100644 index 0000000..9b6c5b1 Binary files /dev/null and b/bin/tapcvt differ diff --git a/bin/wxc2_omcd b/bin/wxc2_omcd index f30869a..97181e9 100644 --- a/bin/wxc2_omcd +++ b/bin/wxc2_omcd @@ -57,9 +57,9 @@ else LD_LIBRARY_PATH=/usr/lib/mysql ; export LD_LIBRARY_PATH fi -startProcList="iptrans omcMain paraComm subsComm logCollector omcCleaner smcli cdrCollector subsDataBackup ftpSend alarmAgent nrtrde sftpSend cstaCollector" +startProcList="iptrans omcMain paraComm subsComm logCollector omcCleaner smcli cdrCollector subsDataBackup ftpSend alarmAgent nrtrde sftpSend cstaCollector tapcvt" #alive bsscomm -stopProcList="iptrans omcMain paraComm subsComm logCollector omcCleaner smcli cdrCollector subsDataBackup ftpSend alarmAgent nrtrde sftpSend cstaCollector" +stopProcList="iptrans omcMain paraComm subsComm logCollector omcCleaner smcli cdrCollector subsDataBackup ftpSend alarmAgent nrtrde sftpSend cstaCollector tapcvt" statusProcList=$stopProcList slaveStartProcList="iptrans omcMain" diff --git a/src/accountMgr/c_program/cdrCollector/cdr.c b/src/accountMgr/c_program/cdrCollector/cdr.c index 8b5599b..2afd4df 100644 --- a/src/accountMgr/c_program/cdrCollector/cdr.c +++ b/src/accountMgr/c_program/cdrCollector/cdr.c @@ -769,6 +769,9 @@ void create_record_table(cdr_src *psrc,MYSQL *pCdrConn) sprintf(tmpstr,"TEXT"); strcat(createfieldlist,tmpstr); break; + case 42: // 假设这是一个字符串类型的字段 + strcat(createfieldlist, "VARCHAR(30)"); // 或者根据需要调整长度 + break; //integer case 1: //unsigned integer @@ -1726,7 +1729,16 @@ void cdr_parse(cdr_sys *psys,int tagcode,ASN_BUF *asnbuf,int fieldIndex,char* fi sprintf(fieldstr,",NULL"); } break; - + case 42: + if((len = get_tlv(pdef->fields[fieldIndex].tags[tagcode], tempbyte, asnbuf)) > 0) + { + sprintf(fieldstr, ",'%d.%d.%d.%d'", tempbyte[0], tempbyte[1], tempbyte[2], tempbyte[3]); + } + else + { + sprintf(fieldstr, ",NULL"); + } + break; } } diff --git a/src/accountMgr/c_program/cdrCollector/cdrdb.c b/src/accountMgr/c_program/cdrCollector/cdrdb.c index 343b421..93bc975 100644 --- a/src/accountMgr/c_program/cdrCollector/cdrdb.c +++ b/src/accountMgr/c_program/cdrCollector/cdrdb.c @@ -1266,12 +1266,9 @@ void clear_table(char *table_name) return; } - if (strstr(table_name, "cdrFromSGSN") != NULL) { - sprintf(mng_sqlstr,"delete from CDR_DB.%s WHERE TO_DAYS(changeTime)