/*****************************************************************************
*  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) 2012
*
*  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:
 * ---------
 *   imcb_msgid.h
 *
 * Project:
 * --------
 *   MOLY
 *
 * Description:
 * ------------
 *
 * Author:
 * -------
 * -------
 *
 * ==========================================================================
 * $Log$
 *
 * 09 16 2022 xin.ni
 * [MOLY00827342] [FOCUS][MT6879][Figeac][S0][R2][JAPAN][SOFTBANK][SIM][Lab][OTR-Voice-032031] VoLTE 4sec cancel timer to apply to EPS-FB case
 * 	
 * 	.
 *
 * 03 22 2022 yung-liang.tsou
 * 	
 * 	.
 *
 * [MOLY00784440] [FeatureDevelopment][ALPSAR06354999][Gen97/98][AT&T][v21.3][CDR-LTE-1447][CDR-IMS-1210] IMS voice not available when PDN reject casue 28, 33
 * .imcb msg id
 *
 * 12 16 2021 xin.ni
 * [MOLY00774161] [mt2735][CS eCall][NG eCall][patch back] ecall patch back from NR15.R3.MD700.MP.ECAll.DEV
 * 	
 * 	.
 *
 * 12 06 2021 xin.ni
 * [MOLY00774161] [mt2735][CS eCall][NG eCall][patch back] ecall patch back from NR15.R3.MD700.MP.ECAll.DEV
 * 	SWRD interface Part.
 * 	.
 *
 * 05 18 2021 ot_hui.tu
 * [MOLY00389007] eCall over IMS IMC interface part
 * 	
 * 	.
 *
 * 08 26 2019 jani.manninen
 * [MOLY00433041] [Gen97][EPSFB] IT related issues
 * 	
 * 	VMOLY.APOLLO.SQC - IMS 5G Voice Support Changes
 *
 * 08 14 2019 jani.manninen
 * [MOLY00431826] [VONR] IMC Changes for 5G Voice Support - SAP
 * 	
 * 	VMOLY.V.5GVOICE.DEV - SAP - SWRD
 *
 * 01 08 2019 mika.leinonen
 * [MOLY00367126] [Gen97][IMS] VoLTE porting
 * Adding IMS interfaces to trace database.
 *
 * 12 31 2018 huifeng.jing
 * [MOLY00375660] [IMS][Gen97 submarine] VTS interface developments
 * remove build error.
 *
 * 12 29 2018 huifeng.jing
 * [MOLY00375660] [IMS][Gen97 submarine] VTS interface developments
 * ims_hif over tty.
 *
 * 12 21 2018 szu-chieh.chiu
 * [MOLY00366884] [IMS][Gen97] IMCB related developments
 * [Gen97] Tracing.
 * 	1. DHL logging event: dump sim_context
 *
 * 12 18 2018 johnson.liu
 * [MOLY00373083] [Gen97][Submarine][IMC]Pcscf address discovery via sim by imc
 * patch back to dev.
 *
 * 12 11 2018 joni.huttula
 * [MOLY00372130] [Gen97][IMS] MSG_ID change and some bug fix to run UT.
 *
 * 12 11 2018 joni.huttula
 * [MOLY00372130] [Gen97][IMS] MSG_ID change and some bug fix to run UT.
 *
 ****************************************************************************/

#ifndef _IMCB_MSGID_H_
#define _IMCB_MSGID_H_

#include "module_msg_range.h"

/*------------------- IMCB_MSG_CODE_BEGIN---------------------*/
MODULE_MSG_BEGIN( MSG_ID_IMCB_CODE_BEGIN )

    MSG_ID_IMCB_BEGIN,

    MSG_ID_IMCB_EX_BEGIN,

    /* with IMSM */
    MSG_ID_IMSM_IMCB_BEGIN,

        MSG_ID_IMSM_IMCB_PDN_ACT_PROGRESSING_NOTIFY_REQ,
        MSG_ID_IMSM_IMCB_PDN_ACT_ACK_RSP,
        MSG_ID_IMSM_IMCB_PDN_ACT_REJ_RSP,

        MSG_ID_IMSM_IMCB_DEDICATED_BEARER_ACT_IND,
        MSG_ID_IMSM_IMCB_DEDICATED_BEARER_ACT_ACK_RSP,
        MSG_ID_IMSM_IMCB_DEDICATED_BEARER_ACT_REJ_RSP,
        MSG_ID_IMSM_IMCB_DEDICATED_BEARER_ACT_NOTIFY_REQ,

        MSG_ID_IMSM_IMCB_DEACT_ACK_RSP,
        MSG_ID_IMSM_IMCB_DEACT_REJ_RSP,
        MSG_ID_IMSM_IMCB_DEACT_NOTIFY_REQ,

        MSG_ID_IMSM_IMCB_MODIFY_ACK_RSP,
        MSG_ID_IMSM_IMCB_MODIFY_REJ_RSP,
        MSG_ID_IMSM_IMCB_MODIFY_NOTIFY_REQ,

        MSG_ID_IMSM_IMCB_PDN_BEARER_UPDATE_NOTIFY_REQ,
        MSG_ID_IMSM_IMCB_HANDOVER_START_NOTIFY_REQ,
        MSG_ID_IMSM_IMCB_HANDOVER_STOP_NOTIFY_REQ,
        MSG_ID_IMSM_IMCB_HANDOVER_IP_READY_NOTIFY_REQ,

        MSG_ID_IMSM_IMCB_UPDATE_IPV4_GLOBAL_ADDR_NOTIFY_REQ,
        MSG_ID_IMSM_IMCB_UPDATE_IPV6_GLOBAL_ADDR_NOTIFY_REQ,
        MSG_ID_IMSM_IMCB_IRAT_WITHOUT_IP_CHANGE_REQ,

        MSG_ID_IMSM_IMCB_PCO_UPDATE_REQ,

        MSG_ID_IMSM_IMCB_RESET_SUGGESTION_TIMER_REQ,
        MSG_ID_IMSM_IMCB_DEACT_IND,
        MSG_ID_IMCB_IMSM_INPUT_MSG_PARA_CHECKING_FAIL_IND,
        MSG_ID_IMSM_IMCB_MODIFY_IND,
        MSG_ID_IMCB_IMSM_PDN_ACT_IND,
        MSG_ID_IMSM_IMCB_PDN_ACT_IND,
        MSG_ID_IMCB_IMSM_DEACT_IND,
        MSG_ID_IMSM_IMCB_PCSCF_DISCOVERY_VIA_SIM_REJ_RSP,
        MSG_ID_IMSM_IMCB_PCSCF_DISCOVERY_VIA_SIM_ACK_RSP,
        MSG_ID_IMSM_IMCB_PCSCF_DISCOVERY_VIA_PCO_REJ_RSP,
        MSG_ID_IMSM_IMCB_PCSCF_DISCOVERY_VIA_PCO_ACK_RSP,
        MSG_ID_IMSM_IMCB_PCSCF_DISCOVERY_REJ_RSP,
        MSG_ID_IMSM_IMCB_PCSCF_DISCOVERY_ACK_RSP,
        MSG_ID_IMSM_IMCB_IND_TIMER_CANCEL,
        MSG_ID_IMSM_IMCB_IND_TIMER_START,
        
    MSG_ID_IMSM_IMCB_END,

    /* with IMSVT */
    MSG_ID_IMSVT_IMCB_BEGIN,
        /* Type4: IMSVT-IMCB TV { */
        MSG_ID_IMSVT_IMCB_LOOP_TEST_IND,
        MSG_ID_IMSVT_IMCB_LOOP_TEST_RSP,
        MSG_ID_IMSVT_IMCB_COMM_ERROR,

        MSG_ID_IMSVT_IMCB_GET_CAP_IND,
        MSG_ID_IMSVT_IMCB_GET_CAP_RSP,

        MSG_ID_IMSVT_IMCB_CONFIG_INIT_IND,
        MSG_ID_IMSVT_IMCB_CONFIG_UPDATE_IND,
        MSG_ID_IMSVT_IMCB_CONFIG_DEINIT_IND,

        MSG_ID_IMSVT_IMCB_MODIFY_SESSION_REQ,
        MSG_ID_IMSVT_IMCB_MODIFY_SESSION_CNF,
        MSG_ID_IMSVT_IMCB_MODIFY_SESSION_IND,
        MSG_ID_IMSVT_IMCB_MODIFY_SESSION_RSP,

        MSG_ID_IMSVT_IMCB_CONFIG_INIT,
        MSG_ID_IMSVT_IMCB_CONFIG_UPDATE,
        MSG_ID_IMSVT_IMCB_GET_CAP_REQ,

        MSG_ID_IMSVT_IMCB_MOD_BW_REQ,

        MSG_ID_IMSVT_IMCB_HANDOVER_START_IND,
        MSG_ID_IMSVT_IMCB_HANDOVER_STOP_IND,

        MSG_ID_IMSVT_IMCB_MODIFY_SESSION_CANCEL_REQ,
        MSG_ID_IMSVT_IMCB_MODIFY_SESSION_CANCEL_CNF,
        MSG_ID_IMSVT_IMCB_MODIFY_SESSION_CANCEL_IND,
        MSG_ID_IMSVT_IMCB_EVENT_LOCAL_BW_READY_IND,

        MSG_ID_IMSVT_IMCB_CALL_PROGRESS_IND,

        MSG_ID_IMSVT_IMCB_PDN_HANDOVER_BEGIN_IND,
        MSG_ID_IMSVT_IMCB_PDN_HANDOVER_END_IND,

        /* } Type4: IMSVT-IMCB TV */
    MSG_ID_IMSVT_IMCB_END,

    /* with IMC */
    MSG_ID_IMCB_IMC_BEGIN,

        MSG_ID_IMCB_IMC_IPC_IND,
        MSG_ID_IMCB_IMC_IPC_REQ,

        MSG_ID_IMCB_IMC_LOOP_TEST_IND,
        MSG_ID_IMCB_IMC_LOOP_TEST_RSP,

        MSG_ID_IMCB_IMC_SET_TEST_MODE_REQ,
        MSG_ID_IMCB_IMC_SET_TEST_MODE_CELL_INFO_REQ,

        /* IMS SIM */
        MSG_ID_IMCB_IMC_PCSCF_DISCOVERY_VIA_SIM_REQ,
        MSG_ID_IMCB_IMC_PCSCF_DISCOVERY_VIA_SIM_CNF,
        MSG_ID_IMCB_IMC_PCSCF_DISCOVERY_VIA_SIM_REJ,

        /* WFC */
        MSG_ID_IMCB_IMC_HANDOVER_START_REQ,
        MSG_ID_IMCB_IMC_HANDOVER_STOP_REQ,

        /* IMS Registration */
        MSG_ID_IMCB_IMC_REQ_UPDATE_RT_SETTING,
        MSG_ID_IMCB_IMC_IMS_REG_IND,
        MSG_ID_IMCB_IMC_IMS_REG_REJ_RSP,
        MSG_ID_IMCB_IMC_IMS_DEREG_IND,
        MSG_ID_IMCB_IMC_IMS_REG_STATE_REQ,
        MSG_ID_IMCB_IMC_IND_REG_AUTH_REQ,
        MSG_ID_IMCB_IMC_REG_EMS_MODE_REQ,
        MSG_ID_IMCB_IMC_CNF_REG_AUTH_REQ,
        MSG_ID_IMCB_IMC_OOS_START_IND,
        MSG_ID_IMCB_IMC_OOS_END_IND,
        MSG_ID_IMCB_IMC_QUERY_STATE_REQ,
        MSG_ID_IMCB_IMC_QUERY_STATE_CNF,
        MSG_ID_IMCB_IMC_RAT_CHANGE_IND,
        MSG_ID_IMCB_IMC_IMSVOPS_NOTIFICATION_IND,
        MSG_ID_IMCB_IMC_RLM_EVENT_IND,

        /* VILTE */
        MSG_ID_IMCB_IMC_VT_CONNECT_REQ,
        MSG_ID_IMCB_IMC_VT_CAP_QUERY_IND,
        MSG_ID_IMCB_IMC_VT_CAP_QUERY_RSP,

        /* SMS relay */
        MSG_ID_IMCB_IMC_SMS_BEGIN,
            MSG_ID_IMCB_IMC_SEND_SMS_IND,
            MSG_ID_IMCB_IMC_SEND_SMS_RSP,
            MSG_ID_IMCB_IMC_RECV_SMS_REQ,
            MSG_ID_IMCB_IMC_RECV_SMS_CNF,
            MSG_ID_IMCB_IMC_REL_SMS_IND,
            MSG_ID_IMCB_IMC_RECV_SMS_ERROR_REQ,
            MSG_ID_IMCB_IMC_ABORT_SEND_SMS_IND,
            MSG_ID_IMCB_IMC_ABORT_RECV_SMS_IND,
        MSG_ID_IMCB_IMC_SMS_END,

        /* CC relay */
        MSG_ID_IMCB_IMC_CC_BEGIN,
            MSG_ID_IMCB_IMC_CC_CALL_PROGRESS_REQ,
            MSG_ID_IMCB_IMC_CC_SIP_CALL_PROGRESS_IND,
            MSG_ID_IMCB_IMC_CC_MEDIA_REQ,
            MSG_ID_IMCB_IMC_CC_MO_CALL_IND,
            MSG_ID_IMCB_IMC_CC_MO_CALL_RSP,
            MSG_ID_IMCB_IMC_CC_MT_CALL_ABORT_REQ,
            MSG_ID_IMCB_IMC_CC_MT_CALL_PRESENT_REQ,
            MSG_ID_IMCB_IMC_CC_MT_CALL_PRESENT_CNF,
            MSG_ID_IMCB_IMC_CC_MT_CALL_RING_REQ,
            MSG_ID_IMCB_IMC_CC_MO_FORCE_HANGUP_IND,
            MSG_ID_IMCB_IMC_CC_MT_ACCEPT_IND,
            MSG_ID_IMCB_IMC_CC_MT_ACCEPT_RSP,
            MSG_ID_IMCB_IMC_CC_MO_HANGUP_IND,
            MSG_ID_IMCB_IMC_CC_MO_HANGUP_RSP,
            MSG_ID_IMCB_IMC_SRVCC_STATUS_UPDATE_IND,
            MSG_ID_IMCB_IMC_SRVCC_CONTEXT_TRANSFER_REQ,
            MSG_ID_IMCB_IMC_CALL_CONTROL_IND,
            MSG_ID_IMCB_IMC_CALL_CONTROL_RSP,
            MSG_ID_IMCB_IMC_CC_MO_CONF_CALL_IND,
            MSG_ID_IMCB_IMC_CC_MO_CONF_CALL_RSP,

            /* VILTE */
            MSG_ID_IMCB_IMC_CC_VT_ACTIVE_IND,
            MSG_ID_IMCB_IMC_CC_MEDIA_MOD_REQ,
            MSG_ID_IMCB_IMC_CC_VIDEO_CAP_REQ,

            /* SDP info */
            MSG_ID_IMCB_IMC_MEDIA_NEW,
            MSG_ID_IMCB_IMC_MEDIA_UPDATE,
            MSG_ID_IMCB_IMC_MEDIA_DEL,

            /* VILTE */
            MSG_ID_IMCB_IMC_CC_MT_VT_SPECIAL_ACCEPT_IND,
            MSG_ID_IMCB_IMC_CC_MT_VT_SPECIAL_ACCEPT_RSP,
			
			/*ECALL*/
            MSG_ID_IMCB_IMC_CC_ECALL_IN_BAND_MSD_TRANFER_RSP,
            MSG_ID_IMCB_IMC_CC_ECALL_UPDATE_MSD_RSP,			
        MSG_ID_IMCB_IMC_CC_END,

        /* SS relay */
        MSG_ID_IMCB_IMC_SS_BEGIN,
            MSG_ID_IMCB_IMC_SS_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE_IND,
            MSG_ID_IMCB_IMC_SS_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE_RSP,
            MSG_ID_IMCB_IMC_SS_RELEASE_WAITING_OR_ALL_BG_CALLS_IND,
            MSG_ID_IMCB_IMC_SS_RELEASE_WAITING_OR_ALL_BG_CALLS_RSP,
            MSG_ID_IMCB_IMC_SS_RELEASE_ALL_FG_AND_RESUME_BG_CALL_IND,
            MSG_ID_IMCB_IMC_SS_RELEASE_ALL_FG_AND_RESUME_BG_CALL_RSP,
            MSG_ID_IMCB_IMC_SS_RELEASE_ALL_FG_AND_BG_CALLS_IND,
            MSG_ID_IMCB_IMC_SS_RELEASE_ALL_FG_AND_BG_CALLS_RSP,
            MSG_ID_IMCB_IMC_SS_EXPLICIT_CALL_TRANSFER_IND,
            MSG_ID_IMCB_IMC_SS_EXPLICIT_CALL_TRANSFER_RSP,
            MSG_ID_IMCB_IMC_SS_CREATE_CONFERENCE_CALL_IND,
            MSG_ID_IMCB_IMC_SS_CREATE_CONFERENCE_CALL_RSP,
            MSG_ID_IMCB_IMC_SS_ATH_REL_ALL_CALLS_IND,
            MSG_ID_IMCB_IMC_SS_ATH_REL_ALL_CALLS_RSP,
            MSG_ID_IMCB_IMC_SS_LIST_CURRENT_CALLS_IND,
            MSG_ID_IMCB_IMC_SS_LIST_CURRENT_CALLS_RSP,
            MSG_ID_IMCB_IMC_SS_PROGRESS_NOTIFY_REQ,
            MSG_ID_IMCB_IMC_CC_NO_RTPPKT_IND,
            MSG_ID_IMCB_IMC_CC_NO_RTPPKT_RSP,
            MSG_ID_IMCB_IMC_SS_CONFERENCE_CONTROL_REQ,
            MSG_ID_IMCB_IMC_SS_SUBSCRIBE_CONTROL_REQ,
            MSG_ID_IMCB_IMC_SS_CONFERENCE_CONTROL_IND,
            MSG_ID_IMCB_IMC_SS_CONFERENCE_CONTROL_RSP,
            MSG_ID_IMCB_IMC_CC_INCOMING_RTPPKT_IND,
        MSG_ID_IMCB_IMC_SS_END,

        /* USSD */
        MSG_ID_IMCB_IMC_SEND_USSD_IND,  //Send USSD Request to UA
        MSG_ID_IMCB_IMC_SEND_USSD_RSP,  //Send USSD's Response from UA
        MSG_ID_IMCB_IMC_RECV_USSD_REQ,  //URC from UA
        MSG_ID_IMCB_IMC_USSD_URC_STATUS_IND, //Send URC Status to UA

        /* CMCC Auto Test Tool */
        MSG_ID_IMCB_IMC_START_EBI_FILTER_REQ,
        MSG_ID_IMCB_IMC_STOP_EBI_FILTER_REQ,
        MSG_ID_IMCB_IMC_START_BEARER_FILTER_REQ,
        MSG_ID_IMCB_IMC_STOP_BEARER_FILTER_REQ,
        MSG_ID_IMCB_IMC_REG_IPSEC_FLUSH_REQ,
        MSG_ID_IMCB_IMC_REG_IPSEC_ADD_REQ,
        MSG_ID_IMCB_IMC_REG_IPSEC_DELETE_REQ,

        /* MD Lower Layer Error (Service request failed, AC Barred...etc) */
        MSG_ID_IMCB_IMC_MD_LOWER_LAYER_ERR_IND,

        MSG_ID_IMCB_IMC_TLV_PARA_SETTING_IND,

        /* IMS Debug Information IMCB->IMC*/
        MSG_ID_IMCB_IMC_IMS_DEBUG_INFO_REQ,

        /* IMS Debug Information IMC->IMCB */
        MSG_ID_IMCB_IMC_IMS_DEBUG_INFO_IND,

        /* for ISIM read data segmentation */
        MSG_ID_IMCB_IMC_READ_ISIM_NTF_REQ,

        /* Handover event to LTECSR */
        MSG_ID_IMCB_IMC_HANDOVER_BEGIN_REQ,
        MSG_ID_IMCB_IMC_HANDOVER_END_REQ,

        /* TTY   IMC -> IMCB */
        MSG_ID_IMCB_IMC_CC_TTY_ENABLE_IND,

        /* TTY   IMCB -> IMC */
        MSG_ID_IMCB_IMC_CC_TTY_ENABLE_RSP,
        MSG_ID_IMCB_IMC_CC_TTY_CAPABILITY_REQ,

        /* For LTECSR, NOTIFY IMS the data plan event. */
        MSG_ID_IMCB_IMC_CC_IMS_NOTIFY_IND,

        /* IMC trigger IMCB release PDN */
        MSG_ID_IMCB_IMC_RELEASE_PDN_IND,
        MSG_ID_IMCB_IMC_RELEASE_PDN_RSP,

        /* ECT IMC -> IMCB */
        MSG_ID_IMCB_IMC_SS_ECT_IND,  // Send ECT request to UA

        /* ECT IMCB -> IMC */
        MSG_ID_IMCB_IMC_SS_ECT_RSP,  // Send ECT response from UA
        MSG_ID_IMCB_IMC_SS_ECT_REQ,  // Send final ECT URC confirmation from UA

        /* TLV from IMCB to IMC */
        MSG_ID_IMCB_IMC_TLV_PARA_SETTING_REQ,

        /*MO Call Domain Conflict flow*/
        MSG_ID_IMCB_IMC_CC_MO_CALL_DOMAIN_CONFLICT_IND,
        MSG_ID_IMCB_IMC_CC_MO_CALL_DOMAIN_CONFLICT_RSP,

        /* ATCMD relay */
        MSG_ID_IMCB_IMC_ATCMD_RELAY_REQ,
        MSG_ID_IMCB_IMC_ATCMD_RELAY_IND,

        /* RTT   IMC -> IMCB */
        MSG_ID_IMCB_IMC_CC_RTT_OP_IND,

        /* RTT   IMCB -> IMC */
        MSG_ID_IMCB_IMC_CC_RTT_OP_RSP,

        /* CDMA-less IMCB->IMC */
        MSG_ID_IMCB_IMC_IMS_TIMER_STATUS_IND,

        /* RF control message */
        MSG_ID_IMCB_IMC_SRU_INFO_REQ,

        /* PS_DATA_OFF IMC->IMCB */
        MSG_ID_IMCB_IMC_PS_DATA_OFF_IND,

        /* eVOLTE flow */
        MSG_ID_IMCB_IMC_CC_MEDIA_ANBR_NOTIFY_IND, /* IMC -> IMCB */
        MSG_ID_IMCB_IMC_CC_MEDIA_ANBR_NOTIFY_RSP, /* IMCB -> IMC */

        /* UA query CS status from IMC */
        MSG_ID_IMCB_IMC_CC_CS_AVAILABILITY_REQ,  /* IMCB -> IMC */
        MSG_ID_IMCB_IMC_CC_CS_AVAILABILITY_CNF,  /* IMC -> IMCB */
        MSG_ID_IMCB_IMC_SMS_CS_AVAILABILITY_REQ,  /* IMCB -> IMC */
        MSG_ID_IMCB_IMC_SMS_CS_AVAILABILITY_CNF,  /* IMC -> IMCB */

        MSG_ID_IMCB_IMC_IMS_RESET_SUGGESTION_TIMER_REQ, /* IMCB -> IMC */

		/* Attached RAT indication from IMC */
		MSG_ID_IMCB_IMC_ATTACHED_RAT_IND,

    MSG_ID_IMCB_IMC_END,

    /* with NCCCI */
    MSG_ID_WRAP_IMCB_IMCB_NCCCI_BEGIN,

        MSG_ID_WRAP_IMCB_IMCB_READY_TO_WRITE_IND,
        MSG_ID_WRAP_IMCB_IMCB_READ_DONE_IND,
        MSG_ID_WRAP_IMCB_IMCB_COMM_ERROR,

    MSG_ID_WRAP_IMCB_IMCB_NCCCI_END,

    /* with ATP */
    MSG_ID_ATP_IMCB_BEGIN,

        MSG_ID_ATP_IMCB_INTER_RAT_STATUS_IND,

    MSG_ID_ATP_IMCB_END,

    MSG_ID_IMCB_EX_END,

    MSG_ID_IMCB_IN_BEGIN,

        /* IMCB Ctrl */
        MSG_ID_IMCB_IMCB_BEGIN,
            MSG_ID_IMCB_IMCB_DUMP_CONTEXT_IND,
        MSG_ID_IMCB_IMCB_END,

    MSG_ID_IMCB_IN_END,

    MSG_ID_IMCB_END,

MODULE_MSG_END( MSG_ID_IMCB_CODE_TAIL )


#endif /* _IMCB_MSGID_H_ */
