view include/gsm48_const.h @ 152:7176dc850d7a

sip-in hold/retr error handling: simply send BYE Because we know that the SIP state is CONNECTED at the time of any such error event, we can call initiate_bye() instead of disconnect_sip(), and thereby get rid of struct gsm_mncc_cause which will never be used in this scenario anyway.
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 11 Oct 2022 16:11:21 -0800
parents 0e907d59d815
children
line wrap: on
line source

/*
 * This header file contains some GSM 04.08 constants pulled from
 * Osmocom header file <osmocom/gsm/protocol/gsm_04_08.h>,
 * beyond those included in mncc.h essential interface definition.
 */

#ifndef	__GSM48_CONST_H
#define	__GSM48_CONST_H

enum gsm48_chan_mode {
	GSM48_CMODE_SIGN	= 0x00,
	GSM48_CMODE_SPEECH_V1	= 0x01,
	GSM48_CMODE_SPEECH_EFR	= 0x21,
	GSM48_CMODE_SPEECH_AMR	= 0x41,
	GSM48_CMODE_DATA_14k5	= 0x0f,
	GSM48_CMODE_DATA_12k0	= 0x03,
	GSM48_CMODE_DATA_6k0	= 0x0b,
	GSM48_CMODE_DATA_3k6	= 0x13,
	GSM48_CMODE_SPEECH_V1_VAMOS	= 0xc1,
	GSM48_CMODE_SPEECH_V2_VAMOS	= 0xc2,
	GSM48_CMODE_SPEECH_V3_VAMOS	= 0xc3,
	GSM48_CMODE_SPEECH_V5_VAMOS	= 0xc5,
};

/* Section 10.5.4.21 / Table 10.5.127 */

enum gsm48_progress_desc {
	GSM48_PROGR_NOT_E2E		= 0x00,
	GSM48_PROGR_DEST_NOT_PLMN	= 0x02,
	GSM48_PROGR_ORIG_NOT_PLMN	= 0x03,
	GSM48_PROGR_RETURNED		= 0x04,
	GSM48_PROGR_IN_BAND_AVAIL	= 0x08,
	GSM48_PROGR_CALL_E2E		= 0x20,
	GSM48_PROGR_QUEUEING		= 0x40,
};

/* Section 10.5.4.23 / Table 10.5.130 */
enum gsm48_signal_val {
	GSM48_SIGNAL_DIALTONE	= 0x00,
	GSM48_SIGNAL_RINGBACK	= 0x01,
	GSM48_SIGNAL_INTERCEPT	= 0x02,
	GSM48_SIGNAL_NET_CONG	= 0x03,
	GSM48_SIGNAL_BUSY	= 0x04,
	GSM48_SIGNAL_CONFIRM	= 0x05,
	GSM48_SIGNAL_ANSWER	= 0x06,
	GSM48_SIGNAL_CALL_WAIT	= 0x07,
	GSM48_SIGNAL_OFF_HOOK	= 0x08,
	GSM48_SIGNAL_OFF	= 0x3f,
	GSM48_SIGNAL_ALERT_OFF	= 0x4f,
};

/* Section 10.5.4.11 / Table 10.5.122 */
enum gsm48_cause_coding {
	GSM48_CAUSE_CODING_CCITT_Q931	= 0x00,
	GSM48_CAUSE_CODING_RESERVED	= 0x01,
	GSM48_CAUSE_CODING_NATIONAL	= 0x02,
	GSM48_CAUSE_CODING_GSM		= 0x03,
};

enum gsm48_cause_loc {
	GSM48_CAUSE_LOC_USER		= 0x00,
	GSM48_CAUSE_LOC_PRN_S_LU	= 0x01,
	GSM48_CAUSE_LOC_PUN_S_LU	= 0x02,
	GSM48_CAUSE_LOC_TRANS_NET	= 0x03,
	GSM48_CAUSE_LOC_PUN_S_RU	= 0x04,
	GSM48_CAUSE_LOC_PRN_S_RU	= 0x05,
	/* not defined */
	GSM48_CAUSE_LOC_INN_NET		= 0x07,
	GSM48_CAUSE_LOC_NET_BEYOND	= 0x0a,
};

/* Section 10.5.4.11 CC Cause / Table 10.5.123 */
enum gsm48_cc_cause {
	GSM48_CC_CAUSE_UNASSIGNED_NR	= 1,
	GSM48_CC_CAUSE_NO_ROUTE		= 3,
	GSM48_CC_CAUSE_CHAN_UNACCEPT	= 6,
	GSM48_CC_CAUSE_OP_DET_BARRING	= 8,
	GSM48_CC_CAUSE_NORM_CALL_CLEAR	= 16,
	GSM48_CC_CAUSE_USER_BUSY	= 17,
	GSM48_CC_CAUSE_USER_NOTRESPOND	= 18,
	GSM48_CC_CAUSE_USER_ALERTING_NA	= 19,
	GSM48_CC_CAUSE_CALL_REJECTED	= 21,
	GSM48_CC_CAUSE_NUMBER_CHANGED	= 22,
	GSM48_CC_CAUSE_PRE_EMPTION	= 25,
	GSM48_CC_CAUSE_NONSE_USER_CLR	= 26,
	GSM48_CC_CAUSE_DEST_OOO		= 27,
	GSM48_CC_CAUSE_INV_NR_FORMAT	= 28,
	GSM48_CC_CAUSE_FACILITY_REJ	= 29,
	GSM48_CC_CAUSE_RESP_STATUS_INQ	= 30,
	GSM48_CC_CAUSE_NORMAL_UNSPEC	= 31,
	GSM48_CC_CAUSE_NO_CIRCUIT_CHAN	= 34,
	GSM48_CC_CAUSE_NETWORK_OOO	= 38,
	GSM48_CC_CAUSE_TEMP_FAILURE	= 41,
	GSM48_CC_CAUSE_SWITCH_CONG	= 42,
	GSM48_CC_CAUSE_ACC_INF_DISCARD	= 43,
	GSM48_CC_CAUSE_REQ_CHAN_UNAVAIL	= 44,
	GSM48_CC_CAUSE_RESOURCE_UNAVAIL	= 47,
	GSM48_CC_CAUSE_QOS_UNAVAIL	= 49,
	GSM48_CC_CAUSE_REQ_FAC_NOT_SUBSC= 50,
	GSM48_CC_CAUSE_INC_BARRED_CUG	= 55,
	GSM48_CC_CAUSE_BEARER_CAP_UNAUTH= 57,
	GSM48_CC_CAUSE_BEARER_CA_UNAVAIL= 58,
	GSM48_CC_CAUSE_SERV_OPT_UNAVAIL	= 63,
	GSM48_CC_CAUSE_BEARERSERV_UNIMPL= 65,
	GSM48_CC_CAUSE_ACM_GE_ACM_MAX	= 68,
	GSM48_CC_CAUSE_REQ_FAC_NOTIMPL	= 69,
	GSM48_CC_CAUSE_RESTR_BCAP_AVAIL	= 70,
	GSM48_CC_CAUSE_SERV_OPT_UNIMPL	= 79,
	GSM48_CC_CAUSE_INVAL_TRANS_ID	= 81,
	GSM48_CC_CAUSE_USER_NOT_IN_CUG	= 87,
	GSM48_CC_CAUSE_INCOMPAT_DEST	= 88,
	GSM48_CC_CAUSE_INVAL_TRANS_NET	= 91,
	GSM48_CC_CAUSE_SEMANTIC_INCORR	= 95,
	GSM48_CC_CAUSE_INVAL_MAND_INF	= 96,
	GSM48_CC_CAUSE_MSGTYPE_NOTEXIST	= 97,
	GSM48_CC_CAUSE_MSGTYPE_INCOMPAT	= 98,
	GSM48_CC_CAUSE_IE_NOTEXIST	= 99,
	GSM48_CC_CAUSE_COND_IE_ERR	= 100,
	GSM48_CC_CAUSE_MSG_INCOMP_STATE	= 101,
	GSM48_CC_CAUSE_RECOVERY_TIMER	= 102,
	GSM48_CC_CAUSE_PROTO_ERR	= 111,
	GSM48_CC_CAUSE_INTERWORKING	= 127,
};

/* Table 10.5.118 / 3GPP TS 24.008 Section 10.5.4.7 */
enum gsm48_type_of_number {
	GSM48_TON_UNKNOWN	= 0,
	GSM48_TON_INTERNATIONAL	= 1,
	GSM48_TON_NATIONAL	= 2,
	GSM48_TON_NET_SPEC	= 3,
	GSM48_TON_SHORT_CODE	= 4,
	/* reserved */
};

/* Table 10.5.118 / 3GPP TS 24.008 Section 10.5.4.7 */
enum gsm48_numbering_plan {
	GSM48_NPI_UNKNOWN	= 0,
	GSM48_NPI_ISDN_E164	= 1,
	GSM48_NPI_DATA_X121	= 3,
	GSM48_NPI_TELEX_F69	= 4,
	GSM48_NPI_NATIONAL	= 8,
	GSM48_NPI_PRIVATE	= 9,
	GSM48_NPI_CTS		= 11,
	/* reserved */
};

/* local addition, not from Osmocom: Table 10.5.120 from same spec as above */

enum gsm48_present_ind {
	GSM48_PRES_ALLOW	= 0,
	GSM48_PRES_RESTR	= 1,
	GSM48_PRES_UNAVAIL	= 2,
	/* reserved */
};

enum gsm48_screen_ind {
	GSM48_SCRN_USER_NS	= 0,
	GSM48_SCRN_USER_PASS	= 1,
	GSM48_SCRN_USER_FAIL	= 2,
	GSM48_SCRN_NETWORK	= 3,
};

#endif	/* include guard */