libisdn
Q931dialect.h
Go to the documentation of this file.
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