Hi, using Sofia 1.12.11 We have the following flow
UAC UAS ------------------> INVITE <------------------ 183 rel -------------------> PRACK <------------------- 200OK <------------------- 200 OK (different To tag to 183 above) -------------------> ACK -------------------> BYE On the 200 OK to the Invite, if it has different To tag to the 183 Sofia thinks its orphan 200 final response and discards. This is the code that causes this. This only happens when PRACK is involved. If the INVITE is sent without support for 100 rel all is ok if (orq->orq_destroyed && 200 <= status && status < 300) { if (orq->orq_uas && su_strcasecmp(sip->sip_to->a_tag, orq->orq_tag) != 0) { /* Orphan 200 Ok to INVITE. ACK and BYE it */ SU_DEBUG_5(("nta: Orphan 200 Ok send ACK&BYE\n")); return nta_msg_ackbye(sa, msg); } return -1; /* Proxy statelessly (RFC3261 section 16.11) */ } It looks like the orq_destroyed bit is set which is causing this. Is the fork of the 200OK not regarded as existing INVITE transaction. Any pointers to help solve this most appreciated. Thanks ------------------------------------------------------------------------------ All of the data generated in your IT infrastructure is seriously valuable. Why? It contains a definitive record of application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-d2d-c2 _______________________________________________ Sofia-sip-devel mailing list Sofia-sip-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sofia-sip-devel