Hello Alex and Daniel,

Thank you for your answers.

This happened when a client had some network problems and couldn't received my packets. The problem is that after some time and the transaction is dead,since Kamailio does a new dispatcher, my accounting system counts this as two calls and that's the behaviour i want to avoid.
Since in this case the client has network issues and won't probably get the SIP replies, i don't think raising the timers will be very helpfull.

Also, i already use Dialog module for other functionalities so i don't think there's a need to go to hash tables. 

Thanks for the help.

A terça, 12/05/2020, 17:15, Duarte Rocha <duarterocha91@gmail.com> escreveu:
Greetings, 

I have an issue where a client doesn't get the responses to the INVITE sent and as such keeps sending me retransmissions of the INVITE.

While the transaction is still up, Kamailio does its job. However, when the transaction is closed Kamailio processes the request again as a first request (Doing Routing and Dispatcher operations again).

In order to avoid the issue i've made the following code : 

    // If it's the first INVITE
 if( is_method("INVITE") && !has_totag() )
 {
  if(t_check_trans()) {
            xnotice("TRANS - INVITE Retransmission"); 
        }
        else if ( is_known_dlg()) { 
            xerr("KamTAG: INVITE in dialog without To Tag "); 
            exit;
        }
    }    
    
Is this a good solution and still compliant with the SIP rules?

Best Regards