libosmogsm  0.9.3
Osmocom GSM library
include/osmocom/gsm/mncc.h
00001 #pragma once
00002 
00003 #include <osmocom/gsm/protocol/gsm_04_08.h>
00004 
00005 #define GSM_MAX_FACILITY       128
00006 #define GSM_MAX_SSVERSION      128
00007 #define GSM_MAX_USERUSER       128
00008 
00009 /* Expanded fields from GSM TS 04.08, Table 10.5.102 */
00010 struct gsm_mncc_bearer_cap {
00011         int             transfer;       /* Information Transfer Capability */
00012         int             mode;           /* Transfer Mode */
00013         int             coding;         /* Coding Standard */
00014         int             radio;          /* Radio Channel Requirement */
00015         int             speech_ctm;     /* CTM text telephony indication */
00016         int             speech_ver[8];  /* Speech version indication */
00017         struct {
00018                 enum gsm48_bcap_ra              rate_adaption;
00019                 enum gsm48_bcap_sig_access      sig_access;
00020                 int                             async;
00021                 int                             nr_stop_bits;
00022                 int                             nr_data_bits;
00023                 enum gsm48_bcap_user_rate       user_rate;
00024                 enum gsm48_bcap_parity          parity;
00025                 enum gsm48_bcap_interm_rate     interm_rate;
00026                 enum gsm48_bcap_transp          transp;
00027                 enum gsm48_bcap_modem_type      modem_type;
00028         } data;
00029 };
00030 
00031 struct gsm_mncc_number {
00032         int             type;
00033         int             plan;
00034         int             present;
00035         int             screen;
00036         char            number[33];
00037 };
00038 
00039 struct gsm_mncc_cause {
00040         int             location;
00041         int             coding;
00042         int             rec;
00043         int             rec_val;
00044         int             value;
00045         int             diag_len;
00046         char            diag[32];
00047 };
00048 
00049 struct gsm_mncc_useruser {
00050         int             proto;
00051         char            info[GSM_MAX_USERUSER + 1]; /* + termination char */
00052 };
00053 
00054 struct gsm_mncc_progress {
00055         int             coding;
00056         int             location;
00057         int             descr;
00058 };
00059 
00060 struct gsm_mncc_facility {
00061         int             len;
00062         char            info[GSM_MAX_FACILITY];
00063 };
00064 
00065 struct gsm_mncc_ssversion {
00066         int             len;
00067         char            info[GSM_MAX_SSVERSION];
00068 };
00069 
00070 struct gsm_mncc_cccap {
00071         int             dtmf;
00072         int             pcp;
00073 };
00074 
00075 enum {
00076         GSM_MNCC_BCAP_SPEECH    = 0,
00077         GSM_MNCC_BCAP_UNR_DIG   = 1,
00078         GSM_MNCC_BCAP_AUDIO     = 2,
00079         GSM_MNCC_BCAP_FAX_G3    = 3,
00080         GSM_MNCC_BCAP_OTHER_ITC = 5,
00081         GSM_MNCC_BCAP_RESERVED  = 7,
00082 };