Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

TAPI and 64 bit operating systems

1,859 views
Skip to first unread message

Angus

unread,
May 26, 2013, 5:05:27 AM5/26/13
to
A have a switch which exposes a TAPI interface and for a while I have run a TAPI application on 32 bit Windows XP. I installed a 32 bit TAPI driver and I get most TAPI features including Call ID consistent across calls.

However, I recently tested the application on a Windows 7 64 bit PC. I downloaded a special installer for the TAPI driver, and it installed OK. I get TAPI functionality, eg I can make call. But I am getting weird results for the Call ID.

Example internal incoming call which gets answered then dropped I get a Call ID of:

4632475
22190
7

Above are decimal values - all for the same call!

This renders the application pretty useless. The system is an Avaya IP Office running tsp file: tspi2w_64.tsp. I am guessing that this must be a 64 bit driver. It was installed using the USER4_2 CD.

My application is 32 bit. Do I need to compile my application as 64 bit to get this to work? Anyone any ideas why I am getting this strange behaviour?

Andreas Marschall [exMVP TAPI]

unread,
May 26, 2013, 4:18:09 PM5/26/13
to
Am Sonntag, 26. Mai 2013 11:05:27 UTC+2 schrieb Angus:
> A have a switch which exposes a TAPI interface and for a while I have run a TAPI application on 32 bit Windows XP. I installed a 32 bit TAPI driver and I get most TAPI features including Call ID consistent across calls.
>
> However, I recently tested the application on a Windows 7 64 bit PC. I downloaded a special installer for the TAPI driver, and it installed OK. I get TAPI functionality, eg I can make call. But I am getting weird results for the Call ID.
>
> Example internal incoming call which gets answered then dropped I get a Call ID of:
> 4632475
> 22190
> 7
> Above are decimal values - all for the same call!

Angus,
I don't see any pattern in this, even in hex format:
0x0046AF9B
0x000056AE
0x00000007

> This renders the application pretty useless. The system is an Avaya IP Office running tsp file: tspi2w_64.tsp. I am guessing that this must be a 64 bit driver. It was installed using the USER4_2 CD.

Yes, without proper dwCallID it isn't possible to track call movements.
On a x64 OS a TSP has to be x64 too.
You can check the bit-width easily e.g. with Dependeny Walker: http://www.dependencywalker.com/
Just drag and drop the TSP file into the Depends windows.
For x64 components it displays a 64 right besides the icon in the tree view.


> My application is 32 bit. Do I need to compile my application as 64 bit to get this to work? Anyone any ideas why I am getting this strange behaviour?

In general you can use 32-bit TAPI apps on x64 OS without problem.
E.g. some years ago I ported a 32-bit TSP to x64 and tested it with some 32-bit TAPI test tools from JulMar.
There was no problem on Win7x64 displaying the correct LINECALLINFO.dwCallID with TCMon or Phone.exe.
If you can reproduce the issue with JulMar tools then the bug quite surely is located within the TSP. My guess is an issue with type casting to (DWORD).

--
Best Regards
Andreas Marschall
Microsoft MVP for TAPI / Windows SDK
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
* Please post all messages and replies to the group 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.

Angus

unread,
May 27, 2013, 10:43:17 AM5/27/13
to
Hi Andreas

My code is like this:

LINECALLINFO* pCallinfo = NULL;
...
//lineGetCallInfo etc to alloc
...
DWORD CallID = pCallinfo->dwCallID;

Is that my problem? It works on other 32 bit platforms.

How to fix? cast to DWORD? memcpy sizeof(DWORD) bytes?

Angus

unread,
May 27, 2013, 10:56:41 AM5/27/13
to
I was forgetting, even in tapi browser get the same changing CallIDs on receiving different call events. So I think it must be a driver issue. I will see if I can download the latest driver version. I seem to need to have an account with Avaya to download latest software, otherwise I would have tried that already.

Andreas Marschall [exMVP TAPI]

unread,
May 27, 2013, 3:42:00 PM5/27/13
to
Am Montag, 27. Mai 2013 16:56:41 UTC+2 schrieb Angus:
> I was forgetting, even in tapi browser get the same changing CallIDs on receiving different call events. So I think it must be a driver issue.

Angus,
that's what I meant with:
> > If you can reproduce the issue with JulMar tools then the bug quite surely is located within the TSP.

Andreas Marschall [exMVP TAPI]

unread,
May 27, 2013, 4:05:29 PM5/27/13
to
Am Montag, 27. Mai 2013 16:43:17 UTC+2 schrieb Angus:
> DWORD CallID = pCallinfo->dwCallID;
> Is that my problem? It works on other 32 bit platforms.

No, Angus, that's correct.
TAPI.H defines it in struct LINECALLINFO as:
DWORD dwCallID;

> How to fix? cast to DWORD? memcpy sizeof(DWORD) bytes?

I guess there's nothing a TAPI app can do about it, if a TSP provides wrong info. A TSP bug needs to fixed is the TSP...

steve.simo...@gmail.com

unread,
Apr 17, 2014, 7:40:30 AM4/17/14
to
Hi looking for someone to convert our Jalmar x32 TSP (written in C++ I beleave) we have source code of the robust x32 version just nee to converted to x64. Do you know anyone who can help

Thanks Steve St...@hybrex.co.nz
0 new messages