rendered paste body#include <stdio.h>
#include <string.h>
int main (void)
{
char dtmfbuf [300] = "*1581537359#*002044896227#*3592943431012#";
char IXC_PRESUB[3];
char IXC_ANI[11];
char IXC_DNIS[11];
char IXC_INTL[2];
char IXC_CIC[5];
char IXC_OZZ[4];
char IXC_COUNTRY[4];
char IXC_OPERATOR[2];
char IXC_CUTTHROUGH[2];
char src[100], dest[100], intl[100];
int ret;
if (strlen(dtmfbuf)==14) {
sscanf (dtmfbuf,"*%12s#",src);
ret = 1;
} else if (strlen (dtmfbuf) == 26) {
sscanf (dtmfbuf,"*%12s#*%10s#",src, dest);
ret = 2;
} else if (strlen (dtmfbuf) == 27) {
sscanf (dtmfbuf,"*%12s#*%11s#",src, dest);
ret = 4;
} else if (strlen (dtmfbuf) == 41) {
sscanf (dtmfbuf, "*%10s#*%12s#*%13s", src, dest, intl);
ret = 3;
}
switch (ret) {
case 1:
sscanf (src,"%2s%10s",IXC_PRESUB,
IXC_ANI);
break;
case 4:
sscanf (src, "%2s%10s",IXC_PRESUB,IXC_ANI);
if (strlen(dest) == 10) {
strcpy (IXC_DNIS,dest);
} else {
sscanf (dest,"%c%10s",IXC_OPERATOR,
IXC_DNIS);
}
break;
case 2:
sscanf (src, "%2s%10s",IXC_PRESUB,IXC_ANI);
if (strlen(dest) == 10) {
strcpy (IXC_DNIS,dest);
} else {
sscanf (dest,"%10s",IXC_OPERATOR,IXC_DNIS);
}
break;
case 3:
sscanf (src,"%3s%4s%3s",IXC_OZZ, IXC_CIC, IXC_COUNTRY);
sscanf (dest, "%2s%10s",IXC_PRESUB,IXC_ANI);
strcpy (IXC_DNIS,intl);
}
printf ("src=%s\n dest=%s\nintl=%s\n",src,dest,intl);
return 0;
}