All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arun Ravindran <arunlee@gmail.com>
To: ofono@ofono.org
Subject: [PATCH] isimodem: Improper handling of missed call
Date: Wed, 18 May 2011 13:47:32 +0300	[thread overview]
Message-ID: <1305715652-4357-1-git-send-email-arunlee@gmail.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 1721 bytes --]

---
 drivers/isimodem/voicecall.c |   20 ++++++++++++++++----
 1 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/drivers/isimodem/voicecall.c b/drivers/isimodem/voicecall.c
index 333f9b8..6979105 100644
--- a/drivers/isimodem/voicecall.c
+++ b/drivers/isimodem/voicecall.c
@@ -50,6 +50,7 @@ struct isi_call {
 	uint8_t id;
 	uint8_t call_id;
 	uint8_t status;
+	uint8_t prev_status;
 	uint8_t mode;
 	uint8_t mode_info;
 	uint8_t cause_type;
@@ -314,7 +315,7 @@ static void isi_call_status_sb_proc(struct isi_voicecall *ivc,
 
 	if (!g_isi_sb_iter_get_byte(sb, &status, 2))
 		return;
-
+	call->prev_status = call->status;
 	call->status = status;
 }
 
@@ -401,10 +402,16 @@ static int isi_call_status_to_clcc(const struct isi_call *call)
 		return 5;
 
 	case CALL_STATUS_MO_RELEASE:
-	case CALL_STATUS_MT_RELEASE:
-	case CALL_STATUS_TERMINATED:
 		return 6;
 
+	case CALL_STATUS_MT_RELEASE:
+		if ((call->prev_status == CALL_STATUS_MT_ALERTING) ||
+				(call->prev_status == CALL_STATUS_COMING) ||
+				(call->prev_status == CALL_STATUS_WAITING))
+			return 4;
+		else
+			return 6;
+	
 	case CALL_STATUS_ACTIVE:
 	case CALL_STATUS_HOLD_INITIATED:
 		return 0;
@@ -548,9 +555,14 @@ static void isi_call_notify(struct ofono_voicecall *ovc, struct isi_call *call)
 
 	case CALL_STATUS_MO_RELEASE:
 	case CALL_STATUS_MT_RELEASE:
+		isi_call_set_disconect_reason(call):
+		break;
+
 	case CALL_STATUS_TERMINATED:
 		isi_call_set_disconnect_reason(call);
-		break;
+		DBG("State( CALL_STATUS_TERMINATED ) need not be reported to Core");
+		return;
+
 	case CALL_STATUS_ANSWERED:
 		DBG("State need not be reported to Core");
 		return;
-- 
1.7.1


             reply	other threads:[~2011-05-18 10:47 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-18 10:47 Arun Ravindran [this message]
2011-05-19 12:19 ` [PATCH] isimodem: Improper handling of missed call Aki Niemi
  -- strict thread matches above, loose matches on Subject: below --
2011-05-23 15:20 Arun Ravindran
2011-05-30 12:03 ` Aki Niemi
2011-05-30 19:35   ` Arun Ravindran
2011-06-14  8:30     ` Aki Niemi
2011-07-20 13:14       ` Paccou, Nicolas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1305715652-4357-1-git-send-email-arunlee@gmail.com \
    --to=arunlee@gmail.com \
    --cc=ofono@ofono.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.