Volga,
You are trying to use the csv transformation but your data is not
comma-separated. You are using semi-colons. I think you are trying
to remove the semi-colons with the regex and replace them with
commas? I'm not sure what the value of that is, since you could
just use commas to begin with. But even if you had to do it that
way, you would need the regex to do the substitution *before*
trying to access it as a csv. But as I said, easier is to just use
commas to begin with.
#### Cfgutils
loadmodule "cfgutils.so"
modparam("cfgutils", "shvset",
"vip_lan_lst=s:192.168.10.10,192.168.10.11,192.168.10.12")
modparam("cfgutils", "shvset",
"vip_wan_lst=s:209.234.43.2,209.234.43.3,209.234.43.4")
$var(i) = 0;
while($var(i) < $(shv(vip_lan_lst){csv.count})) {
xlog("L_INFO", "Testing SHV ~>
$(shv(vip_lan_lst){csv.value,$var(i)})");
$var(i) = $var(i) + 1;
}
Ben Newlin
On 8/24/18, 9:53 AM, "Users on behalf of volga...@networklab.ca"
<users-boun...@lists.opensips.org on behalf of
volga...@networklab.ca> wrote:
Hello Ben,
I tried this.
#### Cfgutils
loadmodule "cfgutils.so"
modparam("cfgutils", "shvset",
"vip_lan_lst=s:192.168.10.10;192.168.10.11;192.168.10.12")
modparam("cfgutils", "shvset",
"vip_wan_lst=s:209.234.43.2;209.234.43.3;209.234.43.4")
$avp(arr) = $shv(vip_lan_lst);
$var(i) = 0;
while($var(i) < $(avp(arr){csv.count})) {
xlog("L_INFO", "Testing SHV ~>
$(avp(arr){csv.value,$var(i)}{re.subst,/;/,/})");
$var(i) = $var(i) + 1;
}
but it not working output should print each ip in xlog.
volga629
On Fri, Aug 24, 2018 at 9:46 AM, Ben Newlin
<ben.new...@genesys.com>
wrote:
> Volga,
>
> I had recommended using individual variables, but if you want
to use
> a list that will work. I would recommend using transformations
[1] to
> manipulate the list. Depending on what you choose as your
separator
> you can use the csv transformations (","), or the string select
> transformation (any other separator). Technically the
parameter list
> transformation may work but I wouldn't recommend it as it is
> implemented for a SIP parameter list which does have some
reserved
> characters! This got me very recently. (
>
> For shared variables you define them in the modules section of
your
> config file [2], but they can be changed via MI commands, using
> whatever MI method you would like. I use the opensipsctl
script with
> the UDP datagram module [3].
>
> [1] http://www.opensips.org/Documentation/Script-Tran-2-4
> [2]
>
http://www.opensips.org/html/docs/modules/2.4.x/cfgutils.html#idp5923408
> [3]
http://www.opensips.org/html/docs/modules/2.4.x/mi_datagram.html
>
> Ben Newlin
>
> On 8/21/18, 10:20 PM, "Users on behalf of
volga...@networklab.ca"
> <users-boun...@lists.opensips.org on behalf of
> volga...@networklab.ca> wrote:
>
> 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.new...@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, "volga...@networklab.ca"
> > <volga...@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,
volga...@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.new...@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
> > volga...@networklab.ca"
> > >> <users-boun...@lists.opensips.org on behalf of
> > >> volga...@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.new...@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
> > >> volga...@networklab.ca"
> > >> > <users-boun...@lists.opensips.org on behalf
of
> > >> > volga...@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.new...@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
> > >> volga...@networklab.ca"
> > >> > > <users-boun...@lists.opensips.org on
behalf
> of
> > >> > > volga...@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@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
> > >> > <li...@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@MAIN_VIP:5060;transport=udp>\r\n");
> > >> > > > Liviu Chircu
> > >> > > > OpenSIPS Developer
> > >> > > >
http://www.opensips-solutions.com
> > >> > > > On 09.07.2018 07:34,
> volga...@networklab.ca
> > wrote:
> > >> > > >> Hello Everyone,
> > >> > > >>
> > >> > > >> I have work around on this
issue
> > >> > > >> # Work arround for github
issue #1109
> > >> > > >> append_hf("Path:
<sip:$fU@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@lists.opensips.org
> > >> > > >>
> > >>
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> > >> > > >
> > >> > >
> > >> > >
> > >> > >
> _______________________________________________
> > >> > > Users mailing list
> > >> > > Users@lists.opensips.org
> > >> > >
> > >>
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> > >> > >
> > >> > >
> > >> > >
> _______________________________________________
> > >> > > Users mailing list
> > >> > > Users@lists.opensips.org
> > >> > >
> > http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> > >> >
> > >> >
> > >> >
_______________________________________________
> > >> > Users mailing list
> > >> > Users@lists.opensips.org
> > >> >
> > http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> > >> >
> > >> >
> > >> >
_______________________________________________
> > >> > Users mailing list
> > >> > Users@lists.opensips.org
> > >> >
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> > >>
> > >>
> > >>
_______________________________________________
> > >> Users mailing list
> > >> Users@lists.opensips.org
> > >>
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> > >>
> > >>
> > >> _______________________________________________
> > >> Users mailing list
> > >> Users@lists.opensips.org
> > >>
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> > >
> > >
> > > _______________________________________________
> > > Users mailing list
> > > Users@lists.opensips.org
> > >
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> >
> >
> > _______________________________________________
> > Users mailing list
> > Users@lists.opensips.org
> >
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> >
> >
> > _______________________________________________
> > Users mailing list
> > Users@lists.opensips.org
> > http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
> _______________________________________________
> Users mailing list
> Users@lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
> _______________________________________________
> Users mailing list
> Users@lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users