[Feature]add lynq_set_ims API

Change-Id: I48c6f5015a4ab8118127e003f04d7a98264d8c6d
diff --git a/src/lynq/lib/liblynq-network/lynq_network.cpp b/src/lynq/lib/liblynq-network/lynq_network.cpp
index b6c58a9..a3e82aa 100755
--- a/src/lynq/lib/liblynq-network/lynq_network.cpp
+++ b/src/lynq/lib/liblynq-network/lynq_network.cpp
@@ -9,6 +9,7 @@
 #include <cutils/jstring.h>

 #include <pthread.h>

 #include <vendor-ril/telephony/ril.h>

+#include <vendor-ril/telephony/mtk_ril_sp.h>

 

 #include "lynq_network.h"

 #include "liblog/lynq_deflog.h"

@@ -1291,6 +1292,54 @@
     return response.error;

 }

 

+int lynq_set_ims(const int ims_mode)

+{

+    int ret = -1;

+    if (ims_mode < 0 || ims_mode > 1)

+    {

+        LYERRLOG("incoming ims_mode error");

+        return ret;

+    }

+    int send_num = 0;

+    char res_data[LYNQ_REC_BUF] = {0};

+    int recv_num = 0;

+    lynq_client_t client_t;

+

+    memset(&client_t,0,sizeof(client_t));

+    client_t.request = RIL_REQUEST_SET_IMS_ENABLE;

+    client_t.paramLen = 1;

+    client_t.uToken = network_Global_uToken;

+    sprintf(client_t.param,"%d",ims_mode);

+

+    send_num = sendto(network_sock_fd,&client_t,sizeof(client_t),0,(struct sockaddr *)&network_addr_serv,network_len_addr_serv);

+    if (send_num<0)

+    {

+        LYERRLOG("sendto error:");

+        return ret;

+    }

+

+    recv_num = recvfrom(network_sock_fd,res_data,sizeof(res_data),0,(struct sockaddr *)&network_addr_serv,(socklen_t *)&network_len_addr_serv);

+    if (recv_num == 0 || recv_num < 0)

+    {

+        LYERRLOG("recvfrom error");

+        return -1;

+    }

+

+    Parcel p;

+    p.setData((uint8_t *)res_data,sizeof(res_data));

+    p.setDataPosition(0);

+    if (p.dataAvail() > 0)

+    {

+        p.readInt32(&response.resp_type);

+        p.readInt32(&response.request);

+        p.readInt32(&response.slot_id);

+        p.readInt32(&response.error);

+    }

+

+    return response.error;

+}

+

+

 /*Used to wait for an update signal*/

 int lynq_wait_signalchanges(int *handle)

 {