libisdn
|
00001 /* 00002 * 00003 * 00004 * 00005 */ 00006 #ifndef _Q931_PRIVATE_H_ 00007 #define _Q931_PRIVATE_H_ 00008 00009 /* 00010 * Private typedefs 00011 */ 00012 struct Q931MesgErrors; 00013 00014 typedef struct { 00015 L3INT State; 00016 L3INT Message; 00017 L3UCHAR Flags; 00018 } Q931State; 00019 00020 typedef enum { 00021 Q931_MSG_FROM_L2 = 2, 00022 Q931_MSG_FROM_L4 = 4 00023 } q931_msg_from_t; 00024 00025 typedef enum { 00026 Q931_MSG_INCOMING = 0, 00027 Q931_MSG_OUTGOING 00028 } q931_msg_direction_t; 00029 00030 struct strstream; 00031 00032 typedef L3INT (q931proc_func_t) (Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00033 00034 typedef L3INT (q931umes_func_t) (Q931_TrunkInfo_t *trunk, L3UCHAR *IBuf, Q931mes_Generic *OBuf, L3INT IOff, L3INT Size, struct Q931MesgErrors *Errs); 00035 typedef L3INT (q931pmes_func_t) (Q931_TrunkInfo_t *trunk, Q931mes_Generic *IBuf, L3INT ISize, L3UCHAR *OBuf, L3INT *OSize); 00036 00037 typedef L3INT (q931uie_func_t) (Q931_TrunkInfo_t *trunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff); 00038 typedef L3INT (q931pie_func_t) (Q931_TrunkInfo_t *trunk, L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet); 00039 typedef L3INT (q931die_func_t) (Q931_TrunkInfo_t *trunk, Q931ie_Generic *ie, struct strstream *ostream); 00040 00041 typedef L3INT (q931timeout_func_t) (Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00042 typedef L3ULONG q931timer_t; 00043 00044 00048 enum { 00049 Q931_IEF_NONE = 0, 00050 Q931_IEF_MANDATORY = (1 << 0), 00051 /* Direction of IE */ 00052 Q931_IEF_TO_NET = (1 << 14), 00053 Q931_IEF_TO_USER = (1 << 15), 00054 }; 00055 00056 enum { 00057 /* 00058 * Codesets 00059 */ 00060 Q931_IE_CODESET_0 = (1 << 0), 00061 Q931_IE_CODESET_1 = (1 << 1), 00062 Q931_IE_CODESET_2 = (1 << 2), 00063 Q931_IE_CODESET_3 = (1 << 3), 00064 Q931_IE_CODESET_4 = (1 << 4), 00065 Q931_IE_CODESET_5 = (1 << 5), 00066 Q931_IE_CODESET_6 = (1 << 6), 00067 Q931_IE_CODESET_7 = (1 << 7), 00068 }; 00069 00070 #define Q931_IEF_TO_BOTH (Q931_IEF_TO_NET | Q931_IEF_TO_USER) 00071 #define Q931_IE_CODESET_ALL (Q931_IE_CODESET_0 | Q931_IE_CODESET_1 | Q931_IE_CODESET_2 | Q931_IE_CODESET_3 | Q931_IE_CODESET_4 | Q931_IE_CODESET_5 | Q931_IE_CODESET_6 | Q931_IE_CODESET_7) 00072 00073 /* 00074 * TODO: better names... 00075 */ 00076 struct Q931MessageIEEntry { 00077 const L3UCHAR id; 00078 const L3UCHAR minsize; 00079 const L3UCHAR maxsize; 00080 const L3UCHAR codeset; 00081 const L3INT flags; 00082 }; 00083 00084 struct Q931MessageIE { 00085 const L3UCHAR id; 00086 const L3UCHAR protdisc; 00087 const L3CHAR *name; 00088 const struct Q931MessageIEEntry ies[Q931MAXIE]; 00089 }; 00090 00091 00097 enum { 00098 MSGF_FROM_L2 = 2, 00099 MSGF_FROM_L4 = 4, 00100 MSGF_FROM_BOTH = 6, 00101 }; 00102 00107 enum { 00108 Q931_TFLAG_STATUS_ENQUIRY = (1 << 0), 00110 Q931_TFLAG_AUTO_SETUP_ACK = (1 << 16), 00111 Q931_TFLAG_AUTO_SERVICE_ACK = (1 << 17), 00112 Q931_TFLAG_AUTO_CONNECT_ACK = (1 << 18), 00113 Q931_TFLAG_AUTO_RESTART_ACK = (1 << 19), 00115 /* 00116 * Message check relaxation flags (use with care...) 00117 */ 00118 Q931_TFLAG_IGNORE_UNKNOWN_MSG = (1 << 28), 00120 /* 00121 * IE check relaxation flags (use with care...) 00122 */ 00123 Q931_TFLAG_IGNORE_UNKNOWN_IE = (1 << 29), 00124 Q931_TFLAG_IGNORE_ILLEGAL_IE = (1 << 30), 00125 }; 00126 00127 void Q931TrunkSetFlag(Q931_TrunkInfo_t *trunk, const L3INT flag); 00128 void Q931TrunkClearFlag(Q931_TrunkInfo_t *trunk, L3INT flag); 00129 void Q931TrunkClearAllFlags(Q931_TrunkInfo_t *trunk); 00130 L3BOOL Q931TrunkIsSetFlag(const Q931_TrunkInfo_t *trunk, const L3INT flag); 00131 00132 /* 00133 * 00134 */ 00135 L3ULONG Q931GetTime(void); 00136 00137 L3INT Q931Log(const Q931_TrunkInfo_t *trunk, Q931LogLevel_t level, const char *fmt, ...); 00138 L3INT Q931LogRaw(const Q931_TrunkInfo_t *trunk, Q931LogLevel_t level, const char *str); 00139 00140 L3INT Q931GetUniqueCRV(Q931_TrunkInfo_t *trunk); 00141 00142 L3INT Q931Tx34(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, int size); 00143 L3INT Q931Tx32(Q931_TrunkInfo_t *trunk, L3UCHAR bcast, Q931mes_Generic *msg, int size); 00144 00145 L3INT Q931ProcUnknownMessage(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00146 L3INT Q931ProcUnexpectedMessage(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00147 00148 L3INT Q931ProcDummy(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00149 L3INT Q931UmesDummy(Q931_TrunkInfo_t *trunk, L3UCHAR *IBuf, Q931mes_Generic *OBuf, L3INT IOff, L3INT Size, struct Q931MesgErrors *Errs); 00150 L3INT Q931PmesDummy(Q931_TrunkInfo_t *trunk, Q931mes_Generic *IBuf, L3INT ISize, L3UCHAR *OBuf, L3INT *OSize); 00151 L3INT Q931UieDummy(Q931_TrunkInfo_t *trunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff); 00152 L3INT Q931PieDummy(Q931_TrunkInfo_t *trunk, L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet); 00153 L3INT Q931TxDummy(Q931_TrunkInfo_t *trunk, L3UCHAR * b, L3INT n); 00154 L3INT Q931TimeoutDummy(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00155 00156 L3INT Q931MesgHeader(Q931_TrunkInfo_t *trunk, Q931mes_Generic *mes, L3UCHAR *OBuf, L3INT Size, L3INT *IOff); 00157 00158 L3INT Q931StatusEnquiryResponse(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, L3UCHAR causeval); 00159 00160 L3INT Q931Umes_Generic(Q931_TrunkInfo_t *trunk, L3UCHAR *IBuf, Q931mes_Generic *mes, L3INT IOff, L3INT Size, struct Q931MesgErrors *Errs); 00161 L3INT Q931Pmes_Generic(Q931_TrunkInfo_t *trunk, Q931mes_Generic *IBuf, L3INT ISize, L3UCHAR *OBuf, L3INT *OSize); 00162 L3INT Q931Dmes_Generic(Q931_TrunkInfo_t *trunk, Q931mes_Generic *msg, q931_msg_direction_t direction); 00163 00164 00169 enum { 00170 /* Order must match that of Q931MesgErrorNames in Q931mes.c! */ 00171 Q931_MSGE_NONE = 0, 00172 Q931_MSGE_UNKNOWN, 00173 Q931_MSGE_OVERFLOW, 00174 Q931_MSGE_NOT_ALLOWED, 00175 Q931_MSGE_INVALID_DIRECTION, 00176 Q931_MSGE_INVALID_SIZE, 00177 Q931_MSGE_INVALID_CODESET, 00178 Q931_MSGE_MANDATORY_MISSING, 00179 Q931_MSGE_COUNT 00180 }; 00181 00182 #define Q931_MSGE_ERR_MAX 10 00183 00187 struct Q931MesgErrors { 00188 char id; 00189 int nr_errors; 00190 int nr_overflow; 00191 struct { 00192 char id; 00193 char size; 00194 char error; 00195 char offset; 00196 } ie_errors[Q931_MSGE_ERR_MAX]; 00197 }; 00198 00199 L3INT Q931MesgErrorsInit(struct Q931MesgErrors *merrs, const char id); 00200 L3INT Q931MesgErrorsAddIE(struct Q931MesgErrors *merrs, const char id, const char size, const int offset, const int error); 00201 L3INT Q931MesgErrorsCount(struct Q931MesgErrors *merrs); 00202 L3INT Q931MesgErrorsPrint(Q931_TrunkInfo_t *trunk, const struct Q931MesgErrors *merrs, const unsigned char *IBuf, const int Size); 00203 00204 /* 00205 * High-level 00206 */ 00207 L3INT Q931Proc(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00208 L3INT Q931ProcInvalid(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00209 L3INT Q931Umes(Q931_TrunkInfo_t *trunk, L3UCHAR id, L3UCHAR *IBuf, Q931mes_Generic *OBuf, L3INT IOff, L3INT Size, struct Q931MesgErrors *Errs); 00210 L3INT Q931Pmes(Q931_TrunkInfo_t *trunk, L3UCHAR id, Q931mes_Generic *IBuf, L3INT ISize, L3UCHAR *OBuf, L3INT *OSize); 00211 L3INT Q931Uie(Q931_TrunkInfo_t *trunk, L3UCHAR id, Q931mes_Generic *pMes, L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *IOff, L3INT *OOff); 00212 L3INT Q931Pie(Q931_TrunkInfo_t *trunk, L3UCHAR id, L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet); 00213 L3INT Q931Die(Q931_TrunkInfo_t *trunk, Q931ie_Generic *ie, struct strstream *ostream); 00214 L3INT Q931Timeout(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, L3UCHAR timer); 00215 00216 L3BOOL Q931UieIsNull(Q931_TrunkInfo_t *trunk, L3UCHAR id); 00217 L3BOOL Q931PieIsNull(Q931_TrunkInfo_t *trunk, L3UCHAR id); 00218 L3BOOL Q931DieIsNull(Q931_TrunkInfo_t *trunk, L3UCHAR id); 00219 00220 #include "Q931dialect.h" 00221 00222 /* 00223 * Q.931 base dialect 00224 */ 00225 void Q931CreateTE(struct Q931Dialect *d); 00226 void Q931CreateNT(struct Q931Dialect *d); 00227 00228 /* 00229 * TE-mode message handling 00230 */ 00231 L3INT Q931ProcAlertingTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00232 L3INT Q931ProcCallProceedingTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00233 L3INT Q931ProcConnectTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00234 L3INT Q931ProcConnectAckTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00235 L3INT Q931ProcProgressTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00236 L3INT Q931ProcSetupTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00237 L3INT Q931ProcSetupAckTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00238 L3INT Q931ProcResumeTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00239 L3INT Q931ProcResumeAckTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00240 L3INT Q931ProcResumeRejectTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00241 L3INT Q931ProcSuspendTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00242 L3INT Q931ProcSuspendAckTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00243 L3INT Q931ProcSuspendRejectTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00244 L3INT Q931ProcUserInformationTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00245 L3INT Q931ProcDisconnectTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00246 L3INT Q931ProcReleaseTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00247 L3INT Q931ProcReleaseCompleteTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00248 L3INT Q931ProcRestartTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00249 L3INT Q931ProcRestartAckTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00250 L3INT Q931ProcCongestionControlTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00251 L3INT Q931ProcInformationTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00252 L3INT Q931ProcNotifyTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00253 L3INT Q931ProcStatusTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00254 L3INT Q931ProcStatusEnquiryTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00255 L3INT Q931ProcSegmentTE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00256 00257 L3INT Q931ProcTimeoutT301TE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00258 L3INT Q931ProcTimeoutT302TE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00259 L3INT Q931ProcTimeoutT303TE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00260 L3INT Q931ProcTimeoutT304TE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00261 L3INT Q931ProcTimeoutT305TE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00262 L3INT Q931ProcTimeoutT308TE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00263 L3INT Q931ProcTimeoutT309TE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00264 L3INT Q931ProcTimeoutT310TE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00265 L3INT Q931ProcTimeoutT311TE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00266 L3INT Q931ProcTimeoutT313TE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00267 L3INT Q931ProcTimeoutT314TE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00268 L3INT Q931ProcTimeoutT316TE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00269 L3INT Q931ProcTimeoutT317TE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00270 L3INT Q931ProcTimeoutT318TE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00271 L3INT Q931ProcTimeoutT319TE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00272 L3INT Q931ProcTimeoutT321TE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00273 L3INT Q931ProcTimeoutT322TE(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00274 00275 /* 00276 * NT-mode message handling 00277 */ 00278 L3INT Q931ProcAlertingNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00279 L3INT Q931ProcCallProceedingNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00280 L3INT Q931ProcConnectNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00281 L3INT Q931ProcConnectAckNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00282 L3INT Q931ProcProgressNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00283 L3INT Q931ProcSetupNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00284 L3INT Q931ProcSetupAckNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00285 L3INT Q931ProcResumeNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00286 L3INT Q931ProcResumeAckNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00287 L3INT Q931ProcResumeRejectNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00288 L3INT Q931ProcSuspendNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00289 L3INT Q931ProcSuspendAckNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00290 L3INT Q931ProcSuspendRejectNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00291 L3INT Q931ProcUserInformationNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00292 L3INT Q931ProcDisconnectNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00293 L3INT Q931ProcReleaseNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00294 L3INT Q931ProcReleaseCompleteNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00295 L3INT Q931ProcRestartNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00296 L3INT Q931ProcRestartAckNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00297 L3INT Q931ProcCongestionControlNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00298 L3INT Q931ProcInformationNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00299 L3INT Q931ProcNotifyNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00300 L3INT Q931ProcStatusNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00301 L3INT Q931ProcStatusEnquiryNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00302 L3INT Q931ProcSegmentNT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call, Q931mes_Generic *msg, q931_msg_from_t from); 00303 00304 L3INT Q931ProcTimeoutT301NT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00305 L3INT Q931ProcTimeoutT302NT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00306 L3INT Q931ProcTimeoutT303NT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00307 L3INT Q931ProcTimeoutT304NT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00308 L3INT Q931ProcTimeoutT305NT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00309 L3INT Q931ProcTimeoutT306NT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00310 L3INT Q931ProcTimeoutT307NT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00311 L3INT Q931ProcTimeoutT308NT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00312 L3INT Q931ProcTimeoutT309NT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00313 L3INT Q931ProcTimeoutT310NT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00314 L3INT Q931ProcTimeoutT312NT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00315 L3INT Q931ProcTimeoutT313NT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00316 L3INT Q931ProcTimeoutT314NT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00317 L3INT Q931ProcTimeoutT316NT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00318 L3INT Q931ProcTimeoutT317NT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00319 L3INT Q931ProcTimeoutT320NT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00320 L3INT Q931ProcTimeoutT321NT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00321 L3INT Q931ProcTimeoutT322NT(Q931_TrunkInfo_t *trunk, struct Q931_Call *call); 00322 00323 /***************************************************************************** 00324 00325 Q.931 Information Element Pack/Unpack functions. Implemented in Q931ie.c 00326 00327 *****************************************************************************/ 00328 L3INT Q931ReadExt(L3UCHAR * IBuf, L3INT Off); 00329 L3USHORT Q931Uie_CRV(Q931_TrunkInfo_t *pTrunk,L3UCHAR * IBuf, L3UCHAR *OBuf, L3INT *IOff, L3INT *OOff); 00330 00331 L3INT Q931Uie_Generic(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *IOff, L3INT *OOff); 00332 L3INT Q931Pie_Generic(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet); 00333 L3INT Q931Die_Generic(Q931_TrunkInfo_t *pTrunk, Q931ie_Generic *ie, struct strstream *ostream); 00334 00335 q931pie_func_t Q931Pie_ChangeStatus; 00336 q931pie_func_t Q931Pie_BearerCap; 00337 q931pie_func_t Q931Pie_ChanID; 00338 q931pie_func_t Q931Pie_ProgInd; 00339 q931pie_func_t Q931Pie_Display; 00340 q931pie_func_t Q931Pie_Signal; 00341 q931pie_func_t Q931Pie_HLComp; 00342 q931pie_func_t Q931Pie_Segment; 00343 q931pie_func_t Q931Pie_DateTime; 00344 q931pie_func_t Q931Pie_Cause; 00345 q931pie_func_t Q931Pie_SendComplete; 00346 q931pie_func_t Q931Pie_KeypadFac; 00347 q931pie_func_t Q931Pie_NotifInd; 00348 q931pie_func_t Q931Pie_CallID; 00349 q931pie_func_t Q931Pie_RepeatInd; 00350 q931pie_func_t Q931Pie_NetFac; 00351 q931pie_func_t Q931Pie_CallingNum; 00352 q931pie_func_t Q931Pie_CallingSub; 00353 q931pie_func_t Q931Pie_CalledNum; 00354 q931pie_func_t Q931Pie_CalledSub; 00355 q931pie_func_t Q931Pie_CalledNum; 00356 q931pie_func_t Q931Pie_TransNetSel; 00357 q931pie_func_t Q931Pie_LLComp; 00358 q931pie_func_t Q931Pie_CallState; 00359 q931pie_func_t Q931Pie_RestartInd; 00360 q931pie_func_t Q931Pie_UserUser; 00361 q931pie_func_t Q931Pie_GenericDigits; 00362 q931pie_func_t Q931Pie_CongLevel; 00363 q931pie_func_t Q931Pie_RevChargeInd; 00364 00365 q931uie_func_t Q931Uie_ChangeStatus; 00366 q931uie_func_t Q931Uie_BearerCap; 00367 q931uie_func_t Q931Uie_ChanID; 00368 q931uie_func_t Q931Uie_ProgInd; 00369 q931uie_func_t Q931Uie_Display; 00370 q931uie_func_t Q931Uie_Signal; 00371 q931uie_func_t Q931Uie_HLComp; 00372 q931uie_func_t Q931Uie_Segment; 00373 q931uie_func_t Q931Uie_DateTime; 00374 q931uie_func_t Q931Uie_Cause; 00375 q931uie_func_t Q931Uie_SendComplete; 00376 q931uie_func_t Q931Uie_KeypadFac; 00377 q931uie_func_t Q931Uie_NotifInd; 00378 q931uie_func_t Q931Uie_CallID; 00379 q931uie_func_t Q931Uie_RepeatInd; 00380 q931uie_func_t Q931Uie_NetFac; 00381 q931uie_func_t Q931Uie_CallingNum; 00382 q931uie_func_t Q931Uie_CallingSub; 00383 q931uie_func_t Q931Uie_CalledNum; 00384 q931uie_func_t Q931Uie_CalledSub; 00385 q931uie_func_t Q931Uie_TransNetSel; 00386 q931uie_func_t Q931Uie_LLComp; 00387 q931uie_func_t Q931Uie_CallState; 00388 q931uie_func_t Q931Uie_RestartInd; 00389 q931uie_func_t Q931Uie_UserUser; 00390 q931uie_func_t Q931Uie_GenericDigits; 00391 q931uie_func_t Q931Uie_CongLevel; 00392 q931uie_func_t Q931Uie_RevChargeInd; 00393 00394 q931die_func_t Q931Die_ChangeStatus; 00395 q931die_func_t Q931Die_BearerCap; 00396 q931die_func_t Q931Die_ChanID; 00397 q931die_func_t Q931Die_ProgInd; 00398 q931die_func_t Q931Die_Display; 00399 q931die_func_t Q931Die_Signal; 00400 q931die_func_t Q931Die_HLComp; 00401 q931die_func_t Q931Die_Segment; 00402 q931die_func_t Q931Die_DateTime; 00403 q931die_func_t Q931Die_Cause; 00404 q931die_func_t Q931Die_SendComplete; 00405 q931die_func_t Q931Die_KeypadFac; 00406 q931die_func_t Q931Die_NotifInd; 00407 q931die_func_t Q931Die_CallID; 00408 q931die_func_t Q931Die_RepeatInd; 00409 q931die_func_t Q931Die_NetFac; 00410 q931die_func_t Q931Die_CallingNum; 00411 q931die_func_t Q931Die_CallingSub; 00412 q931die_func_t Q931Die_CalledNum; 00413 q931die_func_t Q931Die_CalledSub; 00414 q931die_func_t Q931Die_TransNetSel; 00415 q931die_func_t Q931Die_LLComp; 00416 q931die_func_t Q931Die_CallState; 00417 q931die_func_t Q931Die_RestartInd; 00418 q931die_func_t Q931Die_UserUser; 00419 q931die_func_t Q931Die_GenericDigits; 00420 q931die_func_t Q931Die_CongLevel; 00421 q931die_func_t Q931Die_RevChargeInd; 00422 00423 #endif /* _Q931_PRIVATE_H_ */