diff --git a/src/lynq/lib/liblynq-at-extension/lynq_at.cpp b/src/lynq/lib/liblynq-at-extension/lynq_at.cpp
index 7af2ae3..a7c6b2e 100755
--- a/src/lynq/lib/liblynq-at-extension/lynq_at.cpp
+++ b/src/lynq/lib/liblynq-at-extension/lynq_at.cpp
@@ -15,6 +15,15 @@
 #define OUT_MAX_SIZE 1024
 #define USER_LOG_TAG "LYNQ_AT"
 
+typedef enum
+{
+    A_SUCCESS = 0,
+    A_ERROR = -1
+}LYNQ_AT_E;
+
+/*lei add : maybe sento/revc error*/
+int result = A_SUCCESS;
+/*lei add : maybe sento/revc error*/
 int sockfd = 0;
 char *output = NULL;
 char buffer_at[OUT_MAX_SIZE] = {0};
@@ -73,7 +82,6 @@
     signal(SIGSEGV, signal_handler);
     int recv = 0;
     int send = 0;
-    int result = 0;
     char at_cmd[100] = {0};
     sockfd=socket(AF_INET,SOCK_DGRAM,0);
     memset(&addr_serv, 0, sizeof(addr_serv));
@@ -86,6 +94,7 @@
     if(send < 0)
     {
         LYDBGLOG("thread_recv send fail\n");
+        result = send;
         return NULL;
     }
     char *input = NULL;
@@ -93,6 +102,7 @@
     if(NULL == output)
     {
         LYDBGLOG("thread_recv malloc fail\n");
+        result = A_ERROR;
         return NULL;
     }
     while (1)
@@ -152,7 +162,7 @@
 {
     if(NULL == ext_at || NULL == callback)
     {
-        return -1;
+        return A_ERROR;
     }
     memcpy(buffer_at, ext_at, strlen(ext_at));
     tmp = callback;
@@ -163,8 +173,8 @@
     if(ret != 0)
     {
         LYDBGLOG("lynq_connect_service_start start failed\n");
-        return -1;
+        return A_ERROR;
     }
-    return 0;
+    return result;
 }
 
