FreeCalypso > hg > fc-selenite
annotate src/g23m-gsm/cc/cc_rel.c @ 213:f2a59f3c4f8f
targets/*.h: sync with FC Tourmaline
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Mon, 31 Oct 2022 00:54:52 +0000 | 
| parents | d393cd9bb723 | 
| children | 
| rev | line source | 
|---|---|
| 
1
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
2 +----------------------------------------------------------------------------- | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
3 | Project : GSM-PS (6147) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
4 | Modul : CC_REL | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
5 +----------------------------------------------------------------------------- | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
6 | Copyright 2002 Texas Instruments Berlin, AG | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
7 | All rights reserved. | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
8 | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
9 | This file is confidential and a trade secret of Texas | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
10 | Instruments Berlin, AG | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
11 | The receipt of or possession of this file does not convey | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
12 | any rights to reproduce or disclose its contents or to | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
13 | manufacture, use, or sell anything it may describe, in | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
14 | whole, or in part, without the specific written consent of | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
15 | Texas Instruments Berlin, AG. | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
16 +----------------------------------------------------------------------------- | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
17 | Purpose : This Modul defines the functions for call release | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
18 | of the component CC of the mobile station. | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
19 +----------------------------------------------------------------------------- | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
20 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
21 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
22 #ifndef CC_REL_C | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
23 #define CC_REL_C | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
24 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
25 #define ENTITY_CC | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
26 /*==== INCLUDES ===================================================*/ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
27 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
28 #include <string.h> | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
29 #include "typedefs.h" | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
30 #include "pcm.h" | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
31 #include "vsi.h" | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
32 #include "custom.h" | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
33 #include "gsm.h" | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
34 #include "message.h" | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
35 #include "ccdapi.h" | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
36 #include "prim.h" | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
37 #include "cnf_cc.h" | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
38 #include "mon_cc.h" | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
39 #include "pei.h" | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
40 #include "tok.h" | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
41 #include "cc.h" | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
42 #include "cc_em.h" | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
43 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
44 /*==== EXPORT =====================================================*/ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
45 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
46 /*==== PROTOTYPES =================================================*/ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
47 /* Implements Measure# 8 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
48 LOCAL void cc_mncc_release_ind (T_PRIM * prim); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
49 /* Implements Measure# 9 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
50 LOCAL void cc_mncc_release_cnf (T_PRIM * prim); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
51 /* Implements Measure# 41 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
52 LOCAL void cc_mncc_sync_ind ( UBYTE ti, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
53 UBYTE new_state); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
54 /*==== PRIVAT =====================================================*/ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
55 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
56 /*==== VARIABLES ==================================================*/ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
57 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
58 /*==== FUNCTIONS ==================================================*/ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
59 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
60 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
61 +--------------------------------------------------------------------+ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
62 | PROJECT : GSM-PS (6147) MODULE : CC_REL | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
63 | STATE : code ROUTINE : cc_check_setup_reattempt | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
64 +--------------------------------------------------------------------+ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
65 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
66 PURPOSE : This function checks whether a the mobile originated setup | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
67 may be reattempted. This will be done for some certain | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
68 reasons which may indicate network failure. | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
69 This function is considered as a hack only | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
70 for networks which tend to deliver a poor quality | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
71 of service only (e.g. typically in China). | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
72 This behaviour or the algorithm is not specified / implied | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
73 by GSM but driven by customer requests and the desire | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
74 to have a good, working product. | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
75 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
76 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
77 LOCAL void cc_check_setup_reattempt ( const T_M_CC_cc_cause *cc_cause) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
78 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
79 GET_INSTANCE_DATA; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
80 EXTERN BOOL poor_quality_network; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
81 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
82 TRACE_FUNCTION ("cc_check_setup_reattempt()"); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
83 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
84 #ifdef WIN32 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
85 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
86 * Set poor_quality_network for test, pei_config() is the appropriate place, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
87 * but this seems not to be working for some strange reasons | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
88 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
89 poor_quality_network = TRUE; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
90 #endif | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
91 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
92 /* reattempt already "running", see cc_setup_reattempt for further reasoning */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
93 if (cc_data->setup_reattempt_ti NEQ NOT_PRESENT_8BIT) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
94 return; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
95 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
96 switch (cc_data->state[cc_data->index_ti]) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
97 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
98 case M_CC_CS_1: /* call initiated */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
99 case M_CC_CS_3: /* mobile originating call proceeding */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
100 cc_data->setup_attempts++; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
101 if (poor_quality_network AND | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
102 (cc_data->setup_attempts < MAX_SETUP_ATTEMPTS) AND | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
103 (cc_cause->v_cause)) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
104 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
105 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
106 * Mobile originated call got disconnect, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
107 * max. number of setup attempts not reached. | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
108 * New dial attempt for certain disconnect reasons | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
109 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
110 switch (cc_cause->cause) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
111 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
112 case M_CC_CAUSE_NO_CHAN_AVAIL: /* #34 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
113 case M_CC_CAUSE_NETWORK_ORDER: /* #38 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
114 case M_CC_CAUSE_TEMP_FAIL: /* #41 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
115 case M_CC_CAUSE_SWITCH_CONGEST: /* #42 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
116 case M_CC_CAUSE_INFO_DISCARD: /* #43 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
117 case M_CC_CAUSE_REQ_CHAN_UNAVAIL: /* #44 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
118 case M_CC_CAUSE_RESOURCE_UNAVAIL: /* #47 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
119 case M_CC_CAUSE_QOS_UNAVAIL: /* #49 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
120 case M_CC_CAUSE_BEARER_CAP_UNAVAIL: /* #58 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
121 case M_CC_CAUSE_TIMER: /* #102 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
122 case M_CC_CAUSE_INTERWORKING: /* #127 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
123 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
124 * Maybe some more causes to added here | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
125 * which indicate network failure | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
126 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
127 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
128 /* try setup reattempt, remember this by setting setup_reattempt_ti */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
129 cc_data->setup_reattempt_ti = cc_data->ti; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
130 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
131 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
132 default: /* Don't try setup reattempt, no appropriate cause */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
133 srv_free_stored_setup (); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
134 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
135 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
136 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
137 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
138 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
139 default: /* Don't try setup reattempt in other states */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
140 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
141 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
142 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
143 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
144 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
145 +--------------------------------------------------------------------+ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
146 | PROJECT : GSM-PS (6147) MODULE : CC_REL | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
147 | STATE : code ROUTINE : cc_setup_reattempt | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
148 +--------------------------------------------------------------------+ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
149 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
150 PURPOSE : This function reattempts the mobile originated setup | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
151 for some certain reasons which may indicate network | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
152 failure. This function is considered as a hack only | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
153 for networks which tend to deliver a poor quality | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
154 of service only. | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
155 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
156 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
157 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
158 LOCAL void cc_setup_reattempt (void) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
159 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
160 GET_INSTANCE_DATA; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
161 TRACE_FUNCTION ("cc_setup_reattempt()"); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
162 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
163 if (cc_data->ti EQ cc_data->setup_reattempt_ti) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
164 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
165 PALLOC (est, MMCM_ESTABLISH_REQ); /* T_MMCM_ESTABLISH_REQ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
166 est->ti = cc_data->ti; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
167 est->estcs = cc_data->estcs; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
168 for_est_req (est); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
169 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
170 cc_data->setup_reattempt_ti = NOT_PRESENT_8BIT; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
171 cc_data->progress_desc[cc_data->index_ti] = NOT_PRESENT_8BIT; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
172 cc_set_state (M_CC_CS_01); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
173 TIMERSTART (T303, T303_VALUE); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
174 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
175 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
176 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
177 /*==== VARIABLES ==================================================*/ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
178 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
179 /*==== FUNCTIONS ==================================================*/ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
180 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
181 +--------------------------------------------------------------------+ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
182 | PROJECT : GSM-PS (6147) MODULE : CC_REL | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
183 | STATE : code ROUTINE : cc_mncc_disconnect_req | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
184 +--------------------------------------------------------------------+ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
185 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
186 PURPOSE : Disconnection of call by the mobile side. | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
187 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
188 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
189 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
190 GLOBAL void cc_mncc_disconnect_req (T_MNCC_DISCONNECT_REQ * disc) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
191 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
192 GET_INSTANCE_DATA; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
193 TRACE_FUNCTION ("cc_mncc_disconnect_req()"); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
194 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
195 if ((cc_data->index_ti = srv_convert_ti (disc->ti)) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
196 EQ NOT_PRESENT_8BIT) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
197 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
198 PFREE (disc); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
199 return; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
200 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
201 if (cc_data->ti EQ cc_data->setup_reattempt_ti) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
202 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
203 srv_free_stored_setup (); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
204 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
205 switch (cc_data->state[cc_data->index_ti]) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
206 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
207 case M_CC_CS_03: /* WAIT FOR NW. INFO */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
208 case M_CC_CS_05: /* CC ESTABLISHMENT CONFIRMED */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
209 case M_CC_CS_06: /* RECALL PRESENT */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
210 /* Forget stored CCBS setup */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
211 if (cc_data->stored_ccbs_setup NEQ NULL) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
212 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
213 PFREE (cc_data->stored_ccbs_setup); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
214 cc_data->stored_ccbs_setup = NULL; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
215 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
216 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
217 /* Send a (faked) MNCC_RELEASE_IND to MMI */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
218 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
219 PALLOC (rel, MNCC_RELEASE_IND); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
220 rel->ti = disc->ti; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
221 rel->cause = disc->cause; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
222 rel->c_raw_cause = 0; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
223 PSENDX (MMI, rel); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
224 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
225 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
226 /* Send RELEASE COMPLETE to network */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
227 CCD_START; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
228 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
229 MCAST (rel_com, U_RELEASE_COMP); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
230 cc_build_release_complete (rel_com, disc->cause); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
231 for_release_complete (rel_com); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
232 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
233 CCD_END; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
234 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
235 /* Release MM connection */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
236 for_rel_req (); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
237 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
238 PFREE (disc); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
239 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
240 /* Stop all running timers */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
241 TIMERSTOP (TIMER_CC); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
242 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
243 /* Next state is NULL */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
244 cc_set_state (M_CC_CS_0); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
245 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
246 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
247 case M_CC_CS_01: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
248 case CS_101: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
249 case CS_261: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
250 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
251 TIMERSTOP (TIMER_CC); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
252 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
253 cc_reset_dtmf (); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
254 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
255 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
256 PALLOC (rel, MNCC_RELEASE_IND); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
257 rel->ti = disc->ti; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
258 rel->cause = disc->cause; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
259 rel->c_raw_cause = 0; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
260 PSENDX (MMI, rel); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
261 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
262 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
263 for_rel_req (); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
264 cc_set_state (M_CC_CS_0); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
265 srv_use_stored_prim (); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
266 PFREE (disc); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
267 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
268 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
269 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
270 case M_CC_CS_1: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
271 case M_CC_CS_3: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
272 case M_CC_CS_4: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
273 case M_CC_CS_7: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
274 case M_CC_CS_8: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
275 case M_CC_CS_9: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
276 case M_CC_CS_10: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
277 case M_CC_CS_26: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
278 TIMERSTOP (TIMER_CC); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
279 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
280 CCD_START; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
281 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
282 MCAST (disconnect, U_DISCONNECT); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
283 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
284 cc_build_disconnect (disconnect, disc->cause, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
285 &disc->fac_inf, disc->ss_version); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
286 cc_set_state (M_CC_CS_11); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
287 for_disconnect (disconnect); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
288 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
289 CCD_END; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
290 TIMERSTART (T305, T305_VALUE); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
291 PFREE (disc); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
292 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
293 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
294 case M_CC_CS_12: /* DISCONNECT INDICATION, this is clear collision here */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
295 CCD_START; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
296 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
297 MCAST (release, U_RELEASE); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
298 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
299 cc_build_release (release, disc->cause, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
300 NULL, MNCC_SS_VER_NOT_PRES); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
301 cc_set_state (M_CC_CS_19); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
302 for_release (release); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
303 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
304 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
305 CCD_END; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
306 TIMERSTART (T308, T308_VALUE); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
307 PFREE (disc); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
308 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
309 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
310 default: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
311 PFREE (disc); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
312 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
313 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
314 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
315 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
316 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
317 +--------------------------------------------------------------------+ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
318 | PROJECT : GSM-PS (6147) MODULE : CC_REL | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
319 | STATE : code ROUTINE : cc_mncc_reject_req | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
320 +--------------------------------------------------------------------+ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
321 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
322 PURPOSE : Release of call by the mobile side by sending | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
323 a RELEASE COMPLETE message. | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
324 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
325 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
326 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
327 GLOBAL void cc_mncc_reject_req (T_MNCC_REJECT_REQ * rej) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
328 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
329 GET_INSTANCE_DATA; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
330 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
331 TRACE_FUNCTION ("cc_mncc_reject_req"); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
332 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
333 if ((cc_data->index_ti = srv_convert_ti (rej->ti)) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
334 EQ NOT_PRESENT_8BIT) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
335 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
336 PFREE (rej); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
337 return; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
338 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
339 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
340 if (cc_data->ti EQ cc_data->setup_reattempt_ti) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
341 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
342 srv_free_stored_setup (); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
343 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
344 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
345 switch (cc_data->state[cc_data->index_ti]) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
346 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
347 case M_CC_CS_03: /* WAIT FOR NW. INFO */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
348 case M_CC_CS_05: /* CC ESTABLISHMENT CONFIRMED */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
349 case M_CC_CS_06: /* RECALL PRESENT */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
350 /* Forget stored CCBS setup */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
351 if (cc_data->stored_ccbs_setup NEQ NULL) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
352 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
353 PFREE (cc_data->stored_ccbs_setup); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
354 cc_data->stored_ccbs_setup = NULL; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
355 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
356 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
357 /* Send RELEASE COMPLETE */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
358 CCD_START; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
359 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
360 MCAST (rel_com, U_RELEASE_COMP); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
361 cc_build_release_complete (rel_com, rej->cause); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
362 for_release_complete (rel_com); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
363 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
364 CCD_END; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
365 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
366 /* Release MM connection */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
367 for_rel_req (); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
368 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
369 PFREE (rej); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
370 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
371 /* Stop all running timers */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
372 TIMERSTOP (TIMER_CC); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
373 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
374 /* Next state is NULL */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
375 cc_set_state (M_CC_CS_0); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
376 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
377 default: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
378 PFREE (rej); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
379 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
380 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
381 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
382 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
383 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
384 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
385 +--------------------------------------------------------------------+ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
386 | PROJECT : GSM-PS (6147) MODULE : CC_REL | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
387 | STATE : code ROUTINE : cc_mncc_release_req | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
388 +--------------------------------------------------------------------+ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
389 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
390 PURPOSE : Release of call by the mobile side. | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
391 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
392 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
393 GLOBAL void cc_mncc_release_req (T_MNCC_RELEASE_REQ * rel) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
394 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
395 GET_INSTANCE_DATA; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
396 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
397 TRACE_FUNCTION ("cc_mncc_release_req()"); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
398 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
399 if ((cc_data->index_ti = srv_convert_ti (rel->ti)) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
400 EQ NOT_PRESENT_8BIT) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
401 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
402 PFREE (rel); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
403 return; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
404 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
405 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
406 if (cc_data->ti EQ cc_data->setup_reattempt_ti) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
407 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
408 srv_free_stored_setup (); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
409 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
410 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
411 switch (cc_data->state[cc_data->index_ti]) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
412 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
413 case M_CC_CS_12: /* DISCONNECT INDICATION */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
414 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
415 CCD_START; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
416 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
417 MCAST (release, U_RELEASE); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
418 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
419 cc_build_release (release, rel->cause, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
420 &rel->fac_inf, rel->ss_version); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
421 cc_set_state (M_CC_CS_19); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
422 for_release (release); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
423 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
424 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
425 CCD_END; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
426 TIMERSTART (T308, T308_VALUE); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
427 PFREE (rel); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
428 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
429 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
430 default: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
431 PFREE (rel); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
432 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
433 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
434 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
435 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
436 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
437 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
438 +--------------------------------------------------------------------+ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
439 | PROJECT : GSM-PS (6147) MODULE : CC_REL | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
440 | STATE : code ROUTINE : cc_disconnect | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
441 +--------------------------------------------------------------------+ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
442 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
443 PURPOSE : Processing an incoming disconnect message. | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
444 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
445 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
446 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
447 GLOBAL void cc_disconnect (T_D_DISCONNECT * disconnect) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
448 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
449 GET_INSTANCE_DATA; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
450 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
451 TRACE_FUNCTION ("cc_disconnect()"); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
452 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
453 /* The cause is in DISCONNECT a mandatory IE (given intact message) */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
454 TRACE_EVENT_P1 ("DISCONNECT cause: %02x", disconnect->cc_cause.cause); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
455 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
456 EM_CC_DISCONNECT_RECEIVED; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
457 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
458 switch (cc_data->state[cc_data->index_ti]) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
459 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
460 case M_CC_CS_11: /* DISCONNECT REQUEST, this is clear collision here */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
461 CCD_END; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
462 CCD_START; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
463 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
464 MCAST (release, U_RELEASE); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
465 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
466 TIMERSTOP (TIMER_CC); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
467 /* PATCH LE 10.04.00 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
468 * set disconnect collision flag | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
469 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
470 cc_data->disc_coll [cc_data->index_ti] = TRUE; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
471 /* END PATCH LE 10.04.00 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
472 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
473 switch (cc_data->error) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
474 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
475 case M_CC_CAUSE_INVALID_MAND_INFO: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
476 case M_CC_CAUSE_COND_INFO_ELEM: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
477 cc_build_release (release, CAUSE_MAKE(DEFBY_STD, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
478 ORIGSIDE_MS, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
479 MNCC_CC_ORIGINATING_ENTITY, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
480 cc_data->error), | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
481 NULL, MNCC_SS_VER_NOT_PRES); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
482 cc_set_state (M_CC_CS_19); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
483 for_release (release); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
484 TIMERSTART (T308, T308_VALUE); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
485 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
486 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
487 default: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
488 if (disconnect->v_progress) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
489 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
490 cc_data->progress_desc[cc_data->index_ti] = | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
491 disconnect->progress.progress_desc; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
492 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
493 cc_build_release (release, CAUSE_MAKE(DEFBY_CONDAT, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
494 ORIGSIDE_MS, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
495 MNCC_CC_ORIGINATING_ENTITY, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
496 NOT_PRESENT_8BIT), | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
497 NULL, MNCC_SS_VER_NOT_PRES); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
498 cc_set_state (M_CC_CS_19); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
499 for_release (release); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
500 TIMERSTART (T308, T308_VALUE); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
501 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
502 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
503 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
504 CCD_END; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
505 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
506 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
507 case M_CC_CS_12: /* DISCONNECT INDICATION */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
508 case M_CC_CS_19: /* RELEASE REQUEST */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
509 /* NULL (M_CC_CS_0) is handled by the formatter */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
510 CCD_END; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
511 /* Implements Measure# 3 and streamline encoding */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
512 cc_send_status (M_CC_CAUSE_MESSAGE_TYPE_INCOMPAT); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
513 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
514 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
515 default: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
516 /* any "normal" state */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
517 TIMERSTOP (TIMER_CC); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
518 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
519 switch (cc_data->error) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
520 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
521 case M_CC_CAUSE_INVALID_MAND_INFO: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
522 case M_CC_CAUSE_COND_INFO_ELEM: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
523 CCD_END; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
524 CCD_START; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
525 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
526 USHORT curr_cause; /* local variable to avoid repeated CAUSE_MAKEs for the same cause */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
527 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
528 MCAST (release, U_RELEASE); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
529 PALLOC (disc_ind, MNCC_DISCONNECT_IND); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
530 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
531 disc_ind->ti = cc_data->ti; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
532 curr_cause = CAUSE_MAKE(DEFBY_STD, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
533 ORIGSIDE_MS, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
534 MNCC_CC_ORIGINATING_ENTITY, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
535 cc_data->error); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
536 disc_ind->cause = curr_cause; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
537 /* Setting raw_cause to empty as this is a local release | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
538 * of MM connection,CC is not receiving any cause value | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
539 * from Network | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
540 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
541 disc_ind->c_raw_cause = 0; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
542 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
543 disc_ind->diagnostic = NOT_PRESENT_8BIT; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
544 disc_ind->progress_desc = MNCC_PROG_NOT_PRES; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
545 /* CQ 23619: get the ss diagnostic >> */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
546 disc_ind->ss_diag = MNCC_SS_DIAG_NOT_PROVIDED; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
547 /* CQ 23619 << */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
548 PSENDX (MMI, disc_ind); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
549 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
550 /* Patch HM 29-Jan-02 >>> */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
551 cc_build_facility_ind (MNCC_FAC_IN_DISCONNECT, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
552 disconnect->v_facility, &disconnect->facility); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
553 /* Patch HM 29-Jan-02 <<< */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
554 cc_build_release (release, cc_data->error, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
555 NULL, MNCC_SS_VER_NOT_PRES); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
556 cc_set_state (M_CC_CS_19); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
557 for_release (release); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
558 TIMERSTART (T308, T308_VALUE); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
559 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
560 CCD_END; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
561 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
562 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
563 default: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
564 if (disconnect->v_progress) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
565 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
566 cc_data->progress_desc[cc_data->index_ti] = | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
567 disconnect->progress.progress_desc; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
568 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
569 cc_check_setup_reattempt (&disconnect->cc_cause); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
570 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
571 if (cc_data->ti NEQ cc_data->setup_reattempt_ti) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
572 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
573 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
574 * We don't perform setup reattempt, so send disconnect to MMI | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
575 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
576 USHORT curr_cause; /* local variable to avoid repeated CAUSE_MAKEs for the same cause */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
577 PALLOC (disc_ind, MNCC_DISCONNECT_IND); /* T_MNCC_DISCONNECT_IND */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
578 disc_ind->ti = cc_data->ti; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
579 disc_ind->cause = curr_cause = CAUSE_MAKE(DEFBY_STD, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
580 ORIGSIDE_NET, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
581 MNCC_CC_ORIGINATING_ENTITY, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
582 disconnect->cc_cause.cause); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
583 disc_ind->c_raw_cause = cc_build_cause (&disconnect->cc_cause, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
584 disc_ind->raw_cause); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
585 disc_ind->diagnostic = NOT_PRESENT_8BIT; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
586 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
587 if (disconnect->v_progress) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
588 disc_ind->progress_desc = disconnect->progress.progress_desc; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
589 else | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
590 disc_ind->progress_desc = MNCC_PROG_NOT_PRES; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
591 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
592 /* Handle CCBS possible flag */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
593 if ((cc_data->call_ctrl_cap.pcp NEQ 0) AND | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
594 (disconnect->v_allowed_actions NEQ 0) AND | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
595 (disconnect->allowed_actions.ccbs_act EQ M_CC_CCBS_YES)) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
596 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
597 /* CCBS indicated as possible by the network */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
598 disc_ind->diagnostic = MNCC_DIAG_CCBS_POSSIBLE; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
599 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
600 /* CQ 23619: get the ss diagnostic */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
601 disc_ind->ss_diag = cc_get_ss_diag(curr_cause, disconnect); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
602 /* CQ 23619 << */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
603 PSENDX (MMI, disc_ind); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
604 /* Patch HM 29-Jan-02 >>> */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
605 cc_build_facility_ind (MNCC_FAC_IN_DISCONNECT, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
606 disconnect->v_facility, &disconnect->facility); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
607 /* Patch HM 29-Jan-02 <<< */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
608 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
609 if ((cc_data->ti NEQ cc_data->setup_reattempt_ti) AND | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
610 (((disconnect->v_progress AND | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
611 (disconnect->progress.progress_desc EQ M_CC_PROG_INBAND_AVAIL) AND | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
612 (cc_data->channel_mode != NAS_CHM_SIG_ONLY))) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
613 OR | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
614 ((cc_data->call_ctrl_cap.pcp NEQ 0) AND | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
615 (disconnect->v_allowed_actions NEQ 0) AND | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
616 (disconnect->allowed_actions.ccbs_act EQ M_CC_CCBS_YES)))) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
617 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
618 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
619 * Hook on tone is generated by the | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
620 * infrastructure and signalled via TCH OR CCBS is possible | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
621 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
622 CCD_END; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
623 cc_set_state (M_CC_CS_12); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
624 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
625 else | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
626 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
627 CCD_END; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
628 CCD_START; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
629 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
630 MCAST (release, U_RELEASE); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
631 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
632 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
633 * Hook on tone is generated internally by the mobile station | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
634 * and no CCBS possible, the connection is released | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
635 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
636 cc_build_release (release, CAUSE_MAKE(DEFBY_CONDAT, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
637 ORIGSIDE_MS, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
638 MNCC_CC_ORIGINATING_ENTITY, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
639 NOT_PRESENT_8BIT), | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
640 NULL, MNCC_SS_VER_NOT_PRES); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
641 cc_set_state (M_CC_CS_19); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
642 for_release (release); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
643 TIMERSTART (T308, T308_VALUE); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
644 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
645 CCD_END; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
646 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
647 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
648 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
649 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
650 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
651 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
652 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
653 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
654 +--------------------------------------------------------------------+ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
655 | PROJECT : GSM-PS (6147) MODULE : CC_REL | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
656 | STATE : code ROUTINE : cc_release | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
657 +--------------------------------------------------------------------+ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
658 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
659 PURPOSE : Processing an incoming release message. | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
660 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
661 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
662 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
663 GLOBAL void cc_release (T_D_RELEASE * release) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
664 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
665 GET_INSTANCE_DATA; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
666 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
667 TRACE_FUNCTION ("cc_release()"); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
668 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
669 if (release->cc_cause.v_cause) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
670 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
671 /* The cause is in RELEASE an optional IE */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
672 TRACE_EVENT_P1 ("RELEASE cause: %02x", release->cc_cause.cause); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
673 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
674 else | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
675 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
676 TRACE_EVENT ("RELEASE cause: --"); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
677 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
678 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
679 switch (cc_data->state[cc_data->index_ti]) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
680 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
681 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
682 * M_CC_CS_0 is handled by the formatter | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
683 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
684 case M_CC_CS_19: /* Release Request */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
685 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
686 cc_reset_dtmf (); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
687 /* PATCH LE 10.04.00 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
688 * in disconnect collision case send | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
689 * MNCC_RELEASE_IND instead of MNCC_RELEASE_CNF | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
690 .... */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
691 TIMERSTOP (TIMER_CC); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
692 if (cc_data->disc_coll [cc_data->index_ti]) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
693 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
694 /* Implements Measure# 8 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
695 cc_mncc_release_ind ((T_PRIM *)D2P(release)); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
696 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
697 else | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
698 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
699 /* Implements Measure# 9 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
700 cc_mncc_release_cnf ((T_PRIM *)D2P(release)); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
701 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
702 // END PATCH LE 10.04.00 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
703 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
704 for_rel_req (); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
705 cc_set_state (M_CC_CS_0); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
706 /* END PATCH LE 10.04.00 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
707 CCD_END; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
708 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
709 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
710 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
711 case M_CC_CS_1: /* call initiated */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
712 case M_CC_CS_3: /* mobile originating call proceeding */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
713 cc_check_setup_reattempt (&release->cc_cause); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
714 /*FALLTHROUGH*/ /*lint -fallthrough*/ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
715 default: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
716 cc_reset_dtmf (); /* China change HM 11.07.00 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
717 CCD_END; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
718 CCD_START; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
719 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
720 MCAST (rel_com, U_RELEASE_COMP); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
721 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
722 TIMERSTOP (TIMER_CC); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
723 switch (cc_data->error) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
724 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
725 case M_CC_CAUSE_INVALID_MAND_INFO: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
726 case M_CC_CAUSE_COND_INFO_ELEM: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
727 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
728 USHORT curr_cause; /* local variable to avoid repeated CAUSE_MAKEs for the same cause */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
729 curr_cause = CAUSE_MAKE(DEFBY_STD, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
730 ORIGSIDE_MS, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
731 MNCC_CC_ORIGINATING_ENTITY, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
732 cc_data->error); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
733 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
734 if (cc_data->ti NEQ cc_data->setup_reattempt_ti) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
735 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
736 PALLOC (rel_ind, MNCC_RELEASE_IND); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
737 rel_ind->ti = cc_data->ti; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
738 rel_ind->cause = curr_cause; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
739 rel_ind->c_raw_cause = 0; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
740 PSENDX (MMI, rel_ind); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
741 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
742 cc_build_release_complete (rel_com, curr_cause); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
743 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
744 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
745 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
746 default: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
747 if (cc_data->ti NEQ cc_data->setup_reattempt_ti) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
748 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
749 /* Implements Measure# 8 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
750 cc_mncc_release_ind ((T_PRIM *)D2P(release)); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
751 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
752 cc_build_release_complete (rel_com, CAUSE_MAKE(DEFBY_CONDAT, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
753 ORIGSIDE_MS, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
754 MNCC_CC_ORIGINATING_ENTITY, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
755 NOT_PRESENT_8BIT)); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
756 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
757 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
758 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
759 for_release_complete (rel_com); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
760 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
761 CCD_END; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
762 for_rel_req (); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
763 cc_set_state (M_CC_CS_0); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
764 cc_setup_reattempt (); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
765 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
766 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
767 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
768 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
769 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
770 +--------------------------------------------------------------------+ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
771 | PROJECT : GSM-PS (6147) MODULE : CC_REL | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
772 | STATE : code ROUTINE : cc_release_complete | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
773 +--------------------------------------------------------------------+ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
774 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
775 PURPOSE : Processing an incoming release complete message. | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
776 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
777 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
778 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
779 GLOBAL void cc_release_complete (T_D_RELEASE_COMP * rel_com) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
780 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
781 GET_INSTANCE_DATA; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
782 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
783 TRACE_FUNCTION ("cc_release_complete()"); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
784 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
785 if (rel_com->cc_cause.v_cause) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
786 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
787 /* The cause is in RELEASE COMPLETE an optional IE */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
788 TRACE_EVENT_P1 ("RELEASE COMPLETE cause: %02x", rel_com->cc_cause.cause); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
789 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
790 else | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
791 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
792 TRACE_EVENT ("RELEASE COMPLETE cause: --"); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
793 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
794 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
795 EM_CC_RELEASE_COMPLETE_RECEIVED; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
796 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
797 switch (cc_data->state[cc_data->index_ti]) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
798 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
799 case M_CC_CS_0: /* NULL */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
800 CCD_END; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
801 for_rel_req (); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
802 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
803 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
804 case M_CC_CS_03: /* WAIT FOR NETWORK INFO*/ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
805 /* Stop all running CC timers */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
806 TIMERSTOP (TIMER_CC); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
807 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
808 /* Inform MMI */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
809 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
810 PALLOC (release, MNCC_RELEASE_IND); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
811 release->ti = cc_data->ti; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
812 if (rel_com->v_cc_cause AND rel_com->cc_cause.v_cause) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
813 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
814 release->cause = CAUSE_MAKE(DEFBY_STD, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
815 ORIGSIDE_NET, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
816 MNCC_CC_ORIGINATING_ENTITY, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
817 rel_com->cc_cause.cause); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
818 release->c_raw_cause = cc_build_cause (&rel_com->cc_cause, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
819 release->raw_cause); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
820 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
821 else | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
822 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
823 release->cause = CAUSE_MAKE(DEFBY_CONDAT, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
824 ORIGSIDE_NET, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
825 MNCC_CC_ORIGINATING_ENTITY, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
826 NOT_PRESENT_8BIT); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
827 release->c_raw_cause = 0; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
828 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
829 PSENDX (MMI, release); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
830 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
831 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
832 CCD_END; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
833 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
834 /* Release MM connection */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
835 for_rel_req (); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
836 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
837 /* Next state is NULL */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
838 cc_set_state (M_CC_CS_0); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
839 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
840 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
841 case M_CC_CS_05: /* CC ESTABLISHMENT CONFIRMED */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
842 case M_CC_CS_06: /* RECALL PRESENT */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
843 /* Forget stored CCBS setup */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
844 PFREE (cc_data->stored_ccbs_setup); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
845 cc_data->stored_ccbs_setup = NULL; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
846 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
847 /* Stop all running CC timers */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
848 TIMERSTOP (TIMER_CC); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
849 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
850 /* Inform MMI */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
851 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
852 PALLOC (release, MNCC_RELEASE_IND); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
853 release->ti = cc_data->ti; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
854 if (rel_com->v_cc_cause AND rel_com->cc_cause.v_cause) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
855 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
856 release->cause = CAUSE_MAKE(DEFBY_STD, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
857 ORIGSIDE_NET, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
858 MNCC_CC_ORIGINATING_ENTITY, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
859 rel_com->cc_cause.cause); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
860 release->c_raw_cause = cc_build_cause (&rel_com->cc_cause, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
861 release->raw_cause); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
862 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
863 else | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
864 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
865 release->cause = CAUSE_MAKE(DEFBY_CONDAT, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
866 ORIGSIDE_NET, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
867 MNCC_CC_ORIGINATING_ENTITY, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
868 NOT_PRESENT_8BIT); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
869 release->c_raw_cause = 0; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
870 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
871 PSENDX (MMI, release); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
872 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
873 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
874 CCD_END; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
875 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
876 /* Release MM connection */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
877 for_rel_req (); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
878 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
879 /* Next state is NULL */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
880 cc_set_state (M_CC_CS_0); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
881 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
882 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
883 case M_CC_CS_19: /* RELEASE REQUEST */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
884 cc_reset_dtmf (); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
885 /* PATCH LE 10.04.00 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
886 * in disconnect collision case send | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
887 * MNCC_RELEASE_IND instead of MNCC_RELEASE_CNF | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
888 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
889 TIMERSTOP (TIMER_CC); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
890 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
891 if (cc_data->ti NEQ cc_data->setup_reattempt_ti) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
892 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
893 /* Inform MMI only if no setup reattempt for this ti */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
894 if (cc_data->disc_coll [cc_data->index_ti]) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
895 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
896 /* Implements Measure# 9 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
897 cc_mncc_release_ind ((T_PRIM *)D2P(rel_com)); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
898 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
899 else | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
900 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
901 /* Implements Measure# 9 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
902 cc_mncc_release_cnf ((T_PRIM *)D2P(rel_com)); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
903 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
904 /* END PATCH LE 10.04.00 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
905 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
906 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
907 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
908 for_rel_req (); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
909 cc_set_state (M_CC_CS_0); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
910 CCD_END; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
911 cc_setup_reattempt (); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
912 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
913 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
914 case M_CC_CS_1: /* call initiated */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
915 case M_CC_CS_3: /* mobile originating call proceeding */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
916 cc_check_setup_reattempt (&rel_com->cc_cause); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
917 /*FALLTHROUGH*/ /*lint -fallthrough*/ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
918 default: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
919 cc_reset_dtmf (); /* China change HM 11.07.00 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
920 if (cc_data->ti NEQ cc_data->setup_reattempt_ti) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
921 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
922 /* Implements Measure# 10 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
923 cc_mncc_release_ind ((T_PRIM *)D2P(rel_com)); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
924 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
925 for_rel_req (); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
926 CCD_END; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
927 cc_set_state (M_CC_CS_0); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
928 cc_setup_reattempt (); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
929 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
930 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
931 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
932 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
933 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
934 +--------------------------------------------------------------------+ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
935 | PROJECT : GSM-PS (6147) MODULE : CC_REL | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
936 | STATE : code ROUTINE : cc_rel_ind | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
937 +--------------------------------------------------------------------+ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
938 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
939 PURPOSE : Processing of an incoming release indication from | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
940 mobility management. | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
941 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
942 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
943 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
944 GLOBAL void cc_rel_ind (USHORT cause) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
945 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
946 GET_INSTANCE_DATA; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
947 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
948 TRACE_FUNCTION ("cc_rel_ind()"); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
949 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
950 switch (cc_data->state[cc_data->index_ti]) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
951 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
952 case M_CC_CS_0: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
953 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
954 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
955 case M_CC_CS_05: /* CC ESTABLISHMENT CONFIRMED */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
956 case M_CC_CS_06: /* RECALL PRESENT */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
957 /* Stop all timers */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
958 TIMERSTOP (TIMER_CC); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
959 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
960 /* Forget stored CCBS setup message */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
961 PFREE (cc_data->stored_ccbs_setup); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
962 cc_data->stored_ccbs_setup = NULL; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
963 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
964 /* Inform MMI */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
965 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
966 PALLOC (release, MNCC_RELEASE_IND); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
967 release->ti = cc_data->ti; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
968 release->cause = cause; /* provide cause from lower layers transparently to higher layers */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
969 release->c_raw_cause = 0; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
970 PSENDX (MMI, release); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
971 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
972 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
973 cc_set_state (M_CC_CS_0); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
974 srv_use_stored_prim (); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
975 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
976 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
977 case CS_101: /* Re-establishment request in state M_CC_CS_10 */\ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
978 case CS_261: /* Re-establishment request in state CS_26 */\ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
979 EM_CC_REESTABLISHED_FAILED; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
980 /*FALLTHROUGH*/ /*lint -fallthrough*/ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
981 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
982 default: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
983 cc_reset_dtmf (); /* China change HM 11.07.00 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
984 if (cc_data->ti NEQ cc_data->setup_reattempt_ti) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
985 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
986 PALLOC (rej_ind, MNCC_REJECT_IND); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
987 rej_ind->ti = cc_data->ti; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
988 rej_ind->cause = cause; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
989 PSENDX (MMI, rej_ind); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
990 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
991 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
992 cc_set_state (M_CC_CS_0); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
993 if (cc_data->ti EQ cc_data->setup_reattempt_ti) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
994 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
995 cc_setup_reattempt(); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
996 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
997 else | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
998 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
999 srv_use_stored_prim (); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1000 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1001 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1002 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1003 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1004 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1005 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1006 +--------------------------------------------------------------------+ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1007 | PROJECT : GSM-PS (6147) MODULE : CC_REL | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1008 | STATE : code ROUTINE : cc_err_ind | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1009 +--------------------------------------------------------------------+ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1010 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1011 PURPOSE : Processing of an incoming error indication from | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1012 mobility management. | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1013 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1014 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1015 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1016 GLOBAL void cc_err_ind (T_MMCM_ERROR_IND * err_ind) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1017 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1018 GET_INSTANCE_DATA; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1019 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1020 TRACE_FUNCTION ("cc_err_ind()"); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1021 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1022 switch (cc_data->state[cc_data->index_ti]) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1023 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1024 case M_CC_CS_0: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1025 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1026 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1027 case M_CC_CS_10: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1028 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1029 /* Implements Measure# 41 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1030 cc_mncc_sync_ind(err_ind->ti, CS_101); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1031 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1032 EM_CC_REESTABLISHED_STARTED; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1033 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1034 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1035 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1036 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1037 case M_CC_CS_26: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1038 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1039 /* Implements Measure# 41 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1040 cc_mncc_sync_ind(err_ind->ti, CS_261); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1041 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1042 EM_CC_REESTABLISHED_STARTED; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1043 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1044 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1045 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1046 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1047 default: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1048 cc_reset_dtmf (); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1049 if (cc_data->ti NEQ cc_data->setup_reattempt_ti) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1050 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1051 PALLOC (rel_ind, MNCC_RELEASE_IND); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1052 rel_ind->cause = err_ind->cause; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1053 rel_ind->ti = cc_data->ti; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1054 rel_ind->c_raw_cause = 0; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1055 PSENDX (MMI, rel_ind); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1056 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1057 cc_set_state (M_CC_CS_0); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1058 for_rel_req (); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1059 cc_setup_reattempt (); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1060 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1061 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1062 PFREE (err_ind); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1063 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1064 /* Implements Measure# 8 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1065 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1066 +--------------------------------------------------------------------+ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1067 | PROJECT : GSM-PS (6147) MODULE : CC_REL | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1068 | STATE : code ROUTINE : cc_mncc_release_ind | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1069 +--------------------------------------------------------------------+ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1070 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1071 PURPOSE : send mncc_release_ind | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1072 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1073 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1074 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1075 LOCAL void cc_mncc_release_ind (T_PRIM * prim) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1076 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1077 GET_INSTANCE_DATA; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1078 UBYTE v_cc_cause; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1079 T_M_CC_cc_cause *cc_cause; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1080 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1081 TRACE_FUNCTION ("cc_mncc_release_ind()"); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1082 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1083 if (prim->custom.opc EQ D_RELEASE) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1084 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1085 v_cc_cause = ((T_D_RELEASE *)P2D(prim))->v_cc_cause; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1086 cc_cause = &((T_D_RELEASE *)P2D(prim))->cc_cause; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1087 cc_build_facility_ind (MNCC_FAC_IN_RELEASE, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1088 ((T_D_RELEASE *)P2D(prim))->v_facility, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1089 &((T_D_RELEASE *)P2D(prim))->facility); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1090 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1091 else | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1092 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1093 v_cc_cause = ((T_D_RELEASE_COMP *)P2D(prim))->v_cc_cause; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1094 cc_cause = &((T_D_RELEASE_COMP *)P2D(prim))->cc_cause; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1095 cc_build_facility_ind (MNCC_FAC_IN_RELEASE_COMP, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1096 ((T_D_RELEASE_COMP *)P2D(prim))->v_facility, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1097 &((T_D_RELEASE_COMP *)P2D(prim))->facility); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1098 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1099 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1100 /* Patch HM 29-Jan-02 <<< */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1101 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1102 PALLOC (rel_ind, MNCC_RELEASE_IND); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1103 rel_ind->ti = cc_data->ti; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1104 if (v_cc_cause) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1105 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1106 rel_ind->cause = CAUSE_MAKE(DEFBY_STD, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1107 ORIGSIDE_NET, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1108 MNCC_CC_ORIGINATING_ENTITY, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1109 cc_cause->cause); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1110 rel_ind->c_raw_cause = cc_build_cause (cc_cause, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1111 rel_ind->raw_cause); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1112 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1113 else | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1114 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1115 rel_ind->cause = CAUSE_MAKE(DEFBY_CONDAT, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1116 ORIGSIDE_NET, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1117 MNCC_CC_ORIGINATING_ENTITY, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1118 NOT_PRESENT_8BIT); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1119 /* Setting raw_cause to empty as this is a local release | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1120 * of MM connection,CC is not receiving any cause value | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1121 * from Network | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1122 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1123 rel_ind->c_raw_cause = 0; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1124 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1125 PSENDX (MMI, rel_ind); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1126 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1127 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1128 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1129 /* Implements Measure# 9 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1130 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1131 +--------------------------------------------------------------------+ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1132 | PROJECT : GSM-PS (6147) MODULE : CC_REL | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1133 | STATE : code ROUTINE : cc_mncc_release_cnf | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1134 +--------------------------------------------------------------------+ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1135 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1136 PURPOSE : send mncc_release_cnf | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1137 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1138 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1139 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1140 LOCAL void cc_mncc_release_cnf (T_PRIM * prim) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1141 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1142 GET_INSTANCE_DATA; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1143 UBYTE v_cc_cause; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1144 T_M_CC_cc_cause *cc_cause; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1145 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1146 TRACE_FUNCTION ("cc_mncc_release_cnf()"); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1147 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1148 if (prim->custom.opc EQ D_RELEASE) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1149 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1150 v_cc_cause = ((T_D_RELEASE *)P2D(prim))->v_cc_cause; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1151 cc_cause = &((T_D_RELEASE *)P2D(prim))->cc_cause; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1152 cc_build_facility_ind (MNCC_FAC_IN_RELEASE_COMP, /* A little bit dirty */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1153 ((T_D_RELEASE *)P2D(prim))->v_facility, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1154 &((T_D_RELEASE *)P2D(prim))->facility); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1155 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1156 else | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1157 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1158 v_cc_cause = ((T_D_RELEASE_COMP *)P2D(prim))->v_cc_cause; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1159 cc_cause = &((T_D_RELEASE_COMP *)P2D(prim))->cc_cause; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1160 cc_build_facility_ind (MNCC_FAC_IN_RELEASE_COMP, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1161 ((T_D_RELEASE_COMP *)P2D(prim))->v_facility, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1162 &((T_D_RELEASE_COMP *)P2D(prim))->facility); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1163 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1164 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1165 /* Patch HM 29-Jan-02 <<< */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1166 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1167 PALLOC (rel_cnf, MNCC_RELEASE_CNF); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1168 rel_cnf->ti = cc_data->ti; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1169 if (v_cc_cause) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1170 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1171 rel_cnf->cause = CAUSE_MAKE(DEFBY_STD, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1172 ORIGSIDE_NET, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1173 MNCC_CC_ORIGINATING_ENTITY, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1174 cc_cause->cause); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1175 rel_cnf->c_raw_cause = cc_build_cause (cc_cause, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1176 rel_cnf->raw_cause); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1177 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1178 else | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1179 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1180 rel_cnf->cause = CAUSE_MAKE(DEFBY_CONDAT, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1181 ORIGSIDE_NET, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1182 MNCC_CC_ORIGINATING_ENTITY, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1183 NOT_PRESENT_8BIT); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1184 /* Setting raw_cause to empty as this is a local release | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1185 * of MM connection,CC is not receiving any cause value | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1186 * from Network | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1187 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1188 rel_cnf->c_raw_cause = 0; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1189 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1190 PSENDX (MMI, rel_cnf); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1191 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1192 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1193 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1194 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1195 /* Implements Measure# 41 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1196 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1197 +--------------------------------------------------------------------+ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1198 | PROJECT : GSM-PS (6147) MODULE : CC_REL | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1199 | STATE : code ROUTINE : cc_mncc_sync_ind | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1200 +--------------------------------------------------------------------+ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1201 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1202 PURPOSE : send cc_mncc_sync_ind | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1203 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1204 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1205 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1206 LOCAL void cc_mncc_sync_ind (UBYTE ti, UBYTE new_state) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1207 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1208 TRACE_FUNCTION ("cc_mncc_sync_ind()"); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1209 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1210 PALLOC (sync_ind, MNCC_SYNC_IND); /* T_MNCC_SYNC_IND */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1211 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1212 sync_ind->ti = ti; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1213 sync_ind->cause = MNCC_CAUSE_REEST_STARTED; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1214 sync_ind->ch_info.ch_mode=NOT_PRESENT_8BIT; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1215 sync_ind->ch_info.ch_type=NOT_PRESENT_8BIT; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1216 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1217 PSENDX (MMI, sync_ind); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1218 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1219 for_reest_req (); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1220 cc_set_state (new_state); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1221 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1222 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1223 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1224 #endif | 
