summaryrefslogtreecommitdiffstats
path: root/drivers/atmodem/stk.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/atmodem/stk.c')
-rw-r--r--drivers/atmodem/stk.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/drivers/atmodem/stk.c b/drivers/atmodem/stk.c
index ab29e71a..d6c19daa 100644
--- a/drivers/atmodem/stk.c
+++ b/drivers/atmodem/stk.c
@@ -281,14 +281,26 @@ static void phonesim_tcmd_notify(GAtResult *result, gpointer user_data)
at_sim_fetch_command(stk, length);
}
+static void phonesim_tend_notify(GAtResult *result, gpointer user_data)
+{
+ struct ofono_stk *stk = user_data;
+
+ ofono_stk_proactive_session_end_notify(stk);
+}
+
static gboolean at_stk_register(gpointer user)
{
struct ofono_stk *stk = user;
struct stk_data *sd = ofono_stk_get_data(stk);
- if (sd->vendor == OFONO_VENDOR_PHONESIM)
- g_at_chat_register(sd->chat, "*TCMD", phonesim_tcmd_notify,
+ if (sd->vendor == OFONO_VENDOR_PHONESIM) {
+ g_at_chat_register(sd->chat, "*TCMD:", phonesim_tcmd_notify,
FALSE, stk, NULL);
+
+ g_at_chat_register(sd->chat, "*TEND", phonesim_tend_notify,
+ FALSE, stk, NULL);
+ }
+
ofono_stk_register(stk);
return FALSE;