[Feature][data][API-1345]Notifies when the datacall service restarts
Only Configure:No
Affected branch:GSW3.0-No-Connman
Affected module:DATA
Is it affected on both ZXIC and MTK:Only MTK
Self-test:Yes
Doc Update:No
Change-Id: I5cb2f203109d4c3f5b8003194c88174334a22150
diff --git a/src/lynq/framework/lynq-ril-service/src/mtk_ril_unsol_commands.h b/src/lynq/framework/lynq-ril-service/src/mtk_ril_unsol_commands.h
index 5c461f4..bdd73e2 100755
--- a/src/lynq/framework/lynq-ril-service/src/mtk_ril_unsol_commands.h
+++ b/src/lynq/framework/lynq-ril-service/src/mtk_ril_unsol_commands.h
@@ -50,3 +50,4 @@
{ RIL_UNSOL_ECC_NUM,responseString, WAKE_PARTIAL},
{RIL_UNSOL_SIP_CALL_PROGRESS_INDICATOR, responseStrings, WAKE_PARTIAL},
{RIL_UNSOL_CALL_INFO_INDICATION, responseStrings, WAKE_PARTIAL},
+{RIL_UNSOL_TELEPHONY_RESTART, responseVoid, WAKE_PARTIAL}
diff --git a/src/lynq/framework/lynq-ril-service/src/ril.cpp b/src/lynq/framework/lynq-ril-service/src/ril.cpp
index ccd0e01..20fcf22 100755
--- a/src/lynq/framework/lynq-ril-service/src/ril.cpp
+++ b/src/lynq/framework/lynq-ril-service/src/ril.cpp
@@ -26,6 +26,7 @@
#include <hardware_legacy/power.h>
#include <vendor-ril/telephony/ril.h>
#include <telephony/ril_cdma_sms.h>
+#include <telephony/mtk_ril_sp.h>
#include <cutils/jstring.h>
#include <telephony/record_stream.h>
#include <utils/SystemClock.h>
@@ -5396,6 +5397,7 @@
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 RIL_UNSOL_TELEPHONY_RESTART:return "RIL_UNSOL_TELEPHONY_RESTART";/*xy.he add for t800 ril service 2023/10/23*/
/*warren add for t800 ril service 2022/1/22 end*/
default: return "<unknown request>";
}
@@ -5694,6 +5696,7 @@
case RIL_UNSOL_ECALL_MSDHACK: return 1;
case RIL_UNSOL_TX_POWER: return 1;
case RIL_UNSOL_NETWORK_INFO: return 1;
+ case RIL_UNSOL_TELEPHONY_RESTART: return 1;
#ifdef ECALL_SUPPORT
case RIL_UNSOL_ECALL_INDICATIONS: return 1;
#endif /*ECALL_SUPPORT*/
diff --git a/src/lynq/lib/liblynq-data/lynq_data.cpp b/src/lynq/lib/liblynq-data/lynq_data.cpp
index b7498a6..def2a32 100755
--- a/src/lynq/lib/liblynq-data/lynq_data.cpp
+++ b/src/lynq/lib/liblynq-data/lynq_data.cpp
@@ -26,6 +26,7 @@
#define LYNQ_DATA_UCI_BUF 258
#define LYNQ_DATA_TIME_OUT 1000*120
+#define TELEPHONY_RESTART 10
using ::android::Parcel;
@@ -65,6 +66,7 @@
int lynq_data_socket_server_addr_len;
int lynq_data_call_change_id = -1;
+int lynq_telephony_restart_g = 0;
pthread_t lynq_data_tid =-1;
static pthread_mutex_t s_data_call_state_change_mutex = PTHREAD_MUTEX_INITIALIZER;
static pthread_cond_t s_data_call_state_change_cond = PTHREAD_COND_INITIALIZER;
@@ -115,6 +117,8 @@
lynq_data_call_response_v11_t lynq_data_call_lists[LYNQ_APN_CHANNEL_MAX] = {};
int lynq_data_call = 0;
+int radio_switch(int status);
+
int getLynqApnID(char apnType[])
{
int ret = 0;
@@ -560,6 +564,7 @@
case LYNQ_URC_MODIFY_APNDB:
case LYNQ_URC_RESET_APNDB:
+ case LYNQ_TELEPHONY_RESTART:
return true;
default:
return false;
@@ -796,6 +801,23 @@
}
free(urc_msg);
}
+ case LYNQ_TELEPHONY_RESTART:
+ {
+ if(slot_id == 0)
+ {
+ RLOGI("data has received telephony has restart");
+ RLOGI("handle set to 10");
+ lynq_telephony_restart_g = 1;
+ pthread_mutex_lock(&s_lynq_urc_vector_mutex);
+ s_data_urc_wait_list.push_back(TELEPHONY_RESTART);
+ pthread_mutex_unlock(&s_lynq_urc_vector_mutex);
+ radio_switch(0);
+ sleep(1);
+ radio_switch(1);
+ sleep(1);
+ sendSignalPdnChange();
+ }
+ }
default:
break;
}
@@ -813,7 +835,7 @@
}
int get_imsi();
int check_apn_status();
-int radio_switch(int status);
+
int lynq_init_data(int uToken)
{
if (g_lynq_data_init_flag == 1)
diff --git a/src/lynq/lib/liblynq-data/lynq_data_urc.h b/src/lynq/lib/liblynq-data/lynq_data_urc.h
index 7ac4f75..59f9f9d 100755
--- a/src/lynq/lib/liblynq-data/lynq_data_urc.h
+++ b/src/lynq/lib/liblynq-data/lynq_data_urc.h
@@ -16,6 +16,7 @@
#define LYNQ_REQUEST_SET_DTMF_VOLUME (LYNQ_REQUEST_VENDOR_BASE +3)
#define LYNQ_URC_MODIFY_APNDB (LYNQ_URC_VENDOR_BASE+4)
#define LYNQ_URC_RESET_APNDB (LYNQ_URC_VENDOR_BASE+5)
+#define LYNQ_TELEPHONY_RESTART 3113
typedef struct{
int resp_type;
diff --git a/src/telephonyware/3.0/libvendor-ril/mtk-rilproxy/socket_channel.cpp b/src/telephonyware/3.0/libvendor-ril/mtk-rilproxy/socket_channel.cpp
index 15a17ab..dca7898 100755
--- a/src/telephonyware/3.0/libvendor-ril/mtk-rilproxy/socket_channel.cpp
+++ b/src/telephonyware/3.0/libvendor-ril/mtk-rilproxy/socket_channel.cpp
@@ -647,7 +647,11 @@
#if defined(TELEPHONYWARE)
static void send_restart_unsol(RIL_SOCKET_ID slot){
#if defined(ANDROID_MULTI_SIM) && !defined(MODE_DSSS)
+ RLOGI("start send RIL_UNSOL_TELEPHONY_RESTART111111");
RFX_onUnsolicitedResponse(RIL_UNSOL_TELEPHONY_RESTART, NULL, 0, slot);
+#else
+ //RFX_onUnsolicitedResponse(RIL_UNSOL_TELEPHONY_RESTART, NULL, 0, slot);
+ RLOGI("don't defined ANDROID_MULIT_SIM and MODE_DSSS");
#endif
return;
}
@@ -657,6 +661,11 @@
void *ril_socket_reader_looper(void *arg) {
while (1) {
RilpSocket *socket = (RilpSocket *)arg;
+ #if defined(TELEPHONYWARE)
+ RLOGI("[ril_socket_reader_looper]TELEPHONY HAS RESTART");
+ RLOGI("has defined TELEPHONYWARE");
+ send_restart_unsol(socket->id);
+ #endif
socket->readerLooper();
rfx_close_socket(socket->group, socket->id);