| #include "ckcsym.h" |
| char *dialv = "Dial Command, 8.0.160, 29 Apr 2002"; |
| |
| /* C K U D I A -- Module for automatic modem dialing. */ |
| |
| /* |
| Copyright (C) 1985, 2004, |
| Trustees of Columbia University in the City of New York. |
| All rights reserved. See the C-Kermit COPYING.TXT file or the |
| copyright text in the ckcmai.c module for disclaimer and permissions. |
| */ |
| |
| /* |
| Authors: |
| |
| Original (version 1, 1985) author: Herm Fischer, Encino, CA. |
| Contributed to Columbia University in 1985 for inclusion in C-Kermit 4.0. |
| Author and maintainer since 1985: Frank da Cruz, Columbia University, |
| fdc@columbia.edu. |
| |
| Contributions by many others throughout the years, including: Jeffrey |
| Altman, Mark Berryman, Fernando Cabral, John Chmielewski, Joe Doupnik, |
| Richard Hill, Larry Jacobs, Eric Jones, Tom Kloos, Bob Larson, Peter Mauzey, |
| Joe Orost, Kevin O'Gorman, Kai Uwe Rommel, Dan Schullman, Warren Tucker, and |
| many others. |
| */ |
| |
| /* |
| Entry points: |
| ckdial(char * number) Dial a number or answer a call |
| dialhup() Hang up a dialed connection |
| mdmhup() Use modem commands to hang up |
| |
| All other routines are static. |
| Don't call dialhup() or mdmhup() without first calling ckdial(). |
| */ |
| |
| /* |
| This module calls externally defined system-dependent functions for |
| communications i/o, as described in CKCPLM.DOC, the C-Kermit Program Logic |
| Manual, and thus should be portable to all systems that implement those |
| functions, and where alarm() and signal() work. |
| |
| HOW TO ADD SUPPORT FOR ANOTHER MODEM: |
| |
| 1. In ckuusr.h, define a modem-type number symbol (n_XXX) for the new modem, |
| the next highest one. |
| |
| 2. In ckuusr.h, adjust MAX_MDM to the new number of modem types. |
| |
| The remaining steps are in this module: |
| |
| 3. Create a MDMINF structure for it. NOTE: The wake_str should include |
| all invariant setup info, e.g. enable result codes, BREAK transparency, |
| modulation negotiation, etc. See ckcker.h for MDMINF struct definition. |
| |
| 4. Add the address of the MDMINF structure to the modemp[] array, |
| according to the numerical value of the modem-type number. |
| |
| 5. Add the user-visible (SET MODEM) name and corresponding modem number |
| to the mdmtab[] array, in alphabetical order by modem-name string. |
| |
| 6. If this falls into a class like is_rockwell, is_supra, etc, add the new |
| one to the definition of the class. |
| |
| 7. Adjust the gethrn() routine to account for any special numeric result |
| codes (if it's a Hayes compatible modem). |
| |
| 8. Read through the code and add any modem-specific sections as necessary. |
| For most modern Hayes-compatible modems, no specific code will be |
| needed. |
| |
| NOTE: The MINIDIAL symbol is used to build this module to include support |
| for only a minimum number of standard and/or generally useful modem types, |
| namely Hayes 1200 and 2400, ITU-T (CCITT) V.25bis and V.25ter (V.250), |
| Generic-High-Speed, "Unknown", and None. When adding support for a new |
| modem type, keep it outside of the MINIDIAL sections unless it deserves to |
| be in it. |
| */ |
| |
| #include "ckcdeb.h" |
| #ifndef NOLOCAL |
| #ifndef NODIAL |
| #ifndef NOICP |
| |
| #ifndef CK_ATDT |
| #define CK_ATDT |
| #endif /* CK_ATDT */ |
| |
| #ifndef NOOLDMODEMS /* Unless instructed otherwise, */ |
| #define OLDMODEMS /* keep support for old modems. */ |
| #endif /* NOOLDMODEMS */ |
| |
| #ifndef M_OLD /* Hide old modem keywords in SET MODEM table. */ |
| #define M_OLD 0 /* Define as CM_INV to make them invisible. */ |
| #endif /* M_OLD */ |
| |
| #ifndef M_ALIAS |
| #define M_ALIAS 64 |
| #endif /* M_ALIAS */ |
| |
| #ifndef MAC |
| #include <signal.h> |
| #endif /* MAC */ |
| #include "ckcasc.h" |
| #include "ckcker.h" |
| #include "ckucmd.h" |
| #include "ckcnet.h" |
| #include "ckuusr.h" |
| |
| #ifdef OS2ONLY |
| #define INCL_VIO /* Needed for ckocon.h */ |
| #include <os2.h> |
| #undef COMMENT |
| #include "ckocon.h" |
| #endif /* OS2ONLY */ |
| |
| #ifdef NT |
| #include <windows.h> |
| #include <tapi.h> |
| #include "cknwin.h" |
| #include "ckntap.h" |
| #endif /* NT */ |
| #ifdef OS2 |
| #include "ckowin.h" |
| #endif /* OS2 */ |
| |
| #ifndef ZILOG |
| #ifdef NT |
| #include <setjmpex.h> |
| #else /* NT */ |
| #include <setjmp.h> |
| #endif /* NT */ |
| #else |
| #include <setret.h> |
| #endif /* ZILOG */ |
| |
| #include "ckcsig.h" /* C-Kermit signal processing */ |
| |
| #ifdef MAC |
| #define signal msignal |
| #define SIGTYP long |
| #define alarm malarm |
| #define SIG_IGN 0 |
| #define SIGALRM 1 |
| #define SIGINT 2 |
| SIGTYP (*msignal(int type, SIGTYP (*func)(int)))(int); |
| #endif /* MAC */ |
| |
| #ifdef AMIGA |
| #define signal asignal |
| #define alarm aalarm |
| #define SIGALRM (_NUMSIG+1) |
| #define SIGTYP void |
| SIGTYP (*asignal(int type, SIGTYP (*func)(int)))(int); |
| unsigned aalarm(unsigned); |
| #endif /* AMIGA */ |
| |
| #ifdef STRATUS |
| /* |
| VOS doesn't have alarm(), but it does have some things we can work with. |
| However, we have to catch all the signals in one place to do this, so |
| we intercept the signal() routine and call it from our own replacement. |
| */ |
| #define signal vsignal |
| #define alarm valarm |
| SIGTYP (*vsignal(int type, SIGTYP (*func)(int)))(int); |
| int valarm(int interval); |
| #ifdef putchar |
| #undef putchar |
| #endif /* putchar */ |
| #define putchar(x) conoc(x) |
| #ifdef getchar |
| #undef getchar |
| #endif /* getchar */ |
| #define getchar(x) coninc(0) |
| #endif /* STRATUS */ |
| |
| #ifdef OS2 |
| #ifdef putchar |
| #undef putchar |
| #endif /* putchar */ |
| #define putchar(x) conoc(x) |
| #endif /* OS2 */ |
| |
| #ifndef NOHINTS |
| extern int hints; |
| #endif /* NOHINTS */ |
| |
| #ifdef CK_TAPI |
| extern int tttapi; |
| extern int tapipass; |
| #endif /* CK_TAPI */ |
| |
| #ifdef CKLOGDIAL |
| extern int dialog; |
| #endif /* CKLOGDIAL */ |
| |
| char * dialmsg[] = { /* DIAL status strings */ |
| |
| /* Keyed to numbers defined in ckcker.h -- keep in sync! */ |
| |
| "DIAL succeeded", /* 0 DIA_OK */ |
| "Modem type not specified", /* 1 DIA_NOMO */ |
| "Communication device not specified", /* 2 DIA_NOLI */ |
| "Communication device can't be opened", /* 3 DIA_OPEN */ |
| "Speed not specified", /* 4 DIA_NOSP */ |
| "Pre-DIAL hangup failed", /* 5 DIA_HANG */ |
| "Internal error", /* 6 DIA_IE */ |
| "Device input/output error", /* 7 DIA_IO */ |
| "DIAL TIMEOUT expired", /* 8 DIA_TIMO */ |
| "Interrupted by user", /* 9 DIA_INTR */ |
| "Modem not ready", /* 10 DIA_NRDY */ |
| "Partial dial OK", /* 11 DIA_PART */ |
| "Dial directory lookup error", /* 12 DIA_DIR */ |
| "Hangup OK", /* 13 DIA_HUP */ |
| NULL, /* 14 (undef) */ |
| NULL, /* 15 (undef) */ |
| NULL, /* 16 (undef) */ |
| NULL, /* 17 (undef) */ |
| NULL, /* 18 (undef) */ |
| "No response from modem", /* 19 DIA_NRSP */ |
| "Modem command error", /* 20 DIA_ERR */ |
| "Failure to initialize modem", /* 21 DIA_NOIN */ |
| "Phone busy", /* 22 DIA_BUSY */ |
| "No carrier", /* 23 DIA_NOCA */ |
| "No dialtone", /* 24 DIA_NODT */ |
| "Incoming call", /* 25 DIA_RING */ |
| "No answer", /* 26 DIA_NOAN */ |
| "Disconnected", /* 27 DIA_DISC */ |
| "Answered by voice", /* 28 DIA_VOIC */ |
| "Access denied / forbidden call", /* 29 DIA_NOAC */ |
| "Blacklisted", /* 30 DIA_BLCK */ |
| "Delayed", /* 31 DIA_DELA */ |
| "Fax connection", /* 32 DIA_FAX */ |
| "Digital line", /* 33 DIA_DIGI */ |
| "TAPI dialing failure", /* 34 DIA_TAPI */ |
| NULL /* 34 */ |
| }; |
| |
| #ifdef COMMENT |
| #ifdef NOSPL |
| static |
| #endif /* NOSPL */ |
| char modemmsg[128] = { NUL, NUL }; /* DIAL response from modem */ |
| #endif /* COMMENT */ |
| |
| #ifdef NTSIG |
| extern int TlsIndex; |
| #endif /* NTSIG */ |
| |
| int mdmtyp = n_GENERIC; /* Default modem type */ |
| int mdmset = 0; /* User explicitly set a modem type */ |
| |
| int /* SET DIAL parameters */ |
| dialhng = 1, /* DIAL HANGUP, default is ON */ |
| dialdpy = 0, /* DIAL DISPLAY, default is OFF */ |
| mdmspd = 0, /* DIAL SPEED-MATCHING (0 = OFF) */ |
| mdmspk = 1, /* MODEM SPEAKER */ |
| mdmvol = 2, /* MODEM VOLUME */ |
| dialtmo = 0, /* DIAL TIMEOUT */ |
| dialatmo = -1, /* ANSWER TIMEOUT */ |
| dialksp = 0, /* DIAL KERMIT-SPOOF, 0 = OFF */ |
| dialidt = 0, /* DIAL IGNORE-DIALTONE */ |
| #ifndef CK_RTSCTS |
| /* If we can't do RTS/CTS then there's no flow control at first. */ |
| /* So we might easily lose the echo to the init string and the OK */ |
| /* and then give "No response from modem" errors. */ |
| dialpace = 150, /* DIAL PACING */ |
| #else |
| dialpace = -1, |
| #endif /* CK_RTSCTS */ |
| |
| /* 0 = RS232 (drop DTR); 1 = MODEM-COMMAND (e.g. <sec>+++<sec>ATH0) */ |
| dialmhu = DEFMDMHUP; /* MODEM HANGUP-METHOD */ |
| |
| int |
| dialec = 1, /* DIAL ERROR-CORRECTION */ |
| dialdc = 1, /* DIAL COMPRESSION */ |
| #ifdef VMS |
| /* VMS can only use Xon/Xoff */ |
| dialfc = FLO_XONX, /* DIAL FLOW-CONTROL */ |
| #else |
| dialfc = FLO_AUTO, |
| #endif /* VMS */ |
| dialmth = XYDM_D, /* DIAL METHOD (Tone, Pulse, Defalt) */ |
| dialmauto = 1, /* DIAL METHOD is AUTO */ |
| dialesc = 0; /* DIAL ESCAPE */ |
| |
| int telephony = 0; /* Command-line '-T' option */ |
| |
| long dialmax = 0L, /* Modem's max interface speed */ |
| dialcapas = 0L; /* Modem's capabilities */ |
| |
| int dialsta = DIA_UNK; /* Detailed return code (ckuusr.h) */ |
| |
| #ifdef COMMENT |
| int ans_cid = 0; /* SET ANSWER parameters */ |
| int ans_rings = 0; /* (not used yet...) */ |
| #endif /* COMMENT */ |
| |
| int is_rockwell = 0; |
| int is_motorola = 0; |
| int is_supra = 0; |
| int is_hayeshispd = 0; |
| |
| /* Dialing directory list */ |
| |
| char *dialdir[MAXDDIR]; /* DIAL DIRECTORY filename array */ |
| int ndialdir = 0; /* How many dial directories */ |
| |
| /* User overrides for built-in modem commands */ |
| |
| char *dialini = NULL; /* MODEM INIT-STRING none */ |
| char *dialmstr = NULL; /* MODEM DIALMODE-STRING */ |
| char *dialmprmt = NULL; /* MODEM DIALMODE-PROMPT */ |
| char *dialcmd = NULL; /* MODEM DIAL-COMMAND, default none */ |
| char *dialname = NULL; /* Descriptive name for modem */ |
| char *dialdcon = NULL; /* DC ON command */ |
| char *dialdcoff = NULL; /* DC OFF command */ |
| char *dialecon = NULL; /* EC ON command */ |
| char *dialecoff = NULL; /* EC OFF command */ |
| char *dialaaon = NULL; /* Autoanswer ON command */ |
| char *dialaaoff = NULL; /* Autoanswer OFF command */ |
| char *dialhcmd = NULL; /* Hangup command */ |
| char *dialhwfc = NULL; /* Hardware flow control command */ |
| char *dialswfc = NULL; /* (Local) software f.c. command */ |
| char *dialnofc = NULL; /* No (Local) flow control command */ |
| char *dialtone = NULL; /* Command to force tone dialing */ |
| char *dialpulse = NULL; /* ..to force pulse dialing */ |
| char *dialx3 = NULL; /* Ignore dialtone */ |
| char *mdmname = NULL; |
| char *dialspon = NULL; /* Speaker On command */ |
| char *dialspoff = NULL; /* Speaker Off command */ |
| char *dialvol1 = NULL; /* Volume Low command */ |
| char *dialvol2 = NULL; /* Volume Medium command */ |
| char *dialvol3 = NULL; /* Volume High command */ |
| char *dialini2 = NULL; /* Second init string */ |
| |
| /* Phone number options */ |
| |
| char *dialnpr = NULL; /* DIAL PREFIX, ditto */ |
| char *diallac = NULL; /* DIAL LOCAL-AREA-CODE, ditto */ |
| char *diallcc = NULL; /* DIAL LOCAL-COUNTRY-CODE, ditto */ |
| char *dialixp = NULL; /* DIAL INTL-PREFIX */ |
| char *dialixs = NULL; /* DIAL INTL-SUFFIX */ |
| char *dialldp = NULL; /* DIAL LD-PREFIX */ |
| char *diallds = NULL; /* DIAL LD-SUFFIX */ |
| char *diallcp = NULL; /* DIAL LOCAL-PREFIX */ |
| char *diallcs = NULL; /* DIAL LOCAL-SUFFIX */ |
| char *dialpxi = NULL; /* DIAL PBX-INTERNAL-PREFIX */ |
| char *dialpxo = NULL; /* DIAL PBX-OUTSIDE-PREFIX */ |
| char *dialsfx = NULL; /* DIAL SUFFIX */ |
| char *dialtfp = NULL; /* DIAL TOLL-FREE-PREFIX */ |
| |
| char *callid_date = NULL; /* Caller ID strings */ |
| char *callid_time = NULL; |
| char *callid_name = NULL; |
| char *callid_nmbr = NULL; |
| char *callid_mesg = NULL; |
| |
| extern char * d_name; |
| extern char * dialtfc[]; /* DIAL TOLL-FREE-AREA-CODE */ |
| extern char * dialpxx[]; /* DIAL PBX-EXCHANGE */ |
| extern int ntollfree; |
| extern int ndialpxx; |
| |
| extern char * dialpucc[]; /* DIAL Pulse countries */ |
| extern int ndialpucc; |
| extern char * dialtocc[]; /* DIAL Tone countries */ |
| extern int ndialtocc; |
| |
| char *dialmac = NULL; /* DIAL macro */ |
| |
| /* Countries where pulse dialing must be used (tone is not available) */ |
| static char * pulsecc[] = { NULL }; /* (Unknown at present) */ |
| |
| /* Countries where tone dialing may safely be the default. */ |
| /* "+" marks countries where pulse is also allowed. */ |
| /* Both Pulse and Tone are allowed in Austria & Switzerland but it is not */ |
| /* yet known if Tone is universally in those countries. */ |
| static char * tonecc[] = { |
| "1", /* + North American Numbering Plan */ |
| "31", /* Netherlands */ |
| "32", /* Belgium */ |
| "33", /* France */ |
| "352", /* Luxembourg */ |
| "353", /* Ireland */ |
| "354", /* Iceland */ |
| "358", /* Finland */ |
| "39", /* Italy */ |
| "44", /* + UK */ |
| "45", /* Denmark */ |
| "46", /* Sweden */ |
| "47", /* Norway */ |
| "49", /* + Germany */ |
| NULL |
| }; |
| |
| #ifndef MINIDIAL |
| /* |
| Telebit model codes: |
| |
| ATI Model Numbers Examples |
| --- ------------- -------- |
| 123 Telebit in "total Hayes-1200" emulation mode |
| 960 Telebit in Conventional Command (Hayes) mode |
| 961 RA12C IBM PC internal original Trailblazer |
| 962 RA12E External original Trailblazer |
| 963 RM12C Rackmount original Trailblazer |
| 964 T18PC IBM PC internal Trailblazer-Plus (TB+) |
| 965 T18SA, T2SAA, T2SAS External TB+, T1600, T2000, T3000, WB, and later |
| 966 T18RMM Rackmount TB+ |
| 967 T2MC IBM PS/2 internal TB+ |
| 968 T1000 External T1000 |
| 969 ? Qblazer |
| 970 Qblazer Plus |
| 971 T2500 External T2500 |
| 972 T2500 Rackmount T2500 |
| */ |
| |
| /* Telebit model codes */ |
| |
| #define TB_UNK 0 /* Unknown Telebit model */ |
| #define TB_BLAZ 1 /* Original TrailBlazer */ |
| #define TB_PLUS 2 /* TrailBlazer Plus */ |
| #define TB_1000 3 /* T1000 */ |
| #define TB_1500 4 /* T1500 */ |
| #define TB_1600 5 /* T1600 */ |
| #define TB_2000 6 /* T2000 */ |
| #define TB_2500 7 /* T2500 */ |
| #define TB_3000 8 /* T3000 */ |
| #define TB_QBLA 9 /* Qblazer */ |
| #define TB_WBLA 10 /* WorldBlazer */ |
| #define TB__MAX 10 /* Highest number */ |
| |
| char *tb_name[] = { /* Array of model names */ |
| "Unknown", /* TB_UNK */ |
| "TrailBlazer", /* TB_BLAZ */ |
| "TrailBlazer-Plus", /* TB_PLUS */ |
| "T1000", /* TB_1000 */ |
| "T1500", /* TB_1500 */ |
| "T1600", /* TB_1600 */ |
| "T2000", /* TB_2000 */ |
| "T2500", /* TB_2500 */ |
| "T3000", /* TB_3000 */ |
| "Qblazer", /* TB_QBLA */ |
| "WorldBlazer", /* TB_WBLA */ |
| "" |
| }; |
| #endif /* MINIDIAL */ |
| |
| extern int flow, local, mdmtyp, quiet, backgrd, parity, seslog, network; |
| extern int carrier, duplex, mdmsav, reliable, setreliable; |
| extern int ttnproto, nettype; |
| extern long speed; |
| extern char ttname[], sesfil[]; |
| #ifndef NOXFER |
| extern CHAR stchr; |
| extern int interrupted; |
| #endif /* NOXFER */ |
| |
| /* Failure codes */ |
| |
| #define F_TIME 1 /* timeout */ |
| #define F_INT 2 /* interrupt */ |
| #define F_MODEM 3 /* modem-detected failure */ |
| #define F_MINIT 4 /* cannot initialize modem */ |
| |
| #ifndef CK_TAPI |
| static |
| #endif /* CK_TAPI */ |
| #ifdef OS2 |
| volatile |
| #endif /* OS2 */ |
| int fail_code = 0; /* Default failure reason. */ |
| |
| static int xredial = 0; |
| static int func_code; /* 0 = dialing, nonzero = answering */ |
| static int partial; |
| static int mymdmtyp = 0; |
| |
| #define DW_NOTHING 0 /* What we are doing */ |
| #define DW_INIT 1 |
| #define DW_DIAL 2 |
| |
| static int dial_what = DW_NOTHING; /* Nothing at first. */ |
| static int nonverbal = 0; /* Hayes in numeric response mode */ |
| static MDMINF * mp; |
| static CHAR escbuf[6]; |
| static long mdmcapas; |
| |
| _PROTOTYP (static VOID dreset, (void) ); |
| _PROTOTYP (static int (*xx_ok), (int,int) ); |
| _PROTOTYP (static int ddinc, (int) ); |
| _PROTOTYP (int dialhup, (void) ); |
| _PROTOTYP (int getok, (int,int) ); |
| _PROTOTYP (char * ck_time, (void) ); |
| _PROTOTYP (static VOID ttslow, (char *, int) ); |
| #ifdef COMMENT |
| _PROTOTYP (static VOID xcpy, (char *, char *, unsigned int) ); |
| #endif /* COMMENT */ |
| _PROTOTYP (static VOID waitfor, (char *) ); |
| _PROTOTYP (static VOID dialoc, (char) ); |
| _PROTOTYP (static int didweget, (char *, char *) ); |
| _PROTOTYP (static VOID spdchg, (long) ); |
| _PROTOTYP (static int dialfail, (int) ); |
| _PROTOTYP (static VOID gethrw, (void) ); |
| _PROTOTYP (static VOID gethrn, (void) ); |
| |
| int dialudt = n_UDEF; /* Number of user-defined type */ |
| |
| /* BEGIN MDMINF STRUCT DEFINITIONS */ |
| |
| /* |
| Declare structures containing modem-specific information. |
| REMEMBER that only the first SEVEN characters of these names are |
| guaranteed to be unique. |
| |
| First declare the three types that are allowed for MINIDIAL versions. |
| */ |
| static |
| MDMINF CCITT = /* CCITT / ITU-T V.25bis autodialer */ |
| /* |
| According to V.25bis: |
| . Even parity is required for giving commands to the modem. |
| . Commands might or might not echo. |
| . Responses ("Indications") from the modem are terminated by CR and LF. |
| . Call setup is accomplished by: |
| - DTE raises DTR (V.24 circuit 108) [ttopen() does this] |
| - Modem raises CTS (V.24 circuit 106) [C-Kermit ignores this] |
| - DTE issues a call request command ("CRN") |
| - Modem responds with "VAL" ("command accepted") |
| - If the call is completed: |
| modem responds with "CNX" ("call connected"); |
| modem turns CTS (106) OFF; |
| modem turns DSR (107) ON; |
| else: |
| modem responds with "CFI <parameter>" ("call failure indication"). |
| . To clear a call, the DTE turns DTR (108) OFF. |
| . There is no mention of the Carrier Detect circuit (109) in the standard. |
| . There is no provision for "escaping back" to the modem's command mode. |
| |
| It is not known whether there exists in real life a pure V.25bis modem. |
| If there is, this code has never been tested on it. See the Digitel entry. |
| */ |
| { |
| "Any CCITT / ITU-T V.25bis conformant modem", |
| "", /* pulse command */ |
| "", /* tone command */ |
| 40, /* dial_time -- programmable -- */ |
| ",:", /* pause_chars -- "," waits for programmable time */ |
| /* ":" waits for dial tone */ |
| 10, /* pause_time (seconds, just a guess) */ |
| "", /* wake_str (none) */ |
| 200, /* wake_rate (msec) */ |
| "VAL", /* wake_prompt */ |
| "", /* dmode_str (none) */ |
| "", /* dmode_prompt (none) */ |
| "CRN%s\015", /* dial_str */ |
| 200, /* dial_rate (msec) */ |
| 0, /* No esc_time */ |
| 0, /* No esc_char */ |
| "", /* No hup_str */ |
| "", /* hwfc_str */ |
| "", /* swfc_str */ |
| "", /* nofc_str */ |
| "", /* ec_on_str */ |
| "", /* ec_off_str */ |
| "", /* dc_on_str */ |
| "", /* dc_off_str */ |
| "CIC\015", /* aa_on_str */ |
| "DIC\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "", /* sp_off_str */ |
| "", /* sp_on_str */ |
| "", /* vol1_str */ |
| "", /* vol2_str */ |
| "", /* vol3_str */ |
| "", /* ignoredt */ |
| "", /* ini2 */ |
| 0L, /* max_speed */ |
| CKD_V25, /* capas */ |
| NULL /* No ok_fn */ |
| }; |
| |
| static |
| MDMINF HAYES = /* Hayes 2400 and compatible modems */ |
| { |
| "Hayes Smartmodem 2400 and compatibles", |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATE1Q0V1&S0&C1&D2\015", /* wake_str */ |
| #else |
| #ifdef VMS |
| "ATQ0&S1\015", /* wake_str */ |
| #else |
| "ATQ0\015", /* wake_str */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str, user supplies D or T */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "", /* hwfc_str */ |
| "", /* swfc_str */ |
| "", /* nofc_str */ |
| "", /* ec_on_str */ |
| "", /* ec_off_str */ |
| "", /* dc_on_str */ |
| "", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 2400L, /* max_speed */ |
| CKD_AT, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| /* |
| The intent of the "unknown" modem is to allow KERMIT to support |
| unknown modems by having the user type the entire autodial sequence |
| (possibly including control characters, etc.) as the "phone number". |
| The protocol and other characteristics of this modem are unknown, with |
| some "reasonable" values being chosen for some of them. The only way to |
| detect if a connection is made is to look for carrier. |
| */ |
| static |
| MDMINF UNKNOWN = /* Information for "Unknown" modem */ |
| { |
| "Unknown", /* name */ |
| "", /* pulse command */ |
| "", /* tone command */ |
| 30, /* dial_time */ |
| "", /* pause_chars */ |
| 0, /* pause_time */ |
| "", /* wake_str */ |
| 0, /* wake_rate */ |
| "", /* wake_prompt */ |
| "", /* dmode_str */ |
| NULL, /* dmode_prompt */ |
| "%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 0, /* esc_time */ |
| 0, /* esc_char */ |
| "", /* hup_str */ |
| "", /* hwfc_str */ |
| "", /* swfc_str */ |
| "", /* nofc_str */ |
| "", /* ec_on_str */ |
| "", /* ec_off_str */ |
| "", /* dc_on_str */ |
| "", /* dc_off_str */ |
| "", /* aa_on_str */ |
| "", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "", /* sp_off_str */ |
| "", /* sp_on_str */ |
| "", /* vol1_str */ |
| "", /* vol2_str */ |
| "", /* vol3_str */ |
| "", /* ignoredt */ |
| "", /* ini2 */ |
| 0L, /* max_speed */ |
| 0, /* capas */ |
| NULL /* ok_fn */ |
| }; |
| |
| #ifndef MINIDIAL |
| static |
| MDMINF ATTISN = /* AT&T ISN Network */ |
| { |
| "", /* pulse command */ |
| "", /* tone command */ |
| "AT&T ISN Network", |
| 30, /* Dial time */ |
| "", /* Pause characters */ |
| 0, /* Pause time */ |
| "\015\015\015\015", /* Wake string */ |
| 900, /* Wake rate */ |
| "DIAL", /* Wake prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 0, /* esc_time */ |
| 0, /* esc_char */ |
| "", /* hup_str */ |
| "", /* hwfc_str */ |
| "", /* swfc_str */ |
| "", /* nofc_str */ |
| "", /* ec_on_str */ |
| "", /* ec_off_str */ |
| "", /* dc_on_str */ |
| "", /* dc_off_str */ |
| "", /* aa_on_str */ |
| "", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "", /* sp_off_str */ |
| "", /* sp_on_str */ |
| "", /* vol1_str */ |
| "", /* vol2_str */ |
| "", /* vol3_str */ |
| "", /* ignoredt */ |
| "", /* ini2 */ |
| 0L, /* max_speed */ |
| 0, /* capas */ |
| NULL /* ok_fn */ |
| }; |
| |
| static |
| MDMINF ATTMODEM = /* information for AT&T switched-network modems */ |
| /* "Number" following "dial" can include: p's and |
| * t's to indicate pulse or tone (default) dialing, |
| * + for wait for dial tone, , for pause, r for |
| * last number dialed, and, except for 2224B, some |
| * comma-delimited options like o12=y, before number. |
| |
| * "Important" options for the modems: |
| * |
| * All: Except for 2224B, enable option 12 for "transparent |
| * data," o12=y. If a computer port used for both |
| * incoming and outgoing calls is connected to the |
| * modem, disable "enter interactive mode on carriage |
| * return," EICR. The Kermit "dial" command can |
| * function with EIA leads standard, EIAS. |
| * |
| * 2212C: Internal hardware switches at their default |
| * positions (four rockers down away from numbers) |
| * unless EICR is not wanted (rocker down at the 4). |
| * For EIAS, rocker down at the 1. |
| * |
| * 2224B: Front-panel switch position 1 must be up (at the 1, |
| * closed). Disable EICR with position 2 down. |
| * For EIAS, position 4 down. |
| * All switches on the back panel down. |
| * |
| * 2224CEO: All front-panel switches down except either 5 or 6. |
| * Enable interactive flow control with o16=y. |
| * Select normal asynchronous mode with o34=0 (zero). |
| * Disable EICR with position 3 up. For EIAS, 1 up. |
| * Reset the modem after changing switches. |
| * |
| * 2296A: If option 00 (zeros) is present, use o00=0. |
| * Enable interactive flow control with o16=y. |
| * Select normal asynchronous mode with o34=0 (zero). |
| * (available in Microcom Networking version, but |
| * not necessarily other models of the 2296A). |
| * Enable modem-port flow control (if available) with |
| * o42=y. Enable asynchronous operation with o50=y. |
| * Disable EICR with o69=n. For EIAS, o66=n, using |
| * front panel. |
| */ |
| { |
| "AT&T switched-network modems", |
| "", /* pulse command */ |
| "", /* tone command */ |
| 20, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| "+", /* wake_str */ |
| 0, /* wake_rate */ |
| "", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "at%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 0, /* esc_time */ |
| 0, /* esc_char */ |
| "", /* hup_str */ |
| "", /* hwfc_str */ |
| "", /* swfc_str */ |
| "", /* nofc_str */ |
| "", /* ec_on_str */ |
| "", /* ec_off_str */ |
| "", /* dc_on_str */ |
| "", /* dc_off_str */ |
| "", /* aa_on_str */ |
| "", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "", /* sp_off_str */ |
| "", /* sp_on_str */ |
| "", /* vol1_str */ |
| "", /* vol2_str */ |
| "", /* vol3_str */ |
| "", /* ignoredt */ |
| "", /* ini2 */ |
| 0L, /* max_speed */ |
| CKD_AT, /* capas */ |
| NULL /* ok_fn */ |
| }; |
| |
| static |
| MDMINF ATTDTDM = /* AT&T Digital Terminal Data Module */ |
| /* For dialing: KYBD switch down, others usually up. */ |
| { |
| "AT&T Digital Terminal Data Module", |
| "", /* pulse command */ |
| "", /* tone command */ |
| 20, /* dial_time */ |
| "", /* pause_chars */ |
| 0, /* pause_time */ |
| "", /* wake_str */ |
| 0, /* wake_rate */ |
| "", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 0, /* esc_time */ |
| 0, /* esc_char */ |
| "", /* hup_str */ |
| "", /* hwfc_str */ |
| "", /* swfc_str */ |
| "", /* nofc_str */ |
| "", /* ec_on_str */ |
| "", /* ec_off_str */ |
| "", /* dc_on_str */ |
| "", /* dc_off_str */ |
| "", /* aa_on_str */ |
| "", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "", /* sp_off_str */ |
| "", /* sp_on_str */ |
| "", /* vol1_str */ |
| "", /* vol2_str */ |
| "", /* vol3_str */ |
| "", /* ignoredt */ |
| "", /* ini2 */ |
| 0L, /* max_speed */ |
| 0, /* capas */ |
| NULL /* ok_fn */ |
| }; |
| |
| static |
| MDMINF DIGITEL = /* Digitel DT-22 CCITT variant used in Brazil */ |
| /* |
| Attempts to adhere strictly to the V.25bis specification do not produce good |
| results in real life. The modem for which this code was developed: (a) |
| ignores parity; (b) sometimes terminates responses with LF CR instead of CR |
| LF; (c) has a Hayes-like escape sequence; (d) supports a hangup ("HUP") |
| command. Information from Fernando Cabral in Brasilia. |
| */ |
| { |
| "Digitel DT-22 CCITT dialer", |
| "", /* pulse command */ |
| "", /* tone command */ |
| 40, /* dial_time -- programmable -- */ |
| ",:", /* pause_chars -- "," waits for programmable time */ |
| /* ":" waits for dial tone */ |
| 10, /* pause_time (seconds, just a guess) */ |
| "HUP\015", /* wake_str (Not Standard CCITT) */ |
| 200, /* wake_rate (msec) */ |
| "VAL", /* wake_prompt */ |
| "", /* dmode_str (none) */ |
| "", /* dmode_prompt (none) */ |
| "CRN%s\015", /* dial_str */ |
| 200, /* dial_rate (msec) */ |
| 1100, /* esc_time (Not Standard CCITT) */ |
| 43, /* esc_char (Not Standard CCITT) */ |
| "HUP\015", /* hup_str (Not Standard CCITT) */ |
| "", /* hwfc_str */ |
| "", /* swfc_str */ |
| "", /* nofc_str */ |
| "", /* ec_on_str */ |
| "", /* ec_off_str */ |
| "", /* dc_on_str */ |
| "", /* dc_off_str */ |
| "CIC\015", /* aa_on_str */ |
| "DIC\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "", /* sp_off_str */ |
| "", /* sp_on_str */ |
| "", /* vol1_str */ |
| "", /* vol2_str */ |
| "", /* vol3_str */ |
| "", /* ignoredt */ |
| "", /* ini2 */ |
| 0L, /* max_speed */ |
| CKD_V25, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF H_1200 = /* Hayes 1200 and compatible modems */ |
| { |
| "Hayes Smartmodem 1200 and compatibles", |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATE1Q0V1\015", /* wake_str */ |
| #else |
| "ATQ0\015", /* wake_str */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "", /* hwfc_str */ |
| "", /* swfc_str */ |
| "", /* nofc_str */ |
| "", /* ec_on_str */ |
| "", /* ec_off_str */ |
| "", /* dc_on_str */ |
| "", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "", /* ignoredt */ |
| "", /* ini2 */ |
| 1200L, /* max_speed */ |
| CKD_AT, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF H_ULTRA = /* Hayes high-speed */ |
| { |
| "Hayes Ultra/Optima/Accura 96/144/288", /* U,O,A */ |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATE1Q0V1X4N1Y0&S0&C1&D2S37=0S82=128\015", /* wake_str */ |
| #else |
| #ifdef VMS |
| "ATQ0X4N1Y0&S1S37=0S82=128\015", /* wake_str */ |
| #else |
| "ATQ0X4N1Y0S37=0S82=128\015", /* wake_str */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT&K3\015", /* hwfc_str */ /* OK for U,O */ |
| "AT&K4\015", /* swfc_str */ /* OK for U,O */ |
| "AT&K0\015", /* nofc_str */ /* OK for U,O */ |
| "AT&Q5S36=7S48=7\015", /* ec_on_str */ /* OK for U,O */ |
| "AT&Q0\015", /* ec_off_str */ /* OK for U,O */ |
| "ATS46=2\015", /* dc_on_str */ |
| "ATS46=0\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 115200L, /* max_speed */ /* (varies) */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF H_ACCURA = /* Hayes Accura */ |
| { /* GUESSING IT'S LIKE ULTRA & OPTIMA */ |
| "Hayes Accura", |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATE1Q0V1X4N1Y0&S0&C1&D2S37=0\015", /* wake_str */ |
| #else |
| #ifdef VMS |
| "ATQ0X4N1Y0&S1S37=0\015", /* wake_str */ |
| #else |
| "ATQ0X4N1Y0S37=0\015", /* wake_str */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT&K3\015", /* hwfc_str */ |
| "AT&K4\015", /* swfc_str */ |
| "AT&K0\015", /* nofc_str */ |
| "AT&Q5S36=7S48=7\015", /* ec_on_str */ |
| "AT&Q0\015", /* ec_off_str */ |
| "ATS46=2\015", /* dc_on_str */ |
| "ATS46=0\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 115200L, /* max_speed */ /* (varies) */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF PPI = /* Practical Peripherals */ |
| { |
| "Practical Peripherals V.22bis or higher with V.42 and V.42bis", |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef COMMENT |
| /* In newer models S82 (BREAK handling) was eliminated, causing an error. */ |
| #ifdef OS2 |
| "ATQ0X4N1&S0&C1&D2S37=0S82=128\015", /* wake_str */ |
| #else |
| "ATQ0X4N1S37=0S82=128\015", /* wake_str */ |
| #endif /* OS2 */ |
| #else /* So now we use Y0 instead */ |
| #ifdef OS2 |
| "ATE1Q0V1X4N1&S0&C1&D2Y0S37=0\015", /* wake_str */ |
| #else |
| #ifdef VMS |
| "ATQ0X4N1Y0&S1S37=0\015", /* wake_str */ |
| #else |
| "ATQ0X4N1Y0S37=0\015", /* wake_str */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| #endif /* COMMENT */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT&K3\015", /* hwfc_str */ |
| "AT&K4\015", /* swfc_str */ |
| "AT&K0\015", /* nofc_str */ |
| "AT&Q5S36=7S48=7\015", /* ec_on_str */ |
| "AT&Q0S36=0S48=128\015", /* ec_off_str */ |
| "ATS46=2\015", /* dc_on_str */ |
| "ATS46=0\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 115200L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF DATAPORT = /* AT&T Dataport */ |
| { |
| "AT&T / Paradyne DataPort V.32 or higher", |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| /* |
| Note: S41=0 (use highest modulation) omitted, since it is not |
| supported on the V.32 and lower models. So let's not touch it. |
| */ |
| #ifdef OS2 |
| "ATQ0E1V1X6&S0&C1&D2&Q0Y0\\K5S78=0\015", /* wake_str */ |
| #else |
| #ifdef VMS |
| "ATQ0E1X6&S1&Q0Y0\\K5S78=0\015", /* wake_str */ |
| #else |
| "ATQ0E1X6&Q0Y0\\K5S78=0\015", /* wake_str */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT\\Q3\015", /* hwfc_str */ |
| "AT\\Q1\\X0\015", /* swfc_str */ |
| "AT\\Q0\015", /* nofc_str */ |
| "AT\\N7\015", /* ec_on_str */ |
| "AT\\N0\015", /* ec_off_str */ |
| "AT%C1\015", /* dc_on_str */ |
| "AT%C0\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 57600L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF UCOM_AT = /* Microcom DeskPorte FAST ES 28.8 */ |
| { |
| "Microcom DeskPorte FAST 28.8", |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATE1Q0V1X4\\N0F0&S0&C1&D2\\K5\015", /* wake_str */ |
| #else |
| #ifdef VMS |
| "ATQ0X4F0&S1\\K5\015", /* wake_str */ |
| #else |
| "ATQ0X4F0\\K5\015", /* wake_str */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT\\Q3\015", /* hwfc_str */ |
| "AT\\Q1\015", /* swfc_str */ |
| "AT\\H0\\Q0\015", /* nofc_str */ |
| "AT\\N3\015", /* ec_on_str */ |
| "AT\\N0\015", /* ec_off_str */ |
| "AT%C3\015", /* dc_on_str */ |
| "AT%C0\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "AT-J0\015", /* sb_on_str */ |
| "AT-J1\015", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 115200L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF ZOOM = /* Zoom Telephonics V.32bis */ |
| { |
| "Zoom Telephonics V.32bis", |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATE1Q0V1N1W1X4&S0&C1&D2S82=128S95=47\015", /* wake_str */ |
| #else |
| #ifdef VMS |
| "ATQ0E1N1W1X4&S1S82=128S95=47\015", /* wake_str */ |
| #else |
| "ATQ0E1N1W1X4S82=128S95=47\015", /* wake_str */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT&K3\015", /* hwfc_str */ |
| "AT&K4\015", /* swfc_str */ |
| "AT&K0\015", /* nofc_str */ |
| "AT&Q5S36=7S48=7\015", /* ec_on_str */ |
| "AT&Q0\015", /* ec_off_str */ |
| "ATS46=138\015", /* dc_on_str */ |
| "ATS46=136\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 57600L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF ZYXEL = /* ZyXEL U-Series */ |
| { |
| "ZyXEL U-Series V.32bis or higher", |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATE1Q0V1&S0&C1&D2&N0X5&Y1\015", /* wake_str */ |
| #else |
| #ifdef VMS |
| "ATQ0E1&S1&N0X5&Y1\015", /* wake_str */ |
| #else |
| "ATQ0E1&N0X5&Y1\015", /* wake_str */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT&H3\015", /* hwfc_str */ |
| "AT&H4\015", /* swfc_str */ |
| "AT&H0\015", /* nofc_str */ |
| "AT&K3\015", /* ec_on_str */ |
| "AT&K0\015", /* ec_off_str */ |
| "AT&K4\015", /* dc_on_str */ |
| "AT&K3\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 57600L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF ZOLTRIX = /* Zoltrix */ |
| { |
| "Zoltrix V.32bis and V.34 modems with Rockwell ACI chipset", |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATE1Q0V1F0W1X4Y0&S0&C1&D2\\K5S82=128S95=41\015", /* wake_str */ |
| #else |
| #ifdef VMS |
| "ATQ0E1F0W1X4Y0&S1\\K5S82=128S95=41\015", /* wake_str */ |
| #else |
| "ATQ0E1F0W1X4Y0\\K5S82=128S95=41\015", /* wake_str */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT&K3\015", /* hwfc_str */ |
| "AT&K4S32=17S33=19\015", /* swfc_str */ |
| "AT&K0\015", /* nofc_str */ |
| "AT\\N3\015", /* ec_on_str */ |
| "AT\\N1\015", /* ec_off_str */ |
| "ATS46=138%C3\015", /* dc_on_str */ |
| "ATS46=136%C0\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "AT\\N0\015", /* sb_on_str */ |
| "AT&Q0\015", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 57600L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF MOTOROLA = { /* Motorola FasTalk II or Lifestyle */ |
| /* |
| "\E" and "\X" commands removed - Motorola Lifestyle doesn't have them. |
| \E0 = Don't echo while online |
| \X0 = Process Xon/Xoff but don't pass through |
| */ |
| "Motorola FasTalk II or Lifestyle", /* Name */ |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATE1Q0V1X4&S0&C1&D2\\K5\\V1\015", /* wake_str */ |
| #else |
| #ifdef VMS |
| "ATQ0E1X4&S1\\K5\\V1\015", /* wake_str */ |
| #else |
| "ATQ0E1X4\\K5\\V1\015", /* wake_str */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT\\Q3\015", /* hwfc_str */ |
| "AT\\Q1\015", /* swfc_str */ |
| "AT\\Q0\015", /* nofc_str */ |
| "AT\\N6\015", /* ec_on_str */ |
| "AT\\N1\015", /* ec_off_str */ |
| "AT%C1\015", /* dc_on_str */ |
| "AT%C0\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "AT\\J0\015", /* sb_on_str */ |
| "AT\\J1\015", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 57600L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF BOCA = /* Boca */ |
| { |
| "BOCA 14.4 Faxmodem", |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATE1Q0V1F1N1W1&S0&C1&D2\\K5S37=11S82=128S95=47X4\015", /* wake_str */ |
| #else |
| #ifdef VMS |
| "ATQ0E1F1N1W1&S1\\K5S37=11S82=128S95=47X4\015", /* wake_str */ |
| #else |
| "ATQ0E1F1N1W1\\K5S37=11S82=128S95=47X4\015", /* wake_str */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT&K3\015", /* hwfc_str */ |
| "AT&K4\015", /* swfc_str */ |
| "AT&K0\015", /* nofc_str */ |
| "AT\\N3S36=7S48=7\015", /* ec_on_str */ |
| "AT\\N1\015", /* ec_off_str */ |
| "ATS46=138\015", /* dc_on_str */ |
| "ATS46=136\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 57600L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF INTEL = /* Intel */ |
| { |
| "Intel High-Speed Faxmodem", |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATE1Q0V1Y0X4&S0&C1&D2\\K1\\V2S25=50\015", /* wake_str */ |
| #else |
| #ifdef VMS |
| "ATQ0E1Y0X4&S1\\K1\\V2S25=50\015", /* wake_str */ |
| #else |
| "ATQ0E1Y0X4\\K1\\V2S25=50\015", /* wake_str */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "ATB1+FCLASS=0\015", /* dmode_str */ |
| "OK\015", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT\\G1\\Q3\015", /* hwfc_str */ |
| "AT\\G1\\Q1\\X0\015", /* swfc_str */ |
| "AT\\G0\015", /* nofc_str */ |
| "AT\\J0\\N3\"H3\015", /* ec_on_str */ |
| "AT\\N1\015", /* ec_off_str */ |
| "AT%C1\015", /* dc_on_str */ |
| "AT%C0\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 57600L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF MULTITECH = /* Multitech */ |
| { |
| "Multitech MT1432 or MT2834 Series", |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| /* #P0 (= no parity) is not listed in the manual for newer models */ |
| /* so it has been removed from all three copies of the Multitech wake_str */ |
| #ifdef OS2 |
| "ATE1Q0V1X4&S0&C1&D2&E8&Q0\015", /* wake_str */ |
| #else |
| #ifdef VMS |
| "ATQ0E1X4&S1&E8&Q0\015", /* wake_str */ |
| #else |
| "ATQ0E1X4&E8&Q0\015", /* wake_str */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT&E4&E7&E8&E11&E13\015", /* hwfc_str */ |
| "AT&E5&E6&E8&E11&E13\015", /* swfc_str */ |
| "AT&E3&E7&E8&E10&E12\015", /* nofc_str */ |
| "AT&E1\015", /* ec_on_str */ |
| "AT&E0\015", /* ec_off_str */ |
| "AT&E15\015", /* dc_on_str */ |
| "AT&E14\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "AT$BA0\015", /* sb_on_str (= "baud adjust off") */ |
| "AT$BA1\015", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 57600L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF SUPRA = /* Supra */ |
| { |
| "SupraFAXModem 144 or 288", |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATQ0E1V1N1W0X4Y0&S0&C1&D2\\K5S82=128\015", /* wake_str */ |
| #else |
| #ifdef VMS |
| "ATQ0E1N1W0X4Y0&S1\\K5S82=128\015", /* wake_str */ |
| #else |
| "ATQ0E1N1W0X4Y0\\K5S82=128\015", /* wake_str */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT&K3\015", /* hwfc_str */ |
| "AT&K4\015", /* swfc_str */ |
| "AT&K0\015", /* nofc_str */ |
| "AT&Q5\\N3S48=7\015", /* ec_on_str */ |
| "AT&Q0\\N1\015", /* ec_off_str */ |
| "AT%C1S46=138\015", /* dc_on_str */ |
| "AT%C0S46=136\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM\015", /* sp_off_str */ |
| "ATL\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 57600L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF SUPRAX = /* Supra Express */ |
| { |
| "Diamond Supra Express V.90", |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATQ0E1V1W0X4&C1&D2&S0\\K5\015", /* wake_str */ |
| #else |
| #ifdef VMS |
| "ATQ0E1W0X4&S1\\K5\015", /* wake_str */ |
| #else |
| "ATQ0E1W0X4\\K5\015", /* wake_str */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT&K3\015", /* hwfc_str */ |
| "AT&K4\015", /* swfc_str */ |
| "AT&K0\015", /* nofc_str */ |
| "AT\\N3\015", /* ec_on_str */ |
| "AT\\N1\015", /* ec_off_str */ |
| "AT%C2\015", /* dc_on_str */ |
| "AT%C0\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM\015", /* sp_off_str */ |
| "ATL\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 230400L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF MAXTECH = /* MaxTech */ |
| { |
| "MaxTech XM288EA or GVC FAXModem", |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATQ0E1V1X4Y0&S0&C1&D2&L0&M0\\K5\015", /* wake_str */ |
| #else |
| #ifdef VMS |
| "ATQ0E1X4Y0&L0&M0&S1\\K5\015", /* wake_str */ |
| #else |
| "ATQ0E1X4Y0&L0&M0\\K5\015", /* wake_str */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT\\Q3\015", /* hwfc_str */ |
| "AT\\Q1\\X0\015", /* swfc_str */ |
| "AT\\Q0\015", /* nofc_str */ |
| "AT\\N6\015", /* ec_on_str */ |
| "AT\\N0\015", /* ec_off_str */ |
| "AT\\N6%C1\015", /* dc_on_str */ |
| "AT\\N6%C0\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 115200L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF ROLM = /* IBM / Siemens / Rolm 8000, 9000, 9751 CBX DCM */ |
| { |
| "IBM/Siemens/Rolm CBX Data Communications Module", |
| "", /* pulse command */ |
| "", /* tone command */ |
| 60, /* dial_time */ |
| "", /* pause_chars */ |
| 0, /* pause_time */ |
| "\015\015", /* wake_str */ |
| 50, /* wake_rate */ |
| "MODIFY?", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "CALL %s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 0, /* esc_time */ |
| 0, /* esc_char */ |
| "", /* hup_str */ |
| "", /* hwfc_str */ |
| "", /* swfc_str */ |
| "", /* nofc_str */ |
| "", /* ec_on_str */ |
| "", /* ec_off_str */ |
| "", /* dc_on_str */ |
| "", /* dc_off_str */ |
| "", /* aa_on_str */ |
| "", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "", /* sp_off_str */ |
| "", /* sp_on_str */ |
| "", /* vol1_str */ |
| "", /* vol2_str */ |
| "", /* vol3_str */ |
| "", /* ignoredt */ |
| "", /* ini2 */ |
| 19200L, /* max_speed */ |
| 0, /* capas */ |
| NULL /* ok_fn */ |
| }; |
| |
| static |
| MDMINF USR = /* USR Courier and Sportster modems */ |
| { |
| "US Robotics Courier, Sportster, or compatible", |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATQ0E1V1X4&A3&S0&C1&D2&N0&Y3S14=0\015", /* wake_str */ |
| #else |
| #ifdef SUNOS4 |
| "ATQ0X4&A3&S0&N0&Y3S14=0\015", /* wake_str -- needs &S0 in SunOS */ |
| #else |
| #ifdef VMS |
| "ATQ0X4&A3&S1&N0&Y3S14=0\015", /* wake_str -- needs &S1 in VMS */ |
| #else |
| "ATQ0X4&A3&N0&Y3S14=0\015", /* wake_str */ |
| #endif /* VMS */ |
| #endif /* SUNOS4 */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT&H1&R2&I0\015", /* hwfc_str */ |
| "AT&H2&R1&I2\015", /* swfc_str */ |
| "AT&H0&R1&I0\015", /* nofc_str */ |
| "AT&M4&B1\015", /* ec_on_str */ |
| "AT&M0\015", /* ec_off_str */ |
| "AT&K1\015", /* dc_on_str */ |
| "AT&K0\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 115200L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| |
| static |
| MDMINF USRX2 = /* USR XJ-CC1560 X2 56K */ |
| { |
| "US Robotics / Megahertz CC/XJ-CC1560 X2", |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATQ0E1V1X4&A3&S0&B2&C1&D2&N0\015", /* wake_str */ |
| #else |
| #ifdef VMS |
| "ATQ0X4&A3&B2&N0&S1\015", /* wake_str */ |
| #else |
| "ATQ0X4&A3&B2&N0\015", /* wake_str */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT&H1&I0\015", /* hwfc_str */ |
| "AT&H2&I2\015", /* swfc_str */ |
| "AT&H0&I0\015", /* nofc_str */ |
| "AT&M4\015", /* ec_on_str */ |
| "AT&M0\015", /* ec_off_str */ |
| "AT&K1\015", /* dc_on_str */ |
| "AT&K0\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "AT&B1\015", /* sb_on_str */ |
| "AT&B0\015", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 115200L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF OLDTB = /* Old Telebits */ |
| { |
| "Telebit TrailBlazer, T1000, T1500, T2000, T2500", |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 60, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "\021AAAAATQ0E1V1X1&S0&C1&D2S12=50S50=0S54=3\015", /* wake_str. */ |
| #else |
| #ifdef VMS |
| "\021AAAAATQ0X1S12=50S50=0S54=3\015", /* wake_str. */ |
| #else |
| "\021AAAAATQ0X1&S1S12=50S50=0S54=3\015", /* wake_str. */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 100, /* wake_rate = 100 msec */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str, Note: no T or P */ |
| 80, /* dial_rate */ |
| 1100, /* esc_time (guard time) */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "ATS58=2S68=2\015", /* hwfc_str */ |
| "ATS58=3S68=3S69=0\015", /* swfc_str */ |
| "ATS58=0S68=0\015", /* nofc_str */ |
| "ATS66=1S95=2\015", /* ec_on_str */ |
| "ATS95=0\015", /* ec_off_str */ |
| "ATS110=1S96=1\015", /* dc_on_str */ |
| "ATS110=0S96=0\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 19200L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW|CKD_TB|CKD_KS, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF NEWTB = /* New Telebits */ |
| { |
| "Telebit T1600, T3000, QBlazer, WorldBlazer, etc.", |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 60, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "\021AAAAATQ0E1V1X2&S0&C1&D2S12=50S50=0S61=0S63=0\015", /* wake_str. */ |
| #else |
| #ifdef VMS |
| "\021AAAAATQ0X2&S1S12=50S50=0S61=0S63=0\015", /* wake_str. */ |
| #else |
| "\021AAAAATQ0X2S12=50S50=0S61=0S63=0\015", /* wake_str. */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 100, /* wake_rate = 100 msec */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str, Note: no T or P */ |
| 80, /* dial_rate */ |
| 1100, /* esc_time (guard time) */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "ATS58=2S68=2\015", /* hwfc_str */ |
| "ATS58=3S68=3\015", /* swfc_str */ |
| "ATS58=0S68=0\015", /* nofc_str */ |
| "ATS180=3\015", /* ec_on_str */ |
| "ATS180=0\015", /* ec_off_str */ |
| "ATS190=1\015", /* dc_on_str */ |
| "ATS190=0\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 38400L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW|CKD_TB|CKD_KS, /* capas */ |
| getok /* ok_fn */ |
| }; |
| #endif /* MINIDIAL */ |
| |
| static |
| MDMINF DUMMY = /* dummy information for modems that are handled elsewhere */ |
| { |
| "(dummy)", |
| "", /* pulse command */ |
| "", /* tone command */ |
| 30, /* dial_time */ |
| "", /* pause_chars */ |
| 0, /* pause_time */ |
| "", /* wake_str */ |
| 0, /* wake_rate */ |
| "", /* wake_prompt */ |
| "", /* dmode_str */ |
| NULL, /* dmode_prompt */ |
| "%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 0, /* esc_time */ |
| 0, /* esc_char */ |
| "", /* hup_str */ |
| "", /* hwfc_str */ |
| "", /* swfc_str */ |
| "", /* nofc_str */ |
| "", /* ec_on_str */ |
| "", /* ec_off_str */ |
| "", /* dc_on_str */ |
| "", /* dc_off_str */ |
| "", /* aa_on_str */ |
| "", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "", /* sp_off_str */ |
| "", /* sp_on_str */ |
| "", /* vol1_str */ |
| "", /* vol2_str */ |
| "", /* vol3_str */ |
| "", /* ignoredt */ |
| "", /* ini2 */ |
| 0L, /* max_speed */ |
| 0, /* capas */ |
| NULL /* ok_fn */ |
| }; |
| |
| #ifndef MINIDIAL |
| static |
| MDMINF RWV32 = /* Generic Rockwell V.32 */ |
| { |
| "Generic Rockwell V.32 modem", /* ATI3, ATI4, and ATI6 for details */ |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATQ0E1V1X4Y0&S0&C1&D2%E2\\K5+FCLASS=0N1S37=0\015", /* wake_str */ |
| #else |
| #ifdef VMS |
| "ATQ0X4Y0&S1%E2\\K5+FCLASS=0N1S37=0\015", /* wake_str */ |
| #else |
| "ATQ0X4Y0%E2\\K5+FCLASS=0N1S37=0\015", /* wake_str */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT&K3\015", /* hwfc_str */ |
| "AT&K4S32=17S33=19\015", /* swfc_str */ |
| "AT&K0\015", /* nofc_str */ |
| "AT&Q6\015", /* ec_on_str */ |
| "AT&Q0\015", /* ec_off_str */ |
| "AT%C1\015", /* dc_on_str */ |
| "AT%C0\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 57600L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF RWV32B = /* Generic Rockwell V.32bis */ |
| { |
| "Generic Rockwell V.32bis modem", /* ATI3, ATI4, and ATI6 for details */ |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATQ0E1V1X4Y0&S0&C1&D2%E2\\K5+FCLASS=0N1S37=0\015", /* wake_str */ |
| #else |
| #ifdef VMS |
| "ATQ0X4Y0&S1%E2\\K5+FCLASS=0N1S37=0\015", /* wake_str */ |
| #else |
| "ATQ0X4Y0%E2\\K5+FCLASS=0N1S37=0\015", /* wake_str */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT&K3\015", /* hwfc_str */ |
| "AT&K4S32=17S33=19\015", /* swfc_str */ |
| "AT&K0\015", /* nofc_str */ |
| "AT&Q5\015", /* ec_on_str */ |
| "AT&Q0\015", /* ec_off_str */ |
| "ATS%C1\015", /* dc_on_str */ |
| "ATS%C0\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 57600L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF RWV34 = /* Generic Rockwell V.34 Data/Fax */ |
| { |
| "Generic Rockwell V.34 modem", /* ATI3, ATI4, and ATI6 for details */ |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATQ0V1X4Y0&C1&D2&S0%E2\\K5+FCLASS=0\015", /* wake_str */ |
| #else |
| #ifdef VMS |
| "ATQ0V1X4Y0&C1&D2&S1%E2\\K5+FCLASS=0\015", /* wake_str */ |
| #else |
| "ATQ0V1X4Y0&C1&D2%E2\\K5+FCLASS=0\015", /* wake_str */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT&K3\015", /* hwfc_str */ |
| "AT&K4S32=17S33=19\015", /* swfc_str */ |
| "AT&K0\015", /* nofc_str */ |
| "AT&Q5\015", /* ec_on_str */ |
| "AT&Q0\015", /* ec_off_str */ |
| "ATS%C3\015", /* dc_on_str */ |
| "ATS%C0\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 115200L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF RWV90 = /* Generic Rockwell V.90 Data/Fax */ |
| { |
| "Generic Rockwell V.90 56K modem", /* ATI3, ATI4, and ATI6 for details */ |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATQ0V1N1X4Y0&C1&D2&S0%E2\\K5+FCLASS=0S37=0\015", /* K95 */ |
| #else |
| #ifdef VMS |
| "ATQ0V1N1X4Y0&C1&D2&S1%E2\\K5+FCLASS=0S37=0\015", /* wake_str */ |
| #else |
| "ATQ0V1N1X4Y0&C1&D2%E2\\K5+FCLASS=0S37=0\015", /* wake_str */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT&K3\015", /* hwfc_str */ |
| "AT&K4S32=17S33=19\015", /* swfc_str */ |
| "AT&K0\015", /* nofc_str */ |
| "AT&Q5\015", /* ec_on_str */ |
| "AT&Q0\015", /* ec_off_str */ |
| "AT%C3\015", /* dc_on_str */ |
| "AT%C0\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 115200L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF MWAVE = /* IBM Mwave */ |
| { |
| "IBM Mwave Adapter", |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATQ0E1V1X4Y0&S0&C1&D2&M0&Q0&N1\\K3\\T0%E2S28=0\015", /* wake_str */ |
| #else |
| #ifdef VMS |
| "ATQ0X4Y0&M0&S1&Q0&N1&S0\\K3\\T0%E2S28=0\015", /* wake_str */ |
| #else |
| "ATQ0X4Y0&M0&Q0&N1&S0\\K3\\T0%E2S28=0\015", /* wake_str */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT\\Q3\015", /* hwfc_str */ |
| "", /* swfc_str (it doesn't!) */ |
| "AT\\Q0\015", /* nofc_str */ |
| "AT\\N7\015", /* ec_on_str */ |
| "AT\\N0\015", /* ec_off_str */ |
| "AT%C1\"H3\015", /* dc_on_str */ |
| "AT%C0\"H0\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 57600L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF TELEPATH = /* Gateway 2000 Telepath */ |
| { |
| "Gateway 2000 Telepath II 28.8", |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATQ0E1V1X4&S0&C1&D2&N0&Y2#CLS=0S13=0S15=0S19=0\015", /* wake_str */ |
| #else |
| #ifdef VMS |
| "ATQ0X4&N0&S1&Y1#CLS=0S13=0S15=0S19=0\015", /* wake_str */ |
| #else |
| "ATQ0X4&N0&Y1#CLS=0S13=0S15=0S19=0\015", /* wake_str */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT&H1&R2\015", /* hwfc_str */ |
| "AT&H2&I2S22=17S23=19\015", /* swfc_str */ |
| "AT&H0&I0&R1\015", /* nofc_str */ |
| "AT&M4&B1\015", /* ec_on_str -- also fixes speed */ |
| "AT&M0\015", /* ec_off_str */ |
| "AT&K1\015", /* dc_on_str */ |
| "AT&K0\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 57600L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF CARDINAL = /* Cardinal - based on Rockwell V.34 */ |
| { |
| "Cardinal MVP288X Series", /* ATI3, ATI4, and ATI6 for details */ |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATQ0E1V1X4W1Y0%E2&S0&C1&D2\\K5+FCLASS=0+MS=11,1\015", /* wake_str */ |
| #else |
| #ifdef VMS |
| "ATQ0X4W1Y0&S1%E2\\K5+FCLASS=0+MS=11,1\015", /* wake_str */ |
| #else |
| "ATQ0X4W1Y0%E2\\K5+FCLASS=0+MS=11,1\015", /* wake_str */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT&K3\015", /* hwfc_str */ |
| "AT&K4S32=17S33=19\015", /* swfc_str */ |
| "AT&K0\015", /* nofc_str */ |
| "AT&Q5S36=7S48=7\\N3\015", /* ec_on_str */ |
| "AT&Q0S48=128\\N1\015", /* ec_off_str */ |
| "ATS46=138%C1\015", /* dc_on_str */ |
| "ATS46=136%C0\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 115200L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF LUCENT = /* Lucent Venus or Data/Fax modem */ |
| { |
| "Lucent Venus chipset", |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATQ0V1N1X4Y0&C1&D2&S0%E2\\K5+FCLASS=0S37=0\015", /* K95 */ |
| #else |
| #ifdef VMS |
| "ATQ0V1N1X4Y0&C1&D2&S1%E2\\K5+FCLASS=0S37=0\015", /* VMS */ |
| #else |
| "ATQ0V1N1X4Y0&C1&D2%E2\\K5+FCLASS=0S37=0\015", /* All others */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT&K3\015", /* hwfc_str */ |
| "AT&K4S32=17S33=19\015", /* swfc_str */ |
| "AT&K0\015", /* nofc_str */ |
| "AT&Q5\015", /* ec_on_str */ |
| "AT&Q0\015", /* ec_off_str */ |
| "AT%C1\015", /* dc_on_str */ |
| "AT%C0\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 115200L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF CONEXANT = /* Conexant family */ |
| { |
| "Conexant family of modems", |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATQ0V1X4&C1&D2&S0%E1+FCLASS=0\015", /* K95 */ |
| #else |
| #ifdef VMS |
| "ATQ0V1X4&C1&D2&S1%E1+FCLASS=0\015", /* VMS */ |
| #else |
| "ATQ0V1X4&C1&D2%E1+FCLASS=0\015", /* UNIX etc */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT&K3\015", /* hwfc_str */ |
| "AT&K4S32=17S33=19\015", /* swfc_str */ |
| "AT&K0\015", /* nofc_str */ |
| "AT&Q5\015", /* ec_on_str */ |
| "AT&Q0\015", /* ec_off_str */ |
| "AT%C3\015", /* dc_on_str */ |
| "AT%C0\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 115200L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF PCTEL = /* PCTel chipset */ |
| { |
| "PCTel chipset", |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATQ0V1N1X4Y0&C1&D2&S0%E2\\K5S37=0\015", /* K95 */ |
| #else |
| #ifdef VMS |
| "ATQ0V1N1X4Y0&C1&D2&S1%E2\\K5S37=0\015", /* VMS */ |
| #else |
| "ATQ0V1N1X4Y0&C1&D2%E2\\K5S37=0\015", /* UNIX etc */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT&K3\015", /* hwfc_str */ |
| "AT&K4S32=17S33=19\015", /* swfc_str */ |
| "AT&K0\015", /* nofc_str */ |
| "AT\\N3\015", /* ec_on_str */ |
| "AT\\N0\015", /* ec_off_str */ |
| "AT%C1\015", /* dc_on_str */ |
| "AT%C0\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 115200L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF ZOOMV34 = /* Zoom Telephonics V.34 */ |
| { |
| "Zoom Telephonics V.34", |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATQ0V1N1W1X4&S0&C1&D2S82=128\015", /* wake_str */ |
| #else |
| #ifdef VMS |
| "ATQ0V1N1W1X4&S1S82=128\015", /* wake_str */ |
| #else |
| "ATQ0V1N1W1X4S82=128S015", /* wake_str */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT&K3\015", /* hwfc_str */ |
| "AT&K4\015S32=17S33=19", /* swfc_str */ |
| "AT&K0\015", /* nofc_str */ |
| "AT&Q5\015", /* ec_on_str */ |
| "AT&Q0\015", /* ec_off_str */ |
| "ATS%C3\015", /* dc_on_str */ |
| "ATS%C0\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 57600L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF ZOOMV90 = /* ZOOM V.90 */ |
| { |
| "Zoom V.90 56K", |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATQ0V1N1X4Y0&C1&D2&S0%E2\\K5+FCLASS=0S37=0\015", /* K95 */ |
| #else |
| #ifdef VMS |
| "ATQ0V1N1X4Y0&C1&D2&S1%E2\\K5+FCLASS=0S37=0\015", /* VMS */ |
| #else |
| "ATQ0V1N1X4Y0&C1&D2%E2\\K5+FCLASS=0S37=0\015", /* All others */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT&K3\015", /* hwfc_str */ |
| "AT&K4S32=17S33=19\015", /* swfc_str */ |
| "AT&K0\015", /* nofc_str */ |
| "AT&Q5\015", /* ec_on_str */ |
| "AT&Q0\015", /* ec_off_str */ |
| "AT%C1\015", /* dc_on_str */ |
| "AT%C0\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 115200L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF ZOOMV92 = /* ZOOM V.92 */ |
| { |
| "Zoom V.92 with V.44 compression", |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATQ0V1N1X4Y0&C1&D2&S0%E2\\K5+FCLASS=0S37=0+MS=V92\015", /* K95 */ |
| #else |
| #ifdef VMS |
| "ATQ0V1N1X4Y0&C1&D2&S1%E2\\K5+FCLASS=0S37=0+MS=V92\015", /* VMS */ |
| #else |
| "ATQ0V1N1X4Y0&C1&D2%E2\\K5+FCLASS=0S37=0+MS=V92\015", /* All others */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H0\015", /* hup_str */ |
| "AT&K3\015", /* hwfc_str */ |
| "AT&K4S32=17S33=19\015", /* swfc_str */ |
| "AT&K0\015", /* nofc_str */ |
| "AT&Q5\015", /* ec_on_str */ |
| "AT&Q0\015", /* ec_off_str */ |
| "AT%C1+DCS=1,1\015", /* dc_on_str */ |
| "AT%C0\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 115200L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| |
| /* |
| Now the "old" modems, all grouped together, and also within |
| "if not defined MINIDIAL"... |
| */ |
| #ifdef OLDMODEMS |
| |
| static |
| MDMINF CERMETEK = /* Information for "Cermetek Info-Mate 212 A" modem */ |
| { |
| "Cermetek Info-Mate 212 A", |
| "", /* pulse command */ |
| "", /* tone command */ |
| 20, /* dial_time */ |
| "BbPpTt", /* pause_chars */ |
| 0, /* pause_time */ |
| " XY\016R\015", /* wake_str */ |
| 200, /* wake_rate */ |
| "", /* wake_prompt */ |
| "", /* dmode_str */ |
| NULL, /* dmode_prompt */ |
| "\016D '%s'\015", /* dial_str */ |
| 200, /* dial_rate */ |
| 0, /* esc_time */ |
| 0, /* esc_char */ |
| "", /* hup_str */ |
| "", /* hwfc_str */ |
| "", /* swfc_str */ |
| "", /* nofc_str */ |
| "", /* ec_on_str */ |
| "", /* ec_off_str */ |
| "", /* dc_on_str */ |
| "", /* dc_off_str */ |
| "", /* aa_on_str */ |
| "", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "", /* sp_off_str */ |
| "", /* sp_on_str */ |
| "", /* vol1_str */ |
| "", /* vol2_str */ |
| "", /* vol3_str */ |
| "", /* ignoredt */ |
| "", /* ini2 */ |
| 1200L, /* max_speed */ |
| 0, /* capas */ |
| NULL /* ok_fn */ |
| }; |
| |
| static |
| MDMINF DF03 = /* information for "DEC DF03-AC" modem */ |
| { |
| "Digital DF03-AC", |
| "", /* pulse command */ |
| "", /* tone command */ |
| 27, /* dial_time */ |
| "=", /* pause_chars */ |
| 15, /* pause_time */ |
| "\001\002", /* wake_str */ |
| 0, /* wake_rate */ |
| "", /* wake_prompt */ |
| "", /* dmode_str */ |
| NULL, /* dmode_prompt */ |
| "%s", /* dial_str */ |
| 0, /* dial_rate */ |
| 0, /* esc_time */ |
| 0, /* esc_char */ |
| "", /* hup_str */ |
| "", /* hwfc_str */ |
| "", /* swfc_str */ |
| "", /* nofc_str */ |
| "", /* ec_on_str */ |
| "", /* ec_off_str */ |
| "", /* dc_on_str */ |
| "", /* dc_off_str */ |
| "", /* aa_on_str */ |
| "", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "", /* sp_off_str */ |
| "", /* sp_on_str */ |
| "", /* vol1_str */ |
| "", /* vol2_str */ |
| "", /* vol3_str */ |
| "", /* ignoredt */ |
| "", /* ini2 */ |
| 0L, /* max_speed */ |
| 0, /* capas */ |
| NULL /* ok_fn */ |
| }; |
| |
| static |
| MDMINF DF100 = /* information for "DEC DF100-series" modem */ |
| /* |
| * The telephone "number" can include "P"s and/or "T"s |
| * within it to indicate that subsequent digits are |
| * to be dialed using pulse or tone dialing. The |
| * modem defaults to pulse dialing. You may modify |
| * the dial string below to explicitly default all |
| * dialing to pulse or tone, but doing so prevents |
| * the use of phone numbers that you may have stored |
| * in the modem's memory. |
| */ |
| { |
| "Digital DF-100", |
| "", /* pulse command */ |
| "", /* tone command */ |
| 30, /* dial_time */ |
| "=", /* pause_chars */ |
| 15, /* pause_time */ |
| "\001", /* wake_str */ |
| 0, /* wake_rate */ |
| "", /* wake_prompt */ |
| "", /* dmode_str */ |
| NULL, /* dmode_prompt */ |
| "%s#", /* dial_str */ |
| 0, /* dial_rate */ |
| 0, /* esc_time */ |
| 0, /* esc_char */ |
| "", /* hup_str */ |
| "", /* hwfc_str */ |
| "", /* swfc_str */ |
| "", /* nofc_str */ |
| "", /* ec_on_str */ |
| "", /* ec_off_str */ |
| "", /* dc_on_str */ |
| "", /* dc_off_str */ |
| "", /* aa_on_str */ |
| "", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "", /* sp_off_str */ |
| "", /* sp_on_str */ |
| "", /* vol1_str */ |
| "", /* vol2_str */ |
| "", /* vol3_str */ |
| "", /* ignoredt */ |
| "", /* ini2 */ |
| 0L, /* max_speed */ |
| 0, /* capas */ |
| NULL /* ok_fn */ |
| }; |
| |
| static |
| MDMINF DF200 = /* information for "DEC DF200-series" modem */ |
| /* |
| * The telephone "number" can include "P"s and/or "T"s |
| * within it to indicate that subsequent digits are |
| * to be dialed using pulse or tone dialing. The |
| * modem defaults to pulse dialing. You may modify |
| * the dial string below to explicitly default all |
| * dialing to pulse or tone, but doing so prevents |
| * the use of phone numbers that you may have stored |
| * in the modem's memory. |
| */ |
| { |
| "Digital DF-200", |
| "", /* pulse command */ |
| "", /* tone command */ |
| 30, /* dial_time */ |
| "=W", /* pause_chars */ /* =: second tone; W: 5 secs */ |
| 15, /* pause_time */ /* worst case */ |
| "\002", /* wake_str */ /* allow stored number usage */ |
| 0, /* wake_rate */ |
| "", /* wake_prompt */ |
| "", /* dmode_str */ |
| NULL, /* dmode_prompt */ |
| #ifdef COMMENT |
| "%s!", /* dial_str */ |
| #else |
| " d %s\015", |
| #endif /* COMMENT */ |
| 0, /* dial_rate */ |
| 0, /* esc_time */ |
| 0, /* esc_char */ |
| "", /* hup_str */ |
| "", /* hwfc_str */ |
| "", /* swfc_str */ |
| "", /* nofc_str */ |
| "", /* ec_on_str */ |
| "", /* ec_off_str */ |
| "", /* dc_on_str */ |
| "", /* dc_off_str */ |
| "", /* aa_on_str */ |
| "", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "", /* sp_off_str */ |
| "", /* sp_on_str */ |
| "", /* vol1_str */ |
| "", /* vol2_str */ |
| "", /* vol3_str */ |
| "", /* ignoredt */ |
| "", /* ini2 */ |
| 0L, /* max_speed */ |
| 0, /* capas */ |
| NULL /* ok_fn */ |
| }; |
| |
| static |
| MDMINF GDC = /* information for "GeneralDataComm 212A/ED" modem */ |
| { |
| "GeneralDataComm 212A/ED", |
| "", /* pulse command */ |
| "", /* tone command */ |
| 32, /* dial_time */ |
| "%", /* pause_chars */ |
| 3, /* pause_time */ |
| "\015\015", /* wake_str */ |
| 500, /* wake_rate */ |
| "$", /* wake_prompt */ |
| "D\015", /* dmode_str */ |
| ":", /* dmode_prompt */ |
| "T%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 0, /* esc_time */ |
| 0, /* esc_char */ |
| "", /* hup_str */ |
| "", /* hwfc_str */ |
| "", /* swfc_str */ |
| "", /* nofc_str */ |
| "", /* ec_on_str */ |
| "", /* ec_off_str */ |
| "", /* dc_on_str */ |
| "", /* dc_off_str */ |
| "", /* aa_on_str */ |
| "", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "", /* sp_off_str */ |
| "", /* sp_on_str */ |
| "", /* vol1_str */ |
| "", /* vol2_str */ |
| "", /* vol3_str */ |
| "", /* ignoredt */ |
| "", /* ini2 */ |
| 1200L, /* max_speed */ |
| 0, /* capas */ |
| NULL /* ok_fn */ |
| }; |
| |
| static |
| MDMINF PENRIL = /* information for "Penril" modem */ |
| { |
| "Penril modem", |
| "", /* pulse command */ |
| "", /* tone command */ |
| 50, /* dial_time */ |
| "", /* pause_chars */ |
| 0, /* pause_time */ |
| "\015\015", /* wake_str */ |
| 300, /* wake_rate */ |
| ">", /* wake_prompt */ |
| "k\015", /* dmode_str */ |
| ":", /* dmode_prompt */ |
| "%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 0, /* esc_time */ |
| 0, /* esc_char */ |
| "", /* hup_str */ |
| "", /* hwfc_str */ |
| "", /* swfc_str */ |
| "", /* nofc_str */ |
| "", /* ec_on_str */ |
| "", /* ec_off_str */ |
| "", /* dc_on_str */ |
| "", /* dc_off_str */ |
| "", /* aa_on_str */ |
| "", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "", /* sp_off_str */ |
| "", /* sp_on_str */ |
| "", /* vol1_str */ |
| "", /* vol2_str */ |
| "", /* vol3_str */ |
| "", /* ignoredt */ |
| "", /* ini2 */ |
| 0L, /* max_speed */ |
| 0, /* capas */ |
| NULL /* ok_fn */ |
| }; |
| |
| static |
| MDMINF RACAL = /* Racal Vadic VA4492E */ |
| { |
| "Racal Vadic VA4492E", |
| "", /* pulse command */ |
| "", /* tone command */ |
| 35, /* dial_time (manual says modem is hardwired to 60) */ |
| "Kk", /* pause_chars */ |
| 5, /* pause_time */ |
| "\005\015", /* wake_str, ^E^M */ |
| 50, /* wake_rate */ |
| "*", /* wake_prompt */ |
| "D\015", /* dmode_str */ |
| "?", /* dmode_prompt */ |
| "%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 5, /* esc_char, ^E */ |
| "\003\004", /* hup_str, ^C^D */ |
| 0, /* hwfc_str */ |
| "", /* swfc_str */ |
| "", /* nofc_str */ |
| "", /* ec_on_str */ |
| "", /* ec_off_str */ |
| "", /* dc_on_str */ |
| "", /* dc_off_str */ |
| "", /* aa_on_str */ |
| "", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "", /* sp_off_str */ |
| "", /* sp_on_str */ |
| "", /* vol1_str */ |
| "", /* vol2_str */ |
| "", /* vol3_str */ |
| "", /* ignoredt */ |
| "", /* ini2 */ |
| 0L, /* max_speed */ |
| 0, /* capas */ |
| NULL /* ok_fn */ |
| }; |
| |
| static |
| MDMINF VENTEL = /* Information for Ven-Tel modem */ |
| { |
| "Ven-Tel", |
| "", /* pulse command */ |
| "", /* tone command */ |
| 20, /* dial_time */ |
| "%", /* pause_chars */ |
| 5, /* pause_time */ |
| "\015\015\015", /* wake_str */ |
| 300, /* wake_rate */ |
| "$", /* wake_prompt */ |
| "K\015", /* dmode_str (was "") */ |
| "Number to call: ", /* dmode_prompt (was NULL) */ |
| "%s\015", /* dial_str (was "<K%s\r>") */ |
| 0, /* dial_rate */ |
| 0, /* esc_time */ |
| 0, /* esc_char */ |
| "", /* hup_str */ |
| "", /* hwfc_str */ |
| "", /* swfc_str */ |
| "", /* nofc_str */ |
| "", /* ec_on_str */ |
| "", /* ec_off_str */ |
| "", /* dc_on_str */ |
| "", /* dc_off_str */ |
| "", /* aa_on_str */ |
| "", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "", /* sp_off_str */ |
| "", /* sp_on_str */ |
| "", /* vol1_str */ |
| "", /* vol2_str */ |
| "", /* vol3_str */ |
| "", /* ignoredt */ |
| "", /* ini2 */ |
| 0L, /* max_speed */ |
| 0, /* capas */ |
| NULL /* ok_fn */ |
| }; |
| |
| static |
| MDMINF CONCORD = /* Info for Condor CDS 220 2400b modem */ |
| { |
| "Concord Condor CDS 220 2400b", |
| "", /* pulse command */ |
| "", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| "\015\015", /* wake_str */ |
| 20, /* wake_rate */ |
| "CDS >", /* wake_prompt */ |
| "", /* dmode_str */ |
| NULL, /* dmode_prompt */ |
| "<D M%s\015>", /* dial_str */ |
| 0, /* dial_rate */ |
| 0, /* esc_time */ |
| 0, /* esc_char */ |
| "", /* hup_str */ |
| "", /* hwfc_str */ |
| "", /* swfc_str */ |
| "", /* nofc_str */ |
| "", /* ec_on_str */ |
| "", /* ec_off_str */ |
| "", /* dc_on_str */ |
| "", /* dc_off_str */ |
| "", /* aa_on_str */ |
| "", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "", /* sp_off_str */ |
| "", /* sp_on_str */ |
| "", /* vol1_str */ |
| "", /* vol2_str */ |
| "", /* vol3_str */ |
| "", /* ignoredt */ |
| "", /* ini2 */ |
| 2400L, /* max_speed */ |
| 0, /* capas */ |
| NULL /* ok_fn */ |
| }; |
| #endif /* OLDMODEMS */ |
| |
| static |
| MDMINF MICROCOM = /* Microcom modems in native SX mode */ |
| /* (long answer only) */ |
| { |
| "Microcom MNP modems in SX command mode", |
| "DP\015", /* pulse command */ |
| "DT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",!@", /* pause_chars (! and @ aren't pure pauses) */ |
| 3, /* pause_time */ |
| /* |
| The following sets 8 bits, no parity, BREAK passthru, and SE0 disables the |
| escape character, which is a single character with no guard time, totally |
| unsafe, so we have no choice but to disable it. Especially since, by |
| default, it is Ctrl-A, which is Kermit's packet-start character. We would |
| change it to something else, which would enable "mdmhup()", but the user |
| wouldn't know about it. Very bad. Note: SE1 sets it to Ctrl-A, SE2 |
| sets it to Ctrl-B, etc (1..31 allowed). Also SE/Q sets it to "Q". |
| */ |
| "SE0;S1P4;SBRK5\015", /* wake_str */ |
| 100, /* wake_rate */ |
| "!", /* wake_prompt */ |
| "", /* dmode_str */ |
| NULL, /* dmode_prompt */ |
| "D%s\015", /* dial_str - number up to 39 chars */ |
| 0, /* dial_rate */ |
| 0, /* esc_time */ |
| 0, /* esc_char - we can't use this */ |
| "", /* hup_str - it's "H" but can't use */ |
| "SF13\015", /* hwfc_str */ |
| "SF11\015", /* swfc_str */ |
| "SF10\015", /* nofc_str */ |
| "BAOFF;SMAUT\015", /* ec_on_str */ |
| "BAON;SMDIR\015", /* ec_off_str */ |
| "COMP1\015", /* dc_on_str */ |
| "COMP0\015", /* dc_off_str */ |
| "AA", /* aa_on_str */ |
| "", /* aa_off_str */ |
| "", /* sb_on_str */ |
| "", /* sb_off_str */ |
| "SA2", /* sp_off_str */ |
| "SA0", /* sp_on_str */ |
| "", /* vol1_str */ |
| "", /* vol2_str */ |
| "", /* vol3_str */ |
| "", /* ignoredt */ |
| "", /* ini2 */ |
| 0L, /* max_speed */ |
| CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW|CKD_KS, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF MICROLINK = /* MicroLink ... */ |
| { /* 14.4TQ,TL,PC;28.8TQ,TQV;2440T/TR */ |
| "ELSA MicroLink 14.4, 28.8, 33.6 or 56K", /* ELSA GmbH, Aachen */ |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| "ATQ0E1V1X4&S0\\D0&C1&D2\\K5\015", /* wake_str */ |
| #else |
| #ifdef VMS |
| "ATQ0X4&S1\\K5\015", /* wake_str */ |
| #else |
| "ATQ0X4\\K5\015", /* wake_str */ |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| 0, /* wake_rate */ |
| "OK\015", /* wake_prompt */ |
| "", /* dmode_str */ |
| "", /* dmode_prompt */ |
| "ATD%s\015", /* dial_str */ |
| 0, /* dial_rate */ |
| 1100, /* esc_time */ |
| 43, /* esc_char */ |
| "ATQ0H\015", /* hup_str */ |
| "AT\\Q3\015", /* hwfc_str */ |
| "AT\\Q1\\X0\015", /* swfc_str */ |
| "AT\\Q0\015", /* nofc_str */ |
| "AT\\N3\015", /* ec_on_str */ |
| "AT\\N0\015", /* ec_off_str */ |
| "AT%C3\015", /* dc_on_str */ |
| "AT%C0\015", /* dc_off_str */ |
| "ATS0=1\015", /* aa_on_str */ |
| "ATS0=0\015", /* aa_off_str */ |
| "\\J0", /* sb_on_str (?) */ |
| "", /* sb_off_str */ |
| "ATM1\015", /* sp_on_str */ |
| "ATM0\015", /* sp_off_str */ |
| "ATL1\015", /* vol1_str */ |
| "ATL2\015", /* vol2_str */ |
| "ATL3\015", /* vol3_str */ |
| "ATX3\015", /* ignoredt */ |
| "", /* ini2 */ |
| 57600L, /* max_speed */ |
| CKD_AT|CKD_SB|CKD_EC|CKD_DC|CKD_HW|CKD_SW, /* capas */ |
| getok /* ok_fn */ |
| }; |
| |
| static |
| MDMINF ULINKV250 = /* MicroLink V.250 */ |
| { /* 56Kflex, V.90; V.250 command set */ |
| "ELSA MicroLink 56K V.250", /* ELSA GmbH, Aachen */ |
| "ATP\015", /* pulse command */ |
| "ATT\015", /* tone command */ |
| 35, /* dial_time */ |
| ",", /* pause_chars */ |
| 2, /* pause_time */ |
| #ifdef OS2 |
| /* \D0 = DSR & CTS always on but hwfc overrides on CTS. */ |
| "ATQ0E1V1X4&S0\\D0&C1&D2\015", /* wake_str */ |
| #else |
| #ifdef VMS |
| "ATQ0X4&S1\015", /* wake_str */ |
| #else |
|