comparison src/ui3/mfw/mfw_cm.h @ 420:e8ddbb0837ed

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