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

Boris borisrozinov at yahoo.ca
Sat Apr 16 13:13:32 CDT 2011



Sent from my iPhone

On 2011-04-16, at 1:00 PM, resiprocate-devel-request at resiprocate.org wrote:

> Send resiprocate-devel mailing list submissions to
>    resiprocate-devel at resiprocate.org
> 
> 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 at resiprocate.org
> 
> You can reach the person managing the list at
>    resiprocate-devel-owner at resiprocate.org
> 
> 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 at gmail.com> 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 at gmail.com> 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 at gmail.com> 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 at resiprocate.org
> https://list.resiprocate.org/mailman/listinfo/resiprocate-devel
> 
> _______________________________________________
> resiprocate-devel mailing list
> resiprocate-devel at resiprocate.org
> https://list.resiprocate.org/mailman/listinfo/resiprocate-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.resiprocate.org/pipermail/resiprocate-devel/attachments/20110416/ea084fc5/attachment.htm>


More information about the resiprocate-devel mailing list