📄 readme.txt
字号:
TTAPILine
===============
Version 3.0 - 2.04.2004
Copyright (c) 1998-2004, Jury Kornijenko
----------------------------------------------------------------------------
CONTENTS
========
1. Target platforms
2. Description
3. Installation
4. Demo projects
5. Revision History
6. Read this
7. Troubleshooting
8. More informations
9. Contact
----------------------------------------------------------------------------
1. Target platforms
===================
Delphi 5
Delphi 6
Delphi 7
2. Description
==============
Component is based on Windows Telephone API (TAPI) service. Use this component for the following tasks:
- voice and datamodem outbound and incoming calls
- call redirection and blind trasfert, consulation call, consulation call with transfer or conference
- CallerID
- monitor and send DTMF tone digits
- play and record sound with pause, stop and resume
- transfer data between two computers
- OnNewData event, which let you know that when new data arrives to communication port
- get direct access to your modems under Windows (for special initializing via AT commands);
- ability to use different languages, english and german are included.
Price: 30 USD, sources +20 USD
3. Installation
===============
TO INSTALL THE COMPONENT
------------------------
If you have TAPILine 1.0-2.1, you have to remove it first.
Delphi 5:
A. From Delphi menu choose Component|Install Packages.
B. Press 'Add...' button and choose TAPILine_D5.bpl.
C. Press OK.
D. The component is now installed in 'PROFOUND' tab.
E. Copy file TAPILine_D5.bpl to directory Windows\System32 or into directory
that is accessible through the search PATH.
Delphi 6:
A. From Delphi menu choose Component|Install Packages.
B. Press 'Add...' button and choose TAPILine_D6.bpl.
C. Press OK.
D. The component is now installed in 'PROFOUND' tab.
E. Copy file TAPILine_D6.bpl to directory Windows\System32 or into directory
that is accessible through the search PATH.
Delphi 7:
A. From Delphi menu choose Component|Install Packages.
B. Press 'Add...' button and choose TAPILine_D7.bpl.
C. Press OK.
D. The component is now installed in 'PROFOUND' tab.
E. Copy file TAPILine_D7.bpl to directory Windows\System32 or into directory
that is accessible through the search PATH.
4. Demo projects
=============
VoiceDemo:
Shows the component voice functionality. The following functions are demonstrated
here:
- select modem line, open and close selected line
- number dialing in Voice media mode
- call redirection and blind trasfert
- setup consulation call, complete consulation call with transfer or
conference
- monitor and send DTMF tone digits
- play and record sound with pause, stop and resume.
DataModemDemo:
Shows the component datamodem functionality. The following functions are demonstrated here:
- select modem line, open and close selected line
- number dialing in datamodem media mode
- terminal emulator functionality
- OnNewData event
- simple file send and receive procedure between two TAPILine test programs
AutoDial:
Allows to make outbound call (try to make call in both datamodem and voice). Besides this you can select necessary modem line. PFSAutoDial is ready to use application.
5. Revision History
====================
TAPILine 1.0 - 1.02
11.04.98 - first release
29.04.98 - eventCallInProcess has been handled via Windows functions
beacase of Delphi 2.0 doesn't have TEvent class...
11.05.98 - new method added:
- WriteLargeData (buffer: PChar, WantedToWrite: LONG) -
allows read WantedToWrite data amount to PChar buffer;
- procedure Write corrected;
The folowing "bug" has been fixed (procedures Write
and WriteLargeData ):
sometimes application hangs up. In Delphi debugger GPF
occures in very "harmless" place. For example
count := count + 1;
or something like this.
TAPILine 1.4
09.08.98 - (OnNewData event)under society high pressure OnNewData event
has been added. To generate this event TAPILine creates child
thread (single way how to do it). The main event
code is situated in it. In the same time OnNewDataEvent user
procedure will be called from PARENT thread. This event
arrives a cople of times for each Read operation, therefore
application should check this situation. How to use it please
read in readme.txt.
Idea by Mike Speer and other Delphi Developers.
- procedure WriteLargeData.
- procedures Read, ReadLargeData and Write has been completely
redesigned again. Read and Write procedures has been implemented
via XXXXXLargeData procedures accordingly.
- function cbInQue has been added. It returns count bytes in receive
buffer. One Bill Gates company's "bug" (W95 only) has been found:
if line has NOT been opened, but we try to access it via
DirectDeviceAccess this function returns something like 4,500,000 B
count (!?). Of course, may be function ClearCommError is not guilty,
but...
- GetIcon corrected.
- new nice .avi for dial dialog.
- New Class TLogFile.
- MakeCall function has been corrected.
- not necessary to restart W'95 if some of TAPI function fail (I just want
to tell that sentence "You are running under W'95 - shutdown is
recomended." has been removed).
- property CountryCode has been removed
11.08.98 - The following really serious bug has been fixed
(for all TAPILine versions): sometimes OnConnection event arrives
TWO times (therefore DirectDeviceAccess was performed two
times too). In TAPI documentation is written that this event
can arrives two (or more) times and application should check
may be it already connected. Every time I knew about it, but for
some strange reason in previous component versions I've
implemented this routine for OnConnectionInt+ernal
function only.
09.10.98 - FDirectAccessScript was dinamically created but never destroyed.
Bug fixed and has been found by Roelof Ridderman.
TAPILine 2.0
16.11.98 - There were many questions like "How do I have to use your
component just for dialing?". Now this feature is implemented
via property CallType. You can choose ctSimpleCall or
ctDataModemCall.
- ClockLabel - counts connection time. For datamodem it is
quate precisly, but for simple voice call, it doesn't.
- RingsCount property appears. You can specify this property
if you want that your app takes receive after a while, not
right after call arrived to system.
- TAPILine has own resource script file now: TL_res.rc
Here are stored all strings constansts, which has been
used in TAPILine. You can make your own string resources.
If you do, please send it to me too.
- Error strings and other messages are written more precisly
and look better.
- TAPI callback procedure had been redesigned a little bit.
Now it is more understandable.
- ReadLargeData and WriteLargeData functions had been
redesigned again. Now they do not "hang up" system during
read/write timeout interval.
- one "bug" has been fixed in Drop procedure.
- A few mega functions had been added:
Connect ();
Disconnect ();
to implement "easy data modem app".
TAPILine 2.1
26.11.99 - Thank you for Moshe E. Moskowitz. He sends a TCallerID exploring
routine. I just would like to tell, that CallerID can be known
if your telephone provider supply this information with call (before
first ring). Sometimes it is an additional service what you have to pay
for your telephone company.
TAPILine 2.11
15.04.03 - Some minor changes of component
TAPILine 3.00
02.04.04 - In comparison with TAPILine 2.0 the changes were significant and
only main of them are mentioned here. In general voice, DTMF, conference
and call transfer support were added. Besides this TAPILine supports a
few calls simultaneously. A new Demo program to show voice
functionality was added: VoiceDemo project.
A very and very serios bug was corrected in procedures Read
(ReadLargeData) and Write (WriteLargeData). All of them use Windows
function GetOverlappedResult. The declaration of this function in
Borland's Delphi 5,6,7 is incorrect. Unfortunately I too late found
this bug. To solve this problem I imported this function by myself in
TAPILine unit to function GetOverlappedResultZ.
6. Read this
============
WARNING! THE CODE IS PROVIDED AS IS WITH NO GUARANTEES OF ANY KIND!
USE THIS AT YOUR OWN RISK - YOU ARE THE ONLY PERSON RESPONSIBLE FOR
ANY DAMAGE THIS CODE MAY CAUSE - YOU HAVE BEEN WARNED!
7. Troubleshooting
==================
Q. How can I make a "hot line" between my modems?
A. To make a "hot line" you have to do the following:
1. On first PC fill in DirectAccessScript with the folowing commands:
atz
at&l0a
DeviceDirectAccess variable must be set to True.
2. On second one fill in DirectAccessScript with the folowing commands:
atz
atx0&l0d
DeviceDirectAccess variable must be set to True.
3. Call MakeCall procedure on both of them.
Warning: your modems must support "hot line" mode. If they doesn't your
MakeCall procedure failed. To see an extended information about errors
Use DirectAccessLogFile property.
Q. Why line is busy, but event OnBusy doesn't arrive?
A. The BUSY state is difficult to detect because of a lack of uniform
standarts for this state among public phone switches (especially from
one country to another).
8. More information
===========
A help file soon will be supplied and placed to http://www.pf.lv
9. Contact
===========
Report any problems to: j.kornienko@pf.lv
!! Before submitting any bug found, please take the time to check for
the latest version at http://www.pf.lv
Homepage: http://www.pf.lv
-------------------------
--------------------
Tridemarks:
Windows, TAPI (may be) are Microsoft Trade Marks.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -