home *** CD-ROM | disk | FTP | other *** search
/ Computerworld Gratis 30 Hours of Connection / Image(2).iso / infovia / win31 / medium2.sc_ / medium2.sc
Text File  |  1995-03-06  |  8KB  |  163 lines

  1. <******************************************************* language=slang
  2.  
  3. Sample SLANG Modem Dialup Script
  4.  
  5. Description:
  6.  
  7.     Medium Example #2 -- Written in the SLANG scripting language
  8.  
  9.     In this script (basically the same as Medium Example #1) we
  10.     are using the "define" built-in function to consolodate the
  11.     phone number and all the modem commands.  Since they are in
  12.     one place, at the top of the script, we can find and change
  13.     them easily, instead of hunting through-out the script.  This
  14.     is useful if a different phone number is to be used, or if
  15.     you switch to a modem of a different type.
  16.  
  17.     This script dials the modem.  It then checks "polls" the
  18.     serial line to see if the modem has connected with the remote
  19.     modem.
  20.  
  21.     If the connection has been made the script enters a user-id
  22.     after a short delay, then a password after another short
  23.     delay and, finally, packet mode is enabled so enable TCP/IP
  24.     data transfers.  The last thing the script does is run two
  25.     DOS applications:  PCMAIL and VMAIL.  VMAIL is left running
  26.     after the script is done.
  27.  
  28.     If no connetion is made the script informs the user and ends.
  29.  
  30.     This script does not store a user id or password directly,
  31.     but uses the ones that were entered in WDial's Configuration
  32.     Window.
  33.  
  34. To Use This Script:
  35.  
  36.     Change "0000" to the phone number of the remote machine you
  37.     would like to connect to.
  38.  
  39.     Be sure the enter your password and user id in WDial's
  40.     Configuration Window.
  41.  
  42.     Adjust the intervals in the (pause,...) functions to suit
  43.     your needs.  These are in milliseconds (5000 milliseconds ==
  44.     5 seconds).
  45.  
  46.     This script assumes that your modem, and the remote host,
  47.     terminate commands with an ASCII Carrage-Return character.
  48.     If, instead, a Carrage-Return/Line-Feed (CRLF) is required,
  49.     change "(cr)" to "(cr)(lf)" everywhere in the script it is
  50.     necessary.
  51.  
  52. Notes:
  53.  
  54.     This is a very simple dial script.  It assumes that, once the
  55.     modem connection has been made the following will be true:
  56.  
  57.     o       the remote machine will always be ready for your
  58.         user-id after a set interval
  59.  
  60.     o       like-wise for your password
  61.  
  62.     It is more robust than simpler examples in that it checks to
  63.     see if the modem connected or not, and acts accordingly.
  64.     There is no provision for retries, or verification of the
  65.     remote host, all of which are possible in SLANG.  The script
  66.     also assumes that there will be a user id and password prompt
  67.     after set intervals.
  68.  
  69.     Note that the send function calls in the "hang-up" do not
  70.     have curly braces around the modem commands.  Curly braces
  71.     are no necessary in this case because the modem commands are
  72.     one word (not containing spaces, tabs, newlines or commas).
  73.     Here is what you see:
  74.  
  75.         (send, ATH (cr) )
  76.  
  77.     What is sent consists of the letters 'A', 'T', 'H', and the
  78.     ASCII Carrage-return character.
  79.  
  80. Built-In SLANG Functions Used:
  81.  
  82.     define          Define a function.
  83.     send            Send a character string to the modem.
  84.     poll            Wait for the serial line to change state.
  85.     pause           Wait a specified number of milliseconds.
  86.     username        Return username from WDial's Configuration Window.
  87.     password        Return password from WDial's Configuration Window.
  88.     shell           Run a program, wait until program is done running.
  89.     start           Run a program, don't wait for it to complete.
  90.     changemode      Changes mode of connection from "raw" to
  91.             "packet" or vice-versa.
  92.  
  93. ************************************************************************>
  94.  
  95. (define, PHONE# , 0000     )    <* Phone number to dial                 *>
  96. (define, DIAL   , ATDT     )    <* Modem dial command                   *>
  97. (define, HANGUP , ATH      )    <* Modem hang up command                *>
  98. (define, RESET  , ATZ      )    <* Modem initialization command         *>
  99. (define, ATTN   , +++      )    <* Modem attention command              *>
  100.  
  101. (define, dial-up, {             <* START OF "dial-up" FUNCTION          *>
  102.   (send,                        <*   Dial the remote modem/host         *>
  103.     (value, DIAL)           <*      Modem command                   *>
  104.     (value, PHONE#)         <*      Phone number                    *>
  105.     (cr)                    <*      Carrage-Return after modem cmd  *>
  106.   )                             <*      End of "send" function          *>
  107. })                              <* END OF "dial-up" FUNCTION            *>
  108.  
  109. (define, log-in, {              <* START OF "log-in" FUNCTION           *>
  110.   (poll, physical, open, 30000, <*   Wait for the modem to connect      *>
  111.     {                           <*   IF THE MODEM CONNECTED SUCESSFULLY *>
  112.       (pause, 3000)             <*    Wait for remote machine's prompt  *>
  113.                 <*    Log-in to the remote modem/host   *>
  114.       (send, (username) )       <*      Send your user id               *>
  115.       (send, (cr) )             <*      Carrage-Return after user id    *>
  116.       (pause, 5000)             <*    Wait for a password prompt        *>
  117.                 <*    Send the password                 *>
  118.       (send, (password) )       <*      Send password                   *>
  119.       (send, (cr) )             <*      Carrage-Return after password   *>
  120.       (pause, 5000)             <*    Pause for a moment                *>
  121.       (changemode, packet)      <*    Change to "packet" mode           *>
  122.  
  123.  
  124.     }                           <*   END IF THE MODEM CONNECTED         *>
  125.  
  126.     ,                           <*   Comma delimits "Else" part of poll *>
  127.  
  128.     {                           <*   ELSE IF THE MODEM DOSN'T CONNECT   *>
  129.       (output, {
  130.  
  131.     The Modem didn't connect.  End of Script.
  132.  
  133. }                               <*     everything between { } displayed *>
  134.       )                         <*   End of the "output" function       *>
  135.       (hang-up)                 <*   Reset the modem                    *>
  136.       (exit)                    <*   Exit the script                    *>
  137.     }                           <*   END IF THE MODEM DOESN'T CONNECT   *>
  138.   )                             <*   End of the "poll" function         *>
  139. })                              <* END OF "log-in" FUNCTION             *>
  140.  
  141. (define, run-my-programs, {     <* START OF "run-my-programs" FUNCTION  *>
  142.     (shell,pcmail)              <*   Run mailer                         *>
  143.     (start,vmail)               <*   Run mail reader                    *>
  144. })                              <* END OF "run-my-programs" FUNCTION    *>
  145.  
  146. (define, hang-up, {             <* START OF "hang-up" FUNCTION          *>
  147.     (changemode, raw)           <*   Change back to "raw" mode          *>
  148.     (send, (value, ATTN) )      <*   Get modem's attention              *>
  149.     (pause, 3000 )              <*   Wait 3 seconds for modem response  *>
  150.     (send, (value, HANGUP)(cr)) <*   Send "hang up" command to modem    *>
  151.     (pause, 1000 )              <*   Give modem 1 second to do it       *>
  152.     (send, (value, RESET) (cr)) <*   "Zero" modem                       *>
  153.  
  154. })                              <* END OF "hang-up" FUNCTION            *>
  155.  
  156.  
  157. <*************************  RUN THE SCRIPT  *****************************>
  158.  
  159. ( dial-up         )             <* DIAL THE REMOTE MODEM                *>
  160. ( log-in          )             <* LOG IN, STOP SCRIPT HERE IF FAILURE  *>
  161. ( run-my-programs )             <* RUN PROGRAMS WHILE LOGGED IN         *>
  162. ( hang-up         )             <* HANG UP AND RESET THE MODEM          *>
  163.