Kathy,

I have mailed you the logs directly. The dev list seems to have an upper
limit on the message size.

Arjun.

-----Original Message-----
From: keccles [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, May 14, 2008 2:26 PM
To: Nair, Arjun (CAR:9D30)
Cc: sipx-dev
Subject: Re: [sipX-dev] SipUserAgent ACK retransmission

Can you send me the log files?
-Kathy

On Wed, 2008-05-14 at 14:13 -0400, Arjun Nair wrote:
> Hello,
> 
> I am using the sipXcallLibs and sipXtacklibs in sipXecs (through
> sipXtapi) to implement a basic user agent. Everything is working fine 
> (making calls, receiving calls, register etc.), except, there seems to

> be an issue with retransmissions of "ACK"s for duplicate "200 OK"
> responses to an "INVITE", i.e.
> 
>              INVITE
> sipxUA ----------------------> UA2
>              200 OK
> sipxUA <---------------------- UA2
>               ACK
> sipxUA ----------------------> UA2
>              200 OK
> sipxUA <---------------------- UA2
>              200 OK
> sipxUA <---------------------- UA2
>              200 OK
> sipxUA <---------------------- UA2
> 
> 
> Has anyone else come across this? Is this a known issue?
> 
> Looking through the code:
> 
> On receiving a duplicate "200 OK", SipTransaction::handleChildIncoming
> is called with the messageRelationship - MESSAGE_DUPLICATE, and the 
> response code is parsed correctly as a 200 OK. At this point, the 
> method checks the "mpAck" attribute of this SipTransaction object, to 
> resend the ACK. However, it is found to be NULL and I get this 
> error/warning in the logs - "SipTransaction::handleChildIncoming 
> duplicate 2xx response received on UAC for INVITE with no ACK". I can 
> printf and see that the other attributes - mpRequest, 
> mpLastProvisionalResponse, mpLastFinalResponse, are set up correctly.
> 
> Going back and looking at where the original ACK was send from, I can 
> see that the SipTransactionList::findTransactionFor matches the 
> outgoing ACK message as "MESSAGE_2XX_ACK_PROXY". Manually, forcing 
> this match to "MESSAGE_2XX_ACK" sets up the "mpAck" correctly, hence 
> solving the retransmission issues.
> 
> ** sipXtackLib/src/net/SipTransactionList.cpp **
> 
>    5135    if (mIsServerTransaction)
>    5136    {
>    5137        SET_RELATIONSHIP(MESSAGE_2XX_ACK);
>    5138    }
>    5139    else
>    5140    {
>    5141 #ifdef TEST_PRINT
>    5142        OsSysLog::add(FAC_SIP, PRI_DEBUG,
>                              "SipTransaction::whatRelation ACK PROXY 
> is REQUEST");
>    5143 #endif
>    5144        SET_RELATIONSHIP(MESSAGE_2XX_ACK_PROXY);
>    5145    }
> 
> So, as far as I can tell, the "mIsServerTransaction" is being setup 
> incorrectly for some reason. What is the purpose of 
> "mIsServerTransaction"? When acting as a basic user agent setting up a

> call, is it correct for the "mIsServerTransaction" to be false?
> 
> 
> Or, maybe I am missing something fundamental here?
> 
> 
> Thanks,
> 
> Arjun.
> 
> _______________________________________________
> sipx-dev mailing list
> [email protected]
> List Archive: http://list.sipfoundry.org/archive/sipx-dev
> Unsubscribe: http://list.sipfoundry.org/mailman/listinfo/sipx-dev

_______________________________________________
sipx-dev mailing list
[email protected]
List Archive: http://list.sipfoundry.org/archive/sipx-dev
Unsubscribe: http://list.sipfoundry.org/mailman/listinfo/sipx-dev

Reply via email to