diff -Nur ../ant-phone-0.0.6-old/ant-phone.c ./ant-phone.c
--- ../ant-phone-0.0.6-old/ant-phone.c	Sun Nov 17 18:45:23 2002
+++ ./ant-phone.c	Fri Nov 22 15:37:49 2002
@@ -84,6 +84,7 @@
     {"help",     no_argument,       0, 'h'},
     {"usage",    no_argument,       0, 'h'},
     {"version",  no_argument,       0, 'v'},
+    {"noaudio",  no_argument,       0, 'a'},
     {"debug",    optional_argument, 0, 'd'},
     {"soundin",  required_argument, 0, 'i'},
     {"soundout", required_argument, 0, 'o'},
@@ -91,9 +92,10 @@
     {"msns",     required_argument, 0, 'l'},
     {0, 0, 0, 0}
   };
-  char *short_options = "hvd::i:o:m:l:";
+  char *short_options = "hvad::i:o:m:l:";
   int option_index = 0;
   int c;
+  int noAudio = 0;
 
   /* temporary default values = "", will be changed by command line options
      and options in options file */
@@ -152,6 +154,7 @@
                             default: /dev/dsp\n\
   -o, --soundout[=device] OSS compatible device for output (playback),\n\
                             default: /dev/dsp\n\
+  -a, --noaudio           don't use any audio device, only show incoming/outgoing numbers\n\
   -m, --msn               identifying MSN (for outgoing calls), 0 for master\n\
                           MSN of this termination/port\n\
                             default: 0\n\
@@ -171,6 +174,9 @@
 	debug = 1;
       }
       break;
+    case 'a': /* no audio */
+      noAudio = 1;
+      break;
     case 'i': /* sound input device */
       audio_device_name_in = optarg;
       break;
@@ -190,7 +196,7 @@
   /* no further arguments expected, so not handled */
   
   if (session_init(&session, audio_device_name_in, audio_device_name_out,
-		   msn, msns)) {
+		   msn, msns, noAudio)) {
     fprintf(stderr, "Error at session init.\n");
     exit(1);
   } else {
diff -Nur ../ant-phone-0.0.6-old/session.c ./session.c
--- ../ant-phone-0.0.6-old/session.c	Sun Nov 17 19:08:25 2002
+++ ./session.c	Fri Nov 22 15:40:37 2002
@@ -80,7 +80,7 @@
 int session_audio_close(struct session_t *session) {
   if (debug)
     printf("session_audio_close: Closing audio device(s).\n");
-  if (close_audio_devices(session->audio_fd_in, session->audio_fd_out)) {
+  if (!session->noAudio && close_audio_devices(session->audio_fd_in, session->audio_fd_out)) {
     return -1;
   }
   return 0;
@@ -98,6 +98,8 @@
  */
 int session_audio_init(struct session_t *session) {
   /* message: open audio device(s) */
+  if (session->noAudio) return 0;
+  
   if (debug) {
     if (strcmp(session->audio_device_name_in, session->audio_device_name_out))
       {
@@ -210,6 +212,8 @@
  */
 int session_audio_deinit(struct session_t *session) {
   /* free allocated buffers */
+  if (session->noAudio) return 0;
+  
   session_audio_free(session);
   
   /* close audio device(s) */
@@ -267,7 +271,7 @@
 int session_init(struct session_t *session,
 		 char *audio_device_name_in,
 		 char *audio_device_name_out,
-		 char *msn, char *msns) {
+		 char *msn, char *msns, int noAudio) {
 
   /*
    * first: set all defaults possibly overridden by options file
@@ -286,8 +290,10 @@
   session->option_show_controlpad = 1;
   session->option_muted = 0;
 
+  session->noAudio = noAudio;
   session->audio_device_name_in = strdup(audio_device_name_in);
   session->audio_device_name_out = strdup(audio_device_name_out);
+
   session->msn = strdup(msn);
   session->msns = strdup(msns);
 
@@ -319,18 +325,21 @@
   session->touchtone_index = 0;
 
   /* setup audio and isdn */
-  if (session_audio_init(session) < 0) return -1;
+  if (!session->noAudio){
+		if (session_audio_init(session) < 0) return -1;
+	}
+
   if (session_isdn_init(session) < 0) return -1;
 
   session->state = STATE_SERVICE; /* initial state */
 
   session->effect = EFFECT_NONE;
-  
+
   return 0;
 }
 
 /*
- * helper function to free single element data from g_list 
+ * helper function to free single element data from g_list
  * (used by session_deinit)
  */
 void free_g_list_element(gpointer data, gpointer user_data _U_) {
@@ -354,11 +363,15 @@
 
   /* close devices and clean up (buffers) */
   if (session_isdn_deinit(session) < 0) return -1;
-  if (session_audio_deinit(session) < 0) return -1;
+  if (!session->noAudio){
+		if (session_audio_deinit(session) < 0) return -1;
+	}
 
   /* clean up pre-set options */
-  free(session->audio_device_name_in);
-  free(session->audio_device_name_out);
+  if (!session->noAudio){
+		free(session->audio_device_name_in);
+		free(session->audio_device_name_out);
+	}
   free(session->msn);
   free(session->msns);
 
@@ -369,7 +382,7 @@
  * set up handlers for audio/ISDN input
  */
 void session_io_handlers_start(struct session_t *session) {
-  if (!(session->option_release_devices &&
+  if (!session->noAudio && !(session->option_release_devices &&
 	(session->state == STATE_READY ||
 	 session->state == STATE_RINGING_QUIET))) {
     session->gdk_audio_input_tag = gdk_input_add(session->audio_fd_in,
@@ -387,7 +400,7 @@
  * remove handlers for audio/ISDN input
  */
 void session_io_handlers_stop(struct session_t *session) {
-  if (!(session->option_release_devices &&
+  if (!session->noAudio && !(session->option_release_devices &&
 	(session->state == STATE_READY ||
 	 session->state == STATE_RINGING_QUIET))) {
     gdk_input_remove(session->gdk_audio_input_tag);
@@ -409,6 +422,8 @@
 int session_reset_audio(struct session_t *session) {
   int result = 0;
   
+  if (session->noAudio) return result;
+  
   if (!(session->option_release_devices &&
 	(session->state == STATE_READY ||
 	 session->state == STATE_RINGING_QUIET))) {
@@ -603,10 +618,13 @@
  * Start an effect (effect_t) playing on the sound device
  */
 void session_effect_start(struct session_t *session, enum effect_t kind) {
-  session->effect_tag = gdk_input_add(session->audio_fd_out,
+  if (!session->noAudio)
+  {
+    session->effect_tag = gdk_input_add(session->audio_fd_out,
 				      GDK_INPUT_WRITE,
 				      session_effect_callback,
 				      (gpointer) session);
+  }
 
   session->effect = kind;
   session->effect_pos = 0;
diff -Nur ../ant-phone-0.0.6-old/session.h ./session.h
--- ../ant-phone-0.0.6-old/session.h	Sat Nov 16 10:09:48 2002
+++ ./session.h	Fri Nov 22 15:38:54 2002
@@ -58,6 +58,7 @@
  */
 struct session_t {
   /* audio device data */
+  int noAudio;
   char *audio_device_name_in; /* allocated memory! */
   char *audio_device_name_out; /* allocated memory! */
   int audio_fd_in;        /* audio device file descriptors */
@@ -186,7 +187,7 @@
 int session_init(struct session_t *session,
 		 char *audio_device_name_in,
 		 char *audio_device_name_out,
-		 char *msn, char *msns);
+		 char *msn, char *msns, int noAudio);
 void session_audio_free(struct session_t *session);
 int session_deinit(struct session_t *session);
 
