API Guide Home
(Online version only)

HsPhoneIOTATypes.h

Go to the documentation of this file.
00001 /******************************************************************************
00002  * Copyright (c) 2004 palmOne, Inc. or its subsidiaries.
00003  * All rights reserved.
00004  *****************************************************************************/
00005 /** @ingroup Telephony
00006  *
00007  */
00008 
00009 
00010 /**
00011  *
00012  * @file    HsPhoneIOTATypes.h
00013  *
00014  * @brief  Header File for Phone Library API ---- IOTA CATEGORY
00015  *
00016  * NOTES:
00017  *  All implementations of the Handspring Phone Library support a common API.
00018  *  This API is broken up into various categories for easier management.  This file
00019  *  defines the IOTA category.  These API calls are used for features specific to
00020  *  IOTA operation on CDMA networks.
00021  */
00022 
00023 
00024 #ifndef HS_PHONEIOTA_H
00025 #define HS_PHONEIOTA_H
00026 #include <PalmOS.h>
00027 #include <PalmTypes.h>
00028 #ifndef __CORE_COMPATIBILITY_H__
00029 #include <PalmCompatibility.h>
00030     /** workaround for differing header files in sdk-3.5 and sdk-internal */
00031     #ifndef __CORE_COMPATIBILITY_H__
00032     #define __CORE_COMPATIBILITY_H__
00033     #endif
00034 #endif
00035 
00036 // Located in Common/Libraries/Telephony
00037 #include <HsPhoneTraps.h>     /** trap table definition for phone library calls */
00038 #include <HsPhoneErrors.h>    /** error codes returned by phone library functions */
00039 #include <HsPhoneTypes.h>
00040 
00041 
00042 /**
00043  *
00044  **/
00045 typedef enum
00046 {
00047   phnIOTAUnknown = 0,       /**<        */
00048     phnIOTAStart,       /**<        */
00049     phnIOTAEnd,     /**<        */
00050     phnIOTACommit,      /**<        */
00051     phnIOTANAMSelect    /**<        */
00052 }
00053 PhnIOTAStatus;
00054 
00055 /**
00056  * @brief
00057  *
00058  **/
00059 typedef struct
00060 {
00061   PhnIOTAStatus     status;         /**< the status that the modem changes into */
00062   UInt8         namInUse;       /**< namInUse4IOTA currently */
00063   PHNErrorCode      error;          /**< == 0 normally, only != 0 for phnIOTAEnd and phnIOTACommit if Commit failed. */
00064 }
00065 PhnIOTAReportType;
00066 
00067 
00068 
00069 
00070 // IOTA defines
00071 /**
00072  * @name Text Header elements
00073  *
00074  **/
00075 /*@{*/
00076 #define IOTAHeaderEscapeSeq     "X-Wap-Application-Id: "                            /**< start sequence of the header */
00077 #define IOTATextHeader          "X-Wap-Application-Id: x-wap-application:iota.ua"   /**< beginning of an IOTA header */
00078 #define IOTATextHeaderLength    47                                                  /**< length of the header */
00079 
00080 #define IOTATextHeaderTerminator   '\n'         /**< IOTA headers terminate at the line feed */
00081 /*@}*/
00082 
00083 #define phnIOTAEvent         'Hita'     /**<        */
00084 
00085 
00086 typedef UInt8 PhnIOTAItemType;  /**< let's hope it never gets beyond 256 items */
00087 /**
00088  * Items stored in the radio NV (mostly for Sprint support).
00089  * Some of these items may be used for other carriers in the future.
00090  * Most of these items will be match the initial TIL implementation
00091  * since we are focusing on Sprint support.
00092  * We may be able to leverage the NVFlash support in the future and
00093  * get away from the radio NV for most of these (unless we need UPST support).
00094  **/
00095 typedef enum
00096 {
00097   phnIOTAItemBootURL                    = 0x00, /**< provisioning URL */
00098   phnIOTAItemBootNAIURL                 = 0x01, /**< provisioning URL */
00099   phnIOTAItemTrustedDomain              = 0x02, /**< trusted domain for provisioning.  All URLs must come from this */
00100   phnIOTAItemHomepageURL                = 0x03, /**< default browser homepage */
00101   phnIOTAItemVendingURL                 = 0x04, /**< vending URL */
00102   phnIOTAItemDownloadServerURL          = 0x05, /**< download server URL */
00103   phnIOTAItemDownloadServerLock         = 0x06, /**< state of items downloaded from the download server (locked or not) */
00104   phnIOTAItemConnectionTimeout          = 0x07, /**< timeout for IOTA connections */
00105   phnIOTAItemPriWAPPushProxyGatewayURL  = 0x08, /**< Primary WAP push gateway */
00106   phnIOTAItemSecWAPPushProxyGatewayURL  = 0x09, /**< Secondary WAP push gateway */
00107 
00108   // The following items are indexed for each PDP profile
00109   // Sprint has 2 profiles, so these are indexed 0..1
00110   phnIOTAItemPriProxyWDPAddress         = 0x0A, /**< WDP address. Translate to the NGG for profile 1 */
00111   phnIOTAItemSecProxyWDPAddress         = 0x0B, /**< WDP address. Translate to the NGG for profile 1 */
00112   phnIOTAItemPriSIPConfigServer         = 0x0C, /**< Primary Config server */
00113   phnIOTAItemSecSIPConfigServer         = 0x0D, /**< Secondary Config server */
00114   phnIOTAItemPriSIPEdgeProxyGateway     = 0x0E, /**< Primary SIP Proxy Edge gateway */
00115   phnIOTAItemSecSIPEdgeProxyGateway     = 0x0F, /**< Secondary SIP Proxy Edge gateway */
00116   phnIOTAItemPriDataExchangeURL         = 0x10, /**< Primary Data Exchange URL */
00117   phnIOTAItemSecDataExchangeURL         = 0x11, /**< Secondary Data Exchange URL */
00118   phnIOTAItemPriDataGatewayURL          = 0x12, /**< Primary Data Gateway URL */
00119   phnIOTAItemSecDataGatewayURL          = 0x13, /**< Secondary Data Gateway URL */
00120   phnIOTAItemPriSIPRetryTimer           = 0x14, /**< Primary SIP Retry timer */
00121   phnIOTAItemSecSIPRetryTimer           = 0x15, /**< Secondary SIP Retry timer */
00122   phnIOTAItemPriSIPRetryCount           = 0x16, /**< Primary SIP Retry count */
00123   phnIOTAItemSecSIPRetryCount           = 0x17, /**< Secondary SIP Retry count */
00124   phnIOTAItemPriIMMessageStore          = 0x18, /**< Primary IM Message store */
00125   phnIOTAItemSecIMMessageStore          = 0x19, /**< Secondary IM Message store */
00126 
00127 
00128   phnIOTAItemRootCertificate1           = 0x40, /**< Root certificate #1 */
00129   phnIOTAItemRootCertificate2           = 0x41, /**< Root certificate #2 */
00130   phnIOTAItemRootCertificate3           = 0x42, /**< Root certificate #3 */
00131   phnIOTAItemRootCertificate4           = 0x43, /**< Root certificate #4 */
00132 
00133   // Sprint items that used to be hard-coded in the IOTA app but now
00134   // moved here, since different radios may possibly support different values.
00135   phnIOTAItemPRLStorageSize             = 0x50, /**< max PRL size radio supports */
00136 
00137   // items that are listed as Verizon requirements
00138   phnIOTAItemSIPUsername                = 0x51, /**< Username for SIP accounts */
00139   phnIOTAItemSIPPassword                = 0x52, /**< password for SIP accounts */
00140 
00141   // last item
00142   phnIOTAItemLastNVItem                 = 0x60, /**< last IOTA NV Item */
00143 
00144   phnIOTAItemUnknown                    = 0xFF  /**< unknown item */
00145 }
00146 PhnIOTAItemEnum;
00147 
00148 #define isValidPhnIOTAItemType(i) ((i >= phnIOTAPhnBootNAIUrl) && (i <phnLibIOTAItemLast))  /**<        */
00149 
00150 
00151 // ========================= Begining of IOTA type section =======================
00152 
00153 #define kIOTACertMaxBlocks              132     /**< Index should be < 12, starting from 0 */
00154 #define kIOTACertMaxBlockLen            127 /**<        */
00155 /**
00156  * @brief
00157  *
00158  **/
00159 typedef struct
00160   {
00161   UInt8  index;                 /**<        */
00162   UInt8  cert [kIOTACertMaxBlockLen];       /**<        */
00163   }
00164 PhnIOTAPhnTlsRcUrlType;
00165 
00166 #define kIOTAProxyADDRMaxLen           20   /**<        */
00167 #define kIOTANaiSipEdgePxyMaxBlocks    4    /**<        */
00168 /**
00169  * @brief
00170  *
00171  **/
00172 typedef struct
00173   {
00174   UInt8  index;                 /**<        */
00175   UInt8  addr [kIOTAProxyADDRMaxLen];       /**<        */
00176   }
00177 PhnIOTAPhnNAISIPEdgeProxyType;          /**<        */
00178 
00179 #define kIOTAPxyAddrWdpMaxBlocks 4      /**<        */
00180 /**
00181  * @brief
00182  *
00183  **/
00184 typedef struct
00185   {
00186   UInt8  index;                 /**<        */
00187   UInt8  addr [kIOTAProxyADDRMaxLen];       /**<        */
00188   }
00189 PhnIOTAPhnProxyAddrWdpType;
00190 
00191 #define kIOTAUrlMaxLen                128   /**<        */
00192 #define kIOTAUrlArrayMaxLen     65  /**<        */
00193 
00194 #define kIOTASipCfgBlocks 4         /**<        */
00195 /**
00196  * @brief
00197  *
00198  **/
00199 typedef struct
00200 {
00201   UInt8  index;                 /**<        */
00202   UInt8  url [kIOTAUrlArrayMaxLen];     /**<        */
00203 }
00204 PhnIOTAPhnNAISIPCfgSvr;
00205 
00206 #define kIOTANaiPpgMaxBlocks 4          /**<        */
00207 /**
00208  * @brief
00209  *
00210  **/
00211 typedef struct
00212 {
00213   UInt8  index;                 /**<        */
00214   UInt8  url [kIOTAUrlArrayMaxLen];     /**<        */
00215 }
00216 PhnIOTAPhnNAIPPGType;
00217 
00218 #define kIOTANaiIMStoreMaxBlocks 8      /**<        */
00219 /**
00220  * @brief
00221  *
00222  **/
00223 typedef struct
00224 {
00225   UInt8  index;                 /**<        */
00226   UInt8  url [kIOTAUrlArrayMaxLen];     /**<        */
00227 }
00228 PhnIOTAPhnNAIIMStore;
00229 
00230 #define kIOTANaiSipDataxchMaxBlocks 8       /**<        */
00231 /**
00232  * @brief
00233  *
00234  **/
00235 typedef struct
00236 {
00237   UInt8  index ;                /**<        */
00238   UInt8  url [kIOTAUrlArrayMaxLen] ;        /**<        */
00239 }
00240 PhnIOTAPhnNAISIPDataxchType;
00241 
00242 #define kIOTANaiSipDdatgwyMaxBlocks 8       /**<        */
00243 /**
00244  * @brief
00245  *
00246  **/
00247 typedef struct
00248 {
00249   UInt8  index ;                /**<        */
00250   UInt8  url [kIOTAUrlArrayMaxLen]  ;       /**<        */
00251 }
00252 PhnIOTAPhnNAISIPDatagwyType;
00253 
00254 // Type to hold the SIP re-transmission timers - specified in seconds
00255 #define kIOTAPhnSipRetryTimerMaxLen 9       /**<        */
00256 #define kIOTAPhnSipRetryTimerMaxBloacks 4   /**<        */
00257 /**
00258  * @brief
00259  *
00260  **/
00261 typedef struct
00262 {
00263   UInt8  index;                 /**<        */
00264   UInt8  timer [kIOTAPhnSipRetryTimerMaxLen];   /**<        */
00265 }
00266 PhnIOTAPhnSIPRetryTimerType;
00267 
00268 // Type to hold the IP re-transmission counters
00269 #define kIOTAPhnSipRetryCntMaxLen 9     /**<        */
00270 #define kIOTAPhnSipRetryCntMaxBlocks 4      /**<        */
00271 /**
00272  * @brief
00273  *
00274  **/
00275 typedef struct
00276 {
00277   UInt8  index;                 /**<        */
00278   UInt8  cnt [kIOTAPhnSipRetryCntMaxLen];   /**<        */
00279 }
00280 PhnIOTAPhnSIPRetryCntType;
00281 
00282 /**
00283  * @brief Holds lock state of user's ability to change the download server URL address.
00284  *
00285  **/
00286 typedef struct
00287 {
00288   Boolean iota_ph_dls_lock  ;           /**<        */
00289 }
00290 PhnIOTAPhnDlsLockType;
00291 /**
00292  * @brief
00293  *
00294  **/
00295 typedef struct
00296 {
00297   UInt8  url [kIOTAUrlMaxLen] ;         /**<        */
00298 }
00299 PhnIOTAPhnHomepagetype;
00300 
00301 
00302 #define kIOTATrustedDomainMaxLen 64     /**<        */
00303 /**
00304  * @brief
00305  *
00306  **/
00307 typedef struct
00308 {
00309   UInt8  url[kIOTATrustedDomainMaxLen];     /**<        */
00310 }
00311 PhnIOTAPhnTrustedDomainType;
00312 
00313 
00314 // ========================= End of IOTA type section =======================
00315 /**
00316  * Structure passed to the callbacks registered for incoming IOTA notifications
00317  **/
00318 typedef struct tagIOTANotificationEventType
00319 {
00320     UInt16 version;         /**< version number to provide future backwards compatibility */
00321 
00322     void *headerP;          /**< pointer to raw header */
00323     UInt8 headerLen;        /**< length of headerP */
00324     void *dataP;            /**< pointer to data body */
00325     UInt8 dataLen;          /**< length of dataP */
00326 
00327     /** SMS related fields */
00328     UInt32 msgID;           /**< ID into the SMS database to reference this
00329                              * message this ID is not gauranteed to be
00330                              * valid once the notification callback
00331                              * returns.  Users should make a copy of the
00332                              * msg if they want to work on it after the
00333                              * callback returns.
00334                              */
00335     UInt32 datetime;        /**< date/time stamp */
00336     Int32  reserved2;       /**< reserved*/
00337     Int32  reserved3;       /**< reserved*/
00338 }
00339 IOTANotificationEventType;
00340 
00341 
00342 #endif  // HS_PHONEIOTA_H

Top Palm Developer Network
© 2004-2008, Palm, Inc. All rights reserved.
Generated on Fri Jun 13 10:06:53 2008 for Palm API Guide