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
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
00024 void Q931DialectAddCodeset(struct Q931Dialect *dialect, L3UCHAR codeset);
00025 L3BOOL Q931DialectIsValidCodeset(struct Q931Dialect *dialect, L3UCHAR codeset);
00026
00027
00028 void Q931DialectSetFlag(struct Q931Dialect *dialect, L3INT flag);
00029 L3BOOL Q931DialectIsSetFlag(struct Q931Dialect *dialect, L3INT flag);
00030
00031
00032 void Q931DialectSetMesProc(struct Q931Dialect *dialect, L3UCHAR mes, q931proc_func_t *Q931ProcFunc, q931umes_func_t *Q931UmesFunc, q931pmes_func_t *Q931PmesFunc);
00033
00034
00035 void Q931DialectSetIEProc(struct Q931Dialect *dialect, L3UCHAR iec, q931pie_func_t *Q931PieProc, q931uie_func_t *Q931UieProc);
00036
00037
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 q931timeout_func_t *Q931DialectGetTimerProc(const struct Q931Dialect *dialect, L3UCHAR timer);
00052 q931timer_t Q931DialectGetTimeout(const struct Q931Dialect *dialect, L3UCHAR timer);
00053
00054 void Q931DialectSetMesIEMap(struct Q931Dialect *dialect, struct Q931MessageIE *map);
00055 struct Q931MessageIE *Q931DialectGetMesIEMap(struct Q931Dialect *dialect);
00056
00057 void Q931DialectAddStateEntry(struct Q931Dialect *dialect, L3INT state, L3INT mes, L3UCHAR flags);
00058 L3BOOL Q931DialectIsEventLegal(struct Q931Dialect *dialect, L3INT state, L3INT mes, L3UCHAR dirflags);
00059
00060 L3INT Q931DialectGetID(const struct Q931Dialect *dialect);
00061 Q931Dialect_t Q931DialectGetType(const struct Q931Dialect *dialect);
00062 Q931NetUser_t Q931DialectGetMode(const struct Q931Dialect *dialect);
00063
00064 const char * Q931DialectGetName(const struct Q931Dialect *dialect);
00065 void Q931DialectSetName(struct Q931Dialect *dialect, const char *name);
00066
00067 #endif