1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 | Project : GSM-PS (6147)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 | Modul : AOC
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 | Copyright 2002 Texas Instruments Berlin, AG
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 | All rights reserved.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 | This file is confidential and a trade secret of Texas
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 | Instruments Berlin, AG
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 | The receipt of or possession of this file does not convey
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 | any rights to reproduce or disclose its contents or to
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 | manufacture, use, or sell anything it may describe, in
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 | whole, or in part, without the specific written consent of
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 | Texas Instruments Berlin, AG.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 | Purpose : Definitions for advice of charge
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 #ifndef AOC_H
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 #define AOC_H
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 * States of Module
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 #define AOC_NULL 0
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 #define AOC_DISABLE 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 #define AOC_ENABLE 2
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 * Info Causes
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 #define AOC_START_TIME 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 #define AOC_STOP_TIME 2
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 #define AOC_START_AOC 3
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 #define AOC_SUSPEND_AOC 4
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 #define AOC_RESUME_AOC 5
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 #define AOC_CALL_CONNECTED 6
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 * Request Types
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 #define AOC_CTV 0
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 #define AOC_CCM 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 #define AOC_ACM 2
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 #define AOC_ACMMAX 3
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 #define AOC_PUCT 4
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 #define AOC_CCM_PUCT 5
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 #define AOC_ACM_PUCT 6
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 #define AOC_ACMMAX_PUCT 7
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 #define AOC_PUCT_RAW 8
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 * Status of update operation
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 #define FIRST_UPDATE 0
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 #define SECOND_UPDATE 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 #define VERIFY_PWD 2
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 * maximum remaining call time in milliseconds
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 #define AOC_MAX_REMAIN_CALL_TIME 30000L
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 #define AOC_THOUSAND_MILLISECONDS 1000L
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 * indicates the processing mode for calculating remaining call time
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 #define AOC_AOC_TIMER_ELAPSED 0
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 #define AOC_CALL_TIMER_ELAPSED 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 * Structure for requesting PUCT Values
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 typedef struct
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 UBYTE currency [4];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 UBYTE value [20];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 } T_puct;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 typedef struct
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 UBYTE currency [4];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 ULONG eppu;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 ULONG exp;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 ULONG sexp;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 } T_puct_raw;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 * e_bitmap parameter
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 #define E1_CHANGED 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 #define E2_CHANGED 2
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 #define E3_CHANGED 4
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 #define E4_CHANGED 8
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 #define E7_CHANGED 64
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 typedef struct
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 USHORT e1; /* e1 parameter */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 USHORT e2; /* e2 parameter */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 USHORT e3; /* e3 parameter */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 USHORT e4; /* e4 parameter */ /* will be cleared after charged */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 USHORT e5; /* e5 parameter */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 USHORT e6; /* e6 parameter */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 USHORT e7; /* e7 parameter */ /* will be cleared when reached */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 UBYTE e_next_bitmap; /* validity of e-parameter */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 USHORT e1_next; /* e1 parameter in abeyance*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 USHORT e2_next; /* e2 parameter in abeyance*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 USHORT e3_next; /* e3 parameter in abeyance*/ /* See AOC08226 !!! */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 USHORT e7_next; /* e7 parameter in abeyance*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 ULONG first_unit; /* ccm increment first unit*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 ULONG next_unit; /* ccm increment next unit */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 T_TIME first_interval; /* time first interval */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 T_TIME next_interval; /* time next interval */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 T_TIME remaining_time; /* remaining time for timer*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 UBYTE aoc_timer_running;/* timer is running ? */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 UBYTE new_data_avail; /* E-Parameter have changed*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 T_TIME time_ut_charge; /* time in sec until next */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 /* charging occur */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 UBYTE aoci_active; /* indicate charge only */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 } T_CC_AOC_TBL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 EXTERN UBYTE aoc_init (UBYTE phase, UBYTE *sim_service_table);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 EXTERN void aoc_reset (void);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 EXTERN void aoc_sms (void);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 EXTERN UBYTE aoc_info (SHORT Cid, UBYTE cause);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 EXTERN void aoc_get_values (UBYTE value_type, void * value);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 EXTERN T_ACI_RETURN aoc_set_values (T_ACI_CMD_SRC srcId,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 UBYTE value_type,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 void * value,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 UBYTE * password);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 EXTERN UBYTE aoc_check_moc (void);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 EXTERN void aoc_parameter (SHORT Cid,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 T_FWD_CHG_ADVICE_INV * aoc_para);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141 EXTERN void aoc_send_ccm (void);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 EXTERN UBYTE aoc_ssc (UBYTE nr, UBYTE * serv_table);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 EXTERN void aoc_read_acm_cb (SHORT table_id);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 EXTERN void aoc_read_acmmax_cb (SHORT table_id);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 EXTERN void aoc_read_puct_cb (SHORT table_id);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 EXTERN void aoc_init_calltable (void);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 EXTERN UBYTE aoc_timeout (USHORT handle);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 EXTERN void aoc_timeout_call_timer (void);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 EXTERN void aoc_timeout_aoc_timer (SHORT Cid);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 EXTERN UBYTE aoc_non_zero_cai (SHORT Cid);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 EXTERN UBYTE aoc_check_acm (void);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 EXTERN void aoc_calculate_charging_parameter (SHORT Cid);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153 EXTERN void aoc_increment_initial_charge (SHORT Cid);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 EXTERN void aoc_increment_charge (ULONG increment, UBYTE ever);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 EXTERN void aoc_increment_cb (SHORT table_id);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 EXTERN void aoc_calculate_puct (ULONG value, T_puct * result);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157 EXTERN void aoc_update_sim_datafield ( UBYTE operation,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 UBYTE accType,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 USHORT reqDataFld,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 void (*rplyCB)(SHORT));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 EXTERN void aoc_update_puct (UBYTE operation, T_puct * value);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 EXTERN void aoc_update_acm_cb (SHORT table_id);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 EXTERN void aoc_update_acmmax_cb (SHORT table_id);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164 EXTERN void aoc_update_puct_cb (SHORT table_id);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165 EXTERN UBYTE aoc_set_puct_values (T_puct * puct);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 EXTERN USHORT aoc_getEVal ( void * eBuf );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167 #endif
|