Vgetty hangup not detected with Rockwell chipset

"P.W. de Bruin" (bruin@tudw12.wbmt.tudelft.nl)
Tue, 7 Oct 1997 11:59:10 +0200


To whom it may concern,

Recently some posts were made concerning vgetty not detecting a hangup
after someone left a message. Specifically, in my case, the modem
detects the hangup (<DLE b> busy tone detected), vgetty responds with
<DLE !> (stop recording) but the line is not dropped until the watchdog
timer expires. For some reason the <DLE !> either does not reach the
modem or the modem ignores the <DLE !>.

If you have the same problem with a modem with a Rockwell chipset you
may benefit from the following simple changes to the Rockwell driver.
Vgetty works flawlessly for me now. Testing (30+ calls) reveals
absolutely no watchdog timer expirations anymore (before approx 70% of
calls were terminated after the watchdog timer expired. However, YMMV.

My setup:
Linux 2.0.30 - Mgetty 1.1.9 - Tornado FM336PC (Rockwell chipset w. class
2)

Edit mgetty-1.1.9/voice/libvoice/Rockwell.c and change the function
int Rockwell_stop_recording (void) to:

<snip>

int Rockwell_stop_recording (void)
{
  char buffer[VOICE_BUF_LEN];

  stop_recording = TRUE;

  /*
 * It seems not all Rockwell modems support <DLE> <!> to stop
 * the recording, so we change this back to the old way
 *
 * sprintf(buffer, "%c!", DLE);
 * lprintf(L_JUNK, "%s: <DLE> <!>", program_name);
 */

  //if (voice_write("!") != OK)
  //  return(FAIL);

  sprintf(buffer, "%c!", DLE);
  lprintf(L_JUNK, "%s: <DLE> <!>", program_name);
  if (voice_write_raw(buffer, strlen(buffer)) != OK)
  return(FAIL);

  return(OK);
}   

<snip>

Recompile, reinstall and you may be in business. What can I say, it
worked for me.

Hope this helps,
PdB

-------------------------------------------------------------------------
Der Horizont vieler Menschen ist ein Kreis mit Radius Null --
und das nennen sie ihren Standpunkt.
-------------------------------------------------------------------------
ir. P.W. de Bruin  | e-mail: bruin@tudw12.wbmt.tudelft.nl
Herengracht 42   | www: http://www-mr.wbmt.tudelft.nl/~bruin/
2511 EJ DEN HAAG  | tel/fax: +31 (0)70 427 41 90
-------------------------------------------------------------------------
.