[OpenSIPS-Users] mid_registrar load balance
    Alain Bieuzent 
    alain.bieuzent at free.fr
       
    Fri Nov 13 13:19:30 EST 2020
    
    
  
Hi Andy,
 
I’m doing it manually :
 
       if (is_method("REGISTER"))
        {
                fix_nated_contact();
                mid_registrar_save("location");
                switch ($retcode)
                {
                        case 1:
                                if (!cache_fetch("local", "$ci", $avp(IP)))
                                {
                                        avp_db_query("SELECT destination FROM lbsip_sbc_did_3_0.dispatcher where setid = 1 and state = 0 ORDER BY RAND() LIMIT 1", "$avp(IP)");
                                        if ($rc < 0)
                                        {
                                                xlog("L_WARN", "$ci|REGISTER|Mysql query failed or no result, droping call with a 500");
                                                sl_send_reply(500, "internal Server error");
                                                exit;
                                        }
                                        cache_store("local", "$ci", "$avp(IP)", 3600);
                                }
                                else
                                {
                                        $var(IP) = $(avp(IP){uri.host});
                                        if (!ds_is_in_list("$var(IP)",5060,1, ,1))
                                        {
                                                xlog("L_INFO", "$ci|REGISTER|Destination in cache is unreachable forwarding query to another astsipac)");
                                                avp_db_query("SELECT destination FROM lbsip_sbc_did_3_0.dispatcher where setid = 1 and state = 0 ORDER BY RAND() LIMIT 1", "$avp(IP)");
 
                                                if ($rc < 0)
                                                {
                                                        xlog("L_WARN", "$ci|REGISTER|Mysql query failed or no result, droping call with a 500");
                                                        sl_send_reply(500, "internal Server error");
                                                        exit;
                                                }
                                        cache_store("local", "$ci", "$avp(IP)", 3600);
                                        xlog("L_INFO", "$ci|REGISTER|new destination is $avp(IP)");
                                        }
                                }
                                $ru = $avp(IP);
                                xlog("L_INFO", "$ci|forwarding REGISTER from: $ct - $tU:$si to: $ru");
                                cache_store("local", "$ci", "$avp(IP)", 3600);
                                t_relay();
                                break;
 
                        case 2:
                                xlog("L_INFO", "absorbing REGISTER for $tU ");
                                break;
 
                        default:
                                xlog("L_INFO", "failed to save registration for $tU");
                }
 
De : Users <users-bounces at lists.opensips.org> au nom de Andy Kama <andyvoicetek at gmail.com>
Répondre à : OpenSIPS users mailling list <users at lists.opensips.org>
Date : vendredi 13 novembre 2020 à 14:12
À : <users at lists.opensips.org>
Objet : [OpenSIPS-Users] mid_registrar load balance
 
Hi Guys
 
is it possible to load balance with mid_registrar?
perhaps setting multiple $ru in this part
 
               if (is_method("REGISTER")) {
        mid_registrar_save("location");
        switch ($retcode) {
        case 1:
            xlog("forwarding REGISTER to main registrar ($$ci=$ci)\n");
            $ru = "sip:1.2.3.4:5060";
            t_relay();
            break;
        case 2:
            xlog("absorbing REGISTER! ($$ci=$ci)\n");
            break;
        default:
            xlog("failed to save registration! ($$ci=$ci)\n");
        }
        exit;
    }
_______________________________________________ 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/20201113/8c08697c/attachment-0001.html>
    
    
More information about the Users
mailing list