X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=blobdiff_plain;f=gsm.h;h=5080a8a5f734bf75b8198a01751e93e56832cf9e;hp=f2e37eb951d3954840acc38027f65f0b687d7cfe;hb=2f9f37a9110e3c8fe7a317894c8aec5ed602b39c;hpb=a12d7eee22a72f4c999535892763dde15212e89e diff --git a/gsm.h b/gsm.h index f2e37eb..5080a8a 100644 --- a/gsm.h +++ b/gsm.h @@ -2,8 +2,6 @@ extern int new_callref; 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 */ @@ -14,11 +12,21 @@ struct gsm_conf { 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; @@ -54,6 +62,7 @@ class Pgsm : public PmISDN 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); @@ -76,3 +85,6 @@ int gsm_conf(struct gsm_conf *gsm_conf, char *conf_error); int gsm_exit(int rc); int gsm_init(void); +extern "C" { +int mncc_send(struct gsm_network *instance, int msg_type, void *data); +};