view src/g23m-aci/aci/psa_sat.h @ 301:4bb5772a05a3

AT%SPVER: new command for setting custom speech version lists The speech version list in the Bearer Capability IE tells the network which speech codecs are supported by the MS, and in which order of preference. The standard behaviour is to list all codecs that are supported by the hw+fw platform, and the standard preference order is newer over older, FR over HR. But sometimes it is desirable (for network testing) to artificially restrict which codecs the test MS will declare as supported, and/or to list them in some peculiar non-standard order of preference. Add a new private AT command, AT%SPVER, allowing the user to set and clear custom speech version lists for the Bearer Capability IE composer in CC.
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 21 May 2023 21:43:10 +0000
parents fa8dc04885d8
children
line wrap: on
line source

/* 
+----------------------------------------------------------------------------- 
|  Project :  GSM-PS (6147)
|  Modul   :  PSA_SAT
+----------------------------------------------------------------------------- 
|  Copyright 2002 Texas Instruments Berlin, AG 
|                 All rights reserved. 
| 
|                 This file is confidential and a trade secret of Texas 
|                 Instruments Berlin, AG 
|                 The receipt of or possession of this file does not convey 
|                 any rights to reproduce or disclose its contents or to 
|                 manufacture, use, or sell anything it may describe, in 
|                 whole, or in part, without the specific written consent of 
|                 Texas Instruments Berlin, AG. 
+----------------------------------------------------------------------------- 
|  Purpose :  Definitions for the protocol stack adapter
|             SIM application toolkit ( SAT )
+----------------------------------------------------------------------------- 
*/ 

#ifndef PSA_SAT_H
#define PSA_SAT_H

/*==== CONSTANTS ==================================================*/
#define MAX_SAT_CHANNEL    1    /* maximum number of channels available */

#define TPL_NONE           0    /* no transport layer */
#define TPL_DONT_CARE   0xFF   

#define TIME_STAMP_LENGTH 7

typedef struct            /* data buffer for unstructured SS data */
{
  UBYTE *ussd_str;
  UBYTE c_ussd_str;
  UBYTE dcs;
} T_sat_ussd;

typedef enum
{
  NO_CC_ACT = 0,                /* no call control action */
  CC_ACT_CAL,                   /* call control of setup parms */
  CC_ACT_SS,                    /* call control of SS string */
  CC_ACT_USSD,                  /* call control of USSD string */
  SMC_ACT_MO                    /* MO Short Message control by SIM */
} T_CC_ACT;

typedef enum
{
  NO_USR_NTF = 0,               /* no user notification */
  USR_NTF_CC_SIM,               /* call control by SIM notification */
  USR_NTF_SETUP_CAL,            /* call setup notification */
  USR_NTF_SEND_SS,              /* send SS notification */
  USR_NTF_SEND_USSD,            /* send USSD notification */
  USR_NTF_TRM_RSP               /* terminal response notification */
} T_USR_NTF;

typedef enum
{
  NO_VALID_SRQ = 0,             /* not a valid SAT request id */
  SRQ_ACI,                      /* SAT request by ACI */
  SRQ_MMI                       /* SAT request by MMI */
} T_SAT_RQ_ID;

typedef enum
{
  NO_VALID_CTX = 0,             /* not a valid cap context */
  CTX_CC_RESULT,                /* cap context CC result */
  CTX_SAT_SETUP                 /* cap context SAT call setup */
} T_SAT_CAP_CTX;

#define MAX_FU_OPS 16            /* maximum FILE UPDATE operations */

enum
{
  SAT_FU_START = 0,
  SAT_FU_SMS,
  SAT_FU_PHB,
  SAT_FU_MMI,
  SAT_FU_STOP
};

#ifdef FF_SAT_E
typedef enum
{
  OPCH_IDLE = 0,                /* open channel status idle */
  OPCH_CCSIM_REQ,               /* open channel status CC by SIM request */
  OPCH_WAIT_CNF,                /* open channel status wait for confirmation */
  OPCH_ON_DMND,                 /* open channel status on demand */
  OPCH_EST_REQ,                 /* open channel establishment request */
  OPCH_CLS_REQ,                 /* channel close request */
  OPCH_EST,                     /* channel established */
  OPCH_SUSP,                    /* channel suspended */
  OPCH_NONE
} T_SAT_OPCH_STAT;
#endif 

#ifdef FF_SAT_E
typedef enum
{
  SIM_NO_LINK = 0,              /* no link established */
  SIM_LINK_OPEN,                /* link opened */
  SIM_LINK_CNCT,                /* link connected */
  SIM_LINK_DROP                 /* link dropped */
} T_SAT_SIM_LNK_STAT;
#endif 

/*==== TYPES ======================================================*/

typedef struct
{
  UBYTE     stkCmdLen;              /* length of STK command */
  UBYTE   * stkCmd;                 /* STK command */
} T_SAT_SET_PRM;

typedef struct
{
  UBYTE cmdNr;                      /* command number */
  UBYTE cmdType;                    /* command type */
  UBYTE cmdQlf;                     /* command qualifier */
} T_SAT_CMD_DET;

typedef struct
{
  BOOL     busy;                    /* CC busy flag */
  UBYTE    owner;                   /* CC owner */
  SHORT    cId;                     /* related call id */
  UBYTE    ccAct;                   /* CC action */
} T_SAT_CC_PRM;

typedef struct
{
  SHORT    cId;                     /* related call id */
  UBYTE    cntxt;                   /* cap context */
  UBYTE    CCres;                   /* previous CC result */
} T_SAT_CAP_PRM;

typedef struct
{
  UBYTE  regStatus;                  /* Indicates the current reg status */
  T_plmn currPLMN;                   /* The current PLMN that the ME is registered to 
                                         valid only if the regStatus is Full Service */
  U16    lac;                        /* current lac */
  U16    cid;                        /* current cell id */ 
} T_SAT_LOC_STATUS_INFO;

typedef struct
{
  T_stk_cmd    *stk_cmd;            /* pointer to coded envelope of queued event */
  T_OWN        owner;               /* owner of corresponding event */
} T_SAT_QUEUE;

#define MAX_EVENT_QUEUED (4)

typedef struct
{
  ULONG        temp_list;          /* buffer to save list waiting result from MMI */
                                   /* highest bit flags if a setup list is in process */
  ULONG        list;               /* contain list of events to be monitored */
  UBYTE        c_queued;           /* count of queued events */
  T_SAT_QUEUE  queued[MAX_EVENT_QUEUED]; /* list of queued events MAX 4 (may more be needed ??)*/
} T_SAT_EVENT;

typedef BOOL (* T_SAT_FU_FUNC)(int, T_SIM_FILE_UPDATE_IND *);

#ifdef FF_SAT_E
typedef struct
{
  UBYTE chnUsdFlg;                 /* flags a used channel */
  SHORT chnRefId;                  /* refers to call id for CSD, or CID for GPRS */
  UBYTE chnType;                   /* channel type (CSD/GPRS) */
  UBYTE chnTPL;                    /* channel transport layer */
  UBYTE lnkStat;                   /* sim link status */
} T_SAT_CHN_NTRY;
#endif /* FF_SAT_E */

typedef struct SATShrdParm
{
  UBYTE         owner;                  /* identifies the used set */
  UBYTE         ntfy;                   /* user notification */
  T_SAT_SET_PRM setPrm[OWN_SRC_MAX];        /* possible sets */
  T_SAT_CC_PRM  SIMCCParm;              /* call control by SIM parameter */
  T_SAT_CAP_PRM capParm;                /* cap request parameter */
  T_SAT_LOC_STATUS_INFO locInfo;        /* Location status info for event download */
  T_SAT_CMD_DET cmdDet;                 /* command details */
  LONG          dur;                    /* redial duration */
  UBYTE        *stkCmd;                 /* points to STK command */
  USHORT        stkCmdLen;              /* length of STK command */
#ifdef TI_PS_FF_AT_P_CMD_CUST
  UBYTE         *cust1StkCmd;    /* pointer to dynamic memory storing the Stk Cmd for Cust1 Specific implementation */
  USHORT       cust1StkCmdLen; /* length of the the Stk Cmd in cust1StkCmd */
  UBYTE          cust1SimRefreshRespRqd; /* A Refresh Command has been sent to the MMI and a Response is Required */
#endif /* TI_PS_FF_AT_P_CMD_CUST */
  USHORT        fu_rsc;                 /* result code of FILE UPDATE */
  BUF_cmd_prms  stkCmdPrm;              /* proactive SIM command parameter */
  T_SIM_TOOLKIT_CNF *stkCnfPrim;        /* pending result primitive */
  T_SIM_FILE_UPDATE_IND *fu_ind;        /* actual FILE UPDATE primitive */
  T_SAT_FU_FUNC fu_func_notif;          /* registered FILE UPDATE NOTIFY handler */
  T_SAT_EVENT   event;                  /* flags events to be monitored for SAT */
//  CHAR          ToBeSentDTMF[MAX_DIAL_LEN]; /* buffers DTMF string to be sent */
//  BYTE          DTMFidx;                /* index of Send DTMF string */
  SHORT         SentUSSDid;             /* ssId of USSD sent */
  BOOL          USSDterm;               /* flags if user is aiming at terminating ussd */
  USHORT        stkError;               /* error code from SAT application */
#ifdef FF_SAT_E  
  UBYTE         opchStat;               /* open channel status */
  UBYTE         opchType;               /* open channel type */
  void         *opchPrm;                /* points to open channel parameters */
  UBYTE         opchPrmMdf;             /* flags bearer parameter modification */
  UBYTE         opchAcptSrc;            /* open channel source identifier */
  UBYTE         opchCCMdfy;             /* flags open channel call control modification */
  UBYTE         gprsNtwCs;              /* gprs network cause */
  U16             buffer_size; 
  T_SAT_CHN_NTRY chnTb;                 /* channel table, must be an array if more than one channel will be supported */
 #endif /* FF_SAT_E */  
  SHORT         sId_pwd_requested;      /* needed when sat starts a SS transaction which requires a password */
  T_SAT_FU_FUNC fu_func[MAX_FU_OPS];    /* registered FILE UPDATE handlers */
  BOOL          Cbch_EvtDnl;            /* Flag used for SAT CBCH and Event Download Indication */
  BOOL          ownSAT;                 /* Flag to decide the owner in SIM_TOOLKIT_CNF */
  BUF_cap_cnf_parms stk_ccp;            /* Capability parameters */
} T_SAT_SHRD_PRM;

typedef struct
{
  UBYTE     addLen;
  UBYTE     *add;
  UBYTE     add_content; /* when addLen = 1 */
  UBYTE     *resCC;
  T_text    *text;
  UBYTE     *at_resp;
  USHORT    at_resp_count;
#ifdef FF_SAT_E  
  UBYTE     chnStat;
  UBYTE     bearDesc;
  UBYTE     bufSize;
#endif /* FF_SAT_E */  
  UBYTE     dtt_buf[TIME_STAMP_LENGTH];
  UBYTE     lang[CLAN_CODE_LEN];
} T_ACI_SAT_TERM_RESP;

#ifdef FF_SAT_E  
typedef struct
{
  UBYTE            def_bear_prm;  /* true or false for default parameters */
  T_csd_bear_prm   csd_bear_prm;  /* if no def. parms. use CSD parms.*/
  UBYTE            v_dur;         /* duration 1 avail.*/
  T_dur            dur;           /* duration 1 */
  UBYTE            v_dur2;        /* duration 2 avail.*/
  T_dur2           dur2;          /* duration 2 */
  UBYTE            v_other_addr;  /* other addr. avail.*/
  T_other_addr     other_addr;    /* other addr.*/
  UBYTE            v_log;         /* login name avail.*/
  T_text           log;           /* login name */
  UBYTE            v_pwd;         /* password avail.*/
  T_text2          pwd;           /* password */
  UBYTE            v_itl;         /* if transp level avail.*/
  T_if_transp_lev  itl;           /* if transp level */
  UBYTE            v_dda;         /* data dest. addr. avail.*/
  T_data_dest_addr dda;           /* data dest. addr.*/
} T_SAT_CSD_PRM;  

typedef struct
{
  UBYTE            def_bear_prm;   /* true or false for default parameters */
  T_gprs_bear_prm  gprs_bear_prm;  /* if no def. parms. use GPRS parms.*/
  UBYTE            v_apn;          /* apn avail.*/
  UBYTE            c_apn;          /* apn length */
  UBYTE      apn[MAX_SAT_APN_LEN]; /* apn */
  UBYTE            v_other_addr;   /* other addr. avail.*/
  T_other_addr     other_addr;     /* other addr.*/
  UBYTE            v_itl;          /* if transp level avail.*/
  T_if_transp_lev  itl;            /* if transp level */
  UBYTE            v_dda;          /* data dest. addr. avail.*/
  T_data_dest_addr dda;            /* data dest. addr.*/
} T_SAT_GPRS_PRM;
#endif /* FF_SAT_E */  


/*==== PROTOTYPES =================================================*/

EXTERN BOOL  psaSAT_ChkEventList    ( UBYTE eventNr );

EXTERN SHORT psaSAT_STKBuildCmd     ( T_stk_cmd *stk_cmd );
EXTERN SHORT psaSAT_STKResponse     ( void );
EXTERN SHORT psaSAT_STKEnvelope     ( const T_stk_cmd *stk_cmd );
EXTERN void psaSAT_SendRefreshUserRes( SHORT len, UBYTE *satCmd );
EXTERN void  psaSAT_Init            ( void );
EXTERN void  psaSAT_BuildEnvCC      ( SHORT        cId,
                                      T_CLPTY_PRM *ss_cldPty,
                                      T_sat_ussd  *ussd, 
                                      T_MNCC_bcconf *ccp1, 
                                      T_MNCC_bcconf2 *ccp2);
EXTERN void  psaSAT_BuildEnvCB      ( UBYTE *cbMsg, SHORT cbLen );
EXTERN void  psaSAT_BuildEnvMoSmCntr( T_rp_addr sc_addr,
                                      T_tp_da   dest_addr );
EXTERN BOOL  psaSAT_BuildEnvEventDwn( UBYTE event, 
                                      SHORT callId,
                                      T_CC_INITIATER actionSrc);

EXTERN BOOL  psaSAT_SendTrmResp     ( UBYTE rspId,
                                      T_ACI_SAT_TERM_RESP *data_for_term_resp);
EXTERN void  psaSAT_InitTrmResp     ( T_ACI_SAT_TERM_RESP *init_resp );

EXTERN BOOL  psaSAT_dasmMECmd       ( BUF_cmd_prms *cmdPrm );
EXTERN void  psaSAT_SSResComp       ( T_res_comp* resCmp );
EXTERN void  psaSAT_SSErrComp       ( T_fac_inf * errCmp,
                                      BOOL      is_fac_ussd );

EXTERN void psaSAT_SSRejComp  ( UBYTE cRejectInfo );
EXTERN T_ACI_RETURN psaSAT_ss_end_ind ( SHORT sId,
                                        T_COMPONENT    *comp, 
                                        T_MNSS_END_IND *mnss_end_ind,
                                        BOOL           is_fac_ussd );

EXTERN UBYTE psaSAT_ccdErrChk       ( void );
EXTERN void  psaSAT_DumpCmd         ( T_stk_cmd * cmd );
EXTERN BOOL  psaSAT_FURegister      ( T_SAT_FU_FUNC );
EXTERN void  psaSAT_FUConfirm       ( int, USHORT );
EXTERN BOOL  psaSAT_FUNotifyRegister ( T_SAT_FU_FUNC );

#ifdef FF_SAT_E 
EXTERN SHORT psaSAT_ctbFindActCall  ( void );
EXTERN SHORT psaSAT_gprsFindFreeCntxt( void );
#endif /* FF_SAT_E */
/*==== EXPORT =====================================================*/

#ifdef PSA_SATF_C

GLOBAL T_SAT_SHRD_PRM satShrdPrm;
GLOBAL UBYTE cmpFlg = FALSE;
/*-------------------------------------------------------------------
The resulting Terminal Profile is created with the following formula:
resultingPrfl = (actualMMIPrfl & satMaskMMIPrfl) | satDefPrfl
-------------------------------------------------------------------*/
/* SAT Features supported mainly by ACI (no MMI support needed) */
const GLOBAL UBYTE satDefPrfl[MAX_STK_PRF] =
                   {
                    SAT_TP1_PRF_DNL |    /* Profile Download */
                    SAT_TP1_CB_DNL  |    /* Class 2: CBCH Data Download */
                    SAT_TP1_CC_USSD |    /* Class 3: USSD string data object
                                                     supported in call control */
                    SAT_TP1_CC_ON_REDIAL,/* Envelope Call Control always sent to 
                                            the SIM during automatic redial mode */
                    SAT_TP2_CMD_RES |    /* Command Result */
                    SAT_TP2_CC      |    /* Class 2: Call Control by SIM */
                    SAT_TP2_CC_CELL_ID | /* Class 2: Cell Identity incl. in CC */
                    SAT_TP2_MOSMC,       /* Class 3: MO Short Message Control */

                    SAT_TP3_REFRESH,     /* Class 2: REFRESH */

                    SAT_TP4_SEND_SMS,    /* Class 2: SEND SM */

                    SAT_TP5_EVENT_LIST | /* Class 3: SET UP EVENT LIST */
                    SAT_TP5_MT_CALL    | /* Class 3: MT Call */
                    SAT_TP5_CALL_CONN  | /* Class 3: Call connected */
                    SAT_TP5_CALL_DISC  | /* Class 3: Call disconnected */
                    SAT_TP5_LOC_STATUS,  /* Class 3: Location status */

                    0x00,
                    0x00,

                    SAT_TP8_PLI_DTT |    /* Class 3: PLI (Date, time, timezone) */
                    SAT_TP8_AT_CMD |     /* Class b: Run AT command */
                    SAT_TP8_CCP2_CC,     /* Class 3: 2nd CCP in SETUP CALL */

                    SAT_TP9_DTMF_CMD|    /* Class 3: SEND DTMF */
                    SAT_TP9_PLI_LANG,    /* Provide Local Information (Language) */

                    0x00,
                    0x00,
#if defined (FF_SAT_E)
                    SAT_TP12_OPEN_CHANNEL |     /* Class e: OPEN CHANNEL */
                    SAT_TP12_CLOSE_CHANNEL |    /* Class e: CLOSE CHANNEL */
                    SAT_TP12_GET_CHANNEL_STAT,  /* Class e: GET CHANNEL STATUS */
#if defined (FAX_AND_DATA)
                    SAT_TP13_CSD_SUPP_BY_ME |   /* Class e: CSD supported */
#endif /* FAX_AND_DATA */
#if defined (GPRS)
                    SAT_TP13_GPRS_SUPP_BY_ME |  /* Class e: GPRS supported */
#endif /* GPRS */
                    (SAT_TP13_NR_OF_CHAN_SUPP & (1<<5)),  /* Class e: number of channels supported */
#else 
                    0x00,
                    0x00,
#endif /* (FAX_AND_DATA OR GPRS) AND FF_SAT_E*/
                    0x00,
                    0x00,
                    0x00,
#if defined (FF_SAT_E)
                    SAT_TP17_BEARER_IND_SUPP_UDP,   /* Class e: UDP supported */
#else 
                    0x00,
#endif /* FF_SAT_E */
                    0x00,
                    0x00,
                    0x00
                    };

/* SAT Features supported together with MMI */
const GLOBAL UBYTE satMaskMMIPrfl[MAX_STK_PRF] =
                   {
                    SAT_TP1_PRF_DNL |    /* Profile Download */
                    SAT_TP1_MENU_SEL,    /* Class 2: Menu Selection */
                    SAT_TP2_CMD_RES |    /* Command Result */
                    SAT_TP2_CC      |    /* Class 2: Call Control by SIM */
                    SAT_TP2_MOSMC   |    /* Class 3: MO Short Message Control */
                    SAT_TP2_ALPHA_ID   | /* Class 2: Alpha Id Handling 9.1.3  */
                    SAT_TP2_UCS2_ENTRY | /* Class 2: UCS2 Entry supported     */
                    SAT_TP2_UCS2_DSPL  | /* Class 2: UCS2 Display supported   */
                    SAT_TP2_DSPL_EXT,    /* Class 3: Display of extended text */

                    SAT_TP3_DSPL_TXT   | /* Class 2: DISPLAY TEXT */
                    SAT_TP3_GET_INKEY  | /* Class 2: GET INKEY */
                    SAT_TP3_GET_INPUT  | /* Class 2: GET INPUT */
                    SAT_TP3_PLAY_TONE  | /* Class 2: PLAY TONE */
                    SAT_TP3_REFRESH,     /* Class 2: REFRESH */

                    SAT_TP4_SEL_ITEM   | /* Class 2: SELECT ITEM */
                    SAT_TP4_SEND_SS    | /* Class 2: SEND SS */
                    SAT_TP4_SEND_USSD  | /* Class 3: SEND USSD */
                    SAT_TP4_SETUP_CALL | /* Class 2: SETUP CALL */
                    SAT_TP4_SETUP_MENU,  /* Class 2: SETUP MENU */

                    SAT_TP5_EVENT_LIST | /* Class 3: SETUP EVENT LIST */
                    SAT_TP5_USER_ACT   | /* Class 3: User activity */
                    SAT_TP5_SCR_AVAIL,   /* Class 3: Idle Screen available */

                     SAT_TP6_BROWS_TERM|SAT_TP6_LANG_SEL,
                    0x00,

                    SAT_TP8_BIN_GET_INKEY | /* Class 3: Binary Choice in GET INKEY */
                    SAT_TP8_IDLE_TXT      | /* Class 3: SETUP IDLE MODE TEXT */
                    SAT_TP8_AI2_SETUP_CALL, /* Class 3: 2nd alpha identifier in SETUP CALL */
#if defined (FF_WAP)
                    SAT_TP9_SUST_DSPL_TXT |  /* Class 3: Sustained DISPLAY TEXT */
                    SAT_TP9_LAUNCH_BROWSER|
                    SAT_TP9_PLI_LANG |
                    SAT_TP9_LANG_NOTIFY,  /* Class 3: LAUNCH BROWSER */

#else
                    SAT_TP9_SUST_DSPL_TXT|
                    SAT_TP9_PLI_LANG |
                    SAT_TP9_LANG_NOTIFY,   /* Class 3: Sustained DISPLAY TEXT */ 
#endif                    
                    SAT_TP10_SFTKEY_SEL_ITEM |  /* soft key support SELECT ITEM */
                    SAT_TP10_SFTKEY_SETUP_MENU, /* soft key support SET UP MENU */

                    SAT_TP11_MAX_NR_SFTKEY,     /* number of soft keys available */

                    0x00,
                    0x00,

                    SAT_TP14_NR_OF_CHAR_DSPL_DWN| /* number of characters supported down ME display */
                    SAT_TP14_SCRN_SIZE_PARAM,     /* screen sizing parameter supported */

                    SAT_TP15_NR_OF_CHAR_DSPL_ACRS|/* number of characters supported across ME display */
                    SAT_TP15_VAR_SIZE_FONT,       /* variable size fonts supported */

                    SAT_TP16_DSPL_RESIZE |        /* display can be resized */
                    SAT_TP16_TEXT_WRAP |          /* text wrapping supported */
                    SAT_TP16_TEXT_SCROLL |        /* text scrolling supported */
                    SAT_TP16_WIDTH_RDCT_MENU,     /* width reduction in a menu */

                    0x00,
                    0x00,
                    0x00,
                    0x00
                   };

#ifdef TI_PS_FF_AT_P_CMD_CUST
/* SAT Features supported together with Cust1 MMI */
const GLOBAL UBYTE satMaskCust1Prfl[MAX_STK_PRF] =
                   {
                    SAT_TP1_PRF_DNL |    /* Profile Download */
                    SAT_TP1_MENU_SEL,    /* Class 2: Menu Selection */

                    SAT_TP2_CMD_RES |    /* Command Result */
                    SAT_TP2_CC      |    /* Class 2: Call Control by SIM */
                    SAT_TP2_MOSMC   |    /* Class 3: MO Short Message Control */
                    SAT_TP2_ALPHA_ID   | /* Class 2: Alpha Id Handling 9.1.3  */
                    SAT_TP2_UCS2_ENTRY | /* Class 2: UCS2 Entry supported     */
                    SAT_TP2_UCS2_DSPL  | /* Class 2: UCS2 Display supported   */
                    SAT_TP2_DSPL_EXT,    /* Class 3: Display of extended text */

                    SAT_TP3_DSPL_TXT   | /* Class 2: DISPLAY TEXT */
                    SAT_TP3_GET_INKEY  | /* Class 2: GET INKEY */
                    SAT_TP3_GET_INPUT  | /* Class 2: GET INPUT */
                    SAT_TP3_PLAY_TONE  | /* Class 2: PLAY TONE */
                    SAT_TP3_REFRESH,     /* Class 2: REFRESH */

                    SAT_TP4_SEL_ITEM   | /* Class 2: SELECT ITEM */
                    SAT_TP4_SEND_SS    | /* Class 2: SEND SS */
                    SAT_TP4_SEND_USSD  | /* Class 3: SEND USSD */
                    SAT_TP4_SETUP_CALL | /* Class 2: SETUP CALL */
                    SAT_TP4_SETUP_MENU,  /* Class 2: SETUP MENU */

                    SAT_TP5_EVENT_LIST | /* Class 3: SETUP EVENT LIST */
                    SAT_TP5_USER_ACT   | /* Class 3: User activity */
                    SAT_TP5_SCR_AVAIL,   /* Class 3: Idle Screen available */

                    SAT_TP6_LANG_SEL,
                    0x00,

                    SAT_TP8_BIN_GET_INKEY | /* Class 3: Binary Choice in GET INKEY */
                    SAT_TP8_IDLE_TXT      | /* Class 3: SETUP IDLE MODE TEXT */
                    SAT_TP8_AI2_SETUP_CALL, /* Class 3: 2nd alpha identifier in SETUP CALL */
#if defined (FF_WAP)
                    SAT_TP9_SUST_DSPL_TXT |  /* Class 3: Sustained DISPLAY TEXT */
                    SAT_TP9_LAUNCH_BROWSER,  /* Class 3: LAUNCH BROWSER */
#else
                    SAT_TP9_SUST_DSPL_TXT,   /* Class 3: Sustained DISPLAY TEXT */ 
#endif                    
                    SAT_TP10_SFTKEY_SEL_ITEM |  /* soft key support SELECT ITEM */
                    SAT_TP10_SFTKEY_SETUP_MENU, /* soft key support SET UP MENU */

                    SAT_TP11_MAX_NR_SFTKEY,     /* number of soft keys available */

                    0x00,
                    0x00,

                    SAT_TP14_NR_OF_CHAR_DSPL_DWN| /* number of characters supported down ME display */
                    SAT_TP14_SCRN_SIZE_PARAM,     /* screen sizing parameter supported */

                    SAT_TP15_NR_OF_CHAR_DSPL_ACRS|/* number of characters supported across ME display */
                    SAT_TP15_VAR_SIZE_FONT,       /* variable size fonts supported */

                    SAT_TP16_DSPL_RESIZE |        /* display can be resized */
                    SAT_TP16_TEXT_WRAP |          /* text wrapping supported */
                    SAT_TP16_TEXT_SCROLL |        /* text scrolling supported */
                    SAT_TP16_WIDTH_RDCT_MENU,     /* width reduction in a menu */

                    0x00,
                    0x00,
                    0x00,
                    0x00
                   };
#endif /* TI_PS_FF_AT_P_CMD_CUST */
#else

EXTERN T_SAT_SHRD_PRM satShrdPrm;
EXTERN UBYTE cmpFlg;
EXTERN UBYTE satDefPrfl[MAX_STK_PRF];
EXTERN UBYTE satMaskMMIPrfl[MAX_STK_PRF];
#ifdef TI_PS_FF_AT_P_CMD_CUST
EXTERN UBYTE satMaskCust1Prfl[MAX_STK_PRF];
#endif /* TI_PS_FF_AT_P_CMD_CUST */
#endif /* PSA_SATF_C */

#endif /* PSA_SAT_H */

/*==== EOF =======================================================*/