| /***************************************************************************** |
| * 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). |
| * |
| *****************************************************************************/ |
| |
| /******************************************************************************* |
| * Filename: |
| * --------- |
| * ltecsr_struct.h |
| * |
| * Project: |
| * -------- |
| * MOLY |
| * |
| * Description: |
| * ------------ |
| * define the message struct parameters |
| * |
| * Author: |
| * ------- |
| * ------- |
| * |
| *============================================================================== |
| * HISTORY |
| * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!! |
| *------------------------------------------------------------------------------ |
| * removed! |
| * |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| *------------------------------------------------------------------------------ |
| * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!! |
| *============================================================================== |
| *******************************************************************************/ |
| |
| #ifndef _LTECSR_STRUCT_H |
| #define _LTECSR_STRUCT_H |
| |
| #include "kal_general_types.h" |
| #include "kal_public_defs.h" |
| |
| |
| #include "codec_def.h" |
| #include "ims_common_def.h" |
| #include "ims_nvram_editor.h" |
| |
| /* value define for common_para2 */ |
| typedef enum e_ltecsr_feature_option { |
| LTECSR_FEATURE_NONE = (0), |
| LTECSR_FEATURE_DTMF_MUTE = (1<<0), |
| LTECSR_FEATURE_HOLDCALL_DL_CHECK = (1<<1), |
| LTECSR_FEATURE_ALWAYS_ONE_SHOT_DTMF = (1<<2), |
| LTECSR_FEATURE_DTMF_END_SEP_ENABLE = (1<<3), |
| LTECSR_FEATURE_DYNAMIC_QOS = (1<<4), |
| LTECSR_FEATURE_FIX_RTCP_INTERVAL_ACTIVE = (1<<5), |
| LTECSR_FEATURE_FIX_RTCP_INTERVAL_HOLD = (1<<6), |
| LTECSR_FEATURE_PING_PCSCF_ENABLE = (1<<7), |
| LTECSR_FEATURE_RTCP_MAX_INTERVAL_ENABLE = (1<<8), |
| LTECSR_FEATURE_IGNORE_BEARER_LOST = (1<<9), |
| LTECSR_FEATURE_DTMF_END_DURATION_UPDATE = (1<<10), |
| LTECSR_FRATURE_CMR_DISABLE = (1<<11), |
| LTECSR_FEATURE_SEND_INCOMING_DLPKT = (1<<12), |
| LTECSR_FEATURE_DISABLE_UDPCHECKSUM_SEND = (1<<13), |
| } ltecsr_feature_option_e; |
| |
| /* value define for nvram stat_feature_option */ |
| typedef enum e_ltecsr_stat_feature_option { |
| LTECSR_STAT_NONE = (0), |
| LTECSR_STAT_MDMI = (1<<0), |
| LTECSR_STAT_CIQ = (1<<1), |
| LTECSR_STAT_ECHO = (1<<2), |
| LTECSR_STAT_HIDDEN = (1<<3), |
| LTECSR_STAT_RJIL = (1<<4), |
| } ltecsr_stat_feature_option_e; |
| |
| typedef enum e_func_class { |
| FC_RTP = IMCB_IMC_FC_RTP, |
| FC_XMIT = IMCB_IMC_FC_XMIT, |
| FC_VOICE = IMCB_IMC_FC_VOICE, |
| FC_VIDEO = IMCB_IMC_FC_VIDEO, |
| FC_DTMF = IMCB_IMC_FC_DTMF, |
| FC_CODEC = IMCB_IMC_FC_CODEC, |
| FC_HANDOVER = IMCB_IMC_FC_HANDOVER, |
| FC_TTY = IMCB_IMC_FC_TTY, |
| } func_class_e; |
| |
| typedef enum e_xmit_mode { |
| XMIT_MODE_NONE=0, |
| XMIT_MODE_INACTIVE, |
| XMIT_MODE_SENDONLY, |
| XMIT_MODE_RECVONLY, |
| XMIT_MODE_SENDRECV, |
| XMIT_MODE_ACTIVE, |
| } xmit_mode_e; |
| |
| typedef enum e_ecfg{ |
| LTECSR_ECFG_NONE = 0, |
| LTECSR_ECFG_DTX_ENABLE = 1, |
| LTECSR_ECFG_SILENCE_DROPCALL_THRESHOLD = 2, |
| LTECSR_ECFG_JBM_LOAD_PARAMS_ENABLE = 3, |
| LTECSR_ECFG_JBM_PREBUF_LEN = 4, |
| LTECSR_ECFG_JBM_JITTER_MAX_DEPTH = 5, |
| LTECSR_ECFG_JBM_JITTER_FULL_OFFSET = 6, |
| LTECSR_ECFG_LTECSR_COMMON_PARA0 = 7, |
| LTECSR_ECFG_LTECSR_COMMON_PARA1 = 8, |
| LTECSR_ECFG_LTECSR_COMMON_PARA2 = 9, |
| LTECSR_ECFG_LTECSR_COMMON_PARA3 = 10, |
| LTECSR_ECFG_LTECSR_COMMON_PARA4 = 11, |
| |
| LTECSR_ECFG_SILENCE_TO_RRC_REPORT_THRRESHOLD = 12, |
| LTECSR_ECFG_RTP_EXPIRE_TIMER = 13, |
| LTECSR_ECFG_RTCP_EXPIRE_TIMER = 14, |
| LTECSR_ECFG_RTCP_XR_INTERVAL = 15, |
| LTECSR_ECFG_RTCP_XR_COMPOUND_RTCP = 16, |
| LTECSR_ECFG_RTCP_XR_GMIN = 17, |
| LTECSR_ECFG_RTCP_FIX_INTERVAL_ACTIVE = 18, |
| LTECSR_ECFG_RTCP_FIX_INTERVAL_HOLD = 19, |
| LTECSR_ECFG_TTY_SYNC_BUF_TIME = 20, |
| LTECSR_ECFG_TTY_WAIT_TIME = 21, |
| LTECSR_ECFG_TTY_SEN_DIFF = 22, |
| LTECSR_ECFG_SILENCE_PING_PCSCF_THRESHOLD = 23, |
| LTECSR_ECFG_RTCP_MIN_INTERVAL = 24, |
| LTECSR_ECFG_RTCP_MAX_INTERVAL = 25, |
| LTECSR_ECFG_STAT_FEATURE_OPTION = 26, |
| LTECSR_ECFG_STAT_REPORT_INTERVAL = 27, |
| LTECSR_ECFG_EVS_PREFER_RATE = 28, |
| |
| LTECSR_ECFG_RESET_DEFAULT = 29, |
| |
| LTECSR_ECFG_TEXT_RTP_EXPIRE_TIMER = 30, |
| LTECSR_ECFG_TEXT_RTCP_EXPIRE_TIMER = 31, |
| LTECSR_ECFG_TEXT_RTP_RTCP_EXPIRE_TIMER = 32, |
| LTECSR_ECFG_WFC_SILENCE_THRESHOLD = 33, |
| LTECSR_ECFG_EVOLTE_DELAY_THRESHOLD = 34, |
| LTECSR_ECFG_EVOLTE_JITTER_THRESHOLD = 35, |
| LTECSR_ECFG_EVOLTE_PLR_THRESHOLD = 36, |
| LTECSR_ECFG_EVOLTE_ANBR_ENABLE = 37, |
| LTECSR_ECFG_EVOLTE_ANBR_PARA = 38, |
| |
| LTECSR_ECFG_DUMP_PROFILE = 39, |
| LTECSR_ECFG_NO_RTP_DROPCALL = 40, |
| LTECSR_ECFG_UL_SILENCE_DROPCALL_THRESHOLD = 41, |
| |
| LTECSR_ECFG_RA_PARA = 44, |
| LTECSR_ECFG_RA_DURATION_MAX = 45, |
| LTECSR_ECFG_RA_DURATION_LOW = 46, |
| LTECSR_ECFG_RA_RSRP_POOR_TH = 47, |
| LTECSR_ECFG_RA_RSRP_GOOD_TH = 48, |
| LTECSR_ECFG_RA_SINR_POOR_TH = 49, |
| LTECSR_ECFG_RA_SINR_GOOD_TH = 50, |
| |
| LTECSR_ECFG_MAX , |
| } ecfg_e; |
| |
| enum VoLTE_Event_IP_Version_e { |
| VoLTE_Event_IPv4 = 0, |
| VoLTE_Event_IPv6, |
| /*add here*/ |
| VoLTE_Event_IPv_Max, |
| }; |
| |
| enum VoLTE_Event_ECN_RTP_METHOD_e { |
| VoLTE_Event_ECN_RTP_NONE = 0, |
| VoLTE_Event_ECN_RTP, |
| VoLTE_Event_ECN_RTP_ICE, |
| VoLTE_Event_ECN_RTP_LEAP, |
| /*add here*/ |
| VoLTE_Event_ECN_RTP_Max, |
| }; |
| |
| /* Bit-map |
| |
| bit0: ALTC |
| |
| */ |
| enum VoLTE_Event_Media_Feature_Flag_e { |
| VoLTE_Event_Media_Feature_Flag_Altc = (1<<0), |
| }; |
| |
| typedef enum e_dtmf_mode { |
| DTMF_IN_BAND=0, |
| DTMF_OUT_BAND=1, |
| DTMF_INOUT_BAND=2, |
| } dtmf_mode_e; |
| |
| typedef enum e_dtmf_duration { |
| DTMF_PLAY_INFINITE=-1, |
| DTMF_STOP=0, |
| DTMF_PLAY_ONESHOT=40, |
| /* others value: for unit(ms) */ |
| } dtmf_duration_e; |
| |
| typedef enum e_dtmf_clock_rate { |
| DTMF_CLOCK_RATE_8000 = 0, |
| DTMF_CLOCK_RATE_16000 = 1, |
| } dtmf_clock_rate_e; |
| |
| typedef struct s_xxx2ltecsr_dtmf_param { |
| kal_int32 cid; |
| // kal_int32 sid; |
| kal_uint8 digit; |
| // kal_int8 mode; |
| kal_int8 duration; |
| } xxx2ltecsr_dtmf_param_t; |
| |
| typedef enum e_dtmf_event_state { |
| DTMF_KEY_RELEASE =0, |
| DTMF_KEY_PUSH_STR=1, |
| DTMF_KEY_PUSH_ING=2, |
| DTMF_KEY_PUSH_RE1=3, |
| DTMF_KEY_PUSH_RE2=4, |
| DTMF_KEY_PUSH_RE3=5, |
| } dtmf_event_state_e; |
| |
| typedef enum { |
| LTECSR_HO_START = 0, |
| LTECSR_HO_END = 1 |
| } ltecsr_ho_stage_enum; |
| |
| |
| |
| #define VOLTE_IPV4_LENGTH 4 |
| #define VOLTE_IPV6_LENGTH 16 |
| |
| /** For EVS START **/ |
| /* Ref 3GPP 26.445 Table A.3 */ |
| /* Only for Primary mode */ |
| enum VoLTE_EVS_Codec_Bitrate_e { |
| VoLTE_EVS_Codec_Bitrate_5_9 = 0x0, |
| VoLTE_EVS_Codec_Bitrate_7_2, |
| VoLTE_EVS_Codec_Bitrate_8_0, |
| VoLTE_EVS_Codec_Bitrate_9_6, |
| VoLTE_EVS_Codec_Bitrate_13_2, |
| VoLTE_EVS_Codec_Bitrate_16_4, |
| VoLTE_EVS_Codec_Bitrate_24_4, |
| VoLTE_EVS_Codec_Bitrate_32_0, |
| VoLTE_EVS_Codec_Bitrate_48_0, |
| VoLTE_EVS_Codec_Bitrate_64_0, |
| VoLTE_EVS_Codec_Bitrate_96_0, |
| VoLTE_EVS_Codec_Bitrate_128_0 = 0xB, |
| VoLTE_EVS_Codec_Bitrate_NONE = 0xF, |
| }; |
| |
| enum VoLTE_EVS_Bandwidth_e { |
| VoLTE_EVS_Bandwidth_NB = 0x0, |
| VoLTE_EVS_Bandwidth_WB, |
| VoLTE_EVS_Bandwidth_SWB, |
| VoLTE_EVS_Bandwidth_FB, |
| VoLTE_EVS_Bandwidth_MAX, |
| VoLTE_EVS_Bandwidth_NONE = 0xF, |
| }; |
| /** For EVS END **/ |
| |
| typedef struct s_media_param { |
| VoLTE_Event_Media_config_t o; |
| } media_param_t; |
| |
| typedef struct bearer_mbr_gbr { |
| kal_int32 dl_gbr; |
| kal_int32 dl_mbr; |
| kal_int32 ul_gbr; |
| kal_int32 ul_mbr; |
| } bearer_mbr_gbr_t; |
| |
| typedef struct s_xxx2ltecsr_param { |
| |
| /* call id */ |
| kal_int32 cid; |
| |
| /* session id */ |
| kal_int32 voice_sid; |
| kal_int32 video_sid; |
| |
| /* BID for voice and video */ |
| /* for media_del, BID is not used */ |
| kal_int32 voice_bid; /* LTE: EBI, NR: PSI|QFI */ |
| kal_int32 video_bid; /* LTE: EBI, NR: PSI|QFI */ |
| |
| /* channel for voice and video */ |
| kal_uint16 voice_type; /* 0 (LTE), 1 (WIFI), 2 (NR) */ |
| kal_uint16 video_type; /* 0 (LTE), 1 (WIFI), 2 (NR) */ |
| |
| /* op code */ |
| kal_uint32 func_class; |
| |
| /* Default Bearer ID */ |
| kal_uint32 default_bid; /* LTE: Default EBI, NR: PSI|Default QFI */ |
| |
| /* PDN Context ID */ |
| kal_uint32 pdn_cid; |
| |
| /* all parameters */ |
| media_param_t params; |
| |
| /* pcscf */ |
| kal_uint32 ip_version; /* 1 (IPv4), 2 (IPv6) */ |
| kal_int8 pcscf_address[IMCB_IMC_IPADDR_LENGTH]; |
| kal_uint8 if_name[IMC_MAX_IF_NAME_LENGTH]; |
| |
| /* text sid for TTY/RTT |
| 0 default value |
| -1 delete tty/rtt |
| others tty/rtt alive |
| */ |
| kal_int32 tty_sid; |
| kal_int32 tty_bid; /* LTE: EBI, NR: PSI|QFI */ |
| |
| kal_uint16 tty_type; /* 0 (LTE), 1 (WIFI), 2 (NR) */ |
| kal_uint16 gbr_mbr_present_mask; /* 0x1 voice, 0x2 video, 0x4 tty */ |
| |
| bearer_mbr_gbr_t voice_bearer_quatlity; |
| bearer_mbr_gbr_t video_bearer_quatlity; |
| bearer_mbr_gbr_t tty_bearer_quatlity; |
| } xxx2ltecsr_param_t ; |
| /* from IMC to LTECSR */ |
| typedef struct s_ltecsr_media_new { |
| LOCAL_PARA_HDR |
| kal_uint32 tv_sec; // IMCB use gettimeofday to get the time from 1970 (sec) |
| xxx2ltecsr_param_t param; |
| } ltecsr_media_new_struct; |
| |
| typedef struct s_ltecsr_media_del { |
| LOCAL_PARA_HDR |
| xxx2ltecsr_param_t param; |
| } ltecsr_media_del_struct; |
| |
| typedef struct s_ltecsr_media_update { |
| LOCAL_PARA_HDR |
| xxx2ltecsr_param_t param; |
| } ltecsr_media_update_struct; |
| |
| typedef struct s_ltecsr_media_active { |
| LOCAL_PARA_HDR |
| kal_int32 cid; |
| kal_int32 direction; |
| } ltecsr_media_active_struct; |
| |
| /* from LTECSR to IMC */ |
| typedef struct s_ltecsr_media_no_dlpkt_struct { |
| LOCAL_PARA_HDR |
| kal_int32 cid; |
| } ltecsr_media_no_dlpkt_struct; |
| |
| typedef struct s_ltecsr_media_no_ulpkt_struct { |
| LOCAL_PARA_HDR |
| kal_int32 cid; |
| } ltecsr_media_no_ulpkt_struct; |
| |
| |
| /*from LTECSR to IMC, if ANBR can not supported by the negotiated codec, notify UA for further SIP procedure*/ |
| typedef struct s_ltecsr_media_anbr_notify_ind_struct { |
| LOCAL_PARA_HDR |
| kal_int32 cid; |
| kal_uint32 anbr_value; /*for cid, AS(including RTP and RTCP) supported by access network(e.g, LTE)*/ |
| }ltecsr_media_anbr_notify_ind_struct; |
| |
| /*from IMC to LTECSR, UA tells that SIP negotiated based on ANBR fails, then LTECSR shall not notify ANBR with the same bearer and session again*/ |
| typedef struct s_ltecsr_media_anbr_notify_rsp_struct { |
| LOCAL_PARA_HDR |
| kal_int32 cid; |
| kal_uint32 anbr_result; /*0: SIP negotiated base on ANBR fails; 1: SIP negotiated based on ANBR success; other value: ignore*/ |
| }ltecsr_media_anbr_notify_rsp_struct; |
| |
| |
| |
| /** |
| * IMC External |
| */ |
| typedef struct s_ltecsr_dtmf_req { |
| LOCAL_PARA_HDR |
| xxx2ltecsr_dtmf_param_t param; |
| } ltecsr_dtmf_req_struct; |
| |
| typedef struct s_ltecsr_media_incoming_dlpkt_struct { |
| LOCAL_PARA_HDR |
| kal_int32 cid; |
| } ltecsr_media_incoming_dlpkt_struct; |
| |
| /* HANDOVER with ebi */ |
| typedef struct s_ltecsr_handover_begin_struct{ |
| imcf_uint8 source_rat_type; |
| imcf_uint8 target_rat_type; |
| imcf_uint8 default_ebi; |
| imcf_uint8 pad; |
| imcf_uint32 network_id; |
| } ltecsr_handover_begin_struct; |
| |
| typedef struct s_ltecsr_handover_end_struct{ |
| imcf_uint8 source_rat_type; |
| imcf_uint8 target_rat_type; |
| imcf_uint8 is_success; |
| imcf_uint8 default_ebi; |
| imcf_uint32 network_id; |
| } ltecsr_handover_end_struct; |
| |
| /** |
| * L1SP External |
| */ |
| typedef struct s_ltecsr_voice_ul_data_notify { |
| LOCAL_PARA_HDR |
| } ltecsr_voice_ul_data_notify_struct; |
| |
| /** |
| * LTECSR Internal |
| */ |
| typedef struct s_ltecsr_media_init { |
| LOCAL_PARA_HDR |
| xxx2ltecsr_param_t param; |
| } ltecsr_media_init_struct; |
| |
| typedef struct s_ltecsr_media_start { |
| LOCAL_PARA_HDR |
| kal_int32 cid; |
| kal_int32 sid; |
| } ltecsr_media_start_struct; |
| |
| typedef struct s_ltecsr_media_stop { |
| LOCAL_PARA_HDR |
| kal_int32 cid; |
| kal_int32 sid; |
| } ltecsr_media_stop_struct; |
| |
| typedef struct s_ltecsr_media_xmit_mode_set { |
| LOCAL_PARA_HDR |
| kal_int32 cid; |
| kal_int32 sid; |
| kal_int8 xmit_mode; /* xmit_mode_e */ |
| } ltecsr_media_xmit_mode_set_struct; |
| |
| typedef struct s_ltecsr_dtmf_play { |
| LOCAL_PARA_HDR |
| xxx2ltecsr_dtmf_param_t param; |
| } ltecsr_dtmf_play_struct; |
| |
| typedef struct s_ltecsr_dtmf_stop { |
| LOCAL_PARA_HDR |
| kal_int32 cid; |
| } ltecsr_dtmf_stop_struct; |
| |
| typedef struct s_ltecsr_media_pt_set { |
| LOCAL_PARA_HDR |
| kal_int32 cid; |
| kal_int32 codec; |
| kal_int32 pt; |
| } ltecsr_media_pt_set_struct; |
| |
| typedef struct s_ltecsr_rtcp_send_interval_set { |
| LOCAL_PARA_HDR |
| kal_int32 cid; |
| kal_int32 sid; |
| kal_int32 rtcp_send_interval; |
| } ltecsr_rtcp_send_interval_set_struct; |
| |
| |
| /* For new mechanism, |
| * ecfg_req/ecfg_cnf are used for LTECSR internally. |
| * we keep structure here for old IMC code not removed yet. |
| */ |
| typedef struct s_ltecsr_ecfg_req { |
| LOCAL_PARA_HDR |
| kal_bool op_code; // 0:get, 1:set |
| ecfg_e config_type; |
| kal_uint8 config_size; |
| kal_uint32 value; // only set op_code will use it |
| } ltecsr_ecfg_req_struct; |
| |
| typedef struct s_ltecsr_ecfg_cnf { |
| LOCAL_PARA_HDR |
| kal_bool result; // KAL_TRUE or KAL_FALSE |
| kal_bool op_code; // 0:get, 1:set |
| ecfg_e config_type; |
| kal_uint8 config_size; |
| kal_uint32 value; // only get op_code will use it |
| } ltecsr_ecfg_cnf_struct; |
| |
| |
| typedef struct s_ltecsr_epdg_ho_ind { |
| LOCAL_PARA_HDR |
| kal_int32 stage; // ltecsr_ho_stage_enum |
| kal_int32 rat; // rat: 0->3GPP, 1->WiFi |
| kal_int32 network_id; // network_id |
| kal_int32 pdn_id; // if (stage==1 && rat==0), pdn_id must be non-zero; LTE: Default EBI, NR: PDU Session ID |
| kal_uint8 if_name[IMC_MAX_IF_NAME_LENGTH]; |
| } ltecsr_epdg_ho_ind_struct; |
| |
| /* interface to ATP */ |
| typedef enum e_ltecsr_event_type { |
| LTECSR_EVENT_NONE = 0, |
| LTECSR_EVENT_ONE_WAY = 1, |
| LTECSR_EVENT_NEED_CNF = 2, |
| LTECSR_EVENT_CNF = 3, |
| LTECSR_EVENT_MAX = 0xff, |
| } ltecsr_event_type_e; |
| |
| typedef enum e_ltecsr_atp_event { |
| LTECSR_ATP_NONE = 0, |
| LTECSR_ATP_RTP_SESSION_TIMEOUT = 1, |
| LTECSR_ATP_PKT_INFO_URC = 2, |
| LTECSR_ATP_IMS_AUDIO_SILENCE_IND = 3, |
| LTECSR_ATP_MAX = 0xff, |
| } ltecsr_atp_event_e; |
| |
| typedef enum e_ltecsr_action_ind { |
| LTECSR_IND_NONE = 0, |
| LTECSR_IND_EPDG = 1, |
| LTECSR_IND_PCSCF = 2, |
| LTECSR_IND_MAX = 0xff, |
| } ltecsr_action_ind_e; |
| |
| typedef struct s_ltecsr_atp_req_struct { |
| LOCAL_PARA_HDR |
| kal_uint32 index; |
| ltecsr_event_type_e type; |
| ltecsr_atp_event_e msg; |
| } ltecsr_atp_req_struct; |
| |
| typedef struct s_ltecsr_rtp_sample_time_ind_struct { |
| LOCAL_PARA_HDR |
| kal_uint8 pdn_id; |
| kal_uint32 network_id; |
| kal_uint32 timer; |
| } ltecsr_rtp_sample_time_ind_struct; |
| |
| typedef struct s_ltecsr_rtp_session_expire_ind { |
| kal_uint32 id; |
| kal_uint32 pdn_id; |
| kal_uint32 network_id; |
| kal_uint32 timer; |
| kal_uint32 timeout; |
| kal_uint32 action; |
| } ltecsr_rtp_session_expire_ind_struct; |
| |
| typedef struct s_ltecsr_pkt_info_urc_struct { |
| kal_uint32 id; |
| kal_uint32 pdn_id; |
| kal_uint32 network_id; |
| kal_uint32 timer; // statistic duration (ms) |
| kal_uint32 ul_lost; // Uplink pkt loss rate (1/256) |
| kal_uint32 dl_lost; // Downlink pkt loss rate (%) |
| kal_uint32 jitter; // jitter (ms) |
| kal_uint32 rtt; // round trip time (ms) |
| } ltecsr_pkt_info_urc_struct; |
| |
| typedef struct s_ltecsr_ims_audio_silence_ind_struct { |
| kal_uint32 call_id; |
| kal_uint32 is_silence; |
| } ltecsr_ims_audio_silence_ind_struct; |
| |
| |
| typedef struct _ltecsr_ims_notify_msg_t{ |
| kal_uint32 call_id; //unique call id |
| kal_uint8 msg_id; //enum value should be maintain in shared point |
| kal_uint8 ver; //structure version number start from 0 |
| kal_uint16 rsv; //reserve bit must fill 0 (for 4 byte alignment) |
| kal_uint8 ext[64]; //reserve for future other usage |
| } ltecsr_ims_notify_msg_t; |
| |
| typedef struct s_ltecsr_ims_notify_ind_struct { |
| LOCAL_PARA_HDR |
| ltecsr_ims_notify_msg_t msg; |
| } ltecsr_ims_notify_ind_struct; |
| |
| typedef struct s_ltecsr_ims_notify_req_struct { |
| LOCAL_PARA_HDR |
| ltecsr_ims_notify_msg_t msg; |
| } ltecsr_ims_notify_req_struct; |
| |
| typedef enum e_ltecsr_ims_notify{ |
| LTECSR_IMS_NOTIFY_NONE = 0, |
| LTECSR_IMS_RTP_TIMER_EXPIRE = 1, |
| LTECSR_IMS_RTCP_TIMER_EXPIRE = 2, |
| LTECSR_IMS_RTP_WARNING_TIMER_EXPIRE = 3, |
| LTECSR_IMS_TEXT_RTP_RTCP_TIMER_EXPIRE = 4, |
| LTECSR_IMS_TEXT_RTP_TIMER_EXPIRE = 5, |
| LTECSR_IMS_TEXT_RTCP_TIMER_EXPIRE = 6, |
| LTECSR_IMS_PARAM_ERROR_NOTIFY = 7, |
| LTECSR_IMS_RTP_TIMER_SDP_REFRESH = 8, |
| LTECSR_IMS_NOTIFY_MAX = 0xff, |
| } ltecsr_ims_notify_e; |
| |
| /** |
| * L1C to LTECSR |
| */ |
| typedef struct s_ltecsr_l1c_latency_test_detection_ind { |
| LOCAL_PARA_HDR |
| kal_bool latency_test_flag; // 1: detected, 0: not detected |
| } ltecsr_l1c_latency_test_detection_ind_struct; |
| |
| /* |
| * LTECSR Self Profile(NVRAM) Logging |
| */ |
| #ifdef __VOLTE_SUPPORT__ |
| typedef struct { |
| LOCAL_PARA_HDR |
| |
| kal_uint32 sim_slot_id; |
| nvram_ef_ltecsr_profile_record_struct profile; |
| } ltecsr_profile_dump_struct; |
| #endif |
| |
| /* |
| * LTECSR to IWLAN |
| */ |
| typedef enum _ltecsr_ping_result_e { |
| NETWORK_PING_PCSCF_NO_REPLY = 1, |
| NETWORK_PING_PCSCF_PART_REPLY = 2, |
| NETWORK_PING_PCSCF_FULL_REPLY = 3, |
| }ltecsr_ping_result_e; |
| |
| /*********** ERRC ************/ |
| typedef enum e_ltecsr_errc_volte_status { |
| LTECSR_ERRC_VOLTE_CALL_START = 0, |
| LTECSR_ERRC_VOLTE_CALL_END = 1, |
| } ltecsr_errc_volte_status_e; |
| |
| typedef enum e_ltecsr_errc_delay_budget_cmd { |
| LTECSR_ERRC_DB_RELEASE = 0, |
| LTECSR_ERRC_DB_SETUP = 1, |
| } ltecsr_errc_delay_budget_cmd_e; |
| |
| typedef enum e_ltecsr_errc_delay_budget_type { |
| LTECSR_ERRC_DB_INVALID = 0, |
| LTECSR_ERRC_DB_TYPE1 = 1, |
| LTECSR_ERRC_DB_TYPE2 = 2, |
| } ltecsr_errc_delay_budget_type_e; |
| |
| typedef enum e_ltecsr_errc_volte_quality { |
| LTECSR_ERRC_VOICE_GOOD = 0, |
| LTECSR_ERRC_VOICE_BAD = 1, |
| } ltecsr_errc_volte_quality_e; |
| |
| |
| /* VoLTE Status: LTECSR -> ERRC */ |
| typedef struct s_ltecsr_errc_volte_status_ntf_struct { |
| LOCAL_PARA_HDR |
| ltecsr_errc_volte_status_e volte_status; |
| } ltecsr_errc_volte_status_ntf_struct; |
| |
| |
| /* Delay Budget: ERRC -> LTECSR */ |
| typedef struct s_ltecsr_errc_delay_budget_rpt_req_struct { |
| LOCAL_PARA_HDR |
| ltecsr_errc_delay_budget_cmd_e cmd; |
| } ltecsr_errc_delay_budget_rpt_req_struct; |
| |
| typedef struct s_ltecsr_errc_delay_budget_result_ind_struct { |
| LOCAL_PARA_HDR |
| ltecsr_errc_delay_budget_type_e type; // type 1 or 2 report to eNB |
| kal_int16 value; // unit: ms, reported value |
| } ltecsr_errc_delay_budget_result_ind_struct; // JBM could use this info to do some enhancement |
| |
| /* Delay Budget: LTECSR -> ERRC */ |
| typedef struct s_ltecsr_errc_delay_budget_rpt_cnf_struct { |
| LOCAL_PARA_HDR |
| ltecsr_errc_volte_quality_e volte_quality; |
| kal_int16 e2e_delay; // unit: ms |
| kal_int16 speech_delay; // unit: ms, UL+DL speech delay |
| kal_int16 JBM_delay_budget; // unit: ms |
| kal_int16 delay_threshold; // unit: ms, mouth-to-ear delay threshold defined by NVRAM |
| } ltecsr_errc_delay_budget_rpt_cnf_struct,ltecsr_errc_delay_budget_rpt_ind_struct; |
| |
| /*ANBRQ support or not from LTE: UPCM -> LTECSR*/ |
| typedef struct s_ltecsr_upcm_anbrq_config_ind_struct { |
| LOCAL_PARA_HDR |
| kal_bool anbrq_config; /*true: anbrq support; false: anbrq not support*/ |
| }ltecsr_upcm_anbrq_config_ind_struct; |
| |
| /*ABNR: UPCM->LTECSR*/ |
| typedef struct s_ltecsr_upcm_anbr_ind_struct { |
| LOCAL_PARA_HDR |
| #ifdef __FIVEG_VOICE__ |
| kal_uint8 bearer_id; // EBI/QFI |
| kal_uint8 pdu_session_id; // LTE: 0, NR: PSI |
| #else /* __FIVEG_VOICE__ */ |
| kal_uint8 ebi; |
| #endif /* __FIVEG_VOICE__ */ |
| kal_bool is_ul; |
| kal_uint32 bitrate; /*bps, recommendated bitrate (in RTP payload level) from Access Network, after removing LTE related header (ROHC/PDCP/RLC/MAC.)*/ |
| }ltecsr_upcm_anbr_ind_struct; |
| |
| /*ANBRQ: LTECSR->UPCM*/ |
| typedef struct s_ltecsr_upcm_anbrq_req_struct { |
| LOCAL_PARA_HDR |
| #ifdef __FIVEG_VOICE__ |
| kal_uint8 bearer_id; // EBI/QFI |
| kal_uint8 pdu_session_id; // LTE: 0, NR: PSI |
| #else /* __FIVEG_VOICE__ */ |
| kal_uint8 ebi; |
| #endif /* __FIVEG_VOICE__ */ |
| kal_bool is_ul; |
| kal_uint32 bitrate; /*bps, queryed bitrate (in RTP payload level) to Access Network*/ |
| }ltecsr_upcm_anbrq_req_struct; |
| |
| #ifdef __FIVEG_VOICE__ |
| /*IPV4V6: LTECSR->UPCM*/ |
| typedef struct s_ltecsr_upcm_ipv4v6_req_struct { |
| LOCAL_PARA_HDR |
| kal_uint8 bearer_id; // EBI/QFI |
| kal_uint8 ipv4v6_type; |
| kal_uint8 pdu_session_id; // LTE: 0, NR: PSI |
| }ltecsr_upcm_ipv4v6_req_struct; |
| #endif /* __FIVEG_VOICE__ */ |
| |
| /*********** NRRC - LTECSR SAP ************/ |
| typedef enum { |
| LTECSR_NR_DELAY_BUDGET_REPORTING_COMMAND_STOP = 0, |
| LTECSR_NR_DELAY_BUDGET_REPORTING_COMMAND_START = 1 |
| } ltecsr_nr_delay_budget_reporting_command_enum; |
| |
| typedef enum { |
| LTECSR_NR_DELAY_BUDGET_REPORT_TYPE_TYPE1 = 1 |
| } ltecsr_nr_delay_budget_report_type_enum; |
| |
| /* NRRC_LTECSR_DELAY_BUDGET_REPORT_REQ (NRRC -> LTECSR) */ |
| typedef struct s_ltecsr_nrrc_delay_budget_report_req_struct { |
| LOCAL_PARA_HDR |
| ltecsr_nr_delay_budget_reporting_command_enum command; |
| } nrrc_ltecsr_delay_budget_report_req_struct; |
| |
| /* NRRC_LTECSR_DELAY_BUDGET_REPORT_IND (LTECSR -> NRRC) */ |
| typedef struct s_ltecsr_nrrc_delay_budget_report_ind_struct{ |
| LOCAL_PARA_HDR |
| kal_bool valid; |
| kal_bool is_voice_quality_good; |
| kal_uint16 voice_delay; |
| kal_uint16 jbm_delay_budget; |
| kal_uint16 max_acceptable_delay; |
| } nrrc_ltecsr_delay_budget_report_ind_struct; |
| |
| /* NRRC_LTECSR_DELAY_BUDGET_RESULT_HANDLE_REQ (NRRC -> LTECSR) */ |
| typedef struct s_ltecsr_nrrc_delay_budget_result_handle_req_struct { |
| LOCAL_PARA_HDR |
| ltecsr_nr_delay_budget_report_type_enum type; |
| kal_int16 drx_adjustment; |
| } nrrc_ltecsr_delay_budget_result_handle_req_struct; |
| |
| #endif |
| |