home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga MA Magazine 1998 #3
/
amigamamagazinepolishissue1998.iso
/
bazy
/
fiasco_2.1
/
databases
/
organizer
/
dial.frx
< prev
next >
Wrap
Text File
|
1997-10-19
|
5KB
|
250 lines
/* dial.frx
* Written by Eckard Haupt and Nils Bandener
* $VER: dial.frx 6.6 (19.10.97)
*/
/*
Script for automatic dialing of phone numbers with a modem
from Fiasco databases.
Requirements:
- Phone and modem either connected at a double connection or
connected in series directly at the modem, so that the modem
makes the phone off line.
- A normal field or a listview field with the name "Phone" or a
name that has been specified as argument for the script.
The script is concieved for Zyxel 1496+ modems, however it
should run with other modems.
- Please also see the options below that may be set
Usage:
Select record with number to be dialed, start script, click
on "Yes". After that the modem dials, if dialing is successful,
lift the reciever, click on "Modem hang up", and ... talk ;-)
*/
scriptname = "Dial"
fieldname = "Phone"
/*
* dialcommand:
*
* Modem command to be executed for dialing.
*
* Use DP instead of DT if you have an analog phone connection.
* Use DP0W or DT0W to wait for a free tone before dialing.
*/
dialcommand = "DT"
/*
* dialsuffix:
*
* String to be appended to the dialed number
*
* Default: "". If you add three numbers like "111" this does not
* affect dialing but is able to fool the connection list by the
* German Telekom. The connection list hides the last three numbers,
* if you set dialsuffix to "111", it will hide these three ones.
* (Note: This method is known to be working and known to be not
* working. You have to try it for yourself, whether it is working
* for you)
*/
dialsuffix = ""
/*
* setreg11:
*
* If 1, sets a modem register for faster dialing
* Check compatibility with your modem!!
*/
setreg11 = 0
Options Results
fiasco_port = address()
Signal on Syntax
Signal on Halt
Signal on Break_C
Signal on Failure
LockGUI
Options Results
/* Open rexxsupport.library
*/
if ~show('l',"rexxsupport.library") then
do
if ~addlib('rexxsupport.library',0,-30) then
do
RequestChoice '"Could not open rexxsupport.library" "Cancel"'
call bail_out
end
end
/* Is the field a listview field or a normal field? */
GetAttr "Field Name" fieldname "listview var lvfield"
if lvfield then
do
/* Field is a listview field */
GetField fieldname "listentrycount var num"
do i = 1 to num
GetField fieldname "ListEntry" i "var n"
RequestChoice '"Call the number*n' || n || ' ?" "Yes|No|Cancel" Title "Dial"'
if result = 1 then
do
if dial(n,1) = 0 then break
end
else if result = 0 then break
end
end
else
do
/* Field is a simple one */
GetField fieldname "var n"
if n ~= "" then
do
RequestChoice '"Call the number*n' || n || ' ?" "Yes|Cancel" Title "Dial"'
if result = 1 then
do
call dial(n,0)
end
end
end
call bail_out
/*
* Function dial():
*
* result = dial(number, multiplenumbers)
*
* number - Number to be dialed
* multiplenumbers - Display a "Next number" gadget (boolean)
*
* result - 0 = success
* 1 = next number
* 2 = system error
*/
dial:
number = arg(1)
if open("f","SER:","WRITE") then
do
call writech("f","AT&F" || d2c(13))
call delay(20)
if setreg11 then
do
call writech("f","ATX7S11=55L7M1" || d2c(13))
call delay(20)
end
call writech("f", "AT" || dialcommand || compress(number, "()/-") || dialsuffix || d2c(13))
if arg(2) then
do
resps = "Modem hang up|Next number"
end
else
do
resps = "Modem hang up"
end
RequestChoice '"Dialing: ' || number || '" "' || resps || '" var ch'
call writech("f","ATH" || d2c(13))
call close("f")
if ch = 1 then return 0
else return 1
end
else
do
RequestChoice '"Could not open serial.device" "Cancel"'
return 2
end
bail_out:
Interpret Address fiasco_port
UnlockGUI
/* ResetStatus */
exit
syntax:
failure:
if show("Ports", fiasco_port) then
do
Interpret Address fiasco_port
RequestChoice '"Error ' || rc || ' in line ' || sigl || ':*n' || errortext(rc) || '" "Cancel" Title "' || scriptname || '"'
end
else
do
say "Error" rc "in line" sigl ":" errortext(rc)
say "Enter to continue"
pull dummy
end
call bail_out
halt:
break_c:
if show("Ports", fiasco_port) then
do
Interpret Address fiasco_port
RequestChoice '"Script Abort Requested" "Abort Script|Continue Script" Title "' || scriptname || '"'
if result = 0 then return
end
else
do
say "*** Break"
say "Enter to continue"
pull dummy
end
call bail_out