FreeCalypso > hg > fc-tourmaline
view src/ui/mfw/mfw_cb.c @ 303:f76436d19a7a default tip
!GPRS config: fix long-standing AT+COPS chance hanging bug
There has been a long-standing bug in FreeCalypso going back years:
sometimes in the AT command bring-up sequence of an ACI-only MS,
the AT+COPS command would produce only a power scan followed by
cessation of protocol stack activity (only L1 ADC traces), instead
of the expected network search sequence. This behaviour was seen
in different FC firmware versions going back to Citrine, and seemed
to follow some law of chance, not reliably repeatable.
This bug has been tracked down and found to be specific to !GPRS
configuration, stemming from our TCS2/TCS3 hybrid and reconstruction
of !GPRS support that was bitrotten in TCS3.2/LoCosto version.
ACI module psa_mms.c, needed only for !GPRS, was missing in the TCS3
version and had to be pulled from TCS2 - but as it turns out,
there is a new field in the MMR_REG_REQ primitive that needs to be
set correctly, and that psa_mms.c module is the place where this
initialization needed to be added.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 08 Jun 2023 08:23:37 +0000 |
parents | 92abb46dc1ba |
children |
line wrap: on
line source
/* +--------------------------------------------------------------------+ | 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 #if 0 /* FreeCalypso */ #include"rfs/rfs_api.h" #endif #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 #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" #ifdef GPRS /* kgt 12-05-2001 */ #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 */