Update MNCC with LLC+HLC support
... as introduced in osmo-msc Change-Id I15f5afcf069ee6c1c4641108ceacc837bee311b5 Change-Id: Ic318656b778ed1ce115d8e60b0dce4ef75ed0a2c
This commit is contained in:
parent
c773281ead
commit
2883ecb55d
23
mncc.h
23
mncc.h
|
@ -280,6 +280,15 @@ enum gsm_mncc_bcap {
|
|||
#define MNCC_F_CCCAP 0x0800
|
||||
#define MNCC_F_KEYPAD 0x1000
|
||||
#define MNCC_F_SIGNAL 0x2000
|
||||
#define MNCC_F_GCR 0x4000
|
||||
#define MNCC_F_HIGHL_COMPAT 0x8000
|
||||
#define MNCC_F_LOWL_COMPAT 0x10000
|
||||
|
||||
/* UPDATEME when adding new MNCC_F_* entries above */
|
||||
#define MNCC_F_ALL 0x1ffff
|
||||
|
||||
#define GSM_MAX_LOWL_COMPAT 16 /* (18 with TLV) */
|
||||
#define GSM_MAX_HIGHL_COMPAT 3 /* (5 with TLV) */
|
||||
|
||||
struct gsm_mncc {
|
||||
/* context based information */
|
||||
|
@ -319,6 +328,20 @@ struct gsm_mncc {
|
|||
|
||||
struct osmo_gcr_parsed gcr;
|
||||
char sdp[1024];
|
||||
|
||||
/* Additional information that extends current socket interface version. */
|
||||
|
||||
/* The content requals of Low Layer compatibility IE, described in 3GPP TS 24.008 §10.5.4.18. */
|
||||
struct gsm_mncc_lowl_compat {
|
||||
uint8_t len;
|
||||
uint8_t compat[GSM_MAX_LOWL_COMPAT];
|
||||
} llc;
|
||||
|
||||
/* The content requals of High Layer compatibility IE, described in 3GPP TS 24.008 §10.5.4.16. */
|
||||
struct gsm_mncc_highl_compat {
|
||||
uint8_t len;
|
||||
uint8_t compat[GSM_MAX_HIGHL_COMPAT];
|
||||
} hlc;
|
||||
};
|
||||
|
||||
struct gsm_data_frame {
|
||||
|
|
38
mncc.py
38
mncc.py
|
@ -188,6 +188,12 @@ MNCC_F_SSVERSION = 0x0400 # macro
|
|||
MNCC_F_CCCAP = 0x0800 # macro
|
||||
MNCC_F_KEYPAD = 0x1000 # macro
|
||||
MNCC_F_SIGNAL = 0x2000 # macro
|
||||
MNCC_F_GCR = 0x4000 # macro
|
||||
MNCC_F_HIGHL_COMPAT = 0x8000 # macro
|
||||
MNCC_F_LOWL_COMPAT = 0x10000 # macro
|
||||
MNCC_F_ALL = 0x1ffff # macro
|
||||
GSM_MAX_LOWL_COMPAT = 16 # macro
|
||||
GSM_MAX_HIGHL_COMPAT = 3 # macro
|
||||
MNCC_SOCK_VERSION = 8 # macro
|
||||
|
||||
# values for enumeration 'gsm48_bcap_itcap'
|
||||
|
@ -502,6 +508,24 @@ gsm_mncc_bcap = ctypes.c_uint32 # enum
|
|||
class struct_gsm_mncc(Structure):
|
||||
pass
|
||||
|
||||
class struct_gsm_mncc_lowl_compat(Structure):
|
||||
pass
|
||||
|
||||
struct_gsm_mncc_lowl_compat._pack_ = 1 # source:False
|
||||
struct_gsm_mncc_lowl_compat._fields_ = [
|
||||
('len', ctypes.c_ubyte),
|
||||
('compat', ctypes.c_ubyte * 16),
|
||||
]
|
||||
|
||||
class struct_gsm_mncc_highl_compat(Structure):
|
||||
pass
|
||||
|
||||
struct_gsm_mncc_highl_compat._pack_ = 1 # source:False
|
||||
struct_gsm_mncc_highl_compat._fields_ = [
|
||||
('len', ctypes.c_ubyte),
|
||||
('compat', ctypes.c_ubyte * 3),
|
||||
]
|
||||
|
||||
class struct_gsm_mncc_clir(Structure):
|
||||
pass
|
||||
|
||||
|
@ -538,6 +562,9 @@ struct_gsm_mncc._fields_ = [
|
|||
('lchan_mode', ctypes.c_ubyte),
|
||||
('gcr', struct_osmo_gcr_parsed),
|
||||
('sdp', ctypes.c_char * 1024),
|
||||
('llc', struct_gsm_mncc_lowl_compat),
|
||||
('hlc', struct_gsm_mncc_highl_compat),
|
||||
('PADDING_0', ctypes.c_ubyte * 3),
|
||||
]
|
||||
|
||||
class struct_gsm_data_frame(Structure):
|
||||
|
@ -625,6 +652,7 @@ __all__ = \
|
|||
'GSM48_BCAP_UR_12000', 'GSM48_BCAP_UR_1200_75',
|
||||
'GSM48_BCAP_UR_2400', 'GSM48_BCAP_UR_300', 'GSM48_BCAP_UR_4800',
|
||||
'GSM48_BCAP_UR_9600', 'GSM_BAD_FRAME', 'GSM_MAX_FACILITY',
|
||||
'GSM_MAX_HIGHL_COMPAT', 'GSM_MAX_LOWL_COMPAT',
|
||||
'GSM_MAX_SSVERSION', 'GSM_MAX_USERUSER', 'GSM_MNCC_BCAP_AUDIO',
|
||||
'GSM_MNCC_BCAP_FAX_G3', 'GSM_MNCC_BCAP_OTHER_ITC',
|
||||
'GSM_MNCC_BCAP_RESERVED', 'GSM_MNCC_BCAP_SPEECH',
|
||||
|
@ -633,10 +661,11 @@ __all__ = \
|
|||
'MNCC_ALERT_REQ', 'MNCC_BRIDGE', 'MNCC_CALL_CONF_IND',
|
||||
'MNCC_CALL_PROC_REQ', 'MNCC_DISC_IND', 'MNCC_DISC_REQ',
|
||||
'MNCC_FACILITY_IND', 'MNCC_FACILITY_REQ', 'MNCC_FRAME_DROP',
|
||||
'MNCC_FRAME_RECV', 'MNCC_F_BEARER_CAP', 'MNCC_F_CALLED',
|
||||
'MNCC_F_CALLING', 'MNCC_F_CAUSE', 'MNCC_F_CCCAP',
|
||||
'MNCC_FRAME_RECV', 'MNCC_F_ALL', 'MNCC_F_BEARER_CAP',
|
||||
'MNCC_F_CALLED', 'MNCC_F_CALLING', 'MNCC_F_CAUSE', 'MNCC_F_CCCAP',
|
||||
'MNCC_F_CONNECTED', 'MNCC_F_EMERGENCY', 'MNCC_F_FACILITY',
|
||||
'MNCC_F_KEYPAD', 'MNCC_F_PROGRESS', 'MNCC_F_REDIRECTING',
|
||||
'MNCC_F_GCR', 'MNCC_F_HIGHL_COMPAT', 'MNCC_F_KEYPAD',
|
||||
'MNCC_F_LOWL_COMPAT', 'MNCC_F_PROGRESS', 'MNCC_F_REDIRECTING',
|
||||
'MNCC_F_SIGNAL', 'MNCC_F_SSVERSION', 'MNCC_F_USERUSER',
|
||||
'MNCC_HOLD_CNF', 'MNCC_HOLD_IND', 'MNCC_HOLD_REJ',
|
||||
'MNCC_LCHAN_MODIFY', 'MNCC_MODIFY_CNF', 'MNCC_MODIFY_IND',
|
||||
|
@ -660,7 +689,8 @@ __all__ = \
|
|||
'struct_gsm_mncc_bearer_cap_data', 'struct_gsm_mncc_bridge',
|
||||
'struct_gsm_mncc_cause', 'struct_gsm_mncc_cccap',
|
||||
'struct_gsm_mncc_clir', 'struct_gsm_mncc_facility',
|
||||
'struct_gsm_mncc_hello', 'struct_gsm_mncc_number',
|
||||
'struct_gsm_mncc_hello', 'struct_gsm_mncc_highl_compat',
|
||||
'struct_gsm_mncc_lowl_compat', 'struct_gsm_mncc_number',
|
||||
'struct_gsm_mncc_progress', 'struct_gsm_mncc_rtp',
|
||||
'struct_gsm_mncc_ssversion', 'struct_gsm_mncc_useruser',
|
||||
'struct_osmo_gcr_parsed', 'struct_sockaddr_storage']
|
||||
|
|
Loading…
Reference in New Issue