Handle the request to dial from a memory index and send the
correct ATD> sequence
---
drivers/hfpmodem/voicecall.c | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/drivers/hfpmodem/voicecall.c b/drivers/hfpmodem/voicecall.c
index a32a3242..7d198af0 100644
--- a/drivers/hfpmodem/voicecall.c
+++ b/drivers/hfpmodem/voicecall.c
@@ -422,6 +422,31 @@ static void hfp_dial_last(struct ofono_voicecall *vc, enum
ofono_clir_option cli
CALLBACK_WITH_FAILURE(cb, data);
}
+
+static void hfp_dial_memory(struct ofono_voicecall *vc,
+ long int memory_location,
+ enum ofono_clir_option clir, ofono_voicecall_cb_t cb,
+ void *data)
+{
+ struct voicecall_data *vd = ofono_voicecall_get_data(vc);
+ struct cb_data *cbd = cb_data_new(cb, data);
+ char buf[256];
+
+ cbd->user = vc;
+ DBG("Calling memory location %ld\n", memory_location);
+ snprintf(buf, sizeof(buf), "ATD>%ld", memory_location);
+
+ strcat(buf, ";");
+
+ if (g_at_chat_send(vd->chat, buf, none_prefix,
+ atd_cb, cbd, g_free) > 0)
+ return;
+
+ g_free(cbd);
+ DBG("at_chat_failed");
+ CALLBACK_WITH_FAILURE(cb, data);
+}
+
static void hfp_template(const char *cmd, struct ofono_voicecall *vc,
GAtResultFunc result_cb, unsigned int affected_types,
ofono_voicecall_cb_t cb, void *data)
@@ -1287,6 +1312,7 @@ static struct ofono_voicecall_driver driver = {
.remove = hfp_voicecall_remove,
.dial = hfp_dial,
.dial_last = hfp_dial_last,
+ .dial_memory = hfp_dial_memory,
.answer = hfp_answer,
.hangup_active = hfp_hangup,
.hold_all_active = hfp_hold_all_active,
--
2.11.0
_______________________________________________
ofono mailing list
[email protected]
https://lists.ofono.org/mailman/listinfo/ofono