summaryrefslogtreecommitdiff
path: root/channels/misdn/isdn_lib.h
diff options
context:
space:
mode:
Diffstat (limited to 'channels/misdn/isdn_lib.h')
-rwxr-xr-xchannels/misdn/isdn_lib.h133
1 files changed, 30 insertions, 103 deletions
diff --git a/channels/misdn/isdn_lib.h b/channels/misdn/isdn_lib.h
index a6f3a25a8..9b84ae110 100755
--- a/channels/misdn/isdn_lib.h
+++ b/channels/misdn/isdn_lib.h
@@ -14,37 +14,13 @@
#ifndef TE_LIB
#define TE_LIB
-#include <mISDNlib.h>
-#include <isdn_net.h>
-#include <l3dss1.h>
-#include <net_l3.h>
-
-#include <pthread.h>
-
-#ifndef mISDNUSER_HEAD_SIZE
-
-#ifdef MISDNUSER_JOLLY
-#define mISDNUSER_HEAD_SIZE (sizeof(mISDNuser_head_t))
-#else
-#define mISDNUSER_HEAD_SIZE (sizeof(mISDN_head_t))
-#endif
-#endif
-
-#define MISDN_ASTERISK_TECH_PVT(ast) ast->tech_pvt
-#define MISDN_ASTERISK_PVT(ast) 1
-#define MISDN_ASTERISK_TYPE(ast) ast->tech->type
-
-
-/* #include "ies.h" */
-
-#define MAX_BCHANS 30
-
-
/** For initialization usage **/
/* typedef int ie_nothing_t ;*/
/** end of init usage **/
+#define MAX_BCHANS 30
+
enum bc_state_e {
STATE_NOTHING=0,
STATE_NULL,
@@ -173,12 +149,20 @@ enum facility_type {
FACILITY_CALLDEFLECT
};
+
+
+
struct misdn_bchannel {
+
+ int nt;
+ int port;
/** init stuff **/
int b_stid;
/* int b_addr; */
int layer_id;
-
+
+
+
/** var stuff**/
int l3_id;
int pid;
@@ -194,11 +178,13 @@ struct misdn_bchannel {
int bframe_len;
int time_usec;
- sem_t astsem;
- sem_t misdnsem;
- ibuffer_t *astbuf;
- ibuffer_t *misdnbuf;
-
+
+ void *astbuf;
+ void *misdnbuf;
+
+
+ int te_choose_channel;
+
/* dtmf digit */
int dtmf;
int send_dtmf;
@@ -297,58 +283,8 @@ struct misdn_bchannel {
int rxgain;
struct misdn_bchannel *next;
- struct misdn_stack *stack;
};
-struct misdn_stack {
- /** is first element because &nst equals &mISDNlist **/
- net_stack_t nst;
- manager_t mgr;
-
- int d_stid;
-
- int b_num;
-
- int b_stids[MAX_BCHANS + 1];
-
- int ptp;
- int lower_id;
- int upper_id;
-
- int l2link;
-
- time_t l2establish;
-
- int l1link;
- int midev;
-
- enum mode_e {NT_MODE, TE_MODE} mode;
- int pri;
-
-
- int procids[0x100+1];
-
- msg_queue_t downqueue;
- int busy;
-
- int port;
- struct misdn_bchannel bc[MAX_BCHANS + 1];
-
- struct misdn_bchannel* bc_list;
-
- int channels[MAX_BCHANS + 1];
-
-
-
- int te_choose_channel;
-
-
- struct misdn_bchannel *holding; /* Queue which holds holded channels :) */
-
- struct misdn_stack *next;
-};
-
-struct misdn_stack* get_misdn_stack( void );
enum event_response_e (*cb_event) (enum event_e event, struct misdn_bchannel *bc, void *user_data);
void (*cb_log) (int level, int port, char *tmpl, ...);
@@ -400,35 +336,26 @@ int misdn_inband_avail(struct misdn_bchannel *bc);
int misdn_lib_send_facility(struct misdn_bchannel *bc, enum facility_type fac, void *data);
-struct isdn_msg {
- unsigned long misdn_msg;
-
- enum layer_e layer;
- enum event_e event;
-
- void (*msg_parser)(struct isdn_msg *msgs, msg_t *msg, struct misdn_bchannel *bc, int nt);
- msg_t *(*msg_builder)(struct isdn_msg *msgs, struct misdn_bchannel *bc, int nt);
- void (*msg_printer)(struct isdn_msg *msgs);
-
- char *info;
-
-} ;
-
-
-
-
+void manager_ec_enable(struct misdn_bchannel *bc);
+void manager_ec_disable(struct misdn_bchannel *bc);
+void get_show_stack_details(int port, char *buf);
+/** Ibuf interface **/
+int misdn_ibuf_usedcount(void *buf);
+int misdn_ibuf_freecount(void *buf);
+void misdn_ibuf_memcpy_r(char *to, void *from, int len);
+void misdn_ibuf_memcpy_w(void *buf, char *from, int len);
-void manager_ec_enable(struct misdn_bchannel *bc);
-void manager_ec_disable(struct misdn_bchannel *bc);
+/** Ibuf interface End **/
-/* for isdn_msg_parser.c */
-msg_t *create_l3msg(int prim, int mt, int dinfo , int size, int nt);
+void misdn_lib_bridge( struct misdn_bchannel * bc1, struct misdn_bchannel *bc2);
+void misdn_lib_split_bridge( struct misdn_bchannel * bc1, struct misdn_bchannel *bc2);
+int misdn_lib_is_ptp(int port);
#define PRI_TRANS_CAP_SPEECH 0x0
#define PRI_TRANS_CAP_DIGITAL 0x08