[reSIProcate] OnOffer callback for 200 OK !

Asheesh Joshi asjoshi at varaha.com
Wed Nov 2 22:16:18 CST 2005


Hi Scott,

	Sorry for being a pain. This is the last one.... Again releated to the same 200 OK problem.. but a different scenario...
I am seeing the following behavior with my B2BUA and SIP Client.

	Here is the call flow...  Callbacks of 200 OK are of interest. I have marked them in ( ) along with 200 Oks.

	SIP Client ( Resiprocate )			B2BUA ( Resiprocate )

	--------------------------INVITE Cseq=1------------------------------>

	<--------------------------180 Ringing Cseq=1-----------------------

	<---------------------------200 OK Cseq=1----------------------------
			( OnAnswer, OnConnect )
	-------------------------------ACK Cseq=1----------------------------->


	Now I put the call on HOLD. ( sdp  c= 0.0.0.0 )

	-------------------------------INVITE (hold) Cseq=2----------------->

<---------------------------200 OK Cseq=1----------------------------
			( OnAnswer )
	-------------------------------ACK Cseq=1----------------------------->

<---------------------------200 OK Cseq=2----------------------------
		( OnOffer )

	-------------------------------ACK Cseq=2----------------------------->



	Here in the above trace, the bold sequence in RED is erroneous and should not be present.  I am still investigating why is Sip client
responding that way. However, after the 200 OK arrives with the correct Cseq=2, the DUM gives a callback OnOffer !  

	My question is, is the stack confused because of sending of 200 OK Cseq=1 at the wrong time by Sip Client ?

-best regards
Asheesh.
	
  
-----Original Message-----
From: resiprocate-devel-bounces at list.sipfoundry.org [mailto:resiprocate-devel-bounces at list.sipfoundry.org]On Behalf Of Asheesh Joshi
Sent: Thursday, November 03, 2005 7:53 AM
To: Scott Godin
Cc: 'resiprocate-devel'
Subject: RE: [reSIProcate] How to handle retransmission of 200 OK for anINVITE ?

Hi Scott,

        Thanks for the quick response. If it s ok with you, can you please tell me what fix does this SVN address ? I mean, is that after using this new fix, one will not get a callback for a retransmit of 200 OK if the previous one has been handled? Or is there a different callback?

-best regards
Asheesh.

-----Original Message-----
From: Scott Godin [mailto:slgodin at icescape.com]
Sent: Thursday, November 03, 2005 7:56 AM
To: 'Asheesh Joshi'; 'resiprocate-devel'
Subject: RE: [reSIProcate] How to handle retransmission of 200 OK for an INVITE ?

200 transmissions for Invites only are supposed to be passed to the UAC layer and are not handled by the stack.  There is stuff in 3261 about this.

Eitherway - I just submitted a bug fix for this problem earlier this week.  Can you please try using the latest SVN head?

Thanks,

Scott

-----Original Message-----
From: resiprocate-devel-bounces at list.sipfoundry.org [mailto:resiprocate-devel-bounces at list.sipfoundry.org] On Behalf Of Asheesh Joshi
Sent: Wednesday, November 02, 2005 8:34 PM
To: resiprocate-devel
Subject: [reSIProcate] How to handle retransmission of 200 OK for an INVITE ?

Hi,

        I am facing a problem in resip. The DUM gives me a callback even for a retransmission of 200 OK for an INVITE.
Is it that I have to take care of checking the Cseq in my application and ignore it ?  Shouldn't the Transaction layer itself Reject such a retransmitted 200 OK and not give a callback ?

        Actually I don't see this thing mentioned in the RFC 3261 either!   Is
this a bug in RFC ?

- Regards
Asheesh

-----Original Message-----
From: resiprocate-devel-bounces at list.sipfoundry.org
[mailto:resiprocate-devel-bounces at list.sipfoundry.org]On Behalf Of maodonghu
Sent: Thursday, November 03, 2005 6:54 AM
To: resiprocate-devel
Subject: [reSIProcate] (no subject)

Hi,

I am a fresh man on reSIProcate, now I encounter a problem in my program.
if the program written like this, it is good for work:

//---------------------------------------------------
int _tmain(int argc, _TCHAR* argv[])
{
        //Log::initialize(Log::Cout, Log::Stack, argv[0]);

        SipStack sip_stack;
        DialogUsageManager* dum = new DialogUsageManager( sip_stack );
        dum->addTransport( UDP, 12345 );


but if written like this, it will throw a exception:

//----------------------------------------------------
SipStack sip_stack;
int _tmain(int argc, _TCHAR* argv[])
{
        //Log::initialize(Log::Cout, Log::Stack, argv[0]);


        DialogUsageManager* dum = new DialogUsageManager( sip_stack );
        dum->addTransport( UDP, 12345 );
        ...

I dont know why the sip_stack must be local ?

        maodonghu
        hhmmdd at tom.com
          2005-11-03

_______________________________________________
resiprocate-devel mailing list
resiprocate-devel at list.sipfoundry.org
https://list.sipfoundry.org/mailman/listinfo/resiprocate-devel

_______________________________________________
resiprocate-devel mailing list
resiprocate-devel at list.sipfoundry.org
https://list.sipfoundry.org/mailman/listinfo/resiprocate-devel




More information about the resiprocate-devel mailing list