Browse code

sbc: b/f: on auth, don't relay processed 401/407 reply to other leg

Stefan Sayer authored on 20/09/2013 09:40:12
Showing 1 changed files
... ...
@@ -548,12 +548,19 @@ void SBCCallLeg::onSipReply(const AmSipRequest& req, const AmSipReply& reply,
548 548
         DBG("uac_auth consumed reply with cseq %d and resent with cseq %d; "
549 549
             "updating relayed_req map\n", reply.cseq, cseq_before);
550 550
         updateUACTransCSeq(reply.cseq, cseq_before);
551
+
552
+	// don't relay to other leg, process in AmSession
553
+	AmSession::onSipReply(req, reply, old_dlg_status);
554
+	// skip presenting reply to ext_cc modules, too
555
+	return;
551 556
       }
552 557
     }
553 558
   }
554 559
 
555 560
   for (vector<ExtendedCCInterface*>::iterator i = cc_ext.begin(); i != cc_ext.end(); ++i) {
556
-    if ((*i)->onInDialogReply(this, reply) == StopProcessing) return;
561
+    if ((*i)->onInDialogReply(this, reply) == StopProcessing) {
562
+      return;
563
+    }
557 564
   }
558 565
 
559 566
   CallLeg::onSipReply(req, reply, old_dlg_status);