jrs@linuxserver:/usr/src/universal/sources/svn/libgsmd/gsm/src/gsmd$ svn diff Index: machine_generic.c =================================================================== --- machine_generic.c (revisjon 2216) +++ machine_generic.c (arbeidskopi) @@ -49,7 +49,7 @@ * wait for the "AT-Command Interpreter ready" * message before trying to send commands. */ - g->interpreter_ready = 1; + g->interpreter_ready = 0; return 0; } Index: usock.c =================================================================== --- usock.c (revisjon 2216) +++ usock.c (arbeidskopi) @@ -133,7 +133,7 @@ /* FIXME: number type! */ break; case GSMD_VOICECALL_HANGUP: - cmd = atcmd_fill("ATH0", 5, &usock_cmd_cb, gu, gph->id); + cmd = atcmd_fill("ATH", 5, &usock_cmd_cb, gu, gph->id); break; case GSMD_VOICECALL_ANSWER: cmd = atcmd_fill("ATA", 4, &usock_cmd_cb, gu, gph->id); Index: atcmd.c =================================================================== --- atcmd.c (revisjon 2216) +++ atcmd.c (arbeidskopi) @@ -184,6 +184,7 @@ if (strlen(buf) == 0 || !strcmp(buf, "AT-Command Interpreter ready")) { g->interpreter_ready = 1; + gmsd_alive_start(g); gsmd_initsettings(g); return 0; } @@ -213,7 +214,7 @@ * TBD */ - if (buf[0] == '+' || buf[0] == '%') { + if (buf[0] == '+' || buf[0] == '%' || buf[0] == '@') { /* an extended response */ const char *colon = strchr(buf, ':'); if (!colon) { Index: gsmd.c =================================================================== --- gsmd.c (revisjon 2216) +++ gsmd.c (arbeidskopi) @@ -128,7 +128,7 @@ gsmd_timer_register(tmr); } -static int gmsd_alive_start(struct gsmd *gsmd) +int gmsd_alive_start(struct gsmd *gsmd) { struct timeval tv; @@ -469,11 +469,11 @@ /* select a vendor plugin */ gsmd_vendor_plugin_find(&g); - if (g.interpreter_ready) + if (g.interpreter_ready) { gsmd_initsettings(&g); - gmsd_alive_start(&g); - + gmsd_alive_start(&g); + } gsmd_opname_init(&g); while (1) { jrs@linuxserver:/usr/src/universal/sources/svn/libgsmd/gsm/src/gsmd$