libosmogsm  0.11.0-dirty
Osmocom GSM library
include/osmocom/gsm/mncc.h
Go to the documentation of this file.
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);
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines