Module: sems
Branch: master
Commit: 49e592d16f2b2e94145d01315edc27d82cd5ca49
URL:    
http://git.sip-router.org/cgi-bin/gitweb.cgi/sems/?a=commit;h=49e592d16f2b2e94145d01315edc27d82cd5ca49

Author: Stefan Sayer <[email protected]>
Committer: Stefan Sayer <[email protected]>
Date:   Sat Dec 21 20:41:06 2013 +0100

sbc:dsm: outbound_interface for addCallee new call mode

---

 apps/dsm/mods/mod_sbc/ModSbc.cpp         |    6 ++++++
 apps/sbc/SBCCallProfile.cpp              |    6 ++++++
 apps/sbc/SBCCallProfile.h                |    2 ++
 apps/sbc/call_control/dsm/SBCDSMParams.h |    2 ++
 doc/dsm/dsm_sbc_syntax.txt               |    3 +--
 5 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/apps/dsm/mods/mod_sbc/ModSbc.cpp b/apps/dsm/mods/mod_sbc/ModSbc.cpp
index 474397c..f63582d 100644
--- a/apps/dsm/mods/mod_sbc/ModSbc.cpp
+++ b/apps/dsm/mods/mod_sbc/ModSbc.cpp
@@ -468,6 +468,12 @@ EXEC_ACTION_START(MODSBCActionAddCallee) {
     if (it != sc_sess->var.end())
       p.next_hop_fixed = (it->second == DSM_TRUE);
 
+    it = sc_sess->var.find(varname+"." 
DSM_SBC_PARAM_ADDCALLEE_OUTBOUND_INTERFACE);
+    if (it != sc_sess->var.end()) {
+      p.outbound_interface = it->second;
+      p.evaluateOutboundInterface();
+    }
+
     sbc_call_leg->addCallee(peer, hdrs);
   } else if (mode == DSM_SBC_PARAM_ADDCALLEE_MODE_LTAG) {
     string ltag;
diff --git a/apps/sbc/SBCCallProfile.cpp b/apps/sbc/SBCCallProfile.cpp
index cc79114..ec6b41e 100644
--- a/apps/sbc/SBCCallProfile.cpp
+++ b/apps/sbc/SBCCallProfile.cpp
@@ -833,6 +833,12 @@ bool SBCCallProfile::evaluate(ParamReplacerCtx& ctx,
   return true;
 }
 
+
+bool SBCCallProfile::evaluateOutboundInterface() {
+  REPLACE_IFACE_SIP(outbound_interface, outbound_interface_value);
+  return true;
+}
+
 bool SBCCallProfile::evaluateRTPRelayInterface() {
   EVALUATE_IFACE_RTP(rtprelay_interface, rtprelay_interface_value);
   return true;
diff --git a/apps/sbc/SBCCallProfile.h b/apps/sbc/SBCCallProfile.h
index 8d35383..d3ecd02 100644
--- a/apps/sbc/SBCCallProfile.h
+++ b/apps/sbc/SBCCallProfile.h
@@ -228,6 +228,8 @@ struct SBCCallProfile
     
     bool evaluate(ParamReplacerCtx& ctx, const AmSipRequest& req);
 
+    bool evaluateOutboundInterface();
+
     bool readConfig(AmConfigReader &cfg);
     void infoPrint() const;
     bool operator==(const TranscoderSettings& rhs) const;
diff --git a/apps/sbc/call_control/dsm/SBCDSMParams.h 
b/apps/sbc/call_control/dsm/SBCDSMParams.h
index e298b98..5e1ac2f 100644
--- a/apps/sbc/call_control/dsm/SBCDSMParams.h
+++ b/apps/sbc/call_control/dsm/SBCDSMParams.h
@@ -22,6 +22,8 @@
 #define DSM_SBC_PARAM_ADDCALLEE_NEXT_HOP_1ST_REQ "next_hop_1st_req"
 #define DSM_SBC_PARAM_ADDCALLEE_NEXT_HOP_PATCH_RURI "next_hop_patch_ruri"
 #define DSM_SBC_PARAM_ADDCALLEE_NEXT_HOP_FIXED      "next_hop_fixed"
+#define DSM_SBC_PARAM_ADDCALLEE_OUTBOUND_INTERFACE "outbound_interface"
+
 
 #define DSM_SBC_PARAM_ADDCALLEE_RTP_MODE       "rtp_mode"
 #define DSM_SBC_PARAM_ADDCALLEE_TRANSPARENT_DLG_ID "transparent_dlg_id"
diff --git a/doc/dsm/dsm_sbc_syntax.txt b/doc/dsm/dsm_sbc_syntax.txt
index d9fdb35..28c0da9 100644
--- a/doc/dsm/dsm_sbc_syntax.txt
+++ b/doc/dsm/dsm_sbc_syntax.txt
@@ -208,8 +208,7 @@ sbc.addCallee(string mode, string varname)
          $varname.next_hop_fixed      - fixed next hop
 
          $varname.outbound_proxy - outbound proxy in new call
-         $varname.outbound_proxy - outbound proxy in new call
-         $varname.outbound_proxy - outbound proxy in new call
+         $varname.outbound_interface - outbound interface used for new call
 
          $varname.transparent_dlg_id - "yes" or "no": use transparent dlg IDs 
for new call; default no
                                         - "no" very much advised if current 
leg was connected before!

_______________________________________________
Semsdev mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/semsdev

Reply via email to