[OpenSIPS-Users] mid_registrar work arround

volga629 at networklab.ca volga629 at networklab.ca
Tue Aug 21 22:19:24 EDT 2018


Hello  Ben,
All what I am trying is introduce $shv(lan_lst) for lan vips and  
$shv(wan_lst) for wan vips, originaly you idea. My issue is how get 
define the list and how to get through all ips in list as example for 
filter

if($Ri==$shv(lan_lst) && $avp(DLG_dir)=="topbx") {

volga629


On Tue, Aug 21, 2018 at 12:46 PM, Ben Newlin <Ben.Newlin at genesys.com> 
wrote:
> Volga,
> 
> I'm still not sure I fully understand, but it sounds like all you 
> really need is a mapping LAN<->WAN for each set of IPs?
> 
> So in the scenario you outlined, when node 1 receives a packet on the 
> LAN interface that was previously on node 2 you want it to send out 
> the WAN for node 2. But if it receives on LAN from node 1, it should 
> send out WAN for node 1. Is this correct?
> 
> Ben Newlin
> 
> On 8/21/18, 11:39 AM, "volga629 at networklab.ca" 
> <volga629 at networklab.ca> wrote:
> 
>     Example right now we have on each node one vip for LAN and one 
> vip for
>     WAN.
>     When failover happened node 1 will hold LAN and WAN vips of node 
> 2. If
>     on node 2 was active registrations they will be relocated to node 
> 1 and
>     source ip will be vip's node 2.
>     The question how to define all the vips internal and external 
> variables
>     like VIP-INT list internal and VIP-EXT list so will be possible
>     dynamically use it in script.
> 
> 
>     volga629
> 
> 
> 
>     On Tue, Aug 21, 2018 at 12:19 PM, volga629 at networklab.ca wrote:
>     > Hello Ben,
>     > The script bellow is to find the way define vips in variable so 
>  if
>     > failover happends on keepalived script can process traffic and 
> set
>     > proper vips (source ip)
>     >
>     > volga629.
>     >
>     > On Tue, Aug 14, 2018 at 4:38 PM, Ben Newlin 
> <Ben.Newlin at genesys.com>
>     > wrote:
>     >> Volga,
>     >>
>     >> I must be misunderstanding. If you are able to determine the 
> correct
>     >> receiving interface in OpenSIPS and you are using the Path 
> header
>     >> to communicate that to the next hop destination, I'm not sure 
> I'm
>     >> clear on what the issue is you are still trying to solve?
>     >>
>     >> Ben Newlin
>     >>
>     >> On 8/14/18, 2:32 PM, "Users on behalf of 
> volga629 at networklab.ca"
>     >> <users-bounces at lists.opensips.org on behalf of
>     >> volga629 at networklab.ca> wrote:
>     >>
>     >>     Hello Ben,
>     >>     Yes, I create logic like this
>     >>
>     >>             if(!has_totag() && is_method("INVITE")) {
>     >>                     create_dialog();
>     >>
>     >>                     if($Ri== vip1 ip addr) {
>     >>                             set_dlg_sharing_tag("vip1");
>     >>                             $avp(vip) = "vip1 ip addr";
>     >>                     } else if($Ri== vip2 ip addr) {
>     >>                             set_dlg_sharing_tag("vip2");
>     >>                             $avp(vip) = "vip2 ip addr";
>     >>                     } else if($Ri == vip3 ip addr) {
>     >>                             set_dlg_sharing_tag("vip3");
>     >>                             $avp(vip) = "vip3 ip addr";
>     >>                     }
>     >>             }
>     >>
>     >>     not sure if this correct approach. In theory $avp(vip) can 
> be
>     >> used for
>     >>     rtpengine or other operation require correct ip in body, 
> but
>     >> issue that
>     >>     call flow, because INVITE come from external interface 
> first
>     >> then it
>     >>     forwarded to LAN via dipatcher.
>     >>
>     >>
>     >>     volg629
>     >>
>     >>
>     >>     On Tue, Aug 14, 2018 at 2:51 PM, Ben Newlin
>     >> <Ben.Newlin at genesys.com>
>     >>     wrote:
>     >>     > Volga,
>     >>     >
>     >>     > Sorry, I didn't fully understand your scenario. Even 
> though
>     >> you said
>     >>     > it was active/active, I was assuming an active/standby
>     >> scenario where
>     >>     > only 1 IP would be active on a box at a time. I don't 
> think
>     >> this
>     >>     > approach would work for the scenario you are describing.
>     >>     >
>     >>     > Is there some reason you can't have each box listen on 
> all 3
>     >> IPs all
>     >>     > the time? Then from within the script you can use $Ri 
> [1] to
>     >>     > determine which interface received the message.
>     >>     >
>     >>     > [1] -
>     >> http://www.opensips.org/Documentation/Script-CoreVar-2-3#toc77
>     >>     >
>     >>     > Ben Newlin
>     >>     >
>     >>     > On 8/14/18, 1:39 PM, "Users on behalf of
>     >> volga629 at networklab.ca"
>     >>     > <users-bounces at lists.opensips.org on behalf of
>     >>     > volga629 at networklab.ca> wrote:
>     >>     >
>     >>     >     Hello Ben,
>     >>     >     Do you mean for this
>     >>     >
>     >>     >     modparam("cfgutils", "varset", "init=i:1")
>     >>     >     modparam("cfgutils", "varset",
>     >>     > "gw=s:sip:11.11.11.11;transport=tcp")
>     >>     >
>     >>     >     or this
>     >>     >
>     >>     >     modparam("cfgutils", "shvset", "debug=i:1")
>     >>     >     modparam("cfgutils", "shvset", 
> "pstngw=s:sip:10.10.10.10")
>     >>     >
>     >>     >     in my case will be something like
>     >>     >
>     >>     >
>     >>     >     modparam("cfgutils", "shvset", 
> "vip1=s:192.168.10.100")
>     >>     >     modparam("cfgutils", "shvset", 
> "vip2=s:192.168.10.101")
>     >>     >     modparam("cfgutils", "shvset", 
> "vip3=s:192.168.10.102")
>     >>     >
>     >>     >     If vip relocated to antother node meaning on live 
> node 1
>     >> will be
>     >>     > two
>     >>     >     vip's ( example node 3 fail then it relocate ip 
> address to
>     >> node 1)
>     >>     >     How I can determine which  vip ip address should be 
> in use.
>     >>     >
>     >>     >     volg629
>     >>     >
>     >>     >
>     >>     >     On Thu, Aug 2, 2018 at 9:44 PM, Ben Newlin
>     >>     > <Ben.Newlin at genesys.com>
>     >>     >     wrote:
>     >>     >     > M4 will process the file before OpenSIPS runs and 
> will
>     >> not be
>     >>     >     > changeable at runtime. It sounds like that will 
> not work
>     >> for
>     >>     > you if I
>     >>     >     > am understanding properly.
>     >>     >     >
>     >>     >     > My first thought would be to use the shared 
> variables
>     >> from
>     >>     > CFGUTILS
>     >>     >     > [1]. They can be accessed from inside the script, 
> but
>     >> can also
>     >>     > be set
>     >>     >     > via MI. So when your monitor detects a failure and
>     >> switches the
>     >>     > IPs,
>     >>     >     > it could also use MI to change the value of the 
> variable
>     >> in
>     >>     > OpenSIPS
>     >>     >     > for future use.
>     >>     >     >
>     >>     >     > As a side note to OpenSIPS devs, it appears this 
> module
>     >> was
>     >>     > missed
>     >>     >     > when the Module Index page [2] was redesigned as I 
> can't
>     >> find it
>     >>     >     > there for 2.x, but the direct links to the 2.x 
> versions
>     >> still
>     >>     > work.
>     >>     >     >
>     >>     >     > [1]
>     >>     > 
> http://www.opensips.org/html/docs/modules/2.4.x/cfgutils.html
>     >>     >     > [2] 
> http://www.opensips.org/Documentation/Modules-2-4
>     >>     >     >
>     >>     >     > Ben Newlin
>     >>     >     >
>     >>     >     > On 8/2/18, 5:56 PM, "Users on behalf of
>     >> volga629 at networklab.ca"
>     >>     >     > <users-bounces at lists.opensips.org on behalf of
>     >>     >     > volga629 at networklab.ca> wrote:
>     >>     >     >
>     >>     >     >     Hello Liviu,
>     >>     >     >     Yes, that correct.  Right now each node in 
> cluster
>     >> have own
>     >>     > vip
>     >>     >     > from
>     >>     >     >     keepalived on LAN side.
>     >>     >     >     The issue how to specify correct vip in case of
>     >> failover,
>     >>     > so if
>     >>     >     > node 2
>     >>     >     >     fail and node 2 vip was relocated to node 1. 
> All
>     >> sessions
>     >>     > should
>     >>     >     > be
>     >>     >     >     process on node 1 and
>     >>     >     >     append_hf("Path:
>     >>     > <sip:$fU at MAIN_VIP:5060;transport=udp>\r\n");
>     >>     >     > should
>     >>     >     >     have correct ip's.  Same with rtpengine offer
>     >>     >     >     rtpengine_offer("replace-origin
>     >> replace-session-connection
>     >>     >     >     in-iface=external out-iface=internal
>     >>     >     > media-address=$avp(media_addr)
>     >>     >     >     RTP/AVP ICE=remove") where need introduce
>     >> media-address to
>     >>     > specify
>     >>     >     >     correct vip ip.
>     >>     >     >     Can you exapand on m4 ? I never used the 
> templating.
>     >>     >     >     Might db avp  to predefine  cluster nodes vip 
> ip,
>     >> not sure.
>     >>     >     >
>     >>     >     >
>     >>     >     >     volga629
>     >>     >     >
>     >>     >     >
>     >>     >     >
>     >>     >     >     On Thu, Aug 2, 2018 at 10:50 AM, Liviu Chircu
>     >>     > <liviu at opensips.org>
>     >>     >     >     wrote:
>     >>     >     >     > Hi Volga,
>     >>     >     >     >
>     >>     >     >     > If I understood your problem correctly, one 
> idea
>     >> would be
>     >>     > to
>     >>     >     > use m4
>     >>     >     >     > over opensips.cfg and define a different 
> MAIN_VIP
>     >>     > variable for
>     >>     >     > each
>     >>     >     >     > of your three servers:
>     >>     >     >     >
>     >>     >     >     > append_hf("Path:
>     >>     > <sip:$fU at MAIN_VIP:5060;transport=udp>\r\n");
>     >>     >     >     >  Liviu Chircu
>     >>     >     >     > OpenSIPS Developer
>     >>     >     >     > http://www.opensips-solutions.com
>     >>     >     >     > On 09.07.2018 07:34, volga629 at networklab.ca 
> wrote:
>     >>     >     >     >> Hello Everyone,
>     >>     >     >     >>
>     >>     >     >     >> I have work around on this issue
>     >>     >     >     >> # Work arround for github issue #1109
>     >>     >     >     >> append_hf("Path: <sip:$fU at listen
>     >>     > ip:5060;transport=udp>\r\n"
>     >>     >     >     >>
>     >>     >     >     >>
>     >>     >     >     >> Right now we use 3 node cluster with 3 vips 
> in
>     >>     > active/active
>     >>     >     > mode
>     >>     >     >     >> I need some idea how to determine path 
> header
>     >> listen ip
>     >>     >     > address from
>     >>     >     >     >> 3 vips.
>     >>     >     >     >>
>     >>     >     >     >>
>     >>     >     >     >> volga629
>     >>     >     >     >>
>     >>     >     >     >>
>     >>     >     >     >>
>     >>     >     >     >>
>     >>     >     >     >> 
> _______________________________________________
>     >>     >     >     >> Users mailing list
>     >>     >     >     >> Users at lists.opensips.org
>     >>     >     >     >>
>     >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>     >>     >     >     >
>     >>     >     >
>     >>     >     >
>     >>     >     >     _______________________________________________
>     >>     >     >     Users mailing list
>     >>     >     >     Users at lists.opensips.org
>     >>     >     >
>     >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>     >>     >     >
>     >>     >     >
>     >>     >     > _______________________________________________
>     >>     >     > Users mailing list
>     >>     >     > Users at lists.opensips.org
>     >>     >     > 
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>     >>     >
>     >>     >
>     >>     >     _______________________________________________
>     >>     >     Users mailing list
>     >>     >     Users at lists.opensips.org
>     >>     >     
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>     >>     >
>     >>     >
>     >>     > _______________________________________________
>     >>     > Users mailing list
>     >>     > Users at lists.opensips.org
>     >>     > http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>     >>
>     >>
>     >>     _______________________________________________
>     >>     Users mailing list
>     >>     Users at lists.opensips.org
>     >>     http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>     >>
>     >>
>     >> _______________________________________________
>     >> Users mailing list
>     >> Users at lists.opensips.org
>     >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>     >
>     >
>     > _______________________________________________
>     > Users mailing list
>     > Users at lists.opensips.org
>     > http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> 
> 
>     _______________________________________________
>     Users mailing list
>     Users at lists.opensips.org
>     http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> 
> 
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users




More information about the Users mailing list