diff --git a/mbtk/test/liblynq_lib/lynq_call_test.c b/mbtk/test/liblynq_lib/lynq_call_test.c
index 9bb9572..c68d92e 100755
--- a/mbtk/test/liblynq_lib/lynq_call_test.c
+++ b/mbtk/test/liblynq_lib/lynq_call_test.c
@@ -338,7 +338,7 @@
             qser_voice_call_end(handle, voice_call_id);
             break;
         case 5:
-            qser_voice_call_anser(handle, voice_call_id);
+            qser_voice_call_answer(handle, voice_call_id);
             break;
         case 6:
             qser_voice_call_removestatehandle(handle);
diff --git a/mbtk/test/liblynq_lib_t106/lynq-qser-sms-demo.cpp b/mbtk/test/liblynq_lib_t106/lynq-qser-sms-demo.cpp
index dc8f9af..476e6da 100755
--- a/mbtk/test/liblynq_lib_t106/lynq-qser-sms-demo.cpp
+++ b/mbtk/test/liblynq_lib_t106/lynq-qser-sms-demo.cpp
@@ -103,7 +103,7 @@
         ret = qser_sms_addrxmsghandler(qser_sms_handler, NULL);
         if(ret == 0)
     {
-        printf("qser_sms_addrxmsghandler success");
+        printf("qser_sms_addrxmsghandler success\n");
     }else{
         printf("qser_sms_addrxmsghandler error, ret = %d\n", ret);
     }
@@ -148,7 +148,7 @@
     char msg[MSG_BUF] = {};
     QSER_sms_info_t  pt_sms_info;
    // sprintf(telephony_num,"10086");//è¯·ç”¨æˆ·åŠ¡å¿…æ›¿æ¢æ­¤å·ç ï¼Œéšæ„å‘è¿è¥å•†å‘çŸ­æ¶ˆæ¯æžæœ‰å¯èƒ½è¢«å°å·ã€‚
-    sprintf(msg,"\"Chello worrld-7bit-mr!./\"");
+    sprintf(msg,"Chello worrld-7bit-mr!.");
     strncpy(pt_sms_info.src_addr, argv[1], SMS_BUF);
     strncpy(pt_sms_info.sms_data, msg, MSG_BUF);
     pt_sms_info.format = QSER_SMS_7BIT;
@@ -161,7 +161,7 @@
         ret = qser_sms_send_sms(h_sms, &pt_sms_info);
         if(ret == 0)
         {
-            printf("send sms success");
+            printf("send sms success\n");
         }else{
             printf("send sms error, ret = %d\n", ret);
         }
@@ -176,7 +176,7 @@
         ret = qser_sms_client_deinit(h_sms);
         if(ret == 0)
         {
-            printf("sms deinit success");
+            printf("sms deinit success\n");
         }else{
             printf("sms deinit error, ret = %d\n", ret);
         }
diff --git a/mbtk/test/liblynq_lib_t106/lynq-qser-voice-demo.cpp b/mbtk/test/liblynq_lib_t106/lynq-qser-voice-demo.cpp
index d6ddaf1..9c55c7e 100755
--- a/mbtk/test/liblynq_lib_t106/lynq-qser-voice-demo.cpp
+++ b/mbtk/test/liblynq_lib_t106/lynq-qser-voice-demo.cpp
@@ -8,6 +8,7 @@
 #include <stdint.h>
 
 #include"lynq-qser-voice-demo.h"
+#include "mbtk_log.h"
 
 typedef struct
 {
@@ -82,6 +83,8 @@
     int ret    = 0;
     int  voice_call_id = 0;
     voice_client_handle_type    h_voice     = 0;
+
+    mbtk_log_init("radio", "MBTK");
     
     const char *lynqLibPath_Call = "/lib/liblynq-qser-voice.so";
     dlHandle_call = dlopen(lynqLibPath_Call, RTLD_NOW);
@@ -91,7 +94,7 @@
         exit(EXIT_FAILURE);
     }
     
-    qser_voice_call_client_init = (int(*)(voice_client_handle_type *ph_voice))dlsym(dlHandle_call, "qser_voice_call_client_init");
+    qser_voice_call_client_init = (int(*)(voice_client_handle_type *h_voice))dlsym(dlHandle_call, "qser_voice_call_client_init");
     if(qser_voice_call_client_init == NULL) 
     {
         printf("qser_voice_call_client_init not defined or exported in %s\n", lynqLibPath_Call);
