comparison src/aci2/mfw/mfw_cm.h @ 3:93999a60b835

src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 26 Sep 2016 00:29:36 +0000
parents
children
comparison
equal deleted inserted replaced
2:c41a534f33c6 3:93999a60b835
1 /*
2 +--------------------------------------------------------------------+
3 | PROJECT: MMI-Framework (8417) $Workfile:: mfw_cm.h $|
4 | $Author:: Vo $Revision:: 1 $|
5 | CREATED: 3.11.98 $Modtime:: 21.03.00 19:26 $|
6 | STATE : code |
7 +--------------------------------------------------------------------+
8
9 MODULE : MFW_CM
10
11 PURPOSE : This modul contains the definition for call management.
12
13
14 $History:: mfw_cm.h $
15
16 Feb 03, 200 REF: CRR 25960 x0012850
17 Description: Call Hold: While one call in Active and other in Held by swapping either of phone is not audible
18 Solution: swapping action results in one of the calls getting muted. We attach user connection again.
19
20 Oct 04, 2004 REF: CRR 25519 Deepa M.D
21 Bug:Re-align structure members in MFW
22 Fix:Structure elements have been realigned to avoid the structure padding
23
24 // Jul 2, 2004 REF: CRR 21421 xvilliva
25 // Bug: ALS:Action on the other line when change is locked.
26 // Fix: A new error code is defined for handling error returned by ACI.
27
28
29 *
30 * ***************** Version 42 *****************
31 * User: Vo Date: 24.03.00 Time: 10:23
32 * Updated in $/GSM/Condat/MS/SRC/MFW
33 * chang define value
34 *
35 * ***************** Version 41 *****************
36 * User: Vo Date: 15.03.00 Time: 18:17
37 * Updated in $/GSM/Condat/MS/SRC/MFW
38 * New: Remote call control and Abort CM command
39 *
40 * ***************** Version 40 *****************
41 * User: Vo Date: 22.02.00 Time: 14:03
42 * Updated in $/GSM/Condat/MS/SRC/MFW
43 *
44 * ***************** Version 39 *****************
45 * User: Vo Date: 17.02.00 Time: 19:06
46 * Updated in $/GSM/Condat/MS/SRC/MFW
47 *
48 * ***************** Version 38 *****************
49 * User: Vo Date: 20.01.00 Time: 13:01
50 * Updated in $/GSM/Condat/MS/SRC/MFW
51 * New: Manage fax/data/combinated call
52 * New: New event CM_REDIAL_STOP to indicate that the reason of
53 * failed connection is outside of defined category.
54 *
55 * ***************** Version 37 *****************
56 * User: Le Date: 13.12.99 Time: 8:50
57 * Updated in $/GSM/Condat/MS/SRC/MFW
58 *
59 * ***************** Version 36 *****************
60 * User: Vo Date: 11.11.99 Time: 14:22
61 * Updated in $/GSM/Condat/MS/SRC/MFW
62 * New event and command define for DTMF tone
63 * New prototype for requesting of autoredial mode
64 *
65 * ***************** Version 35 *****************
66 * User: Vo Date: 10.09.99 Time: 18:36
67 * Updated in $/GSM/DEV/MS/SRC/MFW
68 * new prototype
69 *
70 * ***************** Version 34 *****************
71 * User: Vo Date: 30.08.99 Time: 13:53
72 * Updated in $/GSM/DEV/MS/SRC/MFW
73 * new event, parameter for setting of AoC value
74 *
75 * ***************** Version 33 *****************
76 * User: Vo Date: 9.08.99 Time: 12:00
77 * Updated in $/GSM/DEV/MS/SRC/MFW
78 * change definition (length of number (161 to 41))
79 * new return value "CM_CTRL_STR"
80 * new cm command: "CM_SWAP_MULTIPARTY"
81 *
82 * ***************** Version 32 *****************
83 * User: Vo Date: 21.07.99 Time: 14:39
84 * Updated in $/GSM/DEV/MS/SRC/MFW
85 *
86 * ***************** Version 31 *****************
87 * User: Vo Date: 16.07.99 Time: 10:32
88 * Updated in $/GSM/DEV/MS/SRC/MFW
89 *
90 * ***************** Version 30 *****************
91 * User: Vo Date: 9.07.99 Time: 14:31
92 * Updated in $/GSM/DEV/MS/SRC/MFW
93 *
94 * ***************** Version 29 *****************
95 * User: Vo Date: 2.07.99 Time: 18:25
96 * Updated in $/GSM/DEV/MS/SRC/MFW
97 *
98 * ***************** Version 28 *****************
99 * User: Vo Date: 22.06.99 Time: 8:54
100 * Updated in $/GSM/DEV/MS/SRC/MFW
101 *
102 *
103 * ***************** Version 1 *****************
104 * User: Vo Date: 20.11.98 Time: 13:40
105 * Created in $/GSM/DEV/MS/SRC/MFW
106 * Call Management
107
108 */
109
110 #ifndef DEF_MFW_CM_HEADER
111 #define DEF_MFW_CM_HEADER
112
113
114
115 /* #include "phb.h" RSA 20/12/01 - Removed */
116 #include"mfw_phb.h"
117
118 #define MFW_STRING_LEN 161
119 #define MFW_NUM_LEN 41
120 #define MFW_TAG_LEN 21
121 #define MFW_SUBADR_LEN 21
122 #define MAX_LEN 21
123 #define MAX_CURRENCY 5
124
125 /*
126 * events are organised as bitmaps
127 */
128 #define E_CM_OK 0x0001
129 #define E_CM_CW 0x0002
130 #define E_CM_CONNECT 0x0004
131 #define E_CM_CONNECT_ACK 0x0008
132 #define E_CM_DISCONNECT 0x0010
133 #define E_CM_COMMAND 0x0020
134 #define E_CM_NOTIFY 0x0040
135 #define E_CM_REDIAL 0x0080
136 #define E_CM_COLP 0x0100
137 #define E_CM_RING_OFF 0x0200
138 #define E_CM_MO_RES 0x0400
139 #define E_CM_CPI 0x0800
140 #define E_CM_TIMER_EVERY_SECOND 0x1000
141 #define E_CM_AOC 0x2000
142 #define E_CM_AOC_CNF 0x4000
143 #define E_CM_DTMF 0x8000
144 #define E_CM_WAP_CALL_CONNECTED 0x10000
145 #define E_CM_CTYI 0x20000 /* SPR#1352 - SH */
146 /* Marcus: CCBS: 14/11/2002: Start */
147 #define E_CM_CCBS 0x40000
148 /* Marcus: CCBS: 14/11/2002: End */
149 #define E_CM_CALL_DEFLECT_STATUS 0x80000 /*SPR 1392*/
150 #define E_CM_DISCONNECT_ALL 0x100000
151 #define E_CM_ALL_SERVICES 0xFFFFFF
152
153 /* Possible service code for a call number */
154 #define CM_OK 1 /* A mobile originated call attempt has been started. */
155 #define CM_EC 2 /* A mobile originated emergency call has been started. */
156 #define CM_SIM 3 /* The number has started a SIM control procedure. */
157 #define CM_SS 4 /* The number has started a supplementary service. */
158 #define CM_USSD 5 /* The number has started an unstructured SS. */
159 #define CM_MMI 6 /* The number define a MMI specific procedure. */
160 #define CM_ERROR 7 /* The number can not procedured. */
161 #define CM_BLACKLIST 8 /* The number is blacklisted. */
162 #define CM_NO_REG 9 /* The network is not registered. */
163 #define CM_NO_SERVICE 10 /* The service type of network is NO_SERVICE. */
164 #define CM_NO_CARRIER 11 /* No connection because of no carrier */
165 #define CM_NO_AOC 12 /* NO advice of charge information available */
166 #define CM_BUSY 13 /* No connection because of user busy */
167 #define CM_NO_ANSWER 14 /* No connection because of no answering */
168 #define CM_CTRL_STR 15 /* control string */
169 #define CM_ACM_MAX 16 /* ACM reachs maximal value */
170 #define CM_CFDN_ERR 17 /* check FDN number error */
171 #define CM_CBDN_ERR 18 /* check BDN number error */
172 #define CM_2CALLS_ALREADY_ERR 19/* 2 calls already, we can not perform a third outgoing call */
173 #define CM_CLI 20 /* CLI command complete */
174 #define CM_ALS_ERR 21//xvilliva 21421 - Handling err code returned by ACI.
175
176 /* Definition for advice of charge */
177 #define CM_AOC_UNKNOWN 0
178 #define CM_AOC_INFO 20 /* AoC information from the network. */
179 #define CM_AOC_PUCT 21 /* PUCT is requested by MMI logic. */
180 #define CM_AOC_ACMMAX 22 /* ACM max is requested by MMI logic. */
181 #define CM_AOC_ACM 23 /* ACM is requested by MMI logic. */
182 #define CM_AOC_CCM 24 /* CCM is requested by MMI logic. */
183 #define CM_AOC_TIMERS 25 /* AoC timer values are requested. */
184 #define CM_AOC_CCM_PUCT 26 /* CCM using PUCT */
185 #define CM_AOC_ACM_PUCT 27 /* ACM using PUCT */
186 #define CM_AOC_RAW_PUCT 28 /* RAW PUCT */
187
188 /* Definition for redialing */
189 #define CM_REDIAL_OFF 0 /* no redialing */
190 #define CM_REDIAL_AUTO 1 /* automatic redialing */
191 #define CM_REDIAL_MANU 2 /* manual redialing */
192
193 #define CM_REDIAL_BLACKLIST 33 /* reset blacklist */
194 #define CM_REDIAL_NO_SERVICE 34 /* mobile out the cell */
195 #define CM_REDIAL_INCOMING 35 /* redial abort because of incoming call */
196 #define CM_REDIAL_ABORTED 36 /* abort redial fromm MMI */
197 #define CM_REDIAL_STARTED 37 /* start autoredial */
198 #define CM_REDIAL_ATTEMPT 38 /* start redial call */
199 #define CM_REDIAL_BLACKLISTED 39 /* Redialing number is blacklisted */
200 #define CM_REDIAL_OUTGOING 40 /* redial abort because of outgoing call */
201 #define CM_REDIAL_SUCCESS 41 /* Redialing is successful */
202 #define CM_REDIAL_STOP 42 /* Stop redialing (outside of category) */
203
204 /* definition of commands for call related supplementary service */
205 #define CM_COMMAND_UNKNOWN 0
206 #define CM_HOLD 1 /* initiate call hold */
207 #define CM_RETRIEVE 2 /* initiate call retrieve */
208 #define CM_BUILD_MULTIPARTY 3 /* build a multiparty */
209 #define CM_HOLD_MULTIPARTY 4 /* set multiparty on hold */
210 #define CM_RETRIEVE_MULTIPARTY 5 /* set multiparty on active */
211 #define CM_SPLIT_MULTIPARTY 6 /* split a multiparty */
212 #define CM_ETC 7 /* enable explicit call transfer */
213 #define CM_CALL_DEFLECTION 8 /* redirection of incomming call */
214 #define CM_CCBS 9 /* completion on call busy subscriber */
215 #define CM_MODIFY 10 /* initiate in-call modification */
216 #define CM_DTMF_ACTIVE 11 /* enable DTMF signalling */
217 #define CM_DTMF_INACTIVE 12 /* disable DTMF signalling */
218 #define CM_SWAP 13 /* swap of two calls */
219 #define CM_SWAP_MULTIPARTY 14
220 #define CM_DTMF_AUTO 15 /* DTMF signalling with defined length of tones */
221
222
223 #define CM_DISCONNECT_ALL_RESULT_ERROR 0
224 #define CM_DISCONNECT_ALL_RESULT_OK 1
225
226
227
228 #define MIN_DURATION_1 7000 /* time of the 1th redialing */
229 #define MIN_DURATION_2_4 70000 /* time of the 2th to 4st redialing */
230 #define MIN_DURATION_5 200000 /* time of the 5th or over redialing */
231
232
233
234 typedef enum /* definition of the result */
235 {
236 CM_AOC_CONF_UNKNOWN,
237 CM_AOC_CONF_OK,
238 CM_AOC_CONF_SIMPIN2REQ,
239 CM_AOC_CONF_WRONGPASSWD,
240 CM_AOC_CONF_OPNOTALLOW,
241 CM_AOC_CONF_ACMRESETNEEDED
242 } T_MFW_AOC_CNF_RES;
243
244 typedef enum /* type of call progress information */
245 {
246 CPI_TYPE_UNKNOWN = -1,
247 CPI_TYPE_SETUP, /* call setup */
248 CPI_TYPE_DISC, /* call disconnect */
249 CPI_TYPE_ALERT, /* call alerting */
250 CPI_TYPE_PROC, /* call proceeding */
251 CPI_TYPE_SYNC, /* TCH assigment */
252 CPI_TYPE_CONN,
253 CPI_TYPE_RELEASE, /* Call released cq111676 17-02-04 */
254 CPI_TYPE_REJECT /* Call rejected cq11676 17-02-04 */
255 } T_MFW_CPI_TYPE;
256
257 typedef enum /* inband tone */
258 {
259 CPI_IBT_UNKNOWN = -1,
260 CPI_IBT_FALSE,
261 CPI_IBT_TRUE
262 } T_MFW_CPI_IBT;
263
264 typedef enum /* TCH */
265 {
266 CPI_TCH_UNKNOWN = -1,
267 CPI_TCH_FALSE,
268 CPI_TCH_TRUE
269 } T_MFW_CPI_TCH;
270
271 typedef enum /* type of call */
272 {
273 NONE_TYPE,
274 VOICE_CALL,
275 AuxVOICE_CALL,
276 DATA_CALL,
277 FAX_CALL,
278 VFD_VOICE, /* voice followed data, voice mode */
279 VAD_VOICE, /* voice alternating data, voice mode */
280 VAF_VOICE, /* voice alternating fax, voice mode */
281 VFD_DATA, /* voice followed data, data mode */
282 VAD_DATA, /* voice alternating data, data mode */
283 VAF_FAX /* voice alternating fax, fax mode */
284 } T_MFW_CM_CALL_TYPE;
285
286 typedef enum /* direction of call */
287 {
288 MFW_CM_INV_DIR = -1,
289 MFW_CM_MOC,
290 MFW_CM_MTC
291 } T_MFW_CM_CALL_DIR;
292
293 /* Result of operation */
294 typedef enum
295 {
296 NotPresent,
297 Present
298 } T_MFW_CM_RESULT;
299
300 /* Call status */
301 typedef enum
302 {
303 NOT_PRESENT,
304 CALL_HELD,
305 CALL_ACTIVE,
306 CALL_DEACTIVE,
307 CALL_WAIT,
308 CALL_DIAL,
309 CALL_ALERT
310 } T_MFW_CM_CALL_STAT;
311
312 /* Bearer parameter */
313 typedef enum /* data rate */
314 {
315 SPEED_300,
316 SPEED_1200,
317 SPEED_2400,
318 SPEED_4800,
319 SPEED_9600,
320 SPEED_14400
321 } T_MFW_CM_DATA_SPEED;
322
323 typedef enum /* bearer service */
324 {
325 Asynch,
326 Synch
327 } T_MFW_CM_BS;
328
329 typedef enum /* connection element */
330 {
331 Transparent,
332 NonTransparent
333 } T_MFW_CM_CE;
334
335 typedef enum /* connection element */
336 {
337 Linear,
338 Circular
339 } T_MFW_CM_RI;
340
341 typedef enum /* SS notification result code */
342 {
343 MFW_CM_NOTIFY_UNKNOWN,
344 MFW_CM_HOLD, /* call has been put on hold */
345 MFW_CM_RETRIEVED /* call has been retrieved */
346 } T_MFW_CM_NOTIFY_CODES;
347
348 typedef enum /* connection element */
349 {
350 MFW_MPTY_NotPresent = -1,
351 MFW_NO_MTPY_MEMBER,
352 MFW_MTPY_MEMBER
353 } T_MFW_MTPY_MEMBER;
354
355 typedef UBYTE T_CM_CLI;
356
357 typedef struct
358 {
359 SHORT call_number;
360 UBYTE cause;
361 } T_MFW_CM_DISCONNECT;
362
363 typedef struct
364 {
365 UBYTE result;
366 UBYTE cause;
367 } T_MFW_CM_DISCONNECT_ALL;
368
369
370 typedef struct
371 {
372 UBYTE rate; /* used baud rate */
373 UBYTE bearer_serv; /* used bearer service */
374 UBYTE conn_elem; /* used connect_element */
375 UBYTE stop_bits; /* used stop bits */
376 UBYTE data_bits; /* used data bits */
377 UBYTE parity; /* used parity */
378 UBYTE flow_control; /* used flow control */
379 } T_MFW_CM_BC_PARA;
380
381
382 #ifdef NO_ASCIIZ
383 typedef struct {
384 SHORT call_id; /* call identify */
385 UBYTE number[MFW_NUM_LEN]; /* call number */
386 UBYTE ton; /* type of number */
387 UBYTE type;
388 T_MFW_PHB_TEXT name; /* alpha identfier */
389 UBYTE subaddr[MFW_SUBADR_LEN]; /* subaddress */
390 } T_MFW_CM_MO_INFO; /* type definition for E_CM_COLP event */
391 #else
392 typedef struct {
393 SHORT call_id; /* call identify */
394 UBYTE number[MFW_NUM_LEN]; /* call number */
395 UBYTE ton; /* type of number */
396 UBYTE type;
397 UBYTE name[MFW_TAG_LEN]; /* alpha identfier */
398 UBYTE subaddr[MFW_SUBADR_LEN]; /* subaddress */
399 } T_MFW_CM_MO_INFO; /* type definition for E_CM_COLP event */
400 #endif
401
402
403
404
405 typedef struct {
406 UBYTE result; /* result of operation */
407 SHORT call_number; /* call index */
408 UBYTE number[MFW_NUM_LEN]; /* call number */
409 UBYTE ton; /* type of number */
410 T_MFW_CM_CALL_TYPE type; /* type of this call */
411 #ifdef NO_ASCIIZ
412 T_MFW_PHB_TEXT name; /* alpha identfier */
413 #else
414 UBYTE name[MFW_TAG_LEN]; /* alpha identfier */
415 #endif
416 UBYTE subaddr[MFW_SUBADR_LEN]; /* subaddress */
417 UBYTE ri; /* repeat indicator */
418 T_MFW_CM_BC_PARA bc1; /* bearer parameter 1 */
419 T_MFW_CM_BC_PARA bc2; /* bearer parameter 2 */
420 } T_MFW_CM_CW_INFO; /* type definition for E_CM_CW (indicator a new incomming call) event */
421
422 /* Marcus: CCBS: 14/11/2002: Start */
423 /* Type definitions for E_CM_CCBS events */
424 typedef enum
425 {
426 CM_CCBS_NONE, /* Used to indicate no CCBS operation in progress */
427 CM_CCBS_DELETE_ALL, /* Response to cm_ccbs_delete_all */
428 CM_CCBS_DELETE, /* Response to cm_ccbs_delete */
429 CM_CCBS_LIST, /* Response to cm_ccbs_list */
430 CM_CCBS_ACCEPT_REGISTRATION, /* Response to cm_ccbs_accept_registration */
431 CM_CCBS_REJECT_REGISTRATION, /* Response to cm_ccbs_reject_registration */
432 CM_CCBS_ACCEPT_RECALL, /* Response to cm_ccbs_accept_recall */
433 CM_CCBS_REJECT_RECALL, /* Response to cm_ccbs_reject_recall */
434 CM_CCBS_ASYNC /* An asynchronous event not related to an operation */
435 } T_MFW_CM_CCBS_OP; /* Type definition for the operation associated E_CM_CCBS event */
436
437 typedef enum
438 {
439 CM_CCBS_INFO, /* rAT_PercentCCBS information */
440 CM_CCBS_OK, /* OK completion of a CCBS operation */
441 CM_CCBS_ERROR /* ERROR completion of a CCBS operation */
442 } T_MFW_CM_CCBS_TYPE; /* Type definition for the type of E_CM_CCBS event */
443
444 typedef struct
445 {
446 T_MFW_CM_CCBS_OP operation; /* CCBS operation in progress */
447 T_MFW_CM_CCBS_TYPE type; /* type of E_CM_CCBS event */
448 T_ACI_CCBS_IND indct; /* Type of CM_CCBS_INFO indication */
449 T_ACI_CCBS_STAT status; /* Status of CM_CCBS_INFO indication */
450 SHORT idx; /* Index to specific CCBS (1..5), else 0 */
451 UBYTE number[MFW_NUM_LEN]; /* call number */
452 UBYTE ton; /* type of number */
453 T_MFW_CM_CALL_TYPE call_type; /* type of this call */
454 UBYTE subaddr[MFW_SUBADR_LEN]; /* subaddress */
455 T_ACI_ALRT_PTRN alrtPtn; /* Alerting pattern */
456 } T_MFW_CM_CCBS_INFO; /* type definition for E_CM_CCBS event */
457 /* Marcus: CCBS: 14/11/2002: End */
458
459 typedef struct
460 {
461 SHORT call_number; /* number of call */
462 UBYTE command; /* requested command */
463 UBYTE result; /* result of operation */
464 } T_MFW_CM_COMMAND; /* type definition for E_CM_COMMAND (ss command) event */
465
466 /***************************Go-lite Optimization changes Start***********************/
467 // PATCH TB Add 10 to acm_puct & acm_puct avoid buffer override
468 //Oct 04, 2004 REF: CRR 25519 Deepa M.D
469 //Structure elements (T_MFW_CM_AOC_INFO)are realigned to avoid the structure padding
470 typedef struct
471 {
472 LONG actual_call_timer; /* time of actual call */
473 LONG ccm; /* current call meter */
474 LONG acm; /* accumulated call meter */
475 LONG acm_max; /* accumulated call meter maximum PUCT */
476 ULONG eppu; /* elementary price per unit */
477 ULONG exp; /* decimal logarithm */
478 UBYTE ccm_puct[MAX_LEN+10]; /* current call meter using PUCT */
479 UBYTE acm_puct[MAX_LEN+10]; /* accumulated call meter using PUCT */
480 UBYTE ppu[MAX_LEN]; /* price per unit */
481 UBYTE cur[MAX_CURRENCY]; /* currency table */
482 ULONG sexp; /* sign of decimal logarithm */
483 UBYTE requested_type; /* requested type */
484 } T_MFW_CM_AOC_INFO; /* type definition for E_CM_AOC event. */
485 /***************************Go-lite Optimization changes end***********************/
486
487 typedef struct
488 {
489 UBYTE requested_type;
490 T_MFW_AOC_CNF_RES result;
491 } T_MFW_CM_AOC_CNF; /* type definition for E_CM_AOC_CONF event */
492
493 /***************************Go-lite Optimization changes Start***********************/
494 //Oct 04, 2004 REF: CRR 25519 Deepa M.D
495 //Structure elements (T_MFW_CM_REDIAL)are realigned to avoid the structure padding
496 typedef struct
497 {
498 #ifdef NO_ASCIIZ
499 T_MFW_PHB_TEXT name; /* alpha identfier */
500 #else
501 UBYTE name[MFW_TAG_LEN]; /* alpha identfier */
502 #endif
503 UBYTE number[MFW_NUM_LEN]; /* called number */
504 UBYTE subaddr[MFW_SUBADR_LEN]; /* subaddress */
505 SHORT call_id; /* call identify */
506 UBYTE ton; /* type of number */
507 UBYTE type;
508 UBYTE left_attempts; /* redialing left attempts */
509 UBYTE redial_mode; /* redial mode */
510 } T_MFW_CM_REDIAL; /* type definition for E_CM_REDIAL event. */
511 /***************************Go-lite Optimization changes end***********************/
512
513 /* Call status information */
514 typedef struct
515 {
516 SHORT call_number;
517 UBYTE stat; /* T_MFW_CM_CALL_STAT */
518 UBYTE number[MFW_NUM_LEN]; /* called number */
519 UBYTE ton; /* type of number */
520 T_MFW_CM_CALL_TYPE type; /* type of call */
521 #ifdef NO_ASCIIZ
522
523 T_MFW_PHB_TEXT name; /* alpha identfier */
524 #else
525 UBYTE name[MFW_TAG_LEN]; /* alpha identfier */
526 #endif
527 T_MFW_MTPY_MEMBER mtpy;
528 T_MFW_CM_CALL_DIR call_direction;
529 } T_MFW_CM_STATUS;
530
531 /* Notify message */
532 typedef struct
533 {
534 SHORT call_number;
535 T_MFW_CM_NOTIFY_CODES notification;
536 } T_MFW_CM_NOTIFY;
537
538 /***************************Go-lite Optimization changes Start***********************/
539 /* call progress information */
540 //Oct 04, 2004 REF: CRR 25519 Deepa M.D
541 //Structure elements (T_MFW_CM_CPI)are realigned to avoid the structure padding
542 typedef struct
543 {
544 T_MFW_CPI_TYPE type;
545 T_MFW_CPI_IBT inband;
546 T_MFW_CPI_TCH tch;
547 SHORT call_number;
548 USHORT cause; /* cq11676 Add the CPI cause element 17-02-04 MZ */
549 } T_MFW_CM_CPI;
550 /***************************Go-lite Optimization changes end***********************/
551
552 /* SPR#1352 - SH - TTY information */
553
554 /* This structure passes TTY status to the MMI */
555 typedef struct
556 {
557 UBYTE neg; /* Status of TTY request - possible values below*/
558 }
559 T_MFW_CM_CTYI;
560
561
562
563 /* Possible values from CTYI callback - indicates TTY status*/
564 enum
565 {
566 CTYI_NONE,
567 CTYI_REQUEST,
568 CTYI_REJECT,
569 CTYI_GRANT
570 };
571 /* end SH */
572
573 /*
574 * CM Parameter
575 */
576 typedef union
577 {
578 T_MFW_CM_DISCONNECT disconnect;
579 T_MFW_CM_DISCONNECT_ALL disconnect_all;
580 T_MFW_CM_CW_INFO cw_info;
581 T_MFW_CM_COMMAND command;
582 T_MFW_CM_AOC_INFO aoc_info;
583 T_MFW_CM_REDIAL rdl;
584 T_MFW_CM_NOTIFY notify;
585 T_MFW_CM_CPI cm_cpi;
586 SHORT call_id;
587 T_MFW_CM_AOC_CNF aoc_cnf;
588 UBYTE dtmf_tone;
589 // PATCH - add new parameter
590 T_MFW_CM_MO_INFO mo_data;
591 T_MFW_CM_CCBS_INFO ccbs; // Marcus: CCBS: 14/11/2002
592 // END PATCH
593 /*MC, SPR 1392, added call deflection status param*/
594 BOOL call_deflect_status;
595 /* SPR#1352 - SH - Add parameter for TTY */
596 T_MFW_CM_CTYI ctyi;
597 /* end SH*/
598 } T_MFW_CM_PARA;
599
600
601 EXTERN void cm_init (void);
602 EXTERN T_MFW_HND cm_create (T_MFW_HND hWin,
603 T_MFW_EVENT event,
604 T_MFW_CB cbfunc);
605 EXTERN T_MFW_RES cm_delete (T_MFW_HND h);
606 EXTERN T_MFW cm_check_emergency (UBYTE *number);
607 EXTERN T_MFW cm_mo_call (UBYTE *number,
608 T_MFW_CM_CALL_TYPE type);
609 EXTERN void cm_mt_reject (void);
610 EXTERN void cm_mt_accept (void);
611 EXTERN void cm_end_all (void);
612 EXTERN T_MFW cm_disconnect (SHORT call_number);
613 EXTERN T_MFW cm_command (SHORT call_number,
614 UBYTE command,
615 UBYTE crss_string);
616 EXTERN T_MFW cm_get_aoc_value (UBYTE request_type,
617 T_MFW_CM_AOC_INFO *aoc_info);
618 EXTERN T_MFW cm_set_aoc_value (UBYTE request_type,
619 T_MFW_CM_AOC_INFO *aoc_info,
620 UBYTE *pwd);
621 EXTERN void cm_set_bc_para (T_MFW_CM_BC_PARA * bc, UBYTE ti);
622 EXTERN void cm_set_redial (UBYTE redial_mode);
623 EXTERN void cm_redial (void);
624 EXTERN void cm_autoredial_start (void);
625 EXTERN void cm_redial_abort (void);
626 EXTERN UBYTE cm_redial_get_count (void);
627
628 EXTERN int cm_status (SHORT call_number,
629 T_MFW_CM_STATUS *status,
630 UBYTE num);
631 EXTERN void cm_exit (void);
632 EXTERN T_CM_CLI cm_mo_prefix (T_CM_CLI prefix);
633 EXTERN T_MFW cm_get_redial_mode (void);
634 EXTERN T_MFW cm_command_abort (UBYTE command);
635 /*MC, SPR 1392*/
636 T_MFW cm_deflect_incoming_call(char* number);
637 void cm_ok_CTFR(void);
638 void cm_error_CTFR(void);
639 /* Marcus: CCBS: 13/11/2002: Start */
640 EXTERN T_MFW cm_ccbs_delete_all(void);
641 EXTERN T_MFW cm_ccbs_delete(SHORT idx);
642 EXTERN T_MFW cm_ccbs_list(void);
643 EXTERN T_MFW cm_ccbs_accept_registration(void);
644 EXTERN T_MFW cm_ccbs_reject_registration(void);
645 EXTERN T_MFW cm_ccbs_accept_recall(UBYTE *number, T_MFW_CM_CALL_TYPE type);
646 EXTERN T_MFW cm_ccbs_reject_recall(void);
647 EXTERN void cm_ccbs_ok(void);
648 EXTERN void cm_ccbs_error(void);
649 /* Marcus: CCBS: 13/11/2002: End */
650
651 /* SPR#1985 - SH - TTY */
652 void cm_tty_enable(UBYTE enable);
653 void cm_tty_query(void);
654
655 // Feb 03, 200 REF: CRR 25960 x0012850
656 // Description: Call Hold: While one call in Active and other in Held by swapping either of phone is not audible
657 // Prototype for function cm_setSpeechMode()
658 EXTERN void cm_setSpeechMode(void);
659
660 EXTERN void cm_force_disconnect(void);
661 #endif