|
API Guide Home (Online version only) |
![]() |
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 |