< Previous by Date Date Index Next by Date >
  Thread Index  

Re: [reSIProcate] resiprocate-devel Digest, Vol 84, Issue 5




Sent from my iPhone

On 2011-04-16, at 1:00 PM, resiprocate-devel-request@xxxxxxxxxxxxxxx wrote:

Send resiprocate-devel mailing list submissions to
   resiprocate-devel@xxxxxxxxxxxxxxx

To subscribe or unsubscribe via the World Wide Web, visit
   https://list.resiprocate.org/mailman/listinfo/resiprocate-devel
or, via email, send a message with subject or body 'help' to
   resiprocate-devel-request@xxxxxxxxxxxxxxx

You can reach the person managing the list at
   resiprocate-devel-owner@xxxxxxxxxxxxxxx

When replying, please edit your Subject line so it is more specific
than "Re: Contents of resiprocate-devel digest..."
Today's Topics:

  1. Who can update the doxygen docs? (Aron Rosenberg)
  2. meet an error when a DUM as an UAS processing an INVITE
     message with current SVN revision 9100 (Allen Guan)
  3. Re: meet an error when a DUM as an UAS processing an INVITE
     message with current SVN revision 9100 (Allen Guan)
  4. Re: meet an error when a DUM as an UAS processing an INVITE
     message with current SVN revision 9100 (Scott Godin)
Can anybody update the doxygen docs found online? They are 6-7 months old right now and a large number of new changes have been introduced.

http://svn.resiprocate.org/dox/

Aron Rosenberg
Sr. Director, Engineering
Logitech Inc. (SightSpeed Group)

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

I have found the fix for this. change the following line in
InviteSession::getOfferAnswer(msg) calls:
-------------
return std::auto_ptr<Contents>(Helper::getSdp(msg.getContents()));  // line 2736
-------------
to:
-------------
     auto_ptr<SdpContents> temp = Helper::getSdp(msg.getContents());
     return temp;
-------------
please verify if my fix is correct, thanks!


On Fri, Apr 15, 2011 at 5:33 PM, Allen Guan <allenguan@xxxxxxxxx> wrote:
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


I not sure why that code would be causing you problems - or why your fix changes the behavior.  That code is being successfully used in lots of working projects.  I am a little suspect of memory corruptions problems causing this.  Or perhaps it's some bug in the Visual Studio 2003 compiler - I've been mainly using VS2008 and VS2010, and haven't touched VS2003 in years.  You could also try a newer Visual Studio release to see if that helps.

Scott

On Fri, Apr 15, 2011 at 9:10 PM, Allen Guan <allenguan@xxxxxxxxx> wrote:
I have found the fix for this. change the following line in
InviteSession::getOfferAnswer(msg) calls:
-------------
return std::auto_ptr<Contents>(Helper::getSdp(msg.getContents()));  // line 2736
-------------
to:
-------------
     auto_ptr<SdpContents> temp = Helper::getSdp(msg.getContents());
     return temp;
-------------
please verify if my fix is correct, thanks!


On Fri, Apr 15, 2011 at 5:33 PM, Allen Guan <allenguan@xxxxxxxxx> wrote:
> 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
>
_______________________________________________
resiprocate-devel mailing list
resiprocate-devel@xxxxxxxxxxxxxxx
https://list.resiprocate.org/mailman/listinfo/resiprocate-devel

_______________________________________________
resiprocate-devel mailing list
resiprocate-devel@xxxxxxxxxxxxxxx
https://list.resiprocate.org/mailman/listinfo/resiprocate-devel