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