This source file includes following definitions.
- ATT5ESSCreateTE
- ATT5ESSProc0x0fTE
- ATT5ESSProc0x07TE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 #include "5ESS.h"
58 extern L3INT Q931L4HeaderSpace;
59
60
61
62
63
64
65
66
67
68
69 void ATT5ESSCreateTE(L3UCHAR i)
70 {
71 Q931SetMesProc(Q931mes_ALERTING, i, Q931ProcAlertingTE, Q931Umes_Alerting, Q931Pmes_Alerting);
72 Q931SetMesProc(Q931mes_CALL_PROCEEDING, i, Q931ProcCallProceedingTE, Q931Umes_CallProceeding, Q931Pmes_CallProceeding);
73 Q931SetMesProc(Q931mes_CONNECT, i, ATT5ESSProc0x07TE, ATT5ESSUmes_0x07, ATT5ESSPmes_0x07);
74 Q931SetMesProc(Q931mes_CONNECT_ACKNOWLEDGE, i, ATT5ESSProc0x0fTE, ATT5ESSUmes_0x0f, ATT5ESSPmes_0x0f);
75 Q931SetMesProc(Q931mes_PROGRESS, i, Q931ProcProgressTE, Q931Umes_Progress, Q931Pmes_Progress);
76 Q931SetMesProc(Q931mes_SETUP, i, Q931ProcSetupTE, ATT5ESSUmes_Setup, ATT5ESSPmes_Setup);
77 Q931SetMesProc(Q931mes_SETUP_ACKNOWLEDGE, i, Q931ProcSetupAckTE, Q931Umes_SetupAck, Q931Pmes_SetupAck);
78 Q931SetMesProc(Q931mes_RESUME, i, Q931ProcResumeTE, Q931Umes_Resume, Q931Pmes_Resume);
79 Q931SetMesProc(Q931mes_RESUME_ACKNOWLEDGE, i, Q931ProcResumeAckTE, Q931Umes_ResumeAck, Q931Pmes_ResumeAck);
80 Q931SetMesProc(Q931mes_RESUME_REJECT, i, Q931ProcResumeRejectTE, Q931Umes_ResumeReject, Q931Pmes_ResumeReject);
81 Q931SetMesProc(Q931mes_SUSPEND, i, Q931ProcSuspendTE, Q931Umes_Suspend, Q931Pmes_Suspend);
82 Q931SetMesProc(Q931mes_SUSPEND_ACKNOWLEDGE, i, Q931ProcSuspendAckTE, Q931Umes_SuspendAck, Q931Pmes_SuspendAck);
83 Q931SetMesProc(Q931mes_SUSPEND_REJECT, i, Q931ProcSuspendRejectTE, Q931Umes_SuspendReject, Q931Pmes_SuspendReject);
84 Q931SetMesProc(Q931mes_USER_INFORMATION, i, Q931ProcUserInformationTE, Q931Umes_UserInformation, Q931Pmes_UserInformation);
85 Q931SetMesProc(Q931mes_DISCONNECT, i, Q931ProcDisconnectTE, Q931Umes_Disconnect, Q931Pmes_Disconnect);
86 Q931SetMesProc(Q931mes_RELEASE, i, Q931ProcReleaseTE, Q931Umes_Release, Q931Pmes_Release);
87 Q931SetMesProc(Q931mes_RELEASE_COMPLETE, i, Q931ProcReleaseCompleteTE, Q931Umes_ReleaseComplete, Q931Pmes_ReleaseComplete);
88 Q931SetMesProc(Q931mes_RESTART, i, Q931ProcRestartTE, Q931Umes_Restart, Q931Pmes_Restart);
89 Q931SetMesProc(Q931mes_RESTART_ACKNOWLEDGE, i, Q931ProcRestartAckTE, Q931Umes_RestartAck, Q931Pmes_RestartAck);
90 Q931SetMesProc(Q931mes_CONGESTION_CONTROL, i, Q931ProcCongestionControlTE, Q931Umes_CongestionControl, Q931Pmes_CongestionControl);
91 Q931SetMesProc(Q931mes_INFORMATION, i, Q931ProcInformationTE, Q931Umes_Information, Q931Pmes_Information);
92 Q931SetMesProc(Q931mes_NOTIFY, i, Q931ProcNotifyTE, Q931Umes_Notify, Q931Pmes_Notify);
93 Q931SetMesProc(Q931mes_STATUS, i, Q931ProcStatusTE, Q931Umes_Status, Q931Pmes_Status);
94 Q931SetMesProc(Q931mes_STATUS_ENQUIRY, i, Q931ProcStatusEnquiryTE, Q931Umes_StatusEnquiry, Q931Pmes_StatusEnquiry);
95 Q931SetMesProc(Q931mes_SEGMENT, i, Q931ProcSegmentTE, Q931Umes_Segment, Q931Pmes_Segment);
96
97 Q931SetMesProc(Q932mes_FACILITY, i, Q932ProcFacilityTE, Q932Umes_Facility, Q932Pmes_Facility);
98 Q931SetMesProc(Q932mes_HOLD, i, Q932ProcHoldTE, Q932Umes_Hold, Q932Pmes_Hold);
99 Q931SetMesProc(Q932mes_HOLD_ACKNOWLEDGE, i, Q932ProcHoldAckTE, Q932Umes_HoldAck, Q932Pmes_HoldAck);
100 Q931SetMesProc(Q932mes_HOLD_REJECT, i, Q932ProcHoldRejectTE, Q932Umes_HoldReject, Q932Pmes_HoldReject);
101 Q931SetMesProc(Q932mes_REGISTER, i, Q932ProcRegisterTE, Q932Umes_Register, Q932Pmes_Register);
102 Q931SetMesProc(Q932mes_RETRIEVE, i, Q932ProcRetrieveTE, Q932Umes_Retrieve, Q932Pmes_Retrieve);
103 Q931SetMesProc(Q932mes_RETRIEVE_ACKNOWLEDGE, i, Q932ProcRetrieveAckTE, Q932Umes_RetrieveAck, Q932Pmes_RetrieveAck);
104 Q931SetMesProc(Q932mes_RETRIEVE_REJECT, i, Q932ProcRetrieveRejectTE, Q932Umes_RetrieveReject, Q932Pmes_RetrieveReject);
105
106
107 Q931SetIEProc(Q931ie_SEGMENTED_MESSAGE, i, Q931Pie_Segment, Q931Uie_Segment);
108 Q931SetIEProc(Q931ie_BEARER_CAPABILITY, i, Q931Pie_BearerCap, Q931Uie_BearerCap);
109 Q931SetIEProc(Q931ie_CAUSE, i, Q931Pie_Cause, Q931Uie_Cause);
110 Q931SetIEProc(Q931ie_CALL_IDENTITY, i, Q931Pie_CallID, Q931Uie_CallID);
111 Q931SetIEProc(Q931ie_CALL_STATE, i, Q931Pie_CallState, Q931Uie_CallState);
112 Q931SetIEProc(Q931ie_CHANGE_STATUS, i, Q931Pie_ChangeStatus, Q931Uie_ChangeStatus);
113 Q931SetIEProc(Q931ie_CHANNEL_IDENTIFICATION, i, Q931Pie_ChanID, Q931Uie_ChanID);
114 Q931SetIEProc(Q931ie_PROGRESS_INDICATOR, i, Q931Pie_ProgInd, Q931Uie_ProgInd);
115 Q931SetIEProc(Q931ie_NETWORK_SPECIFIC_FACILITIES, i, Q931Pie_NetFac, Q931Uie_NetFac);
116 Q931SetIEProc(Q931ie_NOTIFICATION_INDICATOR, i, Q931Pie_NotifInd, Q931Uie_NotifInd);
117 Q931SetIEProc(Q931ie_DISPLAY, i, Q931Pie_Display, Q931Uie_Display);
118 Q931SetIEProc(Q931ie_DATETIME, i, Q931Pie_DateTime, Q931Uie_DateTime);
119 Q931SetIEProc(Q931ie_KEYPAD_FACILITY, i, Q931Pie_KeypadFac, Q931Uie_KeypadFac);
120 Q931SetIEProc(Q931ie_SIGNAL, i, Q931Pie_Signal, Q931Uie_Signal);
121 Q931SetIEProc(Q931ie_TRANSIT_DELAY_SELECTION_AND_IND, i, Q931Pie_TransNetSel, Q931Uie_TransNetSel);
122 Q931SetIEProc(Q931ie_CALLING_PARTY_NUMBER, i, Q931Pie_CallingNum, Q931Uie_CallingNum);
123 Q931SetIEProc(Q931ie_CALLING_PARTY_SUBADDRESS, i, Q931Pie_CallingSub, Q931Uie_CallingSub);
124 Q931SetIEProc(Q931ie_CALLED_PARTY_NUMBER, i, Q931Pie_CalledNum, Q931Uie_CalledNum);
125 Q931SetIEProc(Q931ie_CALLED_PARTY_SUBADDRESS, i, Q931Pie_CalledSub, Q931Uie_CalledSub);
126 Q931SetIEProc(Q931ie_TRANSIT_NETWORK_SELECTION, i, Q931Pie_TransNetSel, Q931Uie_TransNetSel);
127 Q931SetIEProc(Q931ie_RESTART_INDICATOR, i, Q931Pie_RestartInd, Q931Uie_RestartInd);
128 Q931SetIEProc(Q931ie_LOW_LAYER_COMPATIBILITY, i, Q931Pie_LLComp, Q931Uie_LLComp);
129 Q931SetIEProc(Q931ie_HIGH_LAYER_COMPATIBILITY, i, Q931Pie_HLComp, Q931Uie_HLComp);
130 Q931SetIEProc(Q931ie_USER_USER, i, Q931Pie_UserUser, Q931Uie_UserUser);
131 Q931SetIEProc(Q931ie_GENERIC_DIGITS, i, Q931Pie_GenericDigits, Q931Uie_GenericDigits);
132
133 Q931SetIEProc(Q931ie_CONNECTED_NUMBER, i, Q931Pie_Generic, Q931Uie_Generic);
134 Q931SetIEProc(Q931ie_FACILITY, i, Q931Pie_Generic, Q931Uie_Generic);
135
136
137
138
139
140
141 Q931AddStateEntry(i, Q931_U0, Q931mes_RESUME, 2);
142 Q931AddStateEntry(i, Q931_U0, Q931mes_SETUP, 4);
143 Q931AddStateEntry(i, Q931_U0, Q931mes_SETUP, 2);
144 Q931AddStateEntry(i, Q931_U0, Q931mes_STATUS, 4);
145 Q931AddStateEntry(i, Q931_U0, Q931mes_RELEASE, 4);
146 Q931AddStateEntry(i, Q931_U0, Q931mes_RELEASE_COMPLETE, 4);
147
148
149 Q931AddStateEntry(i, Q931_U1, Q931mes_DISCONNECT, 2);
150 Q931AddStateEntry(i, Q931_U1, Q931mes_SETUP_ACKNOWLEDGE, 4);
151 Q931AddStateEntry(i, Q931_U1, Q931mes_RELEASE_COMPLETE, 4);
152 Q931AddStateEntry(i, Q931_U1, Q931mes_CALL_PROCEEDING, 4);
153 Q931AddStateEntry(i, Q931_U1, Q931mes_ALERTING, 4);
154 Q931AddStateEntry(i, Q931_U1, Q931mes_CONNECT, 4);
155
156
157 Q931AddStateEntry(i, Q931_U2, Q931mes_INFORMATION, 2);
158 Q931AddStateEntry(i, Q931_U2, Q931mes_CALL_PROCEEDING, 4);
159 Q931AddStateEntry(i, Q931_U2, Q931mes_ALERTING, 4);
160 Q931AddStateEntry(i, Q931_U2, Q931mes_PROGRESS, 4);
161 Q931AddStateEntry(i, Q931_U2, Q931mes_CONNECT, 4);
162 Q931AddStateEntry(i, Q931_U2, Q931mes_RELEASE, 2);
163
164
165 Q931AddStateEntry(i, Q931_U3, Q931mes_PROGRESS, 4);
166 Q931AddStateEntry(i, Q931_U3, Q931mes_ALERTING, 4);
167 Q931AddStateEntry(i, Q931_U3, Q931mes_CONNECT, 4);
168 Q931AddStateEntry(i, Q931_U3, Q931mes_RELEASE, 2);
169
170
171 Q931AddStateEntry(i, Q931_U4, Q931mes_CONNECT, 4);
172
173
174 Q931AddStateEntry(i, Q931_U6, Q931mes_INFORMATION, 2);
175 Q931AddStateEntry(i, Q931_U6, Q931mes_ALERTING, 2);
176 Q931AddStateEntry(i, Q931_U6, Q931mes_CALL_PROCEEDING, 2);
177 Q931AddStateEntry(i, Q931_U6, Q931mes_CONNECT, 2);
178 Q931AddStateEntry(i, Q931_U6, Q931mes_RELEASE_COMPLETE, 2);
179 Q931AddStateEntry(i, Q931_U6, Q931mes_RELEASE, 4);
180 Q931AddStateEntry(i, Q931_U6, Q931mes_DISCONNECT, 4);
181
182
183 Q931AddStateEntry(i, Q931_U7, Q931mes_CONNECT, 2);
184
185
186 Q931AddStateEntry(i, Q931_U8, Q931mes_CONNECT_ACKNOWLEDGE, 4);
187
188
189 Q931AddStateEntry(i, Q931_U9, Q931mes_CONNECT, 2);
190 Q931AddStateEntry(i, Q931_U9, Q931mes_ALERTING, 2);
191 Q931AddStateEntry(i, Q931_U9, Q931mes_PROGRESS, 2);
192
193
194 Q931AddStateEntry(i, Q931_U10, Q931mes_SUSPEND, 2);
195 Q931AddStateEntry(i, Q931_U10, Q931mes_NOTIFY, 4);
196 Q931AddStateEntry(i, Q931_U10, Q931mes_NOTIFY, 2);
197
198
199 Q931AddStateEntry(i, Q931_U11, Q931mes_RELEASE, 4);
200 Q931AddStateEntry(i, Q931_U11, Q931mes_DISCONNECT, 4);
201 Q931AddStateEntry(i, Q931_U11, Q931mes_NOTIFY, 4);
202
203
204 Q931AddStateEntry(i, Q931_U12, Q931mes_RELEASE, 4);
205 Q931AddStateEntry(i, Q931_U12, Q931mes_RELEASE, 2);
206
207
208 Q931AddStateEntry(i, Q931_U15, Q931mes_SUSPEND_ACKNOWLEDGE, 4);
209 Q931AddStateEntry(i, Q931_U15, Q931mes_SUSPEND_REJECT, 4);
210 Q931AddStateEntry(i, Q931_U15, Q931mes_DISCONNECT, 4);
211 Q931AddStateEntry(i, Q931_U15, Q931mes_RELEASE, 4);
212
213
214
215
216
217
218 }
219
220
221
222
223
224
225 L3INT ATT5ESSProc0x0fTE(Q931_TrunkInfo_t *pTrunk, L3UCHAR * buf, L3INT iFrom)
226 {
227 Q931mes_Header *pMes = (Q931mes_Header *)&buf[Q931L4HeaderSpace];
228 L3INT callIndex;
229 L3INT ret = Q931E_NO_ERROR;
230
231 if (pMes->ProtDisc == 8) {
232
233 ret = Q931FindCRV(pTrunk, pMes->CRV, &callIndex);
234 if (ret != Q931E_NO_ERROR)
235 return ret;
236
237
238
239
240 Q931StartTimer(pTrunk, callIndex, Q931_TIMER_T303);
241 }
242 if (iFrom == 4) {
243
244 ret = Q931Tx32Data(pTrunk, 0, buf, pMes->Size);
245 }
246 else if (iFrom ==2) {
247
248 ret = Q931Tx34(pTrunk, buf, pMes->Size);
249
250 if (pMes->ProtDisc == 3 && pTrunk->autoServiceAck) {
251 printf("autoServiceAck is on, responding to Service Req from network...\n");
252 Q931AckService(pTrunk, buf);
253 }
254 }
255 return ret;
256
257 }
258
259
260
261
262
263
264 L3INT ATT5ESSProc0x07TE(Q931_TrunkInfo_t *pTrunk, L3UCHAR * buf, L3INT iFrom)
265 {
266 Q931mes_Header *pMes = (Q931mes_Header *)&buf[Q931L4HeaderSpace];
267 L3INT callIndex;
268 L3INT ret = Q931E_NO_ERROR;
269
270 if (pMes->ProtDisc == 8) {
271
272 ret = Q931FindCRV(pTrunk, pMes->CRV, &callIndex);
273 if (ret != Q931E_NO_ERROR)
274 return ret;
275
276
277
278
279 Q931StartTimer(pTrunk, callIndex, Q931_TIMER_T303);
280 }
281 if (iFrom == 4) {
282
283 ret = Q931Tx32Data(pTrunk, 0, buf, pMes->Size);
284 }
285 else if (iFrom == 2) {
286
287 ret = Q931Tx34(pTrunk, buf, pMes->Size);
288 }
289 return ret;
290
291 }