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

Re: [reSIProcate] What is status of first InviteSessionHandle ifonNewSession(ClientInviteSessionHandle) fires a second time?


Right h_To of course.  : )
 
I'll commit to HEAD for now.
 
Scott


From: Kobi Eshun [mailto:kobi@xxxxxxxxxxxxxx]
Sent: Wed 11/29/2006 5:28 PM
To: resiprocate-devel@xxxxxxxxxxxxxxxxxxxx
Cc: Scott Godin
Subject: Re: [reSIProcate] What is status of first InviteSessionHandle ifonNewSession(ClientInviteSessionHandle) fires a second time?

Thanks for the prompt answers, Scott.

This fix works, except I had to test against 'h_To' instead of 'h_From.'

Will this make it's way into STABLE, or just HEAD? Cheers,
--
kobi


On Nov 29, 2006, at 1:49 PM, Scott Godin wrote:

Try changing line the if statement on line 700 of DialogSet to read:
 
 

if (dialog == 0)
{
  
if (msg.isRequest() && msg.header(h_RequestLine).method() == CANCEL)
  {
      dispatchToAllDialogs(msg);
     
return;
   }

   if (msg.isResponse())
  
{
      
int code = msg.header(h_StatusLine).statusCode();
     
if (code > 100 && code < 200 &&
          (!msg.exists(h_Contacts) || 
           
!msg.exists(h_From) || !msg.header(h_From).exists(p_tag)))
      {
         InfoLog ( << "Cannot create a dialog, no Contact or To tag in 1xx." );

...

Let me know if that fixes the problem for you.  If it looks good, I'll commit to SVN.
 
Scott

From: resiprocate-devel-bounces@xxxxxxxxxxxxxxxxxxxx on behalf of Kobi Eshun
Sent: Wed 11/29/2006 1:20 PM
To: resiprocate-devel@xxxxxxxxxxxxxxxxxxxx
Subject: [reSIProcate] What is status of first InviteSessionHandle ifonNewSession(ClientInviteSessionHandle) fires a second time?

Hi,

Please consider the following scenario:

- my reSIP app sends out INVITE, and receives a 18x response that has no To tag
- onNewSession(ClientInviteSessionHandle cis, ...) UAC callback fires
- my app caches CIS, and also caches InviteSessionHandle learned via CIS->getSessionHandle()
- my app receives 200 response with a To tag
- onNewSession() fires again with different  ClientInviteSession and InviteSession handles.

Leaving aside for the moment  the question of whether the far-end behavior is 3261 compliant:

Q1 - what should my app do with the first set of handles - are they simply obsoleted?
Q2 - Is it an error to continue using them?
Q3 - How do they get cleaned up?

Thanks,
--
Kobi Eshun
Senior Architect, SightSpeed, Inc.
918 Parker Street, Suite A14
Berkeley, CA 94710
+1.415.713.8431 (m)
+1.510.649.9569 (f)