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

Re: [reSIProcate] Issue calling end() in onNewSession


I worked out part of my issue:

In dum/test/BasicCall.cxx the onTerminated(...) callbacks incorrectly
assume the SipMessage* is valid and were failing in the msg->brief() log
action.

What I haven't resolved is how to get it to send a CANCEL immediately.
Looking at the current ClientInviteSession::end() it will only ever
attempt to send a BYE which results in a 481/Transaction not found but
the dialog is now transitioned to the UAC_Terminating state. The
cancel() method is protected and apparently delayed by a timer. What am
I missing to get an immediate CANCEL?

Thanks,

Jay

Jay Hogg wrote:

>For some testing I'm doing I want to terminate a dialog on the first
>non-100 message I receive, to accomplish this I put a cis->end() in the
>onNewSession handler for client invite sessions.
>
>When a 18x message is received I see the BYE message generated (when in
>debug) immediately followed by a segment violation.
>
>>From everything I've read on the list I should be able to call end() at
>any time once the dialog is created and the appropriate message will be
>generated/deferred as necessary. I was also surprised to see BYE instead
>of CANCEL since the dialog is not connected.
>
>Linux, svn head, dum/test/BasicCall.cxx - simply add a variable to
>ClientInviteSession and cis->end() to see it. I can provide logs if
>necessary.
>
>Did I miss something in how I should handle an immediate termination?
>
>Jay
>
>
>
>_______________________________________________
>resiprocate-devel mailing list
>resiprocate-devel@xxxxxxxxxxxxxxxxxxxx
>https://list.resiprocate.org/mailman/listinfo/resiprocate-devel
>  
>