From 74bbdea02df251d18c9ea2cf68b0644080eee064 Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Thu, 25 Jun 2009 11:43:45 -0500 Subject: [PATCH] Preserve clip_validity CLCC does not report clip_validity. So if clip_validity of witheld has been reported in CLIP, but we're still somehow polling CLCC, which happens if CRING is not supported, and RING is used instead, this fact can be lost. Make sure we preserve clip_validity if possible --- drivers/atmodem/voicecall.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/atmodem/voicecall.c b/drivers/atmodem/voicecall.c index 3a2291b5..dd837e72 100644 --- a/drivers/atmodem/voicecall.c +++ b/drivers/atmodem/voicecall.c @@ -286,6 +286,15 @@ static void clcc_poll_cb(gboolean ok, GAtResult *result, gpointer user_data) n = n->next; } else { + /* Always use the clip_validity from old call + * the only place this is truly told to us is + * in the CLIP notify, the rest are fudged + * anyway. Useful when RING, CLIP is used, + * and we're forced to use CLCC and clip_validity + * is 1 + */ + nc->clip_validity = oc->clip_validity; + if (memcmp(nc, oc, sizeof(struct ofono_call)) && !nc->type) ofono_voicecall_notify(modem, nc);