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
