[reSIProcate] FW: DUM redirection bug
    Micky Kaufmann 
    micky at proxy.co.il
       
    Tue Nov  1 02:31:37 CST 2005
    
    
  
Hi All,
 
I think there's a bug in DUM:
 
If someone decides not to use a redirect manager - 3xx responses are not
handled correctly!
ClientInviteSession::handleRedirect which calls onRedirected callback is
called only if there's a redirect manager!
Moreover in case of a redirect message (with no redirect manager) an
InviteSession is created.
 
In such a case no InviteSession should be created, the only thing to do
is to destroy the DialogSet.
 
I think a fix for that should be:
 
1. Add a callback to DialogSetHandler: virtual void
onRedirectNoRedirectManager (AppDialogSetHandle, const SipMessage&
msg)=0;
2. Update DialogSet::dispatch function as follows:
.
.
.
   if (msg.isRequest())
   {
.
.
.
   }
   else // the message is a response
   {
.
.
.
      switch(mState)
      {
         case Initial:
.
.
            else if((code < 400) && (!mDum.mRedirectManager.get())) 
            {
 
mDum.mDialogSetHandler->onRedirectNoRedirectManager(mAppDialogSet->getHa
ndle(), msg);
               mState = Destroying;
               mDum.destroy(this);
            } 
.
.
.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.resiprocate.org/pipermail/resiprocate-devel/attachments/20051101/5a6e8ff4/attachment.htm>
    
    
More information about the resiprocate-devel
mailing list