libisdn
|
00001 #ifndef _Q931_DIALECT_H_ 00002 #define _Q931_DIALECT_H_ 00003 00007 enum { 00008 Q931_DIALECT_NONE = 0, 00009 Q931_DIALECT_LOCKING_SHIFT_ONLY = (1 << 0), 00010 }; 00011 00012 /* public version of struct */ 00013 struct Q931Dialect; 00014 00015 /* 00016 * 00017 */ 00018 void Q931DialectRegistryInit(void); 00019 00020 void Q931DialectRegister(L3UCHAR id, L3INT mode, void (* create_func)(struct Q931Dialect *dialect)); 00021 struct Q931Dialect *Q931DialectGet(L3UCHAR id, L3INT mode); 00022 00023 /* Codesets */ 00024 void Q931DialectAddCodeset(struct Q931Dialect *dialect, L3UCHAR codeset); 00025 L3BOOL Q931DialectIsValidCodeset(struct Q931Dialect *dialect, L3UCHAR codeset); 00026 00027 /* Flags */ 00028 void Q931DialectSetFlag(struct Q931Dialect *dialect, L3INT flag); 00029 L3BOOL Q931DialectIsSetFlag(struct Q931Dialect *dialect, L3INT flag); 00030 00031 /* Message proc table */ 00032 void Q931DialectSetMesProc(struct Q931Dialect *dialect, L3UCHAR mes, q931proc_func_t *Q931ProcFunc, q931umes_func_t *Q931UmesFunc, q931pmes_func_t *Q931PmesFunc); 00033 00034 /* IE proc table */ 00035 void Q931DialectSetIEProc(struct Q931Dialect *dialect, L3UCHAR iec, q931pie_func_t *PieProc, q931uie_func_t *UieProc, q931die_func_t *DieProc); 00036 00037 /* Timer proc table */ 00038 void Q931DialectSetTimerProcAll(struct Q931Dialect *dialect, q931timeout_func_t *Q931TimeoutProc); 00039 void Q931DialectSetTimerProc(struct Q931Dialect *dialect, L3UCHAR timer, q931timeout_func_t *Q931TimeoutProc); 00040 void Q931DialectSetTimeout(struct Q931Dialect *dialect, L3UCHAR timer, q931timer_t timeout); 00041 00042 q931proc_func_t *Q931DialectGetMesProc(const struct Q931Dialect *dialect, L3UCHAR type); 00043 q931proc_func_t *Q931DialectGetInvalidMesProc(const struct Q931Dialect *dialect); 00044 q931proc_func_t *Q931DialectGetUnknownMesProc(const struct Q931Dialect *dialect); 00045 void Q931DialectSetInvalidMesProc(struct Q931Dialect *dialect, q931proc_func_t proc); 00046 void Q931DialectSetUnknownMesProc(struct Q931Dialect *dialect, q931proc_func_t proc); 00047 q931umes_func_t *Q931DialectGetUmesProc(const struct Q931Dialect *dialect, L3UCHAR type); 00048 q931pmes_func_t *Q931DialectGetPmesProc(const struct Q931Dialect *dialect, L3UCHAR type); 00049 q931uie_func_t *Q931DialectGetUieProc(const struct Q931Dialect *dialect, L3UCHAR type); 00050 q931pie_func_t *Q931DialectGetPieProc(const struct Q931Dialect *dialect, L3UCHAR type); 00051 q931die_func_t *Q931DialectGetDieProc(const struct Q931Dialect *dialect, L3UCHAR type); 00052 q931timeout_func_t *Q931DialectGetTimerProc(const struct Q931Dialect *dialect, L3UCHAR timer); 00053 q931timer_t Q931DialectGetTimeout(const struct Q931Dialect *dialect, L3UCHAR timer); 00054 00055 void Q931DialectSetMesIEMap(struct Q931Dialect *dialect, struct Q931MessageIE *map); 00056 struct Q931MessageIE *Q931DialectGetMesIEMap(struct Q931Dialect *dialect); 00057 00058 void Q931DialectAddStateEntry(struct Q931Dialect *dialect, L3INT state, L3INT mes, L3UCHAR flags); 00059 L3BOOL Q931DialectIsEventLegal(struct Q931Dialect *dialect, L3INT state, L3INT mes, L3UCHAR dirflags); 00060 00061 L3INT Q931DialectGetID(const struct Q931Dialect *dialect); 00062 Q931Dialect_t Q931DialectGetType(const struct Q931Dialect *dialect); 00063 Q931NetUser_t Q931DialectGetMode(const struct Q931Dialect *dialect); 00064 00065 const char * Q931DialectGetName(const struct Q931Dialect *dialect); 00066 void Q931DialectSetName(struct Q931Dialect *dialect, const char *name); 00067 00068 #endif