2009/1/11 liu yang <yangliu....@gmail.com>: > I have a special scenario which could be described by following sequence > diagram. > Brief explanation is to delay SDP in ACK for reinvite session update. > > /* we hack here to get through following reinvite scenario */ > /* > * A B > * |<--session active (call_state_ready)-->| > * |-------reInvite ( w/o SDP )----------->| > * |-------200OK ( w/ SDP )--------------->| > * |<-------ACK( w/SDP )------------------>| > * > * Current prevents SDP answer being attached with ACK to reInvite > 200OK. > * Because as you can see, our call already stay in active state, > subsequent > * SOA action won't be executed in this case. > * This is a typical scenario for call bridging. > */ > > I am using 1.12.9. Delving into the code, I figured out related lines. See > below. > > if (ss == NULL || ss->ss_state > =nua_callstate_ready) > ; > else if (cr->cr_offer_recv && !cr->cr_answer_sent) { > if (nh->nh_soa == NULL) { > if (session_get_description(sip, NULL, NULL)) > cr->cr_answer_sent = 1, ss->ss_oa_sent = Answer; > } > > The logic is , in function nua_invite_client_ack(), session state is > inspected to check whether soa offer/answer > should be performed. Original code is, > if (ss == NULL || ss->ss_state >= nua_callstate_ready); > > We can see, above code means, for active call, if we want to update session > capability in outgoing ACK as an SDP answer, we will get ACK without SDP. > > My suggestion is to make this 'if' statement more open ( > ss_state>nua_callstate_eady). I verified this proposal, it worked as > expected. > Actually this is a typical call flow of consultant call transfer ( briging > ). > > What's your guys' comment? Does such tiny tweak bring in other unexpected > impact which is beyond my understanding?
This looks like a bug, the intention is to avoid sending answer in ACK and signaling error if the o/a is incomplete when call is already being terminated. Thanks for catching this. -- Pekka.Pessi mail at nokia.com ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ Sofia-sip-devel mailing list Sofia-sip-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sofia-sip-devel