diff --git a/lib/liblynq-data/lynq_data.cpp b/lib/liblynq-data/lynq_data.cpp
index 460eb9c..27f0849 100755
--- a/lib/liblynq-data/lynq_data.cpp
+++ b/lib/liblynq-data/lynq_data.cpp
@@ -631,12 +631,16 @@
 }
 int lynq_setup_data_call(int *handle)
 {
+    int error = -1;
+    #ifdef GSW_RIL_CFG  //becuase gsw not have connman,data can not be triggered by connman.
+    LYINFLOG("[%s][%d]",__FUNCTION__,__LINE__);
+    error = lynq_setup_data_call_sp(handle,NULL,"iot_default",NULL,NULL,NULL,NULL,NULL);
+    #else
     Parcel p;
     lynq_client_t client;
     int resp_type = -1;
     int request = -1;
     int slot_id = -1;
-    int error = -1;
     int lynq_data_call_id = 0;
     if(handle==NULL)
     {
@@ -684,6 +688,7 @@
         }
         *handle = lynq_data_call_id;
     }
+    #endif //GSW_RIL_CFG
     return error;
 }
 
@@ -747,11 +752,20 @@
     int error = -1;
     int lynq_data_call_id = -1;
     char *argv[10] = {};
+    #ifdef GSW_RIL_CFG
+    LYINFLOG("[%s][%d]",__FUNCTION__,__LINE__);
+    if(handle==NULL||apnType==NULL)
+    {
+        LYERRLOG("handle or apntype is null!!!");
+        return -1;
+    }
+    #else
     if(handle==NULL||apn==NULL||apnType==NULL)
     {
         LYERRLOG("handle ,apn or apntype is null!!!");
         return -1;
     }
+    #endif //GSW_RIL_CFG
     if(user==NULL)
     {
         argv[1] = "null";
@@ -796,7 +810,18 @@
     client.request = 27;//RIL_REQUEST_SETUP_DATA_CALL
     client.paramLen = 7;
     bzero(client.param,LYNQ_REQUEST_PARAM_BUF);
+    #ifdef GSW_RIL_CFG
+    if(NULL == apn)
+    {
+        sprintf(client.param,"null %s %s %s %s %s %s",apnType,argv[1],argv[2],argv[3],argv[4],argv[5]);
+    }
+    else
+    {
+        sprintf(client.param,"%s %s %s %s %s %s %s",apn,apnType,argv[1],argv[2],argv[3],argv[4],argv[5]);
+    }
+    #else
     sprintf(client.param,"%s %s %s %s %s %s %s",apn,apnType,argv[1],argv[2],argv[3],argv[4],argv[5]);
+    #endif  //GSW_RIL_CFG
     LYINFLOG("uToken=%d,request=%d,paralen=%d,param=%s",client.uToken,client.request,client.paramLen,client.param);
     lynq_data_call_id = updateApn(apnType);
     if (lynq_data_call_id < 0)
