Squashed 'LYNQ_PUBLIC/' changes from 994e41a76..f3dd8cbdf
f3dd8cbdf [Feature][ZK-92] ftp gpslog to soc with syslog
8bb9992d3 [Feature][API-1508] in NMEA-statement for ZK ,transfer BD to GB
17579bbfa [BugFix][API-1564]fix File descriptor leakage
9c8bb35ff Merge "[Bugfix][API-1561][mtklog] support mtk log slim fota upgrade"
926d2ad75 [Bugfix][API-1561][mtklog] support mtk log slim fota upgrade
4bcc14334 Merge "[Bugfix][ZK-78][FOTA]get process and upgrade status error when start fota up status"
610236b60 [Bugfix][ZK-78][FOTA]get process and upgrade status error when start fota up status
f700d98cb Merge "[Bugfix][API-1473][mdlog] lynq_query_registration_state type Voice lac cid error"
0c874421d [Feature][T8TSK-320]Print the reason for the PDN when disconnected by the modem into the syslog
dac13540e Merge "[Feature][API-1406][API-1113]Adjust SEND_SMS timeout"
31850f3e5 Merge "[Feature][API-1557] FIX libvendor-ril can`t connected RILD issue"
d3a8f5da1 [Feature][API-1557] FIX libvendor-ril can`t connected RILD issue
2f4c07922 Merge "[Feature][T8TSK-316][rtp] rtp confirm to the standard of Geely"
1ee60ec01 Merge "[Bugfix][API-1551[network] lynq_set_vlan_info, vlan_info is "", ret 8004"
98beaeaf3 Merge "[Bugfix][API-1534]After turning on the USB port, delay for 3 seconds to make a call"
786e97304 [Feature][T8TSK-289] missing wom when add telephonyware to LYNQ_PUBLIC repo 0
d25d37156 [Bugfix][API-1534]After turning on the USB port, delay for 3 seconds to make a call
4157623f6 [Feature][T8TSK-316][rtp] rtp confirm to the standard of Geely
c66c73d5d [Bugfix][API-1551[network] lynq_set_vlan_info, vlan_info is "", ret 8004
4bf2e2e0b [Feature][API-1406][API-1113]Adjust SEND_SMS timeout
4b1c33121 [Bugfix][API-1473][mdlog] lynq_query_registration_state type Voice lac cid error
git-subtree-dir: LYNQ_PUBLIC
git-subtree-split: f3dd8cbdf17f75f5c9672368b59c1cd59194fce6
Change-Id: Ie206616813b8064220450958d9f91e5048c08ac2
diff --git a/common_src/framework/lynq-ril-service/src/rtp/call_rtp.cpp b/common_src/framework/lynq-ril-service/src/rtp/call_rtp.cpp
index 0f8e597..e784cc6 100755
--- a/common_src/framework/lynq-ril-service/src/rtp/call_rtp.cpp
+++ b/common_src/framework/lynq-ril-service/src/rtp/call_rtp.cpp
@@ -143,25 +143,22 @@
{
RLOGD("%s start!",__FUNCTION__);
android::Parcel p;
-
- if(argc < 2)
+ const char* vlan_info="";
+
+ if(argc >1)
{
- android::lynqAssemblyParcelheader(p,socket_id,pRI->uToken,LYNQ_REQUEST_SET_VLAN_INFO,0,2);
- android::LYNQ_RIL_respSocket_sp(p,pRI);
- free(pRI);
- RLOGW("Warning: no %s!",__FUNCTION__);
- return -1;
+ vlan_info=argv[1];
}
- if(exe_set_vlan_info(argv[1],strlen(argv[1])+1)==RESULT_OK)
+ if(exe_set_vlan_info(vlan_info,strlen(vlan_info)+1)==RESULT_OK)
{
android::lynqAssemblyParcelheader(p,socket_id,pRI->uToken,LYNQ_REQUEST_SET_VLAN_INFO,0,0);
- RLOGD(">>>>%s<<<< success value is %s!\n", __FUNCTION__, argv[1]);
+ RLOGD(">>>>%s<<<< success value is %s!\n", __FUNCTION__, vlan_info);
}
else
{
android::lynqAssemblyParcelheader(p,socket_id,pRI->uToken,LYNQ_REQUEST_SET_VLAN_INFO,0,4);
- RLOGE(">>>>%s <<<< failure value is %s!\n",__FUNCTION__, argv[1]);
+ RLOGE(">>>>%s <<<< failure value is %s!\n",__FUNCTION__, vlan_info);
}
android::LYNQ_RIL_respSocket(p,(void *)pRI);
@@ -514,7 +511,7 @@
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);
+ g_rtp_client_info.channels, g_rtp_client_info.clockrate, ssrc_para_string, g_rtp_server_info.ip,vlan_para_string,g_rtp_server_info.port);
RLOGD("start to rtp play: cmd is %s",cmd);
system(cmd);
@@ -680,7 +677,7 @@
RLOGD("exe_set_rtp_port suc: LYNQ_Rtp_Mode is %d, port is %d", rtp_mode, port);
return RESULT_OK;
}
-int exe_set_rtp_param(const int clock_rate,const int channels,const int latency) //only for client mode
+int exe_set_rtp_param(const int clock_rate,const int channels,const int latency)
{
g_rtp_client_info.clockrate = clock_rate;
g_rtp_client_info.channels = channels;
diff --git a/common_src/framework/lynq-ril-service/src/rtp/call_rtp_inner.h b/common_src/framework/lynq-ril-service/src/rtp/call_rtp_inner.h
index 7e5614f..0a1ebd0 100755
--- a/common_src/framework/lynq-ril-service/src/rtp/call_rtp_inner.h
+++ b/common_src/framework/lynq-ril-service/src/rtp/call_rtp_inner.h
@@ -15,8 +15,8 @@
RTP_MODE_MAX
}LYNQ_Rtp_Mode;
-#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 ! alsasink device=\'hw:0,2\'"
-#define RTP_TO_CMD "gst-launch-1.0 -v alsasrc device=\'hw:0,6\' ! alawenc ! rtppcmapay ! %s udpsink host=%s %s auto-multicast=true port=%d"
+#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 ! rtpL16depay ! audioconvert ! alsasink device=\'hw:0,2\'"
+#define RTP_TO_CMD "gst-launch-1.0 -v alsasrc device=\'hw:0,6\' ! audioconvert ! audio/x-raw,format=S16BE, channels=%d ! audioresample ! audio/x-raw, rate=%d ! rtpL16pay ! %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 !"
diff --git a/common_src/lib/liblynq-call/lynq_call.cpp b/common_src/lib/liblynq-call/lynq_call.cpp
index 8e6943d..0b7e385 100755
--- a/common_src/lib/liblynq-call/lynq_call.cpp
+++ b/common_src/lib/liblynq-call/lynq_call.cpp
@@ -30,7 +30,8 @@
#define AUDIO_CTRL_SER "/tmp/audio_ctrl_service"
#define LIBMODEM_AFE "/tmp/libmodem-afe-ctrl"
#define TELE_DEMO_LOCK "/tmp/tel_demo_single_proc.lock"
-
+#define CALL_REBOOT_FLAG "/tmp/.call_reboot_flag"
+#define SYSTEM_UPTIME 40
#define MAX_RING_INCOMING_INTERVAL 10
using ::android::Parcel;
@@ -989,6 +990,49 @@
return 0;
}
+int call_boot_check()
+{
+ FILE *file = NULL;
+ int uptime = 0;
+
+ file = fopen("/proc/uptime", "r");
+ if(file == NULL)
+ {
+ LYERRLOG("Error opening /proc/uptime");
+ return -1;
+ }
+
+ if(fscanf(file, "%d ", &uptime) != 1)
+ {
+ LYERRLOG("Error reading uptime value");
+ }
+
+ fclose(file);
+
+ if(uptime > SYSTEM_UPTIME)
+ {
+ LYINFLOG("System uptime is greater than 40 seconds.");
+ }
+ else
+ {
+ LYINFLOG("System uptime is less than 40 seconds.");
+ FILE *fp = NULL;
+ if(check_file_access(CALL_REBOOT_FLAG) != 0)
+ {
+ usleep(3000000);
+ fp = fopen(CALL_REBOOT_FLAG,"w");
+ if(fp == NULL)
+ {
+ LYERRLOG("Creat call reboot flag file failed !!!!");
+ return -1;
+ }
+ LYINFLOG("Creat flag file success");
+ fclose(fp);
+ }
+ }
+ return 0;
+
+}
int lynq_call(int* handle,char addr[])
{
if(g_module_init_flag != MODULE_RUNNING)
@@ -997,6 +1041,11 @@
return LYNQ_E_CONFLICT;
}
try_reset_audio_service();
+
+#ifdef GSW_RIL_CFG
+ call_boot_check();
+#endif
+
int lynq_call_id = -1;
LYINFLOG("lynq_call begin addr %s",addr);
diff --git a/common_src/lib/liblynq-call/lynq_call_rtp.cpp b/common_src/lib/liblynq-call/lynq_call_rtp.cpp
index 05b3032..092a85c 100755
--- a/common_src/lib/liblynq-call/lynq_call_rtp.cpp
+++ b/common_src/lib/liblynq-call/lynq_call_rtp.cpp
@@ -33,6 +33,17 @@
return strndup16to8(s16, stringlen);
}
+int is_whitespace_only(const char *str) {
+ while (*str != '\0') {
+ if (!isspace((unsigned char)*str)) {
+ return 0;
+ }
+ str++;
+ }
+ return 1;
+}
+
+
/*set*/
int lynq_set_voice_audio_mode(const LYNQ_Audio_Mode audio_mode)
{
@@ -62,9 +73,9 @@
LYERRLOG("%s module state %d error",__func__,g_module_init_flag);
return LYNQ_E_CONFLICT;
}
- if (NULL == ip)
+ if (NULL == ip || is_whitespace_only(ip))
{
- LYERRLOG("ip is NULL!!!");
+ LYERRLOG("ip is NULL or white space string !!!");
return LYNQ_E_PARAMETER_ANONALY;
}
if ((ip_length < strlen(ip)+1) || (ip_length > MAX_IP_LENGTH))
@@ -94,15 +105,24 @@
LYERRLOG("vlan_info is NULL!!!");
return LYNQ_E_PARAMETER_ANONALY;
}
-
- if ((vlan_info_length < strlen(vlan_info)+1) || (vlan_info_length > MAX_VLAN_INFO_LENGTH))
- {
- LYERRLOG("incoming vlan_info error, vlan info length %d", vlan_info_length);
- return LYNQ_E_PARAMETER_ANONALY;
- }
Parcel* p=NULL;
- int ret=lynq_send_common_request(p,g_wait_time,LYNQ_REQUEST_SET_VLAN_INFO,1,"%s",vlan_info);
+ int ret;
+
+ if(is_whitespace_only(vlan_info))
+ {
+ ret=lynq_send_common_request(p,g_wait_time,LYNQ_REQUEST_SET_VLAN_INFO,0,"");
+ }
+ else
+ {
+ if ((vlan_info_length < strlen(vlan_info)+1) || (vlan_info_length > MAX_VLAN_INFO_LENGTH))
+ {
+ LYERRLOG("incoming vlan_info error, vlan info length %d", vlan_info_length);
+ return LYNQ_E_PARAMETER_ANONALY;
+ }
+ ret=lynq_send_common_request(p,g_wait_time,LYNQ_REQUEST_SET_VLAN_INFO,1,"%s",vlan_info);
+ }
+
if(ret==RESULT_OK)
{
delete p;
diff --git a/common_src/lib/liblynq-call/makefile b/common_src/lib/liblynq-call/makefile
index 6073694..6d3e7ba 100755
--- a/common_src/lib/liblynq-call/makefile
+++ b/common_src/lib/liblynq-call/makefile
@@ -41,6 +41,10 @@
-llynq-log \
-llynq-shm \
+ifeq ($(strip $(MOBILETEK_RIL_CFG)), GSW)
+ LOCAL_CFLAGS += -DGSW_RIL_CFG
+endif
+
SOURCES = $(wildcard *.cpp)
EXECUTABLE = liblynq-call.so
diff --git a/common_src/lib/liblynq-network/lynq_network.cpp b/common_src/lib/liblynq-network/lynq_network.cpp
index ca07f55..311a360 100755
--- a/common_src/lib/liblynq-network/lynq_network.cpp
+++ b/common_src/lib/liblynq-network/lynq_network.cpp
@@ -468,6 +468,80 @@
return RESULT_OK;
}
+int lynq_query_registration_state_from_parcel(Parcel* p, int num,int reject_index, int* regState,char * LAC,char * CID,int *netType,int *netRejected)
+{
+ int i;
+ char *resp[LYNQ_RESP_STRING_MAX_NUM]={0};
+ int ret = RESULT_OK;
+ for(i=0;i<num;i++)
+ {
+ resp[i]=lynqStrdupReadString(p);
+ }
+ if(resp[0]==NULL)
+ {
+ LYERRLOG("%s resp[0] %s is NULL",__func__,resp[0]);
+ ret = LYNQ_E_INNER_ERROR;
+ goto registration_from_parcel_return;
+ }
+ *regState = atoi(resp[0]);
+ strcpy(CID,"");
+ strcpy(LAC,"");
+ *netType = RADIO_TECH_UNKNOWN;
+ *netRejected = -1;
+ if((*regState)==1 || (*regState)==5)
+ {
+ if(resp[1]!=NULL)
+ {
+ strcpy(LAC,resp[1]);
+ }
+ else
+ {
+ LYERRLOG("%s resp[1] %s is NULL",__func__);
+ }
+
+ if(resp[2]!=NULL)
+ {
+ strcpy(CID,resp[2]);
+ }
+ else
+ {
+ LYERRLOG("%s resp[2] %s is NULL",__func__);
+ }
+
+ if(resp[3]!=NULL)
+ {
+ *netType = atoi(resp[3]);
+ }
+ else
+ {
+ LYERRLOG("%s data resp[3] %s is NULL",__func__);
+ }
+ }
+ else if((*regState)==3 || (*regState)==13)
+ {
+ if(resp[reject_index]==NULL)
+ {
+ LYERRLOG("%s resp[%d] is NULL",__func__,reject_index);
+ }
+ else
+ {
+ *netRejected = atoi(resp[reject_index]);
+ }
+ }
+
+registration_from_parcel_return:
+
+ for(i=0;i<num;i++)
+ {
+ if(resp[i]!=NULL)
+ {
+ free(resp[i]);
+ }
+ }
+ return ret;
+}
+
+
int lynq_query_registration_state(const char *type,int* regState,int* imsRegState,char * LAC,char * CID,int *netType,int *radioTechFam,int *netRejected)
{
if(g_module_init_flag != MODULE_RUNNING)
@@ -492,14 +566,14 @@
memcpy(str,type,strlen(type)+1);
strUpper(str);
if(!strcmp(str,"VOICE"))
- {
- if(get_state_from_buf(NETWORK_STATE_BUFFER_TYPE_VOICE_REG,3,regState,netType,netRejected,0)==0)
+ {
+ if(get_state_from_buf(NETWORK_STATE_BUFFER_TYPE_VOICE_REG,3,regState,netType,netRejected,2,LAC,CID)==0)
{
return RESULT_OK;
}
request = RIL_REQUEST_VOICE_REGISTRATION_STATE;
}else if(!strcmp(str,"DATA")){
- if(get_state_from_buf(NETWORK_STATE_BUFFER_TYPE_DATA_REG,2,regState,netType,2,LAC,CID)==0)
+ if(get_state_from_buf(NETWORK_STATE_BUFFER_TYPE_DATA_REG,3,regState,netType,netRejected,2,LAC,CID)==0)
{
return RESULT_OK;
}
@@ -524,28 +598,21 @@
return ret;
}
- int num,i;
- char *resp[LYNQ_RESP_STRING_MAX_NUM];
+ int num;
+ char *resp[LYNQ_RESP_STRING_MAX_NUM]={0};
if(!strcmp(str,"VOICE"))
- {
- p->readInt32(&num);
- if(num == 15)
+ {
+ p->readInt32(&num);
+ if(num >0 && num<=15)
{
- for(i=0;i<15;i++)
+ ret=lynq_query_registration_state_from_parcel(p, num, 13, regState, LAC,CID,netType,netRejected);
+ if(ret!=RESULT_OK)
{
- resp[i]=lynqStrdupReadString(p);
- }
- *regState = atoi(resp[0]);
- *netType = atoi(resp[3]);
- *netRejected = atoi(resp[14]);
- for(i=0;i<15;i++)
- {
- if(resp[i]!=NULL)
- {
- free(resp[i]);
- }
- }
- set_state_to_buf(NETWORK_STATE_BUFFER_TYPE_VOICE_REG,3,*regState,*netType,*netRejected,0);
+ LYERRLOG("%s call lynq_query_registration_state_from_parcel fail",__func__);
+ goto registration_return;
+ }
+ set_state_to_buf(NETWORK_STATE_BUFFER_TYPE_VOICE_REG,3,*regState,*netType,*netRejected,2,LAC,CID);
+ goto registration_return;
}
else
{
@@ -556,24 +623,17 @@
}
else if(!strcmp(str,"DATA")){
p->readInt32(&num);
- if(num == 11)
- {
- for(i=0;i<4;i++)
+ if(num >0 && num <=11)
+ {
+ ret=lynq_query_registration_state_from_parcel(p, num, 4, regState, LAC,CID,netType,netRejected);
+ if(ret!=RESULT_OK)
{
- resp[i]=lynqStrdupReadString(p);
- }
- *regState = atoi(resp[0]);
- strcpy(LAC,resp[1]);
- strcpy(CID,resp[2]);
- *netType = atoi(resp[3]);
- for(i=0;i<4;i++)
- {
- if(resp[i]!=NULL)
- {
- free(resp[i]);
- }
- }
- set_state_to_buf(NETWORK_STATE_BUFFER_TYPE_DATA_REG,2,*regState,*netType,2,LAC,CID);
+ LYERRLOG("%s call lynq_query_registration_state_from_parcel fail",__func__);
+ goto registration_return;
+ }
+
+ set_state_to_buf(NETWORK_STATE_BUFFER_TYPE_DATA_REG,3,*regState,*netType,*netRejected,2,LAC,CID);
+ goto registration_return;
}
else
{
@@ -598,10 +658,18 @@
delete p;
return LYNQ_E_INNER_ERROR;
}
- }
- LYINFLOG("%s suc",__func__);
- delete p;
- return RESULT_OK;
+ }
+
+registration_return:
+
+ if(ret==RESULT_OK)
+ {
+ LYINFLOG("%s suc",__func__);
+ }
+
+ delete p;
+ return ret;
+
}
int lynq_query_prefferred_networktype(int *preNetType)
diff --git a/common_src/lib/liblynq-sms/lynq_sms.cpp b/common_src/lib/liblynq-sms/lynq_sms.cpp
index 4522fb6..938eedf 100755
--- a/common_src/lib/liblynq-sms/lynq_sms.cpp
+++ b/common_src/lib/liblynq-sms/lynq_sms.cpp
@@ -152,7 +152,7 @@
char msg_e_b[msglen*2+1] = {0};// +1 for end of string.*2:A char array contains two elements of a string for each value
ArrayToStr(msg, msglen, msg_e_b);
LYINFLOG("tel, charset, msg_e_b: %s, %d, %s", telephony_num, charset, msg_e_b);
- int ret=lynq_send_common_request(p,g_wait_time,RIL_REQUEST_SEND_SMS,3,"%s %d %s",telephony_num, charset, msg_e_b);
+ int ret=lynq_send_common_request(p,20,RIL_REQUEST_SEND_SMS,3,"%s %d %s",telephony_num, charset, msg_e_b);
if(ret!=RESULT_OK)
{
LYERRLOG("%s 8bit send error %d",__func__,__LINE__);
@@ -163,7 +163,7 @@
}
else//other bit
{
- int ret=lynq_send_common_request(p,g_wait_time,RIL_REQUEST_SEND_SMS,3,"%s %d %s",telephony_num, charset, msg);
+ int ret=lynq_send_common_request(p,20,RIL_REQUEST_SEND_SMS,3,"%s %d %s",telephony_num, charset, msg);
if(ret!=RESULT_OK)
{
LYERRLOG("%s 7bit send error %d",__func__,__LINE__);