[reSIProcate] meet an error when a DUM as an UAS processing an INVITE message with current SVN revision 9100
Hi, all,
I am using visual studio 2003 to build a very simple SIP server for
testing with current SVN revision 9100. I added SipStack with an
instance of DUM as its UA, this dum set an instance of
InviteSessionHandler with some log lines in it, nothing more. when
this DUM instance tries to process an INVITE message, it causes an
error and the call stack looks as the following:
---------------------
>
> MediaServer.exe!std::auto_ptr<resip::SdpContents>::operator<resip::Contents>
> std::auto_ptr_ref<resip::Contents>() Line 452 + 0x6 C++
MediaServer.exe!std::auto_ptr<resip::SdpContents>::operator<resip::Contents>
std::auto_ptr_ref<resip::Contents>() Line 454 + 0xc C++
MediaServer.exe!std::auto_ptr<resip::SdpContents>::operator<resip::Contents>
std::auto_ptr_ref<resip::Contents>() Line 454 + 0xc C++
MediaServer.exe!std::auto_ptr<resip::SdpContents>::operator<resip::Contents>
std::auto_ptr_ref<resip::Contents>() Line 454 + 0xc C++
MediaServer.exe!std::auto_ptr<resip::SdpContents>::operator<resip::Contents>
std::auto_ptr_ref<resip::Contents>() Line 454 + 0xc C++
..........................
---------------------
When I dig into it step by step, I notice the error caused by the
following line in ServerInviteSession::dispatchStart():
---------------
std::auto_ptr<Contents> offerAnswer =
InviteSession::getOfferAnswer(msg); // line 729
---------------
this InviteSession::getOfferAnswer(msg) calls:
-------------
return std::auto_ptr<Contents>(Helper::getSdp(msg.getContents())); // line 2736
-------------
when this InviteSession::getOfferAnswer(msg) returns, the error
happens. looks like it's caused by class type conversion?
the following the more deep call stack for your reference.
----------------------------------
> MediaServer.exe!resip::Helper::getSdp(resip::Contents *
> tree=0x01ad54f8) Line 2143 C++
MediaServer.exe!resip::InviteSession::getOfferAnswer(const
resip::SipMessage & msg={...}) Line 2736 + 0x12 C++
MediaServer.exe!resip::ServerInviteSession::dispatchStart(const
resip::SipMessage & msg={...}) Line 729 + 0x10 C++
MediaServer.exe!resip::ServerInviteSession::dispatch(const
resip::SipMessage & msg={...}) Line 642 C++
MediaServer.exe!resip::Dialog::dispatch(const resip::SipMessage &
msg={...}) Line 428 C++
MediaServer.exe!resip::DialogSet::dispatch(const resip::SipMessage &
msg={...}) Line 893 C++
MediaServer.exe!resip::DialogUsageManager::processRequest(const
resip::SipMessage & request={...}) Line 2073 + 0xf C++
MediaServer.exe!resip::DialogUsageManager::incomingProcess(std::auto_ptr<resip::Message>
msg={...}) Line 1617 C++
MediaServer.exe!resip::DialogUsageManager::internalProcess(std::auto_ptr<resip::Message>
msg={...}) Line 1447 C++
MediaServer.exe!resip::DumThread::thread() Line 26 C++
MediaServer.exe!threadIfThreadWrapper(void * threadParm=0x01aa03c8)
Line 51 + 0xd C++
msvcr71d.dll!_threadstartex(void * ptd=0x01aa0910) Line 241 + 0xd
C
kernel32.dll!7c80b729()
-------------------------------------
Could someone please take a look at this? thanks!
-Allen