All pastes #23978 Raw Edit

Stuff

public text v1 · immutable
#23978 ·published 2005-09-26 18:32 UTC
rendered paste body
#include <stdio.h>
#include <string.h>

int main (void)
{
	char dtmfbuf [300] = "*002044896227#*06045551212#";
	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];
	char ch, chstr[11];
	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);
			strcpy (IXC_CUTTHROUGH,"1");
			break;
		case 4:
			sscanf (src, "%2s%10s",IXC_PRESUB,IXC_ANI);
			sscanf (dest,"%c%10s",ch,chstr);
			if(ch=='0')
				strcpy (IXC_OPERATOR,"1");
			strcpy (IXC_DNIS,"1");
			strcat (IXC_DNIS,chstr);
			break;
		case 2:
			sscanf (src, "%2s%10s",IXC_PRESUB,IXC_ANI);
			strcpy (IXC_DNIS,"1");
			strcat (IXC_DNIS,dest);
			break;
		case 3:
			sscanf (src,"%3s%4s%3s",IXC_OZZ, IXC_CIC, IXC_COUNTRY);
			sscanf (dest, "%2s%10s",IXC_PRESUB,IXC_ANI);
			if (strcmp (IXC_OZZ,"138")==0)
				strcpy (IXC_OPERATOR,"0");
			else if (strcmp(IXC_OZZ,"158")==0)
				strcpy (IXC_OPERATOR,"1");
			strcpy (IXC_DNIS,"011");
			strcat (IXC_DNIS,intl);
	}
	printf ("src=%s\n dest=%s\nintl=%s\n",src,dest,intl);
	return 0;
}