FreeCalypso > hg > fc-magnetite
view src/aci2/bmi/ATBWapACI.c @ 464:2ba8d9decc30
bmi3: show FreeCalypso fw version in ###520# screen
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 20 Mar 2018 05:54:32 +0000 |
parents | 93999a60b835 |
children |
line wrap: on
line source
/******************************************************************************* CONDAT (UK) ******************************************************************************** This software product is the property of Condat (UK) Ltd and may not be disclosed to any third party without the express permission of the owner. ******************************************************************************** $Project name: $Project code: $Module: $File: ATBWapACI.c $Revision: $Author: Condat(UK) $Date: ******************************************************************************** Description: Provides an interface between the ATB and the ACI. ******************************************************************************** $History: ATBWapACI.c x0035544Nov 29, 2005 REF: MMI-SPR-33833(OMAPS00055207) MMI making Riviera calls without using proper header files. So added appropriate header files. xrashmic 20 Dec, 2005 OMAPS00061232 (on behalf of xreddymn) Displaying of error message when image decoding fails xrashmic 30 Aug, 2005 MMI-SPR-34024(OMAPS00048918) mem leak fix Freeing ImageReq data in WAP memory only for plugin images. 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. xrashmic 17 Aug, 2005 MMI-SPR-31364 When it is detected that a very large page is being opened, the wap adapter sends a message. We need to exit wap and display a error dialog as we have memory constraints. xreddymn Jun-29-2005 MMI-ENH-32467: Handling of animated GIF images July 18 2005 REF: MMI-SPR-32012 x0012849 To change the functionality of RSK , when there is no page to go back. xrashmic 29 Jun, 2005 MMI-SPR-32462 Patch given by Kyle for display of table border xreddymn Jun-21-2005 MMI-SPR-30291: Send one message for the entire profile, instead of sending one parameter at a time, to the WAP adapter xreddymn May-15-2005 MMI-SPR-30962: Added changes to maintain WAP busy state during MMS transactions. xreddymn May-14-2005 MMI-SPR-30834: added send memory free indication from MMI to WAP xrashmic 12 May, 2005 MMI-SPR-30834 For input text box, adding of [] is moved from wap adapter to bmi xreddymn Mar-22-2005 MMI-SPR-29767 Modified behaviour of SL push message handling in MMI xreddymn Mar-11-2005 MMI-SPR-29510 Enabled listing of SL WAP push messages xreddymn Mar-05-2005 MMI-SPR-26144 Disabled dialog boxes that affect MMS send display xrashmic 08 Feb, 2005 MMI-SPR-27853 Error handling in sending MMS and also displaying the progress value xreddymn Mar-11-2005 MMI-SPR-29510 Enabled listing of SL WAP push messages Jan-24-2005 MMI-SPR-28135 - xreddymn: WAP_OTA settings saved in WAP profiles xrashmic 21 Jan, 2005 MMI-SPR-28223 Saving the information passed by wap adapter if the image is from plugin or normal wap page. Dec-10-2003 MMI-SPR-26159 - xreddymn: Prevent duplicate entries in History List 15/05/2003 - SPR#1983 - SH - Updated to latest from 1.6.3 version. $End *******************************************************************************/ #ifndef PSA_WAPS_C #define PSA_WAPS_C #endif #ifdef MFW #define ENTITY_MFW #else #ifdef SMI #define ENTITY_SMI #else #define ENTITY_ACI #endif #endif #define ACI_MEMBER /*==== INCLUDES ===================================================*/ #include <stdio.h> #include <string.h> #include <stdlib.h> #include "typedefs.h" #include "pconst.cdg" #include "mconst.cdg" #include "message.h" #include "ccdapi.h" #include "vsi.h" #include "custom.h" #include "gsm.h" #include "prim.h" #include "cnf_aci.h" #include "mon_aci.h" #include "pei.h" #include "tok.h" #include "message.h" #include "prim.h" #include "aci_cmh.h" #include "ati_cmd.h" #include "aci_cmd.h" /* BEGIN ADD: Sumit : Req ID: : 31-Mar-2005*/ #ifndef NEPTUNE_BOARD /* END ADD: Sumit : Req ID: : 31-Mar-2005*/ #include "ffs/ffs.h" /* BEGIN ADD: Sumit : Req ID: : 31-Mar-2005*/ #else #include "ffs.h" #endif /* END ADD: Sumit : Req ID: : 31-Mar-2005*/ #ifdef FF_GPF_TCPIP #include "leconfig.h" #include "capimic.h" #include "aapimic.h" #include "wapmic_types.h" #include "wapmic_codec.h" #else #include "gledef.h" #include "capiclnt.h" #include "aapiclnt.h" #include "wap_types.h" #include "wap_codec.h" #endif #include "ATBData.h" #include "ATBWapACI.h" #include "ATBWapAUI.h" #include "dspl.h" #ifdef GPRS #include "gaci_cmh.h" #endif //x0035544 29 Nov, 2005 MMI-SPR-55207 #ifndef NEPTUNE_BOARD //x0035544 Sudha - Guarded the below header files for Neptune. #include "rvf/rvf_api.h" // for the function rvf_delay() #endif #ifdef FF_GPF_TCPIP #include "tapimmi.h" #include "socket_api.h" #include "wapmic_sdlh.h" // xreddymn Jan-24-2005 MMI-SPR-28135: WAP_OTA settings saved in WAP profiles #include "mfw_ss.h" // For definitions of MFW_ASCII, MFW_DCS_UCS2 int ATB_convert_String( char * ipString, UBYTE ipDataType, int ipLength, char * opString, UBYTE opDataType, int opLength, UBYTE addNull); void ATB_wap_profile_add(T_WAP_PROFILE *p); #endif EXTERN char *atD (char *cl,UBYTE srcId); //xrashmic 21 Jan, 2005 MMI-SPR-28223 /******************************************************************************* $Function: M_MMI_WAP_READY_IND $Description: Indicate to WAP that MMI is ready to receive events $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_MMI_WAP_READY_IND(T_MMI_WAP_READY_IND *parameter) { #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_MMI_WAP_READY_IND"); #endif mmi_coder(WAP_READY_IND_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_START_IND $Description: Tell WAP Browser to start up $Returns: None. $Arguments: parameter - data block *******************************************************************************/ #ifdef CO_UDP_IP void M_MMI_WAP_START_IND(T_MMI_WAP_START_IND *parameter) #else void M_MMI_WAP_START_IND(T_MMI_WAP_START_USER_AGENT_REQ *parameter) #endif { #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_MMI_WAP_START_IND"); #endif mmi_coder(WAP_START_IND_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_NEW_VIEW_IND $Description: Tell WAP Browser to start a new view $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_MMI_WAP_NEW_VIEW_IND(T_MMI_WAP_NEW_VIEW_IND *parameter) { #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_MMI_WAP_NEW_VIEW_IND"); TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); TRACE_EVENT_P2("id/uamode: %d, %d", parameter->object_id, parameter->uaMode); TRACE_EVENT_P2("width/height: %d, %d", parameter->view_width, parameter->view_height); TRACE_EVENT_P2("font height: %d, width of 'A': %d", parameter->font_height, parameter->font_width[65]); TRACE_EVENT_P2("unicode height: %d, unicode width: %d", parameter->unicode_width, parameter->unicode_height); #endif mmi_coder(WAP_NEW_VIEW_IND_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_TERMINATE_IND $Description: Tell WAP Browser to terminate. $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_MMI_WAP_TERMINATE_IND(T_MMI_WAP_TERMINATE_IND *parameter) { #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_MMI_WAP_TERMINATE_IND"); #endif mmi_coder(WAP_TERMINATE_IND_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_CLOSE_VIEW_IND $Description: Close the specified view. $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_MMI_WAP_CLOSE_VIEW_IND(T_MMI_WAP_CLOSE_VIEW_IND *parameter) { #ifdef TRACE_WAP_WAPMMI TRACE_FUNCTION("M_MMI_WAP_CLOSE_VIEW_IND"); TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); #endif mmi_coder(WAP_CLOSE_VIEW_IND_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_CONFIGURE_IND $Description: Send configuration information to WAP Browser $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_MMI_WAP_CONFIGURE_IND(T_MMI_WAP_CONFIGURE_IND *parameter) { #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_MMI_WAP_CONFIGURE_IND"); TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); TRACE_EVENT_P3( "Type, Param, Length: %d, %d, %d", parameter->type, parameter->param, parameter->length); TRACE_EVENT_P1( "Integer Value: %d", parameter->intvalue); if (parameter->length>0) ATB_trace_string(parameter->strvalue, parameter->length); #endif mmi_coder(WAP_CONFIGURE_IND_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_CONNECTION_CONFIGURE_IND $Description: Send configuration information to WAP Browser $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_MMI_WAP_CONNECTION_CONFIGURE_IND(T_MMI_WAP_CONNECTION_CONFIGURE_IND *parameter) { #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_MMI_WAP_CONNECTION_CONFIGURE_IND"); TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); TRACE_EVENT_P3( "Type, Channel_id, Length: %d, %d, %d", parameter->type, parameter->channel_id, parameter->length); TRACE_EVENT_P1( "Integer Value: %d", parameter->intvalue); ATB_trace_string(parameter->strvalue, parameter->length); #endif mmi_coder(WAP_CONNECTION_CONFIGURE_IND_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_DOWNLOAD_URL_IND $Description: Requests WAP Browser to download a URL $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_MMI_WAP_DOWNLOAD_URL_IND(T_MMI_WAP_DOWNLOAD_URL_IND *parameter) { #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_MMI_WAP_DOWNLOAD_URL_IND"); TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); TRACE_EVENT_P2( "URL length, Reload: %d, %d", parameter->url_length, parameter->reload); ATB_trace_string(parameter->Url, parameter->url_length); #endif mmi_coder(WAP_DOWNLOAD_URL_IND_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_BROWSE_CONTROL_IND $Description: Sends browsing request to WAP Browser $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_MMI_WAP_BROWSE_CONTROL_IND(T_MMI_WAP_BROWSE_CONTROL_IND *parameter) { #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_MMI_WAP_BROWSE_CONTROL_IND"); TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); TRACE_EVENT_P1( "Browse command: %d", parameter->browse_command); #endif mmi_coder(WAP_BROWSE_CONTROL_IND_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_KEY_SELECTED_IND $Description: Indicate to Browser that a WAP Key has been selected. $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_MMI_WAP_KEY_SELECTED_IND(T_MMI_WAP_KEY_SELECTED_IND *parameter) { #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_MMI_WAP_KEY_SELECTED_IND"); TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); TRACE_EVENT_P1( "keyId: %d", parameter->keyId); #endif mmi_coder(WAP_KEY_SELECTED_IND_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_INPUT_DIALOG_CNF $Description: Confirmation of input dialog. $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_MMI_WAP_INPUT_DIALOG_CNF(T_MMI_WAP_INPUT_DIALOG_CNF *parameter) { #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_MMI_WAP_INPUT_DIALOG_CNF"); TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); TRACE_EVENT_P2( "dialog_id, edited: %d, %d", parameter->dialog_id, parameter->edited); ATB_trace_ushort_string(parameter->Text, parameter->text_length); #endif mmi_coder(WAP_INPUT_DIALOG_CNF_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_PASSWORD_DIALOG_CNF $Description: Confirmation of password dialog. $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_MMI_WAP_PASSWORD_DIALOG_CNF(T_MMI_WAP_PASSWORD_DIALOG_CNF *parameter) { #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_MMI_WAP_PASSWORD_DIALOG_CNF"); TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); TRACE_EVENT_P1( "MMI dialog_id: %d", parameter->dialog_id); ATB_trace_string(parameter->Input, parameter->input_length); ATB_trace_string(parameter->Password, parameter->password_length); #endif mmi_coder(WAP_PASSWORD_DIALOG_CNF_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_CONFIRM_DIALOG_CNF $Description: Confirmation of confirm dialog. $Returns: None $Arguments: parameter - data block *******************************************************************************/ void M_MMI_WAP_CONFIRM_DIALOG_CNF(T_MMI_WAP_CONFIRM_DIALOG_CNF *parameter) { #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_MMI_WAP_CONFIRM_DIALOG_CNF"); TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); TRACE_EVENT_P2( "MMI dialog_id: %d, Answer: %d", parameter->dialog_id, parameter->answer); #endif mmi_coder(WAP_CONFIRM_DIALOG_CNF_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_INFO_DIALOG_CNF $Description: Confirmation of info dialog. $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_MMI_WAP_INFO_DIALOG_CNF(T_MMI_WAP_INFO_DIALOG_CNF *parameter) { #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_MMI_WAP_INFO_DIALOG_CNF"); TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); TRACE_EVENT_P1( "MMI dialog_id: %d", parameter->dialog_id); #endif mmi_coder(WAP_INFO_DIALOG_CNF_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_DRAW_CARD_REQ $Description: Request WAP Browser to draw the current card. $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_MMI_WAP_DRAW_CARD_REQ(T_MMI_WAP_DRAW_CARD_REQ *parameter) { T_WAP_VIEW *View = ATB_wap_get_view(parameter->object_id); #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_MMI_WAP_DRAW_CARD_REQ"); TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); #endif if (View) mmi_coder(WAP_DRAW_CARD_REQ_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_CONNECT_CNF $Description: Confirmation to WAP Browser that WAP call is connected $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_MMI_WAP_CONNECT_CNF(T_MMI_WAP_CONNECT_CNF *parameter) { #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_MMI_WAP_CONNECT_CNF"); TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); #endif mmi_coder(WAP_CONNECT_CNF_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_DISCONNECT_IND $Description: Tell WAP Browser to disconnect $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_MMI_WAP_DISCONNECT_IND(T_MMI_WAP_DISCONNECT_IND *parameter) { #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_MMI_WAP_DISCONNECT_IND"); TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); #endif mmi_coder(WAP_DISCONNECT_IND_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_CACHE_PREPARE_IND $Description: Tell WAP Browser to prepare the cache for shutdown $Returns: None $Arguments: parameter - data block *******************************************************************************/ void M_MMI_WAP_CACHE_PREPARE_IND(T_MMI_WAP_CACHE_PREPARE_IND *parameter) { #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_MMI_WAP_CACHE_PREPARE_IND"); #endif mmi_coder(WAP_CACHE_PREPARE_IND_ID,(void*)parameter); return; } #ifdef FF_GPF_TCPIP /******************************************************************************* $Function: M_MMI_WAP_CONFIG_CNF $Description: SPR#2086 - SH - SAR $Returns: None $Arguments: parameter - data block *******************************************************************************/ void M_MMI_WAP_CONFIG_CNF(T_MMI_WAP_CONFIG_CNF *parameter) { #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_MMI_WAP_CONFIG_CNF"); #endif mmi_coder(WAP_CONFIG_CNF_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_CONTENT_REQ $Description: SPR#2086 - SH - SAR $Returns: None $Arguments: parameter - data block *******************************************************************************/ void M_MMI_WAP_CONTENT_REQ(T_MMI_WAP_CONTENT_REQ *parameter) { #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_MMI_WAP_GET_CONTENT_REQ"); #endif mmi_coder(WAP_CONTENT_REQ_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_CONTENT_POST_REQ $Description: SPR#2086 - SH - SAR $Returns: None $Arguments: parameter - data block *******************************************************************************/ void M_MMI_WAP_CONTENT_POST_REQ(T_MMI_WAP_CONTENT_POST_REQ *parameter) { #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_MMI_WAP_CONTENT_POST_REQ"); #endif mmi_coder(WAP_CONTENT_POST_REQ_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_CONTENT_POST_MORE_IND $Description: SPR#2086 - SH - SAR $Returns: None $Arguments: parameter - data block *******************************************************************************/ void M_MMI_WAP_CONTENT_POST_MORE_REQ(T_MMI_WAP_CONTENT_POST_MORE_REQ *parameter) { #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_MMI_WAP_CONTENT_POST_MORE_REQ"); #endif mmi_coder(WAP_CONTENT_POST_MORE_REQ_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_CONTENT_CNF $Description: SPR#2086 - SH - SAR $Returns: None $Arguments: parameter - data block *******************************************************************************/ void M_MMI_WAP_CONTENT_CNF(T_MMI_WAP_CONTENT_CNF *parameter) { #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_MMI_WAP_CONTENT_CNF"); #endif mmi_coder(WAP_CONTENT_CNF_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_CONTENT_CANCEL_IND $Description: SPR#2086 - SH - SAR $Returns: None $Arguments: parameter - data block *******************************************************************************/ void M_MMI_WAP_CONTENT_CANCEL_IND(T_MMI_WAP_CONTENT_CANCEL_IND *parameter) { #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_MMI_WAP_CONTENT_CANCEL_IND"); #endif mmi_coder(WAP_CONTENT_CANCEL_IND_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_PUSH_LOAD_SI_IND $Description: Load the service pointed to by a SI SPR#2086 - Added $Returns: None. $Arguments: parameter - Data block *******************************************************************************/ void M_MMI_WAP_PUSH_LOAD_SI_IND(T_MMI_WAP_PUSH_LOAD_SI_IND *parameter) { #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_MMI_WAP_PUSH_LOAD_SI_IND"); #endif mmi_coder(WAP_PUSH_LOAD_SI_IND_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_PUSH_DELETE_SI_IND $Description: Delete an SI SPR#2086 - Added $Returns: None. $Arguments: parameter - Data block *******************************************************************************/ void M_MMI_WAP_PUSH_DELETE_SI_IND(T_MMI_WAP_PUSH_DELETE_SI_IND *parameter) { #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_MMI_WAP_PUSH_DELETE_SI_IND"); #endif mmi_coder(WAP_PUSH_DELETE_SI_IND_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_PUSH_GET_SI_INFO_REQ $Description: Request info on an SI SPR#2086 - Added $Returns: None. $Arguments: parameter - Data block *******************************************************************************/ void M_MMI_WAP_PUSH_GET_SI_INFO_REQ(T_MMI_WAP_PUSH_GET_SI_INFO_REQ *parameter) { #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_MMI_WAP_PUSH_GET_SI_INFO_REQ"); #endif mmi_coder(WAP_PUSH_GET_SI_INFO_REQ_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_PUSH_LOAD_SL_IND $Description: Load the service pointed to by an SL SPR#2086 - Added $Returns: None. $Arguments: parameter - Data block *******************************************************************************/ void M_MMI_WAP_PUSH_LOAD_SL_IND(T_MMI_WAP_PUSH_LOAD_SL_IND *parameter) { #ifdef TRACE_WAP_WAPMMI TRACE_EVENT("M_MMI_WAP_PUSH_LOAD_SL_IND"); #endif mmi_coder(WAP_PUSH_LOAD_SL_IND_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_PUSH_DELETE_SL_IND $Description: Delete an SL SPR#2086 - Added $Returns: None. $Arguments: parameter - Data block *******************************************************************************/ void M_MMI_WAP_PUSH_DELETE_SL_IND(T_MMI_WAP_PUSH_DELETE_SL_IND *parameter) { #ifdef TRACE_WAP_WAPMMI TRACE_EVENT("M_MMI_WAP_PUSH_DELETE_SL_IND"); #endif mmi_coder(WAP_PUSH_DELETE_SL_IND_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_PUSH_GET_SL_INFO_REQ $Description: Request info on an SL SPR#2086 - Added $Returns: None. $Arguments: parameter - Data block *******************************************************************************/ void M_MMI_WAP_PUSH_GET_SL_INFO_REQ(T_MMI_WAP_PUSH_GET_SL_INFO_REQ *parameter) { #ifdef TRACE_WAP_WAPMMI TRACE_EVENT("M_MMI_WAP_PUSH_GET_SL_INFO_REQ"); #endif mmi_coder(WAP_PUSH_GET_SL_INFO_REQ_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_PUSH_CONNECTION_CNF $Description: Confirm that Push connection information has been set up SPR#2086 - Added $Returns: None. $Arguments: parameter - Data block *******************************************************************************/ void M_MMI_WAP_PUSH_CONNECTION_CNF(T_MMI_WAP_PUSH_CONNECTION_CNF *parameter) { #ifdef TRACE_WAP_WAPMMI TRACE_EVENT("M_MMI_WAP_PUSH_CONNECTION_CNF"); #endif mmi_coder(WAP_PUSH_CONNECTION_CNF_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_PUSH_CHANGE_STATUS_IND $Description: Change the status of a push message SPR#2086 - Added $Returns: None. $Arguments: parameter - Data block *******************************************************************************/ void M_MMI_WAP_PUSH_CHANGE_STATUS_IND(T_MMI_WAP_PUSH_CHANGE_STATUS_IND *parameter) { #ifdef TRACE_WAP_WAPMMI TRACE_EVENT("M_MMI_WAP_PUSH_CHANGE_STATUS_IND"); #endif mmi_coder(WAP_PUSH_CHANGE_STATUS_IND_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_PUSH_REMOVE_MESSAGE_IND $Description: Remove a push message SPR#2086 - Added $Returns: None. $Arguments: parameter - Data block *******************************************************************************/ void M_MMI_WAP_PUSH_REMOVE_MESSAGE_IND(T_MMI_WAP_PUSH_REMOVE_MESSAGE_IND *parameter) { #ifdef TRACE_WAP_WAPMMI TRACE_EVENT("M_MMI_WAP_PUSH_REMOVE_MESSAGE_IND"); #endif mmi_coder(WAP_PUSH_REMOVE_MESSAGE_IND_ID,(void*)parameter); return; } /******************************************************************************* $Function: MMI_WAP_PUSH_CHECK_UNLOADED_MSG_REQ $Description: Check if there are any unloaded messages SPR#2086 - Added $Returns: None. $Arguments: parameter - Data block *******************************************************************************/ void M_MMI_WAP_PUSH_CHECK_UNLOADED_MSG_REQ(T_MMI_WAP_PUSH_CHECK_UNLOADED_MSG_REQ *parameter) { #ifdef TRACE_WAP_WAPMMI TRACE_EVENT("M_MMI_WAP_PUSH_CHECK_UNLOADED_MSG_REQ"); #endif mmi_coder(WAP_PUSH_CHECK_UNLOADED_MSG_REQ_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_PUSH_SAVE_TO_FLASH_IND $Description: Save push repository to flash SPR#2086 - Added $Returns: None. $Arguments: parameter - Data block *******************************************************************************/ void M_MMI_WAP_PUSH_SAVE_TO_FLASH_IND(T_MMI_WAP_PUSH_SAVE_TO_FLASH_IND *parameter) { #ifdef TRACE_WAP_WAPMMI TRACE_EVENT("M_MMI_WAP_PUSH_SAVE_TO_FLASH_IND"); #endif mmi_coder(WAP_PUSH_SAVE_TO_FLASH_IND_ID,(void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_PUSH_SMS_RECEIVED_IND $Description: WAP SMS has been received SPR#2086 - Added $Returns: None $Arguments: parameter - Data block *******************************************************************************/ void M_MMI_WAP_PUSH_SMS_RECEIVED_IND(T_MMI_WAP_PUSH_SMS_RECEIVED_IND *parameter) { #ifdef TRACE_WAP_WAPMMI TRACE_EVENT("M_MMI_WAP_PUSH_SMS_RECEIVED_IND"); #endif mmi_coder(WAP_PUSH_SMS_RECEIVED_IND_ID, (void*)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_PUSH_SMS_SENT_IND $Description: WAP SMS has been sent SPR#2086 - Added $Returns: None $Arguments: parameter - Data block *******************************************************************************/ void M_MMI_WAP_PUSH_SMS_SENT_IND(T_MMI_WAP_PUSH_SMS_SENT_IND *parameter) { #ifdef TRACE_WAP_WAPMMI TRACE_EVENT("M_MMI_WAP_PUSH_SMS_SENT_IND"); #endif mmi_coder(WAP_PUSH_SMS_SENT_IND_ID, (void *)parameter); return; } /******************************************************************************* $Function: M_MMI_WAP_PUSH_SMS_ERROR_IND $Description: WAP SMS has not been sent SPR#2086 - Added $Returns: None $Arguments: parameter - Data block *******************************************************************************/ void M_MMI_WAP_PUSH_SMS_ERROR_IND(T_MMI_WAP_PUSH_SMS_ERROR_IND *parameter) { #ifdef TRACE_WAP_WAPMMI TRACE_EVENT("M_MMI_WAP_PUSH_SMS_ERROR_IND"); #endif mmi_coder(WAP_PUSH_SMS_ERROR_IND_ID, (void *)parameter); return; } #endif #ifdef FF_GPF_TCPIP /******************************************************************************* $Function: M_WAP_MMI_CONTROL_IND $Description: $Returns: $Arguments: parameter - Data block *******************************************************************************/ void M_WAP_MMI_CONTROL_IND(T_WAP_MMI_CONTROL_IND *parameter) { T_WAP_VIEW *View; #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_WAP_MMI_CONTROL_IND"); TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); TRACE_EVENT_P3( "Status, Error, Click: %d, %d, %d", parameter->status_code, parameter->error_code, parameter->play_standard_click); #endif View = ATB_wap_get_view(parameter->object_id); /* SPR#1816 - SH - Check if we're shutting down */ if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) { TRACE_EVENT("*** SHUTTING DOWN ***"); return; } /* Intercept fatal error */ //if (parameter->error_code==8002) //OUT OF MEMORY code 0x903 if (parameter->error_code==2307) { AUI_error_dialog(View, parameter->error_code); return; } /* SPR#2086 - SH - Modified slightly to report status values * correctly when downloading content using SAR */ /* If WSP session failed, try using second IP address */ if (parameter->error_code==1014 && !View->secondaryIP) { ATB_wap_secondary_IP(View); return; } /* For any other error, display the error dialog */ if (parameter->error_code!=0 && parameter->error_code != 0x20) { AUI_error_dialog(View, parameter->error_code); return; } /* Otherwise, report selected status values */ switch(parameter->status_code) { case 12: /* Data is being downloaded */ ATB_wap_status_change(View, ATB_WAP_DOWNLOADING); break; case 13: /* Data is no longer being downloaded */ ATB_wap_status_change(View, ATB_WAP_NO_STATUS); break; case 7: /* Content taken from network server */ if (View->object_id==WAP_DOWNLOAD_VIEW) { ATB_wap_status_change(View, ATB_WAP_DOWNLOADING); } break; case 9: /* Content no longer being taken */ if (View->object_id==WAP_DOWNLOAD_VIEW) { ATB_wap_status_change(View, ATB_WAP_NO_STATUS); } break; } return; } #else /* #ifdef FF_GPF_TCPIP */ /******************************************************************************* $Function: M_WAP_MMI_CONTROL_IND $Description: Send control information to MMI $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_WAP_MMI_CONTROL_IND(T_WAP_MMI_CONTROL_IND *parameter) { T_WAP_VIEW *View; #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_WAP_MMI_CONTROL_IND"); TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); TRACE_EVENT_P3( "Status, Error, Click: %d, %d, %d", parameter->status_code, parameter->error_code, parameter->play_standard_click); #endif View = ATB_wap_get_view(parameter->object_id); /* Check if we're shutting down */ if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) { TRACE_EVENT("*** SHUTTING DOWN ***"); return; } /* Intercept fatal error */ if (parameter->error_code==8002) { AUI_error_dialog(View, parameter->error_code); return; } /* For non-fatal error, do not report if there is no view open */ if (!View) { TRACE_EVENT("View is NULL"); return; } /* Data is being downloaded; update status display */ if (parameter->status_code==14) { ATB_wap_status_change(View, ATB_WAP_DOWNLOADING); } /* Data is no longer being downloaded */ if (parameter->status_code==15) { ATB_wap_status_change(View, ATB_WAP_NO_STATUS); } /* If WSP session failed, try using second IP address */ if (parameter->error_code==1014 && !View->secondaryIP) { ATB_wap_secondary_IP(View); return; } /* Create error dialog if required */ if (parameter->error_code!=0 && parameter->error_code != 0x20) { AUI_error_dialog(View, parameter->error_code); } return; } #endif /* ! #ifdef FF_GPF_TCPIP */ /******************************************************************************* $Function: M_WAP_MMI_NEW_KEY_IND $Description: A new WAP key is to be created. $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_WAP_MMI_NEW_KEY_IND(T_WAP_MMI_NEW_KEY_IND *parameter) { T_WAP_VIEW *View; #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_WAP_MMI_NEW_KEY_IND"); TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); TRACE_EVENT_P2( "Key ID, Key Type: %d, %d", parameter->keyId, parameter->key_type); ATB_trace_ushort_string(parameter->Label, parameter->label_length); #endif if (!(View = ATB_wap_get_view(parameter->object_id))) return; /* SPR#1816 - SH - Check if we're shutting down */ if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) { TRACE_EVENT("*** SHUTTING DOWN ***"); return; } if (parameter->key_type == WAP_KEY_PREV) AUI_wap_change_soft_key(View, parameter->Label, (USHORT)parameter->label_length, parameter->keyId); return; } /******************************************************************************* $Function: M_WAP_MMI_INPUT_DIALOG_REQ $Description: An input dialog is to be displayed. $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_WAP_MMI_INPUT_DIALOG_REQ(T_WAP_MMI_INPUT_DIALOG_REQ *parameter) { T_WAP_VIEW *View; #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_WAP_MMI_INPUT_DIALOG_REQ"); TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); TRACE_EVENT_P2( "MMI dialog_id, is_password: %d, %d", parameter->dialog_id, parameter->is_password); TRACE_EVENT_P3( "MMI empty_ok, visible, size: %d, %d, %d", parameter->empty_ok, parameter->visible, parameter->size); ATB_trace_ushort_string(parameter->Title, parameter->title_length); ATB_trace_ushort_string(parameter->Input, parameter->input_length); ATB_trace_ushort_string(parameter->Format, parameter->format_length); #endif // TRACE_ATBWAPACI if (!(View = ATB_wap_get_view(parameter->object_id))) return; /* SPR#1816 - SH - Check if we're shutting down */ if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) { TRACE_EVENT("*** SHUTTING DOWN ***"); return; } #ifdef FF_GPF_TCPIP AUI_wap_input_dialog_open(parameter, View); #else AUI_wap_input_dialog_open(parameter); #endif return; } /******************************************************************************* $Function: M_WAP_MMI_PASSWORD_DIALOG_REQ $Description: A password dialog is to be displayed. $Returns: None $Arguments: parameter - data block *******************************************************************************/ void M_WAP_MMI_PASSWORD_DIALOG_REQ(T_WAP_MMI_PASSWORD_DIALOG_REQ *parameter) { T_WAP_VIEW *View; #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_WAP_MMI_PASSWORD_DIALOG_REQ"); TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); TRACE_EVENT_P2( "MMI dialog_id, dialog_type: %d, %d", parameter->dialog_id, parameter->dialog_type); /* SPR#2393 - SH - Changed password fields */ ATB_trace_string(parameter->Realm, parameter->realm_length); #endif if (!(View = ATB_wap_get_view(parameter->object_id))) return; /* Check if we're shutting down */ if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) { TRACE_EVENT("*** SHUTTING DOWN ***"); return; } #ifdef FF_GPF_TCPIP AUI_wap_password_dialog_open(parameter, View); #else AUI_wap_password_dialog_open(parameter); #endif return; } /******************************************************************************* $Function: M_WAP_MMI_CONFIRM_DIALOG_REQ $Description: A confirmation dialog is to be displayed. $Returns: None $Arguments: parameter - data block *******************************************************************************/ void M_WAP_MMI_CONFIRM_DIALOG_REQ(T_WAP_MMI_CONFIRM_DIALOG_REQ *parameter) { T_WAP_VIEW *View; #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_WAP_MMI_CONFIRM_DIALOG_REQ"); TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); TRACE_EVENT_P1( "MMI dialog_id: %d", parameter->dialog_id); ATB_trace_ushort_string(parameter->Message, parameter->message_length); ATB_trace_ushort_string(parameter->Ok_key, parameter->ok_key_length); ATB_trace_ushort_string(parameter->Cancel_key, parameter->cancel_key_length); #endif if (!(View = ATB_wap_get_view(parameter->object_id))) return; /* SPR#1816 - SH - Check if we're shutting down */ if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) { TRACE_EVENT("*** SHUTTING DOWN ***"); return; } #ifdef FF_GPF_TCPIP AUI_wap_confirm_dialog_open(parameter, View); #else AUI_wap_confirm_dialog_open(parameter); #endif return; } /******************************************************************************* $Function: M_WAP_MMI_INFO_DIALOG_REQ $Description: An info/alert dialog is to be displayed. $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_WAP_MMI_INFO_DIALOG_REQ(T_WAP_MMI_INFO_DIALOG_REQ *parameter) { T_WAP_VIEW *View; #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_WAP_MMI_INFO_DIALOG_REQ"); TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); TRACE_EVENT_P1( "MMI dialog_id: %d", parameter->dialog_id); ATB_trace_ushort_string(parameter->Message, parameter->message_length); #endif if (!(View = ATB_wap_get_view(parameter->object_id))) return; /* SPR#1816 - SH - Check if we're shutting down */ if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) { TRACE_EVENT("*** SHUTTING DOWN ***"); return; } #ifdef FF_GPF_TCPIP AUI_wap_info_dialog_open(parameter, View); #else AUI_wap_info_dialog_open(parameter); #endif return; } /******************************************************************************* $Function: M_WAP_MMI_NEW_CARD_IND $Description: A new card is to be created. $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_WAP_MMI_NEW_CARD_IND(T_WAP_MMI_NEW_CARD_IND *parameter) { T_WAP_VIEW *View; #ifdef CO_UDP_IP UBYTE *History = (UBYTE *)parameter->History; U32 historyPointer = History[4] + History[5]*0x100 + History[6]*0x10000 + History[7]*0x1000000; /* Look at second history entry (bytes 4 to 7) - this is the previous card. * If this is zero, then there shouldn't be a "back" key */ USHORT historyIndex; #endif #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_WAP_MMI_NEW_CARD_IND"); TRACE_EVENT_P1("object ID: %d",parameter->object_id); TRACE_EVENT_P1( "is_bookmarkable: %d", parameter->is_bookmarkable); ATB_trace_ushort_string(parameter->Title, parameter->title_length); ATB_trace_string(parameter->Url, parameter->url_length); #endif if (!(View = ATB_wap_get_view(parameter->object_id))) { return; } /* SPR#1816 - SH - Check if we're shutting down */ if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) { TRACE_EVENT("*** SHUTTING DOWN ***"); return; } /* SPR#1816 - SH - Store title, or "Untitled" if title is blank */ if (parameter->title_length > 0) { /* Copy a max of CARD_TITLE_MAX_LEN unicode characters */ parameter->title_length = ATB_uc_text_copy(View->Title, parameter->Title, CARD_TITLE_MAX_LEN); /* Convert to MMI unicode, store in View->Title */ ATB_uc_text_convert(View->Title, parameter->title_length); } else { /* Use "Untitled" text tag */ parameter->title_length = AUI_wap_stringID(View->Title, CARD_TITLE_MAX_LEN, WAP_STRING_UNTITLED); } /* SPR#1816 - SH - Copy URL, making sure it's not too long */ strncpy(View->URL, parameter->Url, URL_MAX_LEN); /* Add card name & URL to top of history list * SPR#1816 - SH - Do this before cropping title */ #ifdef FF_GPF_TCPIP if (ATB_wap_profile_setting(WAP_STATUS_SAVEHISTORY)) { // xreddymn Dec-10-2004 MMI-SPR-26159 - Insert title only if insert URL was successful #if(0) // If set to 1, allows duplicate URLs to be inserted into history list ATB_wap_entry_insert(WAP_HISTORY_LIST, View->History, (char *)View->Title, 0); // Add as entry 0 (last entry lost) ATB_wap_entry_insert(WAP_URL_LIST, View->HistoryURL, View->URL, 0); #else // Insert title only if insert URL was successful if(ATB_wap_entry_insert(WAP_URL_LIST, View->HistoryURL, View->URL, 0)!=WAP_FAIL) ATB_wap_entry_insert(WAP_HISTORY_LIST, View->History, (char *)View->Title, 0); // Add as entry 0 (last entry lost) #endif } //changes #else if (View->Status & WAP_STATUS_SAVEHISTORY) { ATB_wap_entry_insert(View->History, (char *)View->Title, 0); /* Add as entry 0 (last entry lost) */ ATB_wap_entry_insert(View->HistoryURL, View->URL, 0); } #endif //changes /* Crop title so it fits on screen */ ATB_uc_text_crop(View->Title, parameter->title_length, WAP_SCREEN_WIDTH-WAP_CHAR_WIDTH); /* Check to see if user can go back from this card */ #ifdef CO_UDP_IP if (historyPointer != 0) { View->CanGoBack = TRUE; } else { View->CanGoBack = FALSE; } #else View->CanGoBack = TRUE; #endif View->CustSoftKeys = FALSE; /* Use default softkeys */ /* SPR#1575 - SH - New card is being read in */ ATB_wap_status_change(View, ATB_WAP_CARD_READING); return; } /******************************************************************************* $Function: M_WAP_MMI_DRAW_CARD_IND $Description: Tell MMI to draw the card. $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_WAP_MMI_DRAW_CARD_IND(T_WAP_MMI_DRAW_CARD_IND *parameter) { T_WAP_VIEW *View; #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_WAP_MMI_DRAW_CARD_IND"); TRACE_EVENT_P1("object ID: %d",parameter->object_id); TRACE_EVENT_P2("contentWidth: %d, contentHeight: %d",parameter->contentWidth, parameter->contentHeight); TRACE_EVENT_P2("contentPosX: %d, contentPosY: %d",parameter->contentPosX, parameter->contentPosY); #endif if (!(View = ATB_wap_get_view(parameter->object_id))) return; /* SPR#1816 - SH - Check if we're shutting down */ if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) { TRACE_EVENT("*** SHUTTING DOWN ***"); return; } View->cardWidth = parameter->contentWidth; View->cardHeight = parameter->contentHeight; View->cardXPosition = parameter->contentPosX; View->cardYPosition = parameter->contentPosY; View->acceptUpdate = FALSE; /* Set to FALSE as default, to ignore any attempts to redraw parts of the card * rather than the whole card (e.g. when selecting an option). Only allows a card * to be updated if M_WAP_MMI_CLEAR_CARD_IND is called. */ return; } /******************************************************************************* $Function: M_WAP_MMI_CLEAR_CARD_IND $Description: Clear the card display. Allows card to be updated. $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_WAP_MMI_CLEAR_CARD_IND(T_WAP_MMI_CLEAR_CARD_IND *parameter) { T_WAP_VIEW *View; #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_WAP_MMI_CLEAR_CARD_IND"); TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); #endif if (!(View = ATB_wap_get_view(parameter->object_id))) return; /* SPR#1816 - SH - Check if we're shutting down */ if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) { TRACE_EVENT("*** SHUTTING DOWN ***"); return; } View->acceptUpdate = TRUE; /* Clearing the card means we're going to update the whole thing, so this update * is permitted (see M_WAP_MMI_DRAW_CARD_IND). */ return; } /******************************************************************************* $Function: M_WAP_MMI_SEND_TEXT_IND $Description: A text is to be displayed. $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_WAP_MMI_SEND_TEXT_IND(T_WAP_MMI_SEND_TEXT_IND *parameter) { T_WAP_VIEW *View; T_WAP_ELEMENT *Element; T_WAP_MMI_SEND_TEXT_IND *copy; #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_WAP_MMI_SEND_TEXT_IND"); ATB_trace_ushort_string(parameter->Text, parameter->text_length); ATB_trace_ushort_string(parameter->Formatstring, parameter->formatstring_length); #endif if (!(View = ATB_wap_get_view(parameter->object_id))) { #ifdef FF_GPF_TCPIP // xrashmic 20 Dec, 2005 OMAPS00061232 (on behalf of xreddymn) // Need to free if the memory was allocated by us in wapadapter. if(TRUE == parameter->free_flag) { T_MMI_WAP_MEM_FREE_IND free_mem_ind; free_mem_ind.data = (UBYTE*)parameter->Text; free_mem_ind.imageObject=FALSE; M_MMI_WAP_FREE_MEM_IND(&free_mem_ind); } #endif return; } /* SPR#1816 - SH - Check if we're shutting down */ if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) { TRACE_EVENT("*** SHUTTING DOWN ***"); #ifdef FF_GPF_TCPIP // xrashmic 20 Dec, 2005 OMAPS00061232 (on behalf of xreddymn) // Need to free if the memory was allocated by us in wapadapter. if(TRUE == parameter->free_flag) { T_MMI_WAP_MEM_FREE_IND free_mem_ind; free_mem_ind.data = (UBYTE*)parameter->Text; free_mem_ind.imageObject=FALSE; M_MMI_WAP_FREE_MEM_IND(&free_mem_ind); } #endif return; } /* If an update is forbidden, ignore this event */ if (!View->acceptUpdate) { #ifdef FF_GPF_TCPIP // xrashmic 20 Dec, 2005 OMAPS00061232 (on behalf of xreddymn) // Need to free if the memory was allocated by us in wapadapter. if(TRUE == parameter->free_flag) { T_MMI_WAP_MEM_FREE_IND free_mem_ind; free_mem_ind.data = (UBYTE*)parameter->Text; free_mem_ind.imageObject=FALSE; M_MMI_WAP_FREE_MEM_IND(&free_mem_ind); } #endif return; } /* Allocate memory and copy the data */ Element = ATB_wap_buffer_add_element(View, WAP_TEXT); /* SPR#1921 - SH */ copy = (T_WAP_MMI_SEND_TEXT_IND *)AUI_wap_memory_alloc(sizeof(T_WAP_MMI_SEND_TEXT_IND)); memcpy((void *)copy, (void *)parameter, sizeof(T_WAP_MMI_SEND_TEXT_IND)); //xrashmic 12 May, 2005 MMI-SPR-30834 //For input text box, adding of [] is moved from wap adapter to bmi if(WAP_TEXT_INPUT == parameter->type) { if(parameter->text_length==0) { copy->text_length=2; copy->Text = (USHORT *)AUI_wap_memory_alloc((copy->text_length+1)*sizeof(USHORT)); } else { copy->text_length=parameter->text_length+2; copy->Text = (USHORT *)AUI_wap_memory_alloc((copy->text_length+1)*sizeof(USHORT)); memcpy((void *)(copy->Text+1), (void *)parameter->Text, parameter->text_length*sizeof(USHORT)); } copy->Text[0] = (USHORT) '['; copy->Text[copy->text_length-1] = (USHORT) ']'; copy->Text[copy->text_length] = (USHORT) '\0'; } else { if (parameter->text_length != 0) { copy->Text = (USHORT *)AUI_wap_memory_alloc(parameter->text_length*sizeof(USHORT)); memcpy((void *)copy->Text, (void *)parameter->Text, parameter->text_length*sizeof(USHORT)); } } if (parameter->formatstring_length != 0) { copy->Formatstring = (USHORT *)AUI_wap_memory_alloc(parameter->formatstring_length*sizeof(USHORT)); memcpy((void *)copy->Formatstring, (void *)parameter->Text, parameter->formatstring_length*sizeof(USHORT)); } Element->data = (void *)copy; #ifdef FF_GPF_TCPIP // xrashmic 20 Dec, 2005 OMAPS00061232 (on behalf of xreddymn) // Need to free if the memory was allocated by us in wapadapter. if(TRUE == parameter->free_flag) { T_MMI_WAP_MEM_FREE_IND free_mem_ind; free_mem_ind.data = (UBYTE*)parameter->Text; free_mem_ind.imageObject=FALSE; M_MMI_WAP_FREE_MEM_IND(&free_mem_ind); } #endif return; } #ifdef FF_GPF_TCPIP /******************************************************************************* $Function: M_WAP_MMI_RADIO_BUTTON_IND $Description: A radio button is to be displayed. $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_WAP_MMI_RADIO_BUTTON_IND(T_WAP_MMI_RADIO_BUTTON_IND *parameter) { #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_WAP_MMI_RADIO_BUTTON_IND"); TRACE_EVENT_P2("MMI object ID: %d, element ID: %d",parameter->object_id, parameter->element_id); TRACE_EVENT_P2("MMI active, selected: %d, %d", parameter->active, parameter->selected); TRACE_EVENT_P2("MMI pX, pY: %d, %d", parameter->pX, parameter->pY); TRACE_EVENT_P2("MMI pWidth, pHeight: %d, %d", parameter->pWidth, parameter->pHeight); #endif return; } /******************************************************************************* $Function: M_WAP_MMI_DRAW_BORDER_IND $Description: A border element is to be displayed. //kyle 29 Jun, 2005 MMI-SPR-32462 $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_WAP_MMI_DRAW_BORDER_IND(T_WAP_MMI_DRAW_BORDER_IND *parameter) { T_WAP_VIEW *View; T_WAP_ELEMENT *Element; T_WAP_MMI_DRAW_BORDER_IND *copy; #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_WAP_MMI_DRAW_BORDER_IND"); TRACE_EVENT_P1("WAP object ID: %d",parameter->object_id); TRACE_EVENT_P4("Bottom border pX, pY, pWidth, pHeight: %d, %d, %d, %d", parameter->borderBottom.pX, parameter->borderBottom.pY, parameter->borderBottom.pWidth, parameter->borderBottom.pHeight); TRACE_EVENT_P4("Left border pX, pY, pWidth, pHeight: %d, %d, %d, %d", parameter->borderLeft.pX, parameter->borderLeft.pY, parameter->borderLeft.pWidth, parameter->borderLeft.pHeight); TRACE_EVENT_P4("Right border pX, pY, pWidth, pHeight: %d, %d, %d, %d", parameter->borderRight.pX, parameter->borderRight.pY, parameter->borderRight.pWidth, parameter->borderRight.pHeight); TRACE_EVENT_P4("Top border pX, pY, pWidth, pHeight: %d, %d, %d, %d", parameter->borderTop.pX, parameter->borderTop.pY, parameter->borderTop.pWidth, parameter->borderTop.pHeight); #endif if (!(View = ATB_wap_get_view(parameter->object_id))) return; /* SPR#1816 - SH - Check if we're shutting down */ if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) { TRACE_EVENT("*** SHUTTING DOWN ***"); return; } /* If an update is forbidden, ignore this event */ if (!View->acceptUpdate) return; /* Allocate memory and copy the data */ Element = ATB_wap_buffer_add_element(View, WAP_BORDER); /* SPR#1921 - SH */ copy = (T_WAP_MMI_DRAW_BORDER_IND *)AUI_wap_memory_alloc(sizeof(T_WAP_MMI_DRAW_BORDER_IND)); memcpy((void *)copy, (void *)parameter, sizeof(T_WAP_MMI_DRAW_BORDER_IND)); Element->data = (void *)copy; return; } #endif /******************************************************************************* $Function: M_WAP_MMI_SEND_IMAGE_IND $Description: An image is to be displayed. $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_WAP_MMI_SEND_IMAGE_IND(T_WAP_MMI_SEND_IMAGE_IND *parameter) { T_WAP_VIEW *View; T_WAP_ELEMENT *Element; T_WAP_MMI_SEND_IMAGE_IND *copy; #ifdef FF_GPF_TCPIP T_MMI_WAP_MEM_FREE_IND free_mem_ind; //xrashmic 30 Aug, 2005 MMI-SPR-34024(OMAPS00048918) mem leak fix #endif #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_WAP_MMI_SEND_IMAGE_IND"); TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); #endif if (!(View = ATB_wap_get_view(parameter->object_id))) { #ifdef FF_GPF_TCPIP // xrashmic 20 Dec, 2005 OMAPS00061232 (on behalf of xreddymn) // Need to free if the memory was allocated for plugin image in wapadapter. if(parameter->pluginImage) { free_mem_ind.data = parameter->ImageReq; free_mem_ind.imageObject=TRUE; M_MMI_WAP_FREE_MEM_IND(&free_mem_ind); } #endif return; } /* SPR#1816 - SH - Check if we're shutting down */ if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) { TRACE_EVENT("*** SHUTTING DOWN ***"); #ifdef FF_GPF_TCPIP // xrashmic 20 Dec, 2005 OMAPS00061232 (on behalf of xreddymn) // Need to free if the memory was allocated for plugin image in wapadapter. if(parameter->pluginImage) { free_mem_ind.data = parameter->ImageReq; free_mem_ind.imageObject=TRUE; M_MMI_WAP_FREE_MEM_IND(&free_mem_ind); } #endif return; } /* If an update is forbidden, ignore this event */ if (!View->acceptUpdate) { #ifdef FF_GPF_TCPIP // xrashmic 20 Dec, 2005 OMAPS00061232 (on behalf of xreddymn) // Need to free if the memory was allocated for plugin image in wapadapter. if(parameter->pluginImage) { free_mem_ind.data = parameter->ImageReq; free_mem_ind.imageObject=TRUE; M_MMI_WAP_FREE_MEM_IND(&free_mem_ind); } #endif return; } #ifdef FF_GPF_TCPIP //xrashmic 21 Jan, 2005 MMI-SPR-28223 //Saving the information passed by wap adapter if the image is from plugin or normal wap page. if(parameter->pluginImage) Element = ATB_wap_buffer_add_element(View, WAP_PLUGIN_IMAGE); /* SPR#1921 - SH */ else #endif Element = ATB_wap_buffer_add_element(View, WAP_IMAGE); /* SPR#1921 - SH */ copy = (T_WAP_MMI_SEND_IMAGE_IND *)AUI_wap_memory_alloc(sizeof(T_WAP_MMI_SEND_IMAGE_IND)); if (copy) { memcpy((void *)copy, (void *)parameter, sizeof(T_WAP_MMI_SEND_IMAGE_IND)); #ifdef FF_GPF_TCPIP //xrashmic 30 Aug, 2005 MMI-SPR-34024(OMAPS00048918) mem leak fix // Only for plugin images make a copy at bmi. if(parameter->pluginImage) { if (parameter->image_length != 0) { copy->Image = (UBYTE *)AUI_wap_memory_alloc(parameter->image_length*sizeof(UBYTE)); memcpy((void *)copy->Image, (void *)parameter->Image, parameter->image_length*sizeof(UBYTE)); } } else copy->Image = (UBYTE*)parameter->Image; #else if (parameter->image_length != 0) { copy->Image = (UBYTE *)AUI_wap_memory_alloc(parameter->image_length*sizeof(UBYTE)); memcpy((void *)copy->Image, (void *)parameter->Image, parameter->image_length*sizeof(UBYTE)); } #endif } Element->data = (void *)copy; #ifdef FF_GPF_TCPIP //xrashmic 30 Aug, 2005 MMI-SPR-34024(OMAPS00048918) mem leak fix //freeing ImageReq data in WAP memory only for plugin images. if(parameter->pluginImage) { // xreddymn MMI-SPR-30834 May-14-2005: free ImageReq data in WAP memory free_mem_ind.data = parameter->ImageReq; // xrashmic 20 Dec, 2005 OMAPS00061232 (on behalf of xreddymn) // Add this to differentiate between image objects and text objects to be freed in wap adapter free_mem_ind.imageObject=TRUE; M_MMI_WAP_FREE_MEM_IND(&free_mem_ind); } #endif return; } /******************************************************************************* $Function: M_WAP_MMI_SEND_TABLE_IND $Description: A table/fieldset is to be displayed. $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_WAP_MMI_SEND_TABLE_IND(T_WAP_MMI_SEND_TABLE_IND *parameter) { T_WAP_VIEW *View; T_WAP_ELEMENT *Element; T_WAP_MMI_SEND_TABLE_IND *copy; #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_WAP_MMI_SEND_TABLE_IND"); TRACE_EVENT_P1("object ID: %d",parameter->object_id); TRACE_EVENT_P2("Columns: %d, Rows: %d",parameter->cols_length, parameter->rows_length); TRACE_EVENT_P4("pX: %d, pY: %d, pWidth: %d, pHeight: %d",parameter->pX, parameter->pY, parameter->pWidth, parameter->pHeight); ATB_trace_ushort_string(parameter->Title, parameter->title_length); #endif if (!(View = ATB_wap_get_view(parameter->object_id))) return; /* SPR#1816 - SH - Check if we're shutting down */ if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) { TRACE_EVENT("*** SHUTTING DOWN ***"); return; } /* If an update is forbidden, ignore this event */ if (!View->acceptUpdate) return; /* Allocate memory and copy the data */ Element = ATB_wap_buffer_add_element(View, WAP_TABLE); /* SPR#1921 - SH */ copy = (T_WAP_MMI_SEND_TABLE_IND *)AUI_wap_memory_alloc(sizeof(T_WAP_MMI_SEND_TABLE_IND)); memcpy((void *)copy, (void *)parameter, sizeof(T_WAP_MMI_SEND_TABLE_IND)); if (parameter->title_length != 0) { copy->Title = (USHORT *)AUI_wap_memory_alloc(parameter->title_length*sizeof(USHORT)); memcpy((void *)copy->Title, (void *)parameter->Title, parameter->title_length*sizeof(USHORT)); } if (parameter->cols_length != 0) { copy->ColWidth = (SHORT *)AUI_wap_memory_alloc(parameter->cols_length*sizeof(SHORT)); memcpy((void *)copy->ColWidth, (void *)parameter->ColWidth, parameter->cols_length*sizeof(SHORT)); } if (parameter->rows_length != 0) { copy->RowHeight = (SHORT *)AUI_wap_memory_alloc(parameter->rows_length*sizeof(SHORT)); memcpy((void *)copy->RowHeight, (void *)parameter->RowHeight, parameter->rows_length*sizeof(SHORT)); } Element->data = (void *)copy; return; } /******************************************************************************* $Function: M_WAP_MMI_CARD_DRAW_COMPLETED_IND $Description: Card drawing is completed, card may be displayed. $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_WAP_MMI_CARD_DRAW_COMPLETED_IND(T_WAP_MMI_CARD_DRAW_COMPLETED_IND *parameter) { T_WAP_VIEW *View; UBYTE temp; // July 13 2005 REF: MMI-SPR-32012 x0012849 // To change the functionality of RSK, when there is no page to go back #ifdef FF_GPF_TCPIP if(HISTORY_NOT_AVAILABLE== parameter->object_id) { ExitWAP(WAP_NONE); return; } //xrashmic 17 Aug, 2005 MMI-SPR-31364 //When it is detected that a very large page is being opened, the wap adapter sends this message. //We need to exit wap and display a error dialog as we have memory constraints. else if(OUT_OF_MEM_LARGE_PAGE == parameter->object_id ) { ExitWAP(WAP_OUT_OF_MEM); return; } #endif if (!(View = ATB_wap_get_view(parameter->object_id))) return; /* SPR#1816 - SH - Check if we're shutting down */ if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) { TRACE_EVENT("*** SHUTTING DOWN ***"); return; } temp = dspl_Enable(0); #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_WAP_MMI_CARD_DRAW_COMPLETED_IND"); TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); #endif /* If an update is forbidden, ignore this event */ if (!View->acceptUpdate) { dspl_Enable(temp); return; } /* Destroy the current card, and make the new buffered card the current card */ ATB_wap_buffer_clear(View); View->ElementHeader = View->NewElementHeader; View->NewElementHeader = NULL; AUI_wap_card_show_req(View); dspl_Enable(temp); return; } /******************************************************************************* $Function: M_WAP_MMI_CONNECT_REQ $Description: The connection (GSM or GPRS) can now be made. The GSM connection occurs in this function. The GPRS attachment is made in this function. Once GPRS is attached, the connection proceeds in function connect_gprs() below. $Returns: None. $Arguments: parameter - data block *******************************************************************************/ #ifdef FF_GPF_TCPIP extern void M4_DebugStringMessage(char *in_string, UINT8 ucNumber,unsigned long para); // xreddymn Mar-05-2005 MMI-SPR-26144: This function is called to check if // a MMS send operation was cancelled by the user extern UBYTE AUI_mms_cancel_status(void); void M_WAP_MMI_CONNECT_REQ(T_WAP_MMI_CONNECT_REQ *parameter) { T_WAP_VIEW *View; char temp[NUMBER_MAX_LEN+1]; T_ACI_BS_SPEED speed; T_SOCK_BEARER_INFO bearer_data; T_SOCKET_NODE *bearer_node = NULL; T_SOCK_RESULT result; #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_WAP_MMI_CONNECT_REQ"); TRACE_EVENT_P2("MMI object ID: %d, bearer status: %d", parameter->object_id, parameter->bearer_status); #endif // xreddymn Feb-23-2005 MMI-SPR-26144: If the user has pressed Cancel, do not connect if(AUI_mms_cancel_status()) return; if (!(View = ATB_wap_get_view(parameter->object_id))) return; /* SPR#1816 - SH - Check if we're shutting down */ if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) { TRACE_EVENT("*** SHUTTING DOWN ***"); return; } if(parameter->bearer_status == 1) { TRACE_EVENT("SAPI_BEARER_REQUEST"); bearer_data.bearer_handle = 0; bearer_data.app_handle = parameter->wap_app_handle; switch (View->Profile->AccessType) { case WAP_CS_DATA: { bearer_data.bearer_type = SOCK_BEARER_GSM; bearer_data.phone_nr_valid = TRUE; bearer_data.cid = 1; bearer_data.user_id_valid = TRUE; bearer_data.password_valid = TRUE; strcpy(bearer_data.phone_nr, View->Profile->DialupNumber); strcpy(bearer_data.user_id, View->Profile->Username); strcpy(bearer_data.password, View->Profile->Password); bearer_data.precedence = 0; bearer_data.delay = 0; bearer_data.reliability = 0; bearer_data.peak_throughput = 0; bearer_data.mean_througput = 0; bearer_data.ip_address = SOCK_IPADDR_ANY; bearer_data.dns1 = SOCK_IPADDR_ANY; bearer_data.dns2 = SOCK_IPADDR_ANY; bearer_data.gateway = SOCK_IPADDR_ANY; bearer_data.authtype = SOCK_AUTH_NO; bearer_data.data_compr = FALSE; bearer_data.header_comp = FALSE; bearer_data.shareable = FALSE; break; } #ifdef GPRS case WAP_GPRS_DATA: { bearer_data.bearer_type = SOCK_BEARER_GPRS; bearer_data.apn_valid = TRUE; bearer_data.cid = 1; bearer_data.user_id_valid = TRUE; bearer_data.password_valid = TRUE; strcpy(bearer_data.apn, View->Profile->APN); strcpy(bearer_data.user_id, View->Profile->Username); strcpy(bearer_data.password, View->Profile->Password); bearer_data.precedence = 0; bearer_data.delay = 0; bearer_data.reliability = 0; bearer_data.peak_throughput = 0; bearer_data.mean_througput = 0; bearer_data.user_id_valid = TRUE; bearer_data.password_valid = TRUE; bearer_data.ip_address = SOCK_IPADDR_ANY; bearer_data.dns1 = SOCK_IPADDR_ANY; bearer_data.dns2 = SOCK_IPADDR_ANY; bearer_data.gateway = SOCK_IPADDR_ANY; bearer_data.authtype = SOCK_AUTH_NO; bearer_data.data_compr = FALSE; bearer_data.header_comp = FALSE; bearer_data.shareable = FALSE; break; } } #endif bearer_node = (T_SOCKET_NODE *)parameter->node; if(bearer_node == NULL) { TRACE_ERROR("Error: M_WAP_MMI_CONNECT_REQ()"); return; } result = sock_open_bearer((T_SOCK_API_INSTANCE)parameter->instance, SOCK_BEARER_AS_SPECIFIED, 0,&bearer_data, wap_sock_app_callback, bearer_node); if(result != SOCK_RESULT_OK) { TRACE_ERROR("M_WAP_MMI_CONNECT_REQ(): error in sock_open_bearer()"); TRACE_EVENT_P1("result: %d", result); return; } else { TRACE_EVENT_P1("sock_open_bearer(): socket_api_instance: %d", result); } } else { TRACE_ERROR("M_WAP_MMI_CONNECT_REQ(): Unknown bearer status"); } return; } /******************************************************************************* $Function: connect $Description: Connect SPR#2086 - Added $Returns: None $Arguments: object_id - the current session *******************************************************************************/ void connect(UBYTE object_id) { T_WAP_VIEW *View; char temp[NUMBER_MAX_LEN+1]; T_ACI_BS_SPEED speed; char TraceBuffer[100]; sprintf(TraceBuffer, "connect called"); //M4_DebugStringMessage( TraceBuffer,(strlen(TraceBuffer)), 0); if (!(View = ATB_wap_get_view(object_id))) return; switch (View->Profile->AccessType) { case WAP_CS_DATA: /* CSD call - connect straight away */ sAT_PercentPPP(0,1,View->Profile->Username, View->Profile->Password, USE_NO_PPP_FOR_AAA); sAT_PercentWAP(0,0); sAT_PercentWAP(0,1); /* Set the connection speed */ switch(View->Profile->ConnectionSpeed) { case WAP_ANALOGUE: speed = BS_SPEED_AUTO; break; case WAP_ISDN9600: speed = BS_SPEED_9600_V110; break; case WAP_ISDN14400: speed = BS_SPEED_14400_V110; break; default: speed = BS_SPEED_9600_V34; break; } //Nov 02, 2005 DR OMAPS00052132 xdeepadh //The usage of ATI enum is put under the flag FF_ATI #ifdef FF_ATI sAT_PlusCBST(CMD_SRC_ATI_1, speed, CBST_NAM_Asynch, CBST_CE_NonTransparent); /* Make the call */ sprintf(temp, "=%s", View->Profile->DialupNumber); atD(temp,CMD_SRC_ATI_1); #endif //FF_ATI break; #ifdef GPRS case WAP_GPRS_DATA: { /* GPRS call - attach now. If attached, connect. * If not, wait until attach succeeds */ T_CGATT_STATE regstate; /* Check to see if attached */ qAT_PlusCGATT ( CMD_SRC_LCL, ®state ); #ifdef TRACE_ATBWAPACI TRACE_EVENT_P1("Reg state: %d", regstate); #endif /* If we're not attached, attempt to do so */ if (regstate!=CGATT_STATE_ATTACHED) { /* Display status "attaching" */ ATB_wap_status_change(View, ATB_WAP_ATTACHING); /* Attempt to attach */ sAT_PlusCGATT ( CMD_SRC_LCL, CGATT_STATE_ATTACHED ); } /* Otherwise, go straight to GPRS connection */ else { connect_gprs(object_id); } } break; #endif default: TRACE_EVENT("ERROR: Illegal access type!"); AUI_error_dialog(View, ERROR_CALL_DISCONNECTED); break; } } #else /* #ifdef FF_GPF_TCPIP */ void M_WAP_MMI_CONNECT_REQ(T_WAP_MMI_CONNECT_REQ *parameter) { T_WAP_VIEW *View; char temp[NUMBER_MAX_LEN+1]; T_ACI_BS_SPEED speed; #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_WAP_MMI_CONNECT_REQ"); TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); #endif if (!(View = ATB_wap_get_view(parameter->object_id))) return; /* Check if we're shutting down */ if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) { TRACE_EVENT("*** SHUTTING DOWN ***"); return; } switch (View->Profile->AccessType) { case WAP_CS_DATA: /* CSD call - connect straight away */ sAT_PercentPPP(0,1,View->Profile->Username, View->Profile->Password, USE_NO_PPP_FOR_AAA); sAT_PercentWAP(0,0); sAT_PercentWAP(0,1); /* Set the connection speed */ switch(View->Profile->ConnectionSpeed) { case WAP_ANALOGUE: speed = BS_SPEED_AUTO; break; case WAP_ISDN9600: speed = BS_SPEED_9600_V110; break; case WAP_ISDN14400: speed = BS_SPEED_14400_V110; break; default: speed = BS_SPEED_9600_V34; break; } //Nov 02, 2005 DR OMAPS00052132 xdeepadh //The usage of ATI enum is put under the flag FF_ATI #ifdef FF_ATI sAT_PlusCBST(CMD_SRC_ATI_1, speed, CBST_NAM_Asynch, CBST_CE_NonTransparent); /* Make the call */ sprintf(temp, "=%s", View->Profile->DialupNumber); atD(temp,CMD_SRC_ATI_1); #endif //FF_ATI break; #ifdef GPRS case WAP_GPRS_DATA: { /* GPRS call - attach now. If attached, connect. * If not, wait until attach succeeds */ T_CGATT_STATE regstate; /* Check to see if attached */ qAT_PlusCGATT ( CMD_SRC_LCL, ®state ); #ifdef TRACE_ATBWAPACI TRACE_EVENT_P1("Reg state: %d", regstate); #endif /* If we're not attached, attempt to do so */ if (regstate!=CGATT_STATE_ATTACHED) { /* Display status "attaching" */ ATB_wap_status_change(View, ATB_WAP_ATTACHING); /* Attempt to attach */ sAT_PlusCGATT ( CMD_SRC_LCL, CGATT_STATE_ATTACHED ); } /* Otherwise, go straight to GPRS connection */ else { connect_gprs(parameter->object_id); } } #endif } return; } #endif /* ! #ifdef FF_GPF_TCPIP */ #ifdef GPRS #ifdef FF_GPF_TCPIP extern void M4_DebugStringMessage(char *in_string, UINT8 ucNumber,unsigned long para); void PowerOnGPRSAttach(void) { T_CGATT_STATE regstate; char temp[50]; /* Modified to detect if GPRS attach fails. Check to see if attached */ qAT_PlusCGATT ( CMD_SRC_LCL, ®state ); sprintf(temp, "PowerOnGPRSAttach called!"); //M4_DebugStringMessage( temp,(strlen(temp)), 0); /* If we're not attached, attempt to do so */ if (regstate!=CGATT_STATE_ATTACHED) { sprintf(temp, "sAT_PlusCGATT called!"); //M4_DebugStringMessage( temp,(strlen(temp)), 0); /* Attempt to attach */ sAT_PlusCGATT ( CMD_SRC_LCL, CGATT_STATE_ATTACHED ); } } void mms_gprs_deattach(void) { T_CGATT_STATE regstate; char temp[50]; sprintf(temp, "mms_gprs_deattach called!"); //M4_DebugStringMessage( temp,(strlen(temp)), 0); qAT_PlusCGATT ( CMD_SRC_LCL, ®state ); if (regstate == CGATT_STATE_ATTACHED) { sprintf(temp, "mms_gprs_deattach need to deattach!"); //M4_DebugStringMessage( temp, (strlen(temp)), 0); /* Attempt to deattach */ sAT_PlusCGATT ( CMD_SRC_LCL, CGATT_STATE_DETACHED ); rvf_delay(100); } return; } void mms_gprs_attach(void) { T_CGATT_STATE regstate; char temp[50]; UINT8 i; UINT8 ucAttachTime; /* Modified to detect if GPRS attach fails. Check to see if attached */ qAT_PlusCGATT ( CMD_SRC_LCL, ®state ); TRACE_EVENT_P1("Reg state: %d", regstate); sprintf(temp, "mms_gprs_attach called!"); //M4_DebugStringMessage( temp,(strlen(temp)), 0); /* If we're not attached, attempt to do so */ if (regstate!=CGATT_STATE_ATTACHED) { sprintf(temp, "sAT_PlusCGATT called!"); //M4_DebugStringMessage( temp,(strlen(temp)), 0); /* Attempt to attach */ sAT_PlusCGATT ( CMD_SRC_LCL, CGATT_STATE_ATTACHED ); ucAttachTime = 24; for (i = 0;i < ucAttachTime;i++)//120s for GPRS { qAT_PlusCGATT ( CMD_SRC_LCL, ®state ); if (regstate == CGATT_STATE_ATTACHED) { break; } /*delay 5s*/ rvf_delay(1000); } if (i == ucAttachTime) { sprintf(temp, "mms_gprs_attach failed after 5s %03d* ",ucAttachTime); //M4_DebugStringMessage( temp,(strlen(temp)), 0); } else { sprintf(temp, "mms_gprs_attach success!"); //M4_DebugStringMessage( temp,(strlen(temp)), i); } } } /******************************************************************************* $Function: connect_gprs $Description: GPRS is attached; now activate PDP context SPR#1982 - SH - Tidy up variables a little. - Change '1' to GPRS_CID_1 - Put traces inside #ifdefs $Returns: None. $Arguments: View - the current view *******************************************************************************/ void connect_gprs(UBYTE object_id) { SHORT cids[MAX_CID_PLUS_EINS]; BOOL states[MAX_CID_PLUS_EINS]; T_GPRS_CONT_REC context; T_ACI_RETURN ret; T_WAP_VIEW *View; SHORT contextId; SHORT arrayPos; char dialString[10]; TRACE_FUNCTION("connect_gprs()"); if (!(View = ATB_wap_get_view(object_id))) return; /* Select the context ID */ contextId = GPRS_CID_1; if (object_id==WAP_PUSH_VIEW) { contextId = GPRS_CID_2; } /* Check to see if context already active */ memset (states, FALSE, sizeof(states)); memset (cids, 0, sizeof(cids)); qAT_PlusCGACT ( CMD_SRC_LCL, states, cids ); if (contextId==cids[0] || cids[0]==INVALID_CID) arrayPos = 0; else arrayPos = 1; #ifdef TRACE_ATBWAPACI TRACE_EVENT_P1("Context 0: %d", cids[0]); #endif /* If context doesn't exist, define it * Use GPRS_CID_1 rather than number '1'*/ if ( cids[arrayPos] == INVALID_CID) { #ifdef TRACE_ATBWAPACI TRACE_EVENT("Defining new context."); #endif states[arrayPos] = FALSE; strncpy((char *)context.apn, View->Profile->APN, MAX_APN_LEN); strcpy((char*)context.pdp_type, "IP"); memset(context.pdp_addr, '\0', MAX_PDP_ADDR_LEN); context.d_comp = CGDCONT_D_COMP_OMITTED; context.h_comp = CGDCONT_H_COMP_OMITTED; memset(&context.qos, 0, sizeof(T_QOS)); memset(&context.min_qos, 0 ,sizeof(T_QOS)); ret = sAT_PlusCGDCONT(CMD_SRC_LCL, contextId, &context); #ifdef TRACE_ATBWAPACI TRACE_EVENT_P1("CGDCONT Return = %d",ret); #endif if (ret==AT_FAIL) { ATB_wap_data_call_disconnected(View); AUI_error_dialog(View, ERROR_GPRS_NOT_SUPPORTED); return; } } /* Removed duplicate call to qAT_PlusCGACT. * If context isn't activated, call CGPCO */ if (states[arrayPos]) { #ifdef TRACE_ATBWAPACI TRACE_EVENT("Context is activated."); #endif ATB_data_call_connected(View); /* SPR#2086 */ } else { #ifdef TRACE_ATBWAPACI TRACE_EVENT("Context not activated."); #endif ret = sAT_PercentCGPCO ( CMD_SRC_LCL, contextId, ACI_PCO_AUTH_PROT_PAP, (CHAR *)View->Profile->Username, (CHAR *)View->Profile->Password, NULL, NULL);//liuyu add NULL for build #ifdef TRACE_ATBWAPACI TRACE_EVENT_P1("CGPCO Return = %d", ret); #endif if (ret==AT_FAIL) { ATB_wap_data_call_disconnected(View); /* SPR#2086 */ AUI_error_dialog(View, ERROR_GPRS_NOT_SUPPORTED); return; } //sprintf(dialString, "*98**1*%d#", contextId); //"*98*1#" //sAT_Dn(CMD_SRC_LCL,"*98*1#",D_CLIR_OVRD_Default,D_CUG_CTRL_NotPresent,D_TOC_Data); ret = sAT_Dn( CMD_SRC_LCL, //dialString, "*98*1#", D_CLIR_OVRD_Default, D_CUG_CTRL_NotPresent, D_TOC_Data); switch (ret) { case (AT_CMPL): /*operation completed*/ case (AT_EXCT): break; default: ATB_wap_data_call_disconnected(View); AUI_error_dialog(View, ERROR_CALL_DISCONNECTED); #ifdef TRACE_ATBWAPACI TRACE_EVENT("Error occurred in connection."); #endif return; break; } } return; } #else /* #ifdef FF_GPF_TCPIP */ void connect_gprs(UBYTE object_id) { SHORT cids[MAX_CID_PLUS_EINS]; BOOL states[MAX_CID_PLUS_EINS]; T_GPRS_CONT_REC context; T_ACI_RETURN ret; UBYTE minsize; T_WAP_VIEW *View; TRACE_FUNCTION("connect_gprs()"); if (!(View = ATB_wap_get_view(object_id))) return; /* Check to see if context already active */ memset (states, FALSE, sizeof(states)); memset (cids, 0, sizeof(cids)); qAT_PlusCGACT ( CMD_SRC_LCL, states, cids ); #ifdef TRACE_ATBWAPACI TRACE_EVENT_P1("Context 0: %d", cids[0]); #endif /* If context doesn't exist, define it */ if ( cids[0] == INVALID_CID) { #ifdef TRACE_ATBWAPACI TRACE_EVENT("Defining new context."); #endif /* SPR#2138 - SH - If context not defined, it is not activated */ states[0] = FALSE; } /* SPR#2415 - SH - Define context, whether or not it was defined before */ minsize = (MAX_APN_LEN<(URL_MAX_LEN+1))?MAX_APN_LEN:(URL_MAX_LEN+1); memset(&context.apn,'\0',MAX_APN_LEN); memcpy(&context.apn,&View->Profile->APN,minsize); strcpy((char*)context.pdp_type,"IP"); minsize = (MAX_PDP_ADDR_LEN<(IPADDRESS_MAX_LEN+1))?MAX_PDP_ADDR_LEN:(IPADDRESS_MAX_LEN+1); memset(&context.pdp_addr,'\0',MAX_PDP_ADDR_LEN); context.d_comp = CGDCONT_D_COMP_OMITTED; context.h_comp = CGDCONT_H_COMP_OMITTED; memset(&context.qos,0,sizeof(T_QOS)); memset(&context.min_qos,0,sizeof(T_QOS)); ret = sAT_PlusCGDCONT(CMD_SRC_LCL,GPRS_CID_1,&context); #ifdef TRACE_ATBWAPACI TRACE_EVENT_P1("CGDCONT Return = %d",ret); #endif if (ret==AT_FAIL) { AUI_error_dialog(View, ERROR_GPRS_NOT_SUPPORTED); return; } /* Removed duplicate call to qAT_PlusCGACT. * If context isn't activated, call CGPCO */ if (states[0]) { #ifdef TRACE_ATBWAPACI TRACE_EVENT("Context is activated."); #endif ATB_data_call_connected(); /* SPR#2138 */ } else { #ifdef TRACE_ATBWAPACI TRACE_EVENT("Context not activated."); #endif ret = sAT_PercentCGPCO ( CMD_SRC_LCL, GPRS_CID_1, ACI_PCO_AUTH_PROT_PAP, (CHAR *)View->Profile->Username, (CHAR *)View->Profile->Password, NULL, NULL ); #ifdef TRACE_ATBWAPACI TRACE_EVENT_P1("CGPCO Return = %d", ret); #endif if (ret==AT_FAIL) { AUI_error_dialog(View, ERROR_GPRS_NOT_SUPPORTED); return; } ret = sAT_Dn(CMD_SRC_LCL,"*98*1#",D_CLIR_OVRD_Default,D_CUG_CTRL_NotPresent,D_TOC_Data); switch (ret) { case (AT_CMPL): /*operation completed*/ case (AT_EXCT): break; default: AUI_error_dialog(View, ERROR_CALL_DISCONNECTED); #ifdef TRACE_ATBWAPACI TRACE_EVENT("Error occurred in connection."); #endif return; break; } return; } } #endif /* #ifdef FF_GPF_TCPIP */ #endif // xreddymn May-15-2005 MMI-SPR-30962: external functions extern void MMS_set_WAP_busy(void); extern void MMS_reset_WAP_busy(void); extern void MMS_process_push_queue(void); /******************************************************************************* $Function: M_WAP_MMI_DISCONNECTED_IND $Description: A disconnection has occurred. $Returns: None $Arguments: parameter - data block *******************************************************************************/ void M_WAP_MMI_DISCONNECTED_IND(T_WAP_MMI_DISCONNECTED_IND *parameter) { T_WAP_VIEW *View; #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_WAP_MMI_DISCONNECTED_IND"); TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); #endif #ifdef FF_GPF_TCPIP // xreddymn Feb-23-2005 MMI-SPR-26144 AUI_mms_cancel_status(); #endif if (!(View = ATB_wap_get_view(parameter->object_id))) return; /* SPR#1816 - SH - Check if we're shutting down */ if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) { TRACE_EVENT("*** SHUTTING DOWN ***"); return; } #ifdef FF_GPF_TCPIP // xreddymn Feb-17-2005 MMI-SPR-26144: Disabled info dialogs // as they appear when sending MMS if(ATB_WAP_ATTACH_FAILED == parameter->error) { //xrashmic 08 Feb, 2005 MMI-SPR-27853 //Need to indicate the BMI when there are GPRS errors ATB_wap_status_change(View, ATB_WAP_ATTACH_FAILED); } else if(ATB_WAP_ACTIVATE_FAILED == parameter->error) { //xrashmic 08 Feb, 2005 MMI-SPR-27853 //Need to indicate the BMI when there are GPRS errors ATB_wap_status_change(View, ATB_WAP_ACTIVATE_FAILED); } #endif /* SPR#1574 - SH - Removed parameter */ ATB_wap_status_change(View,ATB_WAP_ONLINE_CONNECTION_CLOSED); #ifdef FF_GPF_TCPIP // xreddymn May-15-2005 MMI-SPR-30962: If MMS transaction is complete, // clear WAP busy state. MMS_reset_WAP_busy(); MMS_process_push_queue(); #endif return; } /******************************************************************************* $Function: M_WAP_MMI_READY_CNF $Description: SPR#1569 - SH - Added this function Confirm that WAP has completed the operation. $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_WAP_MMI_READY_CNF(T_WAP_MMI_READY_CNF *parameter) { #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_WAP_MMI_READY_CNF"); TRACE_EVENT_P1("Event id = %d", parameter->event_id); #endif switch (parameter->event_id) { case WAP_START_IND_ID: ATB_wap_start_done(); break; case WAP_NEW_VIEW_IND_ID: ATB_wap_new_view_done(); break; case WAP_CLOSE_VIEW_IND_ID: ATB_wap_close_view_done(); break; case WAP_TERMINATE_IND_ID: ATB_wap_terminate_done(); break; /* SPR#1824 - SH - Cache is prepared */ case WAP_CACHE_PREPARE_IND_ID: ATB_wap_cache_prepare_done(); break; } return; } /******************************************************************************* $Function: disconnect_wap_call $Description: Disconnect GPRS WAP call in progress. $Returns: SPR#1982 - SH TRUE if connection is disconnected, FALSE if disconnection in progress $Arguments: access_type - WAP_GPRS_DATA or WAP_CS_DATA *******************************************************************************/ UBYTE disconnect_wap_call(UBYTE access_type) { UBYTE disconnected; T_ACI_RETURN ret; #ifdef GPRS SHORT cids[MAX_CID_PLUS_EINS] = {GPRS_CID_1, INVALID_CID}; #endif TRACE_FUNCTION("disconnect_wap_call()"); disconnected = TRUE; #ifdef GPRS if (access_type==WAP_GPRS_DATA) { /* SPR#1875 - SH - Update data counter */ sAT_PercentSNCNT(CMD_SRC_LCL, TRUE); ret = sAT_PlusCGACT(CMD_SRC_LCL, CGACT_STATE_DEACTIVATED, cids); #ifdef TRACE_ATBWAPACI TRACE_EVENT_P1("Result of sAT_PlusCGACT = %d", ret); #endif /* If detaching will take a little time, show a please wait dialog */ if (ret==AT_EXCT) { disconnected = FALSE; } } #endif return disconnected; } #ifdef FF_GPF_TCPIP /******************************************************************************* $Function: M_WAP_MMI_CONFIG_REQ $Description: SPR#2086 - SH - SAR $Returns: None $Arguments: parameter - data block *******************************************************************************/ void M_WAP_MMI_CONFIG_REQ(T_WAP_MMI_CONFIG_REQ *parameter) { T_MMI_WAP_CONFIG_CNF parameter2; T_WAP_VIEW *View; T_WAP_PROFILE *httpClientProfile; #ifdef TRACE_WAP_WAPMMI TRACE_EVENT("M_WAP_MMI_CONFIG_REQ"); TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); #endif parameter2.object_id = parameter->object_id; /* Check if any view exists, create a new invisible view if not */ if (!(View = ATB_wap_get_view(parameter->object_id))) { View = ATB_wap_new_view_invisible(parameter->object_id); ATB_wap_change_view(parameter->object_id); } ATB_wap_profile_send(View); /* Set default channel */ ATB_wap_config_int(View, configDEFAULT_CHANNEL, View->channel); /* Setup stack mode */ httpClientProfile = View->Profile; if (httpClientProfile->Port1 == 9201) { ATB_wap_conn_config_int(View, configCONNECTION_TYPE, CONNECTION_TYPE_WSP_CO); TRACE_EVENT("CONNECTION_TYPE_WSP_CO at the location 2 called"); } else { ATB_wap_conn_config_int(View, configCONNECTION_TYPE, CONNECTION_TYPE_TCP); TRACE_EVENT("CONNECTION_TYPE_TCP at the location 2 called"); } /* Set connection port */ ATB_wap_conn_config_int(View, configCLIENT_PORT, WAP_DOWNLOAD_LOCAL_PORT); /* Set online status (FALSE = not always online) */ //ATB_wap_conn_config_int(View, configONLINE, FALSE); parameter2.success = TRUE; M_MMI_WAP_CONFIG_CNF(¶meter2); return; } /******************************************************************************* $Function: M_WAP_MMI_CONTENT_IND $Description: SPR#2086 - SH - SAR $Returns: None $Arguments: parameter - data block *******************************************************************************/ void M_WAP_MMI_CONTENT_IND(T_WAP_MMI_CONTENT_IND *parameter) { T_MMI_WAP_CONTENT_CNF parameter2; #ifdef TRACE_WAP_WAPMMI TRACE_EVENT("W_WAP_MMI_CONTENT_IND"); TRACE_EVENT_P2("URL ID: %d, data length = %d", parameter->urlID, parameter->data_length); TRACE_EVENT_P2("moreData: %d, totalSize = %d", parameter->moreData, parameter->totalSize); #endif ATB_wap_content( parameter->urlID, parameter->Data, parameter->data_length, parameter->moreData | parameter->moreSegments, parameter->ContentType, parameter->contentType_length, parameter->totalSize, parameter->errorNo ); if (parameter->moreSegments==FALSE && parameter->moreData==TRUE) { TRACE_EVENT("Fetching more data"); parameter2.urlID = parameter->urlID; M_MMI_WAP_CONTENT_CNF(¶meter2); } return; } /******************************************************************************* $Function: M_WAP_MMI_CONTENT_POST_CNF $Description: SPR#2086 - SH - SAR $Returns: None $Arguments: parameter - data block *******************************************************************************/ void M_WAP_MMI_CONTENT_POST_CNF(T_WAP_MMI_CONTENT_POST_CNF *parameter) { extern void mms_proc_content_post_cnf(UINT8 urlID); #ifdef TRACE_WAP_WAPMMI TRACE_EVENT("M_WAP_MMI_CONTENT_POST_CNF"); TRACE_EVENT_P1("urlID = %d", parameter->urlID); #endif //TISHMMS Project ////xmzhou_trace_string_value("M_WAP_MMI_CONTENT_POST_CNF called parameter->urlID = ", parameter->urlID); mms_proc_content_post_cnf(parameter->urlID); return; } /******************************************************************************* $Function: copy_IP_address $Description: Copies IP address from one string to another. Ensures that the destination string is in the form: AAA.BBB.CCC.DDD $Returns: None $Arguments: dst: Pointer to the destination string. On returning from this function, this will contain the form: AAA.BBB.CCC.DDD src: Pointer to the source string. This is a string representing an IP address, where each field is seperated by a Dot (.) xreddymn Jan-24-2005 MMI-SPR-28135: WAP_OTA *******************************************************************************/ void copy_IP_address(char *dst, char *src, S32 length) { S32 i=0, j, k=0, count, number; U8 number_string[8]; for(count=0;count<4;count++) { j=0; while((src[i]!='\0') && (src[i]!='.') && (j<4)) { number_string[j]=src[i]; i++; j++; } if(src[i]=='.') i++; number_string[j]='\0'; number=atoi((char*)number_string); if(count==3) sprintf((char*)&dst[k],"%03d",number); else sprintf((char*)&dst[k],"%03d.",number); k+=4; } } void M_WAP_MMI_BROWSER_SET_CSD_IND(T_WAP_MMI_BROWSER_SET_CSD_IND *parameter) { T_WAP_PROFILE new_profile; S32 length; #ifdef TRACE_WAP_WAPMMI TRACE_EVENT("M_WAP_MMI_BROWSER_SET_CSD_IND"); TRACE_EVENT_P1("Profile name = %s", parameter->OTA_profileName); TRACE_EVENT_P1("Homepage URL = %s", parameter->OTA_homepageUrl); TRACE_EVENT_P1("Dialstring = %s", parameter->OTA_CSD_dialstring); TRACE_EVENT_P1("Proxy = %s", parameter->OTA_proxy); TRACE_EVENT_P1("Port = %d", parameter->OTA_port); #endif // xreddymn Jan-24-2005 MMI-SPR-28135: WAP_OTA settings saved in WAP profiles new_profile.AccessType=WAP_CS_DATA; if(parameter->OTA_profileName_length==0) { ATB_convert_String((char*)"No name", MFW_ASCII, strlen("No name"), (char*)new_profile.Title, MFW_DCS_UCS2, CARD_TITLE_MAX_LEN, TRUE); } else { ATB_convert_String((char*)parameter->OTA_profileName, MFW_ASCII, parameter->OTA_profileName_length, (char*)new_profile.Title, MFW_DCS_UCS2, CARD_TITLE_MAX_LEN, TRUE); } length=parameter->OTA_homepageUrl_length; if(length>(URL_MAX_LEN+1)) length=URL_MAX_LEN+1; strncpy(new_profile.Homepage,parameter->OTA_homepageUrl,length); new_profile.ConnectionType=WAP_CONTINUOUS; if((strncmp(parameter->OTA_CSD_callType,"ISDN",parameter->OTA_CSD_callType_length)==0) || (strncmp(parameter->OTA_CSD_callType,"isdn",parameter->OTA_CSD_callType_length)==0)) { new_profile.ConnectionSpeed=WAP_ISDN9600; } else { new_profile.ConnectionSpeed=WAP_ANALOGUE; } new_profile.ResponseTimer=60; new_profile.Port1=parameter->OTA_port; new_profile.Port2=parameter->OTA_port; length=parameter->OTA_proxy_length; if(length>(IPADDRESS_MAX_LEN+1)) length=IPADDRESS_MAX_LEN+1; copy_IP_address(new_profile.IPAddress1,parameter->OTA_proxy,length); copy_IP_address(new_profile.IPAddress2,parameter->OTA_proxy,length); length=parameter->OTA_CSD_dialstring_length; if(length>(NUMBER_MAX_LEN+1)) length=NUMBER_MAX_LEN+1; strncpy(new_profile.DialupNumber,parameter->OTA_CSD_dialstring,length); length=parameter->OTA_PPP_username_length; if(length==0) { strcpy(new_profile.Username,""); } else { if(length>(USERNAME_MAX_LEN+1)) length=USERNAME_MAX_LEN+1; strncpy(new_profile.Username,parameter->OTA_PPP_username,length); } length=parameter->OTA_PPP_password_length; if(length==0) { strcpy(new_profile.Password,""); } else { if(length>(PASSWORD_MAX_LEN+1)) length=PASSWORD_MAX_LEN+1; strncpy(new_profile.Password,parameter->OTA_PPP_password,length); } new_profile.Security=FALSE; strcpy(new_profile.NameServer1,""); strcpy(new_profile.NameServer2,""); new_profile.PPGAuthentication=FALSE; new_profile.WirelessProfiledHTTP=TRUE; ATB_wap_profile_add(&new_profile); return; } void M_WAP_MMI_BROWSER_SET_GPRS_IND(T_WAP_MMI_BROWSER_SET_GPRS_IND *parameter) { T_WAP_PROFILE new_profile; S32 length; #ifdef TRACE_WAP_WAPMMI TRACE_EVENT("M_WAP_MMI_BROWSER_SET_GPRS_IND"); TRACE_EVENT_P1("Profile name = %s", parameter->OTA_profileName); TRACE_EVENT_P1("Homepage URL = %s", parameter->OTA_homepageUrl); TRACE_EVENT_P1("APN = %s", parameter->OTA_GPRS_APN); TRACE_EVENT_P1("Proxy = %s", parameter->OTA_proxy); TRACE_EVENT_P1("Port = %d", parameter->OTA_port); #endif // xreddymn Jan-24-2005 MMI-SPR-28135: WAP_OTA settings saved in WAP profiles new_profile.AccessType=WAP_GPRS_DATA; if(parameter->OTA_profileName_length==0) { ATB_convert_String((char*)"No name", MFW_ASCII, strlen("No name"), (char*)new_profile.Title, MFW_DCS_UCS2, CARD_TITLE_MAX_LEN, TRUE); } else { ATB_convert_String((char*)parameter->OTA_profileName, MFW_ASCII, parameter->OTA_profileName_length, (char*)new_profile.Title, MFW_DCS_UCS2, CARD_TITLE_MAX_LEN, TRUE); } length=parameter->OTA_homepageUrl_length; if(length>(URL_MAX_LEN+1)) length=URL_MAX_LEN+1; strncpy(new_profile.Homepage,parameter->OTA_homepageUrl,length); new_profile.ConnectionType=WAP_CONTINUOUS; new_profile.ResponseTimer=60; new_profile.Port1=parameter->OTA_port; new_profile.Port2=parameter->OTA_port; length=parameter->OTA_proxy_length; if(length>(IPADDRESS_MAX_LEN+1)) length=IPADDRESS_MAX_LEN+1; copy_IP_address(new_profile.IPAddress1,parameter->OTA_proxy,length); copy_IP_address(new_profile.IPAddress2,parameter->OTA_proxy,length); length=parameter->OTA_GPRS_APN_length; if(length>(URL_MAX_LEN+1)) length=URL_MAX_LEN+1; strncpy(new_profile.APN,parameter->OTA_GPRS_APN,length); length=parameter->OTA_proxy_username_length; if(length==0) { strcpy(new_profile.Username,""); } else { if(length>(USERNAME_MAX_LEN+1)) length=USERNAME_MAX_LEN+1; strncpy(new_profile.Username,parameter->OTA_proxy_username,length); } length=parameter->OTA_proxy_password_length; if(length==0) { strcpy(new_profile.Password,""); } else { if(length>(PASSWORD_MAX_LEN+1)) length=PASSWORD_MAX_LEN+1; strncpy(new_profile.Password,parameter->OTA_proxy_password,length); } new_profile.Security=FALSE; strcpy(new_profile.NameServer1,""); strcpy(new_profile.NameServer2,""); new_profile.PPGAuthentication=FALSE; new_profile.WirelessProfiledHTTP=TRUE; ATB_wap_profile_add(&new_profile); return; } void M_WAP_MMI_MMS_SET_CSD_IND(T_WAP_MMI_MMS_SET_CSD_IND *parameter) { #ifdef TRACE_WAP_WAPMMI TRACE_EVENT("M_WAP_MMI_MMS_SET_CSD_IND"); TRACE_EVENT_P1("Profile name = %s", parameter->OTA_profileName); TRACE_EVENT_P1("MMSC URL = %s", parameter->OTA_mmsUrl); TRACE_EVENT_P1("Dialstring = %s", parameter->OTA_CSD_dialstring); TRACE_EVENT_P1("Proxy = %s", parameter->OTA_proxy); TRACE_EVENT_P1("Port = %d", parameter->OTA_port); #endif return; } void M_WAP_MMI_MMS_SET_GPRS_IND(T_WAP_MMI_MMS_SET_GPRS_IND *parameter) { #ifdef TRACE_WAP_WAPMMI TRACE_EVENT("M_WAP_MMI_MMS_SET_GPRS_IND"); TRACE_EVENT_P1("Profile name = %s", parameter->OTA_profileName); TRACE_EVENT_P1("MMSC URL = %s", parameter->OTA_mmsUrl); TRACE_EVENT_P1("APN = %s", parameter->OTA_GPRS_APN); TRACE_EVENT_P1("Proxy = %s", parameter->OTA_proxy); TRACE_EVENT_P1("Port = %d", parameter->OTA_port); #endif return; } void M_WAP_MMI_BROWSER_BOOKMARKS_IND(T_WAP_MMI_BROWSER_BOOKMARKS_IND *parameter) { #ifdef TRACE_WAP_WAPMMI TRACE_EVENT("M_WAP_MMI_BROWSER_BOOKMARKS_IND"); TRACE_EVENT_P1("Number of bookmarks = %d", parameter->OTA_numberOfBookmarks); TRACE_EVENT_P1("First bookmark name = %s", parameter->OTA_bookmarkName_1); TRACE_EVENT_P1("First bookmark url = %s", parameter->OTA_bookmarkUrl_1); #endif return; } void M_WAP_MMI_SYNCML_GENERAL_SET_IND(T_WAP_MMI_SYNCML_GENERAL_SET_IND *parameter) { #ifdef TRACE_WAP_WAPMMI TRACE_EVENT("M_WAP_MMI_SYNCML_GENERAL_SET_IND"); TRACE_EVENT_P1("Host address = %s", parameter->OTASYNC_HostAddr); TRACE_EVENT_P1("Database URI = %s", parameter->OTASYNC_URI); TRACE_EVENT_P1("Connection port = %d", parameter->OTASYNC_Port); #endif return; } void M_WAP_MMI_SYNCML_CONTENT_SET_IND(T_WAP_MMI_SYNCML_CONTENT_SET_IND *parameter) { #ifdef TRACE_WAP_WAPMMI TRACE_EVENT("M_WAP_MMI_SYNCML_CONTENT_SET_IND"); TRACE_EVENT_P1("Content type = %s", parameter->OTASYNC_CTType); TRACE_EVENT_P1("Content version = %s", parameter->OTASYNC_CTVer); #endif return; } /******************************************************************************* $Function: M_WAP_MMI_PUSH_NEW_SI_IND $Description: New SI is received SPR#2086 - Added $Returns: None $Arguments: parameter - Data block *******************************************************************************/ void M_WAP_MMI_PUSH_NEW_SI_IND(T_WAP_MMI_PUSH_NEW_SI_IND *parameter) { #ifdef TRACE_ATBWAPACI TRACE_EVENT("M_WAP_MMI_PUSH_NEW_SI_IND"); #endif ATB_wap_push_SI_new( parameter->id, parameter->created, parameter->expires, parameter->Message, parameter->message_length, parameter->expired, parameter->Url, parameter->url_length, parameter->priority, parameter->InitURL, parameter->initURL_length, parameter->applicationType, parameter->newChannelId ); return; } /******************************************************************************* $Function: M_WAP_MMI_PUSH_SI_INFO_IND $Description: SI info is received SPR#2086 - Added $Returns: None $Arguments: parameter - Data block *******************************************************************************/ void M_WAP_MMI_PUSH_SI_INFO_IND(T_WAP_MMI_PUSH_SI_INFO_IND *parameter) { #ifdef TRACE_ATBWAPACI TRACE_EVENT("M_WAP_MMI_PUSH_SI_INFO_IND"); #endif ATB_wap_push_SI_info( parameter->id, parameter->status, parameter->created, parameter->expires, parameter->Message, parameter->message_length, parameter->expired, parameter->Url, parameter->url_length, parameter->priority, parameter->InitURL, parameter->initURL_length); return; } /******************************************************************************* $Function: M_WAP_MMI_PUSH_NEW_SL_IND $Description: New SL is received SPR#2086 - Added $Returns: None $Arguments: parameter - Data block *******************************************************************************/ void M_WAP_MMI_PUSH_NEW_SL_IND(T_WAP_MMI_PUSH_NEW_SL_IND *parameter) { #ifdef TRACE_ATBWAPACI TRACE_EVENT("M_WAP_MMI_PUSH_NEW_SL_IND"); #endif // xreddymn Mar-22-2005 MMI-SPR-29767: Modified handling of SL messages // xreddymn Mar-11-2005 MMI-SPR-29510: Enabled support for SL messages ATB_wap_push_SL_new( parameter->id, parameter->Url, parameter->url_length, parameter->priority, parameter->InitURL, parameter->initURL_length, parameter->applicationType, parameter->newChannelId ); return; } /******************************************************************************* $Function: M_WAP_MMI_PUSH_SL_INFO_IND $Description: SL info is received SPR#2086 - Added $Returns: None $Arguments: parameter - Data block *******************************************************************************/ void M_WAP_MMI_PUSH_SL_INFO_IND(T_WAP_MMI_PUSH_SL_INFO_IND *parameter) { #ifdef TRACE_ATBWAPACI TRACE_EVENT("M_WAP_MMI_PUSH_SL_INFO_IND"); #endif return; } /******************************************************************************* $Function: M_WAP_MMI_PUSH_MESSAGE_CHANGE_IND $Description: A message status has changed SPR#2086 - Added $Returns: None $Arguments: parameter - Data block *******************************************************************************/ void M_WAP_MMI_PUSH_MESSAGE_CHANGE_IND(T_WAP_MMI_PUSH_MESSAGE_CHANGE_IND *parameter) { #ifdef TRACE_ATBWAPACI TRACE_EVENT("M_WAP_MMI_PUSH_MESSAGE_CHANGE_IND"); #endif return; } /******************************************************************************* $Function: M_WAP_MMI_PUSH_REPOSITORY_FULL_IND $Description: The push repository is full SPR#2086 - Added $Returns: None $Arguments: parameter - Data block *******************************************************************************/ void M_WAP_MMI_PUSH_REPOSITORY_FULL_IND(T_WAP_MMI_PUSH_REPOSITORY_FULL_IND *parameter) { #ifdef TRACE_ATBWAPACI TRACE_EVENT("M_WAP_MMI_PUSH_REPOSITORY_FULL_IND"); #endif return; } /******************************************************************************* $Function: M_WAP_MMI_PUSH_CONNECTION_REQ $Description: A request to set up the push connection SPR#2086 - Added $Returns: None $Arguments: parameter - Data block *******************************************************************************/ void M_WAP_MMI_PUSH_CONNECTION_REQ(T_WAP_MMI_PUSH_CONNECTION_REQ *parameter) { T_MMI_WAP_PUSH_CONNECTION_CNF parameter2; T_WAP_VIEW *View; ULONG IPAddressLong; #ifdef TRACE_WAP_WAPMMI TRACE_EVENT("M_WAP_MMI_PUSH_CONNECTION_REQ"); #endif /* Check if any view exists, create a new invisible view if not */ if (!(View = ATB_wap_get_view(PUSH_USER_AGENT))) { View = ATB_wap_new_view_invisible(PUSH_USER_AGENT); } /* Setup stack mode */ ATB_wap_conn_config_int(View, configACCESS_TYPE, parameter->stackMode); /* Setup access type- CSD by default */ if (parameter->accessType!=BEARER_ANY) { ATB_wap_conn_config_int(View, configACCESS_TYPE, parameter->accessType); } else { ATB_wap_conn_config_int(View, configACCESS_TYPE, BEARER_GSM_CSD); } /* Setup gateway address */ ATB_conv_str_to_IP(parameter->Address, parameter->address_length, &IPAddressLong); ATB_wap_conn_config_str(View, configPROXY_ADDRESS, (CHAR *)&IPAddressLong, sizeof(ULONG)); /* Set connection port */ ATB_wap_conn_config_int(View, configCLIENT_PORT, WAP_LOCAL_PORT); /* Set online status (FALSE = not always online) */ //ATB_wap_conn_config_int(View, configONLINE, FALSE); /* Setup timeout */ ATB_wap_conn_config_int(View, configTIMEOUT, WAP_DEFAULT_RESPONSE_TIME); /* Set connection port 1 */ ATB_wap_conn_config_int(View, WAP_setPort1, WAP_DEFAULT_PORT); /* Set connection port 2 */ ATB_wap_conn_config_int(View, WAP_setPort2, WAP_DEFAULT_PORT); ATB_wap_config_int(View, configPPG_AUTHENTICATION_REQUIRED, 0); parameter2.siaId = parameter->siaId; parameter2.channelId = WAP_CHANNEL_ID; parameter2.success = TRUE; M_MMI_WAP_PUSH_CONNECTION_CNF(¶meter2); return; } /******************************************************************************* $Function: M_WAP_MMI_PUSH_UNLOADED_MSG_CNF $Description: Indicates if there are unloaded messages in the Push inbox SPR#2086 - Added $Returns: None $Arguments: parameter - Data block *******************************************************************************/ void M_WAP_MMI_PUSH_UNLOADED_MSG_CNF(T_WAP_MMI_PUSH_UNLOADED_MSG_CNF *parameter) { TRACE_FUNCTION("M_WAP_MMI_PUSH_UNLOADED_MSG_CNF"); return; } /******************************************************************************* $Function: M_WAP_MMI_PUSH_SMS_SEND_IND $Description: Request for MMI to send an SMS SPR#2086 - Added $Returns: None $Arguments: parameter - Data block *******************************************************************************/ void M_WAP_MMI_PUSH_SMS_SEND_IND(T_WAP_MMI_PUSH_SMS_SEND_IND *parameter) { #ifdef TRACE_WAP_WAPMMI TRACE_EVENT("M_WAP_MMI_PUSH_SMS_SEND_IND"); TRACE_EVENT_P1("destination_length: %d", parameter->destination_length); TRACE_EVENT_P1("data_length: %d", parameter->data_length); #endif ATB_wap_push_SMS_send( parameter->Smsc, parameter->smsc_length, parameter->Destination, parameter->destination_length, parameter->Data, parameter->data_length); return; } // xreddymn Mar-25-2005 MMI-SPR-26144: send data indication // this is used to update progress when sending MMS /******************************************************************************* $Function: M_WAP_MMI_NET_SEND_IND $Description: NET SEND indication $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_WAP_MMI_NET_SEND_IND(T_WAP_MMI_NET_SEND_IND *parameter) { #ifdef TRACE_ATBWAPACI TRACE_FUNCTION("M_WAP_MMI_NET_SEND_IND"); #endif #ifdef FF_GPF_TCPIP AUI_wap_net_send_ind(); #endif } // xreddymn MMI-SPR-30834 May-14-2005 /******************************************************************************* $Function: M_MMI_WAP_FREE_MEM_IND $Description: Called by MMI to free data in WAP memory $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_MMI_WAP_FREE_MEM_IND(T_MMI_WAP_MEM_FREE_IND *parameter) { #ifdef TRACE_ATBWAPACI TRACE_EVENT("M_MMI_WAP_FREE_MEM_IND"); #endif mmi_coder(WAP_MEM_FREE_IND_ID, (void *)parameter); return; } // xreddymn Jun-21-2005 MMI-SPR-30291 /******************************************************************************* $Function: M_MMI_WAP_SEND_PROFILE_IND $Description: Sends profile data from MMI to WAP adapter $Returns: None. $Arguments: parameter - data block *******************************************************************************/ void M_MMI_WAP_SEND_PROFILE_IND(T_MMI_WAP_SEND_PROFILE_IND *parameter) { #ifdef TRACE_WAP_WAPMMI TRACE_EVENT("M_MMI_WAP_SEND_PROFILE_IND"); #endif mmi_coder(WAP_SEND_PROFILE_IND_ID, (void *)parameter); return; } #endif /* #ifdef FF_GPF_TCPIP */