home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 3 Comm
/
03-Comm.zip
/
fax067.zip
/
answ.doc
< prev
next >
Wrap
Text File
|
1997-04-09
|
19KB
|
480 lines
Preliminary documentation for
ANSW.EXE and ANSW.DLL
Created 1992 - 1997 by Dr. Harald Pollack & Bernhard Seidl
This application is for IBM OS/2 32 bit operation system only.
1) CONFIGURATION FILE
While the name of this file can be anywhat, ANSW defaults (see at
commandline options) to ANSW.CFG
[TASK <n>]
Starts a section within the configuration file which only effects
the selected task. To end a section you can either use another
[TASK <n>] keyword which would start another section or use the
keyword [COMMON], described below.
[COMMON]
All keywords after this statement belong to all tasks.
CONFIGEND
ANSW will stop working off the configuration file and everything
following this keyword will be ignored.
LOGBINKLEYSTYLE
Using this keyword ANSW will generate BinkleyTerm like log entries.
DEBUG
Enables a lot of stuff for debugging. Do not use, because LOG will
increase enormous.
LOGLEVEL <n>
Writing to DEBUGLOG depends on this value (0 to 5).
0 ... do NOT write to DEBUGLOG
1 ... ERROR only
2 ... ERROR + SEND + RECEIVE only
3 ... ERROR + SEND + RECEIVE + ACTION only
4 ... ERROR + SEND + RECEIVE + ACTION + WAIT FOR only
5 ... ERROR + SEND + RECEIVE + ACTION + WAIT FOR + INFO (default)
CLMSGOK <script or errorlevel or shellno>
If ANSW.DLL is called from CantaLoup/2, a simple mechanism will allow
further actions of the mailer if a message was recorded sucessful:
- A positiv value forces mailer to exit with this errorlevel.
- A negativ value forces mailer to 'shell' to abs(value).
- A name of a script forces the mailer to execute it.
BAUDRATE <DTE-DCE bitrate>
Bitrate for initialisation of modem. Some older modem, especially those
which are not capable of high speed data communication, do require a
baudrate of 2400 bps.
REDIALWAIT <seconds>
Time to wait between two dial tries.
DIALRETRIES <count>
Number of dial tries. Default is '0'. That means after an unsuccessful
call, ANSW will terminate. If 'DIALRETRIES' is defined, ANSW will try
to establish a connection for the determined number of times until
terminating.
PRELISTEN <seconds>
If value greater than 0 (default is 3, maximum is 10), ANSW will
'listen' on the line to detect a calling tone (from modem or fax)
before 'GreetingMessage' is played. If a calling tone is detected,
ANSW immediatly terminates, so mailer or other frontend can handle
this call.
DIAL <dial command>
Default, 'ATD' is used. If an other dial command is required (e.g.
'ATD0W') 'DIAL' keyword can be used.
DEBUGLOG <[+]file name>
This is the name of the log and debug log file of ANSW. Nearly all
activities are stored in this file. If a '+' precedes the path,
append mode is used: one log is chained to the next. Select NUL as
filename to disable logging.
The logfile contains a lot of informations in case of errors or
situations where help is needed. Bugreports to the author are only
sensful if this logfile is part of the report.
PORT <serial port>
This keyword is mandatory. Even if ANSW is called using a port handle
(from frontend or mailer) this keyword must exist! The name of the
device is used to create a unique identifier for internal use!
INITFIFO
If a hardware fifo (UART 16550) is detected by COM-device driver, the
fifo is initiallized to Rx=8 and Tx=16.
DEBUGIDLEPRIORITY <value> or DEBUGREGULARPRIORITY <value>
These keywords, which are mutual exclusive, define the priority (0-31)
for the task (thread) which writes the data to DEBUGLOG file. Default
is IDLEPRIORITY 30. Change this setting only, if you are absolutly sure
knowing what you do! Lower priority may yield in a endless blocking
debug_thread! No data will be written to DEBUGLOG and ANSW may become
'uncloseable'. On very slow or high stressed machines, you can
try REGULARPRIORITY 0, if IDLEPRIORITY blocks writing to DEBUGLOG.
VOICEVOLUME <value>
To be described ...
BUSYCOUNT <cnt>
In voicemode, busy tone is signaled from DCE to DTE by supplying
<DLE>+'b'. Modem sensitivity to detect this may differ depending on
firmware version. Human voice may simulate busy to modem in playback
of a message. By default, BusyCount is 1 (one detected busy will
stop all further activities) but can be set from 1 to 5.
RECACTSPK <val>
If modem is able to use its speaker if recording, volumelevel of it
may be selected (ATL<val> is used).
PLAYACTSPK <val>
If modem is able to use its speaker if playback, volumelevel of it
may be selected (ATL<val> is used).
VOICEMODE <modemtype>
Depending on modemtype (manufacturer) keywords ZYXEL or ROCKWELL may
be selected. Default is ZYXEL.
FLOWCONTROL <type>
Normally, ANSW uses software flowcontrol (XON/XOFF), but type CTS or
HW can be set to enable hardware flowcontrol.
VCONSENSITIVITY <val>
To be described ...
STOPONDTMF <digit>
Normaly, telephonkey '*' acts as an immediat stop condition. By
default, digit '5' is set to act also as an unconditional stop.
Redefining to other digit is possible. Any other entry than '0' - '9'
will deactivate this feature.
RINGCNT
Number of RING, ANSW will wait to go off-hook. Only active in
standalone mode.
RECTIMELIMIT <seconds>
By default, ANSW only records 30 seconds of a voice message. With this
keyword, a range of 20 - 600 seconds is selectable.
VOICEPATH <path>
Path to where voice messages are stored (and sent from).
This entry in CFG is mandatory! There will be no default, ANSW will
not start if not defined. VOICEPATH is used to form a fully quallyfied
path to VOICELOG and VOICEIDX. If one of both keywords has OFF in CFG,
voice messages are store in <voicepath>\ANSWnnnn.ZVD, else voice
messages are stored as VCnnnnnn.ZVD (see VOICEIDX).
VOICELOG <file name> | OFF
Filename to VOICE.LOG and only neccessary, if other than 'VOICE.LOG'.
Received voice messages from ANSW will be joined to VOICE.LOG.
Each stored voice message is flagged as 'Rcvd'. If received voice
message is too short to save, no entry is made.
In case of far inquiry or callback, the voice message file is flagged
with 'Read' (far inquiry) or 'Sent' (callback). If callback fails,
the entry is flagged with 'NoAnsw' and if dialretry count is above 0,
a new entry (with same voice file) is made and flagged with 'Spool'.
Also MakeSem is started (with DialWait) to force mailer to call ANSW
again to satisfy callback.
VOICEIDX <file name> | OFF
Filename to VOICE.IDX and only neccessary, if other than
'VOICE.IDX'. Used to select value 'nnnnnn' for VCnnnnnn.ZVD.
CLEANUP <modem command>
If ANSW finishes in a on-hook state (no 'quiet', no calling tone
detected), <modem command> is sent to modem. Multiple entries are
possible, recommanded is at least 'AT', but you can use any
modem command. Before CleanUp, an AT+FCLASS=0 is sent to modem and
after CleanUp a DTR-drop is performed!
POSTINIT <modem command>
If ANSW finishes in a off-hook state ('quiet' or calling tone
detected), <modem command> is sent to modem. Multiple entries are
possible. Be carefully in selecting modem commands. Normally, the
same commands should be used as in mailers 'Answer' string, EXCEPT
ATA command, which is sent automatically after PostInit!
Example for enabling adaptive autoanswer (fax class 2 / data)
after ANSW:
PostInit AT+FCLASS=0
PostInit AT+FCR=1
PostInit AT+FAA=1
PREINIT <modem command>
Just befor ANSW switches modem to voice mode, modem command is sent
to modem. Multiple entries are possible, recommended is ATE0 to
disable echo from modem. Do not use any command like ATA, ATD or ATH!
MINMSGLENGTH <bytes>
By default, voice message less than 6000 bytes is NOT stored. You can
select any other value here.
MENUFILE <file name>
If user selects far inquiry, this message is played. Should contain
anything like:
'Far inquiry! Hit ZERO to cancel, ONE for all new messages, TWO for
all messages and THREE to delete all messages',
or in german:
"Fernabfrage! NULL fuer Abbruch, EINS fuer alle neuen Anrufe, ZWEI
fuer alle bisherigen Anrufe, DREI zum Loeschen aller Anrufe".
ANSW is hardcoded to this four digits (0, 1, 2, and 3)!
This voicefile MUST BE exclusively for the used modem. No WAV or VOC or
anything else will work!
This entry is mandatory!
GREETINGFILE <file name>
This voice file is played when ANSW becomes activ (after PreListen).
Should contain anything like:
'Hello, there is <your name>, please speak after the beep tone',
or in german:
'<Name>, hinterlassen sie mir bitte nach dem Signalton eine
Nachricht'.
This entry is mandatory!
ENDRECFILE <file name>
This voice file is played after successful storage of callers message.
Should contain anything like:
'Your call is recorded',
or in german:
'Ihr Anruf wurde aufgezeichnet'.
This entry is mandatory!
CALLBACKFILE <file name>
If callback feature is enabled, this voicefile is played in front of
further actions. Should contain anything like:
'Announcement of incoming call, please enter password',
or in german:
"Verstaendigung ueber einen eingegangenen Anruf, bitte
Passwort eingeben".
This entry is mandatory!
FARINQUIRYPWD <digits>
Up to five (dialable) digits can be defined as a password for the
far inquiry feature.
CODINGSCHEME <value>
To be described ...
CALLBACKEVENT <day_spec.> <starttime> <endtime> <phonenumber> [<password>]
This keyword enables ANSWs callback feature. Each well received message
is sent to <phonenumber> if current day and time is in the range
specified. Multiple declarations are possible to dial to more than
one phonenumbers at different day/time.
<day_specifier> may be 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' and
'Sun'. Also possible is 'Weekday' or 'Weekend' or 'All'. Any
combinations (delimited by blank character) are allowed:
CallbackEvent Weekend Mon 08:00 22:00 034598712 4711
CallbackEvent Weekday 07:30 17:00 789123 0815
Overlapping of eventdefinitions for the same phonenumber should be
avoided, because ANSW will than call more times:
CallbackEvent Week 08:30 16:30 54321
CallbackEvent Mon 15:00 21:00 54321
will overlap on monday from 15:00 to 16:30 ! Each call at this time
will result in TWO callbacks to 54321 !!!
Up to five (dialable) digits can be defined as a password for the
callback feature.
Callback feature is only possible if VOICELOG and VOICEIDX ar NOT
set to OFF !
ACTIVITYEVENT <day_specifier> <starttime> <endtime>
If defined, activity period of ANSW can be set. Multiple declarations
are possible.
<day_specifier> may be 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' and
'Sun'. Also possible is 'Weekday' or 'Weekend' or 'All'. Any
combinations (delimited by blank character) are allowed:
ActivityEvent Mon Tue 08:00 20:00
ActivityEvent Weekday 09:30 17:15
INBOUND <path to inbound>
If DESTNAME and DESTADDR are also defined, a netmail (????????.PKT)
is created each time a voice message is received or transmitted.
DESTNAME <string>
If this, INBOUND and DESTADDR is defined in ANSW.CFG, a netmail
is created and addressed to.
DESTADDR <FidoNet style address>
Must be defined to create announcing netmail.
SRCNAME <string>
Used to form the 'From:' part of the announcing netmail.
Default is: "ANSW".
SRCADDR <FidoNet style address>
Normally this is the address of local system. Defaults to DESTADDR.
SUBJECTSENDVOICE <string or %>
Used in creation of announcing netmail on transmitted voice message.
If '%' is the first (or only) character, the filename of the sent voice
message (the first only, if more than one is sent) will be placed in
subject part of netmail.
Default is: "Announcement of outgoing voice message".
SUBJECTRECVOICE <string or %>
Used in creation of announcing netmail on received voice message.
If '%' is the first (or only) character, the filename of the stored
voice message (the first only, if more than one is sent) will be
placed in subject part of netmail.
Default is: "Announcement of incoming voice message".
FLAGDIR <path>
Path, were an activity flag can by deposited. ANSW looks, if it finds
<path>\NOANSW.FLG and if it finds it, it will terminate immediatly.
This filename is hardcoded, but could be patched in EXE or DLL.
EXITSEM <semaphor name>
Semaphor file to force mailer (BinkleyTerm or Cantaloup) to exit with
error level. Should be either BTEXIT (for Binkley) or CLEXIT (for
Cantaloup).
In combination with TASK and ExitErrorLevel a semaphor file is created.
EXITERRORLEVEL <level>
Errorlevel for mailer when forced to exit by semaphor.
ENDGREETINGTONE <duration in ms> <frequence1> [<frequence2>]
Can be used instead of fix programmed 'EndGreetingTone' (1000 880 0).
Format in CFG is:
EndGreetingTone 1000 880 0
Multiple entries are supported (to play 'music'), use 0 for <frequence>
to simulate silence.
This option is preliminary and may be altered in future to
GENTONE <purpose> <duration> <frequence1> [<frequence2>]
FRECCFG <cfg for FREC> [<commandline parameters for FREC>]
If this is configured, ANSW calls FREC directly if it detects a
fax calling tone.
2) COMMANDLINE OPTIONS
-rec
ANSW is set to recording mode. You can record any voice file by
calling your modem with a telephon set. Voice file is saved as
ANSWnnnn.ZVD in VoicePath.
-Task<n>
Where <n> specifies the task number to be used. See also [TASK <n>]
and [COMMON] keywords in configuration file. If this parameter is
not used the common task will be used.
-c<config file>
Default ANSW assumes the configuration file is named ANSW.CFG and
located in the current directory. The '-c' command line parameter
can be used to define an other path and file name.
-o<voice file>
Input file for playback. More that one '-o' parameter is allowed in
a single command line. Wildcards (*, ?) also are allowed. Extention
".SQC" is reserved for testing tone sequences.
-p<com port handle>
If this parameter is used, ANSW assumes it is called by a mailer or
other front end. Note: The port handle is not the same as
the port number (e.g. COM1)!
-f
Internally used to force callback in a command script.
-------------------------------------------------------------------------------
HISTORY OF ANSW:
-------------------------------------------------------------------------------
Version 1.02:
For some features (CallBack, Far Inquiry) a VOICE.LOG and VOICE.IDX
is invented. Limited support for userdefined 'tones'. As a test, only
EndGreetingTone is implemented. To test, generate a simple ASCII file
with extention .SQC, containing in each line a single tone command:
<duration> <frequence1> <frequence2>
PASSWORD_BAD
500 1000 0
200 0 0
1000 800 0
FAR_INQUIRY_PLAYBACK_INTRO
200 880 0
200 749 0
200 605 0
While it is really possible, to define 'dual tones', this should be
avoid because modem (or any line exchange) could interpret it as a
DTMF command!
New Keywords:
RINGCNT
VOICELOG
VOICEIDX
ENDGREETINGTONE
FRECCFG
Change in Keyword:
RECORDPATH --> VOICEPATH
CALLBACKEVENT ... now place for CallbackPassword
Keywords not longer supported:
RINGCNTMAIL
RINGCNTNOMAIL
CALLBACKPWD
Version 1.01:
Large parts of code (esp threadhandling, memoryallocation, exception-
handling and CFG/CMD-handling) was redesigned. All parts of code, which are
also in FSEND and FREC were put to FAXPROC, which is from now on a dynamic
link library (FAXPROC.DLL). Linking of C-runtime is never more statically,
instead, C-runtime is linked dynamically (at loadtime) for ANSW, FAXPROC and
IMGPROC. So, the overall amount of codesize was reduced. Some new keywords
in CFG are available:
INBOUND
SUBJECTRECVOICE
SUBJECTSENDVOICE
DESTADDR
DESTNAME
SRCADDR
SRCNAME
INITFIFO
Finally, the COM port open methode is now checked in FAXPROC. Only if COM
is opend in READWRITE and SHARE_DENYREADWRITE, work is continued! I hope
some problems (when called from a mailer, which uses a patched MAXCOMM to
open COM in SHARE_DENYNONE mode) are solved now. Also SIO.SYS in
'share mode' should never more work!
Maybe some users will disagree, but 'sharing' a communication port is NOT
usefull on a multitasking environment! Each application MUST have unique
access to its own resources.
Version 1.00:
Only internal test version and distributed only in a very early state.
Previous versions of ANSW and ANSWER (both by Bernhard Seidl and me)
It was decided, to split the work of both Bernhard and me. While
Bernhard distributes his work as ANSWER, me application is named from
now on ANSW. Differences between ANSWER and ANSW are therefore possible
but CFG should (mostly) match for both products. Sourcecode of both
products is exchanged, so features of one will come soon in the other.
Bernhards ANSWER is primarly a PM application (for standalone use) and
ANSW is primarly designed as Feature-DLL for Cantaloup. There also
exists an ANSW.EXE, which may work as a voice and fax frontend and is
able to 'record' and 'playback' voice files.
Please fell free to contact the autor:
FidoNet 2:310/14.59
Internet Harald.Pollack@OMV.CO.AT