diff --git a/drivers/atmodem/voicecall.c b/drivers/atmodem/voicecall.c index d55cf008..7ab6567f 100644 --- a/drivers/atmodem/voicecall.c +++ b/drivers/atmodem/voicecall.c @@ -264,14 +264,17 @@ poll_again: poll_clcc, vc); } +static void send_clcc(struct voicecall_data *vd, struct ofono_voicecall *vc) +{ + g_at_chat_send(vd->chat, "AT+CLCC", clcc_prefix, clcc_poll_cb, vc, NULL); +} + static gboolean poll_clcc(gpointer user_data) { struct ofono_voicecall *vc = user_data; struct voicecall_data *vd = ofono_voicecall_get_data(vc); - g_at_chat_send(vd->chat, "AT+CLCC", clcc_prefix, - clcc_poll_cb, vc, NULL); - + send_clcc(vd, vc); vd->clcc_source = 0; return FALSE; @@ -297,8 +300,7 @@ static void generic_cb(gboolean ok, GAtResult *result, gpointer user_data) } } - g_at_chat_send(vd->chat, "AT+CLCC", clcc_prefix, - clcc_poll_cb, req->vc, NULL); + send_clcc(vd, req->vc); /* We have to callback after we schedule a poll if required */ req->cb(&error, req->data); @@ -316,8 +318,7 @@ static void release_id_cb(gboolean ok, GAtResult *result, if (ok) vd->local_release = 1 << req->id; - g_at_chat_send(vd->chat, "AT+CLCC", clcc_prefix, - clcc_poll_cb, req->vc, NULL); + send_clcc(vd, req->vc); /* We have to callback after we schedule a poll if required */ req->cb(&error, req->data); @@ -962,8 +963,7 @@ static void no_carrier_notify(GAtResult *result, gpointer user_data) struct ofono_voicecall *vc = user_data; struct voicecall_data *vd = ofono_voicecall_get_data(vc); - g_at_chat_send(vd->chat, "AT+CLCC", clcc_prefix, - clcc_poll_cb, vc, NULL); + send_clcc(vd, vc); } static void no_answer_notify(GAtResult *result, gpointer user_data) @@ -971,8 +971,7 @@ static void no_answer_notify(GAtResult *result, gpointer user_data) struct ofono_voicecall *vc = user_data; struct voicecall_data *vd = ofono_voicecall_get_data(vc); - g_at_chat_send(vd->chat, "AT+CLCC", clcc_prefix, - clcc_poll_cb, vc, NULL); + send_clcc(vd, vc); } static void busy_notify(GAtResult *result, gpointer user_data) @@ -984,8 +983,7 @@ static void busy_notify(GAtResult *result, gpointer user_data) * or UDUB on the other side * TODO: Handle UDUB or other conditions somehow */ - g_at_chat_send(vd->chat, "AT+CLCC", clcc_prefix, - clcc_poll_cb, vc, NULL); + send_clcc(vd, vc); } static void cssi_notify(GAtResult *result, gpointer user_data)