[OpenSIPS-Users] mid_registrar work arround

volga629 at networklab.ca volga629 at networklab.ca
Tue Aug 21 11:38:25 EDT 2018


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




More information about the Users mailing list