FreeCalypso > hg > fc-magnetite
diff src/ui3/mfw/mfw_cb.c @ 420:e8ddbb0837ed
src/ui3: initial import of TCS3/LoCosto BMI & MFW code
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 21 Jan 2018 03:09:00 +0000 |
parents | |
children | 40afa09e73cf |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ui3/mfw/mfw_cb.c Sun Jan 21 03:09:00 2018 +0000 @@ -0,0 +1,2704 @@ +/* ++--------------------------------------------------------------------+ +| PROJECT: GSM-MFW (8417) $Workfile:: Mfw_cb.c $| +| $Author:: Ak $Revision:: 1 $| +| CREATED: 13.10.98 $Modtime:: 10.04.00 15:01 $| +| CREATED: 13.10.98 $Modtime:: 20.01.00 14:29 $| +| STATE : code | ++--------------------------------------------------------------------+ + + MODULE : MFW_CB + + PURPOSE : This modul contains the functions for call back. + + + $History:: Mfw_cb.c $ + Aug 07, 2007 DR:OMAPS00137726 x0066814(Geetha) + Description:HPLMN Manual Selection at power on -unable to perform manual selection at power ON + Solution: In rAT_PlusCME, under case AT_CMD_NRG, added the code to list PLMN if Manual is the + network regieteration mode during bootup. + + May 31, 2007 DR: OMAPS00133201 x0pleela + Description: MS keeps searching networks and doesn't list available PLMNs after + performing manual selection + Solution : In function rAT_PlusCME(), for commands AT_CMD_COPS and + AT_CMD_NRG, passing the error code as parameter to function + nm_error_cops() + + June 05, 2007 DR:OMAPS00133241 x0061560(sateeshg) + Description:ASTEC29607,SIM:The sim card should not return 9240 still. + Solution :Error indication from Aci E_PHB_ERROR sent to mmi. + + + May 10 2007 DR:OMAPS00127983 x066814 + Description: PSTN caller name not displayed on MS + Solution: Added the following functions: + 1. set_cnap_name() + 2. get_cnap_name() + 3. send_cnap_name_information_mmi() + Using these functions, added the code for rAT_PercentCNAP. + + Oct 05, 2006 ER: OMAPS00094496 x0061088(Prachi) + Description:Enhance RSSI to 3 parameters: Strength, quality, min-access-level + Solution:To solve the ER OMAPS0094496, rAT_PercentCSQ() is now receving four + parameters i.e. RSSI,Bit Error rate, Actual level, Minimum access level and also + rAT_PercentCSQ() is checking if actual level is less than minimum level and then + calls globalSignalUpdate() to show the signal strength. + + + Aug 01, 2006 DR: OMAPS00082374 x0pleela + Description: EONS Failures - unexpected output from the MMI: 2 carriers; on the top always T-Mobile + Solution: a) Added the functionality which was removed before for rat_%CSTAT + + Jun 23, 2006 DR: OMAPS00082374 x0pleela + Description: EONS Failures - unexpected output from the MMI: 2 carriers; on the top always T-Mobile + Solution: a) Removed the usage of global variable gEons_alloc_active + b) Removed the call to function set_opn_sel_done(TRUE); in func rat_%CNIV + c) Removed the functionality added before for rat_%CSTAT + + July 17, 2006 DR: OMAPS00082792 x0039928 + Description:Changes to be done in MMI for Move all entries from SIM to FFS (Defect 76492) + Solution: Ready signal is sent to MMI when rAT_Ok is called by ACI for CPBW command + + June 02, 2006 DR: OMAPS00078005 x0021334 + Descripton: Test for NITZ (Network Identity and Timezone) support - No New time was displayed + Solution: New Time/Date received from network is sent to MFW by lower layer by invoking 'rAT_PercentCTZV' + function. This function has now been implemented to pass on the received values to MMI + for user confirmation and RTC updation. + + May 18, 2006 DR: OMAPS00070657 x0pleela + Description: CPHS feature on Locosto-Lite + Solution: Function "sendCPWIEvt" is called in rAT_PercentCPVWI to handle voice mail indication + + xrashmic 1 Jul, 2006 OMAPS00075784 + Changed U8 to T_ACI_CME_ERR in rAT_PlusCME + + June 15, 2006 OMAPS00079492 x0043642 + Description : FT TMO (wk20/06) TC 9.1, 9.2 Multi Party, MS fails to return to idle mode + Solution : call set_cmdHold() to assign MFW_CM_DISCONNECT_ALL to variable cmd_hold + when ATH command is entered. + + May 15, 2006 DVT: OMAPS00077751 x0043642 + Description: MFW needs to implement rAT_PercentSATT needed for SAT class E + Solution: Define a function rAT_PercentSATT() + May 15, 2006 DR: OMAPS00067919 x0pleela + Description: SIMP:On repeat Depersonalisation with invalid password MEPD unblock key should + be asked not Puk1. + Solution:Made the following changes + 1. Added functionality for rAT_PlusCPIN + 2. Made code changss in rat_plusCME for SIMP + + May 10, 2006 REF: DRT OMAPS00075829 xdeepadh + Description: Submission of ACI and SAP changes for Imaging ERs + Solution: Using the mechanism where MFW can receive primitives without + ACI to know about it. + + + Apr 24, 2006 ERT: OMAPS00067603 x0043642 + Description: Engineering mode + Solution: Handle the response from ACI (through rAT_percentEINFO). + + + Mar 15, 2006 ER: OMAPS00067709 x0pleela + Description: Voice Buffering implementation on C+ for PTT via PCM API + Solution: Functions rAT_NO_CARRIER, rAT_NO_ANSWER + Changes: update the reason for calling record_stop + + * Mar 23, 2006 REF:DR OMAPS00069173 a0393213 + * Description: GSM - MOC - AT USB - Live Network . Display problem when a MO call is made through AT interface + * Solution: misplaced break statement corrected + + + Feb 15, 2006 ER: OMAPS00065203 x0pleela + Description: Cingular Operator Name Prioritization implementation required + Solution: Incorporated review comments + - Removed global variable gOper_sel_done added earlier + + Feb 09, 2006 ER: OMAPS00065203 x0pleela + Description: Cingular Operator Name Prioritization implementation required + Solution: Implemented functionality for rAT_PercentCNIV + Implemented functionality for rAT_PercentCSTAT + + + * + * Nov 02, 2005 DR OMAPS00052132 xdeepadh + * Bug:Not able to access the SMS inbox and also not able to send SMS in Locosto Lite build + * Fix: The ATI Enums usage has been put under the FF_ATI flag + + Nov 03, 2005 DR: OMAPS00052032 - xpradipg + Description : Locosto: SIMP - integration of issues submitted by solDel on + ME Personalization - changes as per the new interfaces + Solution : The return value of sAT_PlusCLCK of AT_EXCT is handled and + a please wait screen is displayed until the response is recieved + + * + * June 01, 2005 REF: CRR 31559 x0021334 + * Description: TCS2.1.1 SW not buildable without engineering mode + * Solution: Engineering Mode specific functions are guarded by 'FF_EM_MODE' flag + * + * x0018858 24 Mar, 2005 MMI-FIX-11321 + * Issue Description :- If the inbox is full and a new message is receivd, no indication is received. + * Fix: Added support for handling indication when message box is full and + * there is a pending message. + + * x0047685, May 22 2006 + * Added R99 CC Interface changes. + * rAT_PercentCMGRS moved under REL99 flag. + * + * ***************** Version 51 ***************** + * User: Vo Date: 20.01.00 Time: 14:30 + * Updated in $/GSM/Condat/MS/SRC/MFW + * + * ***************** Version 50 ***************** + * User: Vo Date: 20.01.00 Time: 12:24 + * Updated in $/GSM/Condat/MS/SRC/MFW + * + * ***************** Version 49 ***************** + * User: Vo Date: 14.01.00 Time: 20:02 + * Updated in $/GSM/Condat/MS/SRC/MFW + * New: Save the setting for SMS parameter and cell broadcast + * parameter + * + * ***************** Version 48 ***************** + * User: Vo Date: 10.01.00 Time: 16:15 + * Updated in $/GSM/Condat/MS/SRC/MFW + * + * ***************** Version 47 ***************** + * User: Ak Date: 5.01.00 Time: 13:27 + * Updated in $/GSM/Condat/MS/SRC/MFW + * + * ***************** Version 46 ***************** + * User: Vo Date: 22.12.99 Time: 15:47 + * Updated in $/GSM/Condat/MS/SRC/MFW + * add "call id" for disconnect + * + * ***************** Version 45 ***************** + * User: Sab Date: 2.12.99 Time: 9:25 + * Updated in $/GSM/Condat/MS/SRC/MFW + * Why: Improvement. + * What: Implementation of phonebook ready indication. + * + * ***************** Version 44 ***************** + * User: Vo Date: 11.11.99 Time: 14:31 + * Updated in $/GSM/Condat/MS/SRC/MFW + * New: DTMF + * + * ***************** Version 43 ***************** + * User: Vo Date: 21.10.99 Time: 13:05 + * Updated in $/GSM/Condat/MS/SRC/MFW + * new implemention for command CPOL + * + * ***************** Version 42 ***************** + * User: Vo Date: 10.09.99 Time: 19:14 + * Updated in $/GSM/DEV/MS/SRC/MFW + * Add CNUM and USSD + * + * ***************** Version 41 ***************** + * User: Vo Date: 30.08.99 Time: 13:25 + * Updated in $/GSM/DEV/MS/SRC/MFW + * AoC + * PIN unblock + * call held + * + * ***************** Version 39 ***************** + * User: Vo Date: 16.07.99 Time: 13:50 + * Updated in $/GSM/DEV/MS/SRC/MFW + * + * ***************** Version 38 ***************** + * User: Es Date: 6.07.99 Time: 12:02 + * Updated in $/GSM/DEV/MS/SRC/MFW + * + * ***************** Version 37 ***************** + * User: Vo Date: 2.07.99 Time: 19:02 + * Updated in $/GSM/DEV/MS/SRC/MFW + * + * ***************** Version 36 ***************** + * User: Vo Date: 2.07.99 Time: 15:25 + * Updated in $/GSM/DEV/MS/SRC/MFW + * + * ***************** Version 35 ***************** + * User: Vo Date: 22.06.99 Time: 12:53 + * Updated in $/GSM/DEV/MS/SRC/MFW + * + * ***************** Version 34 ***************** + * User: Vo Date: 21.06.99 Time: 20:59 + * Updated in $/GSM/DEV/MS/SRC/MFW + * + * ***************** Version 32 ***************** + * User: Vo Date: 14.06.99 Time: 13:56 + * Updated in $/GSM/DEV/MS/SRC/MFW + * + * ***************** Version 31 ***************** + * User: Vo Date: 14.06.99 Time: 10:06 + * Updated in $/GSM/DEV/MS/SRC/MFW + * + * ***************** Version 30 ***************** + * User: Vo Date: 1.06.99 Time: 14:46 + * Updated in $/GSM/DEV/MS/SRC/MFW + * + * ***************** Version 29 ***************** + * User: Vo Date: 20.05.99 Time: 17:26 + * Updated in $/GSM/DEV/MS/SRC/MFW + * + * ***************** Version 28 ***************** + * User: Vo Date: 28.04.99 Time: 16:11 + * Updated in $/GSM/DEV/MS/SRC/MFW + * + * ***************** Version 26 ***************** + * User: Vo Date: 31.03.99 Time: 14:09 + * Updated in $/GSM/DEV/MS/SRC/MFW + * + * ***************** Version 24 ***************** + * User: Vo Date: 15.03.99 Time: 13:40 + * Updated in $/GSM/DEV/MS/SRC/MFW + * + * ***************** Version 23 ***************** + * User: Vo Date: 11.03.99 Time: 18:32 + * Updated in $/GSM/DEV/MS/SRC/MFW + * + * ***************** Version 22 ***************** + * User: Es Date: 20.02.99 Time: 11:55 + * Updated in $/GSM/DEV/MS/SRC/MFW + * + * ***************** Version 21 ***************** + * User: Vo Date: 17.02.99 Time: 19:03 + * Updated in $/GSM/DEV/MS/SRC/MFW + * + * ***************** Version 20 ***************** + * User: Vo Date: 12.02.99 Time: 18:59 + * Updated in $/GSM/DEV/MS/SRC/MFW + * + * ***************** Version 19 ***************** + * User: Vo Date: 9.02.99 Time: 14:54 + * Updated in $/GSM/DEV/MS/SRC/MFW + * + * ***************** Version 18 ***************** + * User: Vo Date: 13.01.99 Time: 11:01 + * Updated in $/GSM/DEV/MS/SRC/MFW + * + * ***************** Version 17 ***************** + * User: Vo Date: 8.01.99 Time: 14:31 + * Updated in $/GSM/DEV/MS/SRC/MFW + * + * ***************** Version 16 ***************** + * User: Es Date: 17.12.98 Time: 17:25 + * Updated in $/GSM/DEV/MS/SRC/MFW + * + * ***************** Version 15 ***************** + * User: Es Date: 9.12.98 Time: 15:12 + * Updated in $/GSM/DEV/MS/SRC/MFW + * + * ***************** Version 14 ***************** + * User: Es Date: 9.12.98 Time: 14:19 + * Updated in $/GSM/DEV/MS/SRC/MFW + * added some needed 'rAT_' functions (as dummies) + * + * ***************** Version 13 ***************** + * User: Es Date: 8.12.98 Time: 16:53 + * Updated in $/GSM/DEV/MS/SRC/MFW + * + * ***************** Version 11 ***************** + * User: Vo Date: 27.11.98 Time: 13:19 + * Updated in $/GSM/DEV/MS/SRC/MFW + * + * ***************** Version 10 ***************** + * User: Vo Date: 24.11.98 Time: 21:40 + * Updated in $/GSM/DEV/MS/SRC/MFW + * first successful compilation of MFW + * + * ***************** Version 9 ***************** + * User: Vo Date: 13.11.98 Time: 16:21 + * Updated in $/GSM/DEV/MS/SRC/MFW + * + * ***************** Version 8 ***************** + * User: Vo Date: 12.11.98 Time: 13:46 + * Updated in $/GSM/DEV/MS/SRC/MFW +| +| ***************** Version 7 ***************** +| User: Le Date: 11.11.98 Time: 14:47 +| Updated in $/GSM/DEV/MS/SRC/MFW +| +| ***************** Version 6 ***************** +| User: Le Date: 11.11.98 Time: 13:35 +| Updated in $/GSM/DEV/MS/SRC/MFW +| +| ***************** Version 5 ***************** +| User: Le Date: 10.11.98 Time: 16:07 +| Updated in $/GSM/DEV/MS/SRC/MFW +| +| ***************** Version 4 ***************** +| User: Le Date: 10.11.98 Time: 11:08 +| Updated in $/GSM/DEV/MS/SRC/MFW +| +| ***************** Version 3 ***************** +| User: Le Date: 27.10.98 Time: 15:59 +| Updated in $/GSM/DEV/MS/SRC/MFW +| +| ***************** Version 2 ***************** +| User: Le Date: 21.10.98 Time: 16:20 +| Updated in $/GSM/DEV/MS/SRC/MFW +| +| ***************** Version 1 ***************** +| User: Le Date: 21.10.98 Time: 10:33 +| Created in $/GSM/DEV/MS/SRC/MFW +*/ + +#define ENTITY_MFW + +#include <string.h> +#include <stdio.h> +#include <stdlib.h> + +#if defined (NEW_FRAME) + +#include "typedefs.h" +#include "Vsi.h" +#include "PEI.H" +#include "custom.h" +#include "gsm.h" + +#else + +#include "STDDEFS.H" +#include "custom.h" +#include "gsm.h" +#include "Vsi.h" + +#endif +#include"rfs/rfs_api.h" + +#include "mfw_mfw.h" +#include "mfw_nm.h" +#include "mfw_sim.h" +#include "mfw_simi.h" +#include "mfw_sima.h" +#include "mfw_nmi.h" +#include "mfw_phb.h" +#include "mfw_phbi.h" +#include "mfw_cm.h" +#include "mfw_cmi.h" +#include "mfw_sms.h" +#include "mfw_smsi.h" +#ifdef FF_CPHS_REL4 +#include "mfw_cphs.h" +#endif + +// June 02, 2006 DR: OMAPS00078005 x0021334 +#ifdef FF_TIMEZONE +#include "mfw_td.h" +#endif + +#include "drv_key.h" + + +#include "ksd.h" +#include "psa.h" + +#if defined (FAX_AND_DATA) +#include "aci_fd.h" +#endif + +#include "cmh.h" +#include "phb.h" +#include "cmh_phb.h" +#include "psa_sim.h" + +#include "mfw_ss.h" +#include "mfw_ssi.h" + +// ADDED BY RAVI - 7-10-2005 +#if (defined(FF_2TO1_PS) || (BOARD == 61)) +#define GPRS TI_GPRS +#endif +// END ADDITION BY RAVI - 7-10-2005 + +#ifdef GPRS /* kgt 12-05-2001 */ + +// ADDED BY RAVI - 7-10-2005 +#if (defined(FF_2TO1_PS) || (BOARD == 61)) +#include "aci_cmh.h" +#include "aci_all.h" +#include "ati_cmd.h" +#include "aci_cmd.h" +#include "aci.h" +#include "dti_conn_mng.h" +#include "dti_cntrl_mng.h" +#include "gaci.h" /* include types declared in GACI */ +#endif +// END ADDITION - RAVI - 7-10-2005 + +#include "aci_all.h" +#include "aci_cmh.h" /* include types declared in ACI */ +#include "ati_cmd.h" +#include "aci_cmd.h" +#include "aci.h" +#include "dti_conn_mng.h" +#include "dti_cntrl_mng.h" +#include "gaci.h" /* include types declared in GACI */ +/*#include "gaci_cmh.h" include types declared in GACI */ +#include "mfw_gprs.h" +#endif /* GPRS */ + +#include "Mfw_band.h" /* SPR919 - SH */ + +#ifdef FF_CPHS +#include "cphs.h" +#endif /* ff_cphs */ + +//x0pleela 20 Mar, 2006 ER:OMAPS00067709 +#ifdef FF_PCM_VM_VB +#include "mfw_aud.h" +#endif + + +#ifdef NEPTUNE_BOARD /*EngMode */ +#include "mfw_em.h" + +UBYTE RssiVal; +#endif + + + + + +#if defined(FF_MMI_CAMERA_APP) ||defined(FF_MMI_FILEMANAGER) +#include "msl/inc/msl_api.h" +#include "mfw_fm.h" +#endif + +#include "aci.h" +//May 10, 2006 REF: DRT OMAPS00075829 xdeepadh +#include "mfw_cb.h" + + +LOCAL void mfw_format_plmn_name(UBYTE dcs,UBYTE *in, UBYTE in_length, + UBYTE *out, UBYTE max_out_length); + + +/*May 10,2007 DR:OMAP00127983 x0066814(Geetha)-begin*/ +/*size of the name when converted from 7bit to 8bit alphabet*/ +#define CNAP_EXPANDED_SIZE (((sizeof(BUF_nameString)+1)*8)/7) +//function to get the name from rAT_PercentCNAP +void set_cnap_name(T_namePresentationAllowed *cnap_name_info ); +//function to give the name from set_cnap_name to MMI +GLOBAL T_MFW_PHB_TEXT *get_cnap_name(); +GLOBAL T_MFW_PHB_TEXT cnap_name; + +typedef enum +{ + CNAP_PRES_ALLOWED = 0, + CNAP_PRES_RESTRICTED, + CNAP_NAME_UNAVAILABLE, + CNAP_NAME_PRES_RESTRICTED +} T_ATI_CNAP_PRESENTATION;//possible presentation modes for CNAP + +GLOBAL BOOL CALL_NAME_NETWORK = FALSE;//implies that name is not sent via network(rAT_%CNAP) +//Function to process the data sent from rAT_PercentCNAP based on presentation mode for CNAP +LOCAL void send_cnap_name_information_mmi(T_ATI_CNAP_PRESENTATION pres_mode, + T_callingName *NameId); +/*May 10,2007 DR:OMAP00127983 x0066814(Geetha)-end*/ +/********* currently not used ***************************************/ +extern void sate_error(T_ACI_CME_ERR error); // ADDED BY RAVI - 29-11-2005 +GLOBAL void rAT_PlusCSMS (T_ACI_CSMS_SERV service, + T_ACI_CSMS_SUPP mt, + T_ACI_CSMS_SUPP mo, + T_ACI_CSMS_SUPP bm) {} + +//x0pleela 21 Apr, 2006 DR: OMAPS00067919 +//Requesting for any of the SIMP category pin if enabled based on the "code" +GLOBAL void rAT_PlusCPIN (T_ACI_CPIN_RSLT code) +{ +#ifdef SIM_PERS + TRACE_FUNCTION("rAT_PlusCPIN()"); + sim_simlock_cpin_code(code ); +#endif +} + +GLOBAL void rAT_PlusCLCK ( T_ACI_CLSSTAT * clsStaLst) {} +GLOBAL void rAT_PlusCIMI (CHAR *imsi) {} +GLOBAL void rAT_PlusCCFC (T_ACI_CCFC_SET* setting) {} +GLOBAL void rAT_PlusCLIR (T_ACI_CLIR_MOD mode, T_ACI_CLIR_STAT stat) {} +GLOBAL void rAT_PercentCOLR ( T_ACI_COLR_STAT stat) {} +GLOBAL void rAT_PlusCRSM ( SHORT sw1, + SHORT sw2, + SHORT rspLen, + UBYTE *rsp ) {} +GLOBAL void rAT_PlusCSIM ( SHORT rspLen, + UBYTE *rsp ) {} + +GLOBAL void rAT_PlusCNUM (T_ACI_CNUM_MSISDN *msisdn, UBYTE num) +{ +#ifdef FF_CPHS_REL4 + static UBYTE count = 0; + UBYTE i; + + TRACE_FUNCTION("rAT_PlusCNUM"); + for(i = 0; i < 2; i++) + { + count = count + check_msp_rec(&msisdn[i],count); + } + if (count == 2) + qAT_PlusCNUM(CMD_SRC_LCL, 1); + else + send_msp_signal(count); +#endif +} + +GLOBAL void rAT_PlusCCWV ( T_ACI_CCWV_CHRG charge ) {} + +GLOBAL void rAT_PercentALS(T_ACI_ALS_MOD ALSmode) {} /* has to be implemented in MFW */ + + +/* May 15, 2006 REF:ER OMAPS00077751 */ + +#ifdef NEPTUNE_BOARD +EXTERN void set_cmdHold(int command); +EXTERN int globalSignalUpdate(U8 value); +EXTERN void sendCPWIEvt(UBYTE flag_set, USHORT line); +EXTERN void cmhMM_CnvrtPLMN2INT( const T_PS_plmn_id *plmn, + USHORT * mccBuf, + USHORT * mncBuf ); +#endif /* NEPTUNE_BOARD */ +/* End - remove warning Aug -11 */ +/* May 15, 2006 REF:ER OMAPS00077751 */ + +#ifdef NEPTUNE_BOARD +/******************************************************************************* + + $Function: rAT_PercentSATT + + $Description:CallBack function, needed for target builds with SAT class E enabled + + $Returns: void + + $Arguments: T_ACI_CMD_SRC srcId + T_ACI_SATT_CS cause + +*******************************************************************************/ + +GLOBAL void rAT_PercentSATT( T_ACI_CMD_SRC srcId, T_ACI_SATT_CS cause ) +{ + TRACE_FUNCTION("rAT_PercentSATT"); +} +#endif + +// ADDED BY RAVI - ACI CHANGES - 6-10-2005 +#if (BOARD == 61) +GLOBAL void rAT_PlusCKEV( T_ACI_CKEV_VALUES sCkevValues, + T_ACI_CMER_MODE_TYPE mode) {} +GLOBAL void rAT_PercentCPKY(CHAR *keys, SHORT time, SHORT pause) {} +#endif +// END OF ADDITION - 6-10-2005 + +/*to be removed +#ifndef FF_2TO1_PS +GLOBAL void rAT_PercentRDL(T_ACI_CC_REDIAL_STATE state) {} +GLOBAL void rAT_PercentRDLB(T_ACI_CC_RDL_BLACKL_STATE state) {} +GLOBAL void rAT_PercentCSTAT(T_ACI_STATE_MSG msgType) {} +GLOBAL void rAT_PercentCPRSM (T_ACI_CPRSM_MOD mode) {} +#else +#endif */ + + +/* SPR#1985 - SH - This is now implemented in mfw_cm.c */ +/*GLOBAL void rAT_PercentCTYI (T_ACI_CTTY_NEG neg, + T_ACI_CTTY_TRX trx) {}*/ + +/********* current define *******************************************/ +#ifdef SIM_TOOLKIT +extern char mfwSatMoAccepted; +#endif + +#ifdef SIM_PERS +EXTERN T_MFW_SIMP_CLCK_FLAG sim_unlock_in_prog; +#endif + +//x0018858 24 Mar, 2005 MMI-FIX-11321 +//Added a global variable and a function to retreive any pending message. +//begin - x0018858 24 Mar, 2005 MMI-FIX-11321 +UBYTE isMessageWaiting = FALSE; + +/* ++--------------------------------------------------------------------+ +| PROJECT: GSM-MFW (8417) MODULE: MFW_CB | +| STATE : code ROUTINE: sms_check_message_pending ++--------------------------------------------------------------------+ + PURPOSE : To retreive the status from server wrt to any pending message. +*/ +UBYTE sms_check_message_pending(void) +{ + TRACE_EVENT_P1(" the message status is -- %d", isMessageWaiting); + return isMessageWaiting; +} + +///end - x0018858 24 Mar, 2005 MMI-FIX-11321 + +/* ++--------------------------------------------------------------------+ +| PROJECT: GSM-MFW (8417) MODULE: MFW_CB | +| STATE : code ROUTINE: rAT_OK | ++--------------------------------------------------------------------+ + + + PURPOSE : OK indication from ACI + +*/ + +GLOBAL void rAT_OK ( T_ACI_AT_CMD cmdId ) +{ + + TRACE_EVENT_P1("rAT_OK %d",cmdId); + switch ((int)cmdId) + { + case AT_CMD_CFUN: + sim_ok_cfun (); + break; + + case AT_CMD_CPBW: +// July 17, 2006 DR: OMAPS00082792 x0039928 + phb_signal(E_PHB_READY, 0); + break; + + case AT_CMD_COPS: + nm_ok_cops (); + break; + + case AT_CMD_NRG: + nm_ok_cops (); + break; + + case AT_CMD_PVRF: + sim_ok_cpin (); + break; + + case AT_CMD_CPIN: + sim_ok_cpin (); + break; + + case AT_CMD_A: + cm_ok_connect(); + break; + + case AT_CMD_CMGD: +/* JVJ SPR1119 apparently not needed since the rAT_PlusCMGD() already handles it */ +TRACE_EVENT("ACI has deleted SMS!!"); + sms_ok_delete (); +/*Issue 1432: 01/10/2002: Needed as called by ACI instead of rAT_PlusCMGD if concatenated SMS */ + break; + + case AT_CMD_CMGR: + sms_ok_change (); + break; + + case AT_CMD_CHUP: + cm_ok_disconnect(CMD_SRC_LCL, 0); + break; + + case AT_CMD_H: + cm_ok_disconnect(CMD_SRC_LCL, 0); + break; + + case AT_CMD_ABRT: + cm_ok_disconnect(CMD_SRC_LCL, 0); + break; + + case AT_CMD_D: + cm_ok_connect(); + break; + + case AT_CMD_CPWD: + sim_ok_cpinc(); + break; + + case AT_CMD_CHLD: + cm_result_cmd(CMD_SRC_LCL, Present); + break; + + case AT_CMD_CLCK: +#ifdef SIM_PERS +// Nov 03, 2005 DR: OMAPS00052032 - xpradipg +// if the flag is set then SIM Personalization has triggered the CLCK + if( (sim_unlock_in_prog EQ SIMP_BOOTUP) OR + (sim_unlock_in_prog EQ SIMP_MENU ) ) + { + mfw_simlock_continue(TRUE); + sim_unlock_in_prog = SIMP_NONE; + } + else +#endif + ss_ok_clck(); + break; + + case AT_CMD_CCFC: + break; + + case AT_CMD_CCWA: + break; + + case KSD_CMD_CB: + case KSD_CMD_CF: + case KSD_CMD_CL: + case KSD_CMD_CW: + case KSD_CMD_PWD: + case KSD_CMD_UBLK: + ss_ok_string(cmdId); + break; + + case AT_CMD_CPUC: + case AT_CMD_CAMM: + case AT_CMD_CACM: + cm_ok_aoc(cmdId); + break; + + case AT_CMD_CUSD: + case KSD_CMD_USSD: + ss_ok_ussd(cmdId); + break; + case AT_CMD_CMGL: + sms_ok_CMGL(); + break; + case AT_CMD_CPMS: + case AT_CMD_CMGW: + case AT_CMD_CMSS: + case AT_CMD_CMGS: + break; + + case AT_CMD_CPOL: + nm_ok_pref_plmn(); + break; + + case AT_CMD_VTS: + cm_ok_dtmf(); + break; + + case AT_CMD_CSAS: + sms_ok_csas(); + break; + +#ifdef GPRS /* KGT 12-05-2001 */ + case AT_CMD_CGATT: + case AT_CMD_CGDCONT: + case AT_CMD_CGACT: + case AT_CMD_CGQREQ: + case AT_CMD_CGQMIN: + case AT_CMD_CGDATA: + case AT_CMD_CGPADDR: + case AT_CMD_CGAUTO: + case AT_CMD_CGANS: + case AT_CMD_CGCLASS: + case AT_CMD_CGEREP: + case AT_CMD_CGREG: + case AT_CMD_CGSMS: + gprs_ok(cmdId); + break; +#endif /* GPRS */ + + /* SPR919 - SH*/ + case AT_CMD_BAND: + nm_ok_band(); + break; + /*MC, SPR 1392, call deflection successful*/ + case AT_CMD_CTFR: + cm_ok_CTFR(); + + /* Marcus: CCBS: 14/11/2002: Start */ + case AT_CMD_CCBS: + TRACE_EVENT("AT_CMD_CCBS"); + cm_ccbs_ok(); + break; + /* Marcus: CCBS: 14/11/2002: Start */ + /*a0393213 cphs rel4*/ + #ifdef FF_CPHS_REL4 + case AT_CMD_P_CFIS: + { + T_MFW_SIMOP_STATUS result=MFW_SIMOP_WRITE_OK; + sendCPHSSignal(E_CPHS_SET_DV_STAT,&result); + } + #endif + default: + break; + } +} + + +/* ++--------------------------------------------------------------------+ +| PROJECT: GSM-MFW (8417) MODULE: MFW_CB | +| STATE : code ROUTINE: rAT_PlusCME | ++--------------------------------------------------------------------+ + + + PURPOSE : Error indication from ACI + +*/ + +GLOBAL void rAT_PlusCME ( T_ACI_AT_CMD cmdId, T_ACI_CME_ERR err ) +{ + TRACE_EVENT_P2("rAT_PlusCME(cmdId %d, err %d)",cmdId, err); + + switch ((int)cmdId) /*a0393213 lint warnings removal - typecasting done*/ + { +//x0061560 Date May16,07 (sateeshg) OMAPS00133241 + case AT_CMD_CPBW: + phb_signal(E_PHB_ERROR, 0); + break; + case AT_CMD_COPS: + //x0pleela 30 May, 2007 DR: OMAPS00133201 + //Passing the error code + nm_error_cops ((T_ACI_CME_ERR)err); + break; + + case AT_CMD_NRG: + /*Aug 07, 2007 DR:OMAPS00137726 x0066814(Geetha)*/ + TRACE_EVENT_P1("CME ERROR VALUE in NRG: %d",err); + if( (nm_get_mode() == NM_MANUAL) && + ((err == CME_ERR_NoServ) ||(err == CME_ERR_LimServ) ||(err ==CME_ERR_Unknown))) + { + nm_get_plmn_list_during_bootup(); + } + else + { + //x0pleela 30 May, 2007 DR: OMAPS00133201 + //Passing the error code + nm_error_cops ((T_ACI_CME_ERR)err); + } + break; + case AT_CMD_CFUN: + /* OMAPS00075177 - 17,Apr-2006 */ +/* Signature of the function has been changed from U8 to T_ACI_CME_ERR. + because, when calling this function, it is converting from T_ACI_CME_ERR to U8. + It is loosing the negative values( the enum T_ACI_CME_ERR has negative values ) +*/ + sim_error_cfun ((T_ACI_CME_ERR)err); + break; + + case AT_CMD_CPIN: + sim_error_cpin ((T_ACI_CME_ERR)err); + break; + + case AT_CMD_PVRF: + sim_error_cpin ((T_ACI_CME_ERR)err); + break; + + case AT_CMD_CHLD: + cm_result_cmd(CMD_SRC_LCL, NotPresent); + break; + + case AT_CMD_CLCK: +#ifdef SIM_PERS +//x0pleela 27 Apr, 2006 DR: OMAPS00067919 + if(sim_unlock_in_prog EQ SIMP_BOOTUP) + { + //xrashmic 1 Jul, 2006 OMAPS00075784 + //Changed U8 to T_ACI_CME_ERR + sim_error_cfun ((T_ACI_CME_ERR)err); + } + +// Nov 03, 2005 DR: OMAPS00052032 - xpradipg +// if the flag is set then SIM Personalization has triggered the CLCK + else if(sim_unlock_in_prog EQ SIMP_MENU) + { + sim_unlock_in_prog = SIMP_NONE; /*a0393213 compiler warnings removal - FALSE changed to SIMP_NONE*/ + mfw_simlock_continue(SIMP_NONE); + } + else +#endif + ss_error_clck(); + break; + + case AT_CMD_CPWD: + sim_error_cpinc(); + break; + + case KSD_CMD_CB: + case KSD_CMD_CF: + case KSD_CMD_CL: + case KSD_CMD_CW: + case KSD_CMD_PWD: + case KSD_CMD_UBLK: + ss_error_string(cmdId, err); + break; + + case AT_CMD_CPUC: + case AT_CMD_CAMM: + case AT_CMD_CACM: + cm_error_aoc(cmdId, err); + break; + + case AT_CMD_CNUM: + phb_read_upn_eeprom(); + break; + + case AT_CMD_CUSD: + case KSD_CMD_USSD: + ss_error_ussd(cmdId, err); + break; + + case AT_CMD_CPOL: + nm_error_pref_plmn(); + break; + + case AT_CMD_VTS: + cm_error_dtmf(); + break; + + case AT_CMD_D: + cm_error_dial(err); + break; + + case AT_CMD_CLAN: +#ifdef FF_2TO1_PS + sim_read_lp_cnf(CAUSE_SIM_EF_INVALID,NULL); +#else + sim_read_lp_cnf(SIM_CAUSE_EF_INVALID,NULL); +#endif + break; + +#ifdef GPRS /* KGT 12-05-2001 */ + case AT_CMD_CGATT: + case AT_CMD_CGDCONT: + case AT_CMD_CGACT: + case AT_CMD_CGQREQ: + case AT_CMD_CGQMIN: + case AT_CMD_CGDATA: + case AT_CMD_CGPADDR: + case AT_CMD_CGAUTO: + case AT_CMD_CGANS: + case AT_CMD_CGCLASS: + case AT_CMD_CGEREP: + case AT_CMD_CGREG: + case AT_CMD_CGSMS: + gprs_error(cmdId, err); + break; +#endif /* GPRS */ + + /* Marcus: CCBS: 14/11/2002: Start */ + case AT_CMD_CCBS: + TRACE_EVENT("AT_CMD_CCBS"); + cm_ccbs_error(); + break; + + case AT_CMD_H: + cm_error_disconnect(); + break; + /* Marcus: CCBS: 14/11/2002: Start */ + + /*MC, SPR 1392, call deflection error*/ + case AT_CMD_CTFR: + cm_error_CTFR(); + break; + + /*SPR#2321 - DS - Handle SAT errors */ + case AT_CMD_SATE: + sate_error(err); + break; + } +} + + + +/* ++--------------------------------------------------------------------+ +| PROJECT: GSM-MFW (8417) MODULE: MFW_CB | +| STATE : code ROUTINE: rAT_NO_CARRIER | ++--------------------------------------------------------------------+ + + + PURPOSE : No Carrier indication from ACI + +*/ + +GLOBAL void rAT_NO_CARRIER( T_ACI_AT_CMD cmdId, SHORT cId ) +{ + TRACE_FUNCTION ("rAT_NO_CARRIER()"); + +//x0pleela 14 Mar, 2006 ER:OMAPS00067709 +#ifdef FF_PCM_VM_VB +//update the reason for calling record_stop + if( get_voice_memo_type() EQ VOICE_BUFFERING ) + set_voice_buffering_rec_stop_reason(CALLED_PARTY_END_CALL); +#endif + +#ifndef GPRS /* kgt 12-05-2001 */ + cm_error_connect(cId); +#else /* GPRS */ + cm_error_connect(cId); +#endif /* GPRS */ +} + +/* ++--------------------------------------------------------------------+ +| PROJECT: GSM-MFW (8417) MODULE: MFW_CB | +| STATE : code ROUTINE: rAT_BUSY | ++--------------------------------------------------------------------+ + + + PURPOSE : Connect indication from ACI + +*/ + +GLOBAL void rAT_BUSY ( T_ACI_AT_CMD cmdId, SHORT cId ) +{ + TRACE_FUNCTION ("rAT_BUSY()"); + +#ifndef GPRS /* kgt 12-05-2001 */ + cm_error_connect(cId); +#else /* GPRS */ + cm_error_connect(cId); +#endif /* GPRS */ +} + + +/* ++--------------------------------------------------------------------+ +| PROJECT: GSM-MFW (8417) MODULE: MFW_CB | +| STATE : code ROUTINE: rAT_NO_ANSWER | ++--------------------------------------------------------------------+ + + + PURPOSE : Connect indication from ACI + +*/ + +GLOBAL void rAT_NO_ANSWER ( T_ACI_AT_CMD cmdId, SHORT cId ) +{ + TRACE_FUNCTION ("rAT_NO_ANSWER()"); + +//x0pleela 07 Mar, 2006 ER:OMAPS00067709 +#ifdef FF_PCM_VM_VB +//update the reason for calling record_stop + if( get_voice_memo_type() EQ VOICE_BUFFERING ) + set_voice_buffering_rec_stop_reason(CALLED_PARTY_NOT_AVAILABLE); +#endif + +#ifndef GPRS /* kgt 12-05-2001 */ + cm_error_connect(cId); +#else /* GPRS */ + cm_error_connect(cId); +#endif /* GPRS */ +} + + +/* ++--------------------------------------------------------------------+ +| PROJECT: GSM-MFW (8417) MODULE: MFW_CB | +| STATE : code ROUTINE: rAT_NO_DIALTONE | ++--------------------------------------------------------------------+ + + + PURPOSE : Connect indication from ACI + +*/ + +GLOBAL void rAT_NO_DIALTONE ( void ) +{ + TRACE_FUNCTION ("rAT_NO_DIALTONE()"); +} + + +/* ++--------------------------------------------------------------------+ +| PROJECT: GSM-MFW (8417) MODULE: MFW_CB | +| STATE : code ROUTINE: rAT_CONNECT | ++--------------------------------------------------------------------+ + + + PURPOSE : Connect indication from ACI, only for data call + +*/ + +GLOBAL void rAT_CONNECT ( T_ACI_AT_CMD cmdId, + T_ACI_BS_SPEED speed, + SHORT cId ) +{ + TRACE_FUNCTION ("rAT_CONNECT()"); + +#ifndef GPRS /* kgt 12-05-2001 */ + + if (speed==11) + cm_wap_data_connected(); +else + cm_data_connect(cId); +#else /* GPRS */ + cm_data_connect(cId); +#endif /* GPRS */ +} + + +/* ++------------------------------------------------------------------+ +| PROJECT : GSM-MFW (8417) MODULE : MFW_CB | +| STATE : code ROUTINE : rAT_PlusCSSI | ++------------------------------------------------------------------+ + + + PURPOSE : Supplementary service notifications + +*/ + +void rAT_PlusCSSI(T_ACI_CSSI_CODE code, SHORT index) +{ + TRACE_FUNCTION("rAT_PlusCSSI()"); + + if (code == CSSI_CODE_NotPresent) + return; + + ss_notify(ss_cvtCssiCodes(code), index, 0, 0); +} + + +/* ++------------------------------------------------------------------+ +| PROJECT : GSM-MFW (8417) MODULE : MFW_CB | +| STATE : code ROUTINE : rAT_PlusCSSU | ++------------------------------------------------------------------+ + + + PURPOSE : Supplementary service notifications + +*/ + +void rAT_PlusCSSU ( T_ACI_CSSU_CODE code, + SHORT index, + CHAR *number, + T_ACI_TOA *type, + CHAR *subaddr, + T_ACI_TOS *satype) +{ + TRACE_FUNCTION("rAT_PlusCSSU()"); + + if (code == CSSU_CODE_NotPresent) + return; + + else if ((code == CSSU_CODE_OnHold) OR + (code == CSSU_CODE_Retrieved)) + cm_notify(code, index, (UBYTE *)number); + + else + ss_notify(ss_cvtCssuCodes(code), + index, + (UBYTE *)number, + (UBYTE *)subaddr); +} + + +/* ++------------------------------------------------------------------+ +| PROJECT : GSM-MFW (8417) MODULE : MFW_CB | +| STATE : code ROUTINE : rAT_PercentRLOG | ++------------------------------------------------------------------+ + + + PURPOSE : + +*/ + +void rAT_PercentRLOG(T_ACI_RLOG *rslt) +{ + T_MFW_CM_CALL_STAT stat; + UBYTE ton; + UBYTE mode; + + TRACE_FUNCTION("rAT_PercentRLOG()"); + + + TRACE_EVENT_P1("rslt->dest %d",rslt->dest); + TRACE_EVENT_P1("rslt->atRslt %d",rslt->atRslt); + + + if (rslt->dest > CMD_SRC_LCL) + { + switch (rslt->atRslt) + { + case RLOG_RSLT_OK: + TRACE_EVENT_P1("rslt->rsltPrm.rOK.cmdId %d", rslt->rsltPrm.rOK.cmdId); + if (rslt->rsltPrm.rOK.cmdId EQ AT_CMD_A + OR rslt->rsltPrm.rOK.cmdId EQ AT_CMD_D) + cm_rmt_ok_connect(); + if (rslt->rsltPrm.rOK.cmdId EQ AT_CMD_H + OR rslt->rsltPrm.rOK.cmdId EQ AT_CMD_CHUP) + { + //NM Berlin / UK integration 21.09.01 + //Nov 02, 2005 DR OMAPS00052132 xdeepadh + //The usage of ATI enum is put under the flag FF_ATI +#if defined (FF_ATI) || defined (NEPTUNE_BOARD) + /*June 15, 2006 DR:OMAPS00079492 x0043642 */ + /* Set cmd_hold variable to MFW_CM_DISCONNECT_ALL to end all calls*/ + set_cmdHold(MFW_CM_DISCONNECT_ALL); + cm_ok_disconnect(CMD_SRC_ATI_1, rslt->rsltPrm.rOK.cId); +#endif + } + if (rslt->rsltPrm.rOK.cmdId EQ AT_CMD_ABRT) + { + if (cm_search_callStat(rslt->rsltPrm.rOK.cId, &stat, &ton, &mode) == CM_OK) + { + if (stat == CALL_DEACTIVE) + { + //NM Berlin / UK integration 21.09.01 + //Nov 02, 2005 DR OMAPS00052132 xdeepadh + //The usage of ATI enum is put under the flag FF_ATI +#ifdef FF_ATI + cm_ok_disconnect(CMD_SRC_ATI_1, rslt->rsltPrm.rOK.cId); +#endif //FF_ATI + } + } + } + if (rslt->rsltPrm.rOK.cmdId EQ AT_CMD_CHLD) + { + //NM Berlin / UK integration 21.09.01 + //Nov 02, 2005 DR OMAPS00052132 xdeepadh + //The usage of ATI enum is put under the flag FF_ATI +#ifdef FF_ATI + cm_result_cmd(CMD_SRC_ATI_1, Present); +#endif //FF_ATI + } + +#ifdef GPRS /* JVJ 10-10-02 */ + /* SH - GPRS*/ + switch(rslt->rsltPrm.rOK.cmdId) + { + case AT_CMD_CGDCONT: + case AT_CMD_CGQREQ: + case AT_CMD_CGQMIN: + case AT_CMD_CGATT: + case AT_CMD_CGACT: + case AT_CMD_CGDATA: + case AT_CMD_CGPADDR: + case AT_CMD_CGAUTO: + case AT_CMD_CGANS: + case AT_CMD_CGCLASS: + case AT_CMD_CGEREP: + case AT_CMD_CGREG: + case AT_CMD_CGSMS: + case AT_CMD_SNCNT: + case AT_CMD_P_CGREG: + gprs_ok((T_ACI_AT_CMD)rslt->rsltPrm.rOK.cId); + break; + } + /* end SH */ +#endif + //Mar 23, 2006 DR OMAPS00069173 Prabakar R + //break was put inside #ifdef GPRS. it has been moved outside + break; + case RLOG_RSLT_NoCarrier: +#ifdef GPRS /* JVJ 10-10-02 */ + /* SH - don't send to CM for GPRS call*/ + if (rslt->rsltPrm.rNO_CARRIER.cmdId == AT_CMD_CGDATA) + { + gprs_err_connect(rslt->rsltPrm.rNO_CARRIER.cId); + } + else +#endif + cm_rmt_error_connect(rslt->rsltPrm.rNO_CARRIER.cId); + + break; + case RLOG_RSLT_Busy: + /* SH - don't send to CM for GPRS call*/ +#ifdef GPRS /* JVJ 10-10-02 */ + if (rslt->rsltPrm.rBUSY.cmdId == AT_CMD_CGDATA) + gprs_err_connect(rslt->rsltPrm.rBUSY.cId); + else +#endif + cm_rmt_error_connect(rslt->rsltPrm.rBUSY.cId); + break; + + case RLOG_RSLT_NoAnswer: + /* SH - don't send to CM for GPRS call*/ +#ifdef GPRS /* JVJ 10-10-02 */ + if (rslt->rsltPrm.rNO_ANSWER.cmdId == AT_CMD_CGDATA) + gprs_err_connect(rslt->rsltPrm.rNO_ANSWER.cId); + else +#endif + cm_rmt_error_connect(rslt->rsltPrm.rNO_ANSWER.cId); + break; + + case RLOG_RSLT_Connect: + //NM + //merged latest version of MFW from Berlin + //only related with NO_ASCIIZ + //code 1: was replaced by code 2 + //keep it still comment out the code 1 + //by reason of problem swap the codes + + //code 1: + //cm_data_connect(rslt->rsltPrm.rCONNECT.cId); + + /* notify MMI of connect by external MMI */ + //code 2: + + /* SH - don't send to CM for GPRS call*/ +#ifdef GPRS /* JVJ 10-10-02 */ + if (rslt->rsltPrm.rCONNECT.cmdId == AT_CMD_CGDATA) + gprs_connect(rslt->rsltPrm.rCONNECT.cId); + else + /* SH end */ +#endif + cm_rmt_ok_connect(); /* VO ???: to be changed (needs E_CM_CONNECT) */ + + + break; +#ifdef GPRS /* JVJ 10-10-02 */ + case RLOG_RSLT_CME: + /* SH - GPRS*/ + TRACE_FUNCTION_P1("rslt->rsltPrm.rOK.cmdId=%d",rslt->rsltPrm.rOK.cmdId); + switch(rslt->rsltPrm.rOK.cmdId) + { + case AT_CMD_CGDCONT: + case AT_CMD_CGQREQ: + case AT_CMD_CGQMIN: + case AT_CMD_CGATT: + case AT_CMD_CGACT: + case AT_CMD_CGDATA: + case AT_CMD_CGPADDR: + case AT_CMD_CGAUTO: + case AT_CMD_CGANS: + case AT_CMD_CGCLASS: + case AT_CMD_CGEREP: + case AT_CMD_CGREG: + case AT_CMD_CGSMS: + case AT_CMD_SNCNT: + case AT_CMD_P_CGREG: + gprs_error(rslt->rsltPrm.rCME.cmdId,rslt->rsltPrm.rCME.err); + break; + //CQ-16432 start + case AT_CMD_CPWD: + TRACE_FUNCTION("AT_CMD_CPWD"); + ss_sat_passwdReqd(rslt->rsltPrm.rCME.cmdId,rslt->rsltPrm.rCME.err); + break; + //CQ-16432 end + } + /* end SH */ + break; +#endif + } + } +} + + +/* ++------------------------------------------------------------------+ +| PROJECT : GSM-MFW (8417) MODULE : MFW_CB | +| STATE : code ROUTINE : rAT_PercentCLOG | ++------------------------------------------------------------------+ + + + PURPOSE : + +*/ + +void rAT_PercentCLOG(T_ACI_CLOG *cmd) +{ + TRACE_FUNCTION("rAT_PercentCLOG() in mfw"); + + if (cmd->retCode NEQ AT_CMPL AND cmd->retCode NEQ AT_EXCT) + return; + + switch (cmd->cmdType) + { + case CLOG_TYPE_Set: + switch ((int)(cmd->atCmd)) /*a0393213 lint warnings removal - typecast done*/ + { + case AT_CMD_D: + if (cmd->cmdPrm.sD.simCallCtrl NEQ D_SIMCC_ACTIVE_CHECK) + cm_AT_D(cmd); + break; +#ifdef SIM_TOOLKIT + case AT_CMD_A: + if (mfwSatMoAccepted) + { /* ES!! accepted SAT Call */ + mfwSatMoAccepted = 0; + cm_AT_D(cmd); + } + break; +#endif + + case KSD_CMD_CB: + case KSD_CMD_CF: + case KSD_CMD_CW: + case KSD_CMD_CL: + case KSD_CMD_PWD: + case KSD_CMD_UBLK: + case KSD_CMD_USSD: + case AT_CMD_CUSD: + ss_command_info(cmd); + break; + + case AT_CMD_CHLD: + cm_AT_CHLD(cmd); + break; + + default: + break; + } + break; + + case CLOG_TYPE_Query: + break; + + case CLOG_TYPE_Test: + break; + } +} + + +/* ++--------------------------------------------------------------------+ +| PROJECT: GSM-MFW (8417) MODULE: MFW_CB | +| STATE : code ROUTINE: rAT_PercentDRV | ++--------------------------------------------------------------------+ + + + PURPOSE : Driver indication from layer 1 + +*/ + +GLOBAL void rAT_PercentDRV( T_ACI_DRV_DEV device, + T_ACI_DRV_FCT function, + UBYTE val1, + UBYTE val2) +{ + TRACE_FUNCTION ("rAT_PercentDRV()"); +//ES!! check device & function !! + + + drvKeyUpDown(val2,val1); //ES!! val2 korrekt ? +} + +/* ++--------------------------------------------------------------------+ +| PROJECT: GSM-MFW (8417) MODULE: MFW_CB | +| STATE : code ROUTINE: send_cnap_name_information_mmi | ++--------------------------------------------------------------------+ + + + PURPOSE : Function to process the data sent from rAT_PercentCNAP based on presentation mode for CNAP + +*/ +/*May 10,2007 DR:OMAP00127983 x0066814(Geetha)-begin*/ +LOCAL void send_cnap_name_information_mmi(T_ATI_CNAP_PRESENTATION pres_mode, + T_callingName *NameId) +{ + T_namePresentationAllowed *cnap_name_info = NULL; + + TRACE_FUNCTION("send_cnap_name_information()"); + + switch(pres_mode) + { + case(CNAP_PRES_ALLOWED): + TRACE_EVENT("CNAP: name presentation is allowed"); + CALL_NAME_NETWORK=TRUE;//implies that name is got from rAT_%CNAP + cnap_name_info = &(NameId->namePresentationAllowed); + break; + + case(CNAP_NAME_PRES_RESTRICTED): + case(CNAP_NAME_UNAVAILABLE): + case(CNAP_PRES_RESTRICTED): + TRACE_EVENT("CNAP: name presentation is restricted/unavilable"); + break; + + default: + TRACE_ERROR("CNAP: wrong presentation mode"); + return; + } + set_cnap_name(cnap_name_info); +} + +/* ++--------------------------------------------------------------------+ +| PROJECT: GSM-MFW (8417) MODULE: MFW_CB | +| STATE : code ROUTINE: set_cnap_name | ++--------------------------------------------------------------------+ + + + PURPOSE : function to get the name from rAT_PercentCNAP + +*/ +void set_cnap_name(T_namePresentationAllowed *cnap_name_info ) +{ +TRACE_FUNCTION("set_cnap_name"); + if(cnap_name_info EQ NULL) + { + TRACE_ERROR("CNAP cnap_name_info is NULL"); + return; + } + + if ((cnap_name_info->v_dataCodingScheme) AND + (cnap_name_info->v_lengthInCharacters) AND + (cnap_name_info->v_nameString)) + { + UBYTE expanded_len=0; + UBYTE *cnap_name_expanded = NULL; + UBYTE dcs; + TRACE_FUNCTION("All values present"); + cnap_name_expanded=mfwAlloc(CNAP_EXPANDED_SIZE+1); + dcs =(UBYTE)cnap_name_info->dataCodingScheme; + +if( cmh_getAlphabetCb( (UBYTE)dcs ) EQ 0 ) /* 7bit alphabet */ + { + TRACE_FUNCTION("/* 7bit alphabet */"); + expanded_len = + utl_cvt7To8((UBYTE *)cnap_name_info->nameString.b_nameString, + (UBYTE)cnap_name_info->lengthInCharacters, + cnap_name_expanded, + 0 ); + } + else + { + TRACE_FUNCTION("/* 8bit alphabet */"); + memcpy( cnap_name_expanded, + (UBYTE *)cnap_name_info->nameString.b_nameString, + (UBYTE)cnap_name_info->lengthInCharacters ); + expanded_len = (UBYTE)cnap_name_info->lengthInCharacters; + } + cnap_name.len= (UBYTE)expanded_len; +#ifdef NO_ASCIIZ + memcpy(cnap_name.data,cnap_name_expanded,sizeof(cnap_name.data)); +#else + strcpy(cnap_name.data,cnap_name_expanded); +#endif + TRACE_EVENT_P1("cnap_name.data: %s",cnap_name.data); + mfwFree(cnap_name_expanded, CNAP_EXPANDED_SIZE+1); + } + return; +} + +/* ++--------------------------------------------------------------------+ +| PROJECT: GSM-MFW (8417) MODULE: MFW_CB | +| STATE : code ROUTINE: get_cnap_name | ++--------------------------------------------------------------------+ + + + PURPOSE : function to give the name from set_cnap_name to MMI + +*/ +GLOBAL T_MFW_PHB_TEXT * get_cnap_name() +{ +TRACE_FUNCTION("get_cnap_name"); +return &cnap_name; +} + +/* ++--------------------------------------------------------------------+ +| PROJECT: GSM-MFW (8417) MODULE: MFW_CB | +| STATE : code ROUTINE: rAT_PercentCNAP | ++--------------------------------------------------------------------+ + + PURPOSE : handles rAT_PercentCNAP call back + +*/ + +GLOBAL void rAT_PercentCNAP ( T_callingName *NameId,T_ACI_CNAP_STATUS status) +{ + + TRACE_FUNCTION("rAT_PercentCNAP()"); + TRACE_EVENT_P1("NameId: %d",NameId); + if(NameId NEQ NULL) + { + if(NameId->v_namePresentationAllowed) + { + send_cnap_name_information_mmi(CNAP_PRES_ALLOWED, NameId); + return; + } + + if(NameId->v_presentationRestricted) + { + send_cnap_name_information_mmi(CNAP_PRES_RESTRICTED, NameId); + return; + } + + if(NameId->v_nameUnavailable) + { + send_cnap_name_information_mmi(CNAP_NAME_UNAVAILABLE, NameId); + return; + } + + if(NameId->v_namePresentationRestricted) + { + send_cnap_name_information_mmi(CNAP_NAME_PRES_RESTRICTED, NameId); + return; + } + } +} +/*May 10,2007 DR:OMAP00127983 x0066814(Geetha) -end*/ +/* ++--------------------------------------------------------------------+ +| PROJECT : MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_PlusCLAN | ++--------------------------------------------------------------------+ + + PURPOSE : handles AT_PlusCLAN call back + +*/ + +GLOBAL void rAT_PlusCLAN (T_ACI_LAN_SUP *CLang ) +{ + TRACE_FUNCTION("rAT_PlusCLAN()"); + +#ifdef FF_2TO1_PS /* kgt 12-05-2001 */ + sim_read_lp_cnf(CAUSE_SIM_NO_ERROR,CLang); +#else + sim_read_lp_cnf(SIM_NO_ERROR,CLang); +#endif + +} + +/* ++--------------------------------------------------------------------+ +| PROJECT : MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_PlusCLAE | ++--------------------------------------------------------------------+ + + PURPOSE : handles AT_PlusCLAE call back + +*/ + +GLOBAL void rAT_PlusCLAE (T_ACI_LAN_SUP *CLang ) +{ + TRACE_FUNCTION("rAT_PlusCLAE()"); +} + +/* ++--------------------------------------------------------------------+ +| PROJECT : ACI/MMI MODULE : ACI_RET | +| STATE : code ROUTINE : rAT_PercentCSQ | ++--------------------------------------------------------------------+ + + PURPOSE : handles rAT_PercentCSQ call back + + Shen,Chao + +*/ + +//Oct 05, 2006 ER: OMAPS00094496 x0061088(Prachi) +#ifdef FF_PS_RSSI +#define MMI_MIN_RXLEV_FAULT 99 +GLOBAL void rAT_PercentCSQ (UBYTE rssi, UBYTE ber, UBYTE actlevel, UBYTE min_access_level) +#else +GLOBAL void rAT_PercentCSQ (UBYTE rssi, UBYTE ber, UBYTE actlevel) +#endif +{ + + static UBYTE prelevel=0; +#ifdef NEPTUNE_BOARD + RssiVal = rssi; +#endif + + TRACE_FUNCTION("rAT_PercentCSQ()"); + #ifdef FF_PS_RSSI + if((min_access_level NEQ MMI_MIN_RXLEV_FAULT) AND (rssi < min_access_level )) + { + globalSignalUpdate(0); + prelevel = 0; + } + else + #endif + if( prelevel != actlevel ) + { + globalSignalUpdate(actlevel); + prelevel = actlevel; + } + +} + + + +#ifdef FF_CPHS +/* ++--------------------------------------------------------------------+ +| PROJECT : MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_PercentCPVWI | ++--------------------------------------------------------------------+ + + PURPOSE : handles AT_PercentCPVWI call back + +*/ + +GLOBAL void rAT_PercentCPVWI ( UBYTE flag_set, + USHORT line) +{ +TRACE_FUNCTION("rAT_PercentCPVWI()"); + //18 May, 2006 DR: OMAPS00070657 x0pleela + //Send this event when there is any voice mail + sendCPWIEvt(flag_set, line); +} + +/* ++--------------------------------------------------------------------+ +| PROJECT : MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_PercentCPNUMS | ++--------------------------------------------------------------------+ + + PURPOSE : handles AT_PercentCPNUMS call back + +*/ +GLOBAL void rAT_PercentCPNUMS(UBYTE element_index, + UBYTE index_level, + CHAR *alpha_tag, + CHAR *number, + BOOL premium_flag, + BOOL network_flag, + UBYTE type_of_address) +{ +} + + +/* ++--------------------------------------------------------------------+ +| PROJECT : MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_PercentCPCFU | ++--------------------------------------------------------------------+ + + PURPOSE : handles AT_PercentCPCFU call back + +*/ +GLOBAL void rAT_PercentCPCFU(UBYTE flag_set, + T_CPHS_LINES line) +{} + + +/* ++--------------------------------------------------------------------+ +| PROJECT : MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_PercentCPROAM | ++--------------------------------------------------------------------+ + + PURPOSE : handles AT_PercentCPROAM call back + +*/ +GLOBAL void rAT_PercentCPROAM(UBYTE roam_status) +{} + +#endif /* FF_CPHS */ + +/* ++--------------------------------------------------------------------+ +| PROJECT : MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_PlusCIEV | ++--------------------------------------------------------------------+ + + PURPOSE : dummy for +CIEV unsolicited message + +*/ +GLOBAL void rAT_PlusCIEV( T_ACI_MM_CIND_VAL_TYPE sCindValues, + T_ACI_MM_CMER_VAL_TYPE sCmerSettings ) +{ + TRACE_FUNCTION("rAT_PlusCIEV()"); + +//x0018858 24 Mar, 2005 MMI-FIX-11321 +//Added a switch statement to handle the indication received. +//begin - x0018858 24 Mar, 2005 MMI-FIX-11321 + + switch(sCmerSettings.sCmerIndParam) + { + case CMER_INDICATOR_INVALID: + case CMER_INDICATOR_0: + case CMER_INDICATOR_1: + break; + case CMER_INDICATOR_2: + { + switch (sCindValues.sCindSmsFullParam) + { + case CIND_SMSFULL_INDICATOR_INVALID: + break; + case CIND_SMSFULL_INDICATOR_MEMFULL: + TRACE_FUNCTION("CIND_SMSFULL_INDICATOR_MEMFULL"); + isMessageWaiting = TRUE; + break; + case CIND_SMSFULL_INDICATOR_MEMAVAIL: + TRACE_FUNCTION("CIND_SMSFULL_INDICATOR_MEMAVAIL"); + isMessageWaiting = FALSE; + break; + case CIND_SMSFULL_INDICATOR_MAX: + default: + break; + } + } + case CMER_INDICATOR_TYPE_MAX: + default: + { + break; + } + } +//end - x0018858 24 Mar, 2005 MMI-FIX-11321 +} + +/* ++--------------------------------------------------------------------+ +| PROJECT : GSM-F&D (8411) MODULE : MFW_CB | +| STATE : code ROUTINE : mfw_format_plmn_name | ++--------------------------------------------------------------------+ + + PURPOSE : Decodes PLMN name to remote source format + +*/ + +void mfw_format_plmn_name(UBYTE dcs,UBYTE *in, UBYTE in_length, UBYTE *out, UBYTE max_out_length) +{ + USHORT size_of_plmn_name; + UBYTE dest_len=0; + UBYTE buf[33]; + + memset(buf,33,0); + if(dcs ==0) /*GSM default */ + { + dest_len = utl_cvt7To8(in,in_length,buf,0); + utl_chsetFromGsm(buf,dest_len,out,max_out_length,&size_of_plmn_name,GSM_ALPHA_Def); + memset(buf, 0, 33); + } + else if(dcs ==1) /*UCS2 */ + { + utl_hexFromGsm(in,in_length,out,max_out_length,&size_of_plmn_name,GSM_ALPHA_Def,CSCS_ALPHA_7_Bit); + + } +} + + + +#ifndef FF_2TO1_PS/* ++--------------------------------------------------------------------+ +| PROJECT : MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_PercentCNIV | ++--------------------------------------------------------------------+ + + PURPOSE : dummy for %CNIV unsolicited message + +*/ +//x0pleela 09 Feb, 2006 ER:OMAPS00065203 +GLOBAL void rAT_PercentCNIV (T_MMR_INFO_IND *mmr_info_ind) +{ + T_MFW_NETWORK_STRUCT plmn_netw_data; + SHORT mcc = 0; + SHORT mnc = 0; + + TRACE_FUNCTION("rAT_PercentCNIV()"); + + //copy plmn info into plmn_netw_data from mmr_info_ind + memset(&plmn_netw_data, 0, sizeof(T_MFW_NETWORK_STRUCT) ); + + if (mmr_info_ind->plmn.v_plmn) + { + cmhMM_CnvrtPLMN2INT( mmr_info_ind->plmn.mcc, + mmr_info_ind->plmn.mnc, + &mcc, &mnc ); + } + /* build numeric plmn representation */ + if ((mnc & 0x000F) EQ 0x000F) + { + sprintf((char*)&plmn_netw_data.network_numeric, "%d%d", + mcc, (mnc & 0x0FF0) >> 4); + } + else + { + sprintf((char*)&plmn_netw_data.network_numeric, "%d%d", mcc, mnc); + } +//Apr 13, 2007 DRT:OMAPS00122739 x0066814(Geetha) + if (mmr_info_ind->short_name.v_name) /* short name */ + { + TRACE_FUNCTION(" SHORT NAME "); + mfw_format_plmn_name(mmr_info_ind->short_name.dcs,(UBYTE*)mmr_info_ind->short_name.text, + mmr_info_ind->short_name.c_text, (UBYTE *)plmn_netw_data.network_short.data, 33); + } + + if (mmr_info_ind->full_name.v_name) /* full name */ + { + TRACE_FUNCTION(" Long NAME "); + mfw_format_plmn_name(mmr_info_ind->full_name.dcs,(UBYTE*)mmr_info_ind->full_name.text, + mmr_info_ind->full_name.c_text, (UBYTE *)plmn_netw_data.network_long.data, 33); + } + + plmn_netw_data.opn_read_from = NM_NITZ; + + nm_get_network_data(&plmn_netw_data); +} + +#else + /* DMPS MMREG SAP */ +GLOBAL void rAT_PercentCNIV (T_MMREG_INFO_IND *mmr_info_ind) +{ + T_MFW_NETWORK_STRUCT plmn_netw_data; + SHORT mcc = 0; + SHORT mnc = 0; + + TRACE_FUNCTION("rAT_PercentCNIV()"); + + /* copy plmn info into plmn_netw_data from mmr_info_ind */ + memset(&plmn_netw_data, 0, sizeof(T_MFW_NETWORK_STRUCT)); + + if (mmr_info_ind->v_plmn_id) + { + cmhMM_CnvrtPLMN2INT( &(mmr_info_ind->plmn_id), (USHORT *)&mcc, (USHORT *)&mnc ); + } + /* build numeric plmn representation */ + if ((mnc & 0x000F) EQ 0x000F) + { + sprintf((char*)&plmn_netw_data.network_numeric, "%d%d", + mcc, (mnc & 0x0FF0) >> 4); + + } + else + { + sprintf((char*)&plmn_netw_data.network_numeric, "%d%d", mcc, mnc); + + } + + if (mmr_info_ind->v_short_net_name AND /* short name only */ + !mmr_info_ind->v_full_net_name) + { + TRACE_FUNCTION(" SHORT NAME "); +#ifdef NO_ASCIIZ + memcpy(plmn_netw_data.network_short.data, + mmr_info_ind->short_net_name.text, + mmr_info_ind->short_net_name.c_text); +#else + strcpy(plmn_netw_data.network_short, (char*)mmr_info_ind->short_net_name.text); +#endif + } + else if (!mmr_info_ind->v_short_net_name AND + mmr_info_ind->v_full_net_name) /* full name only */ + { + TRACE_FUNCTION(" LONG NAME "); +#ifdef NO_ASCIIZ + memcpy( plmn_netw_data.network_long.data, + mmr_info_ind->full_net_name.text, + mmr_info_ind->full_net_name.c_text); +#else + strcpy( plmn_netw_data.network_long, (char*)mmr_info_ind->full_net_name.text ); +#endif + } + else if (mmr_info_ind->v_short_net_name AND + mmr_info_ind->v_full_net_name) + { + TRACE_FUNCTION(" LONG AND SHORT "); +#ifdef NO_ASCIIZ + memcpy( plmn_netw_data.network_long.data, + mmr_info_ind->full_net_name.text, + mmr_info_ind->full_net_name.c_text); + memcpy( plmn_netw_data.network_short.data, + mmr_info_ind->short_net_name.text, + mmr_info_ind->short_net_name.c_text); +#else + strcpy( plmn_netw_data.network_long, (char*)mmr_info_ind->full_net_name.text ); + strcpy( plmn_netw_data.network_short, (char*)mmr_info_ind->short_net_name.text); +#endif + } + else + { + TRACE_EVENT("No name found"); + } + + plmn_netw_data.opn_read_from = NM_NITZ; + + nm_get_network_data(&plmn_netw_data); +} + +#endif +/* ++--------------------------------------------------------------------+ +| PROJECT : MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_PercentCCCN | ++--------------------------------------------------------------------+ + + PURPOSE : +*/ +GLOBAL void rAT_PercentCCCN ( T_ACI_FAC_DIR tDirection, + SHORT cId, +#ifdef FF_2TO1_PS + T_NAS_fac_inf *acFie ) +#else + T_MNCC_fac_inf *acFie ) +#endif +{ + TRACE_FUNCTION ("rAT_PercentCCCN ()"); +} + +/* ++--------------------------------------------------------------------+ +| PROJECT : MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_PercentCSSN | ++--------------------------------------------------------------------+ + + PURPOSE : +*/ +GLOBAL void rAT_PercentCSSN ( T_ACI_FAC_DIR tDirection, + T_ACI_FAC_TRANS_TYPE tType, +#ifdef FF_2TO1_PS + T_NAS_fac_inf *acFie ) +#else + T_MNCC_fac_inf *acFie ) +#endif +{ + TRACE_FUNCTION ("rAT_PercentCSSN ()"); +} + + +#if defined (REL99) || defined (FF_2TO1_PS) + +/* ++--------------------------------------------------------------------+ +| PROJECT : MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_PercentCMGRS | ++--------------------------------------------------------------------+ + + PURPOSE : +*/ +GLOBAL void rAT_PercentCMGRS ( T_ACI_CMGRS_MODE mode, + UBYTE tp_mr, + UBYTE resend_count, + UBYTE max_retrans ) +{ + TRACE_FUNCTION ("rAT_PercentCMGRS ()"); +} + +#endif /* REL99 OR FF_2TO1_PS*/ +/* ++--------------------------------------------------------------------+ +| PROJECT : MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_PercentRDLB | ++--------------------------------------------------------------------+ + + PURPOSE : +*/ +GLOBAL void rAT_PercentRDLB ( T_ACI_CC_RDL_BLACKL_STATE state ) +{ + TRACE_FUNCTION ("rAT_PercentRDLB ()"); +} +/* ++--------------------------------------------------------------------+ +| PROJECT : MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_PercentCPRSM | ++--------------------------------------------------------------------+ + + PURPOSE : +*/ + +GLOBAL void rAT_PercentCPRSM ( T_ACI_CPRSM_MOD mode ) +{ + TRACE_FUNCTION ("rAT_PercentCPRSM ()"); +} + +/* ++--------------------------------------------------------------------+ +| PROJECT : MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_PercentCSTAT | ++--------------------------------------------------------------------+ + + PURPOSE : +*/ + +//x0pleela 13 Feb, 2006 +//Querying for EONS data when %CSTAT returns EONS ready + +GLOBAL void rAT_PercentCSTAT ( T_ACI_STATE_MSG msgType ) +{ +#ifndef NEPTUNE_BOARD + T_MFW_NETWORK_STRUCT plmn_eons_data; +#endif + + TRACE_FUNCTION ("rAT_PercentCSTAT ()"); + #ifndef NEPTUNE_BOARD + memset(&plmn_eons_data, 0, sizeof(T_MFW_NETWORK_STRUCT) ); + if( (msgType.entityId EQ STATE_MSG_EONS ) AND + (msgType.entityState EQ ENTITY_STATUS_Ready) ) + { + nm_get_COPN(&plmn_eons_data); + + //send E_NM_OPN event + nm_get_network_data(&plmn_eons_data); + } +#endif + +} + + +/* ++--------------------------------------------------------------------+ +| PROJECT : MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_PercentRDL | ++--------------------------------------------------------------------+ + + PURPOSE : +*/ + +GLOBAL void rAT_PercentRDL ( T_ACI_CC_REDIAL_STATE state ) +{ + TRACE_FUNCTION ("rAT_PercentRDL ()"); +} + +#ifndef FF_2TO1_PS +/* ++--------------------------------------------------------------------+ +| PROJECT : MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_PercentCMGR | ++--------------------------------------------------------------------+ + + PURPOSE : +*/ + +GLOBAL void rAT_PercentCMGR ( T_ACI_CMGL_SM* sm, + T_ACI_CMGR_CBM * cbm) +{ + TRACE_FUNCTION ("rAT_PercentCMGR ()"); +} + +/* ++--------------------------------------------------------------------+ +| PROJECT : MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_PercentCMGL | ++--------------------------------------------------------------------+ + + PURPOSE : +*/ + +GLOBAL void rAT_PercentCMGL ( T_ACI_CMGL_SM * smLst) +{ + TRACE_FUNCTION ("rAT_PercentCMGL ()"); +} + + +/* ++--------------------------------------------------------------------+ +| PROJECT : MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_* | ++--------------------------------------------------------------------+ + + PURPOSE : Following functions MOved from ATI. (ati_ret.c) +*/ + + +GLOBAL void rAT_PercentCREG ( T_ACI_CREG_STAT status, + USHORT lac, + USHORT cid, + T_ACI_P_CREG_GPRS_IND gprs_ind) +{ + TRACE_FUNCTION("rAT_PercentCREG()"); +} + +#if defined (MFW) || defined (SMI) +#ifdef FF_TIMEZONE +GLOBAL void rAT_PlusCTZV ( S32 timezone ) +{ + TRACE_FUNCTION("rAT_PlusCTZV()"); +} +#else +GLOBAL void rAT_PlusCTZV ( UBYTE* timezone ) +{ + TRACE_FUNCTION("rAT_PlusCTZV()"); +} +#endif +#endif + + +// June 02, 2006 DR: OMAPS00078005 x0021334 +// Descripton: Test for NITZ (Network Identity and Timezone) support - No New time was displayed +// Solution: New Time/Date received from network is sent to MFW by lower layer by invoking 'rAT_PercentCTZV' +// function. This function has now been implemented to pass on the received values to MMI +// for user confirmation and RTC updation. +/* ++--------------------------------------------------------------------+ +| PROJECT : MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_PercentCTZV | ++--------------------------------------------------------------------+ + + PURPOSE : +*/ +#if defined (MFW) || defined (SMI) +GLOBAL void rAT_PercentCTZV (T_MMR_INFO_IND *mmr_info_ind, S32 timezone ) +{ + #ifdef FF_TIMEZONE + T_MFW_TIME_IND currclock; + #endif + + TRACE_FUNCTION("rAT_PercentCTZV()"); + + #ifdef FF_TIMEZONE + // Copy time related data received from network to 'currclock' + // to be passed to MMI. + + currclock.hour = mmr_info_ind->time.hour; + currclock.minute = mmr_info_ind->time.minute; + currclock.second = mmr_info_ind->time.second; + + // Copy date related data received from network to 'currclock' + // to be passed to MMI. + currclock.day = mmr_info_ind->time.day; + currclock.month = mmr_info_ind->time.month; + currclock.year = mmr_info_ind->time.year; + + // Pass time and date info to MMI + nm_set_network_time(&currclock); + #endif +} +#endif + +/* ++--------------------------------------------------------------------+ +| PROJECT : GSM-PS (6147) MODULE : | +| STATE : code ROUTINE : | ++--------------------------------------------------------------------+ + + PURPOSE : dummy function, needs not to be used. +*/ +GLOBAL void rAT_Z ( void ){} + +/* ++--------------------------------------------------------------------+ +| PROJECT : MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_* | ++--------------------------------------------------------------------+ + + PURPOSE : Following functions MOved from ACI. (ati_em_ret.c) +*/ + +// June 01, 2005 REF: CRR 31559 x0021334 +// Description: TCS2.1.1 SW not buildable without engineering mode +// Solution: Engineering Mode specific functions are guarded by 'FF_EM_MODE' flag + +#ifndef NEPTUNE_BOARD +#ifdef FF_EM_MODE +GLOBAL void rAT_PercentEM ( /*UBYTE srcId,*/ T_EM_VAL *val_tmp ) +{ +} + +GLOBAL void rAT_PercentEMET ( /*UBYTE srcId,*/ T_EM_VAL val_tmp ) +{ + +} + +GLOBAL void rAT_PercentEMETS ( UBYTE entity ) +{ +} +#endif +#else +#ifdef TI_PS_FF_EM +GLOBAL void rAT_PercentEM ( /*UBYTE srcId,*/ T_EM_VAL *val_tmp ) +{ +} + +GLOBAL void rAT_PercentEMET ( /*UBYTE srcId,*/ T_EM_VAL val_tmp ) +{ + +} + +GLOBAL void rAT_PercentEMETS ( UBYTE entity ) +{ +} +#endif +#endif /*FF_EM_MODE*/ + +/* ++--------------------------------------------------------------------+ +| PROJECT : MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_* | ++--------------------------------------------------------------------+ + + PURPOSE : Following functions MOved from ACI. (ati_cphs.c) +*/ + + + +#ifndef MFW +#ifndef FF_MMI_RIV +/* dummy in case of SMI */ +GLOBAL void rAT_PercentCPNUMS(UBYTE element_index, + UBYTE index_level, + CHAR *alpha_tag, + CHAR *number, + BOOL premium_flag, + BOOL network_flag, + UBYTE type_of_address) +{ +} +#endif /*ndef FF_MMI_RIV */ +#endif /* ndef MFW */ + +#ifndef MFW +#ifndef FF_MMI_RIV +/* dummy in case of SMI */ +GLOBAL void rAT_PercentCPROAM(UBYTE roam_status) +{} +#endif /* ndef FF_MMI_RIV */ +#endif /* ndef MFW */ + +#ifndef MFW +#ifndef FF_MMI_RIV +/* dummy in case of SMI */ +GLOBAL void rAT_PercentCPVWI ( UBYTE flag_set, + USHORT line) +{ } +#endif /* FF_MMI_RIV */ +#endif /* MFW */ +#endif /*FF_2TO1_PS*/ + +/* ++--------------------------------------------------------------------+ +| PROJECT : GSM-F&D (8411) MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_PercentMBI | ++--------------------------------------------------------------------+ + + PURPOSE : handles callback for %MBI, which queries the mailbox identifiers +*/ +#ifdef FF_CPHS_REL4 +GLOBAL void rAT_PercentMBI(T_ACI_MBI* mbi) +{ + T_MFW_CPHS_REL4_MBI mfw_mbi; + mfw_mbi.voice=mbi->mbdn_id_voice; + mfw_mbi.fax=mbi->mbdn_id_fax; + mfw_mbi.electronic=mbi->mbdn_id_email; + mfw_mbi.other=mbi->mbdn_id_other; + mfw_mbi.valid=1; /*1 means valid*/ + + /*need to send MBI signal to BMI*/ + sendCPHSSignal(E_CPHS_REL4_GET_MBI, &mfw_mbi); +} + +/* ++--------------------------------------------------------------------+ +| PROJECT : GSM-F&D (8411) MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_PercentMBI | ++--------------------------------------------------------------------+ + + PURPOSE : handles callback for %MBI, which queries the mailbox identifiers +*/ + +GLOBAL void rAT_PercentMBDN(T_ACI_MBDN* mbdn) +{ + + /*send MBDN signal to BMI*/ + sendCPHSSignal(E_CPHS_REL4_GET_MBDN,mbdn); +} + + +extern T_MFW_CPHS_REL4_MWIS mwis_stat[4]; +/* ++--------------------------------------------------------------------+ +| PROJECT : GSM-F&D (8411) MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_PercentMWIS| ++--------------------------------------------------------------------+ + + PURPOSE : handles callback for %MWIS, which queries the message waiting status*/ + +GLOBAL void rAT_PercentMWIS(T_ACI_MWIS_MWI* mwis) +{ + /*send MBDN signal to BMI*/ + int profile; + static UBYTE count = 1; + +// memcpy(mwis_stat[count - 1],mwis,sizeof(T_MFW_CPHS_REL4_MWIS)); + mwis_stat[count-1].mwisStat = mwis->mwiStat; + mwis_stat[count-1].voicemail = mwis->mwis_count_voice; + mwis_stat[count-1].fax = mwis->mwis_count_fax; + mwis_stat[count-1].electronic = mwis->mwis_count_email; + mwis_stat[count-1].other = mwis->mwis_count_other; + + + if(count == mfw_cphs_get_no_profile()) + sendCPHSSignal(E_CPHS_GET_VC_STAT,0); + else + count++; +} + +/* ++--------------------------------------------------------------------+ +| PROJECT : GSM-F&D (8411) MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_PercentMWI| ++--------------------------------------------------------------------+ + + PURPOSE : handles callback for %MWI. This function is called whenever message waiting status is received*/ +GLOBAL void rAT_PercentMWI(UBYTE msp_id,T_ACI_MWIS_MWI* mwis) +{ + TRACE_FUNCTION("rAT_PercentMWI()"); +// memcpy(mwis_stat[msp_id - 1],mwis,sizeof(T_MFW_CPHS_REL4_MWIS)); + mwis_stat[msp_id - 1].mwisStat = mwis->mwiStat; + mwis_stat[msp_id - 1].voicemail = mwis->mwis_count_voice; + mwis_stat[msp_id - 1].fax = mwis->mwis_count_fax; + mwis_stat[msp_id - 1].electronic = mwis->mwis_count_email; + mwis_stat[msp_id - 1].other = mwis->mwis_count_other; + + sendCPHSSignal(E_CPHS_GET_VC_STAT,0); +} + +#endif + + + +/* ++--------------------------------------------------------------------+ +| PROJECT : GSM-F&D (8411) MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_PlusCLVL | ++--------------------------------------------------------------------+ + + PURPOSE : handles callback for +CLVL querying the volume +*/ + +GLOBAL void rAT_PlusCLVL(U8 drvVol) +{ + TRACE_FUNCTION ("rAT_PlusCLVL()"); + + return; +} + +/* ++--------------------------------------------------------------------+ +| PROJECT : GSM-F&D (8411) MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_PlusCRSL | ++--------------------------------------------------------------------+ + + PURPOSE : handles callback for +CRSL querying the volume +*/ + +GLOBAL void rAT_PlusCRSL(U8 drvVol) +{ + TRACE_FUNCTION ("rAT_PlusCRSL()"); + + return; +} + +/* ++--------------------------------------------------------------------+ +| PROJECT : GSM-F&D (8411) MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_PlusCMUT | ++--------------------------------------------------------------------+ + + PURPOSE : handles callback for +CMUT querying the volume +*/ + +GLOBAL void rAT_PlusCMUT(U8 drvMute) +{ + TRACE_FUNCTION ("rAT_PlusCMUT()"); + + return; +} + +/* Mar 14, 2006 REF:ER OMAPS00070811 */ +#ifdef NEPTUNE_BOARD +/* ++--------------------------------------------------------------------+ +| PROJECT : GSM-F&D (8411) MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_PercentCMGR | ++--------------------------------------------------------------------+ + + */ +GLOBAL void rAT_PercentCMGR ( T_ACI_CMGL_SM* sm, + T_ACI_CMGR_CBM* cbm ) +{ + TRACE_FUNCTION ("rAT_PercentCMGR()"); +} + +/* ++--------------------------------------------------------------------+ +| PROJECT : GSM-F&D (8411) MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_PercentCMGL | ++--------------------------------------------------------------------+ + + PURPOSE : +*/ +GLOBAL void rAT_PercentCMGL ( T_ACI_CMGL_SM * smLst ) +{ + TRACE_FUNCTION ("rAT_PercentCMGL()"); +} + +#endif + +#if defined(TI_UMTS) && defined(TI_PS_3GPP_R5) +/* ++--------------------------------------------------------------------+ +| PROJECT : GSM-F&D (8411) MODULE : MFW_ACI_DUMMY | +| STATE : code ROUTINE : rAT_PercentMMCI | ++--------------------------------------------------------------------+ + + PURPOSE : handles callback for %MMCC indication cc service change + fallback case ( SCUDIF) +*/ + +GLOBAL void rAT_PercentMMCI ( T_ACI_MMCI_STAT state) +{ + TRACE_FUNCTION("rAT_PercentMMCI()"); + + return; +} + +#endif /* TI_UMTS && TI_PS_3GPP_R5 */ + + +#ifdef TI_PS_FF_EM + +GLOBAL void rAT_PercentEINFO (U16 offset, U16 length, T_ENG_INFO_REQ *eng_info_req) +{ + TRACE_FUNCTION("rAT_PercentEINFO()"); + Mfw_em_response_EINFO(eng_info_req); +} + +GLOBAL void rAT_PercentESINFO (U16 offset, U16 length, T_ENG_INFO_STATIC_REQ *eng_info_static_req) +{ + TRACE_FUNCTION("rAT_PercentESINFO()"); + Mfw_em_response_ESINFO(eng_info_static_req); +} + +#endif /* TI_PS_FF_EM */ + +/*a0393213 cphs rel4*/ + +/* ++--------------------------------------------------------------------+ +| PROJECT : GSM-F&D (8411) MODULE : ACI_RET | +| STATE : code ROUTINE : rAT_PercentCFIS | ++--------------------------------------------------------------------+ + + PURPOSE : handles rAT_PercentCFIS call back + PARAMETERS : cfis - Call forward indication status + */ +#ifdef FF_CPHS_REL4 +GLOBAL void rAT_PercentCFIS ( T_ACI_CFIS_CFU *cfis ) +{ + T_MFW_CPHS_REL4_DV_STAT divert_status; + TRACE_FUNCTION("rAT_PercentCFIS()"); + + if(cfis->cfuStat & 0x01) /*first bit corresponds to voice*/ + divert_status.voice=MFW_CFLAG_SET; + else + divert_status.voice=MFW_CFLAG_NOTSet; + + if(cfis->cfuStat & 0x02) /*second bit corresponds to fax*/ + divert_status.fax=MFW_CFLAG_SET; + else + divert_status.fax=MFW_CFLAG_NOTSet; + + if(cfis->cfuStat & 0x04) /*third bit corresponds to data*/ + divert_status.data=MFW_CFLAG_SET; + else + divert_status.data=MFW_CFLAG_NOTSet; + + memcpy(divert_status.voice_dialling_number,cfis->number,PHB_MAX_LEN); + + TRACE_EVENT_P4("voice %x, fax %x, data %x, number %s", + divert_status.voice,divert_status.fax,divert_status.data, + divert_status.voice_dialling_number); + + sendCPHSSignal(E_CPHS_GET_DV_STAT,&divert_status); +} +#endif /* FF_CPHS_REL4 */ + + +//May 10, 2006 REF: DRT OMAPS00075829 xdeepadh +//Using the mechanism where MFW can receive primitives without +// ACI to know about it +#if defined(FF_MMI_FILEMANAGER)||defined(FF_MMI_CAMERA_APP) +/* ++------------------------------------------------------------------------------ +| Function : mslPrimHandler ++------------------------------------------------------------------------------ +| Description : This fn is the premitieve handler for MSL +| +| Parameters : opc-opc code +| data - data +| +| +| Return : TRUE/FALSE ++------------------------------------------------------------------------------ +*/ +GLOBAL BOOL mslPrimHandler (USHORT opc, void * data) +{ +TRACE_FUNCTION ("mslPrimHandler"); +TRACE_EVENT_P1("opc is %x",opc); + + if (opc EQ MSL_MMI_IND) + { + Mslil_msl_mmi_ind((T_MSL_MMI_IND*)data); + return TRUE; + } + + return FALSE; + +} + +/* ++------------------------------------------------------------------------------ +| Function : Mslil_msl_mmi_ind ++------------------------------------------------------------------------------ +| Description : This fn is called when msl_mmi_ind is received +| +| Parameters : msl_mmi_ind - MSL_MMI_IND primitive structure +| +| Return : void ++------------------------------------------------------------------------------ +*/ + +GLOBAL void Mslil_msl_mmi_ind ( T_MSL_MMI_IND *msl_mmi_ind) +{ + + U32 ucp=msl_mmi_ind->ucp; + /*a0393213 compiler warnings removal - removed variable status*/ + + TRACE_FUNCTION ("Mslil_msl_mmi_ind"); + + switch(ucp) + { +#ifdef FF_MMI_CAMERA_APP + case MSL_UCP_IMGCAP:/*MSL_UCP_IMGCAP*/ + mfw_msl_cam_cb(msl_mmi_ind->message, msl_mmi_ind->appData); + break; +#endif +#ifdef FF_MMI_FILEMANAGER + case MSL_UCP_IMGTHMB:/*MSL_UCP_IMGTHMB*/ + //Call the mmi cb for imagethumbnail. + mfw_fm_thmb_mslcb(msl_mmi_ind->message, msl_mmi_ind->appData); + break; + case MSL_UCP_IMGVIEW:/*MSL_UCP_IMGPREVIEW*/ + //Call the mmi cb for magepreview. + mfw_fm_view_mslcb(msl_mmi_ind->message, msl_mmi_ind->appData); + break; +#endif + } + + PFREE(msl_mmi_ind); +} + +/* ++------------------------------------------------------------------------------ +| Function : Msl_mslil_Callback ++------------------------------------------------------------------------------ +| Description : This function should be called by other MSL functions when a callback is to be called +| +| Parameters : handle - MSL handle +| ucp_type - Use case pipeline type +| appData - application specific data +| message - status message +| +| Return : void +| ++------------------------------------------------------------------------------ +*/ + +void Msl_mslil_Callback(void* handle, U32 ucp_type, U32 tCMd, U32 tStatus) +{ +#if defined (NEW_FRAME) + EXTERN T_HANDLE hCommACI; +#else + EXTERN T_VSI_CHANDLE hCommACI; +#endif + + PALLOC(msl_mmi_ind,MSL_MMI_IND); + TRACE_FUNCTION ("Msl_mslil_Callback"); + msl_mmi_ind->ucp = ucp_type; + msl_mmi_ind->handle = (U32)handle; + msl_mmi_ind->message = tCMd; + msl_mmi_ind->appData = (U32)tStatus; + +#if defined (NEW_FRAME) + PSENDX(ACI,msl_mmi_ind); +#else +#if defined (_TMS470) + vsi_c_send("",hCommACI,D2P(msl_mmi_ind), + sizeof(T_PRIM_HEADER)+sizeof(T_MSL_MMI_IND)); +#else + PSEND(ACI,msl_mmi_ind); +#endif +#endif + + return; +} + +#endif //#if defined(FF_MMI_FILEMANAGER)||defined(FF_MMI_CAMERA_APP) +/* EOF */ +