summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/atmodem/voicecall.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/atmodem/voicecall.c b/drivers/atmodem/voicecall.c
index 9dae1c83..502a96af 100644
--- a/drivers/atmodem/voicecall.c
+++ b/drivers/atmodem/voicecall.c
@@ -273,6 +273,7 @@ static void atd_cb(gboolean ok, GAtResult *result, gpointer user_data)
int validity = 2;
struct ofono_error error;
struct ofono_call *call;
+ GSList *l;
dump_response("atd_cb", ok, result);
@@ -281,6 +282,17 @@ static void atd_cb(gboolean ok, GAtResult *result, gpointer user_data)
if (!ok)
goto out;
+ /* On a success, make sure to put all active calls on hold */
+ for (l = vd->calls; l; l = l->next) {
+ call = l->data;
+
+ if (call->status != 0)
+ continue;
+
+ call->status = 1;
+ ofono_voicecall_notify(vc, call);
+ }
+
g_at_result_iter_init(&iter, result);
if (g_at_result_iter_next(&iter, "+COLP:")) {