Hi,
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?


Thanks

Kandy
------------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It is the best place to buy or sell services for
just about anything Open Source.
http://p.sf.net/sfu/Xq1LFB
_______________________________________________
Sofia-sip-devel mailing list
Sofia-sip-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sofia-sip-devel

Reply via email to