... when a USSD notification is received. Some networks send 0 (no further user action required) after the response timeout expires. That should result in the user input form getting removed from the ME screen. --- src/ussd.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
diff --git a/src/ussd.c b/src/ussd.c index 99fa753..84f64c6 100644 --- a/src/ussd.c +++ b/src/ussd.c @@ -512,6 +512,20 @@ void ofono_ussd_notify(struct ofono_ussd *ussd, int status, int dcs, ussd_change_state(ussd, new_state); goto free; + } else if (ussd->state == USSD_STATE_USER_ACTION && + status != OFONO_USSD_STATUS_ACTION_REQUIRED) { + ussd_change_state(ussd, USSD_STATE_IDLE); + + if (status == OFONO_USSD_STATUS_NOTIFY && str && str[0]) { + const char *path = __ofono_atom_get_path(ussd->atom); + + g_dbus_emit_signal(conn, path, + OFONO_SUPPLEMENTARY_SERVICES_INTERFACE, + "NotificationReceived", DBUS_TYPE_STRING, + &str, DBUS_TYPE_INVALID); + } + + goto free; } else { ofono_error("Received an unsolicited USSD but can't handle."); DBG("USSD is: status: %d, %s", status, str); -- 1.9.1 _______________________________________________ ofono mailing list ofono@ofono.org https://lists.ofono.org/mailman/listinfo/ofono