diff --git a/sflphone-gtk/src/actions.c b/sflphone-gtk/src/actions.c index 4f5e911a52a0d6e32584a4d8c7dbf6744d265a06..893613950079ea1c68e895fecf57e4a4986eb900 100644 --- a/sflphone-gtk/src/actions.c +++ b/sflphone-gtk/src/actions.c @@ -258,12 +258,16 @@ sflphone_hang_up() case CALL_STATE_CURRENT: case CALL_STATE_HOLD: case CALL_STATE_BUSY: - case CALL_STATE_FAILURE: - case CALL_STATE_RECORD: + case CALL_STATE_RECORD: dbus_hang_up (selectedCall); selectedCall->state = CALL_STATE_DIALING; (void) time(&selectedCall->_stop); break; + case CALL_STATE_FAILURE: + dbus_hang_up (selectedCall); + selectedCall->state = CALL_STATE_DIALING; + selectedCall->_stop = 0; + break; case CALL_STATE_INCOMING: dbus_refuse (selectedCall); selectedCall->state = CALL_STATE_DIALING; @@ -616,6 +620,7 @@ sflphone_keypad( guint keyval, gchar * key) case CALL_STATE_RINGING: case CALL_STATE_BUSY: case CALL_STATE_FAILURE: + c->_stop = 0; switch (keyval) { case 65307: /* ESCAPE */