Hi Anthony, 

It is not a retransmission, the CSEQ is much higher and the branch is different. It is actually another transaction. The CSEQ of the first INVITE is 103, the second INVITE is something bigger than 400000.  The biggest issue here for us is not receiving the BYE. We had built a mechanism in the proxy to send a BYE if not receiving the ACK in 5 seconds, but the ACK for the REINVITE disables it. We will change the mechanism to accept only the ACK for the first transaction, but anyway, I believe FS should have sent the BYE. If this can be fixed (if actually is broken), it would help to eliminate many billing issues when late negotiation is involved and the client stops answering (caused by network failures or client overload). 

Best regards, 


Flavio E. Goncalves
CTO - SipPulse Routing and Billing Solutions for SIP
Phone: +55 48-3025-8590, +1 248-688-0960
VoIP: SIP:flavio@opensips.org,Skype:flaviogoncalves1
Linkedin: www.linkedin.com/in/flavioegoncalves
Twitter: www.twitter.com/asteriskguide



2013/5/24 Anthony Minessale <anthony.minessale@gmail.com>
Its probably not a re-invite but a retransmission of the same one because it never got the response.

That RFC is trying to say you can't send another invite while you are waiting for a reply to the current one but you can send other things like info.  The problem is when one side sends invite and the other end replies but the sender does not get that reply, they will keep sending the invite until it gives up.  


On Thu, May 23, 2013 at 3:38 PM, Flavio Goncalves <flavio@voffice.com.br> wrote:
Hello, 

I'm having a really strange issue on billing related to late negotiation. The call end up hanged with no BYE.  

There is a dialer sending thousands of calls through and OpenSIPS to a termination based on FreeSwitch. I have a SIP call flow as below. Some times during the day, when the volume is high, the UAC drops some 200Ok  and FS send a reinvite in the middle of the Initial transaction.

----INVITE ---------------   Proxy --INVITE ---------------> FS
<----200 OK --------------   Proxy <---200 OK- ------------- FS
<--REINVITE---------------   Proxy <-REINVITE--------------- FS  
---481 leg does not exit->   Proxy ---481------------------> FS
<-- ACK (REINVITE)--------   Proxy <-ACK(REINVITE)---------- FS
----CANCEL --------------->  Proxy ---CANCEL --------------> FS 
<---200 Ok ----------------  Proxy <----200 Ok ------------- FS

FS is sending a reinvite before ACK comes from the client.

I have two questions:

1) Is it valid to send a reinvite in the middle of an existing transaction?

According to the RFC3261 Section 14. 

Note that a UAC MUST NOT initiate a new INVITE transaction within a
dialog while another INVITE transaction is in progress in either
direction.

1. If there is an ongoing INVITE client transaction, the TU MUST
   wait until the transaction reaches the completed or terminated
   state before initiating the new INVITE.

2. If there is an ongoing INVITE server transaction, the TU MUST
wait until the transaction reaches the confirmed or terminated
state before initiating the new INVITE.

But it is confusing because just below it says the opposite. 

However, a UA MAY initiate a regular transaction while an INVITE
transaction is in progress.  A UA MAY also initiate an INVITE
transaction while a regular transaction is in progress.

2. Shouldn't FS send a BYE after sending a 200Ok and not receiving the ACK?

If a UAS generates a 2xx response and never receives an ACK, it
SHOULD generate a BYE to terminate the dialog.

Best regards, 

Flavio E. Goncalves


_________________________________________________________________________
Professional FreeSWITCH Consulting Services:
consulting@freeswitch.org
http://www.freeswitchsolutions.com

FreeSWITCH-powered IP PBX: The CudaTel Communication Server
http://www.cudatel.com

Official FreeSWITCH Sites
http://www.freeswitch.org
http://wiki.freeswitch.org
http://www.cluecon.com

FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org




--
Anthony Minessale II

FreeSWITCH http://www.freeswitch.org/
ClueCon http://www.cluecon.com/
Twitter: http://twitter.com/FreeSWITCH_wire

AIM: anthm
MSN:anthony_minessale@hotmail.com
GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com
IRC: irc.freenode.net #freeswitch

FreeSWITCH Developer Conference
sip:888@conference.freeswitch.org
googletalk:conf+888@conference.freeswitch.org
pstn:+19193869900

_________________________________________________________________________
Professional FreeSWITCH Consulting Services:
consulting@freeswitch.org
http://www.freeswitchsolutions.com

FreeSWITCH-powered IP PBX: The CudaTel Communication Server
http://www.cudatel.com

Official FreeSWITCH Sites
http://www.freeswitch.org
http://wiki.freeswitch.org
http://www.cluecon.com

FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org