在srv_ucm_log_call_history()中修改:

 双卡在#ifdef __MMI_DUAL_SIM_MASTER__这个宏包围的代码中如下修改:

 else if (g_ucm_p->call_list.group_info[group_index].call_info[call_index].call_origin == MMI_UCM_MT_ORIGIN)

         {

             if (is_connect == TRUE)

             {

                 /* received */

                   memcpy(&card2log.start_time,                        &g_ucm_p->call_list.group_info[group_index].call_info[call_index].start_time, 

                         sizeof(MYTIME));          

                 MTPNP_AD_Log_RecvedCall(&card2log);

             }

             else

             {

                 /* missed */   

 //注释原来代码的下面4行。。。。             

                 /*DTGetRTCTime(&card2log.start_time);

                 MTPNP_PFAL_SetLastMissedCallType(LASTMISSEDCALL_TYPE_SIM2);

                 MTPNP_AD_Log_MissedCall(&card2log);

                 SetMissedCallFlag(TRUE);*/ /* display missed call screen in idle screen */

 //添加下面的代码。。。。。                if(g_ucm_p->call_list.group_info[group_index].call_info[call_index].act_type == MMI_UCM_END_SINGLE)

                 {

                 

                     DTGetRTCTime(&voiceLog.start_time);

                     MTPNP_AD_Log_RecvedCall(&card2log);                    

                 }

                 else

                 {

                     DTGetRTCTime(&card2log.start_time);

                     MTPNP_PFAL_SetLastMissedCallType(LASTMISSEDCALL_TYPE_SIM2);

                     MTPNP_AD_Log_MissedCall(&card2log);

                     SetMissedCallFlag(TRUE);

                 }

 //添加上面的代码。。。。。

             }

         }

         else

         {

             MMI_ASSERT(0); /* should be either MMI_UCM_MO_ORIGIN or MMI_UCM_MT_ORIGIN */

         }

      return;

     }

 //。。。。。。。

 单卡做如下修改,可参考如下的修改代码:

 else if (g_ucm_p->call_list.group_info[group_index].call_info[call_index].call_origin == MMI_UCM_MT_ORIGIN)

         {

             if (is_connect == TRUE)

             {

                 /* received */                

                 voiceLog.start_time = g_ucm_p->call_list.group_info[group_index].call_info[call_index].start_time;

                 CHISTLogRecvdCall(&voiceLog);

             }

             else

             {

                 /* missed */                

                 /*DTGetRTCTime(&voiceLog.start_time);

                 CHISTLogMissedCall(&voiceLog);

                 SetMissedCallFlag(TRUE); *//* display missed call screen in idle screen */

                 if(g_ucm_p->call_list.group_info[group_index].call_info[call_index].act_type == MMI_UCM_END_SINGLE)

                 {

                      DTGetRTCTime(&voiceLog.start_time);

                     CHISTLogRecvdCall(&voiceLog);                    

                 }

                 else

                 {

                     DTGetRTCTime(&voiceLog.start_time);

                     CHISTLogMissedCall(&voiceLog);

                     SetMissedCallFlag(TRUE);

                 }

             }

         }