This is my attempt at listing some Frequently Asked Questions for the
newsgroup comp.os.os2.networking.tcp-ip, which is where IBM tells us
all to look for support and exchange information about OS/2 Warp when
running the Internet Access Kit.

DISCLAIMER:  The information contained within this document was mostly
extracted from posts made to comp.os.os2.networking.tcp-ip and thus
has only the credibility of the original poster, which can range
anywhere from "propagator of ill-founded rumors," right on up to the
"official words of IBM," or even higher. ;-)

     THIS DOCUMENT IS PROVIDED "AS-IS" AND ANY USE HEREOF IS AT THE
     RISK OF THE USER.  ABSOLUTELY NO REPRESENTATION IS MADE AS TO
     THE COMPLETENESS, ACCURACY, TRUTHFULNESS, USABILITY, OR OTHER
     CHARACTERISTIC OF THE INFORMATION CONTAINED HEREIN.  FURTHER,
     ABSOLUTELY NO REPRESENTATION IS MADE AS TO THE OWNERSHIP OF
     ANY RIGHTS TO ANY OF THE INFORMATION CONTAINED HEREIN.  IF YOU
     NEED SOMEONE TO EXPLAIN TO YOU THAT YOU USE THE INFORMATION
     CONTAINED HEREIN AT YOUR OWN RISK, THEN YOU ARE EXPLICITLY
     PROHIBITED FROM USING ANY INFORMATION CONTAINED HEREIN.

All information contained herein is copyright by the various authors
thereof, and on their behalf, I am demanding a royalty of $1,000 per
use for any use by Microsoft Network.  Any such usage is deemed to be
consent to this royalty agreement, and payment shall be immediately
remitted to:

     William A. Schultz          guru@deltanet.com (Bill Schultz)
     P. O. Box 18732
     Irvine, CA  92713-8732

I am actively soliciting comments, clarifications, and requests for
changes to this FAQ.  Either questions, answers, or both may be
submitted.  Of course, the bulk of the information contained herein
has been, and will continue to be, extracted from the newsgroup
discussion threads in comp.os.os2.networking.tcp-ip as time goes by.

This is file number 10 of 12.  It contains the second part of some
long information which would not easily fit within files 1 through 8.

TABLE OF CONTENTS:

     FAQ PART ONE:

          1.0  GENERAL QUESTIONS
          2.0  GENERAL IBM QUESTIONS
          3.0  GENERAL OS/2 QUESTIONS
          4.0  OS/2 INTERNET ACCESS KIT (IAK) QUESTIONS
          4.1  GENERAL IAK QUESTIONS
          4.2  GENERAL PROXY SERVER QUESTIONS
          4.3  DIAL OTHER PROVIDER QUESTIONS
          4.3.1  GENERAL DIAL OTHER PROVIDER QUESTIONS

     FAQ PART TWO:

          4.3.2  SLIP SPECIFIC QUESTIONS

     FAQ PART THREE:

          4.3.3  PPP SPECIFIC QUESTIONS

     FAQ PART FOUR:

          4.3.4  TIA SPECIFIC QUESTIONS
          4.4  ULTIMAIL/LITE QUESTIONS
          4.5  NEWS READER/2 QUESTIONS
          4.6  SENDMAIL QUESTIONS

     FAQ PART FIVE:

          4.7  WEB EXPLORER QUESTIONS
          4.8  FTP QUESTIONS
          4.9  GOPHER QUESTIONS
          4.10  RETRIEVE SOFTWARE UPDATES QUESTIONS
          4.11  OTHER IAK SOFTWARE QUESTIONS
          4.12  WINDOWS TCP/IP WITH IAK SOFTWARE QUESTIONS

     FAQ PART SIX:

          5.0  OS/2 TCP/IP QUESTIONS

     FAQ PART SEVEN:

          5.0  OS/2 TCP/IP QUESTIONS (Continued)
          6.0  OTHER BONUS PACK SOFTWARE QUESTIONS
          7.0  IBM RESOURCES
          8.0  THIRD PARTY SOFTWARE QUESTIONS
          9.0  OTHER RESOURCES

     FAQ PART EIGHT:

          9.0  OTHER RESOURCES (Continued)

     FAQ PART NINE:

          APPENDIX A - INSTRUCTIONS FOR INSTALLING FIXPACK 5

     FAQ PART TEN:

          APPENDIX B - SLIP CONFIGURATION EXAMPLE

     FAQ PART ELEVEN:

          APPENDIX C - PPP CONFIGURATION EXAMPLE

     FAQ PART TWELVE:

          APPENDIX D - ABBREVIATED SENDMAIL DOCUMENTATION

EDITOR'S NOTE:  This document is very much a work in process.  In fact,
I have not yet completed editing it.  However, because there is so
much useful information available herein, I have decided to go ahead
and post it anyway.  This should result in some comments from all of
you which might save me the trouble of editing this further. (i.e., if
nobody thinks this is a good idea, or that it is way too long. ;-)

APPENDIX B - SLIP CONFIGURATION EXAMPLE

From: Garland@2bears.com   [Garland Wood]
Newsgroups: comp.os.os2.networking.tcp-ip
Subject: SLIP Command Line Configuration: One Man's Solution
Date: 4 Apr 1995 16:59:59 GMT
Message-ID: <3lrtuf$l6o@ralph.vnet.net>
Reply-To: Garland@2bears.com  [Garland Wood]

Ok, gentle users, I've seen too many people asking about the OS/2
TCP/IP command line workings, wanting to do entirely reasonable tasks.
I've seen too many other folks saying "it isn't possible," or "buy the
docs from IBM."

Enough of this!  Yes, the TCP/IP docs are available from IBM.  Yes,
there was lots of free space on the Warp CD-ROM that could have easily
accommodated them.  Yes, many users want to do specialized things
that aren't easily accomplished with the PM tools provided with Warp. 

Fine.  I include for your inspection and amusement, slightly modified 
versions of my configuration files.  Most of this stuff is based on
other folks' work ...  stuff that I found sniffing around the net and
modified for my own use.  Hopefully, you all will get some idea about
how to make these things work for yourself.  (I provide no support for
these.  If you have a question, and I can quickly answer it, I will.
Otherwise, read the REXX documentation included with Warp to decode
what's going on.)

My REXX SLIP dialing program detects BUSY & NO CONNECT conditions and
redials an adjustable number of times.  It parses the IP addresses sent 
by
my provider, so it allows for dynamic IP addressing.  (It defaults to a
class C netmask, but that can be adjusted using a command line 
parameter -
see SLIP.CFG.)  

I've left much gunk at the end of the dialing program ...  bits & 
pieces
that are already created available if I (or you) want to use them, but
things that I don't currently use.

I use the process killer "GO" and "SLIPKILL" to shutdown running 
processes. "GO" is on OS/2 Shareware (and maybe Hobbes, I haven't 
looked),
and I think that SLIPKILL appeared on my machine along with the PPP & 
the 
updated dialer.

You will need to make changes to SLIP.CFG to install your provider's 
phone
number, which COM port to use, your userid, password, and (optionally) 
netmask.  You will probably need to make changes to VNET.CMD for your 
modem's reset strings, and to define how to parse your provider's IP 
assignments.

All the CMD files go in \TCPIP\BIN, while the CFG file goes in 
\TCPIP\ETC.
(If you've changed those directories from their defaults, you are 
responsible for figuring out where the files go ...)

My apologies for this super-long post.  Hopefully, it'll quell a bit of 
the traffic about the slip command line.

My TCP/IP startup file: TCPIP.CMD
----------------------------------
/* TCPIP.CMD - Rexx program to manage SLIP startup */
/* Configure for SIO */
'mode com2, 38400, DTR=ON'
'start "SLIP Daemon" slip'
'slipwait 360'
if RC = 0 then do 
   /* Start whatever TCP/IP Daemons that you want here */ 
   'start "SendMail Daemon" sendmail -bd -q5m -d'
   'nistime -m1 -s1'
   end
else
   /* SLIP connection wasn't established in time, kill all  */
   /*     tcpip components that may have loaded.           */
   'start tcpipx.cmd'
exit

My TCP/IP shutdown file: TCPIPX.CMD
----------------------------------
/* Rexx to Kill TCP/IP Dameons & End SLIP Link     */
/* These lines kill the persistant SLIP connection */
/*     (These are sometimes difficult to kill, so  */
/*     experiment a bit.)        */
'slipkill'
/* Kill your daemons here */
'go -k slip'
'go -k sendmail'
/* SIO Configuration */
'mode com2, RTS=HS, DTR=OFF'
exit


Something to run to establish the connecton, stay on for a while, then
exit: METATCP.CMD:
------------------------------------
/* Rexx Meta-tcpip dameon */
waitminutes = 30
waitseconds = waitminutes * 60
/* Might as well load up all the SysFuncs */
call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
call SysLoadFuncs
/* Start connection */
start tcpip.cmd
/* Wait */
call SysSleep waitseconds
/* End connection */
start tcpipx.cmd
exit


My SLIP.CFG file (with my particular provider/user informaiton 
deleted), 
configure this for your own condition:
----------------------------------------
#----------------------------------------------------------------------
--------
#
#               OS/2 2.0 SLIP Driver for IBM TCP/IP version 2.0
#                                  SLIP.CFG
#                          SLIP Configuration File
#             ..................................................
#                             Copyright (c) 1993
#               David Bolen and Advanced Network & Services, Inc.
#                            All Rights Reserved
#
# This file controls the interfaces that the SLIP driver creates and 
manages.
# It is used to set up interface values (such as MTU, RTT estimates, 
and
# device information), as well as specifying other per-interface data, 
such
# as what scripts should be run to make a SLIP attachment over an 
interface.
#
#
# The general format of the file is a series of interface "clauses", of 
the
# form:
#
#               interface ??? {         # Comments
#                    parameter = value  [,] [ parameter = value [,] ... 
]
#               }
#
# Spaces, commas and newlines are ignored (except within quoted 
strings).
# In general, the layout of the file is free-form, within the general 
bounds
# of the interface blocks.
#
# Comments may begin at any point on the line, and are signified by a 
hash
# (#) character - everything past the comment character is ignored.
#
# Parameter names and values are delimited by whitespace.  Special 
characters
# (whitespace, ',', '{', '}', '#', '=') may be included in a value by
# surrounding that value in double quotes ("), or by prefixing the 
special
# character with a backslash (\).  Use \\ to get a backslash itself, 
and use
# \" within a quoted string to get a double quote within the value.
#
# In the above, ??? specifies an interface to be defined.  Currently 
only
# two values are allowed:
#
#       default         Default settings.  Specifies parameters that 
will
#                       be assumed for any interfaces later in the file
#                       where their interface clauses do not contain 
new
#                       values for the parameters.
#       sl0             Serial Interface 0.
#
# The "interface default" clause may be specified multiple times, and 
is
# additive.  Where a parameter appears in more than one such clause, 
its
# most recent value will be used for any later interface clauses.
#
# The following parameters and values are allowed for each interface:
#
#   Basic Parameters
#       device          Interface serial device (ie: "com1")
#       mtu             Maximum transmission unit (bytes)
#       compression     Adjusts VJ compression.  Can be "ON" (always 
compress),
#                         "OFF" (never), or "AUTO" (accept compression 
and
#                         start compressing if compressed packets are 
received)
#       attachcmd       Name of rexx command script to run to attach 
interface
#       attachparms       Parameters to pass to command script
#
#   Queuing Parameters
#       fastqueue       Enables priority queueing for interactive 
traffic.
#       nofastqueue       Disables priority queueing
#       queuesize       Normal and priority queue sizes (IP kernel<-
>SLIP) in
#       fastqueuesize     packets.  These should be multiples of 4.
#
#   Protocol Parameters
#       rtt             Initial TCP RTT estimates.  Like BSD-Reno's 
per-route
#       rttvar            defaults, but per-interface.  The values 
assigned
#       rttmin            to these parameters are in milliseconds
#       sendpipe        Size of TCP send and receive windows (bytes)
#       recvpipe
#       ssthresh        "Slow start" congestion window threshold 
(bytes)
#
#
# When this file is initially processed, the system default interface 
clause
# is as follows:
#
#       interface default {
#          mtu=296, compression=on,
#          fastqueue, queuesize=12, fastqueuesize=24,
#          recvpipe=4096
#       }
#
# And the default device for the "sl0" interface is "com1"
#
#
# It is not recommended that anything other than "Basic Parameter" 
values
# be adjusted unless truly necessary.  In particular, adjusting queue 
sizes
# and rtt* values without a complete understanding of the affect such
# adjustments will have on protocol (such as TCP) behavior can 
seriously
# affect both interactive response and throughput.
#
#
# $Id: slip.cfg,v 1.2 1993/04/09 04:42:20 db3l Exp $
#
#----------------------------------------------------------------------
--------
# Set up a simple default sl0 (default parameter values commented 
above)
interface sl0 { 
 device=COM2,
 mtu=1500,
 compression=off
 attachcmd="VNET"
 attachparms="ATDTphonenumber Userid Password Optional_netmask"
}

Finally, my connection script VNET.CMD:
---------------------------------------
/*---------------------------------------------------------------------
-----*/
/*                                                                          
*/
/*        OS/2 2.11 / WARP REX Driver for IBM TCP/IP version 2.0 / IAK      
*/
/*                                                                          
*/
/* 29 Mar 95                                                                
*/
/* Modified to install TCP/IP loopback device.                              
*/
/* 3 Feb 95                                                                 
*/
/* Modified to redial for a while & deal with no-connects                   
*/
/* 21 Nov 94                                                                
*/
/* IBM Sample IAK script modified to access new VNET.NET terminal 
servers   */
/* by Garland Wood                                                          
*/
/*                                                                          
*/
/*---------------------------------------------------------------------
-----*/

parse arg interface , dialcmd username password netmask

/*---------------------------------------------------------------------
-----*/
/*                   Initialization and Main Script Code                    
*/
/*---------------------------------------------------------------------
-----*/

/* Set some definitions for easier COM strings */
cr='0d'x
crlf='0d0a'x

say ''
say 'VNET - SLIP Server Connection Script ',
    '(interface' interface')'

if space(netmask,0) = '' then netmask = '255.255.255.0'

trys = 25
do while (trys > 0)
trys = trys - 1

/* Flush any stuff left over from previous COM activity */
call flush_receive

/* Reset the modem here */
/* You may need to customize this for your modem make and model */
call lineout , 'Reset modem...'
call send 'AT&F2' || cr
call waitfor 'OK', 5 ; call flush_receive 'echo'
 if RC = 1 then do
    call lineout , 'Modem not resetting... Trying again'
    call send '+++'
    call waitfor 'OK', 3
    call send 'ATHZ' || cr
    call waitfor 'OK', 3
  end

/* Dial the remote server */
call charout , 'Now Dialing...'


/* Make the call (new dialing routines)*/
phoneresult = 2
do while phoneresult > 1
	call SysSleep 1
	call send dialcmd || cr
	call waitfor3 'CONNECT', 'BUSY' , 'NO CARRIER' ; call waitfor 
crlf, 30
if RC = 0 then do
   	phoneresult = stringchosen
   	call flush_receive 'echo'
   end
else
    phoneresult = 4
end
/* Now connected */


/* Handle login.  We wait for standard strings, and then flush anything 
*/
/* else to take care of trailing spaces, etc..                          
*/
call waitfor 'login:', 15
if RC = 0 then do
   call flush_receive 'echo'
   call send username || cr
end

call waitfor 'Password:', 15
if RC = 0 then do
   call flush_receive 'echo'
   call send password || cr
   say '-- Password Transmitted --'
end

/* Parse the results of the SLIP command to determine our address. */
/* We use the "waitfor_buffer" variable from the waitfor routine   */
/* to parse the stuff we get from Vnet after waiting for an        */
/* appropriate point in the data stream.                           */
call waitfor 'to', 15
if RC=0 then do
   parse var waitfor_buffer . '(' a '.' b '.' c '.' d ')' .
   vnet_address = a||'.'||b||'.'||c||'.'||d

   call waitfor 'beginning'
   parse var waitfor_buffer  a '.' b '.' c '.' d ' ' .
   os2_address = a||'.'||b||'.'||c||'.'||d

   /* Flush anything else */
   call flush_receive 'echo'

   /* Now configure this host for the appropriate address, */
   /* and for a default route through Vnet.                */

   say 'SLIP Connection Established'
   say 'Configuring local address =' os2_address
   say 'Vnet =' vnet_address

   /* This installs the generic TCP/IP loopback device. */
   'ifconfig lo 127.0.0.1 up'
   
   'ifconfig sl0' os2_address vnet_address 'netmask 'netmask
   'route add default' vnet_address '1'

   /* All done */
   exit 0
   end

   say crlf
   say 'SLIP Connection *not* established'
   say 'System will retry another ' trys ' times. '

end

exit 1

/*---------------------------------------------------------------------
-----*/
/*                            send ( sendstring)                            
*/
/*.....................................................................
.....*/
/*                                                                          
*/
/* Routine to send a character string off to the modem.                     
*/
/*                                                                          
*/
/*---------------------------------------------------------------------
-----*/

send:

   parse arg sendstring
   call slip_com_output interface , sendstring

   return


/*---------------------------------------------------------------------
-----*/
/*                    waitfor ( waitstring , [timeout] )                    
*/
/*.....................................................................
.....*/
/*                                                                          
*/
/* Waits for the supplied string to show up in the COM input.  All 
input    */
/* from the time this function is called until the string shows up in 
the   */
/* input is accumulated in the "waitfor_buffer" variable.                   
*/
/*                                                                          
*/
/* If timeout is specified, it says how long to wait if data stops 
showing  */
/* up on the COM port (in seconds).                                                         
*/
/*                                                                          
*/
/*---------------------------------------------------------------------
-----*/

waitfor:

   parse arg waitstring , timeout

   if timeout = '' then
     timeout = 5000    /* L O N G   delay if not specified */
   waitfor_buffer = '' ; done = -1; curpos = 1
   ORI_TIME=TIME('E')

   if (remain_buffer = 'REMAIN_BUFFER') then do
      remain_buffer = ''
   end

   do while (done = -1)
      if (remain_buffer \= '') then do
         line = remain_buffer
         remain_buffer = ''
       end
       else do
         line = slip_com_input(interface,,10)
      end
      waitfor_buffer = waitfor_buffer || line
      index = pos(waitstring,waitfor_buffer)
      if (index > 0) then do
         remain_buffer = 
substr(waitfor_buffer,index+length(waitstring))
         waitfor_buffer = 
delstr(waitfor_buffer,index+length(waitstring))
         done = 0
      end
      call charout , substr(waitfor_buffer,curpos)
      curpos = length(waitfor_buffer)+1
      if ((done \= 0) & (TIME('E')>timeout)) then do
        call lineout , ' WAITFOR: timed out '
        done = 1
       end
   end
   timeout=0
   RC=done
 return RC



/*---------------------------------------------------------------------
-----*/
/*                               readpass ()                                
*/
/*.....................................................................
.....*/
/*                                                                          
*/
/* Routine used to read a password from the user without echoing the        
*/
/* password to the screen.                                                  
*/
/*                                                                          
*/
/*---------------------------------------------------------------------
-----*/

readpass:

  answer = ''
  do until key = cr
    key = slip_getch()
    if key \= cr then do
      answer = answer || key
    end
  end
  say ''
  return answer


/*---------------------------------------------------------------------
-----*/
/*                             flush_receive ()                             
*/
/*.....................................................................
.....*/
/*                                                                          
*/
/* Routine to flush any pending characters to be read from the COM 
port.    */
/* Reads everything it can until nothing new shows up for 100ms, at 
which   */
/* point it returns.                                                        
*/
/*                                                                          
*/
/* The optional echo argument, if 1, says to echo flushed information.      
*/
/*                                                                          
*/
/*---------------------------------------------------------------------
-----*/

flush_receive:

   parse arg echo

   /* If echoing the flush - take care of waitfor remaining buffer */
   if (echo \= '') & (length(remain_buffer) > 0) then do
      call charout , remain_buffer
      remain_buffer = ''
   end

   /* Eat anything left in the modem or COM buffers */
   /* Stop when nothing new appears for 100ms.      */

   do until line = ''
     line = slip_com_input(interface,,100)
     if echo \= '' then
        call charout , line
   end

   return

/* file created on 13-03-94                     */
/* slipmods.txt                                 */
/* by Harold Roussel, roussel@physics.mcgill.ca */

/*---------------------------------------------------------------------
-----*/
/*    waitfor3 ( waitstring1 , waitstring2 , waitstring3)		    */
/*.....................................................................
.....*/
/*									    */
/* Waits for the supplied strings to show up in the COM input.  All 
input   */
/* from the time this function is called until the string shows up in 
the   */
/* input is accumulated in the "waitfor_buffer" variable.		    */
/*									    */
/*---------------------------------------------------------------------
-----*/
/* modified to accomodate three strings				    	    */
/* this functions returns 1, 2, or 3 depending on which string was 
received */
/* first								    */

waitfor3:

   parse arg waitstring1 , waitstring2 , waitstring3 , timeout

   waitfor_buffer = '' ; done = 0 ; curpos = 1

   if (remain_buffer = 'REMAIN_BUFFER') then do
      remain_buffer = ''
   end

   do while done = 0
      if (remain_buffer \= '') then do
         line = remain_buffer
	 remain_buffer = ''
      end
      else do
         line = slip_com_input(interface)
      end
      waitfor_buffer = waitfor_buffer || line
      index1 = pos(waitstring1,waitfor_buffer)
      index2 = pos(waitstring2,waitfor_buffer)
      index3 = pos(waitstring3,waitfor_buffer)
      if (index1 > 0) then do
         remain_buffer = 
substr(waitfor_buffer,index1+length(waitstring1))
	 waitfor_buffer = 
delstr(waitfor_buffer,index1+length(waitstring1))
         stringchosen = 1
         done = 1
      end
      else do
	if (index2 > 0) then do
		remain_buffer = 
substr(waitfor_buffer,index2+length(waitstring2))
		waitfor_buffer = 
delstr(waitfor_buffer,index2+length(waitstring2))
		stringchosen = 2
		done = 1
	end
	else do
		if (index3 > 0) then do
		remain_buffer = 
substr(waitfor_buffer,index3+length(waitstring3))
		waitfor_buffer = 
delstr(waitfor_buffer,index3+length(waitstring3))
		stringchosen = 3
		done = 1	
		end
	end
      end

      call charout , substr(waitfor_buffer,curpos)
      curpos = length(waitfor_buffer)+1
    end

  return

/*---------------------------------------------------------------------
-----*/
/*    waitfor2 ( waitstring1 , waitstring2 )				    */
/*.....................................................................
.....*/
/*									    */
/* Waits for the supplied strings to show up in the COM input.  All 
input   */
/* from the time this function is called until the string shows up in 
the   */
/* input is accumulated in the "waitfor_buffer" variable.		    */
/*									    */
/*---------------------------------------------------------------------
-----*/
/* modified to accomodate a second string				    */
/* this functions returns 1 or 2 depending on which string was received     
*/
/* first								    */

waitfor2:

   parse arg waitstring1 , waitstring2 , timeout

   waitfor_buffer = '' ; done = 0 ; curpos = 1

   if (remain_buffer = 'REMAIN_BUFFER') then do
      remain_buffer = ''
   end

   do while done = 0
      if (remain_buffer \= '') then do
         line = remain_buffer
	 remain_buffer = ''
      end
      else do
         line = slip_com_input(interface)
      end
      waitfor_buffer = waitfor_buffer || line
      index1 = pos(waitstring1,waitfor_buffer)
      index2 = pos(waitstring2,waitfor_buffer)
      if (index1 > 0) then do
         remain_buffer = 
substr(waitfor_buffer,index1+length(waitstring1))
	 waitfor_buffer = 
delstr(waitfor_buffer,index1+length(waitstring1))
         stringchosen = 1
         done = 1
      end
      else do
	if (index2 > 0) then do
		remain_buffer = 
substr(waitfor_buffer,index2+length(waitstring2))
		waitfor_buffer = 
delstr(waitfor_buffer,index2+length(waitstring2))
		stringchosen = 2
		done = 1
	end
      end

      call charout , substr(waitfor_buffer,curpos)
      curpos = length(waitfor_buffer)+1
    end

  return

SysSleep:
       parse arg naptime
       delay naptime
  return

-----------------------------------------------!!!

The first example is for redialing.  There are three
possible answers here so I chose the waifor3 subroutine.

/* Make the call */
phoneresult = 2
do while phoneresult > 1
	call SysSleep 1
	call send 'atdt1234567'
	call send cr
	call waitfor3 'CONNECT 2400', 'BUSY' , 'NO CARRIER' ; call waitfor 
crlf
	phoneresult = stringchosen
	call flush_receive 'echo'
end
/* Now connected */

As long as phoneresult is 2 (BUSY) or 3 (NO CARRIER),
the modem will pause for 1 second and then redial.  When
the result is 1 (CONNECT 2400) further processing can
continue.

The second example uses waitfor2.  The script specifies
a class for logging into a terminal server.  If everything
is ok then the string "start" is received.  But if it is
busy it will ask me if I want to "wait?".  In that case I
must say yes "y" and waitfor the string are you "ready?".

/* Enter class */
call waitfor 'class' ; call flush_receive 'echo'
call send 'ts' || cr
call waitfor2 'start' , 'WAIT?'
phoneresult = stringchosen
call flush_receive 'echo'

if (phoneresult = 2) then do
	call send 'y'
	call send cr
	call waitfor 'READY?'
	call send 'y'
	call send cr
end
/* Can proceed to start the slip server */

This example should be self-explanatory.

************  END OF PART TEN OF TWELVE PART WARP/IAK FAQ  ************
