Fri Jul 24 00:40:58 2009

Asterisk developer's documentation


isdn_lib_intern.h

Go to the documentation of this file.
00001 #ifndef ISDN_LIB_INTERN
00002 #define ISDN_LIB_INTERN
00003 
00004 
00005 #include <mISDNuser/mISDNlib.h>
00006 #include <mISDNuser/isdn_net.h>
00007 #include <mISDNuser/l3dss1.h>
00008 #include <mISDNuser/net_l3.h>
00009 
00010 #include <pthread.h>
00011 
00012 #include "isdn_lib.h"
00013 
00014 #ifndef MISDNUSER_VERSION_CODE
00015 #error "You need a newer version of mISDNuser ..."
00016 #elif MISDNUSER_VERSION_CODE < MISDNUSER_VERSION(1, 0, 3)
00017 #error "You need a newer version of mISDNuser ..."
00018 #endif
00019 
00020 
00021 #define QI_ELEMENT(a) a.off
00022 
00023 
00024 #ifndef mISDNUSER_HEAD_SIZE
00025 
00026 #define mISDNUSER_HEAD_SIZE (sizeof(mISDNuser_head_t))
00027 /*#define mISDNUSER_HEAD_SIZE (sizeof(mISDN_head_t))*/
00028 #endif
00029 
00030 
00031 ibuffer_t *astbuf;
00032 ibuffer_t *misdnbuf;
00033 
00034 struct send_lock {
00035    pthread_mutex_t lock;
00036 };
00037 
00038 
00039 struct isdn_msg {
00040    unsigned long misdn_msg;
00041   
00042    enum layer_e layer;
00043    enum event_e event;
00044   
00045    void (*msg_parser)(struct isdn_msg *msgs, msg_t *msg, struct misdn_bchannel *bc, int nt);
00046    msg_t *(*msg_builder)(struct isdn_msg *msgs, struct misdn_bchannel *bc, int nt);
00047    char *info;
00048   
00049 } ; 
00050 
00051 /* for isdn_msg_parser.c */
00052 msg_t *create_l3msg(int prim, int mt, int dinfo , int size, int nt);
00053 
00054 
00055 
00056 struct misdn_stack {
00057    /** is first element because &nst equals &mISDNlist **/
00058    net_stack_t nst;
00059    manager_t mgr;
00060   
00061    int d_stid;
00062   
00063    int b_num;
00064   
00065    int b_stids[MAX_BCHANS + 1];
00066   
00067    int ptp;
00068 
00069    int l2upcnt;
00070 
00071    int l2_id;
00072    int lower_id;
00073    int upper_id;
00074   
00075 
00076    int blocked;
00077 
00078    int l2link;
00079   
00080    time_t l2establish;
00081   
00082    int l1link;
00083 
00084    int restart_sent;
00085 
00086    int midev;
00087   
00088    int nt;
00089    
00090    int pri;
00091   
00092 
00093    int procids[0x100+1];
00094 
00095    msg_queue_t downqueue;
00096    msg_queue_t upqueue;
00097    int busy;
00098   
00099    int port;
00100    struct misdn_bchannel bc[MAX_BCHANS + 1];
00101   
00102    struct misdn_bchannel* bc_list; 
00103   
00104    int channels[MAX_BCHANS + 1];
00105 
00106   
00107    struct misdn_bchannel *holding; /* Queue which holds holded channels :) */
00108   
00109    struct misdn_stack *next;
00110 }; 
00111 
00112 
00113 struct misdn_stack* get_stack_by_bc(struct misdn_bchannel *bc);
00114 
00115 int isdn_msg_get_index(struct isdn_msg msgs[], msg_t *frm, int nt);
00116 enum event_e isdn_msg_get_event(struct isdn_msg msgs[], msg_t *frm, int nt);
00117 int isdn_msg_parse_event(struct isdn_msg msgs[], msg_t *frm, struct misdn_bchannel *bc, int nt);
00118 char * isdn_get_info(struct isdn_msg msgs[], enum event_e event, int nt);
00119 msg_t * isdn_msg_build_event(struct isdn_msg msgs[], struct misdn_bchannel *bc, enum event_e event, int nt);
00120 int isdn_msg_get_index_by_event(struct isdn_msg msgs[], enum event_e event, int nt);
00121 char * isdn_msg_get_info(struct isdn_msg msgs[], msg_t *msg, int nt);
00122 
00123 
00124 #endif

Generated on Fri Jul 24 00:40:58 2009 for Asterisk - the Open Source PBX by  doxygen 1.4.7