Esempio n. 1
0
char *
print_i4b_cause(cause_t code)
{
	static char error_message[128];

	snprintf(error_message, sizeof(error_message), "%d: ", GET_CAUSE_VAL(code));

	switch (GET_CAUSE_TYPE(code))
	{
	case CAUSET_Q850:
		strlcat(error_message,
		    cause_q850_tab[GET_CAUSE_VAL(code)],
		    sizeof(error_message));
		strlcat(error_message, " (Q.850)",
		    sizeof(error_message));
		break;

	case CAUSET_I4B:
		if ((GET_CAUSE_VAL(code) >= CAUSE_I4B_MAX))
		{
			SET_CAUSE_VAL(code, CAUSE_I4B_MAX);
		}
		strlcat(error_message,
		    cause_i4b_tab[GET_CAUSE_VAL(code)],
		    sizeof(error_message));
		strlcat(error_message, " (I4B)", sizeof(error_message));
		break;

	default:
		strlcat(error_message, "ERROR: unknown cause type!",
		    sizeof(error_message));
		break;
	}
	return(error_message);
}
Esempio n. 2
0
/*---------------------------------------------------------------------------*
 *	return a valid q.931/q.850 cause from any of the internal causes
 *---------------------------------------------------------------------------*/
static unsigned char
make_q931_cause(cause_t cause)
{
	register unsigned char ret;
	
	switch(GET_CAUSE_TYPE(cause))
	{
		case CAUSET_Q850:
			ret = GET_CAUSE_VAL(cause);
			break;
		case CAUSET_I4B:
			ret = cause_tab_q931[GET_CAUSE_VAL(cause)];
			break;
		default:
			panic("make_q931_cause: unknown cause type!");
			break;
	}
	ret |= EXT_LAST;
	return(ret);
}