00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050 #define Q931PRIVATE
00051
00052 #include "5ESS.h"
00053
00054 extern L3INT Q931L4HeaderSpace;
00055 extern struct Q931MessageIE *ATT5ESSMessageIEs;
00056
00057
00058
00059
00060
00061 static L3INT ATT5ESSProc0x07NT(Q931_TrunkInfo_t *pTrunk, L3UCHAR * buf, L3INT iFrom);
00062 static L3INT ATT5ESSProc0x0fNT(Q931_TrunkInfo_t *pTrunk, L3UCHAR * buf, L3INT iFrom);
00063
00064
00065 void ATT5ESSCreateNT(struct Q931Dialect *dlct)
00066 {
00067 Q931DialectSetName(dlct, "5ESS NT");
00068
00069
00070
00071
00072 Q931DialectSetFlag(dlct, 0);
00073
00074
00075
00076
00077 Q931DialectAddCodeset(dlct, Q931_CODESET_0);
00078 Q931DialectAddCodeset(dlct, Q931_CODESET_6);
00079 Q931DialectAddCodeset(dlct, Q931_CODESET_7);
00080
00081
00082
00083
00084 Q931DialectSetMesProc(dlct, Q931mes_ALERTING, Q931ProcAlertingNT, Q931Umes_Generic, Q931Pmes_Generic);
00085 Q931DialectSetMesProc(dlct, Q931mes_CALL_PROCEEDING, Q931ProcCallProceedingNT, Q931Umes_Generic, Q931Pmes_Generic);
00086 Q931DialectSetMesProc(dlct, Q931mes_CONNECT, ATT5ESSProc0x07NT, Q931Umes_Generic, Q931Pmes_Generic);
00087 Q931DialectSetMesProc(dlct, Q931mes_CONNECT_ACKNOWLEDGE, ATT5ESSProc0x0fNT, Q931Umes_Generic, Q931Pmes_Generic);
00088 Q931DialectSetMesProc(dlct, Q931mes_PROGRESS, Q931ProcProgressNT, Q931Umes_Generic, Q931Pmes_Generic);
00089 Q931DialectSetMesProc(dlct, Q931mes_SETUP, Q931ProcSetupNT, Q931Umes_Generic, Q931Pmes_Generic);
00090 #if 0
00091 Q931DialectSetMesProc(dlct, Q931mes_SETUP_ACKNOWLEDGE, Q931ProcSetupAckNT, Q931Umes_Generic, Q931Pmes_Generic);
00092 Q931DialectSetMesProc(dlct, Q931mes_RESUME, Q931ProcResumeNT, Q931Umes_Generic, Q931Pmes_Generic);
00093 Q931DialectSetMesProc(dlct, Q931mes_RESUME_ACKNOWLEDGE, Q931ProcResumeAckNT, Q931Umes_Generic, Q931Pmes_Generic);
00094 Q931DialectSetMesProc(dlct, Q931mes_RESUME_REJECT, Q931ProcResumeRejectNT, Q931Umes_Generic, Q931Pmes_Generic);
00095 Q931DialectSetMesProc(dlct, Q931mes_SUSPEND, Q931ProcSuspendNT, Q931Umes_Generic, Q931Pmes_Generic);
00096 Q931DialectSetMesProc(dlct, Q931mes_SUSPEND_ACKNOWLEDGE, Q931ProcSuspendAckNT, Q931Umes_Generic, Q931Pmes_Generic);
00097 Q931DialectSetMesProc(dlct, Q931mes_SUSPEND_REJECT, Q931ProcSuspendRejectNT, Q931Umes_Generic, Q931Pmes_Generic);
00098 #endif
00099 Q931DialectSetMesProc(dlct, Q931mes_USER_INFORMATION, Q931ProcUserInformationNT, Q931Umes_Generic, Q931Pmes_Generic);
00100 Q931DialectSetMesProc(dlct, Q931mes_DISCONNECT, Q931ProcDisconnectNT, Q931Umes_Generic, Q931Pmes_Generic);
00101 Q931DialectSetMesProc(dlct, Q931mes_RELEASE, Q931ProcReleaseNT, Q931Umes_Generic, Q931Pmes_Generic);
00102 Q931DialectSetMesProc(dlct, Q931mes_RELEASE_COMPLETE, Q931ProcReleaseCompleteNT, Q931Umes_Generic, Q931Pmes_Generic);
00103 Q931DialectSetMesProc(dlct, Q931mes_RESTART, Q931ProcRestartNT, Q931Umes_Generic, Q931Pmes_Generic);
00104 Q931DialectSetMesProc(dlct, Q931mes_RESTART_ACKNOWLEDGE, Q931ProcRestartAckNT, Q931Umes_Generic, Q931Pmes_Generic);
00105 Q931DialectSetMesProc(dlct, Q931mes_CONGESTION_CONTROL, Q931ProcCongestionControlNT, Q931Umes_Generic, Q931Pmes_Generic);
00106 #if 0
00107 Q931DialectSetMesProc(dlct, Q931mes_INFORMATION, Q931ProcInformationNT, Q931Umes_Generic, Q931Pmes_Generic);
00108 Q931DialectSetMesProc(dlct, Q931mes_NOTIFY, Q931ProcNotifyNT, Q931Umes_Generic, Q931Pmes_Generic);
00109 #endif
00110 Q931DialectSetMesProc(dlct, Q931mes_STATUS, Q931ProcStatusNT, Q931Umes_Generic, Q931Pmes_Generic);
00111 Q931DialectSetMesProc(dlct, Q931mes_STATUS_ENQUIRY, Q931ProcStatusEnquiryNT, Q931Umes_Generic, Q931Pmes_Generic);
00112 Q931DialectSetMesProc(dlct, Q931mes_SEGMENT, Q931ProcSegmentNT, Q931Umes_Generic, Q931Pmes_Generic);
00113
00114 Q931DialectSetMesProc(dlct, Q932mes_FACILITY, Q932ProcFacilityNT, Q932Umes_Facility, Q932Pmes_Facility);
00115 Q931DialectSetMesProc(dlct, Q932mes_HOLD, Q932ProcHoldNT, Q932Umes_Hold, Q932Pmes_Hold);
00116 Q931DialectSetMesProc(dlct, Q932mes_HOLD_ACKNOWLEDGE, Q932ProcHoldAckNT, Q932Umes_HoldAck, Q932Pmes_HoldAck);
00117 Q931DialectSetMesProc(dlct, Q932mes_HOLD_REJECT, Q932ProcHoldRejectNT, Q932Umes_HoldReject, Q932Pmes_HoldReject);
00118 Q931DialectSetMesProc(dlct, Q932mes_REGISTER, Q932ProcRegisterNT, Q932Umes_Register, Q932Pmes_Register);
00119 Q931DialectSetMesProc(dlct, Q932mes_RETRIEVE, Q932ProcRetrieveNT, Q932Umes_Retrieve, Q932Pmes_Retrieve);
00120 Q931DialectSetMesProc(dlct, Q932mes_RETRIEVE_ACKNOWLEDGE, Q932ProcRetrieveAckNT, Q932Umes_RetrieveAck, Q932Pmes_RetrieveAck);
00121 Q931DialectSetMesProc(dlct, Q932mes_RETRIEVE_REJECT, Q932ProcRetrieveRejectNT, Q932Umes_RetrieveReject, Q932Pmes_RetrieveReject);
00122
00123
00124
00125
00126 Q931DialectSetUnknownMesProc(dlct, Q931ProcUnknownMessage);
00127 Q931DialectSetInvalidMesProc(dlct, Q931ProcUnexpectedMessage);
00128
00129
00130
00131
00132
00133 Q931DialectSetIEProc(dlct, Q931ie_SEGMENTED_MESSAGE, Q931Pie_Segment, Q931Uie_Segment);
00134 Q931DialectSetIEProc(dlct, Q931ie_BEARER_CAPABILITY, Q931Pie_BearerCap, Q931Uie_BearerCap);
00135 Q931DialectSetIEProc(dlct, Q931ie_CAUSE, Q931Pie_Cause, Q931Uie_Cause);
00136 Q931DialectSetIEProc(dlct, Q931ie_CALL_IDENTITY, Q931Pie_CallID, Q931Uie_CallID);
00137 Q931DialectSetIEProc(dlct, Q931ie_CALL_STATE, Q931Pie_CallState, Q931Uie_CallState);
00138 Q931DialectSetIEProc(dlct, Q931ie_CHANGE_STATUS, Q931Pie_ChangeStatus, Q931Uie_ChangeStatus);
00139 Q931DialectSetIEProc(dlct, Q931ie_CHANNEL_IDENTIFICATION, Q931Pie_ChanID, Q931Uie_ChanID);
00140 Q931DialectSetIEProc(dlct, Q931ie_PROGRESS_INDICATOR, Q931Pie_ProgInd, Q931Uie_ProgInd);
00141 Q931DialectSetIEProc(dlct, Q931ie_NETWORK_SPECIFIC_FACILITIES, Q931Pie_NetFac, Q931Uie_NetFac);
00142 Q931DialectSetIEProc(dlct, Q931ie_NOTIFICATION_INDICATOR, Q931Pie_NotifInd, Q931Uie_NotifInd);
00143 Q931DialectSetIEProc(dlct, Q931ie_DISPLAY, Q931Pie_Display, Q931Uie_Display);
00144 Q931DialectSetIEProc(dlct, Q931ie_DATETIME, Q931Pie_DateTime, Q931Uie_DateTime);
00145 Q931DialectSetIEProc(dlct, Q931ie_KEYPAD_FACILITY, Q931Pie_KeypadFac, Q931Uie_KeypadFac);
00146 Q931DialectSetIEProc(dlct, Q931ie_SIGNAL, Q931Pie_Signal, Q931Uie_Signal);
00147 Q931DialectSetIEProc(dlct, Q931ie_TRANSIT_DELAY_SELECTION_AND_IND, Q931Pie_TransNetSel, Q931Uie_TransNetSel);
00148 Q931DialectSetIEProc(dlct, Q931ie_CALLING_PARTY_NUMBER, Q931Pie_CallingNum, Q931Uie_CallingNum);
00149 Q931DialectSetIEProc(dlct, Q931ie_CALLING_PARTY_SUBADDRESS, Q931Pie_CallingSub, Q931Uie_CallingSub);
00150 Q931DialectSetIEProc(dlct, Q931ie_CALLED_PARTY_NUMBER, Q931Pie_CalledNum, Q931Uie_CalledNum);
00151 Q931DialectSetIEProc(dlct, Q931ie_CALLED_PARTY_SUBADDRESS, Q931Pie_CalledSub, Q931Uie_CalledSub);
00152 Q931DialectSetIEProc(dlct, Q931ie_TRANSIT_NETWORK_SELECTION, Q931Pie_TransNetSel, Q931Uie_TransNetSel);
00153 Q931DialectSetIEProc(dlct, Q931ie_RESTART_INDICATOR, Q931Pie_RestartInd, Q931Uie_RestartInd);
00154 Q931DialectSetIEProc(dlct, Q931ie_LOW_LAYER_COMPATIBILITY, Q931Pie_LLComp, Q931Uie_LLComp);
00155 Q931DialectSetIEProc(dlct, Q931ie_HIGH_LAYER_COMPATIBILITY, Q931Pie_HLComp, Q931Uie_HLComp);
00156 Q931DialectSetIEProc(dlct, Q931ie_USER_USER, Q931Pie_UserUser, Q931Uie_UserUser);
00157 Q931DialectSetIEProc(dlct, Q931ie_GENERIC_DIGITS, Q931Pie_GenericDigits, Q931Uie_GenericDigits);
00158
00159 Q931DialectSetIEProc(dlct, Q931ie_CONNECTED_NUMBER, Q931Pie_Generic, Q931Uie_Generic);
00160 Q931DialectSetIEProc(dlct, Q931ie_FACILITY, Q931Pie_Generic, Q931Uie_Generic);
00161
00162
00163
00164
00165
00166
00167
00168 Q931DialectAddStateEntry(dlct, Q931_NANY, Q931mes_STATUS, MSGF_FROM_BOTH);
00169 Q931DialectAddStateEntry(dlct, Q931_NANY, Q931mes_STATUS_ENQUIRY, MSGF_FROM_L2);
00170
00171
00172 Q931DialectAddStateEntry(dlct, Q931_N0, Q931mes_SETUP, MSGF_FROM_BOTH);
00173 Q931DialectAddStateEntry(dlct, Q931_N0, Q931mes_RELEASE, MSGF_FROM_BOTH);
00174 Q931DialectAddStateEntry(dlct, Q931_N0, Q931mes_RELEASE_COMPLETE, MSGF_FROM_BOTH);
00175 Q931DialectAddStateEntry(dlct, Q931_N0, Q931mes_RESUME, MSGF_FROM_L2);
00176
00177
00178 Q931DialectAddStateEntry(dlct, Q931_N1, Q931mes_DISCONNECT, MSGF_FROM_BOTH);
00179 Q931DialectAddStateEntry(dlct, Q931_N1, Q931mes_SETUP_ACKNOWLEDGE, MSGF_FROM_L4);
00180 Q931DialectAddStateEntry(dlct, Q931_N1, Q931mes_RELEASE_COMPLETE, MSGF_FROM_L4);
00181 Q931DialectAddStateEntry(dlct, Q931_N1, Q931mes_CALL_PROCEEDING, MSGF_FROM_L4);
00182 Q931DialectAddStateEntry(dlct, Q931_N1, Q931mes_ALERTING, MSGF_FROM_L4);
00183 Q931DialectAddStateEntry(dlct, Q931_N1, Q931mes_CONNECT, MSGF_FROM_L4);
00184
00185
00186 Q931DialectAddStateEntry(dlct, Q931_N2, Q931mes_DISCONNECT, MSGF_FROM_BOTH);
00187 Q931DialectAddStateEntry(dlct, Q931_N2, Q931mes_INFORMATION, MSGF_FROM_L2);
00188 Q931DialectAddStateEntry(dlct, Q931_N2, Q931mes_CALL_PROCEEDING, MSGF_FROM_L4);
00189 Q931DialectAddStateEntry(dlct, Q931_N2, Q931mes_ALERTING, MSGF_FROM_L4);
00190 Q931DialectAddStateEntry(dlct, Q931_N2, Q931mes_PROGRESS, MSGF_FROM_L4);
00191 Q931DialectAddStateEntry(dlct, Q931_N2, Q931mes_CONNECT, MSGF_FROM_L4);
00192
00193
00194
00195 Q931DialectAddStateEntry(dlct, Q931_N3, Q931mes_DISCONNECT, MSGF_FROM_BOTH);
00196 Q931DialectAddStateEntry(dlct, Q931_N3, Q931mes_PROGRESS, MSGF_FROM_L4);
00197 Q931DialectAddStateEntry(dlct, Q931_N3, Q931mes_ALERTING, MSGF_FROM_L4);
00198 Q931DialectAddStateEntry(dlct, Q931_N3, Q931mes_CONNECT, MSGF_FROM_L4);
00199
00200
00201
00202 Q931DialectAddStateEntry(dlct, Q931_N4, Q931mes_DISCONNECT, MSGF_FROM_BOTH);
00203 Q931DialectAddStateEntry(dlct, Q931_N4, Q931mes_CONNECT, MSGF_FROM_L4);
00204 Q931DialectAddStateEntry(dlct, Q931_N4, Q931mes_PROGRESS, MSGF_FROM_L4);
00205
00206
00207 Q931DialectAddStateEntry(dlct, Q931_N6, Q931mes_CONNECT, MSGF_FROM_L2);
00208 Q931DialectAddStateEntry(dlct, Q931_N6, Q931mes_RELEASE_COMPLETE, MSGF_FROM_L2);
00209 Q931DialectAddStateEntry(dlct, Q931_N6, Q931mes_SETUP_ACKNOWLEDGE, MSGF_FROM_L2);
00210 Q931DialectAddStateEntry(dlct, Q931_N6, Q931mes_INFORMATION, MSGF_FROM_L4);
00211 Q931DialectAddStateEntry(dlct, Q931_N6, Q931mes_ALERTING, MSGF_FROM_L2);
00212 Q931DialectAddStateEntry(dlct, Q931_N6, Q931mes_CALL_PROCEEDING, MSGF_FROM_L2);
00213 Q931DialectAddStateEntry(dlct, Q931_N6, Q931mes_RELEASE, MSGF_FROM_L2);
00214 Q931DialectAddStateEntry(dlct, Q931_N6, Q931mes_DISCONNECT, MSGF_FROM_L2);
00215
00216
00217 Q931DialectAddStateEntry(dlct, Q931_N7, Q931mes_CONNECT, MSGF_FROM_L2);
00218 Q931DialectAddStateEntry(dlct, Q931_N7, Q931mes_DISCONNECT, MSGF_FROM_BOTH);
00219
00220
00221 Q931DialectAddStateEntry(dlct, Q931_N8, Q931mes_CONNECT_ACKNOWLEDGE, MSGF_FROM_L4);
00222 Q931DialectAddStateEntry(dlct, Q931_N8, Q931mes_DISCONNECT, MSGF_FROM_BOTH);
00223
00224
00225 Q931DialectAddStateEntry(dlct, Q931_N9, Q931mes_CONNECT, MSGF_FROM_L2);
00226 Q931DialectAddStateEntry(dlct, Q931_N9, Q931mes_ALERTING, MSGF_FROM_L2);
00227 Q931DialectAddStateEntry(dlct, Q931_N9, Q931mes_PROGRESS, MSGF_FROM_L2);
00228 Q931DialectAddStateEntry(dlct, Q931_N9, Q931mes_DISCONNECT, MSGF_FROM_BOTH);
00229
00230
00231 Q931DialectAddStateEntry(dlct, Q931_N10, Q931mes_DISCONNECT, MSGF_FROM_BOTH);
00232 Q931DialectAddStateEntry(dlct, Q931_N10, Q931mes_CONNECT_ACKNOWLEDGE, MSGF_FROM_L2);
00233 Q931DialectAddStateEntry(dlct, Q931_N10, Q931mes_SUSPEND, MSGF_FROM_L2);
00234 Q931DialectAddStateEntry(dlct, Q931_N10, Q931mes_NOTIFY, MSGF_FROM_BOTH);
00235
00236
00237 Q931DialectAddStateEntry(dlct, Q931_N11, Q931mes_RELEASE, MSGF_FROM_L4);
00238 Q931DialectAddStateEntry(dlct, Q931_N11, Q931mes_DISCONNECT, MSGF_FROM_L2);
00239
00240
00241
00242 Q931DialectAddStateEntry(dlct, Q931_N12, Q931mes_RELEASE, MSGF_FROM_L2);
00243 Q931DialectAddStateEntry(dlct, Q931_N12, Q931mes_DISCONNECT, MSGF_FROM_L2);
00244
00245
00246 Q931DialectAddStateEntry(dlct, Q931_N15, Q931mes_SUSPEND_ACKNOWLEDGE, MSGF_FROM_L4);
00247 Q931DialectAddStateEntry(dlct, Q931_N15, Q931mes_SUSPEND_REJECT, MSGF_FROM_L4);
00248 Q931DialectAddStateEntry(dlct, Q931_N15, Q931mes_DISCONNECT, MSGF_FROM_BOTH);
00249
00250
00251
00252 Q931DialectAddStateEntry(dlct, Q931_N17, Q931mes_RESUME_ACKNOWLEDGE, MSGF_FROM_L4);
00253 Q931DialectAddStateEntry(dlct, Q931_N17, Q931mes_RESUME_REJECT, MSGF_FROM_L4);
00254 Q931DialectAddStateEntry(dlct, Q931_N17, Q931mes_DISCONNECT, MSGF_FROM_BOTH);
00255
00256
00257 Q931DialectAddStateEntry(dlct, Q931_N19, Q931mes_RELEASE_COMPLETE, MSGF_FROM_L2);
00258 Q931DialectAddStateEntry(dlct, Q931_N19, Q931mes_RELEASE, MSGF_FROM_L2);
00259
00260
00261
00262
00263 Q931DialectAddStateEntry(dlct, Q931_N25, Q931mes_CALL_PROCEEDING, MSGF_FROM_L2);
00264 Q931DialectAddStateEntry(dlct, Q931_N25, Q931mes_ALERTING, MSGF_FROM_L2);
00265 Q931DialectAddStateEntry(dlct, Q931_N25, Q931mes_PROGRESS, MSGF_FROM_L2);
00266 Q931DialectAddStateEntry(dlct, Q931_N25, Q931mes_CONNECT, MSGF_FROM_L2);
00267 Q931DialectAddStateEntry(dlct, Q931_N25, Q931mes_INFORMATION, MSGF_FROM_L4);
00268 Q931DialectAddStateEntry(dlct, Q931_N25, Q931mes_DISCONNECT, MSGF_FROM_BOTH);
00269
00270
00271
00272
00273
00274 Q931DialectSetTimerProcAll(dlct, Q931TimeoutDummy);
00275
00276
00277 Q931DialectSetTimerProc(dlct, Q931_TIMER_T301, Q931ProcTimeoutT301TE);
00278 Q931DialectSetTimerProc(dlct, Q931_TIMER_T302, Q931ProcTimeoutT302TE);
00279 Q931DialectSetTimerProc(dlct, Q931_TIMER_T303, Q931ProcTimeoutT303TE);
00280 Q931DialectSetTimerProc(dlct, Q931_TIMER_T304, Q931ProcTimeoutT304TE);
00281 Q931DialectSetTimerProc(dlct, Q931_TIMER_T305, Q931ProcTimeoutT305TE);
00282 Q931DialectSetTimerProc(dlct, Q931_TIMER_T306, Q931ProcTimeoutT305TE);
00283 Q931DialectSetTimerProc(dlct, Q931_TIMER_T307, Q931ProcTimeoutT305TE);
00284 Q931DialectSetTimerProc(dlct, Q931_TIMER_T308, Q931ProcTimeoutT308TE);
00285 Q931DialectSetTimerProc(dlct, Q931_TIMER_T309, Q931ProcTimeoutT309TE);
00286 Q931DialectSetTimerProc(dlct, Q931_TIMER_T310, Q931ProcTimeoutT310TE);
00287 Q931DialectSetTimerProc(dlct, Q931_TIMER_T312, Q931ProcTimeoutT311TE);
00288 Q931DialectSetTimerProc(dlct, Q931_TIMER_T314, Q931ProcTimeoutT314TE);
00289 Q931DialectSetTimerProc(dlct, Q931_TIMER_T316, Q931ProcTimeoutT316TE);
00290 Q931DialectSetTimerProc(dlct, Q931_TIMER_T317, Q931ProcTimeoutT317TE);
00291 Q931DialectSetTimerProc(dlct, Q931_TIMER_T320, Q931ProcTimeoutT319TE);
00292 Q931DialectSetTimerProc(dlct, Q931_TIMER_T321, Q931ProcTimeoutT321TE);
00293 Q931DialectSetTimerProc(dlct, Q931_TIMER_T322, Q931ProcTimeoutT322TE);
00294
00295 Q931DialectSetTimeout(dlct, Q931_TIMER_T301, 180000);
00296 Q931DialectSetTimeout(dlct, Q931_TIMER_T302, 15000);
00297 Q931DialectSetTimeout(dlct, Q931_TIMER_T303, 4000);
00298 Q931DialectSetTimeout(dlct, Q931_TIMER_T304, 20000);
00299 Q931DialectSetTimeout(dlct, Q931_TIMER_T305, 30000);
00300 Q931DialectSetTimeout(dlct, Q931_TIMER_T306, 30000);
00301 Q931DialectSetTimeout(dlct, Q931_TIMER_T307, 180000);
00302 Q931DialectSetTimeout(dlct, Q931_TIMER_T308, 4000);
00303 Q931DialectSetTimeout(dlct, Q931_TIMER_T309, 60000);
00304 Q931DialectSetTimeout(dlct, Q931_TIMER_T310, 10000);
00305 Q931DialectSetTimeout(dlct, Q931_TIMER_T312, 12000);
00306 Q931DialectSetTimeout(dlct, Q931_TIMER_T314, 4000);
00307 Q931DialectSetTimeout(dlct, Q931_TIMER_T316, 120000);
00308 Q931DialectSetTimeout(dlct, Q931_TIMER_T317, 90000);
00309 Q931DialectSetTimeout(dlct, Q931_TIMER_T320, 30000);
00310 Q931DialectSetTimeout(dlct, Q931_TIMER_T321, 30000);
00311 Q931DialectSetTimeout(dlct, Q931_TIMER_T322, 4000);
00312
00313
00314
00315
00316 Q931DialectSetMesIEMap(dlct, ATT5ESSMessageIEs);
00317 }
00318
00319
00320
00321
00322
00323
00324 static L3INT ATT5ESSProc0x0fNT(Q931_TrunkInfo_t *pTrunk, L3UCHAR * buf, L3INT iFrom)
00325 {
00326 Q931mes_Header *pMes = (Q931mes_Header *)&buf[Q931L4HeaderSpace];
00327 L3INT ret = Q931E_NO_ERROR;
00328
00329 switch (pMes->ProtDisc) {
00330 case 8:
00331 return Q931ProcConnectAckNT(pTrunk, buf, iFrom);
00332
00333 case 3:
00334 if (iFrom == 4) {
00335
00336 ret = Q931Tx32Data(pTrunk, 0, buf, pMes->Size);
00337 }
00338 else if (iFrom == 2) {
00339
00340 ret = Q931Tx34(pTrunk, buf, pMes->Size);
00341
00342 if (Q931TrunkIsSetFlag(pTrunk, Q931_TFLAG_AUTO_SERVICE_ACK)) {
00343 Q931Log(pTrunk, Q931_LOG_DEBUG, "autoServiceAck is on, responding to Service Req from network...\n");
00344 Q931AckService(pTrunk, buf);
00345 }
00346 }
00347 return ret;
00348
00349 default:
00350 break;
00351 }
00352 return Q931E_NO_ERROR;
00353 }
00354
00355
00356
00357
00358
00359
00360 static L3INT ATT5ESSProc0x07NT(Q931_TrunkInfo_t *pTrunk, L3UCHAR * buf, L3INT iFrom)
00361 {
00362 Q931mes_Header *pMes = (Q931mes_Header *)&buf[Q931L4HeaderSpace];
00363 L3INT ret = Q931E_NO_ERROR;
00364
00365 switch (pMes->ProtDisc) {
00366 case 8:
00367 return Q931ProcConnectNT(pTrunk, buf, iFrom);
00368
00369 case 3:
00370 if (iFrom == 4) {
00371
00372 ret = Q931Tx32Data(pTrunk, 0, buf, pMes->Size);
00373 }
00374 else if (iFrom == 2) {
00375
00376 ret = Q931Tx34(pTrunk, buf, pMes->Size);
00377 }
00378 return ret;
00379
00380 default:
00381 break;
00382 }
00383 return Q931E_NO_ERROR;
00384 }