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

RE: [reSIProcate] DUM: Cancelling client session in initial state


Derek,

Can you clarify why DUM change branch of CANCEL and
ACK message? Thanks.

kaiduan
 --- Derek MacDonald <derek@xxxxxxxx> wrote: 
> DialogUsageManager::send modifies the sip message
> in-place, so the CANCEL
> transaction id does match. Dmitry's reference vs
> copy explains you
> behaviour.
> > 
> > I thought the reason was:
> > 
> > In DialogUsageManager::send()
> > 
> >    if (msg.header(h_RequestLine).method() !=
> CANCEL &&
> >        msg.header(h_RequestLine).method() != ACK
> &&
> >        msg.exists(h_Vias))
> >    {
> > 
> >
> msg.header(h_Vias).front().param(p_branch).reset();
> >            ^^^^^^^
> >    }
> > 
> > For example, if the initial DUM created INVITE's
> > branch is BranchA, after this function, the branch
> is
> > changed to BranchB and passed to transaction
> layer. In
> > transaction layer, the transaction ID is BranchB.
> But
> > for CANCEL message created in DUM, the branch is
> still
> > BranchA. So transaction layer cannot find the
> > corresponding INVITE transaciton!!!
> > 
> > Can anyone explain why the branch parameter is
> reset
> > here? Thanks,
> > 
> > kaiduan
> > 
> > 
> >  --- Dmitry Semyonov <dsemyonov@xxxxxxx> wrote:
> > > On Fri, 5 Nov 2004, Dmitry Semyonov wrote:
> > >
> > > > DUM does not send CANCEL request when I call
> end()
> > > method of
> > > > ClientInviteSessionHandle. Also note the empty
> > > Contact AOR of the
> > > > scheduled CANCEL request. I use r3433 based
> > > reSIProcate, and
> > > > process(fdset).
> > >  [...]
> > >
> > > Well the described behavior was caused by using
> > > SipMessage instance
> > > instead of reference to it:
> > >
> > > <           SipMessage is_msg =
> > > m_pDum->makeInviteSession( dstAor, FromAddr,
> > > ---
> > > >           // Warning! Using SipMessage instead
> of
> > > SipMessage& here will result
> > > >           // in wrong transaction Id!
> > > >           SipMessage &is_msg =
> > > m_pDum->makeInviteSession( dstAor, FromAddr,
> > >
> > > --
> > > ...Bye..Dmitry.
> > > _______________________________________________
> > > resiprocate-devel mailing list
> > > resiprocate-devel@xxxxxxxxxxxxxxxxxxx
> > >
> >
>
https://list.sipfoundry.org/mailman/listinfo/resiprocate-devel
> > >
> > 
> >
>
______________________________________________________________________
> > Post your free ad now! http://personals.yahoo.ca
> > _______________________________________________
> > resiprocate-devel mailing list
> > resiprocate-devel@xxxxxxxxxxxxxxxxxxx
> >
>
https://list.sipfoundry.org/mailman/listinfo/resiprocate-devel
> 
> 
>  

______________________________________________________________________ 
Post your free ad now! http://personals.yahoo.ca