[SR-Users] Asterisk re-INVITE race condition, error 500.

David K kamailio.org at spam.lublink.net
Mon Jun 3 21:23:00 CEST 2013


Hello all,

So I have three machines, we don't care about audio for this problem, so 
everything I mention here is SIP related.

Freeswitch <--> Kamailio 3.3.2 <--> Asterisk

1. Asterisk sends an INVITE to Freeswitch through the Kamailio proxy.
2. Kamailio replies 100 Trying and forwards to Freeswitch
3. Freeswitch replies 100 Trying
4. Freeswitch replies 180 Ringing to Kamailio
5. Kamailio routes the answer to Asterisk
6. Freeswitch replies 200 OK to Kamailio
7. Kamailio replies 200 OK to Asterisk
8. Asterisk replies ACK to Kamailio
9. Asterisk sends a re-INVITE to Freeswitch through Kamailio
10. Kamailio routes the re-INVITE to freeswitch
11. Kamailio routes the ACK to freeswitch.
12. Freeswitch replies 500 Server error because it got a re-INVITE 
before the ACK.

So, my problem is that Kamailio seems to process my re-INVITE more 
quickly than the ACK. So Freeswitch replies an error because it got the 
re-INVITE before the ACK.

So my "solution" is to add a usleep(20); for re-INVITEs on Kamailio, but 
I think this is a lousy solution.

Has anyone here had to deal with problems where Kamailio routes a 
re-INVITE faster than an ACK causing endpoints to return error 
messages?  Has anyone had to deal with a similar issue?

Thanks,

David





More information about the sr-users mailing list