blob: 0a4c520c6b8426eb550f56edf68c103934e7d204 [file] [log] [blame]
/*****************************************************************************
* Copyright Statement:
* --------------------
* This software is protected by Copyright and the information contained
* herein is confidential. The software may not be copied and the information
* contained herein may not be used or disclosed except with the written
* permission of MediaTek Inc. (C) 2005
*
* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/
#ifndef __XCAP_NVRAM_DEF_H__
#define __XCAP_NVRAM_DEF_H__
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */
#include "nvram_defs.h"
#include "nvram_enums.h"
#include "ps_public_enum.h"
#include "device.h"
#define PDN_REJECT_CODE_SIZE 16
// LID Enums
typedef enum
{
NVRAM_EF_XCAP_PROFILE_LID = NVRAM_LID_GRP_XCAP(0),
NVRAM_EF_XCAP_LAST_LID = NVRAM_LID_GRP_XCAP(63)
}nvram_lid_xcap_enum;
// VERNO
#define NVRAM_EF_XCAP_PROFILE_LID_VERNO "102"
#define NVRAM_EF_XCAP_PROFILE_LID_HASH 0xB9CA22EB
// Data Structure of Each LID
typedef struct {
kal_char xcap_url[128];
kal_char xcap_protocol[6]; //http or https
kal_uint32 xcap_port;
kal_char auid[64];
kal_uint8 url_encoding;
kal_uint8 media_type;
kal_char phone_context[64];
kal_char digest_id[64];
kal_char digest_pwd[64];
kal_uint8 xcap_retry_times; //New in Gen95
kal_uint16 xcap_connection_timeout; //New in Gen95 (seconds)
kal_uint8 support_media_tag;
kal_uint8 support_cfnl;
kal_uint8 cache_level;
kal_uint8 support_put_cf_root;
kal_uint8 timer_inside_cfnry;
kal_uint8 support_clir_root;
kal_uint8 attribute_need_quotation_mark;
kal_uint8 set_cfnrc_with_cfnl;
kal_uint8 forwarding_number_use_sip_uri;
kal_uint8 support_cb_no_action_allow;
kal_uint8 use_first_xui_element;
kal_uint8 use_saved_xui;
kal_uint8 support_adding_no_reply_timer;
kal_uint8 remove_invalid_actions;
kal_uint8 support_adding_unprovisioned_rule;
kal_uint8 exclusive_cb;
kal_uint8 support_put_cw_root;
kal_uint8 enable_custom_user_agent_string;
kal_char ruleid_cfu[96];
kal_char ruleid_cfb[96];
kal_char ruleid_cfnry[96];
kal_char ruleid_cfnrc[96];
kal_char ruleid_cfnl[96];
kal_char ruleid_baoc[96];
kal_char ruleid_baoic[96];
kal_char ruleid_baoicxh[96];
kal_char ruleid_baic[96];
kal_char ruleid_baicr[96];
kal_char ruleid_baica[96];
kal_char user_agent_prefix[64];
kal_char user_agent_model[64];
kal_char user_agent_default[64];
kal_uint8 support_xcap_enhance;
kal_uint16 total_exe_time;
kal_uint8 need_check_isim_info;
kal_uint8 support_adding_namespace;
kal_uint8 support_baica;
kal_uint8 support_send_dereg_after_put;
kal_uint8 support_rule_level_setting;
kal_uint8 support_query_simservs;
kal_uint8 support_enable_by_cond;
kal_uint8 support_disable_by_cond;
kal_uint8 support_erasure_by_cond;
kal_uint8 support_isim;
kal_uint8 remove_media_when_not_support_media;
kal_uint8 support_xcap_diff;
kal_uint8 remove_url_simservs_prefix;
kal_uint8 empty_condition_tag_format;
kal_uint16 ccfc_service_class;
kal_uint8 remove_node_namespace;
kal_uint8 support_put_cf_root_rules;
kal_uint8 support_if_match_header;
kal_uint8 support_omit_cp_prefix_and_namespace;
kal_uint8 support_put_cb_root;
kal_uint8 ignore_baoc_roaming_rule;
} xcap_info_t;
typedef struct {
kal_char gba_url[128];
kal_char gba_protocol[6]; //http or https
kal_uint32 gba_port;
kal_char gba_type[7]; //GBA_ME/GBA_U
kal_char imei_header[64];
kal_char gba_url_path[128];
kal_char gba_realm[128];
kal_char gba_user_agent[64];
kal_uint8 gba_retry_times; //New in Gen95
kal_uint16 gba_connection_timeout; //New in Gen95 (seconds)
kal_uint8 enable_tmpi_header;
kal_uint8 supportTMPIasUserName;
kal_uint16 gba_delay_ua_send_packet; // Milliseconds
kal_uint16 gba_key_timeout;
kal_uint8 clear_gba_key_when_key_expiry;
} gba_info_t;
typedef struct {
kal_uint8 apn_selection_rule;
kal_uint16 pdn_releasing_timer;
kal_uint16 pdn_wait_ps_reg_time;
kal_uint8 accept_network_act_pdn;
kal_uint8 accept_public_wifi;
kal_uint8 pdn_retry_times;
kal_uint8 support_empty_pdn_establishment;
kal_uint16 pdn_reject_code[PDN_REJECT_CODE_SIZE];
} cm_info_t;
typedef struct {
kal_uint8 support_gzip;
kal_uint8 support_always_trust_ssl; //skip UE verifying Server's certificate
kal_uint8 dns_server_ipv4v6_priority; // Use IPv6 DNS server at first or IPv4 DNS server at first for query
kal_uint8 tcp_session_keep_alive; //keep tcp session across HTTP messages until PDN De-activated
kal_uint8 naptr_srv_level;
kal_uint8 hide_port_number; // Hide Port number in HTTP header
kal_uint8 dns_failover; // DNS Failover to retry multiple IP addresses
kal_uint32 xcap_dns_default_ttl; // Default DNS TTL Value, MD DNS Will Use Larger One In Default TTL And DNS Server TTL
kal_uint8 dns_force_query; // Force DNS query in AP mode for new PDN connection. When this flag is set, HTTP module pass it to DNS module and it should trigger new DNS query.
} http_info_t;
typedef struct {
kal_char saved_imsi[16];
kal_char saved_xui[256];
kal_char saved_impi[256];
kal_char saved_tmpi[256];
} sim_info_t;
typedef struct{
xcap_info_t xcap_info;
gba_info_t gba_info;
cm_info_t cm_info;
http_info_t http_info;
sim_info_t sim_info;
} xcap_cfg_t;
typedef xcap_cfg_t nvram_ef_xcap_profile_record_struct;
// Size and Total
#define NVRAM_EF_XCAP_PROFILE_SIZE (sizeof(nvram_ef_xcap_profile_record_struct))
#define NVRAM_EF_XCAP_PROFILE_TOTAL (1 * NVRAM_DUAL_RECORD)
#ifdef __cplusplus
}
#endif
#endif /* __XCAP_NVRAM_DEF_H__ */