home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / BBS_UTIL / BFE3100P.ZIP / BFE3100P.EXE / DOCS / GATEWAY.DOC < prev    next >
Text File  |  1994-03-12  |  26KB  |  540 lines

  1.                          ▄▄▄▄▄▄  ▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄
  2.                          █ ▄▄ █▄ █ ▄▄▄▄█ █ ▄▄▄▄█
  3.                          █ ▄▄▄ █ █ ▄▄█   █ ▄▄▄█▄
  4.                          █▄▄▄▄▄█ █▄█     █▄▄▄▄▄█
  5.          
  6.            ▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄ ▄▄▄ ▄▄▄ ▄▄▄▄▄▄▄ ▄▄▄ ▄▄▄
  7.            █ ▄▄▄▄█ █ ▄▄▄ █ █▄▄ ▄▄█ █ ▄▄▄▄█ █ █▄█ █ █ ▄▄▄ █ █▄▀█▀▄█
  8.            █ █▄▄ █ █ ▄▄▄ █   █ █   █ ▄▄▄█▄ █ ▀▄▀ █ █ ▄▄▄ █  ▀█ █▀
  9.            █▄▄▄▄▄█ █▄█ █▄█   █▄█   █▄▄▄▄▄█ █▄█▀█▄█ █▄█ █▄█   █▄█
  10.  
  11. ─────────────────────────────────────────────────────────────────────────────
  12.             A special feature of the enhanced version of BFE!
  13. ─────────────────────────────────────────────────────────────────────────────
  14.  
  15. For years now, the vast majority of the world's amateur online BBS systems
  16. have been DOS-based Bulletin Board packages.  Packages such as Scott Dudley's 
  17. Maximus CBCS and Andrew Milner's RemoteAccess BBS have gained large sysop 
  18. followings, and have each spawned no less than a dozen clones.  The last 
  19. estimate was around 30,000+ public access BBS systems in the United States
  20. alone.  Not bad when you think that most of this started from a man named 
  21. Ward Christensen's garage back on a snowy night in February, 1978, in 
  22. Chicago.
  23.  
  24. Now imagine a real-time network which connects millions of users and systems
  25. scattered across the globe.  Internet.  The final word in cyberspace 
  26. computing.  With the advent of the "NII" (information superhighway), the 
  27. Internet is growing by leaps and bounds.
  28.  
  29. Sound good so far?  Well, the fact of the matter is, that most of the systems 
  30. belonging to the Internet are UNIX based systems, not DOS based.  So, how do 
  31. we provide access to those UNIX systems via our DOS-based BBS packages?  With 
  32. BFE's gateway feature, of course!
  33.  
  34. Let's face it, telephone lines are expensive these days.  Why have a separate
  35. dedicated dialup line for your UNIX system?  Use BFE's gateway to simply
  36. "gate" calls to your DOS system through a standard NULL modem cable that you
  37. can even make yourself!  Whether you intend to access your UNIX system to
  38. provide e-mail services, telnet, and ftp, or if you simply want a convenient
  39. method of gaining access to your UNIX system via your DOS-based BBS package,
  40. BFE's gateway system is at your disposal.
  41.  
  42. BFE's gateway feature is an integral part of BFE which provides a direct 
  43. serial connection to a UNIX-based system such as SCO/UNIX, Xenix, AIX, Linux, 
  44. Coherent, etc., from a DOS-based BBS system.  Keep the flexibility and 
  45. functionality of your existing DOS-based BBS intact, and simply use the
  46. gateway to shove those advanced users over to the UNIX side of things!  DOS
  47. is pretty, UNIX is powerful - now, you can have both!
  48.  
  49. As of BFE v3.10.0, there are two methods of using BFE/Gateway.  The first,
  50. which was supported in release 3.00.0p, provides a system shell to the UNIX
  51. server.  This was great for system administrators or experienced UNIX users
  52. but not so hot for beginners.  UNIX is terribly cryptic in nature, and not
  53. something you want to thrust your neophyte DOS users into right away.  Now,
  54. BFE takes a more "Client/Server" approach to things.  Through the use of
  55. special BFE menu and scripting options, you can now create a complete
  56. menu-driven interface to your UNIX server.
  57.  
  58. ** NOTE: The gateway performs "raw" data interpretation, which essentially
  59. means that your users can use literally any terminal emulation your UNIX
  60. system supports (i.e. ansi, vt100, vt220, wyse, IBM/3151, etc).
  61.  
  62. Through inexpensive SLIP connections with true Internet hosts, it is now
  63. possible to provide "live" Internet access to your users!  Imagine being
  64. able to provide "telnet" and "ftp" access to your DOS-based BBS subscribers!
  65. And even if you do not run a SLIP connection directly to the Internet, it
  66. provides a nifty way of providing affordable Usenet newsgroups and Internet
  67. E-Mail to your users.  Read onward!
  68.  
  69. ────────────────────────────────────────────────────────────────────────────
  70.  
  71.  ┌──────────────────────┐
  72. ▄│   Gateway Operation  │
  73. █└──────────────────────┘
  74. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  75.  
  76. There really isn't much (externally, at least) in the operation of a BFE    
  77. gateway.  The gateway cannot be set up as a menu option, at least directly.
  78. It must be run from a BFE/Script.  Set up a menu option to run a script file
  79. (we'll call ours UNIX.SCR).  It should look something like:
  80.  
  81.         main()
  82.         {
  83.            gateway(1, 1);
  84.         }
  85.  
  86. In the above example, we are creating a gateway using fossil port 1 (COM2)
  87. as a gateway port.  The gateway port (obviously) must be different than the
  88. port the user is currently connected to.  The second argument specifies
  89. whether or not BFE should perform IPC checking to determine if the gateway
  90. connection has been established.  This is particularly handy, as you will
  91. see later on.
  92.  
  93. When the user executes the BFE script, and all goes well, he/she should see
  94. your UNIX login prompt on his remote screen.  As the user is entering UNIX
  95. commands, logging activity will occur on the local system console.
  96.  
  97. Scenario: 1) User calls in on modem (COM1), connects to BFE
  98.           2) User selects "gateway" option from a BFE menu
  99.           3) BFE runs the script file associated with that menu option
  100.           4) User gets "shuttled" out to UNIX system through COM2
  101.           5) User ends his UNIX session by entering the escape sequence.
  102.           6) User returns to BFE
  103.  
  104. If you run into problems, the first suspect should be the fossil driver.
  105. Make sure that you have set your fossil up with the proper settings for
  106. each port involved.  It is possible to set the BFE port to one speed, and
  107. set your UNIX port to another, as long as the fossil reflects the difference! 
  108. This is crucial.  The above scenario dictates a very minimal BFE gateway
  109. setup.  For more advanced information, read on.
  110.  
  111. Make sure you read over the GATETIPS.DOC file included with the archive.  It
  112. provides answers to most common questions.  
  113.  
  114. ────────────────────────────────────────────────────────────────────────────
  115.  
  116.  ┌──────────────────────┐
  117. ▄│   Escape Sequences   │
  118. █└──────────────────────┘
  119. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  120.  
  121. As mentioned above, BFE's gateway feature supports special "escape sequences".
  122. These sequences are there to let BFE know how to handle the user in certain
  123. situations.  The following sequences are available, and configurable via the
  124. external BFE.LNG (language) file.
  125.  
  126. GW_EXIT     - This server string will log the user off of the UNIX system and
  127.               returning to BFE.
  128.  
  129. GW_RETN     - If this string comes across the BFE console from the UNIX
  130.               system, the connection to the gateway will remain live, but the
  131.               user will be returned to BFE.  Here is where the interaction
  132.               begins (more later).
  133.  
  134. ────────────────────────────────────────────────────────────────────────────
  135.  
  136.  ┌──────────────────────┐
  137. ▄│   Transmit2Gateway   │
  138. █└──────────────────────┘
  139. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  140.  
  141. A menu type called "Transmit to Gateway" has been implemented which will
  142. allow you to transmit remote strings to your UNIX server, after a login has
  143. been established.  This may sounds tricky, and it is, so pay attention here!
  144.  
  145. As a simple example to illustrate the feature, let's create a simple UNIX
  146. login and menuing script which will log the user in, and provide a few menu
  147. options for him.  This is known as the "Client" script, or the "Client"
  148. portion of our "Client/Server" approach to things.  We'll tackle the "Server"
  149. portion in a moment.
  150.          
  151. This simple script will simply establish the gateway connection, log the user
  152. into the UNIX server, and handle a few simple UNIX commands for them via
  153. hotkeyed menu items.
  154.  
  155. -----------------[ UNIX.SCR - Cut here ]
  156.  
  157. /* UNIX.SCR - BFE Script file to gate callers to SCO/Unix 3.2 through COM2 */
  158.  
  159. main()
  160. {
  161.    int rc;
  162.  
  163.    /* Etablish the gateway connection if it has not been setup already */
  164.    rc = IsGateway();
  165.    if(rc == 0) {
  166.      gateway(1);
  167.    }
  168.  
  169.    /* Call our simple menu function */
  170.    SCO_Menu();
  171. }
  172.  
  173. SCO_Menu()
  174. {
  175.   
  176.   int breakflag;
  177.   int rc;
  178.   char key;
  179.   int ansi;
  180.   
  181.   while (breakflag == 0) {
  182.     
  183.     ansi = checkansi();
  184.     clearscreen();
  185.  
  186.     SETCOLOR("bright yellow on black");
  187.     centermsg("Interactive SCO/UNIX Menu");
  188.     putsnl("");
  189.         
  190.     menuline("Who is on the system", "1");
  191.     menuline("Enter Visual SCO Desktop Shell", "2");
  192.     menuline("Quit SCO Menu", "Q");
  193.  
  194.     key = menu("12Q");
  195.     
  196.     setcolor("flashing bright white on black");    
  197.  
  198.     if(key == 'Q') {
  199.       breakflag = 1;
  200.     }    
  201.  
  202.     if(breakflag == 0) {
  203.     
  204.       if(key == '1') {
  205.         Transmit2Gateway("bfewho", 1);
  206.       }
  207.       
  208.       if(key == '2') {
  209.         Transmit2Gateway("bfescosh", 1);
  210.       }
  211.       
  212.     }
  213.   }
  214. }
  215.  
  216. -----------------[ End of UNIX.SCR - Cut here ]
  217.  
  218. As you can see from above, we first establish the gateway connection through
  219. the use of the "gateway()" function call.  Before we do that, however, we
  220. make a quick call to the "IsGateway()" function, to determine whether or
  221. not the connection to the gateway has been established already.
  222.  
  223. Once the user logs into the system properly, and control is passed back to
  224. BFE (more on this later!), then he will be faced with our sample interactive
  225. menu.  Then, based on the user's selection, the internal Transmit2Gateway()
  226. function is called to pass a remote string to the UNIX system (prompt).
  227.  
  228. ** NOTE:  The second argument to the Transmit2Gateway() function is used to
  229. determine whether or not the command is PASSIVE or ACTIVE.  Interactive
  230. tasks such as mail editing, UNIX shells, etc, are examples of ACTIVE tasks.
  231. The user will remain in control of the server until the application returns
  232. control to BFE.  PASSIVE tasks are those tasks which simply need to be
  233. initiated, and not interacted with.  Examples of PASSIVE tasks include all
  234. UNIX daemons, cleanup programs such as uulog, etc.  If a task is PASSIVE in
  235. nature (2nd argument is 0), then control will be immediately returned to BFE
  236. after the command has been sent to the UNIX server through the gateway.  The
  237. user will not be able to interact with the UNIX system using PASSIVE commands.
  238.  
  239. You will notice that instead of calling the normal UNIX "who" function if the
  240. user presses the "1" key, we call a custom UNIX script appropriately called
  241. "bfewho".  Please note that this is not necessary, but allows you to more
  242. with it to clean things up.
  243.  
  244. Here is our sample UNIX "bfewho" script which resides in /usr/bin on our
  245. system:
  246.  
  247. ------------[ /usr/bin/bfewho ]
  248. clear
  249. who | more
  250. /usr/bin/retbfe
  251. ------------[ end of /usr/bin/bfewho ]
  252.  
  253. As you can see, we simply clear the screen, and pipe the call through the
  254. UNIX "more" filter, in case the output runs past the bottom of the screen.
  255. Then we call our /usr/bin/retbfe script, which passes control back to BFE.
  256. This script looks like:
  257.  
  258. ------------[ /usr/bin/retbfe ]
  259. echo
  260. echo Press ENTER to return to BFE:
  261. read $DUMMY
  262.  
  263. echo *RETURN2BFE*
  264. ------------[ End of /usr/bin/retbfe ]
  265.  
  266. Above, we simply place a "continue" prompt on the screen, and read in a
  267. dummy variable.  Then, the "*RETURN2BFE*" string is echoed, which BFE's
  268. gateway will interpret accordingly, and return back to our sample menu.
  269. The /usr/bin/retbfe script used above is used with all of our "Server"
  270. side (UNIX) scripts, in order to pass control back to BFE.
  271.  
  272. This sounds tricky, but it's really quite simple once you get your basics
  273. down.  If you need assistance, once again, we stand ready to help you.
  274.  
  275. Our example menu above will continue, until the user presses "Q" to quit
  276. the script and return back to the calling BFE menu.  Although the gateway
  277. connection itself must be established through a BFE scriptfile, the actual
  278. UNIX commands may appear in standard BFE menus.  Let's create a sample
  279. standard BFE menu which will establish a connection, and provide some
  280. rudimentary Internet e-mail facilities.
  281.  
  282. Our first menu item will allow the user to log on properly to establish
  283. the connection:
  284.  
  285. ┌───────────────────────────────────────────────────────[ BFE/Setup v3.00.0 ]┐
  286. │ -  - --───                                                    ───-- -  - │
  287. └────────────────────────────────────────────────────────────────────────────┘
  288. ┌─────────────────────────── Menu Option Editor ─────────────────────────────┐
  289. │ Description                                                                │
  290. │ Log on to the SCO/UNIX Server                                              │
  291. │ Hotkey             1                                                       │
  292. │ Flavor             NORMAL                                                  │
  293. │ Option Type        S  Run a BFE script program                             │
  294. │ Security           0                                                       │
  295. │ Portspeed          TRUE                                                    │
  296. │ PassParms          Yes                                                     │
  297. │ Prompt                                                                     │
  298. │ Secondary Field    logon.scr                                               │
  299. │ Process                                                                    │
  300. │ Showafter                                                                  │
  301. │ Password                                                                   │
  302. │ Color Override                                                             │
  303. │ Create Dropfile    None                                                    │
  304. │ Dropfile Path                                                              │
  305. └────────────────────────────────────────────────────────────────────────────┘
  306.  
  307. This will simply call the "logon.scr" script file, which should look something
  308. like:
  309.  
  310.         main() {
  311.              int rc;
  312.  
  313.              /* Is the gateway already active for this session? */
  314.              rc = IsGateway();
  315.              if(rc != 0) {
  316.                Error("You are already connected to the gateway!");
  317.                return;
  318.              }
  319.  
  320.              gateway(1, 1);
  321.              DisplayFile("CONNECT");
  322.         }
  323.  
  324.  
  325. Next, we will add an option which will allow the user to check his or her
  326. Internet E-Mail:
  327.  
  328. ┌───────────────────────────────────────────────────────[ BFE/Setup v3.00.0 ]┐
  329. │ -  - --───                                                    ───-- -  - │
  330. └────────────────────────────────────────────────────────────────────────────┘
  331. ┌─────────────────────────── Menu Option Editor ─────────────────────────────┐
  332. │ Description                                                                │
  333. │ Check your Internet E-mail                                                 │
  334. │ Hotkey             2                                                       │
  335. │ Flavor             NORMAL                                                  │
  336. │ Option Type        8  Active Transmit to Gateway                           │
  337. │ Security           0                                                       │
  338. │ Portspeed          TRUE                                                    │
  339. │ PassParms          Yes                                                     │
  340. │ Prompt                                                                     │
  341. │ Secondary Field    /usr/bin/bfemail                                        │
  342. │ Process                                                                    │
  343. │ Showafter                                                                  │
  344. │ Password                                                                   │
  345. │ Color Override                                                             │
  346. │ Create Dropfile    None                                                    │
  347. │ Dropfile Path                                                              │
  348. └────────────────────────────────────────────────────────────────────────────┘
  349.  
  350. Here, we are passing the string "/usr/bin/bfemail" to the UNIX prompt through
  351. the gateway.  Here is a sample /usr/bin/bfemail:
  352. ---
  353.         mail
  354.         /usr/bin/retbfe
  355. ---
  356.  
  357. Next, we need to create an option to allow the user to actually ENTER an
  358. Internet E-mail message:
  359.  
  360. ┌───────────────────────────────────────────────────────[ BFE/Setup v3.00.0 ]┐
  361. │ -  - --───                                                    ───-- -  - │
  362. └────────────────────────────────────────────────────────────────────────────┘
  363. ┌───────────────────────────── Menu Option Editor ───────────────────────────┐
  364. │ Description                                                                │
  365. │ Enter an Internet E-mail Message                                           │
  366. │ Hotkey             3                                                       │
  367. │ Flavor             NORMAL                                                  │
  368. │ Option Type        8  Active Transmit to Gateway                           │
  369. │ Security           0                                                       │
  370. │ Portspeed          TRUE                                                    │
  371. │ PassParms          Yes                                                     │
  372. │ Prompt             To:                                                     │
  373. │ Secondary Field    /usr/bin/bfemailenter                                   │
  374. │ Process                                                                    │
  375. │ Showafter                                                                  │
  376. │ Password                                                                   │
  377. │ Color Override                                                             │
  378. │ Create Dropfile    None                                                    │
  379. │ Dropfile Path                                                              │
  380. └────────────────────────────────────────────────────────────────────────────┘
  381.  
  382. In this example, we are using BFE's custom prompt feature to obtain a field
  383. of user input.  This is automatically passed to our /usr/bin/bfemailenter
  384. script by BFE.  By doing this, they actually enter the recipient's e-mail
  385. address or name, and BFE will pass it to the script.
  386.  
  387. Here is a sample /usr/bin/bfemailenter script:
  388. ---
  389.         mail $1
  390.         /usr/bin/retbfe
  391. ---
  392.  
  393. Next, let's create an option which will take them into the SCO visual
  394. desktop shell:
  395.  
  396. ┌───────────────────────────────────────────────────────[ BFE/Setup v3.00.0 ]┐
  397. │ -  - --───                                                    ───-- -  - │
  398. └────────────────────────────────────────────────────────────────────────────┘
  399. ┌───────────────────────────── Menu Option Editor ───────────────────────────┐
  400. │ Description                                                                │
  401. │ Enter the SCO Desktop Shell                                                │
  402. │ Hotkey             S                                                       │
  403. │ Flavor             NORMAL                                                  │
  404. │ Option Type        8  Active Transmit to Gateway                           │
  405. │ Security           0                                                       │
  406. │ Portspeed          TRUE                                                    │
  407. │ PassParms          Yes                                                     │
  408. │ Prompt                                                                     │
  409. │ Secondary Field    /usr/bin/bfescosh                                       │
  410. │ Process                                                                    │
  411. │ Showafter                                                                  │
  412. │ Password                                                                   │
  413. │ Color Override                                                             │
  414. │ Create Dropfile    None                                                    │
  415. │ Dropfile Path                                                              │
  416. └────────────────────────────────────────────────────────────────────────────┘
  417.  
  418. A sample /usr/bin/bfescosh script:
  419. ---
  420.         scosh
  421.         /usr/bin/retbfe
  422. ---
  423.  
  424. Finally, let's create an option to provide a normal UNIX command shell.  Note
  425. that this time, we are running a script called SHELL.SCR, which disables the
  426. IPC checking capabilities of the gateway system.  We do this, so that the
  427. gateway doesn't think we are trying to establish a new session, but rather
  428. to simply provide the user access to a session already open.
  429.  
  430. ┌───────────────────────────────────────────────────────[ BFE/Setup v3.00.0 ]┐
  431. │ -  - --───                                                    ───-- -  - │
  432. └────────────────────────────────────────────────────────────────────────────┘
  433. ┌───────────────────────────── Menu Option Editor ───────────────────────────┐
  434. │ Description                                                                │
  435. │ Enter a UNIX Shell                                                         │
  436. │ Hotkey             X                                                       │
  437. │ Flavor             NORMAL                                                  │
  438. │ Option Type        S  Run a BFE Script Program                             │
  439. │ Security           0                                                       │
  440. │ Portspeed          TRUE                                                    │
  441. │ PassParms          Yes                                                     │
  442. │ Prompt                                                                     │
  443. │ Secondary Field    shell.scr                                               │
  444. │ Process                                                                    │
  445. │ Showafter                                                                  │
  446. │ Password                                                                   │
  447. │ Color Override                                                             │
  448. │ Create Dropfile    None                                                    │
  449. │ Dropfile Path                                                              │
  450. └────────────────────────────────────────────────────────────────────────────┘
  451.  
  452. The "shell.scr" BFE script mentioned above, would look something like:
  453.  
  454. ---
  455.  
  456.         main()
  457.         {
  458.           int rc;
  459.  
  460.           rc = IsGateway();
  461.  
  462.           if(rc == 0) {
  463.             Error("You have not established your gateway session yet!");
  464.             return;
  465.           }
  466.  
  467.           gateway(1, 0);
  468.         }
  469.  
  470. ---
  471.  
  472. As you can see, all of our UNIX scripts end by calling /usr/bin/retbfe.
  473. Keep in mind that the "/usr/bin" path could be any path, that is just where
  474. we keep the BFE supplemental scripts on our system here.  The theory is
  475. simple, but powerful.  Call the UNIX command, and return control to BFE by
  476. sending the string specified as the GW_RETN string (BFE.LNG) across the port.
  477. Voila!  Keep in mind that this method of returning control to BFE only
  478. pertains to those tasks which are considered ACTIVE.  PASSIVE tasks do not
  479. require this at all, as BFE will handle it for you.
  480.  
  481. Using our new sample menu outlined above, the user will select "1" to log
  482. on to the UNIX system.  Once they enter the appprpriate name and password
  483. information at the UNIX login prompt, the normal startup procedures are
  484. carried out (i.e. the user's login sequence and/or various profiles).
  485. Unless you want the user to remain in the UNIX shell until they manually
  486. exit, you will need to send the "*RETURN2BFE*" string as mentioned above.
  487. The best thing to do is inform your users to run the /usr/bin/retbfe script
  488. when they want to exit the shell and return to BFE.
  489.  
  490. A good place to put this is usually at the end of their login .profile, or
  491. in /etc/profile.  Another nifty thing to do is simply check the tty line of
  492. the gateway port, and if it is the same as your gateway port, then you can
  493. return.  By performing this check, you can limit the immediate return after
  494. logging in only to gateway users, and not local users or dialin lines.  Here
  495. is a sample SCO/UNIX ksh snippet to do this:
  496.  
  497. ---[ Start of /usr/bin/bfelogin ]
  498. TTY=`tty`
  499.  
  500. if [ "$TTY" = "/dev/tty1a" ]
  501.    then
  502.      /usr/bin/retbfe
  503. fi
  504. ---
  505.  
  506. We call the /usr/bin/bfelogin script at the end of everyone's own .profile
  507. in their home directory.  This way the environment gets set up the way it
  508. should be, and then you can return control to by testing the tty line, and
  509. calling the /usr/bin/retbfe script.
  510.  
  511. BFE will automatically send the "exit" string to the UNIX server whenever
  512. there is a loss of carrier, BFE receives the CTRL [EXIT] sequence, or the
  513. user exits BFE (errorlevel exit, goodbye, etc).  This way, your users will
  514. be logged off properly under most, if not all circumstances.
  515.  
  516. Keep in mind that all of the above UNIX scripts were written for the UNIX
  517. "korn" shell.  If you wish to utilize these same scripts, you will need to
  518. make sure that all of your users who will be accessing your UNIX server
  519. are running the Korn shell.  Of course, you could always rewrite the scripts
  520. to use whatever shell type you prefer.
  521.  
  522. * NOTE: Be security conscious!  Password protect your UNIX shells and other
  523. sensitive menu options from would-be hackers.  Once you have your gateway
  524. setup tested thoroughly, you might want to use shell commands to trap
  525. break characters (such as CTRL-C or [DEL] in SCO/UNIX).  You can do this
  526. by placing the following block of ksh code at the top of each of your
  527. UNIX scripts:
  528.  
  529.         trap abort_func 1 2 3
  530.  
  531.         function abort_func {
  532.                 echo "\n\rAborted!\n\r"
  533.                 /usr/bin/retbfe
  534.                 exit
  535.         }
  536.  
  537. Confused?  Call us.... :-)
  538.  
  539.  
  540.