struct gsm_conf {
char debug[128]; /* debug info */
- char interface_bsc[64]; /* loopback interface BSC side */
- char interface_lcr[64]; /* loopback interface LCR side */
char openbsc_cfg[128]; /* openbsc config file */
char short_name[64]; /* short network name */
char long_name[64]; /* long network name */
int reject_cause; /* reject cause for unsubcribed IMSIs */
};
+struct mncc_q_entry {
+ struct mncc_q_entry *next;
+ unsigned int len;
+ char data[0]; /* struct gsm_mncc */
+};
+
struct lcr_gsm {
void *network; /* OpenBSC network handle */
struct gsm_conf conf; /* gsm.conf options */
int gsm_sock; /* loopback interface GSM side */
int gsm_port; /* loopback interface port number */
+
+ struct lcr_fd mncc_lfd; /* Unix domain socket to OpenBSC MNCC */
+ struct mncc_q_entry *mncc_q_hd;
+ struct mncc_q_entry *mncc_q_tail;
};
extern struct lcr_gsm *gsm;
int hunt_bchannel(void);
void call_conf_ind(unsigned int msg_type, unsigned int callref, struct gsm_mncc *gsm);
+ void call_proc_ind(unsigned int msg_type, unsigned int callref, struct gsm_mncc *mncc);
void alert_ind(unsigned int msg_type, unsigned int callref, struct gsm_mncc *mncc);
void setup_cnf(unsigned int msg_type, unsigned int callref, struct gsm_mncc *mncc);
void setup_compl_ind(unsigned int msg_type, unsigned int callref, struct gsm_mncc *mncc);
int gsm_exit(int rc);
int gsm_init(void);
+extern "C" {
+int mncc_send(struct gsm_network *instance, int msg_type, void *data);
+};