call_end_reason

Change-Id: I12453044a3149b75df6e38b05c4c8832a3ca68f9
diff --git a/mbtk/mbtk_rild/src/mbtk_info_server.c b/mbtk/mbtk_rild/src/mbtk_info_server.c
old mode 100755
new mode 100644
index 2b564ea..5dbf8c0
--- a/mbtk/mbtk_rild/src/mbtk_info_server.c
+++ b/mbtk/mbtk_rild/src/mbtk_info_server.c
@@ -4217,6 +4217,7 @@
 }
 #endif
 
+int req_ceer_call(char *reg, int *cme_err);
 mbtk_info_err_enum call_pack_req_process(sock_client_info_t* cli_info, mbtk_info_pack_t* pack);
 mbtk_info_err_enum sms_pack_req_process(sock_client_info_t* cli_info, mbtk_info_pack_t* pack);
 mbtk_info_err_enum pb_pack_req_process(sock_client_info_t* cli_info, mbtk_info_pack_t* pack);
@@ -6882,6 +6883,26 @@
             }
             break;
         }
+        case INFO_URC_MSG_CALL_STATE:
+        {
+            mbtk_call_info_t* reg = (mbtk_call_info_t*)data;
+            char ceer[128] = {0};
+            memset(&ceer, 0, 128);
+            int cme_err = MBTK_INFO_ERR_CME_NON;
+             if(req_ceer_call(ceer, &cme_err) || cme_err != MBTK_INFO_ERR_CME_NON)
+            {
+                LOG("get ceer call fail.");
+            }
+            else
+            {
+                memcpy(reg->end_reason, ceer, strlen(ceer));
+                LOG(" reg->end_reason:%s", reg->end_reason);
+                call_state_change(reg, sizeof(mbtk_call_info_t));
+            }
+
+            
+            break;
+        }
         default:
         {
             LOGE("Unknown URC : %d", msg->msg);