[OpenSIPS-Users] Active-Pasive Dialog Replication
Social Boh
social at bohboh.info
Fri Mar 13 17:55:46 EST 2020
Hello,
I'm using Keealived for configuration:
OpensSIPs1 IP 1.2.3.4
OpenSIPs2 IP 5.6.7.8
Virtual IP: 10.11.12.13
OpenSIPs1:
*keepalived.conf*
vrrp_script check_sip {
*script "/etc/keepalived/node01.sh"*
interval 3
fall 2
rise 2
}
vrrp_instance VI_OS {
state MASTER
interface eth0
virtual_router_id 1
advert_int 1
*notify /etc/keepalived/opensips.sh*
virtual_ipaddress {
10.11.12.13 dev eth0
}
track_script {
check_sip
}
}
each time there is a change in the servers status, keepalived ejecute
opensips.sh script
*node01.sh*
#!/bin/bash
node01=1.2.3.4
node02=5.6.7.8
*return_code=0*
timeout 2 sipsak -s sip:$node01:5060
exit_status=$?
if [[ $exit_status -eq 0 ]]; then
echo "sip ping successful to node01 [$node01]"
exit $return_code
fi
timeout 2 sipsak -s sip:$node02:5060
exit_status=$?
if [[ $exit_status -eq 0 ]]; then
echo "sip ping successful to node02 [$node02]"
return_code=1
fi
echo "return code [$return_code]"
exit $return_code
*opensips.sh*
#!/bin/bash
TYPE=$1
NAME=$2
STATE=$3
case $STATE in
"MASTER") /usr/sbin/opensipsctl fifo dlg_set_sharing_tag_active vip
/usr/sbin/opensipsctl fifo nh_enable_ping 1
exit 0
;;
"BACKUP") /usr/sbin/opensipsctl fifo dlg_list_sharing_tags
/usr/sbin/opensipsctl fifo nh_enable_ping 0
exit 0
;;
"FAULT") /usr/sbin/opensipsctl fifo dlg_list_sharing_tags
/usr/sbin/opensipsctl fifo nh_enable_ping 0
exit 0
;;
*) echo "unknown state"
exit 1
;;
esac
in this file I move the sharing tag and pinging NAT in the MASTER status
and remove in BAKCUP and FAULT status
OpenSIPs2:
*keepalived.conf*
vrrp_script check_sip {
script "/etc/keepalived/node02.sh"
interval 3
fall 2
rise 2
}
vrrp_instance VI_OS {
state BACKUP
interface eth0
virtual_router_id 1
advert_int 1
notify /etc/keepalived/opensips.sh
virtual_ipaddress {
10.11.12.13 dev eth0
}
track_script {
check_sip
}
}
*node02.sh*
#!/bin/bash
node01=1.2.3.4
node02=5.6.7.8
*return_code=1*
timeout 2 sipsak -s sip:$node01:5060
exit_status=$?
if [[ $exit_status -eq 0 ]]; then
echo "sip ping successful to node01 [$node01]"
exit $return_code
fi
timeout 2 sipsak -s sip:$node02:5060
exit_status=$?
if [[ $exit_status -eq 0 ]]; then
echo "sip ping successful to node02 [$node02]"
return_code=0
fi
echo "return code [$return_code]"
exit $return_code
*opensips.sh*
#!/bin/bash
TYPE=$1
NAME=$2
STATE=$3
case $STATE in
"MASTER") /usr/sbin/opensipsctl fifo dlg_set_sharing_tag_active vip
/usr/sbin/opensipsctl fifo nh_enable_ping 1
exit 0
;;
"BACKUP") /usr/sbin/opensipsctl fifo dlg_list_sharing_tags
/usr/sbin/opensipsctl fifo nh_enable_ping 0
exit 0
;;
"FAULT") /usr/sbin/opensipsctl fifo dlg_list_sharing_tags
/usr/sbin/opensipsctl fifo nh_enable_ping 0
exit 0
;;
*) echo "unknown state"
exit 1
;;
esac
Then you have to install sipsak and change your iptables configuration.
opensips.cfg
OpenSIPs1:
listen=udp:1.2.3.4:5060
listen=udp:10.11.12.13:5060
#### DIALOG module
loadmodule "dialog.so"
modparam("dialog", "dlg_match_mode", 1)
modparam("dialog", "default_timeout", 21600)
modparam("dialog", "db_mode", 0)
modparam("dialog", "dlg_sharing_tag", "vip=active")
modparam("dialog", "dialog_replication_cluster", 3)
modparam("dialog", "db_url","mysql://opensips:password@localhost/opensips")
if (is_method("INVITE")) {
route(AUTH);
create_dialog();
set_dlg_sharing_tag("vip");
do_accounting("db","cdr");
if (isbflagset(NAT)) setflag(NAT);
}
OpenSIPs2:
listen=udp:5.6.7.8:5060
listen=udp:10.11.12.13:5060
#### DIALOG module
loadmodule "dialog.so"
modparam("dialog", "dlg_match_mode", 1)
modparam("dialog", "default_timeout", 21600)
modparam("dialog", "db_mode", 0)
modparam("dialog", "dlg_sharing_tag", "vip=backup")
modparam("dialog", "dialog_replication_cluster", 3)
modparam("dialog", "db_url","mysql://opensips:password@localhost/opensips")
same INVITE block
https://blog.voipxswitch.com/2017/12/26/kamailio-high-availability-using-keepalived/
Regards
---
I'm SoCIaL, MayBe
El 13/03/2020 a las 12:20, Sharad Kumar via Users escribió:
> Hi,
>
> Can you show us that how you are creating dialogs ? and where are you
> setting your sharing tag, like this -
>
> set_dlg_sharing_tag("vip");
>
> Thank you
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20200313/18123ca9/attachment.html>
More information about the Users
mailing list