[OpenSIPS-Users] mid_registrar work arround
volga629 at networklab.ca
volga629 at networklab.ca
Fri Aug 24 12:52:26 EDT 2018
Hello Ben,
Thank you, that works. I though as final soultion some think like this,
not sure if possibe do in more optimized way.
route[SET_SOURCE_IP] {
$var(i) = 0;
while($var(i) < $(var(ip_lst){csv.count})) {
if($Ri==$(var(ip_lst){csv.value,$var(i)})) {
#xlog("L_INFO", "Testing SHV ~>
$(var(ip_lst){csv.value,$var(i)})");
$var(src_ip) = $(var(ip_lst){csv.value,$var(i)});
$var(i) = $var(i) + 1;
}
return;
}
route[RELAY] {
route(RTP_MANAGE);
if(isflagset(FLAG_FROM_PEER)) {
$var(ip_lst) = $shv(vip_lan_lst);
route(SET_SOURCE_IP);
$var(src_socket) = "udp" + ":" + $var(src_ip) + ":" +
"5060";
force_send_socket($var(src_socket));
} else {
$var(ip_lst) = $shv(vip_wan_lst);
route(SET_SOURCE_IP);
$var(src_socket) = "udp" + ":" + $var(src_ip) + ":" +
"5060";
force_send_socket($var(src_socket));
}
t_relay();
}
volga629
On Fri, Aug 24, 2018 at 11:28 AM, Ben Newlin <Ben.Newlin at genesys.com>
wrote:
> 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 volga629 at networklab.ca"
> <users-bounces at lists.opensips.org on behalf of
> volga629 at 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.Newlin at 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
> volga629 at networklab.ca"
> > <users-bounces at lists.opensips.org on behalf of
> > volga629 at 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.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
> >
> >
> > _______________________________________________
> > 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