[-]
[+]
|
Changed |
_service:tar_git:ofono.spec
|
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.65.tar.bz2/ofono/drivers/ril/ril_plugin.c
^
|
@@ -89,6 +89,7 @@
#define RILMODEM_DEFAULT_NETWORK_SELECTION_MANUAL_0 TRUE
#define RILMODEM_DEFAULT_USE_DATA_PROFILES FALSE
#define RILMODEM_DEFAULT_MMS_DATA_PROFILE_ID RIL_DATA_PROFILE_IMS
+#define RILMODEM_DEFAULT_SAMSUNG_CALLDETAILS FALSE
#define RILMODEM_DEFAULT_SLOT_FLAGS SAILFISH_SLOT_NO_FLAGS
/* RIL socket transport name and parameters */
@@ -142,6 +143,7 @@
#define RILCONF_NETWORK_SELECTION_MANUAL_0 "networkSelectionManual0"
#define RILCONF_USE_DATA_PROFILES "useDataProfiles"
#define RILCONF_MMS_DATA_PROFILE_ID "mmsDataProfileId"
+#define RILMODEM_SAMSUNG_CALLDETAILS "samsungCallDetails"
/* Modem error ids */
#define RIL_ERROR_ID_RILD_RESTART "rild-restart"
@@ -1059,6 +1061,7 @@
slot->imeisv, ril_plugin_sim_state(slot),
slot->slot_flags);
sailfish_manager_set_cell_info(slot->handle, slot->cell_info);
+ grilio_channel_set_enabled(slot->io, slot->handle->enabled);
/* Check if this was the last slot we were waiting for */
ril_plugin_check_if_started(plugin);
@@ -1226,6 +1229,7 @@
RILMODEM_DEFAULT_NETWORK_SELECTION_MANUAL_0;
config->use_data_profiles = RILMODEM_DEFAULT_USE_DATA_PROFILES;
config->mms_data_profile_id = RILMODEM_DEFAULT_MMS_DATA_PROFILE_ID;
+ config->samsung_calldetails = RILMODEM_DEFAULT_SAMSUNG_CALLDETAILS;
slot->timeout = RILMODEM_DEFAULT_TIMEOUT;
slot->sim_flags = RILMODEM_DEFAULT_SIM_FLAGS;
slot->slot_flags = RILMODEM_DEFAULT_SLOT_FLAGS;
@@ -1521,6 +1525,13 @@
config->mms_data_profile_id);
}
+ /* samsungCallDetails */
+ if (ril_config_get_boolean(file, group, RILMODEM_SAMSUNG_CALLDETAILS,
+ &config->samsung_calldetails)) {
+ DBG("%s: " RILMODEM_SAMSUNG_CALLDETAILS " %s", group,
+ config->samsung_calldetails ? "on" : "off");
+ }
+
/* technologies */
strv = ril_config_get_strings(file, group, RILCONF_TECHNOLOGIES, ',');
if (strv) {
@@ -2136,7 +2147,9 @@
{
if (s->handle->enabled) {
ril_plugin_check_modem(s);
+ grilio_channel_set_enabled(s->io, TRUE);
} else {
+ grilio_channel_set_enabled(s->io, FALSE);
ril_plugin_shutdown_slot(s, FALSE);
}
}
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.65.tar.bz2/ofono/drivers/ril/ril_subscription.conf
^
|
@@ -278,3 +278,13 @@
# Default 2 (RIL_DATA_PROFILE_IMS)
#
#mmsDataProfileId=2
+
+# Many samsung devices' RIL has CallDetails in their call structure.
+# It can be checked by searching in LineageOS RIL class or in libsec-ril.so
+# "call_type, call_domain or csv"
+# If these are present, enable this config to be able to make calls and view
+# caller's phone number
+#
+# Default false
+#
+#samsungCallDetails=false
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.65.tar.bz2/ofono/drivers/ril/ril_types.h
^
|
@@ -63,6 +63,7 @@
gboolean enable_stk;
gboolean network_selection_manual_0;
gboolean use_data_profiles;
+ gboolean samsung_calldetails;
guint mms_data_profile_id;
GUtilInts *local_hangup_reasons;
GUtilInts *remote_hangup_reasons;
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.65.tar.bz2/ofono/drivers/ril/ril_voicecall.c
^
|
@@ -151,21 +151,33 @@
grilio_parser_get_int32(&rilp, NULL); /* als */
grilio_parser_get_int32(&rilp, &call->type); /* isVoice */
- grilio_parser_get_int32(&rilp, NULL); /* Samsung CallDetails */
+ if (config->samsung_calldetails)
+ grilio_parser_get_int32(&rilp, NULL); /* Samsung CallDetails */
grilio_parser_get_int32(&rilp, NULL); /* isVoicePrivacy */
+ if (!config->samsung_calldetails)
+ number = grilio_parser_get_utf8(&rilp);
+ if (number) {
+ strncpy(call->phone_number.number, number,
+ OFONO_MAX_PHONE_NUMBER_LENGTH);
+ g_free(number);
+ }
+ grilio_parser_get_int32(&rilp, NULL); /* numberPresentation */
+ }
name = grilio_parser_get_utf8(&rilp);
if (name) {
strncpy(call->name, name, OFONO_MAX_CALLER_NAME_LENGTH);
g_free(name);
}
grilio_parser_get_int32(&rilp, NULL); /* namePresentation */
- number = grilio_parser_get_utf8(&rilp);
+ if (config->samsung_calldetails)
+ number = grilio_parser_get_utf8(&rilp);
if (number) {
- strncpy(call->phone_number.number, number,
- OFONO_MAX_PHONE_NUMBER_LENGTH);
- g_free(number);
+ strncpy(call->phone_number.number, number,
+ OFONO_MAX_PHONE_NUMBER_LENGTH);
+ g_free(number);
+ }
+ grilio_parser_get_int32(&rilp, NULL); /* numberPresentation */
}
- grilio_parser_get_int32(&rilp, NULL); /* numberPresentation */
grilio_parser_get_int32(&rilp, &tmp); /* uusInfo */
GASSERT(!tmp);
@@ -561,10 +573,12 @@
grilio_request_append_utf8(req, phstr); /* Number to dial */
grilio_request_append_int32(req, clir); /* CLIR mode */
- grilio_request_append_int32(req, 0); /* CallDetails.call_type */
- grilio_request_append_int32(req, 1); /* CallDetails.call_domain */
- grilio_request_append_int32(req, 0); /* CallDetails.getCsvFromExtras == mParcel.writeString("") */
- grilio_request_append_int32(req, 0); /* */
+ if (config->samsung_calldetails) {
+ grilio_request_append_int32(req, 0); /* CallDetails.call_type */
+ grilio_request_append_int32(req, 1); /* CallDetails.call_domain */
+ grilio_request_append_int32(req, 0); /* CallDetails.getCsvFromExtras == mParcel.writeString("") */
+ grilio_request_append_int32(req, 0); /* */
+ }
grilio_request_append_int32(req, 0); /* UUS information (absent) */
grilio_queue_send_request_full(vd->q, req, RIL_REQUEST_DIAL,
|