home *** CD-ROM | disk | FTP | other *** search
/ Network Support Encyclopedia 96-1 / novell-nsepro-1996-1-cd2.iso / download / netware / mdf178.exe / MHSMDF.TXT < prev    next >
Text File  |  1993-07-06  |  58KB  |  1,365 lines

  1.               How to write a MHS Modem Definition File
  2.                   Messaging Division, Novell, Inc.
  3.                            June 23, 1993
  4.  
  5.   This document is intended to provide documentation on how to write
  6. a Modem Definition File (MDF) for the MHS 2.x products, which includes
  7. NetWare Global MHS (GMHS). The intended audience is anyone who needs to use a modem with these products and no MDF is available for that modem.
  8.  
  9. Novell, Inc. makes no representations or warranties with respect
  10. to the contents or use of this manual, and specifically disclaims
  11. any express or implied warranties of merchantability or fitness for
  12. any particular purpose. Further, Novell, Inc. reserves the right
  13. to revise this manual and to make changes to its content, at any
  14. time, without obligation to notify any person or entity of such
  15. revisions or changes.
  16.  
  17. Further, Novell, Inc. makes no representations or warranties with
  18. respect to any NetWare software, and specifically disclaims any
  19. express or implied warranties of merchantability or fitness for any
  20. particular purpose. Further, Novell, Inc. reserves the right to
  21. make changes to any and all parts of NetWare software, at any time,
  22. without any obligation to notify any person or entity of such
  23. changes.
  24.  
  25. Trademarks
  26.  
  27. Novell, NetWare and the N design are registered trademarks and
  28. Global MHS, NetWare Global MHS, NetWare MHS, NetWare Remote MHS,
  29. and Remote MHS are trademarks of Novell, Inc.
  30.  
  31. Hayes is a registered trademark of Hayes Microcomputer Products,
  32. Inc.
  33.  
  34. Copyright (c) 1993 Novell, Inc. All rights reserved. No part of
  35. this publication may be reproduced, photocopied, stored on a
  36. retrieval system, or transmitted without the express written
  37. consent of the publisher.
  38.  
  39.  
  40. 1.0 Introduction
  41.  
  42.   The Message Handling System (MHS) is a set of products that pickup
  43. and deliver messages for users or applications or other messaging
  44. services. These MHS products can define MHS hosts and MHS users
  45. which can communicate with each other over phone lines, using
  46. asynchronous serial ports and modems.
  47.  
  48.   MHS uses asynchronous, RS-232C serial ports to connect to modems.
  49. GMHS uses the Asynchronous Input/Output (AIO) NLMs to control the
  50. serial ports; RMHS uses an internal serial driver. AIO serial ports
  51. can be COMx type ports or on intelligent multi-port serial adaptors;
  52. RMHS serial ports can be only COMx type ports. MHS uses an internal
  53. modem driver to control modems.
  54.  
  55.   MHS must configure, reset, initialize, dial, answer, connect, and
  56. hangup modems, both in dial up and leased line environments. Since
  57. there are many manufacturers and models of modems, with different
  58. features and command sets, MHS needs a mechanism for interfacing with
  59. each type of modem. This mechanism is the MDF and it works with the
  60. internal MHS modem driver to control each type of modem. Refer to
  61. section 2 for details on the MDF format and section 3 for details on
  62. MDF usage.
  63.  
  64.   Although each MHS product supplies a variety of MDFs for a variety
  65. of modem types, not all modem types can be defined by these supplied
  66. MDFs. Additional MDFs will have to be created by third parties, using
  67. this document and any ASCII-capable editor. Refer to appendix A for
  68. general guidelines on creating a MDF, appendices B-D for examples of
  69. MDFs, and appendices E-F for debugging MDFs.
  70.  
  71.  
  72. 2.0 Format
  73.  
  74.   A MDF is an ASCII file that defines a modem type using keywords
  75. and their values. A MDF keyword and its value is the definition of
  76. how MHS will control a modem for a specific task. There are 60
  77. pre-defined MDF keywords, some for defining modem capabilities,
  78. some for defining modem commands, and others for defining modem
  79. responses.
  80.  
  81.   A MDF keyword is a pre-defined ASCII string, with or without
  82. spaces, that begins each line in a MDF. An equal sign separates the
  83. MDF keyword from its value. A value can be a single character, word,
  84. number or it can be multiple characters, words, numbers or it can be
  85. nothing. Some characters, words, and numbers are pre-defined. A value
  86. is ended by carriage return, line feed(s).
  87.  
  88.   For single character or string values, ASCII control characters can
  89. be represented by special two character sequences. These sequences
  90. always begin with the ^ character, following the commonly used
  91. representation for ASCII control characters. For example, ^J is the
  92. representation for line feed and ^M is the representation for
  93. carriage return.
  94.  
  95.   There is no restriction on the order of MDF keywords in a MDF file.
  96. If the MDF keyword is irrelevant for defining how to control this
  97. modem type, the MDF keyword can be left out of the MDF. If the MDF
  98. keyword's default value already defines how to control this modem
  99. type, the MDF keyword can be left out of the MDF. MDF keywords, and
  100. pre-defined value strings, are treated as case insensitive. A
  101. semicolon as the first character of a line indicates that this line
  102. is a comment line and will be ignored.
  103.  
  104. 2.1. MDF DESCRIPTION
  105.  
  106.   This keyword is used to describe the modem(s) supported by this
  107. modem definition. The description is limited to 60 characters and
  108. there is no default description. Currently, the description is not
  109. used or displayed but should be included for documentation purposes.
  110.  
  111. 2.2. MDF TYPE
  112.  
  113.   This keyword is used to designate Hayes type command and response
  114. processing, i.e., send an ASCII command string and wait for a
  115. pre-defined ASCII response string. The default value is HAYES. This
  116. keyword is used to validate a MDF as compatible with an MHS product.
  117. If an incompatible type is found, MHS reports an error and will not
  118. use this MDF. Currently, the only compatible value is HAYES.
  119.  
  120.    Although MHS will use the default value if this keyword is not
  121. found in the MDF, this keyword should be included in each MDF as
  122. insurance against inappropriate behaviour by future versions of MHS
  123. products.
  124.  
  125.  
  126. 2.3. MDF VERSION
  127.  
  128.   This keyword is used to assign a version to a MDF. Its value can
  129. be from 1 to 65,535. The default value is currently 2. This keyword
  130. is used to validate a MDF as compatible with an MHS product. If
  131. an incompatible version is found, MHS reports an error and will not
  132. use this MDF. The compatible values for current MHS products are 1
  133. and 2; 1 was a beta version value that is no longer used.
  134.  
  135.    Although MHS will use the default value if this keyword is not
  136. found in the MDF, this keyword should be included in each MDF as
  137. insurance against inappropriate behaviour by future versions of MHS
  138. products.
  139.  
  140. 2.4. FLOW CONTROL
  141.  
  142.   This keyword is used to designate that this modem supports (or does
  143. not support) the standard RTS/CTS hardware signalling for flow control
  144. with this modem. Its value can be TRUE (support) or FALSE (not
  145. support). The default value is FALSE.
  146.  
  147.   During modem protocol connections (see below), data transfers can
  148. be temporarily disabled, by toggling CTS or RTS, to avoid data loss
  149. when buffers become full due to resending of corrupted data or
  150. expansion of compressed data. MHS enables flow control after receiving
  151. a modem CONNECTion response (see below) and before initiating a modem
  152. hangup (see below). MHS disables flow control while sending modem
  153. commands and receiving modem responses.
  154.  
  155. 2.5. MODEM SPEEDS
  156.  
  157.   This keyword is used to specify the modem speeds that can be used
  158. with this modem. It is used during configuration of a MHS product
  159. to check for errors, e.g., a 2400 bps modem should not be configured
  160. for 9600 bps. Each speed must be separated by a comma. The default
  161. is 300, 1200, 2400, 9600.
  162.  
  163.   There is no restriction on the order of speeds. If an unsupported
  164. speed is found, MHS reports an error, stops processing the speed
  165. values, but retains the already processed speeds. The supported
  166. speeds are 300, 1200, 2400, 9600, and 14400.
  167.  
  168. 2.6. MAX SPEED
  169.  
  170.   This keyword is used to specify the maximum serial port speed
  171. that will be attempted when communicating to this modem. Its value
  172. can be any serial speed, from 50 to 115200. It is also used during
  173. configuration of a MHS product to check for errors, e.g., older 2400
  174. bps modems may not support speeds higher than 2400. The default value
  175. is 2400.
  176.  
  177.   If no serial speed is specified during configuration, MHS will
  178. use either this value or the highest serial speed supported by the
  179. driver/hardware attached to this modem, whichever is smaller. For
  180. modem protocol connections (see below), it is important to have the
  181. serial speed greater than the modem speed, for better throughput.
  182.  
  183.  
  184. 2.7. ADJUST SPEED
  185.  
  186.   This keyword is used to designate that this modem supports (or
  187. does not support) the adjustment of the serial speed after the modem
  188. CONNECTion response. Its value can be TRUE (support) or FALSE (not
  189. support). The default value is TRUE.
  190.  
  191.   However, if the PROTOCOL ON keyword is specified and used, this
  192. keyword is ignored because the serial speed is assumed to be fixed,
  193. i.e., the serial speed should not be changed after the modem
  194. CONNECTion response.
  195.  
  196. 2.8. COMMAND BEGIN
  197.  
  198.   This keyword is used to specify the beginning of command strings
  199. that are sent to this modem. Its value can be any sequence of ASCII
  200. characters, including control characters, with a total length not
  201. exceeding 10 characters. The default value is AT.
  202.  
  203. 2.9. COMMAND END
  204.  
  205.   This keyword is used to specify the end of command strings that
  206. are sent to this modem. Its value can be any sequence of ASCII
  207. characters, including control characters, with a total length not
  208. exceeding 2 characters. The default value is ^M, i.e., carriage
  209. return.
  210.  
  211. 2.10. MAX COMMAND
  212.  
  213.   This keyword is used to specify the length of the maximum command
  214. string that can be sent to this modem. This length does not include
  215. the COMMAND BEGIN and the COMMAND END strings. Its value can be from
  216. 1 to 255. The default value is 40.
  217.  
  218. 2.11. RESET
  219.  
  220.   This keyword is used to specify the command string, not including
  221. COMMAND BEGIN and COMMAND END, that will be sent to this modem to
  222. reset it. This command is sent prior to initialization and after
  223. hangup. Its value can be any sequence of ASCII characters, including
  224. control characters, with a total length not exceeding 40 characters.
  225. The default value is Z.
  226.  
  227. 2.12. RESET TIME
  228.  
  229.   This keyword is used to specify the amount of time, in seconds, to
  230. wait for a modem response after sending a RESET command. Its value
  231. can be from 3 to 30 seconds. The default value is 4 seconds.
  232.  
  233.  
  234. 2.13. INIT (first)
  235.  
  236.   This keyword is used to specify the command string, not including
  237. COMMAND BEGIN and COMMAND END, that will be sent to this modem to
  238. initialize it. No valid modem response is required. This command is
  239. sent after the RESET command. Its value can be any sequence of ASCII
  240. characters, including control characters, with a total length not
  241. exceeding 40 characters. The default value is
  242. EQV1X4S0=0S2=43S3=13S4=10S7=254S12=50.
  243.  
  244. 2.14. INIT (second)
  245.  
  246.   This keyword is used to specify the command string, not including
  247. COMMAND BEGIN and COMMAND END, that will be sent to this modem to
  248. continue initializing it. A valid modem response is required. This
  249. command is sent after the first INIT command. Its value can be any
  250. sequence of ASCII characters, including control characters, with a
  251. total length not exceeding 40 characters. There is no default value.
  252.  
  253.   If this modem does not require the serial speed to be adjusted
  254. after a modem CONNECTion response, i.e., ADJUST SPEED is FALSE, then
  255. the commands to maintain a fixed serial speed should be specified
  256. in the second or third INIT strings. For modem protocol connections
  257. (see below) and for mismatched speeds between modems, it is important
  258. to have the serial speed greater than the modem speed, for better
  259. throughput.
  260.  
  261. 2.15. INIT (third)
  262.  
  263.   This keyword is used to specify the command string, not including
  264. COMMAND BEGIN and COMMAND END, that will be sent to this modem to
  265. continue initializing it. A valid modem response is required. This
  266. command is sent after the second INIT command. Its value can be any
  267. sequence of ASCII characters, including control characters, with a
  268. total length not exceeding 40 characters. There is no default value.
  269.  
  270. 2.16. SPEAKER ON
  271.  
  272.   This keyword is used to specify the command string, not including
  273. COMMAND BEGIN and COMMAND END, that will be sent to this modem to
  274. turn the modem speaker on. No valid modem response is required. This
  275. command is sent after the last INIT command. Its value can be any
  276. sequence of ASCII characters, including control characters, with a
  277. total length not exceeding 40 characters. The default value is M1.
  278.  
  279. 2.17. SPEAKER OFF
  280.  
  281.   This keyword is used to specify the command string, not including
  282. COMMAND BEGIN and COMMAND END, that will be sent to this modem to
  283. turn the modem speaker off. No valid modem response is required. This
  284. command is sent after the last INIT command. Its value can be any
  285. sequence of ASCII characters, including control characters, with a
  286. total length not exceeding 40 characters. The default value is M.
  287.  
  288.  
  289. 2.18. PROTOCOL ON
  290.  
  291.   This keyword is used to specify the command string, not including
  292. COMMAND BEGIN and COMMAND END, that will be sent to this modem to
  293. attempt a modem protocol (error-control and data compression)
  294. connection. Modem protocol connections are only attempted if specified
  295. by the MHS configuration. The remote modem will also have to attempt a
  296. modem protocol connection for this modem to actually establish a modem
  297. protocol connection. No valid modem response is required.
  298.  
  299.   Its value can be any sequence of ASCII characters, including
  300. control characters, with a total length not exceeding 40 characters.
  301. There is no default value because not all modems support this type of
  302. functionality.
  303.  
  304. 2.19. PROTOCOL OFF
  305.  
  306.   This keyword is used to specify the command string, not including
  307. COMMAND BEGIN and COMMAND END, that will be sent to this modem to
  308. not attempt a modem protocol (error-control and data compression)
  309. connection. No valid modem response is required.
  310.  
  311.   Its value can be any sequence of ASCII characters, including
  312. control characters, with a total length not exceeding 40 characters.
  313. There is no default value because not all modems support this type
  314. of functionality.
  315.  
  316. 2.20. LEASED DIAL
  317.  
  318.   This keyword is used to specify the command string, not including
  319. COMMAND BEGIN and COMMAND END, that will be sent to this modem to
  320. select leased line, dial operation. The remote modem will have to
  321. select leased line, answer operation for this modem to go on-line.
  322. Leased line operation is only selected if specified by the MHS
  323. configuration. A valid modem response is required, eventually.
  324.  
  325.   Its value can be any sequence of ASCII characters, including
  326. control characters, with a total length not exceeding 40 characters.
  327. There is no default value because not all modems support this type
  328. of functionality. If this keyword is specified, the LEASED ANSWER
  329. keyword must also be specified.
  330.  
  331. 2.21. LEASED ANSWER
  332.  
  333.   This keyword is used to specify the command string, not including
  334. COMMAND BEGIN and COMMAND END, that will be sent to this modem to
  335. select leased line, answer operation. The remote modem will have to
  336. select leased line, dial operation for this modem to go on-line.
  337. Leased line operation is only selected if specified by the MHS
  338. configuration. A valid modem response is required, eventually.
  339.  
  340.   Its value can be any sequence of ASCII characters, including
  341. control characters, with a total length not exceeding 40 characters.
  342. There is no default value because not all modems support this type
  343. of functionality. If this keyword is specified, the LEASED DIAL
  344. keyword must also be specified.
  345.  
  346.  
  347. 2.22. LEASED EXTERNAL
  348.  
  349.   This keyword is used to designate that this modem does not require
  350. any modem commands to be sent to it to select leased line operation,
  351. i.e., this is done externally, usually with physical switches. Its
  352. value can be TRUE (external, don't send modem commands) or FALSE (not
  353. external, send modem commands). The default is FALSE.
  354.  
  355.   The LEASED DIAL and LEASED ANSWER keywords should still be
  356. specified, but with no values, to indicate that this modem supports
  357. leased line operation.
  358.  
  359. 2.23. LEASED RESPONSE
  360.  
  361.   This keyword is used to designate that this modem does not return
  362. any command responses when leased line operation is selected or when
  363. the modems have successfully made a leased line connection. Instead,
  364. a successful leased line connection is indicated by an active DCD
  365. signal. Its value can be TRUE (response expected) or FALSE (no
  366. response). The default is TRUE.
  367.  
  368.   The LEASED DIAL and LEASED ANSWER keywords should still be
  369. specified, but with no values, to indicate that this modem supports
  370. leased line operation.
  371.  
  372. 2.24. DIAL TONE
  373.  
  374.   This keyword is used to specify the command string, not including
  375. COMMAND BEGIN and COMMAND END, that will be sent to this modem to
  376. tone dial a telephone number. The telephone number is specified by
  377. the MHS configuration. Valid modem response(s) are required, ending
  378. with one of the CONNECT responses (see below).
  379.  
  380.   Its value can be any sequence of ASCII characters, including
  381. control characters, with a total length not exceeding 40 characters.
  382. The default value is DT.
  383.  
  384. 2.25. DIAL PULSE
  385.  
  386.   This keyword is used to specify the command string, not including
  387. the COMMAND BEGIN and COMMAND END, that will be sent to this modem to
  388. pulse dial a telephone number. The telephone number is specified by
  389. the MHS configuration. Valid modem response(s) are required, ending
  390. with one of the CONNECT responses (see below).
  391.  
  392.   Its value can be any sequence of ASCII characters, including
  393. control characters, with a total length not exceeding 40 characters.
  394. The default value is DP.
  395.  
  396.  
  397. 2.26. DIAL ESCAPE
  398.  
  399.   This keyword is used to specify the character that will be added to
  400. the end of a DIAL TONE/PULSE command when breaking up a phone number
  401. that exceeds the MAX COMMAND length. It is placed at the end of a
  402. DIAL TONE/PULSE command string, just before the COMMAND END, to
  403. instruct this modem to return to the command state immediately after
  404. dialing, without breaking the connection. This allows for another
  405. command string to follow, with the remaining phone number.
  406.  
  407.   Its value can be any sequence of ASCII characters, including
  408. control characters, with a total length not exceeding 40 characters.
  409. The default value is a semicolon.
  410.  
  411. 2.27. DIAL 300
  412.  
  413.   This keyword is used to specify the command string, not including
  414. COMMAND BEGIN and COMMAND END, that will be sent to this modem to
  415. attempt to initiate a connection at 300 bps. A valid modem response
  416. is required. This command is sent before the DIAL TONE/PULSE
  417. commands.
  418.  
  419.   Its value can be any sequence of ASCII characters, including
  420. control characters, with a total length not exceeding 40 characters.
  421. There is no default value because not all modems support this type of
  422. functionality.
  423.  
  424. 2.28. DIAL 1200
  425.  
  426.   This keyword is used to specify the command string, not including
  427. COMMAND BEGIN and COMMAND END, that will be sent to this modem to
  428. attempt to initiate a connection at 1200 bps. A valid modem response
  429. is required. This command is sent before the DIAL TONE/PULSE
  430. commands.
  431.  
  432.   Its value can be any sequence of ASCII characters, including
  433. control characters, with a total length not exceeding 40 characters.
  434. There is no default value because not all modems support this type
  435. of functionality.
  436.  
  437. 2.29. DIAL 2400
  438.  
  439.   This keyword is used to specify the command string, not including
  440. COMMAND BEGIN and COMMAND END, that will be sent to this modem to
  441. attempt to initiate a connection at 2400 bps. A valid modem response
  442. is required. This command is sent before the DIAL TONE/PULSE
  443. commands.
  444.  
  445.   Its value can be any sequence of ASCII characters, including
  446. control characters, with a total length not exceeding 40 characters.
  447. There is no default value because not all modems support this type
  448. of functionality.
  449.  
  450.  
  451. 2.30. DIAL 9600
  452.  
  453.   This keyword is used to specify the command string, not including
  454. COMMAND BEGIN and COMMAND END, that will be sent to this modem to
  455. attempt to initiate a connection at 9600 bps. A valid modem response
  456. is required. This command is sent before the DIAL TONE/PULSE
  457. commands.
  458.  
  459.   Its value can be any sequence of ASCII characters, including
  460. control characters, with a total length not exceeding 40 characters.
  461. There is no default value because not all modems support this type
  462. of functionality.
  463.  
  464. 2.31. DIAL 14400
  465.  
  466.   This keyword is used to specify the command string, not including
  467. COMMAND BEGIN and COMMAND END, that will be sent to this modem to
  468. attempt to initiate a connection at 14400 bps. A valid modem response
  469. is required. This command is sent before the DIAL TONE/PULSE
  470. commands.
  471.  
  472.   Its value can be any sequence of ASCII characters, including
  473. control characters, with a total length not exceeding 40 characters.
  474. There is no default value because not all modems support this type
  475. of functionality.
  476.  
  477. 2.32. ANSWER
  478.  
  479.   This keyword is used to specify the command string, not including
  480. COMMAND BEGIN and COMMAND END, that will be sent to this modem to
  481. answer a telephone call. Valid modem response(s) are required, ending
  482. with one of the CONNECT responses (see below). This command is sent
  483. after receiving a RING response.
  484.  
  485.   Its value can be any sequence of ASCII characters, including
  486. control characters, with a total length not exceeding 40 characters.
  487. The default value is A.
  488.  
  489. 2.33. ESCAPE
  490.  
  491.   This keyword is used to specify the command string, not including
  492. COMMAND BEGIN and COMMAND END, that will be sent to this modem to
  493. return it to the command state. A valid modem response is not
  494. required. This command is sent before the HANGUP command.
  495.  
  496.   Its value can be any sequence of ASCII characters, including
  497. control characters, with a total length not exceeding 40 characters.
  498. The default value is +++.
  499.  
  500. 2.34. ESCAPE TIME
  501.  
  502.   This keyword is used to specify the amount of time, in seconds, to
  503. wait before and after sending the ESCAPE command. Its value can be
  504. from 1 to 30 seconds. The default value is 1 second.
  505.  
  506.  
  507. 2.35. HANGUP
  508.  
  509.   This keyword is used to specify the command string, not including
  510. COMMAND BEGIN and COMMAND END, that will be sent to this modem to
  511. hangup a telephone call. A valid modem response is not required. This
  512. command is sent after the ESCAPE command.
  513.  
  514.   Its value can be any sequence of ASCII characters, including
  515. control characters, with a total length not exceeding 40 characters.
  516. The default value is H.
  517.  
  518. 2.36. HANGUP TIME
  519.  
  520.   This keyword is used to specify the amount of time, in seconds, to
  521. wait for a modem response after sending a HANGUP command. Its value
  522. can be from 2 to 30 seconds. The default value is 10 seconds.
  523.  
  524. 2.37. DTR TIME
  525.  
  526.   This keyword is used to specify the amount of time, in seconds,
  527. to drop the DTR signal after sending the HANGUP command. Dropping the
  528. DTR signal, for the correct amount of time, is an attempt to add more
  529. reliability to modem hangup. Its value can be from 1 to 3 seconds.
  530. The default value is 2 second.
  531.  
  532. 2.38. VERBAL RESPONSE
  533.  
  534.   This keyword is used to designate that this modem will return
  535. command responses that are verbal versus numeric. Its value can be
  536. TRUE (verbal) or FALSE (numeric). The default value is TRUE.
  537.  
  538. 2.39. RESPONSE BEGIN
  539.  
  540.   This keyword is used to specify the beginning of command responses
  541. that are received from this modem. Its value can be any sequence of
  542. ASCII characters, including control characters, with a total length
  543. not exceeding 2 characters. The default value is ^M^J, i.e., carriage
  544. return and line feed.
  545.  
  546. 2.40. RESPONSE END
  547.  
  548.   This keyword is used to specify the end of command responses that
  549. are received from this modem. Its value can be any sequence of ASCII
  550. characters, including control characters, with a total length not
  551. exceeding 2 characters. The default value is ^M^J, i.e., carriage
  552. return and line feed.
  553.  
  554. 2.41. RESPONSE TIME
  555.  
  556.   This keyword is used to specify the amount of time, in seconds, to
  557. wait for a modem response after sending a command string. This is the
  558. default response time for commands that do not have pre-defined
  559. response time keywords. Its value can be from 2 to 30 seconds. The
  560. default value is 3 seconds.
  561.  
  562.  
  563. 2.42. OK
  564.  
  565.   This keyword is used to specify the command response that indicates
  566. that a command or command string was executed by this modem. This
  567. response will be the result of a successful RESET, INIT, PROTOCOL
  568. ON/OFF, DIAL ESCAPE, DIAL 300/1200/2400/9600/14400, or ESCAPE
  569. commands.
  570.  
  571.   Its value can be any sequence of ASCII characters, including
  572. control characters, with a total length not exceeding 25 characters.
  573. The default value is OK.
  574.  
  575. 2.43. RING
  576.  
  577.   This keyword is used to specify the command response that indicates
  578. that this modem has detected a ring signal. It will only be used
  579. after completing reset and all initializations, for non-leased line
  580. operations, when MHS is monitoring for incoming calls.
  581.  
  582.   Its value can be any sequence of ASCII characters, including
  583. control characters, with a total length not exceeding 25 characters.
  584. The default value is RING.
  585.  
  586. 2.44. RINGING
  587.  
  588.   This keyword is also used to specify the command response that
  589. indicates that this modem has detected a ring signal. However, unlike
  590. the RING command response above, this command response is ignored.
  591.  
  592.   Its value can be any sequence of ASCII characters, including
  593. control characters, with a total length not exceeding 25 characters.
  594. The default value is RINGING.
  595.  
  596. 2.45. NO CARRIER
  597.  
  598.   This keyword is used to specify the command response that indicates
  599. that no carrier signal was detected by this modem, or that the
  600. carrier signal was lost. This response could be the result of an
  601. unsuccessful DIAL TONE/PULSE, ANSWER, or LEASED DIAL/ANSWER command
  602. or a successful HANGUP command.
  603.  
  604.   Its value can be any sequence of ASCII characters, including
  605. control characters, with a total length not exceeding 25 characters.
  606. The default value is NO CARRIER.
  607.  
  608. 2.46. ERROR
  609.  
  610.   This keyword is used to specify the command response that indicates
  611. that this modem has received an invalid command or there was an error
  612. in the command string. This response is not expected by MHS, which if
  613. received when a modem response is required, will abort the connection.
  614.  
  615.   Its value can be any sequence of ASCII characters, including
  616. control characters, with a total length not exceeding 25 characters.
  617. The default value is ERROR.
  618.  
  619.  
  620. 2.47. NO DIALTONE
  621.  
  622.   This keyword is used to specify the command response that indicates
  623. that no dial tone was detected when this modem went off hook. This
  624. response could be the result of an unsuccessful DIAL TONE/PULSE or
  625. ANSWER command.
  626.  
  627.   Its value can be any sequence of ASCII characters, including
  628. control characters, with a total length not exceeding 25 characters.
  629. The default value is NO DIALTONE.
  630.  
  631. 2.48. BUSY
  632.  
  633.   This keyword is used to specify the command response that indicates
  634. that this modem detected a busy signal when it attempted to connect
  635. with the remote modem at the telephone number dialed. This response
  636. could be the result of an unsuccessful DIAL TONE/PULSE command.
  637.  
  638.   Its value can be any sequence of ASCII characters, including
  639. control characters, with a total length not exceeding 25 characters.
  640. The default value is BUSY.
  641.  
  642. 2.49. NO ANSWER
  643.  
  644.   This keyword is used to specify the command response that indicates
  645. that no silence was detected by this modem when dialing a system not
  646. providing a dial tone. This response is the result of including the
  647. @ dial modifier in the telephone number of an unsuccessful DIAL
  648. TONE/PULSE command.
  649.  
  650.   Its value can be any sequence of ASCII characters, including
  651. control characters, with a total length not exceeding 25 characters.
  652. The default value is NO ANSWER.
  653.  
  654. 2.50. VOICE
  655.  
  656.   This keyword is used to specify the command response that indicates
  657. that this modem detected a (human) voice when it attempted to connect
  658. with the remote modem at the telephone number dialed. This response
  659. could be the result of an unsuccessful DIAL TONE/PULSE command.
  660.  
  661.   Its value can be any sequence of ASCII characters, including
  662. control characters, with a total length not exceeding 25 characters.
  663. The default value is VOICE.
  664.  
  665.  
  666. 2.51. CARRIER
  667.  
  668.   This keyword is used to specify the command response that indicates
  669. that this modem detected a carrier signal when it attempted to make
  670. a modem protocol connection. This response is the result of sending a
  671. DIAL TONE/PULSE, ANSWER, or LEASED DIAL/ANSWER command. Although this
  672. response is currently only used for informational purposes, its
  673. detection and reporting allows for debugging improper MHS
  674. configurations and incorrect MDF command strings.
  675.  
  676.   Its value can be any sequence of ASCII characters, including
  677. control characters, with a total length not exceeding 25 characters.
  678. The default value is CARRIER.
  679.  
  680. 2.52. PROTOCOL A
  681.  
  682.   This keyword is used to specify the command response that indicates
  683. that this modem successfully negotiated a modem protocol connection.
  684. This response is the result of sending a DIAL TONE/PULSE, ANSWER, or
  685. LEASED DIAL/ANSWER command. Although this response is currently only
  686. used for informational purposes, its detection and reporting allows
  687. for debugging improper MHS configurations and incorrect MDF command
  688. strings.
  689.  
  690.   Its value can be any sequence of ASCII characters, including
  691. control characters, with a total length not exceeding 25 characters.
  692. The default value is PROTOCOL: LAP-M.
  693.  
  694. 2.53. PROTOCOL B
  695.  
  696.   This keyword is used to specify the command response that indicates
  697. that this modem successfully negotiated a modem protocol connection.
  698. This response is the result of sending a DIAL TONE/PULSE, ANSWER, or
  699. LEASED DIAL/ANSWER command. Although this response is currently only
  700. used for informational purposes, its detection and reporting allows
  701. for debugging improper MHS configurations and incorrect MDF command
  702. strings.
  703.  
  704.   Its value can be any sequence of ASCII characters, including
  705. control characters, with a total length not exceeding 25 characters.
  706. The default value is /ARQ.
  707.  
  708. 2.54. COMPRESSION
  709.  
  710.   This keyword is used to specify the command response that indicates
  711. that this modem successfully negotiated a modem data compression
  712. connection. This response is the result of sending a DIAL TONE/PULSE,
  713. ANSWER, or LEASED DIAL/ANSWER command. Although this response is
  714. currently only used for informational purposes, its detection and
  715. reporting allows for debugging improper MHS configurations and
  716. incorrect MDF command strings.
  717.  
  718.   Its value can be any sequence of ASCII characters, including
  719. control characters, with a total length not exceeding 25 characters.
  720. The default value is COMPRESSION.
  721.  
  722.  
  723. 2.55. CONNECT
  724.  
  725.   This keyword is used to specify the command response that
  726. indicates that this modem successfully completed a connection with
  727. a remote modem. This response is the result of sending a DIAL
  728. TONE/PULSE, ANSWER, or LEASED DIAL/ANSWER command. It is used
  729. in conjunction with the CONNECT 300/1200/2400/9600/14400 responses
  730. (see below) to determine the modem connection speed.
  731.  
  732.   Its value can be any sequence of ASCII characters, including
  733. control characters, with a total length not exceeding 25 characters.
  734. The default value is CONNECT.
  735.  
  736. 2.56. CONNECT 300
  737.  
  738.   This keyword is used to specify the command response that indicates
  739. that this modem successfully completed a 300 bps connection with a
  740. remote modem. It is used in conjunction with the CONNECT response to
  741. indicate that a 300 bps serial speed is required if no modem protocol
  742. connection was attempted and ADJUST SPEED is TRUE.
  743.  
  744.   Its value can be any sequence of ASCII characters, including
  745. control characters, with a total length not exceeding 25 characters.
  746. The default value is nothing, i.e., no characters.
  747.  
  748. 2.57. CONNECT 1200
  749.  
  750.   This keyword is used to specify the command response that indicates
  751. that this modem successfully completed a 1200 bps connection with a
  752. remote modem. It is used in conjunction with the CONNECT response
  753. to indicate that a 1200 bps serial speed is required if no modem
  754. protocol connection was attempted and ADJUST SPEED is TRUE.
  755.  
  756.   Its value can be any sequence of ASCII characters, including
  757. control characters, with a total length not exceeding 25 characters.
  758. The default value is 1200.
  759.  
  760. 2.58. CONNECT 2400
  761.  
  762.   This keyword is used to specify the command response that indicates
  763. that this modem successfully completed a 2400 bps connection with a
  764. remote modem. It is used in conjunction with the CONNECT response
  765. to indicate that a 2400 bps serial speed is required if no modem
  766. protocol connection was attempted and ADJUST SPEED is TRUE.
  767.  
  768.   Its value can be any sequence of ASCII characters, including
  769. control characters, with a total length not exceeding 25 characters.
  770. The default value is 2400.
  771.  
  772.  
  773. 2.59. CONNECT 9600
  774.  
  775.   This keyword is used to specify the command response that indicates
  776. that this modem successfully completed a 9600 bps connection with a
  777. remote modem. It is used in conjunction with the CONNECT response
  778. to indicate that a 9600 bps serial speed is required if no modem
  779. protocol connection was attempted and ADJUST SPEED is TRUE.
  780.  
  781.   Its value can be any sequence of ASCII characters, including
  782. control characters, with a total length not exceeding 25 characters.
  783. The default value is 9600.
  784.  
  785. 2.60. CONNECT 14400
  786.  
  787.   This keyword is used to specify the command response that indicates
  788. that this modem successfully completed a 14400 bps connection with a
  789. remote modem. It is used in conjunction with the CONNECT response
  790. to indicate that a 14400 bps serial speed is required if no modem
  791. protocol connection was attempted and ADJUST SPEED is TRUE.
  792.  
  793.   Its value can be any sequence of ASCII characters, including
  794. control characters, with a total length not exceeding 25 characters.
  795. The default value is 14400.
  796.  
  797.  
  798. 3.0 Usage
  799.  
  800.   MDFs are used by the MHS products when they are referenced as the
  801. Modem Type in the MHS configuration. MHS uses the MDF to configure,
  802. reset, initialize, dial, answer, connect, and hangup modems, both in
  803. dial up and leased line environments. In the case of GMHS, MDFs can
  804. be referenced by more than one serial port.
  805.  
  806.   The information in a MDF is used in various stages of MHS execution
  807. and for different MHS configurations. These stages can be divided
  808. into MDF initialization, MDF verification, serial port initialization,
  809. modem initialization, modem dialing, modem answering, modem
  810. connection, leased line connection, and modem hangup. GMHS also uses
  811. MDFs slightly differently from RMHS. The following sections will
  812. present these stages and these differences.
  813.  
  814. 3.1 MDF Initialization
  815.  
  816.   When the MDF is first referenced, it is processed, i.e., the MDF is
  817. is opened, memory is allocated and initialized with the default MDF
  818. keyword values, MDF keywords are read and their values are checked and
  819. extracted, and then the MDF is closed. If an error occurs due to an
  820. invalid MDF keyword and/or value, an error may be logged and displayed
  821. and the MDF keyword and/or value will be ignored.
  822.  
  823. 3.2 MDF Verification
  824.  
  825.   MDFs can be used for validation of modem configuration. GMHS
  826. validates the following information using the MDF:
  827.  
  828.   o Is the Modem Speed valid for this modem, i.e., is it in the list
  829.     of MODEM SPEEDS? If this MDF keyword is not specified, only speeds
  830.     of 300, 1200, 2400, and 9600 are allowed.
  831.  
  832.   o If configured for Yes, is Modem Negotiation valid for this modem,
  833.     i.e., are PROTOCOL ON and PROTOCOL OFF specified?
  834.  
  835.   o If configured for Yes, is Leased Line valid for this modem, i.e.,
  836.     are LEASED DIAL and LEASED ANSWER specified?
  837.  
  838.   o If Optional Modem Commands are specified, do they exceed the
  839.     MAX COMMAND length?
  840.  
  841.   RMHS does little to verify modem configurations; the only check is
  842. to verify that the configured speed does not exceed the MAX SPEED
  843. specified by the MDF. This condition is made unlikely by the RSETUP
  844. program, which only allows users to pick from a list of valid speeds.
  845.  
  846.  
  847. 3.3 Serial Port Initialization
  848.  
  849.   Both GMHS and RMHS initializes a serial port for 8 data bits, 1
  850. stop bit, no parity, the configured speed, and with RTS/CTS flow
  851. control disabled. The RTS and DTR signals are also raised. After a
  852. modem connection (see below), both GMHS and RMHS monitor for an
  853. active DCD signal from a modem, and if FLOW CONTROL is TRUE, also
  854. the CTS signal.
  855.  
  856.   The maximum data rate supported varies, depending on the type of
  857. serial port (COMx or intelligient multi-port serial adaptors), type
  858. of CPU, clock speed, etc. GMHS, which uses AIO, generally is limited
  859. to 2400 bps for COMx ports and 38.4K bps for serial adaptors. RMHS
  860. is limited to 115K bps.
  861.  
  862. 3.4 Modem Initialization
  863.  
  864.   The modem is only initialized and used when a connection to another
  865. MHS host is required. In the case of GMHS, if a modem is configured
  866. for a Modem Mode of Answer or Answer/Dial, the modem will be
  867. initialized and monitored immediately for incoming calls. Otherwise,
  868. modem initialization is done before modem dialing (see below).
  869.  
  870.   First, a check is made for a previous off-hook, active connection
  871. which may need to be hung up. Active connections are recognized by an
  872. active DCD signal, which causes modem hangup to be initiated (see
  873. below). Second, if Modem Negotiation is configured for Yes or ADJUST
  874. SPEED is FALSE, the serial speed will be changed to either the MAX
  875. SPEED or the maximum speed of the serial port, whichever is smaller.
  876.  
  877.   Third, the RESET command is sent, waiting up to RESET TIME + 1
  878. seconds for a response. If there is no response, the speed will be
  879. changed to 1200 bps and the RESET command resent. A valid response is
  880. not required to continue initialization. Fourth, the first INIT
  881. command is sent, waiting up to RESPONSE TIME seconds for a response.
  882. If there are no or error responses, this command is resent; a valid
  883. response is not required.
  884.  
  885.   At this point, the modem should be initialized properly and should
  886. respond properly. If there are second and third INIT commands, they
  887. are sent one at a time, waiting up to RESPONSE TIME seconds for each
  888. response. If there are no or error responses, these commands are
  889. resent. If there are still no or error responses, this modem will not
  890. be used for a configured delay and an error may be logged and
  891. displayed.
  892.  
  893.   If there are valid responses, initialization continues with the
  894. speaker and protocol commands. If Modem Speaker is configured for On,
  895. the SPEAKER ON command is sent; otherwise, the SPEAKER OFF command is
  896. sent. If Modem Negotiation is configured for Yes, the PROTOCOL ON
  897. command is then sent; otherwise, the PROTOCOL OFF command is then
  898. sent. There is a wait of RESPONSE TIME seconds for responses. If
  899. there are no or error responses, these commands are resent; valid
  900. responses for speaker and protocol commands are not required.
  901.  
  902.  
  903. 3.5 Modem Dialing
  904.  
  905.   When an outgoing call is requested, the following steps are
  906. followed. In the case of GMHS, if the modem was being monitored for
  907. incoming calls and the configuration of Modem Negotiation is
  908. different, either the PROTOCOL ON or PROTOCOL OFF command are sent.
  909. GMHS waits up to RESPONSE TIME seconds for responses. If there are no
  910. or error responses, GMHS resends these commands; a valid response is
  911. not required.
  912.  
  913.   If ADJUST SPEED is TRUE, GMHS will then change the serial speed to
  914. the configured or maximum speed of the serial port, whichever is
  915. smaller. If ADJUST SPEED is FALSE, GMHS will then send the DIAL
  916. command that corresponds to the configured or maximum speed of the
  917. serial port, whichever is smaller.
  918.  
  919.   In the case of RMHS, it will change the serial speed to the
  920. configured or maximum speed of the serial port, whichever is smaller.
  921. Both GMHS and RMHS will then send any Optional Modem Commands that
  922. have been configured, waiting up to RESPONSE TIME seconds for a
  923. response. If there are no or error responses, these commands are
  924. resent; a valid response is not required.
  925.  
  926.   Finally, the configured prefix and telephone number strings are
  927. combined with either the DIAL TONE or DIAL PULSE dial command,
  928. depending on the configuration. Both GMHS and RMHS will send this
  929. combined dial command string, waiting up to the configured time for
  930. a modem connection (see below). If the MAX COMMAND length is reached,
  931. the DIAL ESCAPE character is used to break up a prefix + telephone
  932. number string into multiple dial command strings, which are sent one
  933. after another, waiting for valid responses in between dial commands.
  934.  
  935.   RMHS also supports a configured calling card string, which is added
  936. after the prefix and telephone number strings, before sending the dial
  937. command. RMHS also supports two types of manual dialing, keyboard and
  938. telephone.
  939.  
  940.   For keyboard manual dialing, RMHS reads digits from the keyboard,
  941. sending them to the modem as separate dial commands, each command
  942. followed by the DIAL ESCAPE character. The user completes keyboard
  943. manual dialing by hitting the carriage return key, which sends a dial
  944. command with no number and no DIAL ESCAPE character. For telephone
  945. manual dialing, RMHS waits for the user to manually dial the
  946. telephone number using the telephone keypad and then hit the carriage
  947. return key, before sending a dial command with no number and no
  948. DIAL ESCAPE character.
  949.  
  950.  
  951. 3.6 Modem Answering
  952.  
  953.   GMHS supports incoming calls and therefore, must answer modems;
  954. RMHS does not support incoming calls. If a modem is configured for
  955. a Modem Mode of Answer or Answer/Dial, GMHS will continually monitor
  956. the modem for incoming calls, i.e., it will poll the modem for the
  957. RING response. When a RING response has been received, GMHS sends
  958. the ANSWER command, waiting up to 60 seconds for a modem connection
  959. (see below).
  960.  
  961.   If an unknown or error response is received, the serial port and
  962. modem will be reset and re-initialized and if successful, GMHS will
  963. again start polling for the RING response.
  964.  
  965. 3.7 Modem Connection
  966.  
  967.   After modem dial, modem answer, or leased line commands are sent,
  968. both GMHS and RMHS poll for a CONNECT response. Some modems will
  969. return informational responses before the CONNECT response, i.e.,
  970. RINGING, CARRIER, COMPRESSION, and PROTOCOL A/B. Some modems will
  971. also return these informational responses as part of the CONNECT
  972. response. All these cases are handled.
  973.  
  974.   In case of errors, modems will also return responses like ERROR,
  975. NO CARRIER, NO DIALTONE, BUSY, NO ANSWER, and VOICE. All these cases
  976. are handled. After receiving the CONNECT response, if ADJUST SPEED
  977. is TRUE and the current serial speed does not match the CONNECT speed,
  978. the serial speed will be changed to the CONNECT speed.
  979.  
  980.   After modem connection, if FLOW CONTROL is TRUE, the RTS/CTS flow
  981. flow control is enabled. Both GMHS and RMHS also start monitoring for
  982. an inactive DCD to indicate lost carrier/connection. If DCD is
  983. inactive, modem hangup will be initiated (see below).
  984.  
  985. 3.8 Leased Line Connection
  986.  
  987.   GMHS supports leased lines and therefore, must initialize and
  988. monitor modems for leased line connections; RMHS does not support
  989. leased lines. If Leased Line is Yes, GMHS sends either the LEASED
  990. ANSWER or the LEASED DIAL command at the end of modem initialization,
  991. depending on if Modem Mode is Answer or Dial respectively. GMHS thens
  992. polls for a modem connection (see above) indefinitely.
  993.  
  994.   There are two special cases for leased line modems. If LEASED
  995. EXTERNAL is TRUE, GMHS does not send the LEASED ANSWER or LEASED DIAL
  996. commands; this modem was setup externally for leased line operation,
  997. usually with physical switches. If LEASED RESPONSE is FALSE, GMHS does
  998. not poll for modem connection responses; instead, the modem is polled
  999. for an active DCD signal to indicate a modem connection.
  1000.  
  1001.  
  1002. 3.9 Modem Hangup
  1003.  
  1004.   If FLOW CONTROL is TRUE, the RTS/CTS flow control mechanism is
  1005. disabled. Then, the COMMAND END characters are sent, finishing any
  1006. previous modem commands. To make certain the modem is in its command
  1007. state, a delay of ESCAPE TIME seconds is initiated, then the ESCAPE
  1008. command is sent, and then an additional delay of ESCAPE TIME seconds
  1009. plus a minimum of RESPONSE TIME seconds or a maximum of 30 seconds
  1010. for no responses is initiated.
  1011.  
  1012.   Finally, the HANGUP command is sent, waiting up to HANGUP TIME
  1013. seconds for a response. To ensure that hangup will occur, the DTR
  1014. signal is also dropped and after DTR TIME seconds, the DTR signal is
  1015. raised.
  1016.  
  1017.  
  1018. Appendix A. General Guidelines for Creating a MDF
  1019.  
  1020.   There are some general guidelines that should be followed when
  1021. creating a MDF:
  1022.  
  1023.   (1) Do not modify a released MDF; instead, create a separate MDF.
  1024.  
  1025.   (2) Assume that the modem is in an unknown state prior to its use.
  1026.  
  1027.   (3) Try not to use &F (recall factory profile) because you may
  1028.       override a feature not specified in the MDF.
  1029.  
  1030.   (4) Try not to use &W (write active profile to memory) because you
  1031.       may affect a previous/future modem configuration and the NVRAM
  1032.       memory has a limited number of writes before it is unusable.
  1033.  
  1034.   (5) Don't rely on the Z (RESET) command to recall a previously
  1035.       saved modem configuration since this may have been overwritten
  1036.       by a previous user/application.
  1037.  
  1038.   (6) Only use the pre-defined keywords that are relevant to this
  1039.       modem and whose default's are not sufficient for this modem.
  1040.  
  1041.   (7) Where appropriate, use comment lines thoughout the MDF.
  1042.  
  1043.   (8) Each MDF name is limited to the eight character maximum of
  1044.       DOS and the NetWare file systems. MDF names should be as
  1045.       descriptive as possible since current MHS products only
  1046.       display the MDF filename for selecting a Modem Type. Generally,
  1047.       the first part of the name should be an abbreviation for the
  1048.       manufacturer of the modem, e.g., "HAYES", and the second part
  1049.       the abbreviation of model number or maximum speed, e.g., "96".
  1050.       If the eight character maximum name has not been reached, a
  1051.       single character abbreviation should be added to denote a
  1052.       series or capability, e.g., "v" for V-series or "e" for
  1053.       error-control. The extension is always MDF.
  1054.  
  1055.   (9) The MDFs must reside in special subdirectories, which are
  1056.       different for each MHS product. GMHS requires the MDFs to be
  1057.       in the <NGM-root-dir>\ASYNC\MODEMDEF directory. RMHS requires
  1058.       the MDFs to be in the <MHS-root-dir>\MHS\SYS directory.
  1059.  
  1060.  
  1061. Appendix B. Example MDF for a Hayes Smartmodem 2400
  1062.  
  1063. MDF DESCRIPTION=Hayes Smartmodem 2400 and compatibles
  1064. MDF VERSION=2
  1065. MDF TYPE=HAYES
  1066. MODEM SPEEDS=300,1200,2400
  1067. MAX SPEED=2400
  1068. MAX COMMAND=40
  1069. INIT=EQV1X4S0=0S2=43S3=13S4=10S7=254S12=50
  1070. INIT=&C1&D3&L
  1071. LEASED DIAL=&L1D
  1072. LEASED ANSWER=&L1A
  1073.  
  1074. Appendix C. Example MDF for a Hayes V-series ULTRA Smartmodem 9600
  1075.  
  1076. MDF DESCRIPTION=Hayes V-series ULTRA Smartmodem 9600
  1077. MDF VERSION=2
  1078. MDF TYPE=HAYES
  1079. MODEM SPEEDS=300,1200,2400,9600
  1080. MAX SPEED=38400
  1081. MAX COMMAND=255
  1082. FLOW CONTROL=TRUE
  1083. ADJUST SPEED=FALSE
  1084. INIT=EQV1X4S0=0S2=43S3=13S4=10S7=254S12=50
  1085. INIT=N1W1&C1&D3&K3&L
  1086. INIT=S30=0S37=0S49=8S50=16S95=32
  1087. DIAL 300=S37=3
  1088. DIAL 1200=S37=5
  1089. DIAL 2400=S37=6
  1090. DIAL 9600=S37=9
  1091. LEASED DIAL=&L1D
  1092. LEASED ANSWER=&L1A
  1093. PROTOCOL ON=&Q5S36=7S38=20S46=2S48=7
  1094. PROTOCOL OFF=&Q6
  1095. PROTOCOL A=PROTOCOL: LAP-M
  1096. PROTOCOL B=PROTOCOL: ALT
  1097.  
  1098.  
  1099. Appendix D. Example MDF for a USRobotics Courier HST
  1100.  
  1101. MDF DESCRIPTION=USRobotics Courier HST, HST dual standard, and V.32bis
  1102. MDF VERSION=2
  1103. MDF TYPE=HAYES
  1104. MODEM SPEEDS=300,1200,2400,9600,14400
  1105. MAX SPEED=38400
  1106. MAX COMMAND=40
  1107. FLOW CONTROL=TRUE
  1108. ADJUST SPEED=FALSE
  1109. INIT=EQV1X6S0=0S2=43S3=13S4=10S7=255S12=50
  1110. INIT=BC1F1&A1&C1&D2&B1&H1&L&N0&R2S19=0
  1111. LEASED DIAL=
  1112. LEASED ANSWER=
  1113. LEASED EXTERNAL=TRUE
  1114. LEASED RESPONSE=TRUE
  1115. PROTOCOL ON=&K2&M4
  1116. PROTOCOL OFF=&M
  1117. PROTOCOL A=/ARQ
  1118. ;
  1119. ; For leased line operation, do the following steps:
  1120. ; 1.  Set your terminal or communications software to 38.4K bps.
  1121. ; 2.  Send the modem the following command: AT&B1&S2&H1&L1&W
  1122. ; 3.  Set the modem to load NVRAM settings at power-on, DIP switch 10 UP.
  1123. ; 4.  If this is the answering modem, set the modem to Auto Answer,
  1124. ;     DIP switch 5 UP. If this is the calling modem, set the modem to
  1125. ;     Auto Answer suppressed, DIP switch 5 DOWN.
  1126. ; 5.  Power off the modem.
  1127. ; 6.  On the NetWare server, select a 38.4K bps capable port and
  1128. ;     attach it to the modem.
  1129. ; 7.  Configure this port for leased line operation and for a USRHST.
  1130. ; 8.  Repeat these or similiar steps for the remote modem.
  1131. ; 9.  Turn on the calling modem first, followed by the answering modem.
  1132. ; 10. The modems should then go off hook and establish the connection.
  1133. ; 11. If unsuccessful, repeat step 9.
  1134.  
  1135.  
  1136. Appendix E. Debugging MDFs with NetWare Global MHS
  1137.  
  1138.   This section contains information to assist in debugging MDFs
  1139. using the GMHS product and its NGMAMP.NLM program, which can display
  1140. information on the screen as well as in log file(s) when modem
  1141. interactions take place. This information takes the form of events,
  1142. either connection, modem, port, or error events. Events are further
  1143. divided into major events, minor events, and error codes; the
  1144. important ones for debugging MDFs are listed below. The screen
  1145. display is enabled by loading the NGMAMP.NLM with the -S command
  1146. line option.
  1147.  
  1148.   The GMHS log files can be found in a <NGM-root-dir>\LOGS directory,
  1149. referenced by the day of the week. The size of an individual log file
  1150. is controlled by an option in the GMHS configuration file, which can
  1151. be found in a SYS:\SYSTEM\NGM.CFG file. This option, Maximum-Log-Size,
  1152. has a default of 200K and GMHS will start overwriting a log file when
  1153. this maximum has been reached.
  1154.  
  1155.   The NGMAMP log files are further referenced by the type of serial
  1156. ports used to interface to the configured modems. For example, the
  1157. events for the COM1 serial port can be found in the 01-00-00 file.
  1158. The number of events is generally influenced by the verbosity level,
  1159. which can be set using another option, Log-Verbosity, in a NGM.CFG
  1160. file or via the GMHS administration program NGMADMIN.NLM.
  1161.  
  1162.   The default setting for NGMAMP is verbosity level 6, which displays
  1163. connection and error events. A verbosity level of 9 displays these
  1164. events as well as (serial) port and modem events. When debugging
  1165. modem (and MDF) problems, set the verbosity level to 9.
  1166.  
  1167. 1) Connection Events
  1168.  
  1169.   The major events are OutboundCall, PollingCall, and InboundCall.
  1170. There are many possible minor events but the important ones are
  1171. Opening, Dialing, ModemControl, LoggingIn, CallerID, LoggingOut,
  1172. HangingUp, and Closed. These events track the high level actions
  1173. that cause MHS to access serial ports and modems. Refer to the GMHS
  1174. Codes and Messages manual for details on these events.
  1175.  
  1176. 2) Modem Events
  1177.  
  1178.   The major event is Modem. The minor events are Definition, Command,
  1179. Response, Reset, Initialize, Dial, Answer, Ring, Hangup, Connect,
  1180. Leased, and Speed. A period in a Response event string implies a 1
  1181. second period of time when no characters were received. These events
  1182. track the low level actions of MHS modem control. Refer to the GMHS
  1183. Codes and Messages manual for details on these events.
  1184.  
  1185.  
  1186. 3) (Serial) Port Events
  1187.  
  1188.   The major event is Port. The minor events are PortNames, AcquirePort,
  1189. ReleasePort, ChangeSpeed, ChangePort, FlowControl, and SetDTR. These
  1190. events track the low level actions of MHS serial port control. Refer
  1191. to the GMHS Codes and Messages manual for details on these events.
  1192.  
  1193. 4) Error Events
  1194.  
  1195.   The major events are SevereError, MajorError, Error, InternalErr,
  1196. Warning, and Advisory. The modem errors are identified with #326,
  1197. followed by the range #19000 to #19999. The port errors are identified
  1198. with #256, followed by the range #20000 to #20999. Refer to the GMHS
  1199. Codes and Messages manual for details on these errors.
  1200.  
  1201.  
  1202. Appendix F. Debugging MDFs with NetWare Remote MHS
  1203.  
  1204.   This section contains information to assist in debugging MDFs
  1205. using the RMHS product, which can display information on the screen
  1206. as well as in a log file when modem interactions take place. This
  1207. information takes the form of events, either status, informational,
  1208. warning, error, or trace. The number of events is generally
  1209. influenced by the verbosity level, which can be set using the -V
  1210. command line option.
  1211.  
  1212.   The default setting for RMHS is verbosity level 8, which displays
  1213. status, informational, warning, and error events. A verbosity level
  1214. of 9, the maximum, displays these events as well as trace events.
  1215. Status events are always displayed in the second line from the bottom
  1216. of a RMHS screen.
  1217.  
  1218.   The RMHS.LOG file can be found in a <MHS-root-dir>\MHS\MAIL\PUBLIC
  1219. directory.
  1220.  
  1221. 1) Status Line Events
  1222.  
  1223.   The following is a list of these events and some comments as to
  1224. their meaning:
  1225.  
  1226. Waiting for modem connection ...
  1227.   Appears on the status line while RMHS is waiting for a CONNECT
  1228.   response from the modem.
  1229.  
  1230. Hanging up modem ...
  1231.   Appears on the status line while RMHS is sending HANGUP commands
  1232.   to the modem.
  1233.  
  1234. Dialing ...
  1235.   Appears on the status line while RMHS is sending DIAL commands to
  1236.   the modem.
  1237.  
  1238. Initializing modem ...
  1239.   Appears on the status line while RMHS is sending INIT commands to
  1240.   the modem.
  1241.  
  1242. Resetting modem ...
  1243.   Appears on the status line while RMHS is sending a RESET command to
  1244.   the modem.
  1245.  
  1246.  
  1247. 2) Informational, Warning, and Error Events
  1248.  
  1249.   The following is a list of these events and some comments as to
  1250. their meaning:
  1251.  
  1252. E2550 Error in modem definition file.
  1253.   MDF file contains some syntactic error.
  1254.  
  1255. E2553 Timeout waiting for modem response.
  1256.   Modem failed to respond to a command with the expected OK response
  1257.   within the RESPONSE TIME seconds.
  1258.  
  1259. E2554 Unsupported modem speed (%lu bps).
  1260.   Modem speed set in user interface or modem speed parsed out of
  1261.   CONNECT response from modem does not fall within parameters set in
  1262.   the MDF file.
  1263.  
  1264. E2555 Modem is not responding.
  1265.   Modem repeatedly failed to respond to a command with the expected
  1266.   OK response.
  1267.  
  1268. E2556 Invalid modem response.
  1269.   Modem failed to respond to a command with the expected OK response;
  1270.   instead, modem responded with an unrecognizable string.
  1271.  
  1272. W2557 Modem indicates an error has occurred.
  1273.   Modem has responded to a command with the ERROR response instead of
  1274.   the expected OK response.
  1275.  
  1276. W2558 Adjusting modem speed to %lu bps.
  1277.   ADJUST SPEED is TRUE and the modem CONNECT response indicated a speed
  1278.   change was required.
  1279.  
  1280. W2559 Carrier still active, hangup failed.
  1281.   HANGUP command failed.
  1282.  
  1283. W2560 Speaker command failed.
  1284.   Modem failed to respond to a SPEAKER ON/OFF command with the
  1285.   expected OK response.
  1286.  
  1287. E2561 Protocol command failed.
  1288.   Modem failed to respond to a PROTOCOL ON/OFF command with the
  1289.   expected OK response.
  1290.  
  1291. E2563 Initialization command failed.
  1292.   Modem failed to respond to an INIT command with the expected OK
  1293.   response.
  1294.  
  1295. E2565 One or more modem commands failed.
  1296.   Modem failed to respond to some modem command with the expected OK
  1297.   response.
  1298.  
  1299.  
  1300. E2566 Could not change modem speed to %lu bps.
  1301.   ADJUST SPEED is TRUE and the modem CONNECT response indicated a speed
  1302.   change was required, but the speed change failed.
  1303.  
  1304. E2568 Out of memory in modem layer.
  1305.   When reading a MDF file into memory, RMHS ran out of heap space.
  1306.  
  1307. E2570 Modem dial failed.
  1308.   Modem failed to respond to a DIAL PULSE/TONE command with the
  1309.   expected CONNECT response.
  1310.  
  1311. W2574 Modem could not detect carrier.
  1312.   Modem detected a NO CARRIER response.
  1313.  
  1314. W2575 Modem could not detect dialtone.
  1315.   Modem detected a NO DIALTONE response.
  1316.  
  1317. W2576 Modem detected a busy signal.
  1318.   Modem detected a BUSY response.
  1319.  
  1320. W2577 Called server is not answering.
  1321.   Modem timed out waiting for CONNECT response and last response was
  1322.   RINGING response.
  1323.  
  1324. W2578 Modem detected human voice instead of carrier.
  1325.   Modem detected a VOICE response.
  1326.  
  1327. E2579 The modem attached to COM%d: is bad, does not exist, is
  1328. incorrectly configured, or is incorrectly cabled.
  1329.   Modem is not responding to commands.
  1330.  
  1331. I2581 High-speed connection established.
  1332.   Modem speed parsed out of CONNECT response from modem is above
  1333.   38.4K bps.
  1334.  
  1335. I2582 High-speed connection with protocol established.
  1336.   Modem speed parsed out of CONNECT response from modem is above
  1337.   38.4K bps and PROTOCOL A/B response detected.
  1338.  
  1339. I2583 Established %lu bps connection.
  1340.   CONNECT response detected at indicated speed.
  1341.  
  1342. I2584 Established %lu bps connection with protocol.
  1343.   CONNECT and PROTOCOL A/B responses detected at indicated speed.
  1344.  
  1345. E2585 Could not establish modem connection.
  1346.   Modem timed out waiting for CONNECT response.
  1347.  
  1348.  
  1349. 3) Trace Events
  1350.  
  1351.   Trace events are the actual commands sent to a modem and the actual
  1352. responses received from a modem; these events are NOT placed in the
  1353. RMHS.LOG file. An example of these events are as follows (note that
  1354. trace events are mixed in with other non-trace events):
  1355.  
  1356. ATZ
  1357. OK
  1358. ATEQV1X4S0=0S2=43S3=13S4=10S7=254S12=50
  1359. OK
  1360. AT&C1&D3&L
  1361. OK
  1362. I2569 Dialing OUTBOUND at 2400 bps, tone dial, negotiation off.
  1363. ATDT123-4567
  1364. OK
  1365.