diff --git a/sflphone-gtk/src/actions.c b/sflphone-gtk/src/actions.c
index d5f762bdf5d446433997c25959cc50a1a0f4f7b8..62268d2742d4ad5635a6e29f03ef5867af1f1a58 100644
--- a/sflphone-gtk/src/actions.c
+++ b/sflphone-gtk/src/actions.c
@@ -19,6 +19,8 @@
 
 #include <gtk/gtk.h>
 #include <string.h>
+#include <glib/gprintf.h>
+#include <stdlib.h>
 
 #include <actions.h>
 #include <mainwindow.h>
@@ -282,7 +284,10 @@ sflphone_keypad( guint keyval, gchar * key)
           call_t * c = g_new0 (call_t, 1);
           c->state = CALL_STATE_DIALING;
           c->from = g_strconcat("\"\" <", key, ">", NULL);
-          c->callID = "asdf"; // TODO generate a unique number
+          
+          c->callID = g_new0(gchar, 100);
+          g_sprintf(c->callID, "%d", rand()); 
+          
           c->to = g_strdup(key);
           call_list_add(c);
           screen_set_call(c);