1 /*
2  * libpri: An implementation of Primary Rate ISDN
3  *
4  * Copyright (C) 2009 Digium, Inc.
5  *
6  * Richard Mudgett <rmudgett@digium.com>
7  *
8  * See http://www.asterisk.org for more information about
9  * the Asterisk project. Please do not directly contact
10  * any of the maintainers of this project for assistance;
11  * the project provides a web site, mailing lists and IRC
12  * channels for your use.
13  *
14  * This program is free software, distributed under the terms of
15  * the GNU General Public License Version 2 as published by the
16  * Free Software Foundation. See the LICENSE file included with
17  * this program for more details.
18  *
19  * In addition, when this program is distributed with Asterisk in
20  * any form that would qualify as a 'combined work' or as a
21  * 'derivative work' (but not mere aggregation), you can redistribute
22  * and/or modify the combination under the terms of the license
23  * provided with that copy of Asterisk, instead of the license
24  * terms granted here.
25  */
26 
27 /*!
28  * \file
29  * \brief Internal definitions and prototypes for ROSE.
30  *
31  * \author Richard Mudgett <rmudgett@digium.com>
32  */
33 
34 #ifndef _LIBPRI_ROSE_INTERNAL_H
35 #define _LIBPRI_ROSE_INTERNAL_H
36 
37 #include "rose.h"
38 
39 #ifdef __cplusplus
40 extern "C" {
41 #endif
42 
43 
44 /* ------------------------------------------------------------------- */
45 
46 
47 /* Embedded-Q931-Types */
48 unsigned char *rose_enc_Q931ie(struct pri *ctrl, unsigned char *pos, unsigned char *end,
49 	unsigned tag, const struct roseQ931ie *q931ie);
50 
51 const unsigned char *rose_dec_Q931ie(struct pri *ctrl, const char *name, unsigned tag,
52 	const unsigned char *pos, const unsigned char *end, struct roseQ931ie *q931ie,
53 	size_t contents_size);
54 
55 /* Addressing-Data-Elements */
56 unsigned char *rose_enc_PartyNumber(struct pri *ctrl, unsigned char *pos,
57 	unsigned char *end, const struct rosePartyNumber *party_number);
58 unsigned char *rose_enc_PartySubaddress(struct pri *ctrl, unsigned char *pos,
59 	unsigned char *end, const struct rosePartySubaddress *party_subaddress);
60 unsigned char *rose_enc_Address(struct pri *ctrl, unsigned char *pos, unsigned char *end,
61 	unsigned tag, const struct roseAddress *address);
62 unsigned char *rose_enc_PresentedNumberUnscreened(struct pri *ctrl, unsigned char *pos,
63 	unsigned char *end, const struct rosePresentedNumberUnscreened *party);
64 unsigned char *rose_enc_NumberScreened(struct pri *ctrl, unsigned char *pos,
65 	unsigned char *end, unsigned tag, const struct roseNumberScreened *screened);
66 unsigned char *rose_enc_PresentedNumberScreened(struct pri *ctrl, unsigned char *pos,
67 	unsigned char *end, const struct rosePresentedNumberScreened *party);
68 unsigned char *rose_enc_AddressScreened(struct pri *ctrl, unsigned char *pos,
69 	unsigned char *end, unsigned tag, const struct roseAddressScreened *screened);
70 unsigned char *rose_enc_PresentedAddressScreened(struct pri *ctrl, unsigned char *pos,
71 	unsigned char *end, const struct rosePresentedAddressScreened *party);
72 
73 const unsigned char *rose_dec_PartyNumber(struct pri *ctrl, const char *name,
74 	unsigned tag, const unsigned char *pos, const unsigned char *end,
75 	struct rosePartyNumber *party_number);
76 const unsigned char *rose_dec_PartySubaddress(struct pri *ctrl, const char *name,
77 	unsigned tag, const unsigned char *pos, const unsigned char *end,
78 	struct rosePartySubaddress *party_subaddress);
79 const unsigned char *rose_dec_Address(struct pri *ctrl, const char *name, unsigned tag,
80 	const unsigned char *pos, const unsigned char *end, struct roseAddress *address);
81 const unsigned char *rose_dec_PresentedNumberUnscreened(struct pri *ctrl,
82 	const char *name, unsigned tag, const unsigned char *pos, const unsigned char *end,
83 	struct rosePresentedNumberUnscreened *party);
84 const unsigned char *rose_dec_NumberScreened(struct pri *ctrl, const char *name,
85 	unsigned tag, const unsigned char *pos, const unsigned char *end,
86 	struct roseNumberScreened *screened);
87 const unsigned char *rose_dec_PresentedNumberScreened(struct pri *ctrl, const char *name,
88 	unsigned tag, const unsigned char *pos, const unsigned char *end,
89 	struct rosePresentedNumberScreened *party);
90 const unsigned char *rose_dec_AddressScreened(struct pri *ctrl, const char *name,
91 	unsigned tag, const unsigned char *pos, const unsigned char *end,
92 	struct roseAddressScreened *screened);
93 const unsigned char *rose_dec_PresentedAddressScreened(struct pri *ctrl,
94 	const char *name, unsigned tag, const unsigned char *pos, const unsigned char *end,
95 	struct rosePresentedAddressScreened *party);
96 
97 /* ETSI Advice-of-Charge (AOC) */
98 unsigned char *rose_enc_etsi_ChargingRequest_ARG(struct pri *ctrl, unsigned char *pos,
99 	unsigned char *end, const union rose_msg_invoke_args *args);
100 unsigned char *rose_enc_etsi_ChargingRequest_RES(struct pri *ctrl, unsigned char *pos,
101 	unsigned char *end, const union rose_msg_result_args *args);
102 unsigned char *rose_enc_etsi_AOCSCurrency_ARG(struct pri *ctrl, unsigned char *pos,
103 	unsigned char *end, const union rose_msg_invoke_args *args);
104 unsigned char *rose_enc_etsi_AOCSSpecialArr_ARG(struct pri *ctrl, unsigned char *pos,
105 	unsigned char *end, const union rose_msg_invoke_args *args);
106 unsigned char *rose_enc_etsi_AOCDCurrency_ARG(struct pri *ctrl, unsigned char *pos,
107 	unsigned char *end, const union rose_msg_invoke_args *args);
108 unsigned char *rose_enc_etsi_AOCDChargingUnit_ARG(struct pri *ctrl, unsigned char *pos,
109 	unsigned char *end, const union rose_msg_invoke_args *args);
110 unsigned char *rose_enc_etsi_AOCECurrency_ARG(struct pri *ctrl, unsigned char *pos,
111 	unsigned char *end, const union rose_msg_invoke_args *args);
112 unsigned char *rose_enc_etsi_AOCEChargingUnit_ARG(struct pri *ctrl, unsigned char *pos,
113 	unsigned char *end, const union rose_msg_invoke_args *args);
114 
115 const unsigned char *rose_dec_etsi_ChargingRequest_ARG(struct pri *ctrl, unsigned tag,
116 	const unsigned char *pos, const unsigned char *end,
117 	union rose_msg_invoke_args *args);
118 const unsigned char *rose_dec_etsi_ChargingRequest_RES(struct pri *ctrl, unsigned tag,
119 	const unsigned char *pos, const unsigned char *end,
120 	union rose_msg_result_args *args);
121 const unsigned char *rose_dec_etsi_AOCSCurrency_ARG(struct pri *ctrl, unsigned tag,
122 	const unsigned char *pos, const unsigned char *end,
123 	union rose_msg_invoke_args *args);
124 const unsigned char *rose_dec_etsi_AOCSSpecialArr_ARG(struct pri *ctrl, unsigned tag,
125 	const unsigned char *pos, const unsigned char *end,
126 	union rose_msg_invoke_args *args);
127 const unsigned char *rose_dec_etsi_AOCDCurrency_ARG(struct pri *ctrl, unsigned tag,
128 	const unsigned char *pos, const unsigned char *end,
129 	union rose_msg_invoke_args *args);
130 const unsigned char *rose_dec_etsi_AOCDChargingUnit_ARG(struct pri *ctrl, unsigned tag,
131 	const unsigned char *pos, const unsigned char *end,
132 	union rose_msg_invoke_args *args);
133 const unsigned char *rose_dec_etsi_AOCECurrency_ARG(struct pri *ctrl, unsigned tag,
134 	const unsigned char *pos, const unsigned char *end,
135 	union rose_msg_invoke_args *args);
136 const unsigned char *rose_dec_etsi_AOCEChargingUnit_ARG(struct pri *ctrl, unsigned tag,
137 	const unsigned char *pos, const unsigned char *end,
138 	union rose_msg_invoke_args *args);
139 
140 /* ETSI Call Diversion */
141 unsigned char *rose_enc_etsi_ActivationDiversion_ARG(struct pri *ctrl,
142 	unsigned char *pos, unsigned char *end, const union rose_msg_invoke_args *args);
143 unsigned char *rose_enc_etsi_DeactivationDiversion_ARG(struct pri *ctrl,
144 	unsigned char *pos, unsigned char *end, const union rose_msg_invoke_args *args);
145 unsigned char *rose_enc_etsi_ActivationStatusNotificationDiv_ARG(struct pri *ctrl,
146 	unsigned char *pos, unsigned char *end, const union rose_msg_invoke_args *args);
147 unsigned char *rose_enc_etsi_DeactivationStatusNotificationDiv_ARG(struct pri *ctrl,
148 	unsigned char *pos, unsigned char *end, const union rose_msg_invoke_args *args);
149 unsigned char *rose_enc_etsi_InterrogationDiversion_ARG(struct pri *ctrl,
150 	unsigned char *pos, unsigned char *end, const union rose_msg_invoke_args *args);
151 unsigned char *rose_enc_etsi_InterrogationDiversion_RES(struct pri *ctrl,
152 	unsigned char *pos, unsigned char *end, const union rose_msg_result_args *args);
153 unsigned char *rose_enc_etsi_DiversionInformation_ARG(struct pri *ctrl,
154 	unsigned char *pos, unsigned char *end, const union rose_msg_invoke_args *args);
155 unsigned char *rose_enc_etsi_CallDeflection_ARG(struct pri *ctrl, unsigned char *pos,
156 	unsigned char *end, const union rose_msg_invoke_args *args);
157 unsigned char *rose_enc_etsi_CallRerouting_ARG(struct pri *ctrl, unsigned char *pos,
158 	unsigned char *end, const union rose_msg_invoke_args *args);
159 unsigned char *rose_enc_etsi_InterrogateServedUserNumbers_RES(struct pri *ctrl,
160 	unsigned char *pos, unsigned char *end, const union rose_msg_result_args *args);
161 unsigned char *rose_enc_etsi_DivertingLegInformation1_ARG(struct pri *ctrl,
162 	unsigned char *pos, unsigned char *end, const union rose_msg_invoke_args *args);
163 unsigned char *rose_enc_etsi_DivertingLegInformation2_ARG(struct pri *ctrl,
164 	unsigned char *pos, unsigned char *end, const union rose_msg_invoke_args *args);
165 unsigned char *rose_enc_etsi_DivertingLegInformation3_ARG(struct pri *ctrl,
166 	unsigned char *pos, unsigned char *end, const union rose_msg_invoke_args *args);
167 
168 const unsigned char *rose_dec_etsi_ActivationDiversion_ARG(struct pri *ctrl,
169 	unsigned tag, const unsigned char *pos, const unsigned char *end,
170 	union rose_msg_invoke_args *args);
171 const unsigned char *rose_dec_etsi_DeactivationDiversion_ARG(struct pri *ctrl,
172 	unsigned tag, const unsigned char *pos, const unsigned char *end,
173 	union rose_msg_invoke_args *args);
174 const unsigned char *rose_dec_etsi_ActivationStatusNotificationDiv_ARG(struct pri *ctrl,
175 	unsigned tag, const unsigned char *pos, const unsigned char *end,
176 	union rose_msg_invoke_args *args);
177 const unsigned char *rose_dec_etsi_DeactivationStatusNotificationDiv_ARG(struct pri
178 	*ctrl, unsigned tag, const unsigned char *pos, const unsigned char *end,
179 	union rose_msg_invoke_args *args);
180 const unsigned char *rose_dec_etsi_InterrogationDiversion_ARG(struct pri *ctrl,
181 	unsigned tag, const unsigned char *pos, const unsigned char *end,
182 	union rose_msg_invoke_args *args);
183 const unsigned char *rose_dec_etsi_InterrogationDiversion_RES(struct pri *ctrl,
184 	unsigned tag, const unsigned char *pos, const unsigned char *end,
185 	union rose_msg_result_args *args);
186 const unsigned char *rose_dec_etsi_DiversionInformation_ARG(struct pri *ctrl,
187 	unsigned tag, const unsigned char *pos, const unsigned char *end,
188 	union rose_msg_invoke_args *args);
189 const unsigned char *rose_dec_etsi_CallDeflection_ARG(struct pri *ctrl, unsigned tag,
190 	const unsigned char *pos, const unsigned char *end,
191 	union rose_msg_invoke_args *args);
192 const unsigned char *rose_dec_etsi_CallRerouting_ARG(struct pri *ctrl, unsigned tag,
193 	const unsigned char *pos, const unsigned char *end,
194 	union rose_msg_invoke_args *args);
195 const unsigned char *rose_dec_etsi_InterrogateServedUserNumbers_RES(struct pri *ctrl,
196 	unsigned tag, const unsigned char *pos, const unsigned char *end,
197 	union rose_msg_result_args *args);
198 const unsigned char *rose_dec_etsi_DivertingLegInformation1_ARG(struct pri *ctrl,
199 	unsigned tag, const unsigned char *pos, const unsigned char *end,
200 	union rose_msg_invoke_args *args);
201 const unsigned char *rose_dec_etsi_DivertingLegInformation2_ARG(struct pri *ctrl,
202 	unsigned tag, const unsigned char *pos, const unsigned char *end,
203 	union rose_msg_invoke_args *args);
204 const unsigned char *rose_dec_etsi_DivertingLegInformation3_ARG(struct pri *ctrl,
205 	unsigned tag, const unsigned char *pos, const unsigned char *end,
206 	union rose_msg_invoke_args *args);
207 
208 /* ETSI Explicit Call Transfer (ECT) */
209 unsigned char *rose_enc_etsi_ExplicitEctExecute_ARG(struct pri *ctrl, unsigned char *pos,
210 	unsigned char *end, const union rose_msg_invoke_args *args);
211 unsigned char *rose_enc_etsi_SubaddressTransfer_ARG(struct pri *ctrl, unsigned char *pos,
212 	unsigned char *end, const union rose_msg_invoke_args *args);
213 unsigned char *rose_enc_etsi_EctLinkIdRequest_RES(struct pri *ctrl, unsigned char *pos,
214 	unsigned char *end, const union rose_msg_result_args *args);
215 unsigned char *rose_enc_etsi_EctInform_ARG(struct pri *ctrl, unsigned char *pos,
216 	unsigned char *end, const union rose_msg_invoke_args *args);
217 unsigned char *rose_enc_etsi_EctLoopTest_ARG(struct pri *ctrl, unsigned char *pos,
218 	unsigned char *end, const union rose_msg_invoke_args *args);
219 unsigned char *rose_enc_etsi_EctLoopTest_RES(struct pri *ctrl, unsigned char *pos,
220 	unsigned char *end, const union rose_msg_result_args *args);
221 
222 const unsigned char *rose_dec_etsi_ExplicitEctExecute_ARG(struct pri *ctrl, unsigned tag,
223 	const unsigned char *pos, const unsigned char *end,
224 	union rose_msg_invoke_args *args);
225 const unsigned char *rose_dec_etsi_SubaddressTransfer_ARG(struct pri *ctrl, unsigned tag,
226 	const unsigned char *pos, const unsigned char *end,
227 	union rose_msg_invoke_args *args);
228 const unsigned char *rose_dec_etsi_EctLinkIdRequest_RES(struct pri *ctrl, unsigned tag,
229 	const unsigned char *pos, const unsigned char *end,
230 	union rose_msg_result_args *args);
231 const unsigned char *rose_dec_etsi_EctInform_ARG(struct pri *ctrl, unsigned tag,
232 	const unsigned char *pos, const unsigned char *end,
233 	union rose_msg_invoke_args *args);
234 const unsigned char *rose_dec_etsi_EctLoopTest_ARG(struct pri *ctrl, unsigned tag,
235 	const unsigned char *pos, const unsigned char *end,
236 	union rose_msg_invoke_args *args);
237 const unsigned char *rose_dec_etsi_EctLoopTest_RES(struct pri *ctrl, unsigned tag,
238 	const unsigned char *pos, const unsigned char *end,
239 	union rose_msg_result_args *args);
240 
241 /* ETSI Status Request */
242 unsigned char *rose_enc_etsi_StatusRequest_ARG(struct pri *ctrl, unsigned char *pos,
243 	unsigned char *end, const union rose_msg_invoke_args *args);
244 unsigned char *rose_enc_etsi_StatusRequest_RES(struct pri *ctrl, unsigned char *pos,
245 	unsigned char *end, const union rose_msg_result_args *args);
246 
247 const unsigned char *rose_dec_etsi_StatusRequest_ARG(struct pri *ctrl, unsigned tag,
248 	const unsigned char *pos, const unsigned char *end,
249 	union rose_msg_invoke_args *args);
250 const unsigned char *rose_dec_etsi_StatusRequest_RES(struct pri *ctrl, unsigned tag,
251 	const unsigned char *pos, const unsigned char *end,
252 	union rose_msg_result_args *args);
253 
254 /* ETSI Call-Completion Busy Status (CCBS) / Call-Completion No Reply (CCNR) */
255 unsigned char *rose_enc_etsi_CallInfoRetain_ARG(struct pri *ctrl, unsigned char *pos,
256 	unsigned char *end, const union rose_msg_invoke_args *args);
257 unsigned char *rose_enc_etsi_EraseCallLinkageID_ARG(struct pri *ctrl, unsigned char *pos,
258 	unsigned char *end, const union rose_msg_invoke_args *args);
259 unsigned char *rose_enc_etsi_CCBSDeactivate_ARG(struct pri *ctrl, unsigned char *pos,
260 	unsigned char *end, const union rose_msg_invoke_args *args);
261 unsigned char *rose_enc_etsi_CCBSErase_ARG(struct pri *ctrl, unsigned char *pos,
262 	unsigned char *end, const union rose_msg_invoke_args *args);
263 unsigned char *rose_enc_etsi_CCBSRemoteUserFree_ARG(struct pri *ctrl, unsigned char *pos,
264 	unsigned char *end, const union rose_msg_invoke_args *args);
265 unsigned char *rose_enc_etsi_CCBSCall_ARG(struct pri *ctrl, unsigned char *pos,
266 	unsigned char *end, const union rose_msg_invoke_args *args);
267 unsigned char *rose_enc_etsi_CCBSBFree_ARG(struct pri *ctrl, unsigned char *pos,
268 	unsigned char *end, const union rose_msg_invoke_args *args);
269 unsigned char *rose_enc_etsi_CCBSStopAlerting_ARG(struct pri *ctrl, unsigned char *pos,
270 	unsigned char *end, const union rose_msg_invoke_args *args);
271 unsigned char *rose_enc_etsi_CCBSStatusRequest_ARG(struct pri *ctrl, unsigned char *pos,
272 	unsigned char *end, const union rose_msg_invoke_args *args);
273 unsigned char *rose_enc_etsi_CCBSStatusRequest_RES(struct pri *ctrl, unsigned char *pos,
274 	unsigned char *end, const union rose_msg_result_args *args);
275 unsigned char *rose_enc_etsi_CCBSRequest_ARG(struct pri *ctrl, unsigned char *pos,
276 	unsigned char *end, const union rose_msg_invoke_args *args);
277 unsigned char *rose_enc_etsi_CCNRRequest_ARG(struct pri *ctrl, unsigned char *pos,
278 	unsigned char *end, const union rose_msg_invoke_args *args);
279 unsigned char *rose_enc_etsi_CCBSRequest_RES(struct pri *ctrl, unsigned char *pos,
280 	unsigned char *end, const union rose_msg_result_args *args);
281 unsigned char *rose_enc_etsi_CCNRRequest_RES(struct pri *ctrl, unsigned char *pos,
282 	unsigned char *end, const union rose_msg_result_args *args);
283 unsigned char *rose_enc_etsi_CCBSInterrogate_ARG(struct pri *ctrl, unsigned char *pos,
284 	unsigned char *end, const union rose_msg_invoke_args *args);
285 unsigned char *rose_enc_etsi_CCNRInterrogate_ARG(struct pri *ctrl, unsigned char *pos,
286 	unsigned char *end, const union rose_msg_invoke_args *args);
287 unsigned char *rose_enc_etsi_CCBSInterrogate_RES(struct pri *ctrl, unsigned char *pos,
288 	unsigned char *end, const union rose_msg_result_args *args);
289 unsigned char *rose_enc_etsi_CCNRInterrogate_RES(struct pri *ctrl, unsigned char *pos,
290 	unsigned char *end, const union rose_msg_result_args *args);
291 
292 const unsigned char *rose_dec_etsi_CallInfoRetain_ARG(struct pri *ctrl, unsigned tag,
293 	const unsigned char *pos, const unsigned char *end,
294 	union rose_msg_invoke_args *args);
295 const unsigned char *rose_dec_etsi_EraseCallLinkageID_ARG(struct pri *ctrl, unsigned tag,
296 	const unsigned char *pos, const unsigned char *end,
297 	union rose_msg_invoke_args *args);
298 const unsigned char *rose_dec_etsi_CCBSDeactivate_ARG(struct pri *ctrl, unsigned tag,
299 	const unsigned char *pos, const unsigned char *end,
300 	union rose_msg_invoke_args *args);
301 const unsigned char *rose_dec_etsi_CCBSErase_ARG(struct pri *ctrl, unsigned tag,
302 	const unsigned char *pos, const unsigned char *end,
303 	union rose_msg_invoke_args *args);
304 const unsigned char *rose_dec_etsi_CCBSRemoteUserFree_ARG(struct pri *ctrl, unsigned tag,
305 	const unsigned char *pos, const unsigned char *end,
306 	union rose_msg_invoke_args *args);
307 const unsigned char *rose_dec_etsi_CCBSCall_ARG(struct pri *ctrl, unsigned tag,
308 	const unsigned char *pos, const unsigned char *end,
309 	union rose_msg_invoke_args *args);
310 const unsigned char *rose_dec_etsi_CCBSBFree_ARG(struct pri *ctrl, unsigned tag,
311 	const unsigned char *pos, const unsigned char *end,
312 	union rose_msg_invoke_args *args);
313 const unsigned char *rose_dec_etsi_CCBSStopAlerting_ARG(struct pri *ctrl, unsigned tag,
314 	const unsigned char *pos, const unsigned char *end,
315 	union rose_msg_invoke_args *args);
316 const unsigned char *rose_dec_etsi_CCBSStatusRequest_ARG(struct pri *ctrl, unsigned tag,
317 	const unsigned char *pos, const unsigned char *end,
318 	union rose_msg_invoke_args *args);
319 const unsigned char *rose_dec_etsi_CCBSStatusRequest_RES(struct pri *ctrl, unsigned tag,
320 	const unsigned char *pos, const unsigned char *end,
321 	union rose_msg_result_args *args);
322 const unsigned char *rose_dec_etsi_CCBSRequest_ARG(struct pri *ctrl, unsigned tag,
323 	const unsigned char *pos, const unsigned char *end,
324 	union rose_msg_invoke_args *args);
325 const unsigned char *rose_dec_etsi_CCNRRequest_ARG(struct pri *ctrl, unsigned tag,
326 	const unsigned char *pos, const unsigned char *end,
327 	union rose_msg_invoke_args *args);
328 const unsigned char *rose_dec_etsi_CCBSRequest_RES(struct pri *ctrl, unsigned tag,
329 	const unsigned char *pos, const unsigned char *end,
330 	union rose_msg_result_args *args);
331 const unsigned char *rose_dec_etsi_CCNRRequest_RES(struct pri *ctrl, unsigned tag,
332 	const unsigned char *pos, const unsigned char *end,
333 	union rose_msg_result_args *args);
334 const unsigned char *rose_dec_etsi_CCBSInterrogate_ARG(struct pri *ctrl, unsigned tag,
335 	const unsigned char *pos, const unsigned char *end,
336 	union rose_msg_invoke_args *args);
337 const unsigned char *rose_dec_etsi_CCNRInterrogate_ARG(struct pri *ctrl, unsigned tag,
338 	const unsigned char *pos, const unsigned char *end,
339 	union rose_msg_invoke_args *args);
340 const unsigned char *rose_dec_etsi_CCBSInterrogate_RES(struct pri *ctrl, unsigned tag,
341 	const unsigned char *pos, const unsigned char *end,
342 	union rose_msg_result_args *args);
343 const unsigned char *rose_dec_etsi_CCNRInterrogate_RES(struct pri *ctrl, unsigned tag,
344 	const unsigned char *pos, const unsigned char *end,
345 	union rose_msg_result_args *args);
346 
347 /* ETSI CCBS-T/CCNR-T */
348 unsigned char *rose_enc_etsi_CCBS_T_Request_ARG(struct pri *ctrl, unsigned char *pos,
349 	unsigned char *end, const union rose_msg_invoke_args *args);
350 unsigned char *rose_enc_etsi_CCNR_T_Request_ARG(struct pri *ctrl, unsigned char *pos,
351 	unsigned char *end, const union rose_msg_invoke_args *args);
352 unsigned char *rose_enc_etsi_CCBS_T_Request_RES(struct pri *ctrl, unsigned char *pos,
353 	unsigned char *end, const union rose_msg_result_args *args);
354 unsigned char *rose_enc_etsi_CCNR_T_Request_RES(struct pri *ctrl, unsigned char *pos,
355 	unsigned char *end, const union rose_msg_result_args *args);
356 
357 const unsigned char *rose_dec_etsi_CCBS_T_Request_ARG(struct pri *ctrl, unsigned tag,
358 	const unsigned char *pos, const unsigned char *end,
359 	union rose_msg_invoke_args *args);
360 const unsigned char *rose_dec_etsi_CCNR_T_Request_ARG(struct pri *ctrl, unsigned tag,
361 	const unsigned char *pos, const unsigned char *end,
362 	union rose_msg_invoke_args *args);
363 const unsigned char *rose_dec_etsi_CCBS_T_Request_RES(struct pri *ctrl, unsigned tag,
364 	const unsigned char *pos, const unsigned char *end,
365 	union rose_msg_result_args *args);
366 const unsigned char *rose_dec_etsi_CCNR_T_Request_RES(struct pri *ctrl, unsigned tag,
367 	const unsigned char *pos, const unsigned char *end,
368 	union rose_msg_result_args *args);
369 
370 /* ETSI Message Waiting Indication (MWI) */
371 unsigned char *rose_enc_etsi_MWIActivate_ARG(struct pri *ctrl, unsigned char *pos,
372 	unsigned char *end, const union rose_msg_invoke_args *args);
373 unsigned char *rose_enc_etsi_MWIDeactivate_ARG(struct pri *ctrl, unsigned char *pos,
374 	unsigned char *end, const union rose_msg_invoke_args *args);
375 unsigned char *rose_enc_etsi_MWIIndicate_ARG(struct pri *ctrl, unsigned char *pos,
376 	unsigned char *end, const union rose_msg_invoke_args *args);
377 
378 const unsigned char *rose_dec_etsi_MWIActivate_ARG(struct pri *ctrl, unsigned tag,
379 	const unsigned char *pos, const unsigned char *end,
380 	union rose_msg_invoke_args *args);
381 const unsigned char *rose_dec_etsi_MWIDeactivate_ARG(struct pri *ctrl, unsigned tag,
382 	const unsigned char *pos, const unsigned char *end,
383 	union rose_msg_invoke_args *args);
384 const unsigned char *rose_dec_etsi_MWIIndicate_ARG(struct pri *ctrl, unsigned tag,
385 	const unsigned char *pos, const unsigned char *end,
386 	union rose_msg_invoke_args *args);
387 
388 /* Q.SIG Name-Operations */
389 unsigned char *rose_enc_qsig_Name(struct pri *ctrl, unsigned char *pos,
390 	unsigned char *end, const struct roseQsigName *name);
391 
392 const unsigned char *rose_dec_qsig_Name(struct pri *ctrl, const char *fname,
393 	unsigned tag, const unsigned char *pos, const unsigned char *end,
394 	struct roseQsigName *name);
395 
396 unsigned char *rose_enc_qsig_CallingName_ARG(struct pri *ctrl, unsigned char *pos,
397 	unsigned char *end, const union rose_msg_invoke_args *args);
398 unsigned char *rose_enc_qsig_CalledName_ARG(struct pri *ctrl, unsigned char *pos,
399 	unsigned char *end, const union rose_msg_invoke_args *args);
400 unsigned char *rose_enc_qsig_ConnectedName_ARG(struct pri *ctrl, unsigned char *pos,
401 	unsigned char *end, const union rose_msg_invoke_args *args);
402 unsigned char *rose_enc_qsig_BusyName_ARG(struct pri *ctrl, unsigned char *pos,
403 	unsigned char *end, const union rose_msg_invoke_args *args);
404 
405 const unsigned char *rose_dec_qsig_CallingName_ARG(struct pri *ctrl, unsigned tag,
406 	const unsigned char *pos, const unsigned char *end,
407 	union rose_msg_invoke_args *args);
408 const unsigned char *rose_dec_qsig_CalledName_ARG(struct pri *ctrl, unsigned tag,
409 	const unsigned char *pos, const unsigned char *end,
410 	union rose_msg_invoke_args *args);
411 const unsigned char *rose_dec_qsig_ConnectedName_ARG(struct pri *ctrl, unsigned tag,
412 	const unsigned char *pos, const unsigned char *end,
413 	union rose_msg_invoke_args *args);
414 const unsigned char *rose_dec_qsig_BusyName_ARG(struct pri *ctrl, unsigned tag,
415 	const unsigned char *pos, const unsigned char *end,
416 	union rose_msg_invoke_args *args);
417 
418 /*
419  * Q.SIG Dummy invoke/result argument used by:
420  * SS-AOC-Operations,
421  * Call-Transfer-Operations,
422  * Call-Diversion-Operations,
423  * and SS-MWI-Operations.
424  */
425 unsigned char *rose_enc_qsig_DummyArg_ARG(struct pri *ctrl, unsigned char *pos,
426 	unsigned char *end, const union rose_msg_invoke_args *args);
427 unsigned char *rose_enc_qsig_DummyRes_RES(struct pri *ctrl, unsigned char *pos,
428 	unsigned char *end, const union rose_msg_result_args *args);
429 
430 const unsigned char *rose_dec_qsig_DummyArg_ARG(struct pri *ctrl, unsigned tag,
431 	const unsigned char *pos, const unsigned char *end,
432 	union rose_msg_invoke_args *args);
433 const unsigned char *rose_dec_qsig_DummyRes_RES(struct pri *ctrl, unsigned tag,
434 	const unsigned char *pos, const unsigned char *end,
435 	union rose_msg_result_args *args);
436 
437 /* Q.SIG SS-AOC-Operations */
438 unsigned char *rose_enc_qsig_ChargeRequest_ARG(struct pri *ctrl, unsigned char *pos,
439 	unsigned char *end, const union rose_msg_invoke_args *args);
440 unsigned char *rose_enc_qsig_ChargeRequest_RES(struct pri *ctrl, unsigned char *pos,
441 	unsigned char *end, const union rose_msg_result_args *args);
442 unsigned char *rose_enc_qsig_AocFinal_ARG(struct pri *ctrl, unsigned char *pos,
443 	unsigned char *end, const union rose_msg_invoke_args *args);
444 unsigned char *rose_enc_qsig_AocInterim_ARG(struct pri *ctrl, unsigned char *pos,
445 	unsigned char *end, const union rose_msg_invoke_args *args);
446 unsigned char *rose_enc_qsig_AocRate_ARG(struct pri *ctrl, unsigned char *pos,
447 	unsigned char *end, const union rose_msg_invoke_args *args);
448 unsigned char *rose_enc_qsig_AocComplete_ARG(struct pri *ctrl, unsigned char *pos,
449 	unsigned char *end, const union rose_msg_invoke_args *args);
450 unsigned char *rose_enc_qsig_AocComplete_RES(struct pri *ctrl, unsigned char *pos,
451 	unsigned char *end, const union rose_msg_result_args *args);
452 unsigned char *rose_enc_qsig_AocDivChargeReq_ARG(struct pri *ctrl, unsigned char *pos,
453 	unsigned char *end, const union rose_msg_invoke_args *args);
454 
455 const unsigned char *rose_dec_qsig_ChargeRequest_ARG(struct pri *ctrl, unsigned tag,
456 	const unsigned char *pos, const unsigned char *end,
457 	union rose_msg_invoke_args *args);
458 const unsigned char *rose_dec_qsig_ChargeRequest_RES(struct pri *ctrl, unsigned tag,
459 	const unsigned char *pos, const unsigned char *end,
460 	union rose_msg_result_args *args);
461 const unsigned char *rose_dec_qsig_AocFinal_ARG(struct pri *ctrl, unsigned tag,
462 	const unsigned char *pos, const unsigned char *end,
463 	union rose_msg_invoke_args *args);
464 const unsigned char *rose_dec_qsig_AocInterim_ARG(struct pri *ctrl, unsigned tag,
465 	const unsigned char *pos, const unsigned char *end,
466 	union rose_msg_invoke_args *args);
467 const unsigned char *rose_dec_qsig_AocRate_ARG(struct pri *ctrl, unsigned tag,
468 	const unsigned char *pos, const unsigned char *end,
469 	union rose_msg_invoke_args *args);
470 const unsigned char *rose_dec_qsig_AocComplete_ARG(struct pri *ctrl, unsigned tag,
471 	const unsigned char *pos, const unsigned char *end,
472 	union rose_msg_invoke_args *args);
473 const unsigned char *rose_dec_qsig_AocComplete_RES(struct pri *ctrl, unsigned tag,
474 	const unsigned char *pos, const unsigned char *end,
475 	union rose_msg_result_args *args);
476 const unsigned char *rose_dec_qsig_AocDivChargeReq_ARG(struct pri *ctrl, unsigned tag,
477 	const unsigned char *pos, const unsigned char *end,
478 	union rose_msg_invoke_args *args);
479 
480 /* Q.SIG Call-Diversion-Operations */
481 unsigned char *rose_enc_qsig_ActivateDiversionQ_ARG(struct pri *ctrl, unsigned char *pos,
482 	unsigned char *end, const union rose_msg_invoke_args *args);
483 unsigned char *rose_enc_qsig_DeactivateDiversionQ_ARG(struct pri *ctrl,
484 	unsigned char *pos, unsigned char *end, const union rose_msg_invoke_args *args);
485 unsigned char *rose_enc_qsig_InterrogateDiversionQ_ARG(struct pri *ctrl,
486 	unsigned char *pos, unsigned char *end, const union rose_msg_invoke_args *args);
487 unsigned char *rose_enc_qsig_InterrogateDiversionQ_RES(struct pri *ctrl,
488 	unsigned char *pos, unsigned char *end, const union rose_msg_result_args *args);
489 unsigned char *rose_enc_qsig_CheckRestriction_ARG(struct pri *ctrl, unsigned char *pos,
490 	unsigned char *end, const union rose_msg_invoke_args *args);
491 unsigned char *rose_enc_qsig_CallRerouting_ARG(struct pri *ctrl, unsigned char *pos,
492 	unsigned char *end, const union rose_msg_invoke_args *args);
493 unsigned char *rose_enc_qsig_DivertingLegInformation1_ARG(struct pri *ctrl,
494 	unsigned char *pos, unsigned char *end, const union rose_msg_invoke_args *args);
495 unsigned char *rose_enc_qsig_DivertingLegInformation2_ARG(struct pri *ctrl,
496 	unsigned char *pos, unsigned char *end, const union rose_msg_invoke_args *args);
497 unsigned char *rose_enc_qsig_DivertingLegInformation3_ARG(struct pri *ctrl,
498 	unsigned char *pos, unsigned char *end, const union rose_msg_invoke_args *args);
499 
500 const unsigned char *rose_dec_qsig_ActivateDiversionQ_ARG(struct pri *ctrl, unsigned tag,
501 	const unsigned char *pos, const unsigned char *end,
502 	union rose_msg_invoke_args *args);
503 const unsigned char *rose_dec_qsig_DeactivateDiversionQ_ARG(struct pri *ctrl,
504 	unsigned tag, const unsigned char *pos, const unsigned char *end,
505 	union rose_msg_invoke_args *args);
506 const unsigned char *rose_dec_qsig_InterrogateDiversionQ_ARG(struct pri *ctrl,
507 	unsigned tag, const unsigned char *pos, const unsigned char *end,
508 	union rose_msg_invoke_args *args);
509 const unsigned char *rose_dec_qsig_InterrogateDiversionQ_RES(struct pri *ctrl,
510 	unsigned tag, const unsigned char *pos, const unsigned char *end,
511 	union rose_msg_result_args *args);
512 const unsigned char *rose_dec_qsig_CheckRestriction_ARG(struct pri *ctrl, unsigned tag,
513 	const unsigned char *pos, const unsigned char *end,
514 	union rose_msg_invoke_args *args);
515 const unsigned char *rose_dec_qsig_CallRerouting_ARG(struct pri *ctrl, unsigned tag,
516 	const unsigned char *pos, const unsigned char *end,
517 	union rose_msg_invoke_args *args);
518 const unsigned char *rose_dec_qsig_DivertingLegInformation1_ARG(struct pri *ctrl,
519 	unsigned tag, const unsigned char *pos, const unsigned char *end,
520 	union rose_msg_invoke_args *args);
521 const unsigned char *rose_dec_qsig_DivertingLegInformation2_ARG(struct pri *ctrl,
522 	unsigned tag, const unsigned char *pos, const unsigned char *end,
523 	union rose_msg_invoke_args *args);
524 const unsigned char *rose_dec_qsig_DivertingLegInformation3_ARG(struct pri *ctrl,
525 	unsigned tag, const unsigned char *pos, const unsigned char *end,
526 	union rose_msg_invoke_args *args);
527 
528 /* Q.SIG Call-Transfer-Operations (CT) */
529 unsigned char *rose_enc_qsig_CallTransferIdentify_RES(struct pri *ctrl,
530 	unsigned char *pos, unsigned char *end, const union rose_msg_result_args *args);
531 unsigned char *rose_enc_qsig_CallTransferInitiate_ARG(struct pri *ctrl,
532 	unsigned char *pos, unsigned char *end, const union rose_msg_invoke_args *args);
533 unsigned char *rose_enc_qsig_CallTransferSetup_ARG(struct pri *ctrl, unsigned char *pos,
534 	unsigned char *end, const union rose_msg_invoke_args *args);
535 unsigned char *rose_enc_qsig_CallTransferActive_ARG(struct pri *ctrl, unsigned char *pos,
536 	unsigned char *end, const union rose_msg_invoke_args *args);
537 unsigned char *rose_enc_qsig_CallTransferComplete_ARG(struct pri *ctrl,
538 	unsigned char *pos, unsigned char *end, const union rose_msg_invoke_args *args);
539 unsigned char *rose_enc_qsig_CallTransferUpdate_ARG(struct pri *ctrl, unsigned char *pos,
540 	unsigned char *end, const union rose_msg_invoke_args *args);
541 unsigned char *rose_enc_qsig_SubaddressTransfer_ARG(struct pri *ctrl, unsigned char *pos,
542 	unsigned char *end, const union rose_msg_invoke_args *args);
543 
544 const unsigned char *rose_dec_qsig_CallTransferIdentify_RES(struct pri *ctrl,
545 	unsigned tag, const unsigned char *pos, const unsigned char *end,
546 	union rose_msg_result_args *args);
547 const unsigned char *rose_dec_qsig_CallTransferInitiate_ARG(struct pri *ctrl,
548 	unsigned tag, const unsigned char *pos, const unsigned char *end,
549 	union rose_msg_invoke_args *args);
550 const unsigned char *rose_dec_qsig_CallTransferSetup_ARG(struct pri *ctrl, unsigned tag,
551 	const unsigned char *pos, const unsigned char *end,
552 	union rose_msg_invoke_args *args);
553 const unsigned char *rose_dec_qsig_CallTransferActive_ARG(struct pri *ctrl, unsigned tag,
554 	const unsigned char *pos, const unsigned char *end,
555 	union rose_msg_invoke_args *args);
556 const unsigned char *rose_dec_qsig_CallTransferComplete_ARG(struct pri *ctrl,
557 	unsigned tag, const unsigned char *pos, const unsigned char *end,
558 	union rose_msg_invoke_args *args);
559 const unsigned char *rose_dec_qsig_CallTransferUpdate_ARG(struct pri *ctrl, unsigned tag,
560 	const unsigned char *pos, const unsigned char *end,
561 	union rose_msg_invoke_args *args);
562 const unsigned char *rose_dec_qsig_SubaddressTransfer_ARG(struct pri *ctrl, unsigned tag,
563 	const unsigned char *pos, const unsigned char *end,
564 	union rose_msg_invoke_args *args);
565 
566 /* Q.SIG SS-CC-Operations */
567 unsigned char *rose_enc_qsig_CcbsRequest_ARG(struct pri *ctrl, unsigned char *pos,
568 	unsigned char *end, const union rose_msg_invoke_args *args);
569 unsigned char *rose_enc_qsig_CcnrRequest_ARG(struct pri *ctrl, unsigned char *pos,
570 	unsigned char *end, const union rose_msg_invoke_args *args);
571 unsigned char *rose_enc_qsig_CcbsRequest_RES(struct pri *ctrl, unsigned char *pos,
572 	unsigned char *end, const union rose_msg_result_args *args);
573 unsigned char *rose_enc_qsig_CcnrRequest_RES(struct pri *ctrl, unsigned char *pos,
574 	unsigned char *end, const union rose_msg_result_args *args);
575 unsigned char *rose_enq_qsig_CcCancel_ARG(struct pri *ctrl, unsigned char *pos,
576 	unsigned char *end, const union rose_msg_invoke_args *args);
577 unsigned char *rose_enq_qsig_CcExecPossible_ARG(struct pri *ctrl, unsigned char *pos,
578 	unsigned char *end, const union rose_msg_invoke_args *args);
579 unsigned char *rose_enc_qsig_CcPathReserve_ARG(struct pri *ctrl, unsigned char *pos,
580 	unsigned char *end, const union rose_msg_invoke_args *args);
581 unsigned char *rose_enc_qsig_CcPathReserve_RES(struct pri *ctrl, unsigned char *pos,
582 	unsigned char *end, const union rose_msg_result_args *args);
583 unsigned char *rose_enc_qsig_CcRingout_ARG(struct pri *ctrl, unsigned char *pos,
584 	unsigned char *end, const union rose_msg_invoke_args *args);
585 unsigned char *rose_enc_qsig_CcSuspend_ARG(struct pri *ctrl, unsigned char *pos,
586 	unsigned char *end, const union rose_msg_invoke_args *args);
587 unsigned char *rose_enc_qsig_CcResume_ARG(struct pri *ctrl, unsigned char *pos,
588 	unsigned char *end, const union rose_msg_invoke_args *args);
589 
590 const unsigned char *rose_dec_qsig_CcbsRequest_ARG(struct pri *ctrl, unsigned tag,
591 	const unsigned char *pos, const unsigned char *end,
592 	union rose_msg_invoke_args *args);
593 const unsigned char *rose_dec_qsig_CcnrRequest_ARG(struct pri *ctrl, unsigned tag,
594 	const unsigned char *pos, const unsigned char *end,
595 	union rose_msg_invoke_args *args);
596 const unsigned char *rose_dec_qsig_CcbsRequest_RES(struct pri *ctrl, unsigned tag,
597 	const unsigned char *pos, const unsigned char *end,
598 	union rose_msg_result_args *args);
599 const unsigned char *rose_dec_qsig_CcnrRequest_RES(struct pri *ctrl, unsigned tag,
600 	const unsigned char *pos, const unsigned char *end,
601 	union rose_msg_result_args *args);
602 const unsigned char *rose_dec_qsig_CcCancel_ARG(struct pri *ctrl, unsigned tag,
603 	const unsigned char *pos, const unsigned char *end,
604 	union rose_msg_invoke_args *args);
605 const unsigned char *rose_dec_qsig_CcExecPossible_ARG(struct pri *ctrl, unsigned tag,
606 	const unsigned char *pos, const unsigned char *end,
607 	union rose_msg_invoke_args *args);
608 const unsigned char *rose_dec_qsig_CcPathReserve_ARG(struct pri *ctrl, unsigned tag,
609 	const unsigned char *pos, const unsigned char *end,
610 	union rose_msg_invoke_args *args);
611 const unsigned char *rose_dec_qsig_CcPathReserve_RES(struct pri *ctrl, unsigned tag,
612 	const unsigned char *pos, const unsigned char *end,
613 	union rose_msg_result_args *args);
614 const unsigned char *rose_dec_qsig_CcRingout_ARG(struct pri *ctrl, unsigned tag,
615 	const unsigned char *pos, const unsigned char *end,
616 	union rose_msg_invoke_args *args);
617 const unsigned char *rose_dec_qsig_CcSuspend_ARG(struct pri *ctrl, unsigned tag,
618 	const unsigned char *pos, const unsigned char *end,
619 	union rose_msg_invoke_args *args);
620 const unsigned char *rose_dec_qsig_CcResume_ARG(struct pri *ctrl, unsigned tag,
621 	const unsigned char *pos, const unsigned char *end,
622 	union rose_msg_invoke_args *args);
623 
624 /* Q.SIG SS-MWI-Operations */
625 unsigned char *rose_enc_qsig_MWIActivate_ARG(struct pri *ctrl, unsigned char *pos,
626 	unsigned char *end, const union rose_msg_invoke_args *args);
627 unsigned char *rose_enc_qsig_MWIDeactivate_ARG(struct pri *ctrl, unsigned char *pos,
628 	unsigned char *end, const union rose_msg_invoke_args *args);
629 unsigned char *rose_enc_qsig_MWIInterrogate_ARG(struct pri *ctrl, unsigned char *pos,
630 	unsigned char *end, const union rose_msg_invoke_args *args);
631 unsigned char *rose_enc_qsig_MWIInterrogate_RES(struct pri *ctrl, unsigned char *pos,
632 	unsigned char *end, const union rose_msg_result_args *args);
633 
634 const unsigned char *rose_dec_qsig_MWIActivate_ARG(struct pri *ctrl, unsigned tag,
635 	const unsigned char *pos, const unsigned char *end,
636 	union rose_msg_invoke_args *args);
637 const unsigned char *rose_dec_qsig_MWIDeactivate_ARG(struct pri *ctrl, unsigned tag,
638 	const unsigned char *pos, const unsigned char *end,
639 	union rose_msg_invoke_args *args);
640 const unsigned char *rose_dec_qsig_MWIInterrogate_ARG(struct pri *ctrl, unsigned tag,
641 	const unsigned char *pos, const unsigned char *end,
642 	union rose_msg_invoke_args *args);
643 const unsigned char *rose_dec_qsig_MWIInterrogate_RES(struct pri *ctrl, unsigned tag,
644 	const unsigned char *pos, const unsigned char *end,
645 	union rose_msg_result_args *args);
646 
647 /* Northern Telecom DMS-100 operations */
648 unsigned char *rose_enc_dms100_RLT_OperationInd_RES(struct pri *ctrl, unsigned char *pos,
649 	unsigned char *end, const union rose_msg_result_args *args);
650 unsigned char *rose_enc_dms100_RLT_ThirdParty_ARG(struct pri *ctrl, unsigned char *pos,
651 	unsigned char *end, const union rose_msg_invoke_args *args);
652 
653 const unsigned char *rose_dec_dms100_RLT_OperationInd_RES(struct pri *ctrl, unsigned tag,
654 	const unsigned char *pos, const unsigned char *end,
655 	union rose_msg_result_args *args);
656 const unsigned char *rose_dec_dms100_RLT_ThirdParty_ARG(struct pri *ctrl, unsigned tag,
657 	const unsigned char *pos, const unsigned char *end,
658 	union rose_msg_invoke_args *args);
659 
660 /* National ISDN 2 (NI2) operations */
661 unsigned char *rose_enc_ni2_InformationFollowing_ARG(struct pri *ctrl,
662 	unsigned char *pos, unsigned char *end, const union rose_msg_invoke_args *args);
663 unsigned char *rose_enc_ni2_InitiateTransfer_ARG(struct pri *ctrl, unsigned char *pos,
664 	unsigned char *end, const union rose_msg_invoke_args *args);
665 
666 const unsigned char *rose_dec_ni2_InformationFollowing_ARG(struct pri *ctrl,
667 	unsigned tag, const unsigned char *pos, const unsigned char *end,
668 	union rose_msg_invoke_args *args);
669 const unsigned char *rose_dec_ni2_InitiateTransfer_ARG(struct pri *ctrl, unsigned tag,
670 	const unsigned char *pos, const unsigned char *end,
671 	union rose_msg_invoke_args *args);
672 
673 
674 /* ------------------------------------------------------------------- */
675 
676 #ifdef __cplusplus
677 }
678 #endif
679 
680 #endif	/* _LIBPRI_ROSE_INTERNAL_H */
681 /* ------------------------------------------------------------------- */
682 /* end rose_internal.h */
683