diff g23m/condat/ms/src/mfw/mfw_ss.h @ 0:509db1a7b7b8

initial import: leo2moko-r1
author Space Falcon <falcon@ivan.Harhan.ORG>
date Mon, 01 Jun 2015 03:24:05 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/g23m/condat/ms/src/mfw/mfw_ss.h	Mon Jun 01 03:24:05 2015 +0000
@@ -0,0 +1,644 @@
+/*
++--------------------------------------------------------------------+
+| 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                                              $
+
+	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"
+
+#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       
+{
+#ifdef SIM_PERS
+//	Nov 03, 2005 DR: OMAPS00052032 - xpradipg
+//	added new enum for execution in progress
+	MFW_EXCT = 100,
+	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                */
+} 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