JProvOma.h
上传用户:lqx1163
上传日期:2014-08-13
资源大小:9183k
文件大小:15k
源码类别:

MTK

开发平台:

C/C++

  1. /*****************************************************************************
  2. *  Copyright Statement:
  3. *  --------------------
  4. *  This software is protected by Copyright and the information contained
  5. *  herein is confidential. The software may not be copied and the information
  6. *  contained herein may not be used or disclosed except with the written
  7. *  permission of MediaTek Inc. (C) 2005
  8. *
  9. *  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  10. *  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  11. *  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
  12. *  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  13. *  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  14. *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  15. *  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  16. *  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  17. *  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
  18. *  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
  19. *  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
  20. *  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
  21. *
  22. *  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
  23. *  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  24. *  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  25. *  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
  26. *  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
  27. *
  28. *  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
  29. *  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
  30. *  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
  31. *  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
  32. *  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
  33. *
  34. *****************************************************************************/
  35. /*******************************************************************************
  36.  * Filename:
  37.  * ---------
  38.  * JProvOma.h
  39.  *
  40.  * Project:
  41.  * --------
  42.  *   MAUI
  43.  *
  44.  * Description:
  45.  * ------------
  46.  *   This file is for OMA OTA provisioning specific.
  47.  *
  48.  * Author:
  49.  * -------
  50.  * -------
  51.  *
  52.  *==============================================================================
  53.  *             HISTORY
  54.  * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
  55.  *------------------------------------------------------------------------------
  56.  * removed!
  57.  * removed!
  58.  * removed!
  59.  *
  60.  * removed!
  61.  * removed!
  62.  * removed!
  63.  *
  64.  * removed!
  65.  * removed!
  66.  * removed!
  67.  *
  68.  * removed!
  69.  * removed!
  70.  * removed!
  71.  *
  72.  * removed!
  73.  * removed!
  74.  * removed!
  75.  *
  76.  * removed!
  77.  * removed!
  78.  * removed!
  79.  *
  80.  *------------------------------------------------------------------------------
  81.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
  82.  *==============================================================================
  83.  *******************************************************************************/
  84. #ifndef _JPROVOMA_H
  85. #define _JPROVOMA_H
  86. #if defined (JATAAYU_SUPPORT)
  87. #ifndef _JPROVWAP_H
  88. #error "JProvWap.h should be included first"
  89. #endif 
  90. #define PROV_APPLICATION_SUPPORTED_NUM       (2)
  91. #define PROV_OMA_CHARACTERISTIC_NUM          (9-5)
  92. #define  PROV_SEC_TYPE_SUPP_NUM              (4)
  93. #define PROV_BYTES_TO_SHIFT_TO_SEC_PARM         (2)
  94. #define PROV_BYTES_TO_SHIFT_TO_MAC_PARM         (11)
  95. #define PROV_OMA_NO_OF_MAC_VALUE_BYTES       (40)
  96. #define OMA_ROOT_TAG       "wap-provisioningdoc"
  97. #define CHARACTERISTIC        "characteristic"
  98. #define PXPHYSICAL            "PXPHYSICAL"
  99. #define PXAUTHINFO            "PXAUTHINFO"
  100. #define NAPAUTHINFO           "NAPAUTHINFO"
  101. #define PORT               "PORT"
  102. #define RESOURCE           "RESOURCE"
  103. #define NAME_PARM          "NAME"
  104. #define INTERNET           "INTERNET"
  105. #define STARTPAGE          "STARTPAGE"
  106. #define TO_NAPID           "TO-NAPID"
  107. #define PORTNBR               "PORTNBR"
  108. #define SERVICE               "SERVICE"
  109. #define APPID              "APPID"
  110. #define TO_PROXY           "TO-PROXY"
  111. #define URI                "URI"
  112. #define NAP_ADDRESS           "NAP-ADDRESS"
  113. #define NAP_ADDRTYPE       "NAP-ADDRTYPE"
  114. #define CALLTYPE           "CALLTYPE"
  115. #define AUTHTYPE           "AUTHTYPE"
  116. #define AUTHNAME           "AUTHNAME"
  117. #define AUTHSECRET            "AUTHSECRET"
  118. #define LINGER             "LINGER"
  119. #define BEARER             "BEARER"
  120. #define NAPID              "NAPID"
  121. #define PROXY_ID           "PROXY-ID"
  122. #define PROXY_PROVIDER_ID     "PROXY-PROVIDER-ID"
  123. #define PHYSICAL_PROXY_ID     "PHYSICAL-PROXY-ID"
  124. #define PROV_DOMAIN           "DOMAIN"
  125. #define PXADDR             "PXADDR"
  126. #define PXADDRTYPE            "PXADDRTYPE"
  127. #define LINKSPEED          "LINKSPEED"
  128. #define PXAUTH_PW          "PXAUTH-PW"
  129. #define PXAUTH_ID          "PXAUTH-ID"
  130. #define PXAUTH_TYPE           "PXAUTH-TYPE"
  131. #define  MAX_SDU_SIZE         "MAX-SDU-SIZE"
  132. #define GSM_CSD               "GSM-CSD"
  133. #define GSM__CSD            "GSM_CSD"
  134. #define GSM_GPRS           "GSM-GPRS"
  135. #define GSM__GPRS           "GSM_GPRS"
  136. #define  ANALOG_MODEM         "ANALOG-MODEM"
  137. #define AUTOBAUDING           "AUTOBAUDING"
  138. #define ADDR               "ADDR"
  139. #define BRW_APPL           "w2"
  140. #define MMS_APPL           "w4"
  141. #define SEMI_COLAN_SEPARATER  ';'
  142. #define SEC_NETWPIN           "SEC=0"
  143. #define SEC_USERPIN           "SEC=1"
  144. #define SEC_USERNETWPIN       "SEC=2"
  145. #define SEC_USERPINMAC        "SEC=3"
  146. #define PROV_APPLICATION_APP_NAME_LEN     (16)
  147. #define PROV_APPLICATION_APP_ID_LEN       (16)
  148. #define PROV_PROXY_ID_LEN              (32)
  149. #define PROV_NAP_ID_LEN                (16)
  150. #define PROV_MMSC_ADD_LEN              (PROV_PROFILE_MMSC_URL_LEN)
  151. #define PROV_PHYSICAL_PROXY_ID_LEN        (16)
  152. #define PROV_PX_ADDR_LEN               (40)
  153. #define PROV_PROXY_NAME_LEN               (31)
  154. #define PROV_PX_AUTH_ID_LEN               (16)
  155. #define PROV_PX_AUTH_PWD_LEN           (16)
  156. #define PROV_OMA_MIN_SIZE_REQ          (64)
  157. #define PROV_NO_APPLICATION               (0x00)
  158. #define PROV_BROWSER_APPLICATION       (0x01)
  159. #define PROV_MMS_APPLICATION           (0x02)
  160. /* add other application here in this sequence if needed */
  161. #define PROV_OMA_MIN_PASSWORD_LENGTH      (0x04)        /* check  value ..temp added */
  162. #define PROV_OMA_MAX_PASSWD_LEN           (0x0A)        /* check  value ..temp added */
  163. #define PROV_OMA_IGNORE_OTHER_WAP_APPL    (0x01)
  164. #define PROV_OMA_IGNORE_OTHER_MMS_APPL    (0x02)
  165. #define PROV_OMA_IGNORE_OTHER_TO_NAPID    (0x01)
  166. /* flags for APPLICATION characteristics parm tags */
  167. #define PROV_OMA_APPL_IGNORE_OTHER_ADDR      (0x01)
  168. #define PROV_OMA_APPL_IGNORE_OTHER_TO_NAPID  (0x02)
  169. #define PROV_OMA_APPL_IGNORE_OTHER_TO_PROXY  (0x04)
  170. /***************************************************************************** 
  171. * Typedef 
  172. *****************************************************************************/
  173. typedef struct
  174. {
  175.     U8 app_id[PROV_APPLICATION_APP_ID_LEN];
  176.     U8 application_name[PROV_APPLICATION_APP_NAME_LEN];
  177.     U8 proxy_id[PROV_PROXY_ID_LEN];
  178.     U8 mmsc_address[PROV_MMSC_ADD_LEN];
  179.     U8 nap_id[PROV_NAP_ID_LEN];
  180.     U8 flags;
  181. } application_data;
  182. typedef struct
  183. {
  184.     U32 port;
  185.     U8 connType;
  186. } prov_proxy_port_struct;
  187. typedef struct
  188. {
  189.     U8 physicalProxyID[PROV_PHYSICAL_PROXY_ID_LEN];
  190.     U8 pxAddr[PROV_PX_ADDR_LEN];
  191.     U8 toNapID[PROV_NAP_ID_LEN];
  192.     U8 phyProxyCount;
  193.     U32 port;
  194.     U8 connType;
  195. } prov_phy_proxy_data_struct;
  196. typedef struct prov_physical_proxy_link_struct
  197. {
  198.     prov_phy_proxy_data_struct phyProxyData;
  199.     struct prov_physical_proxy_link_struct *nextPhyProxy_p;
  200. } prov_physical_proxy_struct;
  201. typedef struct
  202. {
  203.     U8 proxy_id[PROV_PROXY_ID_LEN];
  204.     U8 proxy_name[PROV_PROFILE_PROFILE_NAME_LEN];
  205.     U8 homepage_url[PROV_PROFILE_HOMEPAGE_URL_LEN];
  206.     U8 is_invalid_auth_info;
  207.     U8 px_auth_id[PROV_PROFILE_USERNAME_LEN];
  208.     U8 px_auth_pwd[PROV_PROFILE_PASSWORD_LEN];
  209.     prov_physical_proxy_struct *physicalProxy;
  210. } prov_log_proxy_data_struct;
  211. typedef struct prov_logical_proxy_link_struct
  212. {
  213.     prov_log_proxy_data_struct logProxyData;
  214.     struct prov_logical_proxy_link_struct *nextLogProxy_p;
  215. } prov_logical_proxy_struct;
  216. typedef struct
  217. {
  218.     U8 csdDialString[MAX_DIAL_NUM_LEN];
  219.     U8 csdDialNumType;
  220.     U8 callType;
  221.     U32 linkSpeed;
  222.     U32 timeOut;
  223.     U8 dns_ip[4];
  224. } data_account_csd_struct;
  225. typedef struct
  226. {
  227.     U8 apn[MAX_GPRS_MMI_APN_LEN];
  228. } data_account_gprs_struct;
  229. typedef struct
  230. {
  231.     U8 napid[PROV_NAP_ID_LEN];
  232.     U8 name[MAX_DATA_ACCOUNT_NAME_LEN];
  233.     U8 bearer;
  234.     U8 authType;
  235.     U8 userName[PROV_MAX_USER_LEN];
  236.     U8 password[PROV_MAX_PASSWD_LEN];
  237.     union
  238.     {
  239.         data_account_csd_struct csdAccount;
  240.         data_account_gprs_struct gprsAccount;
  241.     } dataAccountType;
  242. } prov_data_account_data_struct;
  243. typedef struct prov_napdef_link_struct
  244. {
  245.     prov_data_account_data_struct accountData;
  246.     struct prov_napdef_link_struct *nextNapdef_p;
  247. } prov_napdef_struct;
  248. typedef struct
  249. {
  250.     S8 *secId;
  251.       PROV_RETCODE(*sec_hdlr) (S8 *contentType, S8 *provBuff);
  252. } security_parm_handler_struct;
  253. extern application_data *g_prov_app_brw_p;
  254. extern application_data *g_prov_app_mms_p;
  255. extern prov_data_account_data_struct *g_prov_dataAccountData_p;
  256. /***************************************************************************** 
  257. * Extern Global Variable
  258. *****************************************************************************/
  259. /***************************************************************************** 
  260. * Extern Global Function
  261. *****************************************************************************/
  262. extern void mmi_prov_oma_handle_settings(S8 *provBuffer, U32 provLength, S8 *contentType);
  263. extern void mmi_prov_oma_save_received_settings(S8 *prov_buff_p, U32 prov_buff_len);
  264. extern PROV_RETCODE mmi_prov_oma_insert_settings_parm(TAG *pRoot);
  265. /* security related API's */
  266. extern PROV_RETCODE mmi_prov_oma_handle_netwpin(S8 *contentType, S8 *provBuff);
  267. extern PROV_RETCODE mmi_prov_oma_handle_userpin(S8 *contentType, S8 *provBuff);
  268. extern PROV_RETCODE mmi_prov_oma_handle_usernetwpin(S8 *contentType, S8 *provBuff);
  269. extern PROV_RETCODE mmi_prov_oma_handle_userpinmac(S8 *contentType, S8 *provBuff);
  270. extern PROV_RETCODE mmi_prov_extract_security_data(S8 *contentType, S8 *provBuffer, U32 provLength);
  271. extern void mmi_prov_oma_get_imsi_req(void);
  272. extern void mmi_prov_oma_get_imsi_rsp(void *inMsg);
  273. extern void mmi_prov_oma_entry_enter_pin(void);
  274. extern void mmi_prov_oma_exit_enter_pin(void);
  275. extern void mmi_prov_oma_validate_entered_pin(void);
  276. extern void mmi_prov_oma_pin_length_validation(U8 *text, U8 *cursor, S32 length);
  277. /* APIS's for the various characteristics in the OMA provisioing */
  278. extern PROV_RETCODE mmi_prov_oma_handle_bootstrap_tag(TAG **next_node);
  279. extern PROV_RETCODE mmi_prov_oma_handle_napdef_tag(TAG **next_node);
  280. extern PROV_RETCODE mmi_prov_oma_handle_pxlogical_tag(TAG **next_node);
  281. extern PROV_RETCODE mmi_prov_oma_handle_pxphysical_tag(TAG **next_node);
  282. /* PROV_RETCODE mmi_prov_oma_handle_port_tag(TAG**  next_node); */
  283. extern PROV_RETCODE mmi_prov_oma_handle_port_tag(TAG **nextroot_p, prov_phy_proxy_data_struct **phyProxyData_p);
  284. extern PROV_RETCODE mmi_prov_oma_handle_application_tag(TAG **next_node);
  285. /* PROV_RETCODE mmi_prov_oma_handle_napauthinfo_tag(TAG**  next_node); */
  286. extern PROV_RETCODE mmi_prov_oma_handle_napauthinfo_tag(
  287.                         TAG **nextroot_p,
  288.                         prov_data_account_data_struct **data_account_data_p);
  289. /* PROV_RETCODE mmi_prov_oma_handle_pxauthinfo_tag(TAG **  next_node); */
  290. extern PROV_RETCODE mmi_prov_oma_handle_pxauthinfo_tag(TAG **nextroot_p, prov_log_proxy_data_struct **logProxyData_p);
  291. extern PROV_RETCODE mmi_prov_oma_handle_resource_tag(TAG **next_node);
  292. extern PROV_RETCODE mmi_prov_oma_handle_unsupported_tag(TAG **next_node);
  293. extern void mmi_prov_oma_handle_csd_calltype(ATTRIBUTE *attr_p);
  294. extern void mmi_prov_oma_handle_csd_callspeed(ATTRIBUTE *attr_p);
  295. /* API's for Appilaction characteristic handling */
  296. extern void mmi_prov_oma_show_install_application_settings_dialog(void);
  297. extern void mmi_prov_oma_check_pending_application(void);
  298. extern void mmi_prov_oma_check_pending_application_callback(void);
  299. extern void mmi_prov_oma_handle_install_application(void);
  300. extern PROV_RETCODE mmi_prov_oma_get_application_data(application_data *appData_p);
  301. extern void mmi_prov_oma_add_napdef_info(
  302.                 prov_napdef_struct **napdef_data_p,
  303.                 prov_data_account_data_struct *accountData_p);
  304. extern void mmi_prov_oma_add_logical_proxy_info(
  305.                 prov_logical_proxy_struct **logProxy_p,
  306.                 prov_log_proxy_data_struct *logProxyData_p);
  307. extern void mmi_prov_oma_add_physical_proxy_info(
  308.                 prov_physical_proxy_struct **phyProxy_p,
  309.                 prov_phy_proxy_data_struct *phyProxyData_p);
  310. extern void mmi_prov_oma_add_pxauth_info(
  311.                 prov_logical_proxy_struct **logProxy_p,
  312.                 prov_log_proxy_data_struct *logProxyData_p);
  313. extern PROV_RETCODE mmi_prov_oma_search_and_fill_proxy_data(application_data *appData_p);
  314. extern PROV_RETCODE mmi_prov_oma_search_physical_proxy(prov_log_proxy_data_struct *logProxy_p);
  315. extern PROV_RETCODE mmi_prov_oma_get_physical_proxy_data(prov_phy_proxy_data_struct *phy_Proxy_p);
  316. extern void mmi_prov_oma_get_logical_proxy_data(prov_log_proxy_data_struct *log_Proxy_p);
  317. extern PROV_RETCODE mmi_prov_oma_compare_phproxy_napdef_napid(prov_phy_proxy_data_struct *phyProxyData_p);
  318. extern PROV_RETCODE mmi_prov_oma_compare_appl_napdef_napid(application_data *appData_p);
  319. extern void mmi_prov_oma_fill_gprs_data_account_info(
  320.                 prov_data_account_data_struct *dataAccountData_p,
  321.                 mmi_ps_set_gprs_data_account_req_struct **set_gprs_req_p);
  322. extern void mmi_prov_oma_fill_csd_data_account_info(
  323.                 prov_data_account_data_struct *dataAccountData_p,
  324.                 mmi_cc_set_csd_profile_req_struct **set_csd_req_p);
  325. extern void mmi_prov_oma_free_napdef_info(void);
  326. extern void mmi_prov_oma_free_proxy_info(void);
  327. extern U8 mmi_prov_oma_get_physical_proxy_count(prov_physical_proxy_struct *phyProxy_p);
  328. extern U8 mmi_prov_oma_get_logical_proxy_count(prov_logical_proxy_struct *logProxy_p);
  329. /* check for the redundant parameters */
  330. extern U8 mmi_prov_oma_check_if_redundant_physical_proxy(
  331.             prov_physical_proxy_struct *phyProxy_p,
  332.             prov_phy_proxy_data_struct *phyProxyData_p);
  333. extern U8 mmi_prov_oma_check_if_redundant_napdef(
  334.             prov_napdef_struct *napdef_data_p,
  335.             prov_data_account_data_struct *accountData_p);
  336. extern U8 mmi_prov_oma_check_if_redundant_logical_proxy(
  337.             prov_logical_proxy_struct *logProxy_p,
  338.             prov_log_proxy_data_struct *logProxyData_p);
  339. // MAUI_00355388 Start
  340. extern void mmi_prov_oma_update_wap_profile_homepage_url(JC_UINT8 *uri);
  341. extern void mmi_prov_oma_update_mms_profile_mmsc_url(JC_UINT8 *uri);
  342. // MAUI_00355388 End
  343. #endif /* defined (JATAAYU_SUPPORT) */ // #if defined (JATAAYU_SUPPORT)
  344. #endif /* _JPROVOMA_H */