This is amreset.c in view mode; [Download] [Up]
/*********************************************************************/
/* */
/* Programmer: */
/* Olaf Mueller <olaf@orest.escape.de> */
/* */
/* Purpose: */
/* Answering Machine */
/* a small program resetting the answering machine */
/* Normally you should not need this program. */
/* But on my intel system playing sounds irritates the */
/* serial line */
/* */
/* History: */
/* 29-08-96 Initial Release Olaf Mueller */
/* */
/* Notes: */
/* */
/*********************************************************************/
#include <libc.h>
#include "const.h"
#include "misc.h"
#include "device.h"
#include "iodev.h"
static void signalhandler (int sig)
{
}
static int dialogOnLine (int line,long msec,char *until,char *question,...)
{
va_list ap ;
char buffer [1000] ;
long usedtime ;
char sbuf [1000] , rbuf [1000] ;
int len , rc = -1 ;
va_start (ap,question) ;
vsprintf (buffer,question,ap) ;
va_end (ap) ;
debugsputs (sbuf,buffer) ; debugsputs (rbuf,until) ;
printf ("send \"%s\" wait for \"%s\"\n",sbuf,rbuf) ;
len = strlen (buffer) ;
if (write(line,buffer,len) == len)
{
if ((usedtime = readUntil(line,msec,until)) >= 0L)
{
printf ("got it after %ld msec\n",usedtime) ;
rc = 0 ;
}
else
printf ("reading failed (Timeout after %ld msec)\n",msec) ;
}
else
printf ("writing failed\n") ;
return rc ;
}
int main (int argc,char *argv[])
{
int rc , line ;
char port ;
if (argc != 2)
{
printf ("usage: amreset <port>\n") ;
return 1 ;
}
port = *argv[1] ;
if (strlen(argv[1]) != 1 || (port != 'a' && port != 'b'))
{
printf ("amreset: bad port description (use \'a\' or \'b\')\n") ;
return 1 ;
}
signal (SIGALRM,signalhandler) ;
siginterrupt (SIGALRM,1) ;
if ((rc = lockDevice(DIALOUT,port)) == 0)
{
if ((line = openDevice(DIALOUT,port)) >= 0)
{
initDevice (line,B38400) ;
rc = dialogOnLine (line,2000L,"OK\r\n","AT\r") ;
sleep (2) ;
closeDevice (line) ;
}
else
printf ("cannot open dial out line\n") ;
unlockDevice (DIALOUT,port) ;
}
else
printf ("cannot lock dial out line\n") ;
return rc ;
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.