[Bugfix][API-782][rtp] add 1 set  audio parameter for rtp

Change-Id: I3b75d4f3e65e6bafd297f3ee06f2c76a2614ab0f
diff --git a/src/lynq/lib/liblynq-call/include/libcall/lynq_call.h b/src/lynq/lib/liblynq-call/include/libcall/lynq_call.h
index 21de03b..00f8f4c 100755
--- a/src/lynq/lib/liblynq-call/include/libcall/lynq_call.h
+++ b/src/lynq/lib/liblynq-call/include/libcall/lynq_call.h
@@ -151,7 +151,7 @@
 

 typedef enum{

     Rtp_Ssrc_random = 0,     

-    RTP_Ssrc_specific =1,   

+    Rtp_Ssrc_specific =1,   

 }LYNQ_Rtp_Ssrc_Mode;

 

 /*set*/

@@ -163,12 +163,12 @@
 int lynq_set_call_rtp_ssrc(const LYNQ_Rtp_Ssrc_Mode ssrc_mode, const unsigned int ssrc);

 

 /*get*/

-LYNQ_Audio_Mode lynq_get_voice_audio_mode();

+int lynq_get_voice_audio_mode(int* voice_audio_mode);

 int lynq_get_remote_rtp_ip(char* ip, const int ip_length);

 int lynq_get_vlan_info(char* vlan_info, const int vlan_info_length);

 int lynq_get_rtp_port(const LYNQ_Rtp_Mode rtp_mode, int* port);

 int lynq_get_rtp_param(int* clock_rate,int* channels, int* latency);//only for client

-int lynq_get_call_rtp_ssrc(LYNQ_Rtp_Ssrc_Mode* ssrc_mod, unsigned int* ssrc);

+int lynq_get_call_rtp_ssrc(int* ssrc_mod, unsigned int* ssrc);

 /*Audio Path setting end*/

 

 void lynq_set_test_mode(const int test_mode);

diff --git a/src/lynq/lib/liblynq-call/lynq_call.cpp b/src/lynq/lib/liblynq-call/lynq_call.cpp
index d973bc7..65ce400 100755
--- a/src/lynq/lib/liblynq-call/lynq_call.cpp
+++ b/src/lynq/lib/liblynq-call/lynq_call.cpp
@@ -797,8 +797,6 @@
         return LYNQ_E_INNER_ERROR;

     }      

 

-    lynq_init_rtp();

-

     g_module_init_flag = MODULE_RUNNING;

     return 0;

 }

@@ -810,8 +808,7 @@
        LYERRLOG("module state is %d",g_module_init_flag);

        return LYNQ_E_CONFLICT;

     }      

-    lynq_call_hungup_all();  

-    lynq_set_voice_audio_mode(AUDIO_MODE_CODEC);

+    lynq_call_hungup_all();      

     g_module_init_flag = MODULE_SWITCHING;

     lynq_close_all_urc_socket_thread();

     lynq_close_all_rc_socket_thread();    

diff --git a/src/lynq/lib/liblynq-call/lynq_call_common.h b/src/lynq/lib/liblynq-call/lynq_call_common.h
index 21077df..e65f243 100755
--- a/src/lynq/lib/liblynq-call/lynq_call_common.h
+++ b/src/lynq/lib/liblynq-call/lynq_call_common.h
@@ -19,5 +19,5 @@
 void urc_ecall_msg_process(Parcel *p);

 #endif

 

-void lynq_init_rtp();

+int lynq_get_common_request(int request_id, int* status);

 #endif

diff --git a/src/lynq/lib/liblynq-call/lynq_call_ecall.cpp b/src/lynq/lib/liblynq-call/lynq_call_ecall.cpp
index b012907..3471245 100755
--- a/src/lynq/lib/liblynq-call/lynq_call_ecall.cpp
+++ b/src/lynq/lib/liblynq-call/lynq_call_ecall.cpp
@@ -483,7 +483,7 @@
     }

     if(enable<0)

     {

-       if(enable >-200)

+       if(enable >-300)

        {

            goto set_ivs_end;

 //         lynq_set_common_request(RIL_REQUEST_ECALL_SET_IVS,1,"%d",enable);

@@ -494,7 +494,7 @@
        } 

        else

        {

-           s_ecall_whether_preempt= ((-200-enable) & 0x11);           

+           s_ecall_whether_preempt= ((-300-enable) & 0x11);           

        }

        return RESULT_OK;   

     }

diff --git a/src/lynq/lib/liblynq-call/lynq_call_rtp.cpp b/src/lynq/lib/liblynq-call/lynq_call_rtp.cpp
index 9e0d546..ae3c536 100755
--- a/src/lynq/lib/liblynq-call/lynq_call_rtp.cpp
+++ b/src/lynq/lib/liblynq-call/lynq_call_rtp.cpp
@@ -17,208 +17,51 @@
 #include "lynq_call.h"

 #include "lynq_module_common.h"

 #include "lynq_call_common.h"

-

-#define RTP_FROM_CMD "gst-launch-1.0 -v udpsrc port=%d caps=\'application/x-rtp, media=(string)audio, clock-rate=(int)%d, channels=(int)%d\' ! rtpjitterbuffer latency=%d ! rtppcmadepay ! alawdec ! audioresample ! audioconvert ! alsasink device=\'hw:0,2\'"

-#define RTP_TO_CMD   "gst-launch-1.0 -v alsasrc device=\'hw:0,6\' ! audioconvert ! audioresample ! alawenc ! rtppcmapay ! %s udpsink host=%s %s auto-multicast=true port=%d"

-#define RTP_VLAN_INFO_FORMAT "multicast-iface=\"%s\""

-#define RTP_SSRC_INFO_FORMAT " rtpmux name=mux ssrc=%u !"

+#include "lynq_module_socket.h"

 

 #define USER_LOG_TAG "LYNQ_CALL"

 

-typedef struct

-{   

-    char ip[MAX_IP_LENGTH];

-    int port;   

-    LYNQ_Rtp_Ssrc_Mode ssrc_mode;

-    unsigned int ssrc;

-    char vlan_info[MAX_VLAN_INFO_LENGTH];

-}lynq_rtp_server_info;

+#define MAX_IP_LENGTH 128

+#define MAX_VLAN_INFO_LENGTH 128

 

-typedef struct

-{       

-    int port;

-    int clockrate;  

-    int latency;

-    int channels;

-}lynq_rtp_client_info;

 

-static lynq_rtp_client_info g_rtp_client_info;

-static lynq_rtp_server_info g_rtp_server_info;

+static char * lynqStrdupReadString(Parcel* &p) {

+    size_t stringlen;

+    const char16_t *s16;

 

-static pthread_t g_rtp_thread[RTP_MODE_MAX];

-static bool g_rtp_thread_valid[RTP_MODE_MAX];

-

-void lynq_init_rtp()

-{   

-    memset(&g_rtp_client_info,0,sizeof(g_rtp_client_info));

-    memset(&g_rtp_server_info,0,sizeof(g_rtp_server_info));    

-  

-

-    lynq_set_rtp_param(8000,1,400);

-

-    for(int i=0;i<RTP_MODE_MAX;i++)

-    {

-        lynq_set_rtp_port(i,6666);

-        g_rtp_thread_valid[i] = 0;

-    }          

-    

-    LYDBGLOG("lynq init rtp success!!!");

-    return;

-}

-

-/*Audio Path setting begin*/

-/*sub function*/

-void lynq_set_rtp_mixer_ctrl(int enable_rtp)

-{

-    char cmd[256];

-    LYINFLOG("set_rtp_mixer_ctrl %d", enable_rtp);

-    if(enable_rtp)

-    {

-        sprintf(cmd, "amixer -D mtk_phonecall cset name=\"Speech_on\" %d", 0);

-        system(cmd);

-        sprintf(cmd, "amixer -D mtk_phonecall cset name=\"M2M_Speech_on\" %d", 1);

-        system(cmd);

-        sprintf(cmd, "amixer -c0 cset name=\"PCM_2_PB_CH1 DL2_CH1\" %d", 1);

-        system(cmd);

-        sprintf(cmd, "amixer -c0 cset name=\"PCM_2_PB_CH2 DL2_CH2\" %d", 1);

-        system(cmd);

-        sprintf(cmd, "amixer -c0 cset name=\"UL2_CH1 PCM_2_CAP_CH1\" %d", 1);

-        system(cmd);

-        sprintf(cmd, "amixer -c0 cset name=\"UL2_CH2 PCM_2_CAP_CH1\" %d", 1);

-        system(cmd);    

-    }

-    else 

-    {        

-        sprintf(cmd, "amixer -D mtk_phonecall cset name=\"M2M_Speech_on\" %d", 0);

-        system(cmd);

-        sprintf(cmd, "amixer -c0 cset name=\"PCM_2_PB_CH1 DL2_CH1\" %d", 0);

-        system(cmd);

-        sprintf(cmd, "amixer -c0 cset name=\"PCM_2_PB_CH2 DL2_CH2\" %d", 0);

-        system(cmd);

-        sprintf(cmd, "amixer -c0 cset name=\"UL2_CH1 PCM_2_CAP_CH1\" %d", 0);

-        system(cmd);

-        sprintf(cmd, "amixer -c0 cset name=\"UL2_CH2 PCM_2_CAP_CH1\" %d", 0);

-        system(cmd);    

-        sprintf(cmd, "amixer -D mtk_phonecall cset name=\"Speech_on\" %d", 1);

-        system(cmd);

-    }    

-}

-

-void* lynq_start_rtp_cmd(void *arg)

-{

-    int* rtp_mode= (int*) arg;

-    char cmd[384];

-    char vlan_para_string[sizeof(RTP_VLAN_INFO_FORMAT)+MAX_VLAN_INFO_LENGTH-2/*sizeof "%s"*/]={0};

-    char ssrc_para_string[sizeof(RTP_SSRC_INFO_FORMAT)+MAX_SSRC_INFO_LENGTH-2/*sizeof "%u"*/]={0};

-    LYINFLOG("lynq_start_rtp_cmd: rtp_mode is %d",(*rtp_mode));    

-    if ((*rtp_mode) == RTP_CLIENT)

-    {

-        sprintf(cmd,RTP_FROM_CMD, \

-            g_rtp_client_info.port,g_rtp_client_info.clockrate,g_rtp_client_info.channels, \

-            g_rtp_client_info.latency);            

-    //  LYINFLOG("start from rtp play: cmd is %s",cmd);    

-        system(cmd);

-    }

-    else if ((*rtp_mode) == RTP_SERVER)

-    {

-        if(strlen(g_rtp_server_info.vlan_info)>0)

-        {

-           sprintf(vlan_para_string,RTP_VLAN_INFO_FORMAT,g_rtp_server_info.vlan_info);

-        }

-

-        if(g_rtp_server_info.ssrc_mode == RTP_Ssrc_specific)

-        {

-           sprintf(ssrc_para_string,RTP_SSRC_INFO_FORMAT,g_rtp_server_info.ssrc);

-        }

-        sprintf(cmd,RTP_TO_CMD,   \

-        ssrc_para_string, g_rtp_server_info.ip,vlan_para_string,g_rtp_server_info.port);       

-        

-        LYINFLOG("start to rtp play: cmd is %s",cmd);

-        system(cmd);    

-    }

-    return NULL;

-}

-

-int lynq_start_rtp_thread(int rtp_mode)

-{

-    int ret;

-    pthread_attr_t attr;

-    static int start_mode[RTP_MODE_MAX]={0,1};  

-

-    pthread_attr_init(&attr);

-    pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);

-    ret = pthread_create(&(g_rtp_thread[rtp_mode]),&attr,lynq_start_rtp_cmd,&(start_mode[rtp_mode]));

-    if(ret != 0)

-    {

-        g_rtp_thread_valid[rtp_mode]=0;

-        LYERRLOG("rtp create %d pthread error, ret is %d",rtp_mode, ret);

-        return ret;

-    }

-    g_rtp_thread_valid[rtp_mode]=1;

-    return RESULT_OK;  

+    s16 = p->readString16Inplace(&stringlen);

+    return strndup16to8(s16, stringlen);

 }

 

 /*set*/

 int lynq_set_voice_audio_mode(const LYNQ_Audio_Mode audio_mode)

 {

-    int ret;

-    int i;

-    

-    if(audio_mode==AUDIO_MODE_RTP)

+    if(g_module_init_flag != MODULE_RUNNING)

     {

-        lynq_set_rtp_mixer_ctrl(1);

-        for(i=0;i<RTP_MODE_MAX;i++)

-        {

-            if(!g_rtp_thread_valid[i])

-            {

-                if(lynq_start_rtp_thread(i)!= 0)

-                {

-                    LYERRLOG("start rtp %d fail",i);

-                    break;

-                }

-                else 

-                {

-                    LYINFLOG("start rtp %d suc",i);        

-                }

-            }

-            else 

-            {

-                LYERRLOG("rtp %d needn't start",i); 

-            }

-        }

-        if(i!= RTP_MODE_MAX)            

-        {

-            LYERRLOG("start rtp whole fail");

-            lynq_set_voice_audio_mode(AUDIO_MODE_CODEC);

-            return RESULT_ERROR;

-        }

-        LYINFLOG("start rtp whole suc");          

-        return RESULT_OK;  

+        LYERRLOG("%s module state %d error",__func__,g_module_init_flag);

+        return LYNQ_E_CONFLICT;

     }

-    else if(audio_mode==AUDIO_MODE_CODEC)

+    if(audio_mode > AUDIO_MODE_RTP || audio_mode < AUDIO_MODE_CODEC)

     {

-         for(i=0;i<RTP_MODE_MAX;i++)

-        {

-            if(g_rtp_thread_valid[i]) 

-            {

-                 ret = pthread_cancel(g_rtp_thread[i]);

-                 LYINFLOG("pthread cancel rtp %d ret = %d",i,ret);

-                 ret = pthread_join(g_rtp_thread[i],NULL);

-                 LYINFLOG("pthread join rtp %d ret = %d",i,ret);

-                 g_rtp_thread_valid[i] = 0;

-            }

-            else 

-            {

-                LYINFLOG("rtp %d needn't stop",i);

-            }

-        }

-        lynq_set_rtp_mixer_ctrl(0);     

-        LYINFLOG("stop rtp suc");

+        return LYNQ_E_PARAMETER_ANONALY;

     }

-    return RESULT_OK;    

+

+    Parcel* p=NULL;

+    int ret=lynq_send_common_request(p,g_wait_time,LYNQ_REQUEST_SET_VOICE_AUDIO_MODE,1,"%d",audio_mode);

+    if(ret==RESULT_OK)

+    {

+        delete p;        

+    }

+    return ret;

 }

+

 int lynq_set_remote_rtp_ip(const char* ip, const int ip_length)

 {

+    if(g_module_init_flag != MODULE_RUNNING)

+    {

+        LYERRLOG("%s module state %d error",__func__,g_module_init_flag);

+        return LYNQ_E_CONFLICT;

+    }

     if (NULL == ip)

     {

         LYERRLOG("ip is NULL!!!");

@@ -230,15 +73,22 @@
         return LYNQ_E_PARAMETER_ANONALY;

     }    

 

-    bzero(g_rtp_server_info.ip,MAX_IP_LENGTH);

-    strcpy(g_rtp_server_info.ip,ip);

-    

-    LYINFLOG("lynq_set_remote_rtp_ip suc: ip is %s, length is %d", ip,ip_length);

-    

-    return RESULT_OK;  

+    Parcel* p=NULL;

+    int ret=lynq_send_common_request(p,g_wait_time,LYNQ_REQUEST_SET_REMOTE_RTP_IP,1,"%s",ip);

+    if(ret==RESULT_OK)

+    {

+        delete p;        

+    }

+    return ret;

 }

 int lynq_set_vlan_info(const char* vlan_info, const int vlan_info_length)

 {

+    if(g_module_init_flag != MODULE_RUNNING)

+    {

+        LYERRLOG("%s module state %d error",__func__,g_module_init_flag);

+        return LYNQ_E_CONFLICT;

+    }

+

     if (NULL == vlan_info)

     {

         LYERRLOG("vlan_info is NULL!!!");

@@ -251,141 +101,258 @@
         return LYNQ_E_PARAMETER_ANONALY;

     }    

 

-    

-    bzero(g_rtp_server_info.vlan_info,MAX_VLAN_INFO_LENGTH);

-    strcpy(g_rtp_server_info.vlan_info,vlan_info);

-   

-    LYINFLOG("lynq_set_vlan_info suc: vlan is %s, length is %d", vlan_info,vlan_info_length);

-    

-    return RESULT_OK;  

+    Parcel* p=NULL;

+    int ret=lynq_send_common_request(p,g_wait_time,LYNQ_REQUEST_SET_VLAN_INFO,1,"%s",vlan_info);

+    if(ret==RESULT_OK)

+    {

+        delete p;        

+    }

+    return ret;

 }

 int lynq_set_rtp_port(const LYNQ_Rtp_Mode rtp_mode, const int port)

 {  

+    if(g_module_init_flag != MODULE_RUNNING)

+    {

+        LYERRLOG("%s module state %d error",__func__,g_module_init_flag);

+        return LYNQ_E_CONFLICT;

+    }

+

     if (port < 0)

     {

         LYERRLOG("invalid port number %d", port);

         return LYNQ_E_PARAMETER_ANONALY;

     }

-    if (rtp_mode == 0)

+

+    Parcel* p=NULL;

+    int ret=lynq_send_common_request(p,g_wait_time,LYNQ_REQUEST_SET_RTP_PORT,2,"%d %d",rtp_mode,port);

+    if(ret==RESULT_OK)

     {

-        g_rtp_client_info.port = port;

+        delete p;        

     }

-    else if (rtp_mode == 1)

-    {

-        g_rtp_server_info.port = port;

-    }

-    LYINFLOG("lynq_set_rtp_port suc: LYNQ_Rtp_Mode is %d, port is %d", rtp_mode, port);

-    return RESULT_OK;  

+    return ret;

 }

 int lynq_set_rtp_param(const int clock_rate,const int channels,const int latency) //only for client mode

 {

-    g_rtp_client_info.clockrate = clock_rate;

-    g_rtp_client_info.channels = channels;

-    g_rtp_client_info.latency = latency;

-    LYINFLOG("lynq_set_rtp_param suc: clockrate is %d, channels is %d, latency is %d", clock_rate, channels, latency);

-    return RESULT_OK;  

+    if(g_module_init_flag != MODULE_RUNNING)

+    {

+        LYERRLOG("%s module state %d error",__func__,g_module_init_flag);

+        return LYNQ_E_CONFLICT;

+    }

+

+    Parcel* p=NULL;

+    int ret=lynq_send_common_request(p,g_wait_time,LYNQ_REQUEST_SET_RTP_PARAM,3,"%d %d %d",clock_rate,channels,latency);

+    if(ret==RESULT_OK)

+    {

+        delete p;         

+    }

+    return ret;

 }

+

 int lynq_set_call_rtp_ssrc(const LYNQ_Rtp_Ssrc_Mode ssrc_mode,const unsigned int ssrc)

 {

-    if(ssrc_mode < Rtp_Ssrc_random || ssrc_mode > RTP_Ssrc_specific)

+    if(g_module_init_flag != MODULE_RUNNING)

+    {

+        LYERRLOG("%s module state %d error",__func__,g_module_init_flag);

+        return LYNQ_E_CONFLICT;

+    }

+

+    if(ssrc_mode < Rtp_Ssrc_random || ssrc_mode > Rtp_Ssrc_specific)

     {

         return LYNQ_E_PARAMETER_ANONALY;

     }

-    g_rtp_server_info.ssrc_mode = ssrc_mode;

-    g_rtp_server_info.ssrc = ssrc ;

-    LYINFLOG("%s suc: param is %d %d", __func__, ssrc_mode, ssrc);

-    return RESULT_OK;

+

+    Parcel* p=NULL;

+    int ret=lynq_send_common_request(p,g_wait_time,LYNQ_REQUEST_SET_CALL_RTP_SSRC,2,"%d %u",ssrc_mode,ssrc);

+    if(ret==RESULT_OK)

+    {

+        delete p;         

+    }

+    return ret;      

 }

 /*get*/

-LYNQ_Audio_Mode lynq_get_voice_audio_mode()

+int lynq_get_voice_audio_mode(int* voice_audio_mode)

 {

-    if(g_rtp_thread_valid[0])

+    if(g_module_init_flag != MODULE_RUNNING)

     {

-        return AUDIO_MODE_RTP;

+        LYERRLOG("%s module state %d error",__func__,g_module_init_flag);

+        return LYNQ_E_CONFLICT;

     }

-    else 

-    {

-        return AUDIO_MODE_CODEC;

-    }

+    

+    return lynq_get_common_request(LYNQ_REQUEST_GET_VOICE_AUDIO_MODE,voice_audio_mode);

 }

 int lynq_get_remote_rtp_ip(char* ip, const int ip_length)

 {

+    if(g_module_init_flag != MODULE_RUNNING)

+    {

+        LYERRLOG("%s module state %d error",__func__,g_module_init_flag);

+        return LYNQ_E_CONFLICT;

+    }

+

     if(ip==NULL)

     {

         LYERRLOG("ip is NULL");

         return LYNQ_E_PARAMETER_ANONALY;

     }    

 

-    if(ip_length < strlen(g_rtp_server_info.ip)+1)

+    if(ip_length > MAX_IP_LENGTH)

     {

-        LYERRLOG("ip length %d is shorter than saved ip length %d",ip_length,strlen(g_rtp_server_info.ip)+1);

+        LYERRLOG("ip length %d is greater than max ip length %d",ip_length,MAX_IP_LENGTH);

         return LYNQ_E_PARAMETER_ANONALY;

+    }    

+   

+

+    Parcel* p=NULL;

+    int ret=lynq_send_common_request(p,g_wait_time,LYNQ_REQUEST_GET_REMOTE_RTP_IP,0,"");

+

+    if(ret!=RESULT_OK)

+    {

+        LYERRLOG("%s call lynq_send_common_request failure, ret is %d",__func__,ret);

+        return ret;  

+    }       

+ 

+    int num ;

+    char *resp;

+

+    p->readInt32(&num);

+    if(num != 1)

+    {

+        LYERRLOG("no paramters or num %d too great",num);        

+        delete p;      

+        return LYNQ_E_INNER_ERROR;    

+    }else{

+        resp = lynqStrdupReadString(p);

+        strcpy(ip,resp);

+        free(resp);                             

     }

-    

-    bzero(ip,ip_length);

-    strcpy(ip,g_rtp_server_info.ip);

-    

-    return RESULT_OK;  

+

+    LYINFLOG("%s suc",__func__);   

+    delete p;       

+    return RESULT_OK;    

 }

 int lynq_get_vlan_info(char* vlan_info, const int vlan_info_length)

 {

+    if(g_module_init_flag != MODULE_RUNNING)

+    {

+        LYERRLOG("%s module state %d error",__func__,g_module_init_flag);

+        return LYNQ_E_CONFLICT;

+    }

+

     if(vlan_info==NULL) 

     {

         LYERRLOG("vlan info is NULL");

         return LYNQ_E_PARAMETER_ANONALY;

     }

 

-    if(vlan_info_length < strlen(g_rtp_server_info.vlan_info)+1)

+    Parcel* p=NULL;

+    int ret=lynq_send_common_request(p,g_wait_time,LYNQ_REQUEST_GET_VLAN_INFO,0,"");

+

+    if(ret!=RESULT_OK)

     {

-        LYERRLOG("vlan info length %d is shorter than saved vlan info length %d",vlan_info_length,strlen(g_rtp_server_info.vlan_info)+1);

-        return LYNQ_E_PARAMETER_ANONALY;

+        LYERRLOG("%s call lynq_send_common_request failure, ret is %d",__func__,ret);

+        return ret;  

+    }       

+    

+    int num ;

+    char *resp;

+

+    p->readInt32(&num);

+    if(num != 1)

+    {

+        LYERRLOG("no paramters or num %d too great",num);        

+        delete p;      

+        return LYNQ_E_INNER_ERROR;    

+    }else{

+        resp = lynqStrdupReadString(p);

+        strcpy(vlan_info,resp);

+        free(resp);                             

     }

-   

-    bzero(vlan_info,vlan_info_length);

-    strcpy(vlan_info,g_rtp_server_info.vlan_info);        

-   

-    return RESULT_OK;  

+

+    LYINFLOG("%s suc",__func__);   

+    delete p;       

+    return RESULT_OK;    

 }

+

 int lynq_get_rtp_port(const LYNQ_Rtp_Mode rtp_mode, int* port)

 {

+    if(g_module_init_flag != MODULE_RUNNING)

+    {

+        LYERRLOG("%s module state %d error",__func__,g_module_init_flag);

+        return LYNQ_E_CONFLICT;

+    }

+

     if(port==NULL)

     {

         return LYNQ_E_PARAMETER_ANONALY;

     }   

-    if (rtp_mode == 0)

+

+    Parcel* p=NULL;

+    int ret=lynq_send_common_request(p,g_wait_time,LYNQ_REQUEST_GET_RTP_PORT,1,"%d",rtp_mode);

+    if(ret==RESULT_OK)

     {

-        *port = g_rtp_client_info.port;

+        p->readInt32(port);

+        delete p;        

     }

-    else if (rtp_mode == 1)

-    {

-        *port = g_rtp_server_info.port;

-    }

-    return RESULT_OK;  

+    return ret;       

 }

 int lynq_get_rtp_param(int* clock_rate, int* channels, int* latency)//only for client mode

 {

+    if(g_module_init_flag != MODULE_RUNNING)

+    {

+        LYERRLOG("%s module state %d error",__func__,g_module_init_flag);

+        return LYNQ_E_CONFLICT;

+    }

+

     if(clock_rate == NULL || channels ==NULL || latency ==NULL)

     {

         LYERRLOG("input parameter is NULL");

         return LYNQ_E_PARAMETER_ANONALY;

     }

 

-    *clock_rate = g_rtp_client_info.clockrate;

-    *channels = g_rtp_client_info.channels ;

-    *latency = g_rtp_client_info.latency;

+    Parcel* p=NULL;

+    int ret=lynq_send_common_request(p,g_wait_time,LYNQ_REQUEST_GET_RTP_PARAM,0,"");

 

-    return RESULT_OK;  

+    if(ret!=RESULT_OK)

+    {

+        LYERRLOG("%s call lynq_send_common_request failure, ret is %d",__func__,ret);

+        return ret;  

+    }           

+

+    p->readInt32(clock_rate);

+    p->readInt32(channels);

+    p->readInt32(latency);    

+

+    LYINFLOG("%s suc",__func__);   

+    delete p;       

+    return RESULT_OK;       

 }

-int lynq_get_call_rtp_ssrc(LYNQ_Rtp_Ssrc_Mode* ssrc_mode, unsigned int* ssrc)

+

+int lynq_get_call_rtp_ssrc(int* ssrc_mode, unsigned int* ssrc)

 {

+    if(g_module_init_flag != MODULE_RUNNING)

+    {

+        LYERRLOG("%s module state %d error",__func__,g_module_init_flag);

+        return LYNQ_E_CONFLICT;

+    }

+

     if(ssrc_mode == NULL || ssrc ==NULL)

     {

         LYERRLOG("input parameter is NULL");

         return LYNQ_E_PARAMETER_ANONALY;

     }

-    

-    *ssrc_mode = g_rtp_server_info.ssrc_mode;

-    *ssrc = g_rtp_server_info.ssrc ;   

-    

-    return RESULT_OK;

+

+    Parcel* p=NULL;

+    int ret=lynq_send_common_request(p,g_wait_time,LYNQ_REQUEST_GET_CALL_RTP_SSRC,0,"");

+

+    if(ret!=RESULT_OK)

+    {

+        LYERRLOG("%s call lynq_send_common_request failure, ret is %d",__func__,ret);

+        return ret;  

+    }           

+

+    p->readInt32(ssrc_mode);

+    p->readUint32(ssrc); 

+

+    LYINFLOG("%s suc",__func__);   

+    delete p;       

+    return RESULT_OK;                

 }

diff --git a/src/lynq/lib/liblynq-call/lynq_module_common.h b/src/lynq/lib/liblynq-call/lynq_module_common.h
index 590971a..1143b8c 100755
--- a/src/lynq/lib/liblynq-call/lynq_module_common.h
+++ b/src/lynq/lib/liblynq-call/lynq_module_common.h
@@ -30,6 +30,20 @@
 #define LYNQ_REQUEST_OOS_DEEP_SLEEP_RECOVER_TIMER_INTERVAL (LYNQ_REQUEST_VENDOR_BASE +13)

 #define LYNQ_REQUEST_CHANGE_SCREEN_STATE (LYNQ_REQUEST_VENDOR_BASE + 14)/*jb.qi add for two sim suspend 2022/9/19*/

 #define LYNQ_REQUEST_CHANGE_RADIO (LYNQ_REQUEST_VENDOR_BASE + 15)

+#define LYNQ_REQUEST_SET_VOICE_AUDIO_MODE (LYNQ_REQUEST_VENDOR_BASE + 16)

+#define LYNQ_REQUEST_SET_REMOTE_RTP_IP (LYNQ_REQUEST_VENDOR_BASE + 17)

+#define LYNQ_REQUEST_SET_VLAN_INFO (LYNQ_REQUEST_VENDOR_BASE + 18)

+#define LYNQ_REQUEST_SET_RTP_PORT (LYNQ_REQUEST_VENDOR_BASE + 19)

+#define LYNQ_REQUEST_SET_RTP_PARAM (LYNQ_REQUEST_VENDOR_BASE + 20)

+#define LYNQ_REQUEST_GET_VOICE_AUDIO_MODE (LYNQ_REQUEST_VENDOR_BASE + 21)

+#define LYNQ_REQUEST_GET_REMOTE_RTP_IP (LYNQ_REQUEST_VENDOR_BASE + 22)

+#define LYNQ_REQUEST_GET_VLAN_INFO (LYNQ_REQUEST_VENDOR_BASE + 23)

+#define LYNQ_REQUEST_GET_RTP_PORT (LYNQ_REQUEST_VENDOR_BASE + 24)

+#define LYNQ_REQUEST_GET_RTP_PARAM (LYNQ_REQUEST_VENDOR_BASE + 25)

+#define LYNQ_REQUEST_SET_CALL_RTP_SSRC (LYNQ_REQUEST_VENDOR_BASE + 26)

+#define LYNQ_REQUEST_GET_CALL_RTP_SSRC (LYNQ_REQUEST_VENDOR_BASE + 27)

+

+

 /*the same with lynq_interface.h end*/

 

 typedef enum{

diff --git a/src/lynq/lib/liblynq-call/lynq_module_socket.cpp b/src/lynq/lib/liblynq-call/lynq_module_socket.cpp
index ff45c02..378d7a9 100755
--- a/src/lynq/lib/liblynq-call/lynq_module_socket.cpp
+++ b/src/lynq/lib/liblynq-call/lynq_module_socket.cpp
@@ -320,7 +320,7 @@
     int res = 0;

     lynq_head_t* phead;

     int level,index,size;

-	uint8_t * shm_buffer;

+    uint8_t * shm_buffer;

    

     LYINFLOG("urc recv thread is running");

     while(module_urc_status)

@@ -1007,6 +1007,18 @@
         case LYNQ_REQUEST_SET_DEFAULT_SIM_ALL:return "SET_DEFAULT_SIM_ALL";

         case LYNQ_REQUEST_CHANGE_SCREEN_STATE:return "LYNQ_REQUEST_CHANGE_SCREEN_STATE";/*jb.qi add for two sim sleep 2022/9/19*/

         case LYNQ_REQUEST_CHANGE_RADIO:return "LYNQ_REQUEST_CHANGE_RADIO";/*lei add for factory test of sleep 2022/9/19*/

+        case LYNQ_REQUEST_SET_VOICE_AUDIO_MODE:return "LYNQ_REQUEST_SET_VOICE_AUDIO_MODE";

+        case LYNQ_REQUEST_SET_REMOTE_RTP_IP:return "LYNQ_REQUEST_SET_REMOTE_RTP_IP";

+        case LYNQ_REQUEST_SET_VLAN_INFO:return "LYNQ_REQUEST_SET_VLAN_INFO";

+        case LYNQ_REQUEST_SET_RTP_PORT:return "LYNQ_REQUEST_SET_RTP_PORT";

+        case LYNQ_REQUEST_SET_RTP_PARAM:return "LYNQ_REQUEST_SET_RTP_PARAM";

+        case LYNQ_REQUEST_GET_VOICE_AUDIO_MODE:return "LYNQ_REQUEST_GET_VOICE_AUDIO_MODE";

+        case LYNQ_REQUEST_GET_REMOTE_RTP_IP:return "LYNQ_REQUEST_GET_REMOTE_RTP_IP";

+        case LYNQ_REQUEST_GET_VLAN_INFO:return "LYNQ_REQUEST_GET_VLAN_INFO";

+        case LYNQ_REQUEST_GET_RTP_PORT:return "LYNQ_REQUEST_GET_RTP_PORT";

+        case LYNQ_REQUEST_GET_RTP_PARAM:return "LYNQ_REQUEST_GET_RTP_PARAM";

+        case LYNQ_REQUEST_SET_CALL_RTP_SSRC:return "LYNQ_REQUEST_SET_CALL_RTP_SSRC";

+        case LYNQ_REQUEST_GET_CALL_RTP_SSRC:return "LYNQ_REQUEST_GET_CALL_RTP_SSRC";

         /*warren add for t800 ril service 2022/1/22 end*/

         default: return "<unknown request>";

     }