--- linphonec.c.orig 2007-06-30 18:11:18.000000000 +0200 +++ linphonec.c 2007-06-30 17:50:52.000000000 +0200 @@ -93,6 +93,7 @@ static void linphonec_text_received(LinphoneCore *lc, LinphoneChatRoom *cr, const char *from, const char *msg); static void linphonec_display_status (LinphoneCore * lc, const char *something); +static void linphonec_general_state (LinphoneCore * lc, LinphoneGeneralState *gstate); /*************************************************************************** * @@ -108,6 +109,7 @@ static bool_t auto_answer=FALSE; static bool_t answer_call=FALSE; static bool_t video_enabled=FALSE; +static bool_t show_general_state=FALSE; LPC_AUTH_STACK auth_stack; static int trace_level = 0; static char *logfile_name = NULL; @@ -132,7 +134,7 @@ display_url:linphonec_display_url, display_question:stub, text_received:linphonec_text_received, - general_state:NULL + general_state:linphonec_general_state }; /*************************************************************************** @@ -260,7 +262,60 @@ } - +static void +linphonec_general_state (LinphoneCore * lc, LinphoneGeneralState *gstate) +{ + if (show_general_state) { + switch(gstate->new_state) { + case GSTATE_POWER_OFF: + printf("GSTATE_POWER_OFF"); + break; + case GSTATE_POWER_STARTUP: + printf("GSTATE_POWER_STARTUP"); + break; + case GSTATE_POWER_ON: + printf("GSTATE_POWER_ON"); + break; + case GSTATE_POWER_SHUTDOWN: + printf("GSTATE_POWER_SHUTDOWN"); + break; + case GSTATE_REG_NONE: + printf("GSTATE_REG_NONE"); + break; + case GSTATE_REG_OK: + printf("GSTATE_REG_OK"); + break; + case GSTATE_REG_FAILED: + printf("GSTATE_REG_FAILED"); + break; + case GSTATE_CALL_IDLE: + printf("GSTATE_CALL_IDLE"); + break; + case GSTATE_CALL_OUT_INVITE: + printf("GSTATE_CALL_OUT_INVITE"); + break; + case GSTATE_CALL_OUT_CONNECTED: + printf("GSTATE_CALL_OUT_CONNECTED"); + break; + case GSTATE_CALL_IN_INVITE: + printf("GSTATE_CALL_IN_INVITE"); + break; + case GSTATE_CALL_IN_CONNECTED: + printf("GSTATE_CALL_IN_CONNECTED"); + break; + case GSTATE_CALL_END: + printf("GSTATE_CALL_END"); + break; + case GSTATE_CALL_ERROR: + printf("GSTATE_CALL_ERROR"); + break; + default: + printf("GSTATE_UNKNOWN_%d",gstate->new_state); + } + if (gstate->message) printf(" %s", gstate->message); + printf("\n"); + } +} /***************************************************************************/ @@ -496,6 +551,7 @@ -s sipaddress specify the sip call to do at startup\n\ -a enable auto answering for incoming calls\n\ -V enable video (disabled by default)\n\ + -S show general state messages (disabled by default)\n\ -v or --version display version and exits.\n"); exit(exit_status); @@ -579,7 +635,7 @@ rl_attempted_completion_function = linephonec_readline_completion; /* printf("Readline initialized.\n"); */ - + setlinebuf(stdout); return 0; } @@ -730,6 +786,10 @@ printf ("version: " LINPHONE_VERSION "\n"); exit (EXIT_SUCCESS); } + else if (strncmp ("-S", argv[arg_num], 2) == 0) + { + show_general_state = TRUE; + } else if (old_arg_num == arg_num) { fprintf (stderr, "ERROR: bad arguments\n");