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