Thanks & Regards,
Gomathy
Gomathy,
a TSP usually doesn't call any TAPI functions.
For installation you need to copy your .TSP file and UI.dll file (if
TUISPI_functions are not integrated in your .TSP file) to /system32/ and then
you need either add it manually via ControlPanel or programatically via
lineAddProvider().
Do you have any tracing capabilities built i n to your TSP?
If not then this highly recommended for *all* TSPI_functions.
Is TSPI_providerInstall() called during installation?
Are TSPI_providerEnumDevices() and TSPI_providerInit() called after
installation?
What do your return in their params, e.g. *lpdwNumLines etc.?
--
Best Regards
Andreas Marschall
Microsoft MVP for TAPI / Windows SDK / Visual C++
TAPI / TSP Developer and Tester
My TAPI and TSPI FAQ:
http://www.I-B-A-M.de/Andreas_Marschall's_TAPI_and_TSPI_FAQ.htm
My Toto® Tools (a collection of free, mostly TAPI related tools):
http://www.i-b-a-m.de/Andreas_Marschall's_Toto_Tools.htm
TAPI development around the world (Frappr! map):
http://www.frappr.com/TAPIaroundTheWorld
* Please post all messages and replies to the newsgroup so all may
* benefit from the discussion. Private mail is usually not replied to.
* This posting is provided "AS IS" with no warranties, and confers no rights.
Hi Andreas,
My tsp file and UI.dll file is copied properly during
installation.
I have implemented TSPI_providerInstall() function but nothing is
written inside it. lineAddProvider() function is not called I guess.
But how the problem is solved when I remove and add the service
provider through control panel?
Now I found out a new issue, the lineNegotiateAPIVersion() returns an
error. This I found using a diagnostic tool we use for our
applications.
This issue is also happening only after the installation and is
resolved after adding the provider through control panel.
Gomathy
Just a correction, lineAddProvider is called during installation. I am
able to view my tsp in the list of providers after installation. But
the lines are not visible.
Computer Management >> Telephony Services is not the
right way to check your TSP and its lines.
You should install your TSP, then use TapiBrowser 2 to
check your TSP and enumerate its lines and also try to
open them.
Then restart your computer and to again and try to find out
what's different. There must be an error in your TSP.
Best regards,
Matthias Moetje
-------------------------------------
TAPI WIKI: http://www.tapi.info
-------------------------------------
TERASENS GmbH
Augustenstraße 24
80333 Munich, GERMANY
-------------------------------------
e-mail: moetje at terasens dot com
www: www.terasens.com
-------------------------------------
<Goms...@gmail.com> wrote in message
news:c6de5529-5d13-4b9d...@k37g2000hsf.googlegroups.com...
Hi Matheas,
Thnx for ur suggestions. I tried using TB20. LineInitialize
returned Success, LineNegotiateAPIVersion returned Success,
LineNegotiateExtVersion returned LINEERR_INCOMPATIBLEAPIVERSION. Line
Open also returns the same.
What is the order to call these APIs.
My TSP is working properly after system restart.
Regards,
Gomathy
what parameters do you pass what in lineNegotiateExtVersion with TB2?
How does your TSP check the supplied version and what does
it return in TSPI_lineNegotiateExtVersion?
Best regards,
Matthias Moetje
-------------------------------------
TAPI WIKI: http://www.tapi.info
-------------------------------------
TERASENS GmbH
Augustenstraße 24
80333 Munich, GERMANY
-------------------------------------
e-mail: moetje at terasens dot com
www: www.terasens.com
-------------------------------------
<Goms...@gmail.com> wrote in message
news:38d53fd4-02be-4b0b...@k30g2000hse.googlegroups.com...
> Just a correction, lineAddProvider is called during installation. I am
> able to view my tsp in the list of providers after installation. But
> the lines are not visible.
What are you exactly doing on installation?
Hi Andreas,
My Installation is through Installshield. After some initial
settings, the TSP UI will be popped up to get the PBX IP. After that
lineAddProvider function gets called. Infact a thread has to be
started, but this thread is not getting started, as the lineOpen fails
returning LINEERR_INCOMPATIBLEAPIVERSION. How can I solve this error,
to continue further? But the problems are resolved when I restart the
PC or delete and add the provider through control panel. But even
after restarting the PC, the lineOpen API returns
LINEERR_INCOMPATIBLEAPIVERSION through T20 Browser. But the TSP works
fine with dialer application.
The above behaviour is for Win XP, and for Win Vista PC, the
warning message "One or more telephone device drivers are incompatible
with TAPI.dll. Install an updated version."
Regards,
Gomathy
Gomathy,
is InstallShield calling your TSP-UI prior to lineAddProvider()?
What fucntion entry point is IS calling? I guess TUISPI_providerConfig()?
That shouldn't be required.
Only thing is needs to call is lineAddProvider().
This should automatically trigger TAPISRV to call TUISPI_providerInstall(),
TUISPI_providerConfig().
Please note that only(!!!) TAPISRV is allowed to call TSPI_ or
TUISPI_functions!!!
Gomathy,
some clarification:
lineAddProvider() triggers only TUISPI_providerInstall().
Within TUISPI_providerInstall() your TSP-UI needs to bring up its config
dialog on its own like it does in TUISPI_providerConfig().
Hi Andreas,
Atlast I have found that, main thread goes into a loop which
does nothing... I have identified the reason for the starting of the
TSP.
But I have some problems in Vista PC. Even in Win XP, lineOpen returns
LINEERR_INCOMPATIBLEAPIVERSION, but the dialer works well.
The lineNegotiateAPIVersion returned SUCCESS
APIVersion=x10003
extID.ID0=x0, .ID1=x0, .ID2=x0, .ID3=x0,
In some Vista PC's it throws the warning message, "One or more
telephone device drivers are incompatible with TAPI.DLL. Install an
updated version."
But in some Vista PC's the warning message is not shown and windows
dialer works properly.
Can you help me in finding the reasons for the warning message and how
to enable/Disable the Warning message display in Vista PC.
Thanks & Regards,
Gomathy
Gomathy,
I strongly doubt this.
If your TSPI_lineOpen() returns then LINEERR_INCOMPATIBLEAPIVERSION then the
line cannot be used.
> The lineNegotiateAPIVersion returned SUCCESS
> APIVersion=x10003
> extID.ID0=x0, .ID1=x0, .ID2=x0, .ID3=x0,
Is ypure TSPI_lineNegotiateTSPIVersion() actually returning *lpdwTSPIVersion =
0x00010003 ?
TAPI 1.3 is for 16-bit applications.
What dwLog/HighVersion does your TSP receive from TAPISRV ?
Why don't you support TAPI 2.2 ?
What does your TSP #define as TAPI_CURRENT_VERSION before #include "tspi.h" ?
Hi,
The TSPI_lineNegotiateTSPIVersion() returns 0x00020000. But,
if((dwLowVersion > TAPI_CURRENT_VERSION) ||(dwHighVersion <
TAPI_CURRENT_VERSION)) then it returns LINEERR_INCOMPATIBLEAPIVERSION,
where TAPI_CURRENT_VERSION = 0x00020000.
Thanks & Regards,
Gomathy
Gomathy,
why don't yo use TAPI_CURRENT_VERSION = 0x00020002 ?
What do you actually get for dwLowVersion / dwHighVersion ?
Hi Andreas,
I will try to use TAPI version as 00020002 but do I need to
change anything for this?
the value for dwLowVersion = 10003 and dwHighVersion = 30001
> > why don't yo use TAPI_CURRENT_VERSION = 0x00020002 ?
> > What do you actually get for dwLowVersion / dwHighVersion ?
> I will try to use TAPI version as 00020002 but do I need to
> change anything for this?
Gomathy,
you only need to
#define TAPI_CURRENT_VERSION 0x00020002
before
#include <TSPI.H>
> the value for dwLowVersion = 10003 and dwHighVersion = 30001
That's odd!
With these values your code above shouldn't return
LINEERR_INCOMPATIBLEAPIVERSION.
Hi,
LINEERR_INCOMPATIBLEAPIVERSION error doesnt come from
lineNegotiateAPIVersion. LineOpen() returns this error. I have tried
calling LineGetDevCaps() also... This function also returns line
incompatibility error. But when I try OpenLines it returns something
like this,
lineOpen returned LINEERR_INCOMPATIBLEAPIVERSION
lineOpen returned LINEERR_INCOMPATIBLEAPIVERSION
lineOpen returned LINEERR_INCOMPATIBLEAPIVERSION
lineOpen returned SUCCESS
lineOpen returned SUCCESS
lineOpen returned LINEERR_OPERATIONUNAVAIL
lineOpen returned SUCCESS
lineOpen returned LINEERR_NODEVICE
lineOpen returned LINEERR_NODEVICE
lineOpen returned LINEERR_NODEVICE
lineOpen returned LINEERR_NODEVICE
lineOpen returned LINEERR_NODEVICE
lineOpen returned LINEERR_NODEVICE
lineOpen returned LINEERR_NODEVICE
lineOpen returned LINEERR_NODEVICE
lineOpen returned LINEERR_NODEVICE
lineOpen returned LINEERR_NODEVICE
lineOpen returned LINEERR_NODEVICE
lineOpen returned LINEERR_NODEVICE
lineOpen returned LINEERR_NODEVICE
lineOpen returned LINEERR_NODEVICE
lineOpen returned LINEERR_NODEVICE
lineOpen returned LINEERR_NODEVICE
lineOpen returned LINEERR_NODEVICE
lineOpen returned LINEERR_NODEVICE
lineOpen returned LINEERR_NODEVICE
lineOpen returned LINEERR_NODEVICE
lineOpen returned LINEERR_NODEVICE
the function succeeds for some lines... I couldnt understand this
return values.
Meanwhile I will try with 20002 as the current version of tAPI
> the function succeeds for some lines... I couldnt understand this
> return values.
Gomathy,
I guess your TSP does only provide one line device?
Then you should only open this line device.
It seems that you try to open all line devices regardless what TSP they are
associated with.
See my TAPI and TSPI FAQ:
Q: Which TSP is hosting a given line device ?
http://www.i-b-a-m.de/Andreas_Marschall's_TAPI_and_TSPI_FAQ.htm#_Q:_Which_TSP
Regarding LINEERR_NODEVICE: this is returned if the device has been removed,
either dynamically by TSP or because the TSP itself has been removed.
If you reboot or just restart TAPISRV (net stop tapisrv) then these devices
will gone.