Hi,

I'm able to recieve messages but when I try sending one then the application 
crashes at the following line:

if (!mbShuttingDown)
{
 responseQ->send(eventMsg); //<---Crashes here, line 1851, SipUserAgent.cpp
}

Below is the call stack:

sipXtapid.dll!SipUserAgent::dispatch(SipMessage * message=0x01c5ead8, int 
messageType=0, SIPX_TRANSPORT_DATA * pTransport=0x00000000)  Line 1851 + 0x14 
C++
sipXtapid.dll!SipClient::run(void * runArg=0x00000000)  Line 468 + 0x27 C++
sipXtapid.dll!OsTaskWnt::threadEntry(void * arg=0x01c5e3f8)  Line 587 + 0x22 C++


The value of responseQ is shown to be:

- responseQ 0x0359f124 {mGuard={mMutexImp=??? } mEmpty={mSemImp=??? } 
mFull={mSemImp=??? } ...} OsMsgQShared *
+ OsMsgQBase {DEF_MAX_MSGS=100 DEF_MAX_MSG_LEN=32 MSGQ_PREFIX={TYPE=0x1037c16c 
"UtlString" ssNull=0x10375710 "" UTLSTRING_NOT_FOUND=4294967295 ...} ...} 
OsMsgQBase
+ mGuard {mMutexImp=??? } OsMutexWnt
+ mEmpty {mSemImp=??? } OsCSemWnt
+ mFull {mSemImp=??? } OsCSemWnt
+ mDlist {TYPE=0x1037e014 "UtlDList" } UtlDList
 mOptions CXX0030: Error: expression cannot be evaluated int
 mHighCnt CXX0030: Error: expression cannot be evaluated int

I have attached the Ethereal trace and the log file. The code that I'm using is 
shown below.

Please help.

Thanks,
Hitesh


class SipPimClientManager
{
private:
 SipPimClientManager ()
 {
 }

 static SipPimClient *m_pSipPimClient;

public:
 static SipPimClient *GetInstance (SipUserAgent &sipUserAgent, Url 
urlFromAddress)
 {
  if (m_pSipPimClient == NULL)
  {
   m_pSipPimClient = new SipPimClient (sipUserAgent, urlFromAddress);
   m_pSipPimClient->start ();

   OsSysLog::add(FAC_SIPXTAPI, PRI_INFO,
    "SipPimClient::GetInstance ()");
  }
  return m_pSipPimClient;
 }
};
SipPimClient *SipPimClientManager::m_pSipPimClient = NULL;

SIPXTAPI_API SIPX_RESULT sipxSendMessage (const SIPX_INST hInst,
         const char* pszMessageText,
         const char* pszYourAddress,
         const char* pszAddressToSend)
{
     OsSysLog::add(FAC_SIPXTAPI, PRI_INFO,
            "ENTER sipxSendMessage hInst=%p pszMessageText=%s pszYourAddress=%s 
pszAddressToSend=%s",
            hInst, pszMessageText, pszYourAddress, pszAddressToSend);

 SIPX_INSTANCE_DATA* pInst = (SIPX_INSTANCE_DATA*) hInst ;

 if (pInst == NULL)
 {
  return SIPX_RESULT_FAILURE;
 }

 int nResponseCode = -1;
 UtlString ustrResponseCodeText;

 SIPX_RESULT rc;

 if (SipPimClientManager::GetInstance (*(pInst->pSipUserAgent), Url 
(pszYourAddress))
  ->sendPagerMessage (Url (pszAddressToSend), pszMessageText, "Subject", 
nResponseCode, ustrResponseCodeText))
 {
  rc = SIPX_RESULT_SUCCESS;
 }
 else
 {
  rc = SIPX_RESULT_FAILURE;
 }

     OsSysLog::add(FAC_SIPXTAPI, PRI_INFO,
            "EXIT sipxSendMessage nResponseCode=%d ustrResponseCodeText=%s",
            nResponseCode, ustrResponseCodeText.data ());

 return rc;
}

SIPXTAPI_API SIPX_RESULT sipxMessageListenerAdd (const SIPX_INST hInst,
       const char* pszFromAddress,
       void (*textHandler)(const char* pszFromAddress,
         const char* textMessage,
         int textLength))
{
     OsSysLog::add(FAC_SIPXTAPI, PRI_INFO,
            "ENTER sipxMessageListenerAdd");

 SIPX_RESULT rc = SIPX_RESULT_SUCCESS;

 SIPX_INSTANCE_DATA* pInst = (SIPX_INSTANCE_DATA*) hInst ;

 if (pInst == NULL)
 {
  return SIPX_RESULT_FAILURE;
 }

 SipPimClientManager::GetInstance (*(pInst->pSipUserAgent), Url 
(pszFromAddress))->
  setIncomingImTextHandler (textHandler);

     OsSysLog::add(FAC_SIPXTAPI, PRI_INFO,
  "EXIT sipxMessageListenerAdd");
 return rc;
}

Attachment: CrossTalk.log
Description: Binary data

Attachment: ct.cap
Description: Binary data

_______________________________________________
sipxtapi-dev mailing list
[email protected]
List Archive: http://list.sipfoundry.org/archive/sipxtapi-dev/

Reply via email to