home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / iakont.faq < prev    next >
Text File  |  1995-01-18  |  44KB  |  1,096 lines

  1.                            THE IAK ON TIA FAQ
  2.  
  3. This file is the FAQ (Frequently Asked Questions) for persons wishing to run
  4. IAK (IBM's OS/2 Internet Access Kit) on TIA (The Internet Access). See also
  5. the related FAQ list at the bottom of the file (especially the TIA FAQ).
  6.  
  7. WHAT IS THIS ALL ABOUT ?
  8.  
  9. The IAK was introduced by IBM as part of a "bonus pack" with the OS/2 3.0 
  10. (Warp) operating system. The IAK could be said to simply allow access to the
  11. Internet via a set of programs that run as graphical applications under
  12. the workplace shell (still often referred to as the PM or presentation
  13. manager).
  14. Right now there are basically four levels of internet access:
  15.  
  16. 1. Mail only. This allows you to mail from your own familiar interface across
  17. to users on the net. You may not even be aware that your mail crosses the
  18. net.
  19.  
  20. 2. Via "service", such as AOL (America On Line). These services provide menus
  21. and other Internet services.
  22.  
  23. 3. Shell account. A shell account lets you log onto someone else's host that
  24. itself connects to the Internet. You use their operating systems commands
  25. (usually Unix) to gain access to the net. Because you are dialing up with a
  26. terminal emulation, this means that you are restricted to text mode programs
  27. only. However, because the host is truly "on" the net, you can gain access
  28. to any part of the net, usually using multiple programs to do so.
  29.  
  30. 4. Direct connect. This is the "holy grail" of Internet service. It means that
  31. you have a direct connection to the net, and your computer speaks the language
  32. of the net (TCP/IP). Any access to the net you have is via programs that run
  33. on your own machine, and know how to access various Internet services.
  34.  
  35. Up to now, direct connect has been the exceptional mode of Internet access.
  36. This is because it traditionally involves leased lines, special hardware,
  37. and special protocols. The expense of a direct connect ($1000 and up a month)
  38. usually means that a large company will create a connection and then connect
  39. that (via a "gateway") to their own network, allowing their staff to share
  40. it.
  41. Over time, another, cheaper means of achiving direct connect has appeared,
  42. known as "slip" (Serial Line Internet Protocol), and later "ppp" (Point to Point
  43. Protocol). What these protocols do is allow the Internet "native" communications
  44. protocol to pass over an ordinary dial up line (modem).
  45. What you get with a slip/ppp connection is virtually full access to the
  46. Internet, including all the current services, and access to any services
  47. that might appear in the future. The big difference between slip/ppp and
  48. a "true" Internet connection is speed. With a slip/ppp interface, for example,
  49. you are not going to be able to listen to live audio programming, or watch live
  50. TV, or do anything else that requires high data rates.
  51.  
  52. WHY USE DIRECT (SLIP/PPP) ACCESS ?
  53.  
  54. Direct access changes the way you work on the Internet:
  55.  
  56. 1. You can use graphical "front ends" such as provided with IAK.
  57.  
  58. 2. You can operate more than one access program at one time.
  59.  
  60. 3. You can use the new "advanced access" programs like Mosaic or Web Browser,
  61. which require a direct connection.
  62.  
  63. As an example, I can open an IRC (Internet Relay Chat) channel to #os/2, the
  64. os/2 channel, and leave that running up in the corner of the screen while I
  65. read my mail, telnet to another computer, access an ftp site, etc.
  66.  
  67. WHY NOT USE IBM ADVANTIS ?
  68.  
  69. IBM advantis is a true SLIP service offered by IBM in major cities and also by
  70. 800 number dialup. Disregarding the monthy access fees for the moment, if you
  71. are lucky enough to live close to one of their local access dialups, you can
  72. get access for no hourly rate up to the 6 hour limit. If not, you must pay a 
  73. $6.00 an hour fee for the 800 number service. Past the 6 hour limit, you pay
  74. a $4.00 an hour fee for local, and if you need to use the 800 number, you must
  75. pay that fee as well. So you can wind up paying $10 an hour.
  76. In my example, I live in the bay area, where I have two Internet providers on
  77. a no-limit/no-hour charge basis, I live in the next exchange from an IBM local
  78. access number. The cheapest I can dial there is $0.05/hour, so I get $3.00 in
  79. the hour limit, and $9.00 over that limit. At that is on the weekends only,
  80. by special rate.
  81.  
  82. WHY NOT USE ANOTHER SLIP PROVIDER ?
  83.  
  84. In my area I am lucky. I have two independent providers, both who will give
  85. slip service. However, one provides business accounts only (at ridiculous
  86. rates). The other provides slip at a $2.00 hour rate. This is better for me
  87. the $3.00 minimum access fee for IBM, and there is no hourly limit.
  88.  
  89. WHAT IS TIA ?
  90.  
  91. If you step back a minute, you have to ask what is really so different about
  92. a slip/ppp access from a dialup that accounts for the higher charges. The
  93. equipment is the same. The speeds are the same. What you are going to do with
  94. it is basically the same. It may even LESSEN the load on the provider if you
  95. use slip (see below).
  96. Well, it turns out that if you have a shell account, you can actually make
  97. a "do it yourself" slip connection. You just need a program that runs on your
  98. provider's host system, and talks to your computer in slip/ppp protocol.
  99. It essentially does the same thing they must do to give you a slip/ppp line
  100. when you pay "full price".
  101. Because this "adapter" works over the same speed lines that you would use for
  102. a paid slip/ppp line, and has virtually no difference in overhead, you are
  103. getting a slip line for the price of a shell account.
  104. So now you have slip with no hourly access charge, no time limits, and
  105. virtually no difference from a "real" slip account. Duh.
  106. TIA itself cost $25 (one time charge), which will rapidly pay for itself.
  107.  
  108. HOW DOES TIA WORK ?
  109.  
  110. TIA stands for "The Internet Adapter".
  111. Basically, TIA takes packets of TCP/IP data that pass to/from your computer
  112. in slip form and uses the host resources to pass them on to the Internet
  113. (the TIA FAQ is going to do more justice to this subject than me). The most
  114. important difference between a TIA link and a slip link is that a TIA link
  115. does not represent a real address on the Internet, and therefore must represent
  116. it's own address as a "virtual" address. Actually, TIA is good at handling
  117. "virtual addresses" and we can use this to solve several problems (below).
  118. TIA is not a program that runs on your PC. TIA runs on the provider's host CPU.
  119. This means that the folks at Cyberspace (makers of TIA) have to compile it for
  120. each possible machine type that is in use.
  121.  
  122. HOW DO I GET TIA ONLINE ?
  123.  
  124. First I recommend you obtain the file marketplace.com:/tia/tia.FAQ.single,
  125. marketplace.com:/tia.single.instruct, and marketplace.com:/tia.single.form.txt.
  126.  
  127. FIRST, you need to determine the type of machine, then download TIA to your
  128. host machine (the machine you connect to). DO THIS BEFORE YOU GET A USER
  129. LICENCE. See the TIA FAQ to help you determine which TIA program is correct for
  130. your host. Typically, this will be something like "sparc.sunos.tia", which
  131. means a sparc CPU, running the sunos operating system.
  132. Rename this file to "tia" on your host, then execute:
  133.  
  134.    chmod +x tia
  135.  
  136. Which tells it to allow execution of tia. Now you run tia. It should sign on,
  137. and give you a message about "cannot find licence".
  138. The reason you want to do this first is that you want to be sure that
  139. everything is set up before you start the time running on your evaluation
  140. period.
  141. Next, you fill in the tia.single.form.txt file, and send that (email) to
  142. tia-single@marketplace.com. Go for the evaluation period FIRST. That way
  143. you can check your system out first before you buy.
  144.  
  145. Ok, now you can have the files:
  146.  
  147.    tia    - The TIA executable
  148.    .tia   - The text file that contains the licence number
  149.    .tiarc - A file containing startup parameters for TIA
  150.    .tiacf - This appears to contain a copy of the login information messages
  151.             that TIA generates on startup.
  152.  
  153. When started "by hand" TIA can be killed with 5 or more ctl-c's. However, under
  154. IAK you will be starting TIA automatically, so you will terminate it by hanging
  155. up.
  156. Next, you must change your login prompt or add something to the end of the
  157. prompt. Do do this, you edit your .login script on the host, and for example,
  158. add the line:
  159.  
  160.    set prompt=joeuser\>
  161.  
  162. (replacing any previous prompt command).
  163. Reason that you do this is to allow the dialup script a way to know when the
  164. host prompt appears, so that it can execute the TIA startup command.
  165.  
  166. HOW DO YOU CONFIGURE IAK TO ACCESS VIA TIA ?
  167.  
  168. FIrst, you need to create an access profile via the "dial other provider" menu
  169. under warp. Here are the fields and buttons:
  170.  
  171. [PAGE 1]
  172.  
  173. Provider name: The name of your dialup provider. I just entered my provider
  174. name, not the address, so I have to wonder if this field actually does 
  175. anything (but os/2 will not allow it to be blank).
  176.  
  177. Login ID: place your login ID just as you would enter it for shell access here.
  178.  
  179. Password: place your password just as you would enter it for shell access here.
  180.  
  181. Nickname: What is this used for ?
  182.  
  183. Phone number: Leave blank
  184.  
  185. Login script: This should point to your script that automatically dials the
  186. host and starts TIA running. Usually it is <drive>\tcpip\etc\slipup.cmd
  187. For the files we give here, this line must also have parameters. This is an
  188. example line:
  189.  
  190.    c:\tcpip\etc\slipup atdt555-1212 joeuser secretpass
  191.  
  192. The first parameter gives the string to send to your modem to dial the host.
  193. The second gives the user name to log in by, and the third gives the password
  194. to use.
  195.  
  196. Connection type: Can only be slip. PPP is grey because it is unimplemented by
  197. IBM, and is presumably on their "to do" someday.
  198.  
  199.  
  200. Inactivity timeout: Can be set to your pleasure. Note that many access 
  201. providers will automatically logout you out if inactive.
  202.  
  203. [PAGE 2]
  204.  
  205. MTU size: must be 1500 (see the TIA FAQ).
  206.  
  207. Domain name server: For this, log in to your shell account, and enter
  208. "tia -address". It will give you this information.
  209.  
  210. Your host name: is the name of your machine. It should normally be the same
  211. as your login name. This sets the name the programs running think your
  212. machine goes by.
  213.  
  214. Your domain name: The machine name of your provider, such as bignet.com.
  215.  
  216. [PAGE 3]
  217.  
  218. News server: The address of a nntpd compatible news server. Your provider may
  219. be able to give you this. However, it is possible that you may need to set up
  220. your own nntpd server. Since NETCOM is the only provider that currently
  221. lacks such a server, I have put that information in that section.
  222.  
  223. Gopher server: can be anything. Try os2info.gopher.ibm.com, the IBM gopher
  224. server.
  225.  
  226. WWW server: can be anything. Try http://www01/ny.us.ibm.net, the IBM WWW 
  227. server.
  228.  
  229. POP mail server: This is the server that will handle your mail requests.
  230. This can usually be any host machine. You may want to pick a machine that
  231. has a low normal load.
  232.  
  233. Reply domain: the host name of your provider, like biglink.com.
  234.  
  235. Reply mail ID: Same as your login ID
  236.  
  237. POP mail login: Same as your login ID. The mail login uses an ID and
  238. password just as your account does.
  239.  
  240. POP mail password: Same as your login password.
  241.  
  242. [PAGE 4]
  243.  
  244. Should be self explainitory, it contains all your modem port parameters. The
  245. question is, does any of this have an effect since the login script does
  246. the modem dialing ?
  247.  
  248. Now you should have your provider dialer configured. Next, you need to find or
  249. create a slipup.cmd file, and place that under \tcpip\etc. See the specific
  250. implementations for various scripts.
  251.  
  252. Next, you need to create a file, \tcpip\etc\hosts, which should appear as:
  253.  
  254. 192.0.2.1 <your login name>
  255.  
  256. What this file does is tell tcpip programs how to convert the address of your
  257. machine to a host name. Sendmail (part of the UltiMail) program does this,
  258. and this file gives the name before it is requested via a domain name server.
  259. This must be done because you don't really have an address for your host.
  260. You are just faking a "virtual address" under TIA. If one of your programs
  261. asks a real Internet domain nameserver to lookup that address, it will go 
  262. "huh?" and the program will fail.
  263.  
  264. Next, you need to find or create a file \tcpip\etc\sendmail.uml. Edit it and
  265. find the lines:
  266.  
  267. # The unqualified (domain-less) name of the mail relay
  268. DVYourRelay
  269.  
  270. # The fully-qualified domain name of the mail hub
  271. DHYourHub
  272.  
  273. Replace "YourRelay" with the mail relay name, and "YourHub" with the mail hub.
  274. This information is provider specific. I have placed examples in the provider
  275. specific areas below.
  276.  
  277. At this point, you should be able to hit the "dial" button under "other 
  278. provider", and watch the slip connection start up in the status window.
  279.  
  280. WHY CAN"T I SEND MAIL FROM ULTIMAIL ? I CAN RECEIVE IT !
  281.  
  282. The mail from UltiMail is sent out via "sendmail.exe". This program has
  283. a few oddities. For example, it gets your login name and password from
  284. page 1 in the "other dial" form, instead of the POP mail section on page 3.
  285. UltiMail also takes the address of your machine and asks the listed domain
  286. server to look up the symbolic name (even though this information is in
  287. the dialer form). This is not good on TIA, because we don't really have
  288. an Internet address when on TIA. Instead, the host address is a made up,
  289. virtual address that only TIA understands. When sendmail asks a real
  290. Internet domain name server what that address means, it just says
  291. "no such address", so sendmail bombs.
  292. The fix for this is to create a file \tcpip\etc\hosts, and add or change
  293. \tcpip\etc\sendmail.uml as described in the last section.
  294.  
  295. FTPPM TAKES FOREVER TO CONNECT, WHAT IS GOING ON ?
  296.  
  297. FTP-PM takes too long to connect (and to do anything) on even regular
  298. SLIP/PPP service. I have waited (apparently forever) for it to connect
  299. on a TIA access. Some folks report that this works ok. In any case,
  300. use of a text based FTP or the web browser seems to be preferable.
  301.  
  302. HOW CAN I GET AN ORDINARY SHELL LOGIN TO MY HOST WHILE RUNNING TIA ?
  303.  
  304. You can telnet back to your host. Then you just log in as usual.
  305. Alternately, you can create a "special address" that can connect
  306. you to anything. First, you add a line to your .tiarc on the host machine:
  307.  
  308.    -p192.0.2.4 csh
  309.  
  310. This causes TIA to "fake" an address that will connect only to the csh
  311. program. This will work for any program, not just csh.
  312. Then, you telnet to it:
  313.  
  314.    telnet 192.0.2.4
  315.  
  316. NOTE: TIA has an older telnet server capability that IBM's telnet does not
  317. work with. Use another telnet instead.
  318.  
  319. DOES TIA TAKE UP MORE OF THE HOST'S TIME THAN A SHELL ACCOUNT ?
  320. IS THAT WHY THEY CHARGE MORE FOR SLIP ?
  321.  
  322. Given that you do the same things (email, gopher, etc) using TIA as you
  323. did under the shell, using TIA will actually use LESS of the host's time
  324. than a shell account. This is because the data sent via tcp/ip packets
  325. is the more compact, computer encoded version of the data being used, and
  326. because your computer is doing more of the work (since it is actually running
  327. the access programs).
  328. On the other hand, since TIA enables the use of programs like Web Browser,
  329. which take much more bandwidth to run, you may use more host computer time
  330. simply because you can do more.
  331.  
  332. IS TIA BEING BANNED FROM VARIOUS SYSTEMS ? WHY ?
  333.  
  334. I have heard that this is happening. We use TIA regularly on Netcom
  335. without complaint (and indeed, netcom already provides their own, proprietary
  336. method to do the same thing).
  337. Optimistically, you can say that the providers may see this as a security
  338. problem, since TIA accesses to the net may be more difficult to log.
  339. Cynically, you could say that the providers don't want the competition for
  340. their higher priced slip/ppp services.
  341.  
  342. WHAT IS THE DIFFERENCE BETWEEN SLIP AND PPP ? WHY IS PPP NOT USED ?
  343.  
  344. PPP is the more advanced protocol designed to replace SLIP. It is said to
  345. be harder to crash with communications errors. One feature that PPP has
  346. that would be quite usefull is that PPP can be set to "connect on demand",
  347. which means that it would only dial up the provider when there is actual
  348. data to be transferred, but to be done correctly, this needs to be implemented
  349. on both sides of the line (because the host side must dial you when you
  350. get data inbound). This is the method used by one provider along with ISDN,
  351. and may indeed be the future. At this writing, IBM has added beta PPP support.
  352. TIA is said to be going to PPP RSN :)
  353.  
  354. HOW DO I CONNECT TO NETCOM ?
  355.  
  356. Netcom does not have a nntpd compatible news server. All Netcom nodes that I
  357. know of run sparc computers with the sunos operating system (a sun specific
  358. unix variant). Because the news problem was just solved at the time of this 
  359. FAQ, you need to get special versions and setups for TIA. Go to 
  360. marketplace.com:/tiabeta. Get sparc.sunos.tia, which is the TIA server you 
  361. need. Then get sparc.sunos.nntpd which is the newserver.
  362. rename them to tia and nntdp respectively.
  363. nntpd is a program that acts as a nntpd server much the way that nntpd works,
  364. by accessing the host and tranlating the requests into tcpip format. What we
  365. then do is assign nntpd a "virtual" tcpip address, then we can direct the news
  366. reader requests to that.
  367. Then, perform the lines:
  368.  
  369.    chmod +x tia
  370.    chmod +x nntdp
  371.  
  372. This will allow you to execute both programs.
  373. Next, create the file ".tiarc", which is the TIA automatic startup file, with
  374. the content:
  375.  
  376.    -p:119 nntpd
  377.  
  378. This file tells TIA to create a virtual channel at 192.0.2.3 to access the news
  379. server created.
  380. Next, you must change your login prompt or add something to the end of the
  381. prompt. Do do this, you edit your .login script on the host, and for example,
  382. add the line:
  383.  
  384.    set prompt=joeuser\>
  385.  
  386. (replacing any previous prompt command).
  387.  
  388. Here are the specific "other dialer" form entries for netcom:
  389.  
  390. [PAGE 1]
  391.  
  392. Provider name: netcom
  393.  
  394. Login ID: place your login ID just as you would enter it for shell access here.
  395.  
  396. Password: place your password just as you would enter it for shell access here.
  397.  
  398. Nickname: What is this used for ?
  399.  
  400. Phone number: Leave blank
  401.  
  402. Login script: This should point to your script that automatically dials the
  403. host and starts TIA running. Usually it is <drive>\tcpip\etc\slipup.cmd
  404. For the files we give here, this line must also have parameters. This is an
  405. example line:
  406.  
  407.    c:\tcpip\etc\slipup atdt555-1212 joeuser secretpass
  408.  
  409. The first parameter gives the string to send to your modem to dial the host.
  410. The second gives the user name to log in by, and the third gives the password
  411. to use.
  412.  
  413. Connection type: Can only be slip. PPP is grey because it is unimplemented by
  414. IBM, and is presumably on their "to do" someday.
  415.  
  416.  
  417. Inactivity timeout: Can be set to your pleasure. Note that netcom will 
  418. automatically logout you out if inactive.
  419.  
  420. [PAGE 2]
  421.  
  422. MTU size: must be 1500 (see the TIA FAQ).
  423.  
  424. Domain name server: For this, log in to your shell account, and enter
  425. "tia -address". It will give you this information.
  426.  
  427. Your host name: is the name of your machine. It should normally be the same
  428. as your login name. This sets the name the programs running think your
  429. machine goes by.
  430.  
  431. Your domain name: netcom.com
  432.  
  433. [PAGE 3]
  434.  
  435. News server: 192.0.2.3
  436.  
  437. Gopher server: can be anything. Try os2info.gopher.ibm.com, the IBM gopher
  438. server.
  439.  
  440. WWW server: can be anything. Try http://www01/ny.us.ibm.net, the IBM WWW 
  441. server.
  442.  
  443. POP mail server: netcom18 (this was determined to be the netcom node with
  444. the lightest load).
  445.  
  446. Reply domain: netcom.com
  447.  
  448. Reply mail ID: Same as your login ID
  449.  
  450. POP mail login: Same as your login ID. The mail login uses an ID and
  451. password just as your account does.
  452.  
  453. POP mail password: Same as your login password.
  454.  
  455. [PAGE 4]
  456.  
  457. Fill with modem parameters.
  458.  
  459. Ok, here is the "slipup.cmd" file for netcom. You must customize the variables
  460. at the top to reflect your modem setup. You must also set CommandKey equal to
  461. the unique command prompt string you entered while configuring the host 
  462. (above). Cut the result out and place it in \tcpip\etc\slipup.cmd.
  463.  
  464. /* version: 1.13 */
  465. /* ------------------------------------------------------------------------*/
  466. /* OS/2 slipup.cmd heavily modified for netcom/tia users and probably of   */
  467. /* value for to other people that need a decent slipup.cmd script.         */
  468. /*                                                                         */
  469. /* Any problems should be addressed to rupa@netcom.com or rupa on #os/2    */
  470. /*                                                                         */
  471. /* Changes:                                                                */
  472. /*           System specific stuff SHOULD be in the "user setup variables" */
  473. /*                  section.  Let me know if I missed something.           */
  474. /*           Added 'smart' redialer.                                       */
  475. /*           Pulled login stuff from the main body and made it handle      */
  476. /*                  problems if login: or password: never shows up.        */
  477. /*           Cleaned up some of the code, dynamic addressing for the OS/2  */
  478. /*                  box is cleaned out, if anyone wants this back in the   */
  479. /*                  code is just commented out (though untested).          */
  480. /*           Added support for TERM = -- stolen from peetah's mods         */
  481. /* ------------------------------------------------------------------------*/
  482. /* files::   ftp.netcom.com:/pub/rupa/tia/netcom.slipup.cmd                */
  483. /*                  for hosts like netcom where you login directly into    */
  484. /*            your host.                                             */
  485. /* ------------------------------------------------------------------------*/
  486.  
  487. /* user setup variables */
  488.  
  489. /* unique string for command prompt */
  490. CommandKey='<replace me with a command prompt>'
  491.  
  492. /* set the comport you use */
  493. ComPort='com2'
  494.  
  495. /* options for the "mode" system call */
  496. ModeOptions='57600,n,8,1,buffer=on,rts=hs,dtr=on'
  497.  
  498. /* does your host ask you what terminal you use? */
  499. /* 1 if it does, 0 if not                        */
  500. AskTerm=0
  501.  
  502. /* Modem INIT string */
  503. ModemInit='ATZ'
  504.  
  505. /* delay after BUSY */
  506. BusyDelay=5
  507.  
  508. /* delay after NO CARRIER */
  509. NoCDelay=2
  510.  
  511.  
  512. /*--------------------------------------------------------------------------*/
  513. /*                                                                          */
  514. /*                OS/2 2.0 SLIP Driver for IBM TCP/IP version 2.0           */
  515. /*                                                                          */
  516. /*                                SLIPUP.CMD                                */
  517. /*                                                                          */
  518. /*            ..................................................            */
  519. /*                                                                          */
  520. /* Sample attachment script for dialing into a Xylogics Annex terminal      */
  521. /* server in order to establish a SLIP connection.  This script should be   */
  522. /* specified using the "attachcmd" and "attachparm" elements in the SLIP    */
  523. /* configuration file SLIP.CFG.  For example:                               */
  524. /*                                                                          */
  525. /*              interface sl0 {                                             */
  526. /*                 attachcmd  = slipup                                      */
  527. /*                 attachparm = "dialcmd username password"                 */
  528. /*              }                                                           */
  529. /*                                                                          */
  530. /* The script parameters specify the command to send to the modem to dial   */
  531. /* the remote site and the username/password combination to use to log into */
  532. /* the terminal server.  If any of the parameters are omitted, or are       */
  533. /* specified as an asterix (*), the script will prompt for them.  This is   */
  534. /* most useful with the password parameter to avoid storing the password    */
  535. /* in a text file on the disk.                                              */
  536. /*                                                                          */
  537. /* For example, the following might be how I would set it up:               */
  538. /*                                                                          */
  539. /*              interface sl0 {                                             */
  540. /*                 attachcmd  = slipup                                      */
  541. /*                 attachparm = "atdt###-#### db3l *"                       */
  542. /*              }                                                           */
  543. /*                                                                          */
  544. /* which would cause slipup to initially prompt me for the password.  It    */
  545. /* would then feed the "atdt###-####" command to the modem, and when the    */
  546. /* Annex answered, it would use "db3l" as a username and the password I     */
  547. /* initially entered as the password.                                       */
  548. /*                                                                          */
  549. /*            - - - - - - - - - - - - - - - - - - - - - - - - -             */
  550. /*                                                                          */
  551. /* When the script runs, it is automatically passed the interface name for  */
  552. /* the interface it is running on as the first argument, and the user       */
  553. /* arguments (from SLIP.CFG) as the second argument.                        */
  554. /*                                                                          */
  555. /* The script sends the dial string to the modem and then logs into the     */
  556. /* terminal server using the username/password.  It then issues the SLIP    */
  557. /* command to start SLIP, and parses the resulting output to determine the  */
  558. /* appropriate addresses to use.  Lastly, it issues ifconfig and route      */
  559. /* commands to configure the OS/2 system appropriately.  Note that the      */
  560. /* configuration assumes a class C netmask for the SLIP interface.          */
  561. /*                                                                          */
  562. /*--------------------------------------------------------------------------*/
  563.  
  564.  
  565. call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysloadFuncs'
  566. call SysLoadFuncs
  567.  
  568. parse arg interface , dialcmd username password
  569.  
  570. /*--------------------------------------------------------------------------*/
  571. /*                   Initialization and Main Script Code                    */
  572. /*--------------------------------------------------------------------------*/
  573.  
  574. /* Set some definitions for easier COM strings */
  575. cr='0d'x
  576. crlf='0d0a'x
  577.  
  578. say ''
  579. say 'SLIPUP - SLIP Script ',
  580.     '(interface' interface')'
  581.  
  582. /* Prompt for missing information */
  583. if dialcmd = '' then do
  584.    call charout , 'Dial Command: '
  585.    parse pull dialcmd
  586. end
  587. if username = '' | username = '*' then do
  588.    call charout , 'User Name: '
  589.    parse pull username
  590. end
  591. else do
  592.    say 'User:' username
  593. end
  594. if password = '' | password = '*' then do
  595.    call charout , 'Password: '
  596.    password = readpass()
  597. end
  598.  
  599. /* set comport speed */
  600. 'mode 'ComPort||': ' ModeOptions 
  601.  
  602. /* Flush any stuff left over from previous COM activity */
  603. call flush_receive
  604.  
  605.  
  606. /* dial the number and all that */
  607. connected=0
  608. DO FOREVER UNTIL connected 
  609.    CALL SetModem
  610.    
  611.    IF Dial()=1 THEN DO
  612.       SAY 'Something wrong, either VOICE or ERROR returned after'
  613.       SAY 'the dial() command.  Aborting...'
  614.       EXIT
  615.    END
  616.    
  617.    IF Login()=1 THEN DO
  618.       /* hang up */
  619.       'mode '||ComPort||': dtr=off > \dev\nul'
  620.       'mode '||ComPort||': dtr=on > \dev\nul'
  621.       SAY 'Retrying connection after 30sec delay.'
  622.       CALL SysSleep 30
  623.    END 
  624.    ELSE DO
  625.       connected = 1
  626.    END
  627. END 
  628.  
  629.  
  630. /* Wait for the main prompt and then send the "slip" command */
  631.  
  632. if waitfor(CommandKey, 60) =1 THEN DO 
  633.    call flush_receive 'echo'
  634.    CALL LineOut , 'Never got "'||CommandKey||'".  Check your setup!'
  635.    EXIT 1
  636. END
  637. call flush_receive 'echo'
  638.  
  639. call send 'tia -address' || cr
  640.  
  641. /* Parse the results of the SLIP command to determine our address. */
  642. /* We use the "waitfor_buffer" variable from the waitfor routine   */
  643. /* to parse the stuff we get from the Annex after waiting for an   */
  644. /* appropriate point in the data stream.                           */
  645. if waitfor(CommandKey, 60) =1 THEN DO 
  646.    call flush_receive 'echo'
  647.    CALL LineOut , 'Never got "'||CommandKey||'".  Your host may be severly loaded!'
  648.    EXIT 1
  649. END
  650. call flush_receive 'echo'
  651. parse var waitfor_buffer . 'Gateway address):' a '.' b '.' c '.' d (cr) .
  652. annex_address = a||'.'||b||'.'||c||'.'||d 
  653.  
  654. /* WE DON'T USE THIS WITH TIA!
  655.    /* Now parse the remainder for our address */
  656.  
  657.    call waitfor crlf
  658.    parse var waitfor_buffer a '.' b '.' c '.' d '.' .
  659.    os2_address = a||'.'||b||'.'||c||'.'||d
  660. */
  661.  
  662. os2_address = 192.0.2.1 
  663.  
  664. /* Flush anything else */
  665. call flush_receive 'echo'
  666.  
  667. call send 'exec tia' || cr 
  668.  
  669. if waitfor('SLIP software.', 60) =1 THEN DO 
  670.    call flush_receive 'echo'
  671.    CALL LineOut , 'Never got OK to start slip software.'
  672.    EXIT 1
  673. END
  674. call flush_receive 'echo'
  675.  
  676. /* Now configure this host for the appropriate address, */
  677. /* and for a default route through the Annex.           */
  678.  
  679. say cr || 'SLIP Connection Established'
  680. say 'Configuring local address =' os2_address ', Annex =' annex_address
  681.  
  682. 'ifconfig sl0' os2_address annex_address 'netmask 255.255.255.0'
  683. 'route -f add default' annex_address '1'
  684.  
  685. /* All done */
  686. exit 0
  687.  
  688. /*-------------------------------------------------------------------------*/
  689. /*                 SetModem()                                 */
  690. /*.........................................................................*/
  691. /* Sets the modem and hopefully everybody is happy when done...            */
  692. /* We have to be very paranoid with "waitfor" or we hang the dialer.       */
  693. /*-------------------------------------------------------------------------*/
  694. SetModem:
  695.    successful=0
  696.    DO UNTIL successful=1
  697.       call send ModemInit || cr
  698.       if waitfor('OK', 5) = 1 then DO
  699.      call flush_receive 'echo'
  700.      call lineout , 'Modem not resetting... Trying again'
  701.      call send '+++'
  702.      IF waitfor('OK' ,5) = 1 THEN DO
  703.         CALL LineOut , 'could not reset modem.  Check your modem settings!'
  704.         EXIT
  705.      END
  706.       END
  707.       ELSE DO
  708.      CALL flush_receive 'echo'
  709.      successful=1
  710.       END
  711.    END
  712. RETURN 1
  713.  
  714. /*-------------------------------------------------------------------------*/
  715. /*                 dial()                                     */
  716. /*.........................................................................*/
  717. /* Dials the number with some extra error handling above and beyond the    */
  718. /* normal stuff-                                                       */
  719. /*-------------------------------------------------------------------------*/
  720.                                                                              
  721. dial:
  722.    
  723.    do forever 
  724.    /* Dial the remote server */
  725.       call charout , 'Now Dialing...'
  726.       call send dialcmd || cr
  727.    /* catch first cr from modem after dialing */
  728.       rc=waitfor(cr , 10); CALL flush_receive 'echo'
  729.    /* now parse the return from the modem, give time to return code */
  730.       rc=waitfor(cr, 120); 
  731.    
  732.       SELECT;
  733.        WHEN Pos('CONNECT', remain_buffer) \= 0 THEN DO
  734.       CALL flush_receive 'echo'
  735.       LEAVE 
  736.        END
  737.        WHEN Pos('BUSY', remain_buffer) \= 0 THEN DO
  738.       CALL flush_receive 'echo'
  739.       CALL SysSleep BusyDelay
  740.       ITERATE 
  741.        END
  742.        WHEN Pos('NO CARRIER', remain_buffer) \= 0 THEN DO
  743.       CALL flush_receive 'echo'
  744.       CALL SysSleep NoCDelay
  745.       ITERATE 
  746.        END
  747.        WHEN Pos('ERROR', remain_buffer) \= 0 THEN DO
  748.        /* something seriously wrong */
  749.       CALL flush_receive 'echo'
  750.       RETURN 1
  751.        END
  752.        WHEN Pos('VOICE', remain_buffer) \= 0 THEN DO
  753.        /* don't wanna disturb 'em too much */
  754.       CALL flush_receive 'echo'
  755.       RETURN 1
  756.        END
  757.        OTHERWISE DO
  758.        /* cannot happen */
  759.       CALL flush_receive 'echo'
  760.       SAY 'oops! Missed a possible return.  send bug report to'
  761.       SAY 'rupa@netcom.com with a screen shot.'
  762.       LEAVE 
  763.        END
  764.       END  /* select */
  765.    END  /* do */
  766. RETURN 0
  767.  
  768. /*-------------------------------------------------------------------------*/
  769. /*                    login()                                     */
  770. /*.........................................................................*/
  771. /* Handle the login process with the proper error checking and all that.   */
  772. /*-------------------------------------------------------------------------*/
  773.  
  774. login:
  775. /* Handle login.  We wait for standard strings, and then flush anything */
  776. /* else to take care of trailing spaces, etc..                          */
  777.    call send cr
  778.    IF waitfor('login:',30)=1 THEN DO
  779.       call flush_receive 'echo'
  780.       SAY crlf||'No login.'
  781.       RETURN 1
  782.    END
  783.    ELSE DO 
  784.       call flush_receive 'echo'
  785.       call send username || cr
  786.    END
  787.    
  788.    IF waitfor('Password:',30)=1 THEN DO
  789.       SAY crlf||'No Password.'
  790.       RETURN 1
  791.    END
  792.    ELSE DO
  793.       call flush_receive 'echo'
  794.       call send password || cr
  795.    END
  796.    
  797.    IF AskTerm=1 THEN DO    
  798.       IF waitfor('TERM = ',30)=1 THEN DO
  799.      SAY crlf||'Terminal emulation not set to default.'
  800.      RETURN 1
  801.       END
  802.       ELSE DO
  803.      call flush_receive 'echo'
  804.      call send cr
  805.       END
  806.    END
  807.    
  808. RETURN 0
  809.  
  810. /*--------------------------------------------------------------------------*/
  811. /*                            send ( sendstring)                            */
  812. /*..........................................................................*/
  813. /*                                                                          */
  814. /* Routine to send a character string off to the modem.                     */
  815. /*                                                                          */
  816. /*--------------------------------------------------------------------------*/
  817.  
  818. send:
  819.  
  820.    parse arg sendstring
  821.    call slip_com_output interface , sendstring
  822.  
  823.    return
  824.  
  825.  
  826. /*--------------------------------------------------------------------------*/
  827. /*                    waitfor ( waitstring , [timeout] )                    */
  828. /*..........................................................................*/
  829. /*                                                                          */
  830. /* Waits for the supplied string to show up in the COM input.  All input    */
  831. /* from the time this function is called until the string shows up in the   */
  832. /* input is accumulated in the "waitfor_buffer" variable.                   */
  833. /*                                                                          */
  834. /* If timeout is specified, it says how long to wait if data stops showing  */
  835. /* up on the COM port (in seconds).                                                         */
  836. /*                                                                          */
  837. /*--------------------------------------------------------------------------*/
  838.  
  839. waitfor:
  840.  
  841.    parse arg waitstring , timeout
  842.  
  843.    if timeout = '' then
  844.      timeout = 5000    /* L O N G   delay if not specified */
  845.    waitfor_buffer = '' ; done = -1; curpos = 1
  846.    ORI_TIME=TIME('E')
  847.  
  848.    if (remain_buffer = 'REMAIN_BUFFER') then do
  849.       remain_buffer = ''
  850.    end
  851.  
  852.    do while (done = -1)
  853.       if (remain_buffer \= '') then do
  854.          line = remain_buffer
  855.          remain_buffer = ''
  856.        end
  857.        else do
  858.          line = slip_com_input(interface,,10)
  859.       end
  860.       waitfor_buffer = waitfor_buffer || line
  861.       index = pos(waitstring,waitfor_buffer)
  862.       if (index > 0) then do
  863.          remain_buffer = substr(waitfor_buffer,index+length(waitstring))
  864.          waitfor_buffer = delstr(waitfor_buffer,index+length(waitstring))
  865.          done = 0
  866.       end
  867.       call charout , substr(waitfor_buffer,curpos)
  868.       curpos = length(waitfor_buffer)+1
  869.       if ((done \= 0) & (TIME('E')>timeout)) then do
  870.         call lineout , ' WAITFOR: timed out '
  871.         done = 1
  872.        end
  873.    end
  874.    timeout=0
  875.    RC=done
  876.  return RC
  877.  
  878.  
  879.  
  880. /*--------------------------------------------------------------------------*/
  881. /*                               readpass ()                                */
  882. /*..........................................................................*/
  883. /*                                                                          */
  884. /* Routine used to read a password from the user without echoing the        */
  885. /* password to the screen.                                                  */
  886. /*                                                                          */
  887. /*--------------------------------------------------------------------------*/
  888.  
  889. readpass:
  890.  
  891.   answer = ''
  892.   do until key = cr
  893.     key = slip_getch()
  894.     if key \= cr then do
  895.       answer = answer || key
  896.     end
  897.   end
  898.   say ''
  899.   return answer
  900.  
  901.  
  902. /*--------------------------------------------------------------------------*/
  903. /*                             flush_receive ()                             */
  904. /*..........................................................................*/
  905. /*                                                                          */
  906. /* Routine to flush any pending characters to be read from the COM port.    */
  907. /* Reads everything it can until nothing new shows up for 100ms, at which   */
  908. /* point it returns.                                                        */
  909. /*                                                                          */
  910. /* The optional echo argument, if 1, says to echo flushed information.      */
  911. /*                                                                          */
  912. /*--------------------------------------------------------------------------*/
  913.  
  914. flush_receive:
  915.  
  916.    parse arg echo
  917.  
  918.    /* If echoing the flush - take care of waitfor remaining buffer */
  919.    if (echo \= '') & (length(remain_buffer) > 0) then do
  920.       call charout , remain_buffer
  921.       remain_buffer = ''
  922.    end
  923.  
  924.    /* Eat anything left in the modem or COM buffers */
  925.    /* Stop when nothing new appears for 100ms.      */
  926.  
  927.    do until line = ''
  928.      line = slip_com_input(interface,,100)
  929.      if echo \= '' then
  930.         call charout , line
  931.    end
  932. return
  933.  
  934. ******************************* end of slipup.cmd file ***********************
  935.  
  936. Hosts file: create the file: \tcpip\etc\hosts:
  937.  
  938. 192.0.2.1 <your login name>
  939.  
  940. Finally, cut and place the next file under \tcpip\etc\sendmail.uml, or modify
  941. your existing sendmail.uml with the following lines:
  942.  
  943. # The unqualified (domain-less) name of the mail relay
  944. DVmail.netcom.com
  945.  
  946. # The fully-qualified domain name of the mail hub
  947. DHnetcom.com
  948.  
  949. Replacing the existing lines.
  950. Here is the file for my system, which should also work on any netcom system.
  951. Note that all system programs are assumed to be on drive C:, so that would
  952. need to be changed if they have moved.
  953.  
  954. ########################################################################
  955. #                                                                      #
  956. #                                                                      #
  957. #  Sendmail                                                            #
  958. #  Copyright (c) 1983  Eric P. Allman                                  #
  959. #  Berkeley, California                                                #
  960. #                                                                      #
  961. #  Copyright (c) 1983 Regents of the University of California.         #
  962. #  All rights reserved.  The Berkeley software License Agreement       #
  963. #  specifies the terms and conditions for redistribution.              #
  964. #                                                                      #
  965. #  This configuration file was created specifically for IBM's          #
  966. #  SENDMAIL product for the IBM OS/2 Operating System.  Please avoid   #
  967. #  making changes to this file, as it will change the operation of     #
  968. #  SENDMAIL.                                                           #
  969. #                                                                      #
  970. #  This configuration file is used for outgoing mail in two ways:      #
  971. #  1.  All mail is sent to a mail relay for delivery                   #
  972. #  2.  All addresses are rewritten if necessary to make them look      #
  973. #      like they came from a mail hub                                  #
  974. #                                                                      #
  975. #  Created by: William Chung for IBM Ultimedia Mail/2 "Lite"           #
  976. #              and IBM NR/2                                            #
  977. #              IBM T.J. Watson Research, Yorktown Heights, NY          #
  978. #              September 23, 1994                                      #
  979. ########################################################################
  980.  
  981. #
  982. # Host-specific macros
  983. #
  984. # Note: The values of these macros are merely placeholders.
  985. #       Actual values will get substituted later at delivery
  986. #       time when sendmail is invoked with the -oM command
  987. #       line flag to override these configuration file values.
  988. #
  989.  
  990. # The unqualified (domain-less) name of the mail relay
  991. DVmail.netcom.com
  992.  
  993. # The fully-qualified domain name of the mail hub
  994. DHnetcom.com
  995.  
  996. # Version # of this file
  997. DZ1.0um
  998.  
  999. # Official canonical hostname.
  1000. #
  1001. # Do not bother setting macro $w (hostname) since we do not use it
  1002. # and sendmail will set it for us anyway.
  1003. Dj$w
  1004.  
  1005. #
  1006. # Standard macros
  1007. #
  1008.  
  1009. # Name used for error messages
  1010. DnMailer-Daemon
  1011. # UNIX header format
  1012. DlFrom $g  $d
  1013. # Delimiter (operator) characters
  1014. Do.:%@!^=/[]
  1015. # Format of a total name
  1016. Dq<$g>
  1017.  
  1018. #
  1019. # Options
  1020. #
  1021.  
  1022. # Process messages in the background.
  1023. Odbackground
  1024. # Accept oldstyle addresses
  1025. Oo
  1026. # SMTP read timeout
  1027. Or15m
  1028. # Queue directory
  1029. OQc:\tcpip\etc\mqueue
  1030. # Always queue for safety
  1031. Os
  1032. # Time to live in the queue
  1033. OT5d
  1034.  
  1035. #
  1036. # Message precedences
  1037. # Note: use equal weight so we can let relay decide what to do
  1038. #
  1039. Pfirst-class=0
  1040. Pspecial-delivery=0
  1041. Pjunk=0
  1042.  
  1043. #
  1044. # Trusted users
  1045. # Note: not used by OS/2 sendmail
  1046. #
  1047. Troot daemon
  1048.  
  1049. #
  1050. # Required headers
  1051. #
  1052. HReceived: $?sfrom $s $.by $j ($v/$Z) id $i; $b
  1053. H?D?Date: $a
  1054. H?F?From: $q
  1055. H?M?Message-Id: <$t.$i@$j>
  1056. H?D?Resent-Date: $a
  1057. H?F?Resent-From: $q
  1058. H?M?Resent-Message-Id: <$t.$i@$j>
  1059. H?x?Full-Name: $x
  1060.  
  1061. # Throw all mail to relay
  1062. S0
  1063. R$*            $#relay $@$V $:$1
  1064.  
  1065. # Rewrite local addresses so they look like they are from the hub
  1066. S3
  1067. R$*<$*<$*>$*>$*    $3        denest
  1068. R$*<$+>$*    $2        basic RFC822 parsing
  1069. R$*<>$*        $n        RFC1123 <>
  1070. R$-        $@ $1 @ $H    user => user@hub
  1071. R$+@$+        $: $1 @ $[$2$]    canonify the hostname
  1072. R$+@$w        $@ $1 @ $H    user@thishost => user@hub
  1073. R$w!$+        $@ $2 @ $H    thishost!user => user@hub
  1074. R$+%$w        $@ $>3 $1 @ $2    handle % hack thishost
  1075. R$*        $@ $1        default, unchanged
  1076.  
  1077. #
  1078. # Mail Delivery Agents
  1079. #
  1080. Mrelay,    P=[IPC], F=mDFMuCX, S=0, R=0, A=IPC $h
  1081. Mlocal, P=c:\tcpip\umail\umailer.exe, F=lsDFP,  S=10, R=20, A=-dest c:\tcpip\umail\server\inbox -to $u
  1082. Mprog,  P=xxx, A=Required by sendmail but we do not use this
  1083.  
  1084. # Sendmail configuration file *must* end with a newline - do not remove below newline
  1085.  
  1086. WHERE CAN I FIND THE FILES ?
  1087.  
  1088. FTP to marketplace.com for TIA binaries, FAQs and other documentation.
  1089.  
  1090. FTP to ftp.netcom.com:/pub/rupa/tia and look at the readme. Here you will find
  1091. the slipup.cmd files you need for various systems. It is recommended by the author
  1092. of the files (rupa@netcom.com) that you get the latest version of slipup.cmd from
  1093. his account.
  1094.  
  1095.                                      samiam@netcom.com
  1096.