Juha Heinanen writes:
> There was two commits to AmOffer.cpp by you in November:
>
> http://git.sip-router.org/cgi-bin/gitweb.cgi?p=sems;a=commitdiff;h=ced657404e04879aa3af3e09d5d7316d4dfc8aac
>
> http://git.sip-router.org/cgi-bin/gitweb.cgi?p=sems;a=commitdiff;h=2c1668471ee91ccab92da63d26dc1f96b3bf3acb
>
> Would it be possible that they affected processing of 200 ok when 183
> was received earlier? Now it appears that 200 ok does not anymore start
> a session if 183 was received before it.
i reverted those two, but it didn't help. i got session started in the
case when 200 ok (with sdp) is received after earlier 183 (with sdp) by
commenting lines out from AmOfferAnswer.cpp:
int AmOfferAnswer::onReplyIn(const AmSipReply& reply) {
const char* err_txt = NULL;
int err_code = 0;
if((reply.cseq_method == SIP_METH_INVITE ||
reply.cseq_method == SIP_METH_UPDATE ||
reply.cseq_method == SIP_METH_PRACK) &&
!reply.body.empty() ) {
const AmMimeBody* sdp_body = reply.body.hasContentType(SIP_APPLICATION_SDP);
if(sdp_body) {
/* if(((state == OA_Completed) ||
(state == OA_OfferRecved)) &&
(reply.cseq == cseq)) {
DBG("ignoring subsequent SDP reply within the same transaction\n");
DBG("this usually happens when 183 and 200 have SDP\n");
}
else {
*/
saveState();
err_code = onRxSdp(reply.cseq,reply.body,&err_txt);
checkStateChange();
/* } */
}
}
that is saveState(); ... is always executed if SDP has body.
most likely that is not correct hack but at least it avoids the 200 ok
being totally ignored as it currently is. perhaps a correct fix would
be just to ignore the sdp of 200 ok, not the whole 200 ok.
i would appreciate if someone who has a glue would properly fix this
problem.
-- juha
_______________________________________________
Semsdev mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/semsdev