NAME¶
Seyon - X11 Telecommunications Package.
SYNOPSIS¶
seyon [-option ...] [-toolkit_option ...] [-- -emulator_option ...]
DESCRIPTION¶
Seyon is a complete full-featured telecommunications package for the
X
Window System. Some of its features are:
- * Dialing directory that supports an unlimited number of
entries. The directory is fully mouse-driven and features call progress
monitoring, dial timeout, automatic redial, multi-number dialing, and
circular redial queue. Each item in the dialing directory can be
configured with its own baud rate, bit mask, and script file. The dialing
directory uses a plain-text phone book that can be edited from withen
Seyon. Seyon also supports manual dialing.
- * Terminal emulation window supporting DEC VT02, Tektronix
4014, and ANSI. Seyon delegates its terminal emulation to xterm, so all
the familiar xterm functions such as the scroll-back buffer, cut-and-paste
utility, and visual bell are availabe through Seyon's terminal emulation
window. Using xterm also means that Seyon has a more complete emulation of
VT102 than other any Unix or DOS telecommunications program. Other
terminal emulation programs can also be used with Seyon to suit the user's
need; for example, color xterm can be used to provide emulation for color
ANSI (popular on many BBS systems), and xvt can be used if memory is a bit
tight.
- * Script language to automate tedious tasks such as logging
into remote hosts. Seyon's script interpreter uses plain-text files and
has a syntax similar to that of sh, with a few extra addtions. It supports
many familiar statements such as conditional branching by
if-else and looping by goto. Scripts may be assigned
to items in the dialing directory for automatic execution after a
connection is made.
- * Unlimited number of slots for external file transfer
protocols. Protocols are activated from a mouse-driven transfer console
that uses a plain-text file, editable from withen Seyon, for protocol
configuration. Seyon prompts the user for filenames only if the chosen
protocol requires filenames or if the transfer operation is an upload, for
which Seyon also accepts wildcards. Multiple download directories can be
specified for the different transfer slots.
- * Support for Zmodem auto-download. Seyon detects incoming
Zmodem signature and automatically activates a user-specified zmodem
protocol to receive incoming files. Zmodem transfers can thus be
completely automatic and require no user intervention.
- * Translation modes. Seyon can perfrom useful trasnlations
on the user's input. From example, Seyon can translate backspace to delete
(useful on may Unix systems), newline to carriage return (useful on many
BBS hosts), and my favorite, meta key tranlation: to send keys pressed
while the meta (ALT) key is held down as an escape (ESC) followed by the
key press. The latter mode simulates the meta key on hosts that do not
support 8-bit-clean connections and makes possible the use of the meta key
in programs like Emacs on such hosts.
- * Other features: interactive setting of program
parameters, on-line help, software (XONN/XOFF) and hardware (RTS/CTS) flow
control, session capture to a file, and temporary running of a local shell
in the terminal emulation window.
Seyon is intended to be both simple and extensively configurable. Almost every
aspect of Seyon can be configured via the resources to suit the user's taste.
OPTIONS¶
Besides the toolkit options, Seyon recognizes the following command-line
switches:
- -modems <device-list>
- Overrides the resource modems. Refer to the
description of that resource below. Unlike the resource, however, the list
here has to be quoted if it consists of more than one entry.
- -emulator
<terminal-emulation-program>
- Instructs Seyon to use the specified program as the
terminal emulator. If Seyon fails to execute that program, it will fall
back to xterm. If this option is not given, Seyon will try to use
seyon-emu, which should be a link to your favorite terminal emulation
program. Seyon will fall back to xterm in this case as well if it fails to
execute seyon-emu.
- --
- This switch instructs Seyon to pass the rest of the
command-line to the terminal emulation program. All options following this
switch will be passed blindly to the emulator. This switch cannot be
combined with -noemulator.
- -nodefargs
- Seyon usually invokes the terminal emulation program with
some options to set the application name and window and icon titles (those
are -name Seyon -T "Seyon Terminal Emulator" -n Terminal). If
this switch is given, Seyon will not pass those options to the emulator.
This is to accommodate terminal emulation programs that use a different
command-line syntax than xterm -- like xvt, cmdtool, shelltool, ..etc. You
can use the '--' switch to pass your own options to the emulator.
- -noemulator
- This option is valid only if Seyon is invoked from withen a
terminal emulation program in the foreground of an interactive shell
session. If given, Seyon will not launch a new terminal emulator, but will
use the existing one instead. You cannot use the '--' switch if this
option is given.
- -script <script-file>
- Causes Seyon to automatically executes the specified script
after the startup script is run. The specified script file will be looked
for according to the rule mentioned under the description of the resource
scriptDirectory below.
- -entries <entries-list>
- Overrides the resource defaultPhoneEntries. Refer to
the description of that resource below. Unlike the resource, however, the
list here has to be quoted if it consists of more than one entry.
- -dial, -nodial
- Overrides the resource dialAutoStart and sets it to
'on' and If both -dial and -nodial are specified on the
command-line, the override value will be set according to the last of the
two on the command-line.
RESOURCES¶
Besides the toolkit resources, Seyon defines the following proprietry resources:
- autoZmodem (boolean)
- Specifies whether Seyon is to look for Zmodem auto-download
signature. If enabled, Seyon will detect incoming Zmodem signature and
execute the action given by the resource autoZmodemAction (typically to
start a local rz). Otherwise, Zmodem signature will be ignored. Default
value: on
- autoZmodemAction (string)
- Specifies a simple or compound action that will be executed
when Zmodem auto-download signature is detected. This action will be
executed only if the resource autoZmodem is enabled (see above). Refer to
the section entitled SeQuickKeys for a description of available
actions. Default value: ShellCommand($rz);
- backspaceTranslation (boolean)
- Whether to translate user's backspace to delete. When the
remote host is a Unix system, it's better to set this to on, since
many Unix systems are not happy with backspace. Default value:
off
- captureFile (string)
- The name of capture file. Seyon will write session captures
to this file when capture is enabled. This file will be placed in Seyon's
default directory. The capture file will not be overwritten by successive
capture sessions. Seyon will merely apped new capture to its end.
Default value: capture
- connectString (string)
- The modem connect string. This the string response the
modem gives when a connection is made after dialing. Default value:
CONNECT
- defaultBits (int)
- The default number of bits (character size). Seyon will set
the number of bits to this value on startup and will use it for items in
the dialing directory for which no such parameter is given. Valid values
are 5, 6, 7, and 8. Default value: 8
- defaultBPS (string)
- The default baud rate. Seyon will set the baud rate to this
value on startup and will use it for items in the dialing directory for
which no baud rate is given. Default value: 9600
- defaultDirectory (string)
- Seyon's default directory. When looking for its files,
Seyon will first try this default directory, then the current directory.
Seyon will also put the capture file in this directory. Default value:
~/.seyon
- defaultParity (int)
- The default parity. Seyon will set the parity to this value
on startup and will use it for items in the dialing directory for which no
such parameter is given. Valid values are 0 (no parity), 1 (odd parity),
and 2 (even parity). Default value: 0
- defaultPhoneEntries (int array)
- This resource specifies a list of numbers corresponding to
the order the entries in the dialing directory appear at. Seyon will
highlight (select) those entries on startup and whenever you click
``Default'' from the dialing directory. This is useful if there is a set
of entries that you most frequesntly dial that want to be highlghted
automatically instead of doing that every time by hand. You can override
this resource by the -entries command-line switch. Unlike the
command-line switch, however, the list here should not be quoted.
Phonebook entries numbering starts at one. No default value.
- defaultStopBits (int)
- The default number of stop bits. Seyon will set the number
of stop bits to this value on startup and will use it for items in the
dialing directory for which no such parameter is given. Valid values are 1
and 2. Default value: 1
- dialAutoStart (boolean)
- This resource specifies that Seyon should start dialing the
entries specified by the resource defaultPhoneEntries (or its
override command-line switch) on startup. Seyon will commence dialing
those entries after executing the startup script and any script specified
at the command line. A more convenient way of automatic dialing on startup
is to use the override command-line switch -dial, which overrides
this resource and enables. If the resource is enabled, it can be disabled
at the command line by the override switch -nodial. Refer to the
description of these switches above. Default value: off
- dialCancelString (string)
- The string Seyon sends to the modem to cancel dialing while
in progress. Default value: ^M
- dialDelay (int)
- How long in seconds Seyon should wait after no connection
is made withen dialTimeOut before ciculating to the next number.
Default value: 10
- dialDirFormat (string)
- This is a format string that specifies the layout of the
dialing direcotry. The default is '%-15s %-15s %6s %1c%1c%1c %1c%1c %s'
(no quotes). Briefly: the fields represent the host name, number, the baud
rate, bits, parity, stop bits, whether there is a custom prefix, suffix,
and the script name. You can understand more what each field refers to by
comparing with dialing directory, fields that use the current setting (via
the keyword CURRENT) are designated by a question mark. Notice that you
cannot change the order the items in the dialing directory appear at, only
the format. For example, if the numbers you call are all 7-digits, your
host names are short, you never use baud rates above 9600, and you like
dashes between the baud rate, bits, parity, and stop bits fields, then you
may prefer to use the format string '%-10s %-8s %5s-%1c-%1c-%1c %1c%1c
%s', which would be narrower than the default format. Default value:
%-15s %-15s %6s %1c%1c%1c %1c%1c %s
- dialPrefix (string)
- The string Seyon sends to the modem before the phone
number. To use pulse dialing, set this resource to .IR ATDP . Default
value: ATDT
- dialRepeat (int)
- How many times Seyon should try dialing a number. Seyon
will give up on dialing a number if no connection is made after this many
tries. Default value: 5
- dialSuffix (string)
- The string Seyon sends to the modem after the phone number.
This string has to contain a carraige return or the number will never get
sent to the mode. Default value: ^M
- dialTimeOut (int)
- How long in seconds Seyon should wait for a connection to
made after dialing is complete. Seyon will cancel the dialing if no
connection is made withen this period. Default value: 45
- exitConfirm (boolean)
- Whether Seyon should prompt for hanguping up before
exiting. If off-line and the resource ignoreModemDCD is set to 'off',
Seyon will not prompt for hanging up upon exiting even if this resource is
set to Default value: on
- funMessages (string array)
- The fun messages to be displayed when Seyon has no other
important information to show. This should be a list of double-quoted
[funny] sentences. Default value: varies, version-dependent
- funMessagesInterval (int)
- The temporal interval in seconds between successive fun
messages. Default value: 15
- idleGuard (boolean)
- If set to on, Seyon will send a string to the remote host
whenever the terminal session is idle (no keyboard input) for a given
amount of time. The resources idleGuardInterval and
idleGuardString specify the above time interval and the string to
be sent to the remote host when idle. It is useful to enable this features
to keep the session alive when one is away from the computer for a while
(e.g. to prevent auto-logout). Default value: off
- idleGuardInterval (int)
- The amount of time in seconds Seyon is to consider the
session idle when there is no keyboard activity at the terminal for that
long. Seyon will send a string to the remote host every such interval as
long as the session is idle. Default value: 300
- idleGuardString (string)
- The string to be sent to the remote host when the session
is idle. This string will be sent at a regular interval as long as the
sesiion remains idle. Note that the current translations will be used in
sending this string; for example, if backspaceTranslation is enabled, then
the default string <Space><BS> will be sent as
<Space><DEL>. Default value: \s^H (space then
backspace)
- ignoreModemDCD (boolean)
- If this resource is set to 'on', the modem DCD (Data
Carrier Detect) status will be ignored. Some of the consequences of
setting this to ´on´ is that Seyon will always prompt for hangup
(if the resource exitConfirm is set to 'on') even if the modem DCD
status indicates that it is off-line, and dialing will be attempted even
if the modem DCD status indicates that it is on-line. It is highly
recommended that you keep this set to 'off' unless your modem does not
honor the DCD line. Consult your modem's manual for more details.
Default value: off
- hangupBeforeDial (boolean)
- When set to on, Seyon will hangup the line (if
connected) before dialing the phone number. Otherwise, the number will be
dialed without hanging up, and it is the user's responsibility to ensure
that the line is clear (no connection) when dialing. Default value:
on
- hangupConfirm (boolean)
- Whether Seyon should ask for confirmation before hanging up
the phone Default value: on
- hangupViaDTR (boolean)
- When enabled, Seyon will hangup up the modem by dropping
DTR. This is much quicker than hanging up by sending a Hayes-like hangup
string to the modem and waiting to allow for escape guard time. However,
some modems and serial drivers choke on dropping DTR and others just don't
hangup when DTR is dropped, so in these cases it should be disabled. If
disabled, Seyon will hangup the modem by sending the string specified by
the resource modemAttentionString, followed by that specified by the
resource modemHangupString. Default value: off
- metaKeyTranslation (boolean)
- Whether to transmit keys pressed while the meta (ALT) key
is held down as an escape (ESC) followed by the key press. Most hosts do
not support 8-bit sessions, and hence do not recognize the meta key.
Therefore, this translation mode has to be enabled when connected to such
hosts to take advantage of the meta key in programs that make use of it
like Emacs. Default value: on
- modemAttentionString (string)
- The string to send to the modem to get its attention
(switch to command mode). This string will be sent to the modem before the
hangup string when hangupViaDTR is disabled. Default value:
+++
- modemHangupString (string)
- The hangup string to send to the modem when hangupViaDTR is
disabled. Default value: ATH^M
- modems (string)
- A list of modem devies to use. Seyon will try modems in
this list one after the other until it finds an available modem or the
list is exhausted. No default value.
- modemStatusInterval (int)
- This resource controls the amount of time (in seconds)
between updates to the modem status toggles (including the clock). The
default is five seconds, but you can set it to one second (or any other
number) if you want the toggles to be updated more frequently. Even if you
set this to a large number, Seyon is intellegent enough to update the
toggles after each connect or hangup. Default value: 5
- modemVMin (int)
- This resource specifies the minimum number of characters
that should be in the buffer before the read process is satified. The read
process will wait until that number of incoming characters is in the
buffer or 0.1 second has elapsed between the receiption of two characters
before displaying the data in the buffer. This results in the data being
displayed in chunks and speeds up the terminal display. The speedup would
be most noticeable on slow machnes with fast modems.
Leave this resource at its default (1) or set it at a low value (6) if you
have a slow modem (e.g. 2400bps). Otherwise you might set it to the
maximum value, which is platform-dependent but generally 255. If you set
it to any number greater than the maximum value, it will be truncated to
the maximum value. Default value: 1
- newlineTranslation (string)
- When the Enter key is pressed, newline character (\n) is
generated. This resource determines what to translate this character to.
Three modes are possible: no translation (newline), carriage return (\r),
and carriage return / line feed. Unix systems usually expect newline or
carrage return, DOS systems expect carraige return or carriage return /
line feed. The three keywords corresponding to the above modes are
nl, cr, and cr/lf. Default value: cr
- noConnectStringX [X = 1-4] (string)
- The response strings given by the modem when connection
fails. Default values: NO CARRIER, NO DIALTONE, BUSY,
VOICE (respectively)
- phonelistFile (string)
- The name of the phone list (dialing directory) file. See
the included example to learn how this file should be formatted.
Default value: phonelist
- postConnectAction (string)
- Specifies a simple or compound action that will be executed
after a connection to a remote host is made. This action will be executed
before running any script attached to that host in the dialing directory.
All actions here have to be synchronous. Refer to the section entitled
SeQuickKeys below for a description of available actions.
Default value: Beep();
- protocolsFile (string)
- The name of the protocols file. This file tells Seyon what
file transfer protocols are available. The user will be promted with a
list based on this file when file transfer is to be initiated. Default
value: protocols
- quickKey?
- Refer to the section entitled SeQuickKeys below.
- rtsctsFlowControl (boolean)
- Whether Seyon should turn on RTS/CTS hardware flow control.
Make sure the modem is set to use this as well. Default value:
off
- scriptDirectory (string)
- Seyon's script directory. When looking for scripts, Seyon
will first try this script directory, then the current directory.
Default value: defaultDirectory
- showFunMessages (boolean)
- Whether to display funny messages when Seyon has no other
important information to show. Seyon will display those messages at an
interval specified by the funMessagesInterval resource when there
is no other important information to convey to the user. To disable the
display of fun messages, this resource has be set to off. Default
value: on
- startupAction (string)
- Specifies a simple or compound action that will be executed
on startup. This action is executed prior to running any script (in case
the -script switch is given) or dialing any entry of the dialing directory
(in case the -dial switch is given or the resource dialAutoStart is
enabled). You can make Seyon open the dialing directory automatically on
startup by using the simple action ``OpenWidnow(Dial);'' as a constituent
of this complex action stack. Note that running the startup script is just
a special case of this resource. Refer to the section entitled
SeQuickKeys for a description of available actions. Default
value: RunScript(startup);
- startupFile (string)
- Seyon's startup file. Seyon will execute all commands in
this file upon startup. This file can have any commands acceptable as
script commands. The most useful command to put here is the set
command, to set the various communications parameters. Default value:
startup
- stripHighBit (boolean)
- Whether to strip the high (eights) bit from incoming
characters. If set to on, the high bit of all incoming characters will be
stripped, which will make an 8-N-1 setting behave like 7-N-1, even though
eight bits are used for each character. Default value: off
- xonxoffFlowControl (boolean)
- Whether Seyon should turn on XON/XOFF software flow
control. Default value: off
SEQUICKKEYS¶
Seyon allows the user to have custom buttons, called SeQuickKeys (z quickies),
to which actions can be attached. SeQuickKeys provide a convenient way via
which the user can invoke frequently-used operations by a singe mouse click.
SeQuickKeys are specified through the resources quickKeyX, where X is an
integer corresponding to the order at which that SeQuickKey is to appear on
the command center. Relevant subparts of that resource are
visible,
action, and
label. Here is an example:
-
Seyon*quickKey3.visible: on
-
Seyon*quickKey3.action: FileTransfer(1,file); Beep();
-
Seyon*quickKey3.label: Upload
The first line specifies that SeQuickKey3 should be visible. The second line
specifies the action bound to the SeQuickKey (in this case, a compound
action), and the third line specifies the label for that SeQuickKey's button.
Other subparts can also be specified in a similar fashion (e.g. background,
foreground, ..etc.)
Actions can be either simple or compound. A compound action consists of a stack
of simple actions and can be used as simple mini-script.
Examples:
• Set(idleGuard,on); DialEntries(Default);
• Echo("Uploading files..."); Transmit(rz); \
FieTransfer(1,"*.ico $HOME/acct.wks"); Echo(Done);
• OpenWindow(Dial); DialEntries("2 5 6");
• Echo("Goodbye.."); Hangup(); Quit();
• Set(baud,9600); ManualDial("555-5555");
• Echo("Will upload..."); ShellCommand("$sz *.wks");
• Set(parity,0); RunScript(login.scr); Echo(Finished);
The following is a list of actions Seyon currently supports. Asterisks designate
asynchronoous actions. Brackets designate optional arguments.
- Beep (); Rings the bell making a short beep.
- CloseWindow(window [,...]);
- Closes (dismisses) the given windows. Currenly the only
valid argument to this action is Dial, which corresponds to the dialing
idrectory window. Example: CloseWindow(Dial);
- DialEntries(entries-list);*
- Dials entries in the dialing directory corresponding by
order to the given list. Entries will be dialed as if the user had
selected them on the dialing directory. Entries will be dialed without
opening the dialing directory. You can use the action
``OpenWindow(Dial);'' and stack the two actions in a compound action if
you want the dialing directory to be opened.
The list must be quoted if it consists of more than one entry, and entries
should be separated by white space, not commas. If the list consists of
just the word ``Default'', then the entries given by the resource
defaultPhoneEntries will be dialed, refer to the description of that
resource for more details.
The most common use of this action is attach frequesntly-dialed hosts to
SeQuickKeys, making dialing those hosts a one-click operation. If this
action is not the last in a compound action stack, actions specified by
the resource postConnectAction may not work properly. Examples:
DialEntries(2); DialEntries("2 4 5"); DialEntries(Default);
- DivertFile([file]);*
- Sends the given file to the remote host as a text upload.
If the optional argument ``file'' is not specified, Seyon will pop up a
dialog box asking for the file name. In the latter case this action is
similar to clicking Divert from the Misc window. Examples:
DivertFile("/tmp/acct.wks"); DivertFile();
- Echo([string]);
- Echos the given string to the terminal. Does not send it to
the modem (use Transmit for that). If the string consists of more than one
word, it must be quoted. Note that unlike the shell command of the same
name, this command does not accepts the switch -n but always appends
newline to the string. If the argument is omitted, an empty line will be
echoed. Examples: Echo(Hello); Echo("Hello there");
Echo();
- FileTransfer(entry,
[file-list]);*
- Executes the transfer protocol corresponding by order in
the trasfer console (protocols file) to ``entry''. If that protocol
requires a file name and file-list is omitted, Seyon will pop up a dialog
box asking for the file. Otherwise file-list will be passed to that
protocol. The list must be quotes if it consists of more than one word and
items in it should be separated by white space. It can contain wild cards
and shell variables. Examples: FileTransfer(1);
FileTransfer(2,acct.wks); FileTransfer(2,"*.wks
$HOME/acct.wks");
- Hangup();
- Disconnects the line. Does not pop up a confirmation box.
- IconifyWindow(window [,...]);
- Iconifies the given windows. Valid arguments to this action
are Main, Dial, and Term, corresponding respectively to the command
center, dialing directory, and terminal emulator windows. When the
argument is Term, this action will work only if the terminal emulator sets
the envirenment variable WINDOWID, like xterm does. Examples:
IconifyWindow(Main,Dial,Term); IconifyWindow(Dial);
- ManualDial([number]);*
- Dials a number as if the Manual button had been clicked
from the dialing directory. If ``number'' is specified, it will be dialed
directly and no dialog box will be popped up asking for the number.
Examples: ManualDial(555-5555); ManualDial();
- Message([string]);
- Echos the given string to the message box of Seyon's
command center (main window). If the string consists of more than one
word, it must be quoted. If the argument is omitted, an empty line will be
echoed. Examples: Message(Hello); Message("Hello there");
Message();
- OpenWindow(window [,...]);
- Opens each of the given windows by popping it if closed or
de-iconifying it if in an iconic state. Valid arguments to this action are
Main, Dial, and Term, corresponding respectively to the command center,
dialing directory, and terminal emulator windows. When the argument is
Term, this action will work only if the terminal emulator sets the
envirenment variable WINDOWID, like xterm does. Examples:
OpenWindow(Main,Dial,Term); OpenWindow(Dial);
- Quit();
- Exits Seyon completely and returns to the shell. Does not
pop up a confirmation box.
- RunScript([script-name]);*
- Executes the script given by the file script-name. The
script will be executed as if the user had selected it via the Script
button. If script-name is omitted, a dialog box will be popped up asking
for the script name. This is a very versatile action, as many remote and
local commands or series of commands can be performed by attaching
appropriate scripts to SeQuickKeys. Examples: RunScript(login.scr);
RunScript();
- Set(parameter, value);
- Sets the specified parameter to the given value. Can be
used to set the various communications parameters. Available parameters
are listed under the script command ``set''. Examples:
Set(baud,9600); Set(parity,0); Set(idleGuard,off).
- ShellCommand(shell-command);*
- Executes the given shell command via the user's shell
pointed to by the SHELL environment variable, or /bin/sh if that
environment variable is not set. Note that the command must be quoted if
it consists of more than one word. If the first non-space letter of the
command is the character ``$'', then standard input and standard output
will be redirected to to the modem. This action can be used to execute any
external program from withen Seyon. Example: ShellCommand(ls);
ShellCommand("$cd $HOME; sz -vv *.wks");
- Transmit(string);
- Transmits the given string to the remote host. The string
must be quoted if it consists of more than one word. The string is
transmitted as is (no case conversions are performed). No newline
character or carriage return is appended to the string, use the prefix
characters for that (e.g. ^M, ^J). See the discripttion of the script
command ``transmit'' for more details. Example: Transmit(ls^M);
Transmit("ls -CF^M");
SCRIPT LANGUAGE¶
Script files can automate some tedious tasks such as logging into a system. A
script file is an ascii text file and may be entered or edited using any
standard text editor.
The script file is read line by line. Empty lines (consisting of white space
only) are ignored. Comments are lines whose first non-space character is a
pound sign (#).
The script processor reads each script line, ignoring leading white space, into
words. A word is defined as either:
- • a sequence of characters delimited by white space,
or
- • a sequence of characters enclosed in single or
double quotes.
The first word of a script file is considered the
command word. If the
last character of the command word is a colon (:), the line is considered to
be a
label (the object of a
goto statement). Otherwise, it is
assumed to be a script command and is interpreted as such. Command words are
case insensative.
Some commands take one or more arguments. Each argument is parsed as a single
word as defined above. If blanks are required in an argument, the argument
must be quoted using single or double quotes.
Script Command List¶
Below is the description of all commands that may be used in the Seyon script
language:
- capture on|off (currently may not work)
- The command capture on will enable capture. All
characters received during waitfor processing will be appended to
the capture file. The command capture off will close the capture
file. This setting does not currently extend to terminal mode. This may be
offered in a later release.
- debug on|off
- If the argument is on, all subsequent command lines
processed will be displayed on the local screen. The exception to this is
lines containing a transmit command. These lines will just print
TRANSMIT..., so that passwords, etc. can be protected. If the
argument is off, scripts will execute quietly (this is the default
setting).
- dial <number>
- Dial the specified number. Seyon supports generic
"Hayes" compatible modems for dialing. Note that this command
requires an actual phone number. The phonebook is not used for this
function.
- echo <string>
- Echos the given string to the terminal. Does not send it to
the modem (use transmit for that). If the string contains spaces,
it must be quoted. Note that unlike the shell command of the same name,
this command does not accepts the switch -n but always appends newline to
the string.
- exit
- Terminates the script file prior to the end of file.
Returns to terminal mode.
- flush
- Flushes the modem, i.e. discards data written to the modem
but not transmitted and data received but not read.
- goto <label>
- Goes to the specified label in the script file and
continues execution from that point. The label may either precede or
follow the actual goto statement. A label is any command
word whose last character is a colon (:).
- hanup
- Hangups up the line and disconnects from the remote host.
- if, else, endif
- Syntax:
if <condition>
<statements>
[ else
<statements>]
endif
Conditionally executes statements based on specified condition. Seyon
supports the following conditions:
- waitfor: true if the last waitfor command was
successful.
- linked: true if this script was executed from the
dialing directory.
Conditions may be negated using the prefix not or the character
!:
- !waitfor: true If the last waitfor command
timed out.
- not waitfor: same as !waitfor above
The else and endif keywords must appear on their own lines.
If statements may not be nested.
- pause <time>
- Suspends execution of the script for the specified number
of seconds. This is usually used for timing considerations; for example,
waiting a couple of seconds after receiving the connect message and
typing ^C to CompuServe.
- purge
- Reads and discards all data coming from the modem for the
duration of one second.
- quit
- Terminates the script and exits the whole program (returns
to the shell).
- redial
- Redials the last number dialed using the dial
command.
- send_break
- Sends a BREAK signal to te remote host.
- set <parameter> <value>
- Sets the specified parameter to the given value. Can be
used to set the various communications parameters for each host. The
follwoing is a list of the set keywords that Seyon recognizes.
Keywords marked with an asterisk set the current parameter only, not the
default one. Refer to the corresponig resource (in parentheses below) for
details of the function of each keyword.
-
baud* (defaultBPS)
- bits* (defaultBits)
- parity* (defaultParity)
- stopBits* (defaultStopBits)
- stripHighBit (stripHighBit)
- newlineTranslation (newlineTranslation)
- del (backspaceTranslation)
- meta_tr (metaKeyTranslation)
- xoff (xonxoffFlowControl)
- rtscts (rtsctsFlowControl)
- autozm (zmodemAutoDownload)
- idleGuard (idleGuard)
Boolean keywords accept on or off as their argument, other
keywords accept the same arguments as the corresponding resources.
- shell <shell-command>
- Executes the given shell command via the user's shell
pointed to by the SHELL environment variable, or /bin/sh if the
environment variable SHELL is not set. Note that the command must be
quoted if it consists of more than one word. If the first non-space letter
of the command is the character '$', then standard input and standard
output will be redirected to to the modem. This command can be used to
execute any external program from withen Seyon. Example: shell
"cd /usr/dl; rz -vv".
- transmit <text>
- Transmits the specified text to the remote host. The text
argument should be quoted (using single or double quotes) if there are
spaces to be transmitted. The text is transmitted as is (no case
conversions are performed).
Prefix characters:
- ^ is the Control character prefix: the next character is
made into a control character. For example, ^M is carriage return
(0x0D) and ^J is newline (0x0A).
- \ is quote prefix: the next character is transmitted
verbatim. For example, \^ would transmit a literal ^.
- tty on|off
- This command specifies whether or not characters received
from the modem will be displayed on the local terminal. Since the only
time that the script processor looks at the receive queue is during
waitfor processing, the displays may look a bit erratic. Use the
tty off command to disable local display of received characters
during script processing.
- waitfor <text> [timeout]
- Waits for the specified text to appear from the modem. The
text argument should be quoted (using single or double quotes) if there
are spaces to be transmitted.
Special characters are interpreted the same as for transmit. If the
timeout argument is specified, Seyon will wait that number of seconds for
the string to appear. If no timeout is given, Seyon defaults to 30
seconds.
During waitfor processing, characters received (up to and including
the last character found in the text or in the timeout) can be captured to
a disk file (if capture on is specified), and/or displayed to the
screen (if tty on is specified).
- when [<string-to-expect>
<string-to-send>]
- Sends string-to-send whenever it encounters
string-to-expect while waiting in a waitfor command, whatever the
number if times string-to-expect is encountered.
This is is useful if the order of prompts expected is not known before hand.
For example, some BBS systems (notably PCBoard) change the prompts
depeding on the time of call, and a complete script for such boards cannot
be written using waitfor only.
As many number of when commands as desired can be specified. A
when command with no arguments clears all outstanding when
commands. waitfor commands take precedence over when
commands if they expect the same string.
A typical use of this command would be:
when "Continue?" "y^M"
when "More?" "n^M"
waitfor "BBS Command?"
when
The above script keeps sending "y^M" to every Continue?"
prompt and "n^M" to every "More?" prompt until the the
string "BBS Command?" is encountered. The lasy when
clears all outstanding when commands.
FILES¶
The default Seyon files are
startup,
phonelist, and
protocols. These have to be in the current directory, Seyon's default
directory (
~/.seyon), or the user's home directory. The default script
directory is Seyon's default directory. All of these files and directories can
be overridden by setting the appropriate resources. See the description of
those resources as well as the description of the files above.
SEE ALSO¶
xterm(1),
resize(1)
COPYRIGHT¶
Seyon is Copyright (c) 1992-1993 of Muhammad M. Saggaf. Seyon is not public
domain. Permission is granted to use and distribute Seyon freely for any use
and to sell it at any price without reference to the copyright owner provided
that in all above cases Seyon is intact and is not made part of any program
either in whole or in part and that this copyright notice is included with
Seyon. Permission is also granted to modify the source as long as the modified
source is not distributed without prior consent of the author.
BUGS¶
The script command 'set port' is not supported in this release. If the action
DialEntries is not the last in a compound action stack, actions specified by
the resource postConnectAction may not work properly.
If Seyon is hung, it can be made to exit cleanly by killing its main process by
signal 15 (SIGTERM) from another shell. Seyon's main process is the one that
has the lowest PID (Process ID) number. For example, if ps shows:
1100 p0 S 0:04 seyon -noemulator
1101 p0 S 0:00 seyon -noemulator
1102 p0 S 0:38 seyon -noemulator
Then ``kill -15 1100'' or ``kill 1100'' would cause Seyon clean up and exit
gracefully.
AUTHOR¶
Muhammad M. Saggaf, alsaggaf@mit.edu. Snail Mail: Muhammad Saggaf, Box 9863,
Dhahran 31311, SAUDI ARABIA. I apologize that I may not be able to respond to
all correspondence I receive.
xcomm 2.2 was written by Eric Coe and Larry Gensch.
ACKNOWLEDGEMENT¶
David Boyce for helpuful suggestions, the Imake file, and patches for clean
build under gcc -Wall; Joaquim Jorge for the lex/yacc parsing routines
contributed by him; and the many people who sent me patches for various
platforms: Fred Appleman (SVR4), atae@spva.dnet.nasa.gov (Ultrix), Alain
Hebert (SVR3.2), Peter Davies (Sun Sparc), Eric Schmidt (Apollo), David
Sanderson (AIX), Jonathan Bayer (Sun), Jeff Johnson (SVR4), Glenn Geers
(SVR4-Esix), Tony Vincent-Sun-Vienna (Solaris), Bob Smith (SunOS 3.x and sgtty
interface). (pardon me if I forgot to mention you). I'm also thankful to all
the nice people who sent me suggestions or bug reports.
The MultiList widget used in the dialing directory is written by the Free Widget
Foundation. You can get it and other FWF widgets by ftp from
a.cs.uiuc.edu.