07-06-2015 01:16 PM
The call is expecting 16 bytes, the class in the header is 12 bytes.
Version: 10.5.1.10000-7
Using Cisco TAPI TSP 64-bit and the headers with that Applications \ Plugin
Error message in TSP debug log:
14:53:09.603 | CSelsiusTSPLine::DevSpecific() [0x00000536] inside of SLDST_START_CALL_RECORDING
...
14:53:09.603 | CSelsiusTSPLine::DevSpecific() [0x00000536] *ERROR* dwSize mis-match 0x0000000C (expected 0x00000010)
Classes in CiscoLineDevSpecificMsg.h
class CCiscoLineDevSpecific
{
public:
CCiscoLineDevSpecific(DWORD msgType) :
m_MsgType(msgType)
{
;
}
virtual ~CCiscoLineDevSpecific()
{
;
}
DWORD GetMsgType(void) const
{
return m_MsgType;
}
void* lpParams(void) const
{
return (void*) &m_MsgType;
}
virtual DWORD dwSize(void) const = 0;
private:
DWORD m_MsgType; // 4 bytes
};
class CCiscoLineDevSpecificStartCallRecording: public CCiscoLineDevSpecific
{
public:
CCiscoLineDevSpecificStartCallRecording() :
CCiscoLineDevSpecific(SLDST_START_CALL_RECORDING)
{
}
virtual ~ CCiscoLineDevSpecificStartCallRecording()
{
}
DWORD m_ToneDirection; // 4 bytes
DWORD m_InvocationType; // 4 bytes
virtual DWORD dwSize(void) const
{
return sizeof(*this) - sizeof(void*);
} // subtract out the virtual function table pointer
};
Are there updated headers or TSP available?
Thank you
Eric J
07-07-2015 06:55 AM
Found Solution:
Add in the CiscoLineDevSpecificMsg.h, CCiscoLineDevSpecificStartCallRecording a dummy DWORD between the m_ToneDirection and m_InvocationType, setting it to 0.
As in:
class CCiscoLineDevSpecificStartCallRecording: public CCiscoLineDevSpecific
{
...
DWORD m_ToneDirection; // 4 bytes
DWORD m_dummy;
DWORD m_InvocationType; // 4 bytes
...
};
START_CALL_RECORD succeeded and produced a recording.
Will still have to verify whether the Record Feature light is lit, i.e. is the InvocationType parameter working.
Question:
Is there a corrected CiscoLineDevSpecificMsg.h available?
07-08-2015 10:55 AM
Hi Eric,
Please make sure that application/TSP/OS are all 64-bit or 32-bit. We only support fully 64-bit or fully 32-bit stacks. My understanding is that your application is 32-bit running on a 64-bit stacks. The workaround is ok for now but you may run into other issues so it is best that you recompile your application for 64-bit environment.
Regards,
David
07-08-2015 02:58 PM
Hi Eric,
I just talked to our TAPI DE about this issue. We do not support cross platform (64bit TSP will only support 64bit app). Even if you have a workaround this issue, more issues can come in the future. In addition, LineDevSpecific class has virtual pointers and VP size varies from 32bit to 64bit.
Hope that helps.
Regards,
David
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide