annotate src/g23m-gsm/sms/sms_tls.c @ 204:e2714de970a4

TCS2/TCS3 hybrid config links after adding cl.lib
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 14 Oct 2016 06:21:03 +0000
parents 27a4235405c6
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
104
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 +-----------------------------------------------------------------------------
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 | Project : GSM-F&D (8411)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 | Modul : SMS_TLP
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 +-----------------------------------------------------------------------------
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 | Copyright 2002 Texas Instruments Berlin, AG
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 | All rights reserved.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 |
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 | This file is confidential and a trade secret of Texas
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 | Instruments Berlin, AG
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 | The receipt of or possession of this file does not convey
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 | any rights to reproduce or disclose its contents or to
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 | manufacture, use, or sell anything it may describe, in
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 | whole, or in part, without the specific written consent of
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 | Texas Instruments Berlin, AG.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 +-----------------------------------------------------------------------------
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 | Purpose : This Modul defines the functions for the transfer layer
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 | capability of the module Short Message Service.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 +-----------------------------------------------------------------------------
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 #ifndef SMS_TLS_C
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 #define SMS_TLS_C
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 #define ENTITY_SMS
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 /*==== INCLUDES ===================================================*/
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 #include <string.h>
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 #include <stdlib.h>
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 #include <stddef.h>
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 #include "typedefs.h"
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 #include "pcm.h"
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 #include "vsi.h"
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 #include "custom.h"
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 #include "gsm.h"
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 #include "message.h"
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 #include "ccdapi.h"
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 #include "prim.h"
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 #include "cus_sms.h"
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 #include "cnf_sms.h"
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 #include "mon_sms.h"
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 #include "pei.h"
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 #include "tok.h"
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 #include "sms.h"
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 #include "gdi.h"
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 #include "sms_em.h"
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 /*==== EXPORT ======================================================*/
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 /*==== PRIVAT ======================================================*/
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 /*==== VARIABLES ===================================================*/
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 /*==== FUNCTIONS ===================================================*/
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 LOCAL BOOL tl_modify_is_all (UBYTE modify)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 switch (modify)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 case SMS_MODIFY_NON:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 case SMS_MODIFY_SCA:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63 case SMS_MODIFY_TPOA:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 case SMS_MODIFY_TPOA_SCA:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65 return FALSE;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66 default:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69 return TRUE; /* MODIFY_ALL: complete message is given */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 LOCAL void tl_send_failure(USHORT cause)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
74 GET_INSTANCE_DATA;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
75
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
76 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77 * release connection
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79 rl_release_req(SMS_INST.ti);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
80
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
82 * Send MNSMS_REPORT_IND indicating the cmms_mode value to ACI
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
83 * if CMMS_MODE is equal to 1or 2.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85 if(CMMS_ACTIVE)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
86 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
87 tl_cmms_end();
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
88 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
89 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
90 * SUBMIT_CNF
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
91 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
92 tl_mnsms_submit_cnf (SMS_SEL_MEM(sms_data),
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
93 SMS_SEL_REC(sms_data),
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
94 NOT_PRESENT_8BIT,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
95 cause,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
96 NULL);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
97 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
98
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
99 /*---- SIGNALS -----------------------------------------------------*/
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
100
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
101 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
102 +--------------------------------------------------------------------+
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
103 | PROJECT : GSM-PS (8410) MODULE : SMS_TLS |
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
104 | STATE : code ROUTINE : tl_establish_cnf |
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
105 +--------------------------------------------------------------------+
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
106
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
107 PURPOSE : Process the signal TL_ESTABLISH_CNF.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
108
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
109 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
110
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
111 GLOBAL void tl_establish_cnf (
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
112 BOOL success)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
113 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
114 GET_INSTANCE_DATA;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
115
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
116 TRACE_FUNCTION ("tl_establish_cnf()");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
117
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
118 #ifdef GPRS
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
119 if (success EQ FALSE)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
120 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
121 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
122 * Establishment Failed.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
123 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
124 if (SMS_INST.downlink EQ SMS_DOWNLINK_LL_CHECK)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
125 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
126 if (sms_data->mo_dst_pref EQ GPRS_SMS_GPRS_PREF)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
127 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
128 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
129 * using the preferred downlink LL failed, use CSD
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
130 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
131 TRACE_EVENT("Establishment failed on LL link, try gsm path instead");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
132 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
133 * set downlink type MMSMS
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
134 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
135 TRACE_EVENT("downlink = SMS_DOWNLINK_MMSMS");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
136 SMS_INST.downlink = SMS_DOWNLINK_MMSMS;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
137 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
138 * try again
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
139 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
140 rl_establish_req(SMS_INST.ti);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
141 return;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
142 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
143 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
144 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
145 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
146 * unsing the preferred downlink LL failed
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
147 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
148 TRACE_EVENT("Establishment failed on LL link, stop working");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
149 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
150 * handle event in report ind
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
151 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
152 tl_report_ind(NULL,SMS_CAUSE_NO_SERVICE);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
153 return;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
154 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
155 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
156
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
157 else if (SMS_INST.downlink EQ SMS_DOWNLINK_MMSMS)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
158 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
159 if(sms_data->mo_dst_pref EQ GPRS_SMS_CCT_PREF)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
160 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
161 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
162 * using the preferred downlink MM failed, use PS
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
163 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
164 TRACE_EVENT("Establishment failed on MM link, try gprs path instead");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
165
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
166 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
167 * set downlink type LL
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
168 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
169 TRACE_EVENT("downlink = SMS_DOWNLINK_LL");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
170 SMS_INST.downlink = SMS_DOWNLINK_LL_CHECK;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
171 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
172 * If CMMS_ACTIVE then send the MNSMS_REPORT_IND to ACI informing about
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
173 * the current cmms_mode value as GSM connection is failed.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
174 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
175 if(CMMS_ACTIVE)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
176 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
177 tl_cmms_end();
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
178 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
179
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
180 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
181 * try again
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
182 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
183 rl_establish_req(SMS_INST.ti);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
184 return;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
185 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
186 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
187 * else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
188 * <<PS PREF failed CS fallback also failed>> case covered in cp layer.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
189 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
190 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
191 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
192 #endif /* #ifdef GPRS */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
193
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
194 switch (SMS_INST_GET_STATE (STATE_TL))
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
195 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
196 case TL_ESTABLISH:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
197 switch (GET_STATE (STATE_EST))
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
198 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
199 case EST_SEND:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
200
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
201 tl_establish_cnf_send();
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
202 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
203
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
204 case EST_RTX:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
205
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
206 tl_establish_cnf_rtx();
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
207 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
208
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
209 case EST_CMD:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
210
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
211 tl_establish_cnf_cmd();
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
212 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
213
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
214 case EST_SMMA:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
215
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
216 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
217 * TL state transition: TL_OTHER
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
218 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
219 SMS_INST_SET_STATE (STATE_TL, TL_OTHER);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
220 if (!rl_mem_avail_req ())
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
221 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
222 TRACE_EVENT("could not send SMMA");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
223 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
224 * TL state transition TL_OTHER
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
225 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
226 SMS_INST_SET_STATE (STATE_TL, TL_OTHER);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
227 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
228 * handle event in report ind
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
229 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
230 tl_report_ind(NULL,SMS_CAUSE_ENTITY_BUSY);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
231 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
232
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
233 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
234 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
235 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
236
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
237 default:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
238 TRACE_ERROR("TL_ESTABLISH_CNF in wrong state received");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
239 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
240 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
241
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
242 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
243 +--------------------------------------------------------------------+
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
244 | PROJECT : GSM-PS (8410) MODULE : SMS_TLS |
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
245 | STATE : code ROUTINE : tl_establish_cnf_send |
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
246 +--------------------------------------------------------------------+
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
247
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
248 PURPOSE : Process the signal TL_ESTABLISH_CNF
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
249 in state TL_SEND_ESTABLISH.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
250
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
251 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
252
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
253 GLOBAL void tl_establish_cnf_send (void)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
254 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
255 GET_INSTANCE_DATA;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
256 drv_Return_Type pcm_result;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
257 T_SIM_PDU *sim_pdu;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
258
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
259 TRACE_FUNCTION ("tl_establish_cnf_send()");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
260
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
261 if ( (SMS_SEL_REC(sms_data) NEQ SMS_RECORD_NOT_EXIST) AND
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
262 (!tl_modify_is_all (SMS_MODIFY(sms_data))) )
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
263 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
264 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
265 * SEND - MODIFY
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
266 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
267 switch (SMS_SEL_MEM(sms_data))
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
268 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
269 case MEM_SM:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
270
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
271 if (SMS_SEL_REC(sms_data) <= SMS_SIM_PROP(sms_data).max_record)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
272 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
273 tl_set_access_fifo (ACCESS_BY_MMI);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
274 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
275 * TL state transition: TL_SEND
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
276 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
277 SET_STATE (STATE_MMI, MMI_READ);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
278 SMS_INST_SET_STATE (STATE_TL, TL_SEND);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
279 tl_sim_read_record_req (SMS_SEL_REC(sms_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
280 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
281 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
282 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
283 tl_send_failure(SMS_CAUSE_INV_INDEX);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
284 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
285 * TL state transition: TL_IDLE
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
286 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
287 SMS_INST_SET_STATE (STATE_TL, TL_IDLE);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
288 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
289 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
290
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
291 case MEM_ME:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
292
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
293 if (SMS_SEL_REC(sms_data) <= SMS_ME_PROP(sms_data).max_record)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
294 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
295 USHORT max_record;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
296 UBYTE misc;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
297 UBYTE sim_msg[SIZE_EF_SMS];
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
298 MCAST (cp_data, U_CP_DATA);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
299
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
300 /* Implements Measure#32: Row 109 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
301 pcm_result = pcm_ReadRecord ((UBYTE *)ef_sms_id,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
302 (USHORT)SMS_SEL_REC(sms_data),
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
303 SIZE_EF_SMS,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
304 sim_msg, &misc, &max_record);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
305 if (pcm_result NEQ PCM_OK)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
306 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
307 SMS_ME_PROP(sms_data).max_record = 0;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
308 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
309 * stop sending
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
310 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
311 tl_send_failure(SMS_CAUSE_MEM_FAIL);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
312 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
313 * TL state transition: TL_IDLE
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
314 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
315 SMS_INST_SET_STATE (STATE_TL, TL_IDLE);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
316 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
317 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
318 MALLOC (sim_pdu, sizeof(T_SIM_PDU));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
319 CCD_START;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
320 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
321 * modify, prepare submit
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
322 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
323 if (tl_modify_submit (sim_pdu, SMS_MODIFY(sms_data),
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
324 SMS_SDU(sms_data), sim_msg) AND
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
325 tl_prepare_submit (sim_pdu, cp_data))
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
326 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
327 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
328 * RL_DATA_REQ
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
329 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
330 if (!rl_data_req (SMS_INST.tp_mr, cp_data))
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
331 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
332 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
333 * stop sending
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
334 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
335 tl_send_failure(SMS_CAUSE_ENTITY_BUSY);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
336 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
337 * TL state transition: TL_IDLE
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
338 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
339 SMS_INST_SET_STATE (STATE_TL, TL_IDLE);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
340 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
341 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
342 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
343 SMS_EM_MO_SHORT_MESSAGE;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
344 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
345 * TL state transition: TL_SEND
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
346 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
347 SMS_INST_SET_STATE (STATE_TL, TL_SEND);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
348 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
349 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
350 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
351 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
352 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
353 * stop sending
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
354 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
355 tl_send_failure(SMS_CAUSE_PARAM_WRONG);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
356 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
357 * TL state transition: TL_IDLE
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
358 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
359 SMS_INST_SET_STATE (STATE_TL, TL_IDLE);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
360 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
361 CCD_END;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
362 MFREE (sim_pdu);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
363 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
364 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
365 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
366 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
367 * stop sending
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
368 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
369 tl_send_failure(SMS_CAUSE_INV_INDEX);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
370 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
371 * TL state transition: TL_IDLE
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
372 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
373 SMS_INST_SET_STATE (STATE_TL, TL_IDLE);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
374 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
375 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
376
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
377 default:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
378 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
379 * stop sending
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
380 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
381 tl_send_failure(SMS_CAUSE_PARAM_WRONG);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
382 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
383 * TL state transition: TL_IDLE
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
384 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
385 SMS_INST_SET_STATE (STATE_TL, TL_IDLE);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
386 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
387 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
388 else /* no record given, or no previous mem read */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
389 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
390 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
391 * SEND - STRAIGHT
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
392 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
393 USHORT cause = SMS_NO_ERROR;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
394
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
395 switch (SMS_SEL_MEM(sms_data))
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
396 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
397 case MEM_SM:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
398 if (SMS_SEL_REC(sms_data) > SMS_SIM_PROP(sms_data).max_record)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
399 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
400 cause = SMS_CAUSE_INV_INDEX;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
401 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
402 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
403
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
404 case MEM_ME:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
405 if (SMS_SEL_REC(sms_data) > SMS_ME_PROP(sms_data).max_record)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
406 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
407 cause = SMS_CAUSE_INV_INDEX;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
408 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
409 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
410
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
411 default:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
412 if (SMS_SEL_REC(sms_data) NEQ SMS_RECORD_NOT_EXIST)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
413 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
414 cause = SMS_CAUSE_PARAM_WRONG;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
415 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
416 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
417 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
418
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
419 if (cause EQ SMS_NO_ERROR)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
420 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
421 /* Do some additional tests on the SMS SDU */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
422 if (SMS_SDU(sms_data)->l_buf EQ 0)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
423 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
424 TRACE_ERROR ("MNSMS_SUBMIT_REQ: sms_sdu empty");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
425 cause = SMS_CAUSE_PARAM_WRONG;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
426 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
427 if ((SMS_SDU(sms_data)->l_buf >> 3) +
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
428 (SMS_SDU(sms_data)->o_buf >> 3) > SIM_PDU_LEN)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
429 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
430 TRACE_ERROR ("MNSMS_SUBMIT_REQ: sms_sdu out of range");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
431 cause = SMS_CAUSE_PARAM_WRONG;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
432 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
433 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
434
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
435 if (cause EQ SMS_NO_ERROR) /* error on previous parameter check? */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
436 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
437 MCAST (cp_data, U_CP_DATA);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
438 MALLOC (sim_pdu, sizeof(T_SIM_PDU));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
439
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
440 CCD_START;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
441 ccd_decodeMsg (CCDENT_SMS, BOTH,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
442 (T_MSGBUF *)SMS_SDU(sms_data),
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
443 (UBYTE *)sim_pdu, SMS_VT_SIM_PDU);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
444 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
445 * prepare submit
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
446 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
447 if (tl_prepare_submit (sim_pdu, cp_data))
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
448 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
449 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
450 * RL_DATA_REQ
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
451 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
452 if (!rl_data_req (SMS_INST.tp_mr, cp_data))
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
453 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
454 cause = SMS_CAUSE_ENTITY_BUSY;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
455 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
456 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
457 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
458 SMS_EM_MO_SHORT_MESSAGE;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
459 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
460 * TL state transition
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
461 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
462 SMS_INST_SET_STATE (STATE_TL, TL_SEND);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
463 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
464 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
465 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
466 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
467 cause = SMS_CAUSE_PARAM_WRONG;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
468 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
469
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
470 MFREE (sim_pdu);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
471 CCD_END;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
472 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
473 if (cause NEQ SMS_NO_ERROR)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
474 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
475 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
476 * stop sending
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
477 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
478 tl_send_failure(cause);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
479 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
480 * TL state transition: TL_IDLE
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
481 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
482 SMS_INST_SET_STATE (STATE_TL, TL_IDLE);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
483 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
484 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
485 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
486
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
487 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
488 +--------------------------------------------------------------------+
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
489 | PROJECT : GSM-PS (8410) MODULE : SMS_TLS |
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
490 | STATE : code ROUTINE : tl_establish_cnf_rtx |
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
491 +--------------------------------------------------------------------+
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
492
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
493 PURPOSE : Process the signal TL_ESTABLISH_CNF
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
494 in state TL_RTX_ESTABLISH.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
495
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
496 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
497 GLOBAL void tl_establish_cnf_rtx (void)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
498 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
499 GET_INSTANCE_DATA;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
500
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
501 TRACE_FUNCTION ("tl_establish_cnf_rtx()");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
502
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
503 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
504 MCAST (cp_data, U_CP_DATA); /* T_U_CP_DATA */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
505 BUF_tpdu *tpdu = &cp_data->cp_user_data_ul.rp_data_ul.rp_user_data.tpdu;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
506 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
507 * check whether data req still exists
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
508 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
509 if (SMS_DATA_REQ(sms_data) EQ NULL)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
510 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
511 TRACE_ERROR("Horror: cannot retransmit DATA REQ: buffer gone");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
512 return;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
513 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
514 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
515 * Inform ACI that MO transmission attempt is still going on
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
516 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
517 /* tl_mnsms_send_prog_ind(sms_data); */ /* TCS 4.x and above */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
518
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
519 CCD_START;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
520
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
521 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
522 * Revert addition of PD and TI
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
523 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
524 SMS_DATA_REQ(sms_data)->sdu.o_buf += BSIZE_TI_PD;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
525 SMS_DATA_REQ(sms_data)->sdu.l_buf -= BSIZE_TI_PD;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
526
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
527 ccd_decodeMsg (CCDENT_SMS,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
528 UPLINK,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
529 (T_MSGBUF *)&SMS_DATA_REQ(sms_data)->sdu,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
530 (UBYTE *)cp_data,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
531 NOT_PRESENT_8BIT);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
532
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
533 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
534 * Set the TP-RD bit in the SMS-SUBMIT.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
535 * No usage of CCD here, this would be inefficient.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
536 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
537 tpdu->b_tpdu[tpdu->o_tpdu >> 3] |= 0x04;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
538 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
539 * TL state transition: TL_SEND
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
540 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
541 SMS_INST_SET_STATE (STATE_TL, TL_SEND);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
542 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
543 * RL_DATA_REQ
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
544 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
545 rl_data_req (SMS_INST.tp_mr, cp_data);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
546
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
547 CCD_END;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
548 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
549 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
550
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
551 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
552 +--------------------------------------------------------------------+
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
553 | PROJECT : GSM-PS (8410) MODULE : SMS_TLS |
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
554 | STATE : code ROUTINE : tl_establish_cnf_cmd |
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
555 +--------------------------------------------------------------------+
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
556
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
557 PURPOSE : Process the signal TL_ESTABLISH_CNF
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
558 in state TL_CMD_ESTABLISH.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
559
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
560 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
561
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
562 GLOBAL void tl_establish_cnf_cmd(void)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
563 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
564 GET_INSTANCE_DATA;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
565 T_SIM_PDU *sim_pdu;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
566
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
567 TRACE_FUNCTION ("tl_establish_cnf_cmd()");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
568
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
569 CCD_START;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
570
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
571 MALLOC (sim_pdu, sizeof(T_SIM_PDU));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
572 memset (sim_pdu, 0, sizeof(T_SIM_PDU));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
573
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
574 ccd_decodeMsg (CCDENT_SMS, BOTH,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
575 (T_MSGBUF *)SMS_SDU(sms_data),
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
576 (UBYTE *)sim_pdu, SMS_VT_SIM_PDU);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
577
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
578 if (sim_pdu->tp_mti EQ SMS_COMMAND AND sim_pdu->v_tpdu)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
579 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
580 MCAST (cp_data, U_CP_DATA);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
581
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
582 /* ++SMS_INST.tp_mr; */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
583 sim_pdu->tpdu.b_tpdu[1] = SMS_INST.tp_mr;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
584 SMS_TP_REF_RET(sms_data) = SMS_INST.tp_mr;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
585
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
586 SMS_INST_SET_STATE (STATE_TL, TL_COMMAND);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
587
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
588 SMS_EM_MO_SHORT_MESSAGE_COMMAND;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
589
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
590 cp_data->cp_user_data_ul.v_rp_error = FALSE;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
591 cp_data->cp_user_data_ul.v_rp_ack = FALSE;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
592 memset (&cp_data->cp_user_data_ul.rp_data_ul, 0,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
593 sizeof (T_rp_data_ul));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
594
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
595 memcpy (&cp_data->cp_user_data_ul.rp_data_ul.rp_addr,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
596 &sim_pdu->rp_addr, sizeof (T_rp_addr));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
597 cp_data->cp_user_data_ul.rp_data_ul.rp_user_data.tp_mti
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
598 = sim_pdu->tp_mti;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
599 memcpy (&cp_data->cp_user_data_ul.rp_data_ul.rp_user_data.tpdu,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
600 &sim_pdu->tpdu, sizeof (BUF_tpdu));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
601 cp_data->cp_user_data_ul.rp_data_ul.rp_user_data.v_tpdu
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
602 = TRUE;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
603 cp_data->cp_user_data_ul.v_rp_data_ul = TRUE;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
604
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
605
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
606 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
607 * RL_DATA_REQ
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
608 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
609 if (!rl_data_req (SMS_INST.tp_mr, cp_data))
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
610 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
611 tl_mnsms_command_cnf (NOT_PRESENT_8BIT, SMS_CAUSE_ENTITY_BUSY, NULL);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
612 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
613 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
614 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
615 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
616 tl_mnsms_command_cnf (NOT_PRESENT_8BIT, SMS_CAUSE_PARAM_WRONG, NULL);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
617 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
618
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
619 MFREE (sim_pdu);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
620 CCD_END;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
621 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
622 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
623 +--------------------------------------------------------------------+
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
624 | PROJECT : GSM-PS (8410) MODULE : SMS_TLS |
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
625 | STATE : code ROUTINE : tl_data_ind |
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
626 +--------------------------------------------------------------------+
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
627
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
628 PURPOSE : Process the signal DATA_IND.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
629
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
630 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
631
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
632 GLOBAL void tl_data_ind (
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
633 T_rp_data_dl *rp_data_dl)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
634 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
635 GET_INSTANCE_DATA;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
636 TRACE_FUNCTION ("tl_data_ind()");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
637
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
638 /* Valid tp-user data will not be set to TRUE unless futher decoding is done
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
639 * so removed check rp_data_dl->rp_addr.v_tpdu
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
640 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
641 if (rp_data_dl EQ NULL OR !rp_data_dl->rp_addr.v_ton)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
642 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
643 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
644 * RP_ERROR =>
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
645 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
646 rl_report_req_error (SMS_RP_CS_INV_MAND_INFO, NULL);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
647 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
648 * RL_RELEASE_REQ ==>
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
649 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
650 rl_release_req(SMS_INST.ti);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
651 return;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
652 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
653 switch (rp_data_dl->rp_user_data.tp_mti)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
654 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
655 case SMS_DELIVER:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
656 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
657 MCAST (sms_deliver, TP_DELIVER);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
658
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
659 TRACE_EVENT ("SMS DELIVER");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
660
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
661 if (SMS_RP_RCVD(sms_data) EQ NULL)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
662 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
663 MALLOC (SMS_RP_RCVD(sms_data), sizeof(T_rp_data_dl));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
664 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
665 memcpy (SMS_RP_RCVD(sms_data), rp_data_dl,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
666 sizeof(T_rp_data_dl));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
667
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
668 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
669 *If Valid TP user Data is missing in RP Message, send RP ERROR
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
670 * This is done by checking v_tp_ud field
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
671 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
672 if ( ccd_decodeMsg (CCDENT_SMS,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
673 DOWNLINK,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
674 (T_MSGBUF *)&SMS_RP_RCVD(sms_data)->rp_user_data.tpdu,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
675 (UBYTE *)sms_deliver,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
676 SMS_VT_DELIVER) EQ ccdError )
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
677 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
678 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
679 * RP_ERROR =>
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
680 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
681 rl_report_req_error (SMS_RP_CS_INV_MAND_INFO, NULL);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
682 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
683 * RL_RELEASE_REQ ==>
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
684 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
685 rl_release_req(SMS_INST.ti);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
686 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
687 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
688
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
689 SMS_INST_SET_STATE (STATE_TL, TL_RECEIVE);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
690
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
691 SMS_DCS(sms_data) = sms_deliver->tp_dcs;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
692 SMS_PID(sms_data) = sms_deliver->tp_pid;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
693 #ifdef FF_SMS_23430
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
694 if (tl_handle_23430 (sms_deliver))
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
695 return;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
696 #endif
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
697 switch (sms_deliver->tp_pid)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
698 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
699 case SMS_PID_SM_TYPE_0:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
700 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
701 * "A short message type 0 indicates that the ME must acknowledge
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
702 * receipt of the short message but shall discard its contents."
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
703 * [3GPP 23.040 subclause 9.2.3.9]
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
704 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
705 rl_report_req_ack (NULL);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
706 SMS_INST_SET_STATE (STATE_TL, TL_IDLE);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
707
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
708 MFREE (SMS_RP_RCVD(sms_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
709 SMS_RP_RCVD(sms_data) = NULL;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
710 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
711
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
712 case SMS_PID_REP_SM_TYPE_1:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
713 case SMS_PID_REP_SM_TYPE_2:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
714 case SMS_PID_REP_SM_TYPE_3:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
715 case SMS_PID_REP_SM_TYPE_4:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
716 case SMS_PID_REP_SM_TYPE_5:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
717 case SMS_PID_REP_SM_TYPE_6:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
718 case SMS_PID_REP_SM_TYPE_7:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
719 case SMS_PID_RET_CALL_MSG:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
720 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
721 * replace short messages
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
722 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
723 tl_replace_message (sms_deliver);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
724 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
725 case SMS_PID_SIM_DOWNLOAD:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
726 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
727 * SIM data download
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
728 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
729 #ifdef SIM_TOOLKIT
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
730 if (sms_data->download_sms AND
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
731 tl_check_class_2 (sms_deliver->tp_dcs))
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
732 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
733 tl_build_envelope_sms_download (SMS_RP_RCVD(sms_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
734 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
735 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
736 #endif
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
737 tl_handle_message (sms_deliver);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
738 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
739
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
740 #ifdef REL99
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
741 /* Currently EGPRS over TIA/EIA-136 is not supported and hence it
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
742 * is treated as below. If TIA/EIA-136 is supported, the message
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
743 * should be passed to ME for routing to the application handling
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
744 * ANSI-136 data
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
745 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
746 case SMS_PID_ANSI_136_R_DATA:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
747 if( tl_check_class_2 (sms_deliver->tp_dcs) )
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
748 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
749 #ifdef SIM_TOOLKIT
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
750 /* Download it to SIM only if both SAT is supported and data download
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
751 * service is enabled
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
752 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
753 if (sms_data->download_sms)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
754 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
755 tl_build_envelope_sms_download (SMS_RP_RCVD(sms_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
756 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
757 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
758 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
759 /* 11.14 8.d.0 Sec 7.1.1 mentions about storing the message when
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
760 * If the service "data download via SMS-PP" is not allocated
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
761 * and activated only for protocol identifier = SIM data download.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
762 * Hence discard the message and send NACK indicating inability
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
763 * to handle the message*/
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
764 T_rp_user_data *rp_ud;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
765 MALLOC (rp_ud, sizeof(T_rp_user_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
766 rp_ud->tpdu.o_tpdu = 0;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
767 rp_ud->tp_mti = rp_ud->tpdu.b_tpdu[0] = SMS_DELIVER_REPORT;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
768 rp_ud->tpdu.b_tpdu[1] = SMS_FCS_TP_PID_UNSPEC; /* TP-FCS */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
769 rp_ud->tpdu.b_tpdu[2] = 0; /* TP-PI */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
770 rp_ud->tpdu.l_tpdu = 24; /* 3 bytes */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
771 rp_ud->v_tpdu = TRUE;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
772 rl_report_req_error (SMS_RP_CS_PROTOCOL_ERROR, rp_ud);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
773 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
774 * RL_RELEASE_REQ ==>
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
775 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
776 rl_release_req( SMS_INST.ti);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
777 MFREE (rp_ud);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
778
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
779 SMS_INST_SET_STATE (STATE_TL, TL_IDLE);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
780 MFREE (SMS_RP_RCVD(sms_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
781 SMS_RP_RCVD(sms_data) = NULL;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
782 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
783 #else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
784 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
785 * Discard the message and send NACK
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
786 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
787 T_rp_user_data *rp_ud;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
788 MALLOC (rp_ud, sizeof(T_rp_user_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
789 rp_ud->tpdu.o_tpdu = 0;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
790 rp_ud->tp_mti = rp_ud->tpdu.b_tpdu[0] = SMS_DELIVER_REPORT;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
791 rp_ud->tpdu.b_tpdu[1] = SMS_FCS_TP_PID_UNSPEC; /* TP-FCS */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
792 rp_ud->tpdu.b_tpdu[2] = 0; /* TP-PI */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
793 rp_ud->tpdu.l_tpdu = 24; /* 3 bytes */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
794 rp_ud->v_tpdu = TRUE;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
795 rl_report_req_error (SMS_RP_CS_PROTOCOL_ERROR, rp_ud);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
796 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
797 * RL_RELEASE_REQ ==>
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
798 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
799 rl_release_req(SMS_INST.ti);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
800 MFREE (rp_ud);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
801
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
802 SMS_INST_SET_STATE (STATE_TL, TL_IDLE);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
803 MFREE (SMS_RP_RCVD(sms_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
804 SMS_RP_RCVD(sms_data) = NULL;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
805 #endif
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
806 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
807 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
808 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
809 tl_handle_message (sms_deliver);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
810 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
811 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
812 #endif /* REL99 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
813
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
814 case SMS_PID_ME_DEPERSON:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
815 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
816 * ME de-personalization short message
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
817 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
818 #ifdef SIM_PERS_OTA
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
819 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
820 PALLOC (mnsms_OTA_message_ind, MNSMS_OTA_MESSAGE_IND);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
821 memcpy (&mnsms_OTA_message_ind->tp_ud, &sms_deliver->tp_ud, sizeof(T_tp_ud));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
822 mnsms_OTA_message_ind->tp_dcs = sms_deliver->tp_dcs ;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
823 mnsms_OTA_message_ind->tp_pid = sms_deliver->tp_pid;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
824 #ifdef TI_PS_HCOMM_CHANGE
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
825 PSEND (_hCommMMI, mnsms_OTA_message_ind);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
826 #else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
827 PSEND (hCommMMI, mnsms_OTA_message_ind);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
828 #endif
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
829 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
830 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
831 #else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
832 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
833 #endif
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
834 case SMS_PID_ME_DOWNLOAD:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
835 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
836 * ME download short message
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
837 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
838 default:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
839 tl_handle_message (sms_deliver);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
840 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
841 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
842 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
843 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
844
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
845 case SMS_STATUS_REPORT:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
846 TRACE_EVENT ("SMS STATUS REPORT");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
847
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
848 if (sms_data->ds EQ DS1)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
849 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
850 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
851 * only if requested by MMI
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
852 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
853 PALLOC (status_ind, MNSMS_STATUS_IND);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
854
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
855 SMS_EM_SMS_STATUS_MESSAGE;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
856
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
857 tl_build_status_rep (rp_data_dl, status_ind);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
858 PSENDX (MMI, status_ind);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
859
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
860 if (SMS_MT_ACK_MODE(sms_data) EQ SMS_MHC_PH2PLUS)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
861 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
862 SMS_INST_SET_STATE (STATE_TL, TL_RECEIVE);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
863 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
864 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
865 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
866 rl_report_req_ack (NULL);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
867 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
868
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
869 default:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
870 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
871 * RP_ERROR =>
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
872 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
873 rl_report_req_error (SMS_RP_CS_SEM_INC_MSG, NULL);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
874 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
875 * RL_RELEASE_REQ ==>
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
876 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
877 rl_release_req(SMS_INST.ti);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
878 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
879 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
880 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
881
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
882 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
883 +--------------------------------------------------------------------+
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
884 | PROJECT : GSM-PS (8410) MODULE : SMS_TLS |
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
885 | STATE : code ROUTINE : tl_timeout_ind |
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
886 +--------------------------------------------------------------------+
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
887
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
888 PURPOSE : Process the signal TL_TIMEOUT_IND.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
889
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
890 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
891 GLOBAL void tl_timeout_ind ( USHORT timer_id)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
892 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
893 GET_INSTANCE_DATA;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
894
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
895 TRACE_FUNCTION ("tl_timeout_ind()");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
896
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
897 switch (SMS_INST_GET_STATE (STATE_TL))
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
898 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
899 /* -------------------------------------- */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
900 case TL_ESTABLISH:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
901 /* -------------------------------------- */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
902
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
903 switch (GET_STATE(STATE_EST))
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
904 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
905 case EST_SEND:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
906 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
907 * Connection establishment for the SUBMIT has failed
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
908 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
909 TRACE_EVENT("Connection establishment for SUBMIT request failed");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
910
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
911 TRACE_EVENT_P1 ("TL retrans #%d", SMS_INST.tl_retx);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
912
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
913 if (SMS_INST.tl_retx < TL_MAX_RETANS)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
914 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
915 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
916 * Maximum number of TL retransmissions not exceeded.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
917 * Retry establishment.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
918 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
919 SMS_INST.tl_retx++;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
920 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
921 * establish connection
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
922 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
923 #ifdef REL99
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
924 tl_mnsms_send_prog_ind();
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
925 #endif /* REL99 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
926 tl_establish_connection(FALSE);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
927 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
928 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
929 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
930 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
931 * clean up instance
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
932 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
933 if (SMS_SDU(sms_data) NEQ NULL)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
934 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
935 MFREE (SMS_SDU(sms_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
936 SMS_SDU(sms_data) = NULL;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
937 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
938 SMS_SEL_REC(sms_data) = SMS_RECORD_NOT_EXIST;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
939 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
940 * TL state transition TL_IDLE
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
941 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
942 SMS_INST_SET_STATE (STATE_TL, TL_IDLE);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
943 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
944 * SUBMIT_CNF
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
945 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
946 tl_mnsms_submit_cnf (SMS_SEL_MEM(sms_data),
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
947 SMS_RECORD_NOT_EXIST,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
948 SMS_TP_REF_RET(sms_data),
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
949 SMS_CAUSE_NET_TIMEOUT,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
950 SMS_SDU(sms_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
951 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
952 * End the cmms session
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
953 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
954 if(CMMS_ACTIVE)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
955 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
956 tl_cmms_end();
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
957 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
958
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
959 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
960 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
961
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
962 case EST_CMD:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
963 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
964 * Connection establishment for the COMMAND has failed
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
965 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
966 TRACE_EVENT("Connection establishment for COMMAND request failed");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
967
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
968 TRACE_EVENT_P1 ("TL retrans #%d", SMS_INST.tl_retx);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
969
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
970 if (SMS_INST.tl_retx < TL_MAX_RETANS)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
971 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
972 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
973 * Maximum number of TL retransmissions not exceeded.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
974 * Retry establishment.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
975 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
976 SMS_INST.tl_retx++;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
977 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
978 * establish connection
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
979 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
980 #ifdef REL99
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
981 tl_mnsms_send_prog_ind();
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
982 #endif
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
983 tl_establish_connection(FALSE);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
984 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
985 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
986 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
987 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
988 * clean up instance
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
989 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
990 if (SMS_SDU(sms_data) NEQ NULL)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
991 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
992 MFREE (SMS_SDU(sms_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
993 SMS_SDU(sms_data) = NULL;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
994 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
995 SMS_SEL_REC(sms_data) = SMS_RECORD_NOT_EXIST;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
996 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
997 * TL state transition
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
998 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
999 SMS_INST_SET_STATE (STATE_TL, TL_IDLE);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1000 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1001 * COMMAND_CNF
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1002 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1003 tl_mnsms_command_cnf (SMS_TP_REF_RET(sms_data),
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1004 SMS_CAUSE_NET_TIMEOUT,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1005 SMS_SDU(sms_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1006 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1007 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1008
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1009 case EST_RTX:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1010 TRACE_EVENT("timeout establishment for retransmission ignored");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1011 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1012
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1013 case EST_SMMA:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1014 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1015 * Connection establishment for the SMMA has failed
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1016 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1017 TRACE_EVENT("Connection establishment for SMMA request failed");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1018
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1019 TRACE_EVENT_P1 ("TL retrans #%d", SMS_INST.tl_retx);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1020
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1021 if (SMS_INST.tl_retx < TL_MAX_RETANS)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1022 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1023 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1024 * Maximum number of TL retransmissions not exceeded.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1025 * Retry establishment.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1026 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1027 SMS_INST.tl_retx++;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1028 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1029 * try again
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1030 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1031 SMS_INST.retrans = TRUE;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1032 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1033 * establish connection
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1034 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1035
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1036 tl_establish_connection(FALSE);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1037
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1038 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1039 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1040 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1041 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1042 * TL state transition TL_OTHER
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1043 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1044 SMS_INST_SET_STATE (STATE_TL, TL_OTHER);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1045 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1046 * handle event in report ind
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1047 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1048 tl_report_ind(NULL,SMS_CAUSE_NET_TIMEOUT);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1049 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1050 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1051 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1052 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1053
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1054 /* -------------------------------------- */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1055 case TL_SEND:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1056 /* -------------------------------------- */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1057 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1058 * sending of the SUBMIT has failed
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1059 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1060 TRACE_EVENT("Transmission for SUBMIT request failed");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1061
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1062 TRACE_EVENT_P1 ("TL retrans #%d", SMS_INST.tl_retx);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1063
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1064 if (SMS_INST.tl_retx < TL_MAX_RETANS)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1065 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1066 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1067 * Maximum number of TL retransmissions not exceeded.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1068 * Retry establishment.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1069 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1070 SMS_INST.tl_retx++;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1071 #ifdef REL99
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1072 tl_mnsms_send_prog_ind();
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1073 #endif /* REl99 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1074
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1075 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1076 * TL state transition TL_ESTABLISH
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1077 * EST state transition EST_RTX
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1078 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1079 SMS_INST_SET_STATE (STATE_TL, TL_ESTABLISH);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1080 SET_STATE(STATE_EST,EST_RTX);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1081 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1082 * establish connection
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1083 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1084 tl_establish_connection(FALSE);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1085 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1086 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1087 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1088 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1089 * clean up instance
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1090 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1091 if (SMS_SDU(sms_data) NEQ NULL)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1092 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1093 MFREE (SMS_SDU(sms_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1094 SMS_SDU(sms_data) = NULL;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1095 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1096 SMS_SEL_REC(sms_data) = SMS_RECORD_NOT_EXIST;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1097 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1098 * TL state transition TL_IDLE
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1099 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1100 SMS_INST_SET_STATE (STATE_TL, TL_IDLE);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1101 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1102 * SUBMIT_CNF
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1103 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1104 tl_mnsms_submit_cnf (SMS_SEL_MEM(sms_data),
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1105 SMS_RECORD_NOT_EXIST,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1106 SMS_TP_REF_RET(sms_data),
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1107 SMS_CAUSE_NET_TIMEOUT,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1108 SMS_SDU(sms_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1109 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1110 * End the cmms session
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1111 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1112 if(CMMS_ACTIVE)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1113 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1114 tl_cmms_end();
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1115 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1116 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1117 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1118
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1119 /* -------------------------------------- */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1120 case TL_COMMAND:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1121 /* -------------------------------------- */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1122 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1123 * sending of the COMMAND has failed
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1124 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1125 TRACE_EVENT("Transmission for COMMAND request failed");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1126
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1127 TRACE_EVENT_P1 ("TL retrans #%d", SMS_INST.tl_retx);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1128
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1129 if (SMS_INST.tl_retx < TL_MAX_RETANS)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1130 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1131 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1132 * Maximum number of TL retransmissions not exceeded.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1133 * Retry establishment.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1134 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1135 SMS_INST.tl_retx++;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1136 #ifdef REL99
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1137 tl_mnsms_send_prog_ind();
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1138 #endif /* REl99 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1139 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1140 * TL state transition TL_ESTABLISH
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1141 * EST state transition EST_CMD
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1142 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1143 SMS_INST_SET_STATE (STATE_TL, TL_ESTABLISH);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1144 SET_STATE(STATE_EST,EST_CMD);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1145 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1146 * establish connection
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1147 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1148 tl_establish_connection(FALSE);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1149 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1150 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1151 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1152 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1153 * clean up instance
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1154 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1155 if (SMS_SDU(sms_data) NEQ NULL)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1156 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1157 MFREE (SMS_SDU(sms_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1158 SMS_SDU(sms_data) = NULL;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1159 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1160 SMS_SEL_REC(sms_data) = SMS_RECORD_NOT_EXIST;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1161 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1162 * TL state transition TL_IDLE
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1163 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1164 SMS_INST_SET_STATE (STATE_TL, TL_IDLE);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1165 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1166 * COMMAND_CNF
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1167 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1168 tl_mnsms_command_cnf (SMS_TP_REF_RET(sms_data),
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1169 SMS_CAUSE_NET_TIMEOUT,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1170 SMS_SDU(sms_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1171 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1172 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1173
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1174 /* -------------------------------------- */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1175 default:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1176 /* -------------------------------------- */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1177
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1178 // TRACE_EVENT("TL_TIMEOUT_IND ignored");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1179 if (timer_id EQ TRAM)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1180 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1181 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1182 * sending of the SMMA has failed
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1183 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1184 TRACE_EVENT("Transmission for SMMA failed");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1185 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1186 * ??? !!! ???
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1187 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1188 --SMS_RP_REF(sms_data);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1189 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1190 * TL state transition TL_ESTABLISH
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1191 * EST state transition EST_SMMA
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1192 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1193 SMS_INST_SET_STATE (STATE_TL, TL_ESTABLISH);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1194 SET_STATE(STATE_EST,EST_SMMA);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1195 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1196 * try again
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1197 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1198 SMS_INST.retrans = TRUE;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1199 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1200 * establish connection
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1201 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1202 tl_establish_connection(FALSE);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1203 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1204 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1205 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1206 tl_report_ind(NULL,SMS_CAUSE_NET_TIMEOUT);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1207 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1208 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1209 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1210 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1211 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1212 +--------------------------------------------------------------------+
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1213 | PROJECT : GSM-PS (8410) MODULE : SMS_TLS |
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1214 | STATE : code ROUTINE : tl_report_ind |
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1215 +--------------------------------------------------------------------+
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1216
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1217 PURPOSE : Process the signal TL_REPORT_IND.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1218
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1219 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1220
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1221 LOCAL UBYTE tl_check_condx_send (T_BACKUP *prop,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1222 UBYTE mem_type,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1223 UBYTE condx,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1224 UBYTE rec_num)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1225 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1226 if (condx EQ SMS_CONDX_OVR_NON)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1227 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1228 if ((rec_num = tl_get_free_space (mem_type)) NEQ 0)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1229 return rec_num;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1230 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1231 return SMS_RECORD_NOT_EXIST;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1232 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1233 else if (condx EQ SMS_CONDX_OVR_MO)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1234 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1235 switch (tl_get_status (prop, rec_num - 1))
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1236 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1237 case SMS_RECORD_REC_UNREAD:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1238 case SMS_RECORD_REC_READ:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1239 if ((rec_num = tl_get_free_space (mem_type)) NEQ 0)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1240 return rec_num;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1241 return SMS_RECORD_NOT_EXIST;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1242
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1243 default:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1244 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1245 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1246 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1247 return rec_num;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1248 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1249
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1250 GLOBAL void tl_report_ind (T_rp_user_data *rp_user_data,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1251 USHORT cause)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1252 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1253 GET_INSTANCE_DATA;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1254 T_SIM_PDU *sim_pdu;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1255 UBYTE rec_num, next_rec_num = 0;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1256
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1257 TRACE_FUNCTION ("tl_report_ind()");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1258
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1259 #ifdef REL99
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1260 if (cause NEQ SMS_NO_ERROR)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1261 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1262 SMS_INST.failed_msg_rec_num = SMS_SEL_REC(sms_data);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1263 SMS_INST.failed_msg_mem = SMS_SEL_MEM(sms_data);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1264 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1265 #endif
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1266
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1267 if (sms_data)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1268 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1269 if (SMS_SDU(sms_data) NEQ NULL)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1270 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1271 MFREE (SMS_SDU(sms_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1272 SMS_SDU(sms_data) = NULL;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1273 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1274
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1275 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1276 * An SMS DELIVER REPORT TPDU is carried as a RP User Data element within
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1277 * an RP ERROR PDU and is part of the negative acknowledgement to an SMS
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1278 * DELIVER or SMS STATUS REPORT.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1279 *
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1280 * An SMS DELIVER REPORT TPDU is also carried as a RP User Data element
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1281 * within an RP ACK PDU and is part of a positive acknowledgement to a
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1282 * SMS DELIVER or SMS STATUS REPORT.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1283 * [3gpp 23.040 clause 9.2.2.1a]
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1284 *
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1285 * The cause value (invalid / non-invalid) is used to distinguish whether
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1286 * the RP user data (SMS DELIVER REPORT) came with RP-ACK / RP-ERROR.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1287 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1288
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1289 if (IS_CAUSE_INVALID(cause) AND
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1290 (rp_user_data NEQ NULL AND rp_user_data->v_tpdu))
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1291 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1292 MALLOC (sim_pdu, sizeof(T_SIM_PDU));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1293 MALLOC (SMS_SDU(sms_data), sizeof(T_sms_sdu));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1294
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1295 memset (&sim_pdu->rp_addr, 0, sizeof(T_rp_addr));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1296 sim_pdu->tp_mti = rp_user_data->tp_mti;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1297 sim_pdu->tpdu = rp_user_data->tpdu;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1298 sim_pdu->v_tpdu = TRUE;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1299 sim_pdu->tp_vt_mti = SMS_VT_SIM_PDU;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1300
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1301 SMS_SDU(sms_data)->o_buf = 0;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1302 SMS_SDU(sms_data)->l_buf = SIM_PDU_LEN<<3;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1303 if (ccd_codeMsg (CCDENT_SMS, BOTH,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1304 (T_MSGBUF *)SMS_SDU(sms_data),
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1305 (UBYTE *)sim_pdu, SMS_VT_SIM_PDU) NEQ ccdOK)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1306 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1307 MFREE (SMS_SDU(sms_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1308 SMS_SDU(sms_data) = NULL;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1309 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1310 MFREE (sim_pdu);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1311 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1312 switch (SMS_INST_GET_STATE (STATE_TL))
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1313 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1314 /* -------------------------------------- */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1315 case TL_ESTABLISH:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1316 /* -------------------------------------- */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1317
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1318 switch (GET_STATE(STATE_EST))
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1319 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1320 case EST_SEND:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1321 case EST_RTX:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1322 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1323 * TL state transition TL_SEND
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1324 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1325 SMS_INST_SET_STATE (STATE_TL, TL_SEND);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1326 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1327 case EST_CMD:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1328 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1329 * TL state transition TL_COMMAND
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1330 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1331 SMS_INST_SET_STATE (STATE_TL, TL_COMMAND);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1332 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1333 case EST_SMMA:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1334 if (SMS_INST.retrans)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1335 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1336 SMS_INST.retrans = FALSE;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1337 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1338 * TL state transition TL_OTHER
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1339 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1340 SMS_INST_SET_STATE (STATE_TL, TL_OTHER);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1341 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1342 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1343 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1344 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1345 * RL_START_TRAM_REQ
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1346 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1347 rl_start_tram_req();
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1348 return;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1349 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1350 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1351 default:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1352 TRACE_ERROR("Invalid EST state!");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1353 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1354 * TL state transition TL_IDLE
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1355 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1356 SMS_INST_SET_STATE (STATE_TL, TL_IDLE);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1357 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1358 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1359 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1360 * TL_REPORT_IND recursive
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1361 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1362 tl_report_ind(rp_user_data,cause);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1363 return;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1364
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1365 /* -------------------------------------- */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1366 case TL_SEND:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1367 /* -------------------------------------- */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1368
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1369 if (!IS_CAUSE_INVALID(cause) AND
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1370 (rp_user_data NEQ NULL) AND (SMS_INST.tl_retx > 0))
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1371 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1372 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1373 * Retransmission case as of 23.040 subclause 9.2.3.6
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1374 * and RP ERROR with RP USER DATA received. Check whether
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1375 * the RP USER DATA contains a SMS SUBMIT REPORT with TP-FCS set to
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1376 * "SM Rejected - Duplicate SM".
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1377 * If so the transmission has been a success and not a failure.
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1378 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1379 MCAST (tp_sbmt_rep_err, TP_SBMT_REP_ERR); /* T_TP_SBMT_REP_ERR */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1380 BUF_tpdu *tpdu = &rp_user_data->tpdu;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1381 BYTE ccd_result;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1382
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1383 switch (tpdu->b_tpdu[tpdu->o_tpdu >> 3] & 0x3)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1384 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1385 case SMS_SUBMIT_REPORT:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1386 /* Copy tpdu from rp_user_data, it's part of decoded msg buffer */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1387 MALLOC (tpdu, sizeof(BUF_tpdu));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1388 memcpy (tpdu, &rp_user_data->tpdu, sizeof (BUF_tpdu));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1389
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1390 CCD_START;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1391 ccd_result = ccd_decodeMsg (CCDENT_SMS, DOWNLINK,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1392 (T_MSGBUF *)tpdu,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1393 (UBYTE *)tp_sbmt_rep_err,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1394 SMS_VT_SBMT_REP_ERR);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1395 if (ccd_result NEQ ccdOK)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1396 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1397 /* Could error handling be elaborated here? */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1398 TRACE_ERROR ("ccd decoding problem");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1399 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1400
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1401 if (tp_sbmt_rep_err->tp_fcs EQ SMS_FCS_REJ_DUPL_SM)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1402 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1403 TRACE_EVENT ("SC had SMS");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1404 cause = SMS_NO_ERROR; /* Enter "no error" handling below */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1405 /* Since the transmission was successful, the data stored for
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1406 retransmission can be freed */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1407 if (SMS_DATA_REQ(sms_data) NEQ NULL)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1408 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1409 PFREE (SMS_DATA_REQ(sms_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1410 SMS_DATA_REQ(sms_data) = NULL;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1411 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1412 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1413 CCD_END;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1414
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1415 MFREE (tpdu);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1416 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1417
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1418 default:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1419 break; /* Do nothing, it is an error */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1420 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1421 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1422
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1423 if (IS_CAUSE_INVALID(cause) AND SMS_SEL_REC(sms_data) > 0)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1424 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1425 if (SMS_SEL_MEM(sms_data) EQ MEM_SM AND
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1426 SMS_SEL_REC(sms_data) <= SMS_SIM_PROP(sms_data).max_record)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1427 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1428 if ((rec_num = tl_check_condx_send (&SMS_SIM_PROP(sms_data),
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1429 MEM_SM,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1430 SMS_CONDX(sms_data),
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1431 SMS_SEL_REC(sms_data)))
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1432 NEQ SMS_RECORD_NOT_EXIST)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1433 SMS_SEL_REC(sms_data) = rec_num;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1434 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1435 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1436 #ifdef REL99
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1437 if(SMS_INST.failed_msg_retx EQ FALSE)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1438 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1439 #endif
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1440 tl_mnsms_submit_cnf (MEM_SM, SMS_RECORD_NOT_EXIST,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1441 SMS_TP_REF_RET(sms_data),
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1442 SMS_CAUSE_MEM_FULL, SMS_SDU(sms_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1443 #ifdef REL99
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1444 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1445 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1446 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1447 tl_mnsms_retrans_cnf (MEM_SM, SMS_RECORD_NOT_EXIST,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1448 SMS_TP_REF_RET(sms_data),
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1449 SMS_CAUSE_MEM_FULL, SMS_SDU(sms_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1450 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1451 #endif
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1452
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1453 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1454 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1455 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1456 UBYTE sim_acc_ix;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1457 T_SMS_SIM_ACCESS_INFO *sms_sim_access_info_ptr;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1458 if (tl_sms_reserve_req_id(&sim_acc_ix))
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1459 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1460 PALLOC (update_req, SIM_UPDATE_RECORD_REQ);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1461 sms_sim_access_info_ptr = &sms_data->sms_sim_access_info[sim_acc_ix];
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1462 update_req->source = SRC_SMS;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1463 update_req->req_id = sim_acc_ix;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1464 update_req->v_path_info = FALSE;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1465 update_req->datafield = sms_sim_access_info_ptr->datafield
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1466 = SIM_SMS;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1467 update_req->record = sms_sim_access_info_ptr->rec_num
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1468 = SMS_SEL_REC(sms_data);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1469 update_req->length = SIM_LENGTH_SMS_RECORD;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1470
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1471 tl_convert_mo_to_mem (SMS_DATA_REQ(sms_data),
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1472 update_req->linear_data);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1473
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1474 PSENDX (SIM, update_req);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1475 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1476 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1477 tl_store_status (&SMS_SIM_PROP(sms_data), rec_num-1, SIM_SMS_PENDING);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1478 tl_set_access_fifo (ACCESS_BY_MMI);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1479 SET_STATE (STATE_MMI, MMI_REPLACE);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1480 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1481 * concat control
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1482 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1483 if (sms_data->concat_cntrl.concatenation NEQ TRUE)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1484 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1485 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1486 * RL_RELEASE_REQ ==>
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1487 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1488 rl_release_req(SMS_INST.ti);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1489 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1490 return;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1491 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1492 if (SMS_SEL_MEM(sms_data) EQ MEM_ME AND
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1493 SMS_SEL_REC(sms_data) <= SMS_ME_PROP(sms_data).max_record)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1494 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1495 UBYTE data[SIZE_EF_SMS];
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1496
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1497 if ((rec_num = tl_check_condx_send (&SMS_ME_PROP(sms_data),
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1498 MEM_ME,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1499 SMS_CONDX(sms_data),
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1500 SMS_SEL_REC(sms_data)))
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1501 NEQ SMS_RECORD_NOT_EXIST)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1502 SMS_SEL_REC(sms_data) = rec_num;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1503 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1504 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1505 #ifdef REL99
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1506 if(SMS_INST.failed_msg_retx EQ FALSE)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1507 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1508 #endif
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1509 tl_mnsms_submit_cnf (MEM_ME, SMS_RECORD_NOT_EXIST,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1510 SMS_TP_REF_RET(sms_data),
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1511 SMS_CAUSE_MEM_FULL, SMS_SDU(sms_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1512 #ifdef REL99
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1513 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1514 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1515 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1516 tl_mnsms_retrans_cnf (MEM_ME, SMS_RECORD_NOT_EXIST,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1517 SMS_TP_REF_RET(sms_data),
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1518 SMS_CAUSE_MEM_FULL, SMS_SDU(sms_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1519 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1520 #endif
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1521 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1522 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1523 tl_convert_mo_to_mem (SMS_DATA_REQ(sms_data), data);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1524 /* Implements Measure#32: Row 113 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1525 if (pcm_WriteRecord ((UBYTE *)ef_sms_id, SMS_SEL_REC(sms_data),
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1526 SIZE_EF_SMS, data) NEQ DRV_OK)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1527 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1528 cause = SMS_CAUSE_MEM_FAIL;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1529 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1530 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1531 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1532 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1533 * MNSMS_SUBMIT_CNF =>
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1534 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1535 #ifdef REL99
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1536 if(SMS_INST.failed_msg_retx EQ FALSE)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1537 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1538 #endif
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1539 tl_mnsms_submit_cnf (SMS_SEL_MEM(sms_data), SMS_RECORD_NOT_EXIST,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1540 SMS_TP_REF_RET(sms_data), cause, SMS_SDU(sms_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1541 #ifdef REL99
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1542 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1543 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1544 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1545 tl_mnsms_retrans_cnf (SMS_SEL_MEM(sms_data), SMS_RECORD_NOT_EXIST,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1546 SMS_TP_REF_RET(sms_data), cause, SMS_SDU(sms_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1547 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1548 #endif
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1549 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1550 * concat control
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1551 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1552 if ((sms_data->concat_cntrl.concatenation EQ TRUE) AND !CMMS_ACTIVE)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1553 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1554 if (cause EQ SMS_NO_ERROR)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1555 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1556 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1557 * start timer TLCT for next submit req supervision
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1558 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1559 sms_timer_start(TLCT);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1560 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1561 * TL State Transition TL_SEND_CONTD
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1562 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1563 SMS_INST_SET_STATE (STATE_TL, TL_SEND_CONTD);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1564 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1565 * do not release connection now
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1566 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1567 sms_data->concat_cntrl.release_pending = TRUE;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1568 return;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1569 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1570 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1571 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1572 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1573 * error case: end concatenation series
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1574 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1575 sms_data->concat_cntrl.concatenation = FALSE;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1576 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1577 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1578 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1579 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1580 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1581 * cmms control
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1582 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1583 if(CMMS_ACTIVE AND (sms_data->cmms_release_pending EQ TRUE))
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1584 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1585 tl_cmms_start();
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1586 SMS_INST_SET_STATE (STATE_TL, TL_SEND_CONTD);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1587
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1588 if (sms_data->concat_cntrl.concatenation EQ TRUE)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1589 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1590 if (cause EQ SMS_NO_ERROR)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1591 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1592 sms_data->concat_cntrl.release_pending = TRUE;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1593 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1594 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1595 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1596 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1597 * error case: end concatenation series
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1598 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1599 sms_data->concat_cntrl.concatenation = FALSE;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1600 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1601 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1602 return;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1603 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1604 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1605 if(CMMS_ACTIVE)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1606 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1607 tl_cmms_end();
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1608 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1609 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1610 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1611
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1612 /* -------------------------------------- */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1613 case TL_COMMAND:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1614 /* -------------------------------------- */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1615
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1616 #ifdef REL99
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1617 if(SMS_INST.failed_msg_retx EQ FALSE)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1618 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1619 #endif
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1620
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1621 tl_mnsms_command_cnf (SMS_TP_REF_RET(sms_data), cause, SMS_SDU(sms_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1622 #ifdef REL99
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1623 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1624 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1625 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1626 tl_mnsms_retrans_cnf (NOT_PRESENT_8BIT, SMS_RECORD_NOT_EXIST,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1627 SMS_TP_REF_RET(sms_data), cause, SMS_SDU(sms_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1628 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1629 #endif
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1630
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1631 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1632
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1633 /* -------------------------------------- */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1634 case TL_RECEIVE:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1635 /* -------------------------------------- */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1636
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1637 if (!IS_CAUSE_INVALID(cause))
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1638 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1639 switch (GET_STATE (STATE_NET))
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1640 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1641 case NET_WRITE:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1642 case NET_READ:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1643 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1644 default:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1645 if (SMS_MT_ACK_MODE(sms_data) EQ SMS_MHC_PH2PLUS)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1646 tl_mnsms_error_ind ((USHORT)((GET_CAUSE_DEFBY(cause) EQ DEFBY_CONDAT)?
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1647 cause: SMS_CAUSE_NET_TIMEOUT));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1648 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1649 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1650 SET_STATE (STATE_NET, NET_IDLE);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1651 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1652
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1653 /* -------------------------------------- */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1654 case TL_OTHER:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1655 /* -------------------------------------- */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1656
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1657 if (GET_STATE (STATE_MMI) EQ MMI_DELETE)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1658 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1659 if (!tl_sms_memo_exceeded (TRUE))
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1660 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1661 if(SMS_REC_STATUS(sms_data) NEQ CMGD_DEL_INDEX)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1662 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1663 if(SMS_SEL_MEM(sms_data) EQ MEM_SM)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1664 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1665 /* Status value is given. Find the next record satisfying this status value */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1666 next_rec_num = tl_search_record_for_delete (&SMS_SIM_PROP(sms_data),
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1667 SMS_SEL_REC(sms_data),
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1668 SMS_REC_STATUS(sms_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1669 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1670 else if(SMS_SEL_MEM(sms_data) EQ MEM_ME)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1671 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1672 /* Status value is given. Find the next record satisfying this status value */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1673 next_rec_num = tl_search_record_for_delete (&SMS_ME_PROP(sms_data),
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1674 SMS_SEL_REC(sms_data),
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1675 SMS_REC_STATUS(sms_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1676 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1677 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1678 tl_mnsms_delete_cnf (SMS_SEL_MEM(sms_data), SMS_SEL_REC(sms_data), next_rec_num,
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1679 SIM_NO_ERROR);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1680 SET_STATE (STATE_MMI, MMI_IDLE);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1681 #ifdef SIM_TOOLKIT
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1682 if (sms_data->file_update_ind NEQ NULL)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1683 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1684 T_SIM_FILE_UPDATE_IND *file_update_ind = sms_data->file_update_ind;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1685 sms_data->file_update_ind = NULL;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1686 tl_sim_file_update_ind (file_update_ind);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1687 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1688 #endif
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1689 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1690 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1691 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1692 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1693 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1694 * RL_RELEASE_REQ ==>
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1695 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1696 rl_release_req(SMS_INST.ti);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1697 return;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1698 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1699 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1700 else if (GET_STATE (STATE_MMI) EQ MMI_RESUME)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1701 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1702 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1703 * <<acknowledgment>> of SMMA message for
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1704 * user initiated RESUME
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1705 * we expect here that the given tl_report_ind signal
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1706 * is generated in the following cases:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1707 * - success (positive ack for smma)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1708 * - error (negative ack for smma)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1709 * - repeated timeout (waiting for ack exceeded limit)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1710 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1711 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1712 * Unset memory full condition in any case
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1713 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1714 sms_data->pr_cntrl.delivery_state = SMS_DELIVER_STATUS_RESUME;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1715 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1716 * save cause
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1717 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1718 if (IS_CAUSE_INVALID(cause))
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1719 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1720 sms_data->pr_cntrl.save_cause = SMS_NO_ERROR;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1721 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1722 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1723 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1724 sms_data->pr_cntrl.save_cause = cause;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1725 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1726 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1727 * Unset notification flag on sim
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1728 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1729 tl_sms_memo_resume();
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1730 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1731 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1732 else if (GET_STATE (STATE_MMI) NEQ MMI_IDLE)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1733 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1734 SET_STATE (STATE_MMI, MMI_IDLE);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1735 #ifdef SIM_TOOLKIT
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1736 if (sms_data->file_update_ind NEQ NULL)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1737 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1738 T_SIM_FILE_UPDATE_IND *file_update_ind = sms_data->file_update_ind;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1739 sms_data->file_update_ind = NULL;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1740 tl_sim_file_update_ind (file_update_ind);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1741 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1742 #endif
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1743 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1744 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1745 /*FALLTHROUGH*/ /*lint -fallthrough*/
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1746
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1747 /* -------------------------------------- */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1748 case TL_IDLE:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1749 /* -------------------------------------- */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1750
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1751 if (SMS_ENT_STATE(sms_data) EQ SMS_STATE_INITIALISING)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1752 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1753 if (!tl_sms_memo_exceeded (TRUE))
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1754 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1755 tl_mnsms_report_ind (SMS_ENT_STATE(sms_data) = SMS_STATE_READY);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1756 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1757 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1758 else
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1759 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1760 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1761 * RL_RELEASE_REQ ==>
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1762 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1763 rl_release_req(SMS_INST.ti);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1764 return;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1765 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1766 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1767 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1768
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1769 /* -------------------------------------- */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1770 default:
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1771 /* -------------------------------------- */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1772
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1773 TRACE_EVENT("TL_REPORT_IND ignored");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1774 break;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1775 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1776
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1777 if (SMS_SDU(sms_data) NEQ NULL)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1778 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1779 MFREE (SMS_SDU(sms_data));
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1780 SMS_SDU(sms_data) = NULL;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1781 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1782 SMS_SEL_REC(sms_data) = SMS_RECORD_NOT_EXIST;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1783 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1784 * TL State Transition TL_IDLE
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1785 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1786 SMS_INST_SET_STATE (STATE_TL, TL_IDLE);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1787 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1788 * RL_RELEASE_REQ ==>
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1789 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1790 rl_release_req(SMS_INST.ti);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1791 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1792 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1793
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1794 /*
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1795 +--------------------------------------------------------------------+
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1796 | PROJECT : GSM-PS (8410) MODULE : SMS_TLF |
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1797 | STATE : code ROUTINE : tl_cmms_end |
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1798 +--------------------------------------------------------------------+
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1799
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1800 PURPOSE : Function used for ending the CMMS Session
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1801
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1802 */
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1803
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1804 GLOBAL void tl_cmms_end(void)
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1805 {
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1806 GET_INSTANCE_DATA;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1807 TRACE_FUNCTION ("tl_cmms_end()");
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1808
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1809 sms_data->cmms_release_pending = FALSE;
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1810 sms_timer_stop(TMMS);
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1811 tl_mnsms_cmms_end_ind();
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1812 }
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1813
27a4235405c6 src/g23m-gsm: import from LoCosto source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1814 #endif /* #ifndef SMS_TLS_C */