line source
/*
+--------------------------------------------------------------------+
| PROJECT: MMI-Framework (8417) $Workfile:: mfw_sat.h $|
| $Author:: Xsp $ CONDAT GmbH $Revision:: 5 $|
| CREATED: 07.05.99 $Modtime:: 29/02/00 18:19 $|
| STATE : code |
+--------------------------------------------------------------------+
MODULE : MFW_SAT
PURPOSE : SIM Application Toolkit Handling
EXPORT :
TO DO :
$History:: mfw_sat.h $
Shashi Shekar B.S., a0876501, 16 Mar, 2006, OMAPS00061462
Icon support for SetupMenu & Select item.
Jan 16, 2006 DR: OMAPS00061460 - Shashi Shekar B.S.
Description: SAT Icon support
Solution : SAT icon support added.
*
* Jun 16, 2005 REF: CRR 31543 x0021334
* Issue: SATK: cannot get TR for send ussd command
* Solution: When the user presses "Hang up" key when
* the SAT USSD session is in progress,a call is
* made to function 'sAT_end_ussd()' to end the session.
*
***************** Version 5 *****************
* User: Xsp Date: 3/03/00 Time: 12:51
* Updated in $/GSM/Condat/MS/SRC/MFW
* Changfed type of xxxWindow fields in MfwSat struct...
*
* ***************** Version 4 *****************
* User: Xsp Date: 14/02/00 Time: 18:11
* Updated in $/GSM/Condat/MS/SRC/MFW
* Solved compiler errors...
*
* ***************** Version 3 *****************
* User: Xsp Date: 14/02/00 Time: 14:43
* Updated in $/GSM/Condat/MS/SRC/MFW
* Added window pointers to sat structure...
*
* ***************** Version 2 *****************
* User: Fk Date: 11.02.00 Time: 15:40
* Updated in $/GSM/Condat/MS/SRC/MFW
* New event 'SAT Session End' derived from empty command
*
* ***************** Version 1 *****************
* User: Es Date: 6.07.99 Time: 12:42
* Created in $/GSM/DEV/MS/SRC/MFW
* SIM application toolkit handler
* Initial
*/
#ifndef _DEF_MFW_SAT_H_
#define _DEF_MFW_SAT_H_
#include "mfw_win.h"
#include "mfw_phb.h" /* top get aci_cmh.h */
#include "mfw_ss.h" // Jun 16, 2005 REF: CRR 31543 x0021334
// Shashi Shekar B.S., a0876501, Jan 16, 2006, DR: OMAPS00061460
#ifdef FF_MMI_SAT_ICON
#include "mfw_sima.h"
#endif
#define MFW_MAX_NT_SIZE 6 /* save changed files notification */
#define MFW_MAX_PFP_ELEM 15
// Shashi Shekar B.S., a0876501, Jan 16, 2006, DR: OMAPS00061460
#ifdef FF_MMI_SAT_ICON
typedef struct
{ /* SAT ICON DATA */
U8 width; /* SAT Icon width */
U8 height; /* SAT Icon height */
char* dst; /* Icon data */
} SatIconInfo;
#endif
typedef struct
{ /* SAT ICON IDENTIFIER */
U8 qual; /* icon qualifier */
U8 id; /* icon identifier */
U8 pad1;
U8 pad2;
} SatIconId;
typedef struct
{ /* SAT TEXT STRING */
SatIconId icon; /* icon identifier */
U16 text; /* offset to text string */
U8 responseFlag; /* immediate response */
U8 code; /* data coding scheme */
U8 len; /* length of text */
U8 pad1;
U8 pad2;
U8 pad3;
// Shashi Shekar B.S., a0876501, Jan 16, 2006, DR: OMAPS00061460
#ifdef FF_MMI_SAT_ICON
SatIconInfo iconInfo;
#endif
} SatTxt;
typedef struct
{ /* SAT ADDRESS */
U16 number; /* offset to dial number */
U8 ton; /* type of number, npi */
U8 len; /* length of dial number */
} SatAddress;
typedef struct
{ /* SAT MISCELLEANEOUS DATA */
U16 data; /* offset to data */
U8 len; /* length of data */
U8 pad;
} SatData;
typedef struct
{ /* SAT LIST DATA */
U8 len; /* number of bytes in list */
U8 elem [1]; /* list elements */
} SatList;
typedef struct
{ /* SAT SMS TPDU */
U16 data; /* offset to pdu data */
U8 len; /* pdu length */
U8 pad;
} SatSmsPdu;
typedef struct
{ /* SAT MENU ITEM */
U16 text; /* offset to text data */
U8 id; /* item identifier */
U8 action; /* next action id */
U8 icon; /* items icon */
U8 len; /* length of text */
U8 pad1;
U8 pad2;
// Shashi Shekar B.S., a0876501, Feb 4, 2006, DR: OMAPS00061462
#ifdef FF_MMI_SAT_ICON
SatIconInfo iconInfo;
#endif
} SatItem;
typedef struct
{ /* SAT INPUT USER STRING */
SatTxt prompt; /* prompt string */
SatTxt defRsp; /* default response */
U8 rspMin; /* minimal response length */
U8 rspMax; /* maximal response length */
U8 pad1;
U8 pad2;
} SatInput;
typedef struct
{ /* SAT PLAY TONE */
SatTxt alpha; /* tones alpha tag */
U8 tone; /* code for tone */
U8 durUnit; /* code for duration unit */
U8 durValue; /* duration value */
U8 pad;
} SatTone;
typedef struct
{ /* SAT SETUP MENU */
SatTxt header; /* menu header */
U8 itemIconQual; /* item icon qualifier */
U8 nItems; /* number of menu items */
U8 pad1;
U8 pad2;
SatItem items [1]; /* menu items (min. one) */
} SatMenu;
typedef struct
{ /* SAT SEND SMS */
SatTxt info; /* user information */
SatAddress addr; /* address */
SatSmsPdu sms; /* SMS TPDU */
} SatSMS;
typedef struct
{ /* SAT SEND SS */
SatTxt info; /* user information */
SatAddress ss; /* SS string */
} SatSS;
typedef struct
{ /* SAT SETUP CALL */
SatTxt info; /* user information */
SatTxt info2; /* setup information */
SatAddress addr; /* address */
SatData bc; /* bearer capabilities */
SatData sa; /* subaddress */
U8 durUnit; /* redial time unit */
U8 durValue; /* redial max time */
U8 pad1;
U8 pad2;
} SatCall;
typedef struct
{ /* SAT EXEC AT/DTMF */
SatTxt info; /* user information */
SatData cmd; /* AT cmd / DTMF sequence */
} SatExec;
typedef struct
{ /* CALL CONTROL RESULT */
SatAddress addr; /* address */
SatAddress addr2; /* address on SMS control */
SatData bc; /* bearer capabilities */
SatData bc2; /* bearer capabilities 2 */
SatData sa; /* subaddress */
SatTxt info; /* alpha information */
S32 redialTime; /* maximal redial time */
S16 callId; /* id of new call */
U8 bcRepInd; /* BC repeat indicator */
U8 result; /* call control result */
} SatCcRes;
typedef struct
{ /* SAT REFRESH FILES */
U16* files; /* Pointer to the files list */
U16 files_nr; /* length of the files list */
U8 status; /*Status of the refresh procedure */
} SatRefreshFiles; /* -1 -> to be done or */
/* SIM_FU_ERROR,SIM_FU_SUCCESS,SIM_FU_SUCC_ADD */
#if defined(FF_WAP)
typedef struct
{
U8 prov_file_id_len; /*length of provisional file ids*/
U8* prov_file_id; /*provisiona file ids */
} ProvFileRef;
typedef struct
{ /* SAT LAUNCH BROWSER COMMAND */
U8 identity; /* Browser identity as in GSM 11.14 12.47 */
U8* url; /* Universal Res Loc as in GSM 11.14 12.48*/
U8 n_bearer; /* Number of elements in the bearer list */
U8* bearer; /* Bearer list as in GSM 11.14 12.49 (Null terminated)*/
U8 n_prov_file_ref; /* Number of elements in the prov. file ref. table. */
ProvFileRef prov_file_ref[MFW_MAX_PFP_ELEM]; /* Prov. file ref. list*/
SatTxt text_string; /*Text string as in GSM 11.14 12.15 */
U8 alpha_len; /*Alpha identifier length as in GSM 11.14 12.2 */
U8* alpha_id; /*Alpha identifier as in GSM 11.14 12.2 */
} SatLaunchBrowser;
#endif /*FF_WAP*/
/* SPR#1786 - DS - SAT Class E */
typedef enum
{
MFW_SAT_EST_NONE = 0, /* No establishment type given */
MFW_SAT_EST_IMMEDIATE, /* Immediate channel establishment */
MFW_SAT_EST_ONDEMAND /* On-demand channel establishment */
} T_MFW_SAT_EST;
typedef enum
{
MFW_SAT_CHN_NONE = 0, /* No channel type given */
MFW_SAT_CHN_VOICE, /* Channel type Voice */
MFW_SAT_CHN_CSD, /* Channel type CSD */
MFW_SAT_CHN_GPRS /* Channel type GPRS */
} T_MFW_SAT_CHN;
typedef struct
{
T_MFW_SAT_CHN channel_type;
T_MFW_SAT_EST establishment_type;
SatTxt alpha_id; /* Alpha identifier as in GSM 11.14 section 12.22 */
U8 dur1Unit; /* redial time unit duration 1 */
U8 dur1Value; /* redial max time duration 1 */
U8 dur2Unit; /* redial time unit duration 2 */
U8 dur2Value; /* redial max time duration 2 */
} SatOpenChannel;
typedef struct
{
SatTxt alpha_id; /* Alpha identifier as in GSM 11.14 section 12.22 */
} SatCloseChannel;
typedef struct
{
SatTxt alpha_id; /* Alpha identifier as in GSM 11.14 section 12.22 */
} SatSendData;
typedef struct
{
SatTxt alpha_id; /* Alpha identifier as in GSM 11.14 section 12.22 */
} SatReceiveData;
typedef struct SatCmdTag /* SAT COMMAND BUFFER */
{
U8 number; /* command number */
U8 type; /* command type */
U8 qual; /* command qualifier */
U8 source; /* source device */
U8 dest; /* destination device */
U8 pad1;
U8 pad2;
U8 pad3;
union /* command data */
{
SatTxt text; /* display text */
SatInput inp; /* input user string */
SatTone tone; /* play tone */
SatMenu menu; /* setup menu */
SatSMS sms; /* send SMS */
SatSS ss; /* send SS */
SatCall call; /* setup call */
SatList events; /* setup event list */
SatExec cmd; /* execute AT/DTMF command */
SatCcRes ccres; /* call control information */
SatRefreshFiles refFiles; /* files to be refreshed */
SatData files; /* old code for REFRESH*/
#if defined(FF_WAP)
SatLaunchBrowser browser; /* launch browser command */
#endif
/* SPR#1786 - DS - Added the following SAT Class E commands */
SatOpenChannel open; /* open channel command */
SatCloseChannel close; /* close channel command */
SatSendData send; /* send data command */
SatReceiveData receive; /* receive data command */
/* !!! Does fill now need to be changed? !!! */
U8 fill [448]; /* maximal union size */
} c;
} SatCmd;
typedef struct MfwSatTag /* SAT CONTROL BLOCK */
{
MfwEvt map; /* selection of events */
MfwEvt evt; /* current event */
MfwCb handler; /* event handler */
SatCmd *cmd; /* event related data */
MfwHnd parentWindow; /* mother of all SAT windows */
MfwHnd currentWindow; /* SAT window in use */
} MfwSat;
/* SAT COMMAND TYPES */
#define SatCmdRefresh 0x01 /* refresh command */
#define SatCmdMoreTime 0x02 /* more time command */
#define SatCmdPollTime 0x03 /* poll interval command */
#define SatCmdPollOff 0x04 /* polling off command */
#define SatCmdEvtList 0x05 /* set event list command */
#define SatCmdCall 0x10 /* set up call command */
#define SatCmdSndSS 0x11 /* send SS command */
#define SatCmdSndUSSD 0x12 /* send USSD command */
#define SatCmdSndSMS 0x13 /* send SMS command */
#define SatCmdSndDTMF 0x14 /* send DTMF command */
#define SatCmdLaunchBrowser 0x15 /*Launch Browser */
#define SatCmdPlayTone 0x20 /* play tone command */
#define SatCmdDispText 0x21 /* display text command */
#define SatCmdGetKey 0x22 /* get inkey command */
#define SatCmdGetString 0x23 /* get input command */
#define SatCmdSelItem 0x24 /* select item command */
#define SatCmdSetMenu 0x25 /* set up menu command */
#define SatCmdLocalInf 0x26 /* provide local info */
#define SatCmdIdleText 0x28 /* setup idle mode text */
#define SatCmdExecAT 0x34 /* run AT command */
/* SPR#1786 - DS - Command types for SAT Class E */
#define SatCmdOpenChannel 0x40 /* Open Channel command */
#define SatCmdCloseChannel 0x41 /* Close Channel command */
#define SatCmdReceiveData 0x42 /* Receive Data command SPR#2508 - DS - Swapped Send and Receive values */
#define SatCmdSendData 0x43 /* Send Data command */
#define SatCmdEOS 0x81 /* end of proactive session */
/* SAT EVENT FLAGS */
// Shashi Shekar B.S., a0876501, Jan 16, 2006, DR: OMAPS00061460
#ifdef FF_MMI_SAT_ICON
#define MfwSatCmdNone 0x00000000 /* SAT No command */
#endif
#define MfwSatRefresh 0x00000001 /* refresh SIM fields */
#define MfwSatTextOut 0x00000002 /* display string */
#define MfwSatGetKey 0x00000004 /* get user keystroke */
#define MfwSatGetString 0x00000008 /* get user input */
#define MfwSatPlayTone 0x00000010 /* play audio tone */
#define MfwSatSetupMenu 0x00000020 /* setup toolkit menu */
#define MfwSatSelectItem 0x00000040 /* select menu item */
#define MfwSatSendSMS 0x00000080 /* send short message */
#define MfwSatSendSS 0x00000100 /* send service command */
#define MfwSatCall 0x00000200 /* setup a call */
#define MfwSatSendUSSD 0x00000400 /* send USSD */
#define MfwSatSetEvents 0x00000800 /* setup event list */
#define MfwSatCcRes 0x00001000 /* call control result */
#define MfwSatCcAlert 0x00002000 /* call control alerting */
#define MfwSatIdleText 0x00004000 /* setup idle mode text */
#define MfwSatExecAT 0x00008000 /* run AT command */
#define MfwSatSendDTMF 0x00010000 /* send DTMF tones */
#define MfwSatDataRefreshed 0x00020000 /* Sent when data has already been refreshed */
#if defined(FF_WAP)
#define MfwSatLaunchBrowser 0x00040000 /* Launch Browser command */
#endif
/* SPR#1786 - DS - SAT Class E events */
#define MfwSatOpenChannel 0x00080000 /* Open Channel command */
#define MfwSatCloseChannel 0x00100000 /* Close Channel command */
#define MfwSatSendData 0x00200000 /* Send Data command */
#define MfwSatReceiveData 0x00400000 /* Receive Data command */
#define MfwSatErrBusy 0x00800000 /* SPR#2321 - DS - SAT Busy Error */
#define MfwSatSessionEnd 0x80000000 /* session terminated */
/* SAT DEVICE IDENTITIES */
#define SatDevKeypad 0x01 /* keypad device */
#define SatDevDisplay 0x02 /* display device */
#define SatDevSpeaker 0x03 /* earpiece device */
#define SatDevSIM 0x81 /* SIM device */
#define SatDevME 0x82 /* mobile equipment device */
#define SatDevNet 0x83 /* network device */
/* SPR#2321 - DS - SAT Class E Device Identities */
#define SatDevCh1 0x21 /* Channel one */
#define SatDevCh2 0x22 /* Channel two */
#define SatDevCh3 0x23 /* Channel three */
#define SatDevCh4 0x24 /* Channel four */
#define SatDevCh5 0x25 /* Channel five */
#define SatDevCh6 0x26 /* Channel six */
#define SatDevCh7 0x27 /* Channel seven */
/* SAT EVENT TYPES FOR MMI */
#define SatEvtUserAction 0x04 /* user activity */
#define SatEvtIdleScreen 0x05 /* idle screen available */
#if defined(FF_WAP)
#define SatEvtBrowserTermination 0x08 /* Sat Browser termination */
#endif
/* SAT ERROR CODES */
#define SatResSuccess 0x00 /* performed successsfully */
#define SatResPartial 0x01 /* ok,partial comprehension */
#define SatResMissing 0x02 /* ok,missing information */
#define SatResAdditional 0x03 /* ok,additional EFs read */
#define SatResNoIcon 0x04 /* ok,no icon displayed */
#define SatResModified 0x05 /* ok,modified by SIM */
#define SatResUserAbort 0x10 /* terminated by user */
#define SatResUserBack 0x11 /* backward move by user */
#define SatResUserNoResp 0x12 /* no response from user */
#define SatResUserHelp 0x13 /* help request from user */
#define SatResUserAbortUSSD 0x14 /* USSD terminated by user */
#define SatResBusyME 0x20 /* ME temporary failure */
#define SatResBusyNet 0x21 /* Net temporary failure */
#define SatResReject 0x22 /* user reject call setup */
#define SatResCleared 0x23 /* call cleared (user/net) */
#define SatResTimerConflict 0x24 /* conflict on timer state */
#define SatResCCTemp 0x25 /* CC by SIM: temp failure */
#define SatResImpossible 0x30 /* ME cannot do it */
#define SatResUnknownType 0x31 /* type not understood */
#define SatResUnknownData 0x32 /* data not understood */
#define SatResUnknownNumber 0x33 /* number not understood */
#define SatResSSerror 0x34 /* SS return error */
#define SatResSMSerror 0x35 /* SMS-RP error */
#define SatResNoValues 0x36 /* missing required values */
#define SatResUSSDerror 0x37 /* USSD return error */
#define SatResMultiCard 0x38 /* Multiple card error */
#define SatResCCPermanent 0x39 /* CC by SIM: perm. failure */
/* SAT ADDITIONAL INFO */
#define SatResAiNoCause 0x00 /* no specific cause */
#define SatResAiBusyScreen 0x01 /* screen is busy */
#define SatResAiBusyCall 0x02 /* ME busy on call */
#define SatResAiBusySS 0x03 /* ME busy on SS */
#define SatResAiNoService 0x04 /* no service available */
#define SatResAiAccess 0x05 /* access control class bar */
#define SatResAiNoRadio 0x06 /* no radio resource */
#define SatResAiNoSpeech 0x07 /* not in speech call */
#define SatResAiBusyUSSD 0x08 /* ME busy on USSD */
#define SatResAiBusyDTMF 0x09 /* ME busy on send DTMF */
/* SAT MULTICARD INFO */
#define SatResAiNoReader 0x01 /* no card reader */
#define SatResAiNoCard 0x02 /* no card */
#define SatResAiBusyReader 0x03 /* card reader busy */
#define SatResAiCardOff 0x04 /* no card power */
#define SatResAiPDUError 0x05 /* PDU format error */
#define SatResAiMuteCard 0x06 /* mute card */
#define SatResAiXmitError 0x07 /* transmission error */
#define SatResAiProtocol 0x08 /* unsuppoerted protocol */
#define SatResAiIllReader 0x09 /* invalid card reader */
/* SAT LAUNCH BROWSER ADDITIONAL INFO */
#define SatResAiBearerUnavailable 0x01 /* bearer unavailable */
#define SatResAiBrowserUnavailable 0x02 /* browser unavailable */
#define SatResAiUnableToReadData 0x03 /* ME unable to read the provisioning data */
/* SAT BROWSER TERMINATION CAUSE CODE */
#if defined(FF_WAP)
#define SatBrowserTerminCauseUser 0x00
#define SatBrowserTerminCauseError 0x01
#endif
/* SAT SETUP EVENT LIST FLAGS */
#define SatEvtUserActionActivated 0x01 /* user activity */
#define SatEvtIdleScreenActivated 0x02 /* idle screen available */
#if defined(FF_WAP)
#define SatEvtBrowserTerminateActivated 0x04 /* Browser terminated */
#endif
/* PROTOTYPES */
MfwRes satInit (U8 *profile, U8 plen);
MfwRes satExit (void);
MfwHnd satCreate (MfwHnd w, MfwEvt e, MfwCb f, SatCmd *c);
MfwRes satDelete (MfwHnd h);
MfwRes satString (SatCmd *cmd, SatTxt *txt, U8 *res, int rlen);
MfwRes satItem (SatCmd *cmd, U8 itemId, U8 *res, int rlen);
MfwRes satMenuItem (U8 itemId, U8 help);
MfwRes satEvtDownload (U8 evt);
MfwRes satDone (SatCmd *cmd, U8 *res, int rlen);
int satEvtRegistered (int evt); /*SPR#2121 - DS - Check if evt has been registered by SAT Setup Event List command*/
void satAccept (void);
void satReject (void);
void satDisc (void);
void Mfw_SAT_DTMF_EndSession(void); // x0021334 : To test SAT session end - CQ33597
void satSignal (U32 evt, void *data);
void rAT_PercentSATI (S16 len, U8 *sc);
/* BEGIN : Sumit: Neptune */
#ifndef NEPTUNE_BOARD
void rAT_PercentSATN (S16 len, U8 *sc, T_ACI_SATN_CNTRL_TYPE cntrl_type);
#else
void rAT_PercentSATN ( SHORT len,UBYTE *satCmd);
#endif
/* END SUMIT: Neptune*/
#ifdef FF_SAT_E
void rAT_PercentSATA (S16 cId, S32 rdlTimeout_ms,T_ACI_SATA_ADD *addParm);
#else
void rAT_PercentSATA (S16 cId, S32 rdlTimeout_ms);
#endif /* FF_SAT_E */
// Shashi Shekar B.S., a0876501, Jan 16, 2006, DR: OMAPS00061460
#ifdef FF_MMI_SAT_ICON
void simReadIconData (U8 record_number);
void sim_img_cnf (USHORT error, UBYTE record_number, UBYTE *efimg);
void sim_img_instance_data_cnf (USHORT error, UBYTE *data_instance);
void iconDataUpdate(SatTxt *t, UBYTE width, UBYTE height, char *dst);
void convert_21_image(UBYTE width, UBYTE height, UBYTE depth, UBYTE *src, UBYTE *palette, UBYTE *dst);
void convert_11_image(UBYTE width, UBYTE height, char *src, char *dst);
#endif
void rAT_PercentSATE (S16 len, U8 *sc);
BOOL satChangeNotify (int ref, T_SIM_FILE_UPDATE_IND *updateInd);
void satUpdateFiles ( U8 updated, USHORT dataId );
BOOL satRefreshNotification ( int ref, T_SIM_FILE_UPDATE_IND *updateInd);
void satRefreshAbort(void);
#if defined(FF_WAP)
MfwRes satBrowserTerminated(U8 cause);
#endif
void sate_error(T_ACI_CME_ERR error); /* SPR#2321 - DS - SAT error handling */
// Jun 16, 2005 REF: CRR 31543 x0021334
// Issue: SATK: cannot get TR for send ussd command
// Prototype for new function
T_MFW_SS_RETURN satHangup (T_ACI_CMD_SRC sId);
#endif