Esempio n. 1
0
static int
prcause_1tr6(char *dest, u_char * p)
{
	char *dp = dest;
	int i, cause;

	p++;
	if (0 == *p) {
		dp += sprintf(dp, "   OK (cause length=0)\n");
		return (dp - dest);
	} else if (*p > 1) {
		dp += sprintf(dp, "    coding ");
		dp += prbits(dp, p[2], 7, 2);
		dp += sprintf(dp, " location ");
		dp += prbits(dp, p[2], 4, 4);
		*dp++ = '\n';
	}
	p++;
	cause = 0x7f & *p;

	/* locate cause value */
	for (i = 0; i < cause_1tr6_len; i++)
		if (cause_1tr6[i].nr == cause)
			break;

	/* display cause value if it exists */
	if (i == cause_1tr6_len)
		dp += sprintf(dp, "Unknown cause type %x!\n", cause);
	else
		dp += sprintf(dp, "  cause value %x : %s \n", cause, cause_1tr6[i].descr);

	return (dp - dest);

}
Esempio n. 2
0
int
prfacility(char *dest, u_char * p)
{
	char *dp = dest;
	int l, l2;

	p++;
	l = *p++;
	dp += sprintf(dp, "    octet 3 ");
	dp += prbits(dp, *p++, 8, 8);
	dp += sprintf(dp, "\n");
	l -= 1;

	while (l > 0) {
		dp += sprintf(dp, "   octet 4 ");
		dp += prbits(dp, *p++, 8, 8);
		dp += sprintf(dp, "\n");
		dp += sprintf(dp, "   octet 5 %d\n", l2 = *p++ & 0x7f);
		l -= 2;
		dp += sprintf(dp, "   contents ");
		while (l2--) {
			dp += sprintf(dp, "%2x ", *p++);
			l--;
		}
		dp += sprintf(dp, "\n");
	}

	return (dp - dest);
}
Esempio n. 3
0
static int
prcalling(char *dest, u_char * p)
{
	int l;
	char *dp = dest;

	p++;
	l = *p++ - 1;
	dp += sprintf(dp, "    octet 3 ");
	dp += prbits(dp, *p, 8, 8);
	*dp++ = '\n';
	if (!(*p & 0x80)) {
		dp += sprintf(dp, "    octet 3a ");
		dp += prbits(dp, *++p, 8, 8);
		*dp++ = '\n';
		l--;
	};
	p++;

	dp += sprintf(dp, "    number digits ");
	while (l--)
		*dp++ = *p++;
	*dp++ = '\n';
	return (dp - dest);
}
Esempio n. 4
0
static int
prfeatureind(char *dest, u_char * p)
{
	char *dp = dest;

	p += 2; /* skip id, len */
	dp += sprintf(dp, "    octet 3  ");
	dp += prbits(dp, *p, 8, 8);
	*dp++ = '\n';
	if (!(*p++ & 80)) {
		dp += sprintf(dp, "    octet 4  ");
		dp += prbits(dp, *p++, 8, 8);
		*dp++ = '\n';
	}
	dp += sprintf(dp, "    Status:  ");
	switch (*p) {
		case 0:
			dp += sprintf(dp, "Idle");
			break;
		case 1:
			dp += sprintf(dp, "Active");
			break;
		case 2:
			dp += sprintf(dp, "Prompt");
			break;
		case 3:
			dp += sprintf(dp, "Pending");
			break;
		default:
			dp += sprintf(dp, "(Reserved)");
			break;
	}
	*dp++ = '\n';
	return (dp - dest);
}
Esempio n. 5
0
static
int
prbearer_ni1(char *dest, u_char * p)
{
	char *dp = dest;
	u_char len;

	p++;
	len = *p++;
	dp += sprintf(dp, "    octet 3  ");
	dp += prbits(dp, *p, 8, 8);
	switch (*p++) {
		case 0x80:
			dp += sprintf(dp, " Speech");
			break;
		case 0x88:
			dp += sprintf(dp, " Unrestricted digital information");
			break;
		case 0x90:
			dp += sprintf(dp, " 3.1 kHz audio");
			break;
		default:
			dp += sprintf(dp, " Unknown information-transfer capability");
	}
	*dp++ = '\n';
	dp += sprintf(dp, "    octet 4  ");
	dp += prbits(dp, *p, 8, 8);
	switch (*p++) {
		case 0x90:
			dp += sprintf(dp, " 64 kbps, circuit mode");
			break;
		case 0xc0:
			dp += sprintf(dp, " Packet mode");
			break;
		default:
			dp += sprintf(dp, " Unknown transfer mode");
	}
	*dp++ = '\n';
	if (len > 2) {
		dp += sprintf(dp, "    octet 5  ");
		dp += prbits(dp, *p, 8, 8);
		switch (*p++) {
			case 0x21:
				dp += sprintf(dp, " Rate adaption\n");
				dp += sprintf(dp, "    octet 5a ");
				dp += prbits(dp, *p, 8, 8);
				break;
			case 0xa2:
				dp += sprintf(dp, " u-law");
				break;
			default:
				dp += sprintf(dp, " Unknown UI layer 1 protocol");
		}
		*dp++ = '\n';
	}
	return (dp - dest);
}
Esempio n. 6
0
static int
general(char *dest, u_char * p)
{
	char *dp = dest;
	char ch = ' ';
	int l, octet = 3;

	p++;
	l = *p++;
	/* Iterate over all octets in the information element */
	while (l--) {
		dp += sprintf(dp, "    octet %d%c ", octet, ch);
		dp += prbits(dp, *p++, 8, 8);
		*dp++ = '\n';

		/* last octet in group? */
		if (*p & 0x80) {
			octet++;
			ch = ' ';
		} else if (ch == ' ')
			ch = 'a';
		else
			ch++;
	}
	return (dp - dest);
}
Esempio n. 7
0
static int
general_ni1(char *dest, u_char * p)
{
	char *dp = dest;
	char ch = ' ';
	int l, octet = 3;

	p++;
	l = *p++;
	
	while (l--) {
		dp += sprintf(dp, "    octet %d%c ", octet, ch);
		dp += prbits(dp, *p, 8, 8);
		*dp++ = '\n';

		
		if (*p++ & 0x80) {
			octet++;
			ch = ' ';
		} else if (ch == ' ')
			ch = 'a';
		else
			ch++;
	}
	return (dp - dest);
}
Esempio n. 8
0
static
int
prcause(char *dest, u_char * p)
{
	u_char *end;
	char *dp = dest;
	int i, cause;

	end = p + p[1] + 1;
	p += 2;
	dp += sprintf(dp, "    coding ");
	dp += prbits(dp, *p, 7, 2);
	dp += sprintf(dp, " location ");
	dp += prbits(dp, *p, 4, 4);
	*dp++ = '\n';
	p = skipext(p);

	cause = 0x7f & *p++;

	/* locate cause value */
	for (i = 0; i < CVSIZE; i++)
		if (cvlist[i].nr == cause)
			break;

	/* display cause value if it exists */
	if (i == CVSIZE)
		dp += sprintf(dp, "Unknown cause type %x!\n", cause);
	else
		dp += sprintf(dp, "  cause value %x : %s \n", cause, cvlist[i].edescr);

	while (!0) {
		if (p > end)
			break;
		dp += sprintf(dp, "    diag attribute %d ", *p++ & 0x7f);
		dp += sprintf(dp, " rej %d ", *p & 0x7f);
		if (*p & 0x80) {
			*dp++ = '\n';
			break;
		} else
			dp += sprintf(dp, " av %d\n", (*++p) & 0x7f);
	}
	return (dp - dest);

}
Esempio n. 9
0
static int
prchident(char *dest, u_char * p)
{
	char *dp = dest;

	p += 2;
	dp += sprintf(dp, "    octet 3 ");
	dp += prbits(dp, *p, 8, 8);
	*dp++ = '\n';
	return (dp - dest);
}
Esempio n. 10
0
static int
prcharge(char *dest, u_char * p)
{
	char *dp = dest;
	int l;

	p++;
	l = *p++ - 1;
	dp += sprintf(dp, "    GEA ");
	dp += prbits(dp, *p++, 8, 8);
	dp += sprintf(dp, "  Anzahl: ");
	/* Iterate over all octets in the * information element */
	while (l--)
		*dp++ = *p++;
	*dp++ = '\n';
	return (dp - dest);
}
Esempio n. 11
0
static int
prcalled(char *dest, u_char * p)
{
	int l;
	char *dp = dest;

	p++;
	l = *p++ - 1;
	dp += sprintf(dp, "    octet 3 ");
	dp += prbits(dp, *p++, 8, 8);
	*dp++ = '\n';
	dp += sprintf(dp, "    number digits ");
	while (l--)
		*dp++ = *p++;
	*dp++ = '\n';
	return (dp - dest);
}
Esempio n. 12
0
static int
prcharge(char *dest, u_char * p)
{
	char *dp = dest;
	int l;

	p++;
	l = *p++ - 1;
	dp += sprintf(dp, "    GEA ");
	dp += prbits(dp, *p++, 8, 8);
	dp += sprintf(dp, "  Anzahl: ");
	
	while (l--)
		*dp++ = *p++;
	*dp++ = '\n';
	return (dp - dest);
}
Esempio n. 13
0
static
int
prbearer(char *dest, u_char * p)
{
	char *dp = dest, ch;

	p += 2;
	dp += sprintf(dp, "    octet 3  ");
	dp += prbits(dp, *p++, 8, 8);
	*dp++ = '\n';
	dp += sprintf(dp, "    octet 4  ");
	dp += prbits(dp, *p, 8, 8);
	*dp++ = '\n';
	if ((*p++ & 0x1f) == 0x18) {
		dp += sprintf(dp, "    octet 4.1 ");
		dp += prbits(dp, *p++, 8, 8);
		*dp++ = '\n';
	}
	/* check for user information layer 1 */
	if ((*p & 0x60) == 0x20) {
		ch = ' ';
		do {
			dp += sprintf(dp, "    octet 5%c ", ch);
			dp += prbits(dp, *p, 8, 8);
			*dp++ = '\n';
			if (ch == ' ')
				ch = 'a';
			else
				ch++;
		}
		while (!(*p++ & 0x80));
	}
	/* check for user information layer 2 */
	if ((*p & 0x60) == 0x40) {
		dp += sprintf(dp, "    octet 6  ");
		dp += prbits(dp, *p++, 8, 8);
		*dp++ = '\n';
	}
	/* check for user information layer 3 */
	if ((*p & 0x60) == 0x60) {
		dp += sprintf(dp, "    octet 7  ");
		dp += prbits(dp, *p++, 8, 8);
		*dp++ = '\n';
	}
	return (dp - dest);
}