[feature][T8TSK-17][call]Third party call switching current route API development
[feature][T8TSK-53][call]Three-party call Hanging up waiting or holding
[feature][T8TSK-52][call]A phone call that has been restored to waiting or holding before being hung up

Change-Id: I54fc2b666e3c9c1c0195ece79fb822c033defbf1
diff --git a/src/lynq/lib/liblynq-call/lynq_call.cpp b/src/lynq/lib/liblynq-call/lynq_call.cpp
index 4996a3b..07a81d8 100755
--- a/src/lynq/lib/liblynq-call/lynq_call.cpp
+++ b/src/lynq/lib/liblynq-call/lynq_call.cpp
@@ -1381,6 +1381,78 @@
     return 0;

 }

 

+int lynq_switch_waiting_or_holding_and_active(void)

+{

+    Parcel p;

+    lynq_client_t client;

+    int resp_type = -1;

+    int request = -1;

+    int slot_id = -1;

+    int error = -1;

+    client.uToken = Global_uToken_call;

+    client.request = RIL_REQUEST_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE;

+    client.paramLen = 0;

+    bzero(client.param,LYNQ_REQUEST_PARAM_BUF);

+    LYDBGLOG("uToken=%d,request=%d,paralen=%d,param=%s",client.uToken,client.request,client.paramLen,client.param);

+    if(send_request(lynq_call_client_sockfd,&client)==-1)

+    {

+        LYERRLOG("send request fail");

+        return -1;

+    }

+    get_response(lynq_call_client_sockfd,p);

+    JumpHeader(p,&resp_type,&request,&slot_id,&error);

+    LYINFLOG("resp_type=%d,request=%d,slot_id=%d,error_code=%d",resp_type,request,slot_id,error);

+    return error;

+}

+

+int lynq_hangup_waiting_or_background(void)

+{

+    Parcel p;

+    lynq_client_t client;

+    int resp_type = -1;

+    int request = -1;

+    int slot_id = -1;

+    int error = -1;

+    client.uToken = Global_uToken_call;

+    client.request = RIL_REQUEST_HANGUP_WAITING_OR_BACKGROUND;

+    client.paramLen = 0;

+    bzero(client.param,LYNQ_REQUEST_PARAM_BUF);

+    LYDBGLOG("uToken=%d,request=%d,paralen=%d,param=%s",client.uToken,client.request,client.paramLen,client.param);

+    if(send_request(lynq_call_client_sockfd,&client)==-1)

+    {

+        LYERRLOG("send request fail");

+        return -1;

+    }

+    get_response(lynq_call_client_sockfd,p);

+    JumpHeader(p,&resp_type,&request,&slot_id,&error);

+    LYINFLOG("resp_type=%d,request=%d,slot_id=%d,error_code=%d",resp_type,request,slot_id,error);

+    return error;

+}

+

+int lynq_hangup_foreground_resume_background(void)

+{

+    Parcel p;

+    lynq_client_t client;

+    int resp_type = -1;

+    int request = -1;

+    int slot_id = -1;

+    int error = -1;

+    client.uToken = Global_uToken_call;

+    client.request = RIL_REQUEST_HANGUP_FOREGROUND_RESUME_BACKGROUND;

+    client.paramLen = 0;

+    bzero(client.param,LYNQ_REQUEST_PARAM_BUF);

+    LYDBGLOG("uToken=%d,request=%d,paralen=%d,param=%s",client.uToken,client.request,client.paramLen,client.param);

+    if(send_request(lynq_call_client_sockfd,&client)==-1)

+    {

+        LYERRLOG("send request fail");

+        return -1;

+    }

+    get_response(lynq_call_client_sockfd,p);

+    JumpHeader(p,&resp_type,&request,&slot_id,&error);

+    LYINFLOG("resp_type=%d,request=%d,slot_id=%d,error_code=%d",resp_type,request,slot_id,error);

+    return error;

+}

+

 int lynq_set_DTMF(const char callnum)

 {

     if(!judge_dtmf(callnum))