add MSC-CDR

This commit is contained in:
root
2025-01-03 18:35:27 +08:00
parent 8ef1414ea3
commit 6d9e440ec8
2 changed files with 37 additions and 23 deletions

View File

@@ -82,6 +82,8 @@ BYTE str2oid(char *str, DWORD * array, BYTE max);
char *bcd2str(BYTE* buf,int len);
int smsDecodeAll(int code_type,char* strIn,char* strOut,int length);
char* digits2str(BYTE* buf,int len);
char* askm2str(BYTE* buf,int len);
void test()
{
@@ -1442,9 +1444,19 @@ void cdr_parse(cdr_sys *psys,int tagcode,ASN_BUF *asnbuf,int fieldIndex,char* fi
case 4:
if((len = get_tlv(pdef->fields[fieldIndex].tags[tagcode],tempbyte,asnbuf)) > 0)
{
//opps need cc
if(psrc->sysTypeNo == 375)
sprintf(fieldstr,",'%s'",digits2str(tempbyte,len * 2));
else if (psrc->sysTypeNo == 320 && !strcmp(pdef->fields[fieldIndex].tags[tagcode], "7.12"))
{
if (tempbyte[0] == 0x91 ||tempbyte[0] == 0x81) {
sprintf(fieldstr, ",'%s'", digits2str(tempbyte + 1, (len - 1) * 2));
} else {
// 阿斯克码值
sprintf(fieldstr, ",'%s'", askm2str(tempbyte, len * 2));
}
}
else
sprintf(fieldstr,",'%s'",digits2str(tempbyte + 1,(len - 1) * 2));
}
@@ -1952,6 +1964,22 @@ char* digits2str(BYTE* buf,int len)
return dig;
}
char* askm2str(BYTE* buf, int len) {
static char str[512];
int i;
for (i = 0; i < 512; i++) {
str[i] = '\0';
}
for (i = 0; i < len; i++) {
str[i] = buf[i];
}
str[len] = '\0';
return str;
}
// Extra function
int sendHeartbeat()
{