Index: generic/include/ipc/ipc.h
===================================================================
--- generic/include/ipc/ipc.h	(revision d0c59014273d37ae8d8218bc43b145fd27e12bb6)
+++ generic/include/ipc/ipc.h	(revision eb3d3796fe70e08b188cec351b1979d97243c33f)
@@ -179,8 +179,10 @@
 
 typedef enum {
-	IPC_BUSY_FREE = 0,
-	IPC_BUSY_CONNECTING,
-	IPC_BUSY_CONNECTED
-} ipc_busy_t;
+	IPC_PHONE_FREE = 0,     /**< Phone is free and can be allocated */
+	IPC_PHONE_CONNECTING,   /**< Phone is connecting somewhere */
+	IPC_PHONE_CONNECTED,    /**< Phone is connected */
+	IPC_PHONE_HUNGUP,  /**< Phone is hung up, waiting for answers to come */
+	IPC_PHONE_SLAMMED       /**< Phone was hungup from server */
+} ipc_phone_state_t;
 
 struct phone_s {
@@ -188,5 +190,5 @@
 	link_t list;
 	answerbox_t *callee;
-	ipc_busy_t busy;
+	ipc_phone_state_t state;
 	atomic_t active_calls;
 };
@@ -223,5 +225,5 @@
 extern int ipc_forward(call_t *call, phone_t *newphone, answerbox_t *oldbox);
 extern void ipc_cleanup(task_t *task);
-extern int ipc_phone_hangup(phone_t *phone);
+extern int ipc_phone_hangup(phone_t *phone, int aggressive);
 extern void ipc_backsend_err(phone_t *phone, call_t *call, __native err);
 
