PDA

View Full Version : PKX_CALL_Answer not working in Upgrade from 2.3.2 to 2.5.3



jwink
12-08-08, 03:50 PM
Get this error message when upgrading HMP

Unable to find an entry point named 'PKX_CALL_Answer' in DLL 'pikagpapi.dll'. : at Pika.Grandprix.PKX_CALL_Answer(UInt32 callHandle)
at OffenderReporter.COffenderReporterIVR.EventThread( )

I first backup my lic key and configuration files

I then uninstalled both Grand Prix and AoH
I then installed
pikaaoh-2.5.3-windows-installer.exe
pikagrandprix-2.5.3-windows-installer.exe
rebooted
Copied the lic key back and modified the config to match my old settings.

Fired off Pika Test and it came up.
Placed a called and got incoming message then this one

Audit: 12/3/2008 9:22:19 PM channel 16777217: <--
PKX_EVENT_GROUP_INCOMING_CALL
Audit: 12/3/2008 9:22:19 PM call 16777259: --> ACCEPT
Audit: 12/3/2008 9:22:19 PM channel 16777259: <--
PKX_EVENT_CALL_ACCEPTED
Audit: 12/3/2008 9:22:19 PM Unable to find an entry point named
'PKX_CALL_Answer' in DLL 'pikagpapi.dll'

So I checked my windows\system32 and it was the correct version of the pikagpapi.dll

Any suggestions?

mrecoskie
12-10-08, 03:48 PM
I will assume this is occurring while using C#. The problem happens because of a tricky change that was added in Grandprix 2.5.x. The following define was added.

#define PKX_CALL_Answer PKX_CALL_Answer_25

This requires an update to your C# wrapper. It is necessary to wrap 'PKX_CALL_Answer_25' instead of 'PKX_CALL_Answer'. Also if not already done there is a new second parameter in this function that would need to be added to any P/Invoke layer.


The additions to the C# wrapper should be the following:

[ StructLayout (LayoutKind.Sequential)]
publc struct PKX_TCallAnswerSettings
{
[ StructLayout (LayoutKind.Sequential)]
public struct collectCallBlock
{
public PK_BOOL enable;
public PK_UINT beforeOnHookTime;
public PK_UINT collectCallTime;
public PK_UINT afterOffHookTime;
}
}

[DllImport("pikagpapi.dll")]
public static extern PK_STATUS PKX_CALL_Answer_25(TPikaHandle callHandle, ref PKX_TCallAnswerSettings settings);