FreeCalypso > hg > fc-tourmaline
view src/ui/mfw/mfw_ss.h @ 303:f76436d19a7a default tip
!GPRS config: fix long-standing AT+COPS chance hanging bug
There has been a long-standing bug in FreeCalypso going back years:
sometimes in the AT command bring-up sequence of an ACI-only MS,
the AT+COPS command would produce only a power scan followed by
cessation of protocol stack activity (only L1 ADC traces), instead
of the expected network search sequence. This behaviour was seen
in different FC firmware versions going back to Citrine, and seemed
to follow some law of chance, not reliably repeatable.
This bug has been tracked down and found to be specific to !GPRS
configuration, stemming from our TCS2/TCS3 hybrid and reconstruction
of !GPRS support that was bitrotten in TCS3.2/LoCosto version.
ACI module psa_mms.c, needed only for !GPRS, was missing in the TCS3
version and had to be pulled from TCS2 - but as it turns out,
there is a new field in the MMR_REG_REQ primitive that needs to be
set correctly, and that psa_mms.c module is the place where this
initialization needed to be added.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 08 Jun 2023 08:23:37 +0000 |
parents | 92abb46dc1ba |
children |
line wrap: on
line source
/* +--------------------------------------------------------------------+ | PROJECT: MMI-Framework (8417) $Workfile:: mfw_ss.h $| | $Author:: Vo $Revision:: 1 $| | CREATED: 25.1.99 $Modtime:: 21.02.00 14:19 $| | STATE : code | +--------------------------------------------------------------------+ MODULE : MFW_SS PURPOSE : This modul contains the definition for supplementary management. $History:: mfw_ss.h $ Apr 03, 2007 ER: OMAPS00122561 x0pleela Description: [ACI] Phone lock feature has to be supported by ACI Solution: Phone Lock ER implementation Feb 27, 2007 ER: OMAPS00113891 x0pleela Description:[ACI] MTC related call forwarded SS notification not differentiable on BAT/ATI level Solution: new enum value MFW_SS_MT_CALL_FORWARDED (MT call is forwarded to another subscriber) is added for T_MFW_SS_NOTIFY_CODES Nov 13, 2006 DR: OMAPS00103356 x0pleela Description: SIMP:Master unlock failed through MMI Solution: Defined new enums: MFW_WRONG_PWD: will get returned if Master unlocking password is wrong MFW_MASTER_OK: will get returned if Master unlocking operation is successful Nov 03, 2005 DR: OMAPS00052032 - xpradipg Description : Locosto: SIMP - integration of issues submitted by solDel on ME Personalization - changes as per the new interfaces Solution : The return value of sAT_PlusCLCK of AT_EXCT is handled and a please wait screen is displayed until the response is recieved * * ***************** Version 14 ***************** * User: Vo Date: 22.02.00 Time: 14:09 * Updated in $/GSM/Condat/MS/SRC/MFW * * ***************** Version 13 ***************** * User: Vo Date: 10.01.00 Time: 16:09 * Updated in $/GSM/Condat/MS/SRC/MFW * * ***************** Version 12 ***************** * User: Ak Date: 10.01.00 Time: 13:14 * Updated in $/GSM/Condat/MS/SRC/MFW * * ***************** Version 11 ***************** * User: Ak Date: 21.10.99 Time: 11:56 * Updated in $/GSM/Condat/MS/SRC/MFW * Why: Improvement * What: Passing of network basic service codes instead of GSM 2.30 * codes for SS control string results and invocations * * ***************** Version 10 ***************** * User: Vo Date: 12.09.99 Time: 13:38 * Updated in $/GSM/DEV/MS/SRC/MFW * Bug fix: delete 'SS guidance' * New events, new structure and new prototype for USSD * * ***************** Version 9 ***************** * User: Vo Date: 30.08.99 Time: 11:46 * Updated in $/GSM/DEV/MS/SRC/MFW * new return value MFW_SS_DIAL_IDX * * ***************** Version 8 ***************** * User: Vo Date: 9.08.99 Time: 16:48 * Updated in $/GSM/DEV/MS/SRC/MFW * change structure for SS results * add structure for IMEI * * ***************** Version 7 ***************** * User: Vo Date: 21.07.99 Time: 14:45 * Updated in $/GSM/DEV/MS/SRC/MFW * * ***************** Version 6 ***************** * User: Vo Date: 9.07.99 Time: 14:57 * Updated in $/GSM/DEV/MS/SRC/MFW * * ***************** Version 5 ***************** * User: Vo Date: 9.07.99 Time: 14:37 * Updated in $/GSM/DEV/MS/SRC/MFW * * ***************** Version 4 ***************** * User: Vo Date: 2.07.99 Time: 15:32 * Updated in $/GSM/DEV/MS/SRC/MFW * * ***************** Version 3 ***************** * User: Vo Date: 20.05.99 Time: 17:49 * Updated in $/GSM/DEV/MS/SRC/MFW * * ***************** Version 2 ***************** * User: Vo Date: 12.02.99 Time: 18:59 * Updated in $/GSM/DEV/MS/SRC/MFW * * ***************** Version 1 ***************** * User: Vo Date: 10.02.99 Time: 12:41 * Created in $/GSM/DEV/MS/SRC/MFW */ #ifndef DEF_MFW_SS_HEADER #define DEF_MFW_SS_HEADER #include "mfw_nm.h" #include "mfw_str.h" #include "ksd.h" #ifdef MAX_PWD_LEN /*a0393213 warnings removal-to prevent redefinition of MAX_PWD_LEN in some files*/ #undef MAX_PWD_LEN #endif #define MAX_PWD_LEN 8 #define MFW_SS_NUM_LEN 21 #define MFW_SS_SUBADR_LEN 21 #define MFW_SS_PWD_LEN 5 #define MFW_MAX_FEAT_NR 5 #define MFW_MAX_TELE_NR 5 #define MFW_MAX_SRV_NR 5 /* events are organised as bitmaps */ #define E_SS_OK 0x0001 #define E_SS_CF_CNF 0x0002 #define E_SS_CB_CNF 0x0004 #define E_SS_GET_PW 0x0008 #define E_SS_CLI_CNF 0x0010 #define E_SS_CW_CNF 0x0020 #define E_SS_NOTIFY 0x0040 #define E_SS_RES 0x0080 #define E_SS_IMEI 0x0100 #define E_SS_USSD_REQ 0x0200 #define E_SS_USSD_CNF 0x0400 #define E_SS_CF_ICN_UPD 0x0800 //CQ-16432 start #define E_SS_SAT_CPWD 0x1000 //CQ-16432 end /* SS status is organised as bitmaps */ #define SS_STAT_ACTIVE 0x01 #define SS_STAT_REGISTERED 0x02 #define SS_STAT_PROVISIONED 0x04 #define SS_STAT_QUIESCENT 0x08 #define SS_STAT_UNKNOWN 0xFF /* SS codes */ typedef enum { SS_CODES_UNKNOWN, SS_CF_ALL, SS_CF_ALL_COND, SS_CF_CFU, SS_CF_CFNRy, SS_CF_CFNR, SS_CF_CFB, SS_CB_BAOC, SS_CB_BAOIC, SS_CB_BAOICexH, SS_CB_BAIC, SS_CB_BAICroam, SS_CB_ALL, SS_CB_ALL_BAOC, SS_CB_ALL_BAIC, SS_CW, SS_CCBS, SS_CLIP, SS_CLIR, SS_COLP, SS_COLR, SS_PIN1, SS_PIN2, SS_USSD } T_MFW_SS_CODES; /* SS category */ typedef enum { SS_CTG_UNKNOWN, SS_REGISTRATION, SS_ERASURE, SS_ACTIVATION, SS_DEACTIVATION, SS_INTERROGATION } T_MFW_SS_CATEGORY; /* return values for type of key sequence */ typedef enum { //x0pleela 23 Mar, 2007 ER : OMAPS00122561 #ifdef FF_PHONE_LOCK MFW_SS_ALRDY_DIS = 101, #endif /*FF_PHONE_LOCK*/ #ifdef SIM_PERS // Nov 03, 2005 DR: OMAPS00052032 - xpradipg // added new enum for execution in progress MFW_EXCT = 100, //x0pleela 13 Nov, 2006 DR: OMAPS00103356 //This will get returned if Master unlocking operation is successful MFW_MASTER_OK = 200, //x0pleela 13 Nov, 2006 DR: OMAPS00103356 //This will get returned if Master unlocking password is wrong MFW_WRONG_PWD = -2, MFW_FAILURE = -1, #endif MFW_SS_OK, MFW_SS_DIAL, MFW_SS_DIAL_IDX, MFW_SS_DTMF, MFW_SS_USSD, MFW_SS_SIM_LOCK, MFW_SS_SIM_REG_PW, MFW_SS_REG_PW, MFW_SS_SIM_UNBLCK_PIN, MFW_SS_REGISTER, MFW_SS_CF, MFW_SS_CB, MFW_SS_CLIR, MFW_SS_CLIP, MFW_SS_COLR, MFW_SS_COLP, MFW_SS_WAIT, MFW_SS_MMI, /* present IMEI */ MFW_SS_HOLD, MFW_SS_ECT,/*MC*/ MFW_SS_CCBS, MFW_SS_MULTIPARTY, MFW_SS_LANG_RESET, /*MC, SPR 1111*/ MFW_SS_TTY_NEXTCALL_ON, /* SPR#1352 - SH */ MFW_SS_TTY_NEXTCALL_OFF, MFW_SS_UNKNOWN, MFW_SS_FAIL } T_MFW_SS_RETURN; /* data coding scheme */ typedef enum { MFW_DCS_7bits = 0x00, MFW_DCS_8bits = 0x04, MFW_DCS_UCS2 = 0x08, MFW_DCS_SIM, MFW_ASCII }T_MFW_DCS; typedef enum { MFW_CL_UNKNOWN, MFW_CL_PERM, /* permanent */ MFW_CL_TEMP_DEF_REST, /* temporary default restricted */ MFW_CL_TEMP_DEF_ALLOWED /* temporary default allowed */ } T_MFW_CL_STATUS; typedef enum { MFW_OV_UNKNOWN, MFW_OV_ENABLED, /* enabled */ MFW_OV_DISABLED /* disabled */ } T_MFW_OV_CTGRY; /* SS notification result code */ typedef enum { MFW_SS_NOTIFY_UNKNOWN, MFW_SS_MO_unconFORWARD, /* unconditional call forwaiting */ MFW_SS_MO_conFORWARD, /* conditional call forwaitings */ MFW_SS_MO_FORWARDED, /* call forwarded */ MFW_SS_MO_WAITING, /* waiting indicator */ MFW_SS_MO_CUG_CALL, /* a CUG call */ MFW_SS_MO_moBARRED, /* outgoing calls are barred */ MFW_SS_MO_mtBARRED, /* incoming calls are barred */ MFW_SS_MO_CLIR, /* CLIR suppression reject */ MFW_SS_MO_DEFLECTED, /* call deflected */ MFW_SS_MT_FORWARDED, /* a forwarded call */ MFW_SS_MT_CUG_CALL, /* a CUG call */ MFW_SS_NOTIFY_MULTIPARTY, /* multiparty call entered */ MFW_SS_NOTIFY_holdRELEASED, /* on hold call released */ MFW_SS_NOTIFY_checkSS, /* forward check SS message received */ MFW_SS_NOTIFY_ectALERT, MFW_SS_NOTIFY_ectCONNECT, MFW_SS_MT_DEFLECTED, /* call deflected */ //x0pleela 22 Feb, 2007 ER: OMAPS00113891 MFW_SS_MT_CALL_FORWARDED /* MT call is forwarded to another subscriber */ } T_MFW_SS_NOTIFY_CODES; typedef enum { MFW_SS_ERR_UNKNOWN, MFW_SS_NO_ERROR, MFW_SS_ERROR, MFW_SS_ERR_UNKNOWN_SUBSCRIBER, MFW_SS_ERR_ILLEGAL_SUBSCRIBER, MFW_SS_ERR_BEARER_SVC_NOT_PROV, MFW_SS_ERR_TELE_SVC_NOT_PROV, MFW_SS_ERR_ILLEGAL_EQUIPMENT, MFW_SS_ERR_CALL_BARRED, MFW_SS_ERR_ILLEGAL_SS_OPERATION, MFW_SS_ERR_SS_ERR_STATUS, MFW_SS_ERR_SS_NOT_AVAIL, MFW_SS_ERR_SS_SUBS_VIOLATION, MFW_SS_ERR_SS_INCOMP, MFW_SS_ERR_FAC_NOT_SUPPORTED, MFW_SS_ERR_ABSENT_SUBS, MFW_SS_ERR_SYSTEM_FAIL, MFW_SS_ERR_DATA_MISSING, MFW_SS_ERR_UNEXPECT_DATA, MFW_SS_ERR_PWD_REG_FAIL, MFW_SS_ERR_NEG_PWD_CHECK, MFW_SS_ERR_NUM_PWD_VIOLATION, MFW_SS_ERR_UNKNOWN_ALPHA, MFW_SS_ERR_USSD_BUSY, MFW_SS_ERR_MAX_NUM_MPTY_EXCEED, MFW_SS_ERR_RESOURCE_NOT_AVAIL, MFW_SS_GEN_PROB_UNRECOG_CMP, MFW_SS_GEN_PROB_MISTYPED_CMP, MFW_SS_GEN_PROB_BAD_STRUCT_CMP, MFW_SS_INV_PROB_DUPL_INV_ID, MFW_SS_INV_PROB_UNRECOG_OP, MFW_SS_INV_PROB_MISTYPED_PAR, MFW_SS_INV_PROB_RESOURCE_LIM, MFW_SS_INV_PROB_INIT_RELEASE, MFW_SS_INV_PROB_UNRECOG_LNK_ID, MFW_SS_INV_PROB_LNK_RES_UNEXP, MFW_SS_INV_PROB_UNEXP_LNK_OP, MFW_SS_RES_PROB_UNRECOG_INV_ID, MFW_SS_RES_PROB_RET_RES_UNEXP, MFW_SS_RES_PROB_MISTYPED_PAR, MFW_SS_ERR_PROB_UNRECOG_INV_ID, MFW_SS_ERR_PROB_RET_ERR_UNEXP, MFW_SS_ERR_PROB_UNRECOG_ERR, MFW_SS_ERR_PROB_UNEXP_ERR, MFW_SS_ERR_PROB_MISTYPED_PAR, MFW_SS_ERR_FATAL_INV_RESULT, MFW_SS_ERR_FATAL_CCD_DEC, MFW_SS_ERR_FATAL_SS_ENT } T_MFW_SS_ERROR; /* basic service type */ typedef enum { MFW_BST_UNKNOWN = 0, MFW_BST_BEARER = 0x82, MFW_BST_TELE = 0x83 } T_MFW_BASIC_SERVICE_TYPE; #define MFW_BS_TS_UNKNOWN (0xFF) /* unknown bearer and teleservice */ /* teleservice */ typedef enum { MFW_TS_ALL_TS =0x0, /* all teleservices */ MFW_TS_ALL_SPCH =0x10, /* All speech transmission services */ MFW_TS_TLPHNY =0x11, /* telephony */ MFW_TS_EMRGNCY =0x12, /* emergency calls */ MFW_TS_ALL_SMS =0x20, /* all SMS services */ MFW_TS_SMS_MT =0x21, /* SMS MT PP */ MFW_TS_SMS_MO =0x22, /* SMS MO PP */ MFW_TS_ALL_FAX =0x60, /* all FAX transmission services */ MFW_TS_FAX3_ALT_SPCH =0x61, /* FAX group 3 alter. speech */ MFW_TS_FAX3_AUTO =0x62, /* FAX group 3 automatic */ MFW_TS_FAX4 =0x63, /* FAX group 4 */ MFW_TS_ALL_DATA =0x70, /* all FAX and SMS services */ MFW_TS_ALL_XCPT_SMS =0x80, /* all FAX and speech services */ MFW_TS_ALL_PSSS =0xd0, /* all PLMN specific TS */ MFW_TS_PLMN1 =0xd1, /* PLMN specific TS 1 */ MFW_TS_PLMN2 =0xd2, /* PLMN specific TS 2 */ MFW_TS_PLMN3 =0xd3, /* PLMN specific TS 3 */ MFW_TS_PLMN4 =0xd4, /* PLMN specific TS 4 */ MFW_TS_PLMN5 =0xd5, /* PLMN specific TS 5 */ MFW_TS_PLMN6 =0xd6, /* PLMN specific TS 6 */ MFW_TS_PLMN7 =0xd7, /* PLMN specific TS 7 */ MFW_TS_PLMN8 =0xd8, /* PLMN specific TS 8 */ MFW_TS_PLMN9 =0xd9, /* PLMN specific TS 9 */ MFW_TS_PLMNA =0xda, /* PLMN specific TS A */ MFW_TS_PLMNB =0xdb, /* PLMN specific TS B */ MFW_TS_PLMNC =0xdc, /* PLMN specific TS C */ MFW_TS_PLMND =0xdd, /* PLMN specific TS D */ MFW_TS_PLMNE =0xde, /* PLMN specific TS E */ MFW_TS_PLMNF =0xdf /* PLMN specific TS F */ } T_MFW_TELE_SERVICE; /* bearer service */ typedef enum { MFW_BS_ALL_BS =0x0, /* all bearer services */ MFW_BS_ALL_DATA_CDA =0x10, /* all data CDA services */ MFW_BS_CDA_300 =0x11, /* data CDA 300 bps */ MFW_BS_CDA_1200 =0x12, /* data CDA 1200 bps */ MFW_BS_CDA_1200_75 =0x13, /* data CDA 1200/75 bps */ MFW_BS_CDA_2400 =0x14, /* data CDA 2400 bps */ MFW_BS_CDA_4800 =0x15, /* data CDA 4800 bps */ MFW_BS_CDA_9600 =0x16, /* data CDA 9600 bps */ MFW_BS_ALL_DATA_CDS =0x18, /* all data CDS services */ MFW_BS_CDS_1200 =0x1a, /* data CDS 1200 bps */ MFW_BS_CDS_2400 =0x1c, /* data CDS 2400 bps */ MFW_BS_CDS_4800 =0x1d, /* data CDS 4800 bps */ MFW_BS_CDS_9600 =0x1e, /* data CDS 9600 bps */ MFW_BS_ALL_DATA_PAD =0x20, /* all data PAD services */ MFW_BS_PAD_300 =0x21, /* data PAD 300 bps */ MFW_BS_PAD_1200 =0x22, /* data PAD 1200 bps */ MFW_BS_PAD_1200_75 =0x23, /* data PAD 1200/75 bps */ MFW_BS_PAD_2400 =0x24, /* data PAD 2400 bps */ MFW_BS_PAD_4800 =0x25, /* data PAD 4800 bps */ MFW_BS_PAD_9600 =0x26, /* data PAD 9600 bps */ MFW_BS_ALL_DATA_PDS =0x28, /* all data PDS services */ MFW_BS_PDS_2400 =0x2c, /* data PDS 2400 bps */ MFW_BS_PDS_4800 =0x2d, /* data PDS 4800 bps */ MFW_BS_PDS_9600 =0x2e, /* data PDS 9600 bps */ MFW_BS_SPCH_ALT_CDA =0x30, /* all data CDA alter. speech */ MFW_BS_SPCH_ALT_CDS =0x38, /* all data CDS alter. speech */ MFW_BS_SPCH_FLD_CDA =0x40, /* all data speech followed CDA */ MFW_BS_SPCH_FLD_CDS =0x48, /* all data speech followed CDA */ MFW_BS_ALL_DC_ASYN =0x50, /* all data circuit asynchronous */ MFW_BS_ALL_ASYN =0x60, /* all asynchronous services */ MFW_BS_ALL_DC_SYN =0x58, /* all data circuit synchronous */ MFW_BS_ALL_SYN =0x68, /* all synchronous services */ MFW_BS_ALL_PSSS =0xd0, /* all PLMN specific BS */ MFW_BS_PLMN1 =0xd1, /* PLMN specific 1 */ MFW_BS_PLMN2 =0xd2, /* PLMN specific 2 */ MFW_BS_PLMN3 =0xd3, /* PLMN specific 3 */ MFW_BS_PLMN4 =0xd4, /* PLMN specific 4 */ MFW_BS_PLMN5 =0xd5, /* PLMN specific 5 */ MFW_BS_PLMN6 =0xd6, /* PLMN specific 6 */ MFW_BS_PLMN7 =0xd7, /* PLMN specific 7 */ MFW_BS_PLMN8 =0xd8, /* PLMN specific 8 */ MFW_BS_PLMN9 =0xd9, /* PLMN specific 9 */ MFW_BS_PLMNA =0xda, /* PLMN specific A */ MFW_BS_PLMNB =0xdb, /* PLMN specific B */ MFW_BS_PLMNC =0xdc, /* PLMN specific C */ MFW_BS_PLMND =0xdd, /* PLMN specific D */ MFW_BS_PLMNE =0xde, /* PLMN specific E */ MFW_BS_PLMNF =0xdf /* PLMN specific F */ } T_MFW_BEARER_SERVICE; /* mode of close user group (cug) */ typedef enum { MFW_SS_CUG_MODE_Not_Present = -1, MFW_SS_CUG_TMP_DISABLE, MFW_SS_CUG_TMP_ENABLE }T_MFW_SS_CUG_MODE; /* index - identifier of close user group */ typedef enum { MFW_SS_CUG_INDEX_Not_Present = -1, MFW_SS_CUG_INDEX0, MFW_SS_CUG_INDEX1, MFW_SS_CUG_INDEX2, MFW_SS_CUG_INDEX3, MFW_SS_CUG_INDEX4, MFW_SS_CUG_INDEX5, MFW_SS_CUG_INDEX6, MFW_SS_CUG_INDEX7, MFW_SS_CUG_INDEX8, MFW_SS_CUG_INDEX9, MFW_SS_CUG_NO_INDEX /* preferential cug is used by the network */ }T_MFW_SS_CUG_INDEX; /* info of close user group cug */ typedef enum { MFW_SS_CUG_INFO_Not_Present = -1, MFW_SS_CUG_INFO_NO, MFW_SS_CUG_SUPP_OA, MFW_SS_CUG_SUPP_PREF, MFW_SS_CUG_SUPP_BOTH }T_MFW_SS_CUG_INFO; /* Call forwarding result */ typedef struct { UBYTE ss_telecom_type; UBYTE ss_telecom_service; UBYTE ss_status; UBYTE ss_numbering_type; UBYTE ss_numbering_plan; UBYTE ss_forwarded_to_number[MFW_SS_NUM_LEN]; UBYTE ss_forwarded_to_subaddress[MFW_SS_SUBADR_LEN]; UBYTE ss_no_reply_condition_time; } T_MFW_FEATURE; typedef struct { T_MFW_SS_CODES ss_code; /* Type of call forwarding */ T_MFW_SS_CATEGORY ss_category; /* Category of operation */ T_MFW_SS_ERROR ss_error; /* Error Value */ UBYTE ss_feature_count; /* Number of feature elements */ T_MFW_FEATURE *ss_feature_list; /* Feature list */ UBYTE dummy1; UBYTE dummy2; UBYTE dummy3; UBYTE dummy4; } T_MFW_SS_CF_CNF; /* Call barring info */ typedef struct { UBYTE ss_telecom_type; UBYTE ss_telecom_service; UBYTE ss_status; UBYTE dummy1; UBYTE dummy2; UBYTE dummy3; UBYTE dummy4; UBYTE dummy5; } T_MFW_TELECOM; /* Call barring result */ typedef struct { T_MFW_SS_CODES ss_code; /* Type of call barring */ T_MFW_SS_CATEGORY ss_category; /* Category of operation */ T_MFW_SS_ERROR ss_error; /* Error Value */ UBYTE ss_telecom_count; /* Number of telecom elements */ T_MFW_TELECOM *ss_telecom_list; /* telecom list */ UBYTE dummy1; UBYTE dummy2; UBYTE dummy3; UBYTE dummy4; } T_MFW_SS_CB_CNF; /* Call waiting info */ typedef struct { UBYTE ss_telecom_type; UBYTE ss_telecom_service; UBYTE dummy1; UBYTE dummy2; UBYTE dummy3; UBYTE dummy4; UBYTE dummy5; UBYTE dummy6; } T_MFW_SRV_GROUP; /* Call waiting result */ typedef struct { T_MFW_SS_CODES ss_code; /* Type of call waiting */ T_MFW_SS_CATEGORY ss_category; /* Category of operation */ T_MFW_SS_ERROR ss_error; /* Error Value */ UBYTE ss_status; /* Status */ UBYTE ss_service_count; /* Number of telecom elements */ T_MFW_SRV_GROUP *ss_service_list; /* Service list */ UBYTE dummy1; UBYTE dummy2; UBYTE dummy3; UBYTE dummy4; } T_MFW_SS_CW_CNF; /* Calling line identification/connected line identification result */ typedef struct { T_MFW_SS_CODES ss_code; /* Type of line identification */ T_MFW_SS_CATEGORY ss_category; /* Category of operation */ T_MFW_SS_ERROR ss_error; /* Error Value */ UBYTE ss_status; /* Status */ T_MFW_CL_STATUS ss_clir_option; /* CLIR option */ T_MFW_OV_CTGRY ss_ovrd_ctgry; /* Override category */ } T_MFW_SS_CLI_CNF; /* Get password indication */ typedef struct { T_MFW_SS_CODES ss_code; /* Type of call barring */ T_MFW_SS_CATEGORY ss_category; /* Category of operation */ T_MFW_SS_ERROR ss_error; /* Error Value */ UBYTE ss_new_pwd[MFW_SS_PWD_LEN];/* New Password */ UBYTE dummy1; UBYTE dummy2; UBYTE dummy3; UBYTE dummy4; } T_MFW_SS_PW_CNF; /* SS notification */ typedef struct { UBYTE code; /* result copdes */ UBYTE index; /* used only for CUG */ UBYTE number[MFW_SS_NUM_LEN]; /* phone number */ UBYTE subaddr[MFW_SS_SUBADR_LEN]; /* subaddress */ UBYTE dummy1; UBYTE dummy2; UBYTE dummy3; UBYTE dummy4; } T_MFW_SS_NOTIFY; /* SS result */ typedef struct { UBYTE type; /* type of service as specified in T_MFW_SS_CODES */ UBYTE category; /*command category as specified in T_MFW_SS_CATEGORY */ char ppn[MAX_PWD_LEN]; /* password, PUK, number depending on SS type */ char pwd[MAX_PWD_LEN]; /* password if applicable */ UBYTE bs; /* basic service (2.30) */ UBYTE time; /* no reply condition time (2.30) */ UBYTE dummy1; UBYTE dummy2; UBYTE dummy3; UBYTE dummy4; } T_MFW_SS_RES; /* IMEI number */ typedef struct { UBYTE imei_number[LONG_NAME]; UBYTE error; UBYTE dummy1; UBYTE dummy2; UBYTE dummy3; UBYTE dummy4; UBYTE dummy5; } T_MFW_IMEI; /* Unstructured supplementary service data */ typedef struct { UBYTE len; /* length of USSD data */ UBYTE ussd[MAX_USSD_LEN]; /* USSD data */ T_MFW_DCS dcs; /* data coding scheme */ UBYTE error; UBYTE dummy1; UBYTE dummy2; UBYTE dummy3; UBYTE dummy4; } T_MFW_SS_USSD; typedef struct /* CUG parameter */ { T_MFW_SS_CUG_MODE mode; /* cug mode: disable/enable/no mode */ T_MFW_SS_CUG_INDEX index; /* cug index: 0 ...10 */ T_MFW_SS_CUG_INFO info; /* cug info:suppress OA,pref.CUG,both,no info */ UBYTE dummy1; UBYTE dummy2; UBYTE dummy3; UBYTE dummy4; }T_MFW_SS_CUG_PARA; /* SS Parameter */ typedef union { T_MFW_SS_CF_CNF cf_cnf; T_MFW_SS_CB_CNF cb_cnf; T_MFW_SS_CW_CNF cw_cnf; T_MFW_SS_CLI_CNF cli_cnf; T_MFW_SS_PW_CNF pw_cnf; T_MFW_SS_RES ss_res; T_MFW_IMEI imei_info; T_MFW_SS_USSD ussd_info; T_MFW_SS_NOTIFY notify; } T_MFW_SS_PARA; EXTERN void ss_mfw_init (void); EXTERN void ss_exit (void); EXTERN T_MFW_HND ss_create (T_MFW_HND hWin, T_MFW_EVENT event, T_MFW_CB cbfunc); EXTERN T_MFW_RES ss_delete (T_MFW_HND h); EXTERN T_MFW_SS_RETURN ss_check_ss_string (UBYTE *string); EXTERN T_MFW_SS_RETURN ss_execute_transaction (UBYTE *ss_string, UBYTE ussd_mand); EXTERN T_MFW ss_send_ussd (T_MFW_SS_USSD *ussd_info); EXTERN T_MFW ss_abort_transaction (void); T_MFW_SS_RETURN ss_check_group(T_KSD_SEQGRP grp, T_KSD_SEQPARAM para); EXTERN T_MFW_SS_RETURN ss_set_cug (T_MFW_SS_CUG_PARA *cug_param); EXTERN T_MFW_SS_RETURN ss_get_cug (T_MFW_SS_CUG_PARA *cug_param); //CQ-16432 start EXTERN void ss_sat_passwdReqd(T_ACI_AT_CMD cmdId, T_ACI_CME_ERR err); //CQ-16432 end #endif