int ven_dialer(char *num, char *acu) { char *cp; int connected = 0; char *msg, line[80]; struct termios cntrl; /* * Get in synch with a couple of carriage returns */ if (!vensync(FD)) { printf("can't synchronize with ventel\n"); #ifdef ACULOG logent(value(HOST), num, "ventel", "can't synch up"); #endif return (0); } if (boolean(value(VERBOSE))) printf("\ndialing..."); fflush(stdout); tcgetattr(FD, &cntrl); cntrl.c_cflag |= HUPCL; tcsetattr(FD, TCSANOW, &cntrl); echo("#k$\r$\n$D$I$A$L$:$ "); for (cp = num; *cp; cp++) { delay(1, 10); write(FD, cp, 1); } delay(1, 10); write(FD, "\r", 1); gobble('\n', line); if (gobble('\n', line)) connected = gobble('!', line); tcflush(FD, TCIOFLUSH); #ifdef ACULOG if (dialtimeout) { (void)snprintf(line, sizeof line, "%ld second dial timeout", number(value(DIALTIMEOUT))); logent(value(HOST), num, "ventel", line); } #endif if (dialtimeout) ven_disconnect(); /* insurance */ if (connected || dialtimeout || !boolean(value(VERBOSE))) return (connected); /* call failed, parse response for user */ cp = strchr(line, '\r'); if (cp) *cp = '\0'; for (cp = line; (cp = strchr(cp, ' ')) != NULL; cp++) if (cp[1] == ' ') break; if (cp) { while (*cp == ' ') cp++; msg = cp; while (*cp) { if (isupper(*cp)) *cp = tolower(*cp); cp++; } printf("%s...", msg); } return (connected); }
int ven_dialer(char *num, char *acu) { char *cp; int connected = 0; char *msg, line[80]; /* * Get in synch with a couple of carriage returns */ if (!vensync(FD)) { printf("can't synchronize with ventel\n"); #if ACULOG logent(value(HOST), num, "ventel", "can't synch up"); #endif return (0); } if (boolean(value(VERBOSE))) printf("\ndialing..."); fflush(stdout); acu_hupcl (); echo("#k$\r$\n$D$I$A$L$:$ "); for (cp = num; *cp; cp++) { delay(1, 10); write(FD, cp, 1); } delay(1, 10); write(FD, "\r", 1); gobble('\n', line); if (gobble('\n', line)) connected = gobble('!', line); acu_flush (); #if ACULOG if (timeout) { sprintf(line, "%d second dial timeout", number(value(DIALTIMEOUT))); logent(value(HOST), num, "ventel", line); } #endif if (timeout) ven_disconnect(); /* insurance */ if (connected || timeout || !boolean(value(VERBOSE))) return (connected); /* call failed, parse response for user */ cp = index(line, '\r'); if (cp) *cp = '\0'; for (cp = line; (cp = index(cp, ' ')); cp++) if (cp[1] == ' ') break; if (cp) { while (*cp == ' ') cp++; msg = cp; while (*cp) { if (isupper(*cp)) *cp = tolower(*cp); cp++; } printf("%s...", msg); } return (connected); }