i didn't find any means in ivr or non-sbc dsm script to prevent whole
b2b call from terminating if callee responses with one of the codes
listed in AmBasicSipDialog::onRxReplyStatus function.

so i went and reverted back to the old behavior by the enclosed patch.
so far all my sems apps have worked fine with the patched version.

by the way, for some reason the above mentioned function returns bool
value although it is always true.  perhaps it should be fixed to return
void value instead.

-- juha

*** /usr/src/orig/sems/core/AmSipDialog.cpp     Wed Dec 10 11:26:44 2014
--- core/AmSipDialog.cpp        Wed Dec 10 13:08:34 2014
***************
*** 435,451 ****
      oa.onReplyIn(reply);
    }
  
-   bool cont = true;
    if( (reply.code >= 200) && (reply.code < 300) &&
        (reply.cseq_method == SIP_METH_INVITE) ) {
  
      if(hdl) ((AmSipDialogEventHandler*)hdl)->onInvite2xx(reply);
  
    } else {
!     cont = AmBasicSipDialog::onRxReplyStatus(reply);
    }
  
!   return cont && rel100.onReplyIn(reply);
  }
    
  void AmSipDialog::uasTimeout(AmSipTimeoutEvent* to_ev)
--- 435,454 ----
      oa.onReplyIn(reply);
    }
  
    if( (reply.code >= 200) && (reply.code < 300) &&
        (reply.cseq_method == SIP_METH_INVITE) ) {
  
      if(hdl) ((AmSipDialogEventHandler*)hdl)->onInvite2xx(reply);
  
    } else {
!     if (status == Connected) {
!       (void)AmBasicSipDialog::onRxReplyStatus(reply);
!     } else {
!       DBG("Skipping call of AmBasicSipDialog::onRxReplyStatus\n");
!     }
    }
  
!   return rel100.onReplyIn(reply);
  }
    
  void AmSipDialog::uasTimeout(AmSipTimeoutEvent* to_ev)
_______________________________________________
Semsdev mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/semsdev

Reply via email to