• generate the call load file


    #!/usr/bin/perl -w


    $e911_call_percent = 0.0;
    $ims_node_number = 12;
    $local_ip = "10.86.52.2";
    $local_port_base = 18000;
    $media_port_base = 19000;


    $SIPP_BIN="/home/lss/QCBCb/bin/sipp";
    $SCRIPT_DIR="../xml";
    $DATA_DIR="./data";


    $ue_dn_base = 6460000000;
    $pstn_dn_base = 8460000000;


    $u2u_num = 2450;
    $u2u_cps = 12.36;
    $u2p_num = $u2u_num * 2;
    $u2p_cps = $u2u_cps * 2;
    $p2u_num = $u2u_num * 2;
    $p2u_cps = $u2u_cps * 2;
    $reg_num = 96450;
    $reg_rps = 30.88;


    $total_sub_one_ims = 130000;


    $domain = "qcbcb.qd.lucentlab.com";
    $passwd = "newsys";
    $local_zone = "qcbcb.qd.lucentlab.com";
    $icsf_gul = "icsf-stdn";


    $ip_first_byte = 40;


    @remote_publish_ip_port =
    (
        "135.251.158.17:5060",
        "135.251.158.18:5060",
        "135.251.158.19:5060",
        "135.251.158.20:5060",
        "135.251.158.21:5060",
        "135.251.158.22:5060",
        "135.251.158.23:5060",
        "135.251.158.24:5060",
        "135.251.158.25:5060",
        "135.251.158.26:5060",
        "135.251.158.27:5060",
        "135.251.158.28:5060",
    );


    @remote_default_ip_port =
    (
        "135.251.158.17:5060",
        "135.251.158.18:5060",
        "135.251.158.19:5060",
        "135.251.158.20:5060",
        "135.251.158.21:5060",
        "135.251.158.22:5060",
        "135.251.158.23:5060",
        "135.251.158.24:5060",
        "135.251.158.25:5060",
        "135.251.158.26:5060",
        "135.251.158.27:5060",
        "135.251.158.28:5060",
    );


    $ue_reg_script = "$SCRIPT_DIR/UAS/uas_reg_97k.xml";
    $ue_uac_reg_script = "$SCRIPT_DIR/UAC/uac_reg_SNCalls";
    $ue_uac_call_script = "$SCRIPT_DIR/UAC/uac";
    $ue_uas_reg_script = "$SCRIPT_DIR/UAS/uas_reg_SNCalls";
    $ue_uas_call_script = "$SCRIPT_DIR/UAS/uas";
    $mgcf_uac_script = "$SCRIPT_DIR/MGCF/mgcf-uac.xml";
    $mgcf_uas_script = "$SCRIPT_DIR/MGCF/mgcf-uas.xml";


    sub gen_data_file
    {
            my($dir, $filename, $caller_start, $callee_start, $num, $IP1, $IP2) = @_;
            print "$dir, $filename, $caller_start, $callee_start, $num, $IP1, $IP2 ";


            if($num <= 0)
            {
                    printf "skip data file generation ";
                    return;
            mkdir "$dir/data";


            open(FD, "> $dir/data/${filename}_datafile");
            print FD "SEQUENTIAL ";
            print FD "# USER;  AUTHENTICATION; local Port; Media Port ";


            my $generate_e911 = 0;
            if($e911_call_percent != 0 && $filename =~ /uepstn/)
            {
                    printf "UE2PSTN, and generate e911 number is enabled ";
                    $generate_e911 = 1;
            }
            for (my $i = 0; $i < $num; $i++)
                    $callee = $callee_start + $i;
                    $port = $i + 1;


                    $x = int($i / 256 / 256);


                    if($generate_e911 == 1)
                    {
                            my $rand = rand(10000);
                                    $callee = 911;
                            }
                    }
            }
            close (FD);
    }
    {
            my($pool, $dir) = @_;


            my $lu_dn_base = $ue_dn_base + $pool*$total_sub_one_ims;
            my $lp_dn_base = $pstn_dn_base + $pool*$total_sub_one_ims;


            my $caller_start = $lu_dn_base;
            my $callee_start = $lu_dn_base + $u2u_num;
            $ip_first_byte += 2;


            $caller_start = $lu_dn_base + $u2u_num*2;
            $callee_start = $lp_dn_base + $u2u_num*2;
            $ip_first_byte += 2;


            $caller_start = $lp_dn_base + $u2u_num*2 + $u2p_num;
            $ip_first_byte += 2;


            open (FD, "> $dir/data/mgcf_p2u_data.orig");
            printf FD ("SEQUENTIAL,PRINTF=%d,PRINTFOFFSET=%d ", $p2u_num, $callee_start%10000000);
            printf FD ("1%d%%0.7d;%s;%s;%s", ($ue_dn_base/10000000), $domain, $local_zone, $icsf_gul);
            close (FD);


            $callee_start = $lu_dn_base + $u2u_num*2 + $u2p_num + $p2u_num;
            $ip_first_byte += 1;
    }


    sub gen_cmd_one_grp_tp1
    {
            my($pool, $dir) = @_;


            $REMOTE_PUBLISH_IP = $remote_publish_ip_port[$pool];
            $REMOTE_DEFAULT_IP = $remote_default_ip_port[$pool];
            $LOCAL_IP = $local_ip;
            print "gen_cmd_one_grp: $REMOTE_PUBLISH_IP/$REMOTE_DEFAULT_IP ";


            $REG_UAS_PORT = $local_port_base + $pool*10 + 7;


            $REG_RPS = $reg_rps;
            $REG_LMT = $reg_num;


            $U2U_ORIG_MEDIA_PORT = $media_port_base;
            $U2U_TERM_MEDIA_PORT = $media_port_base + 5;
            $U2P_ORIG_MEDIA_PORT = $media_port_base + 10;
            $U2P_TERM_MEDIA_PORT = $media_port_base + 15;
            {
                    open (FD, ">$dir/ueueorig");
                    print FD "sleep $1 ";
                    close (FD);


                    open (FD, ">$dir/ueueterm");
                    print FD "sleep $1 ";
                    close (FD);
            }
                    close (FD);


                    close (FD);
            }


            if($P2U_CPS * $P2U_MAX > 0)
            {
                    open (FD, ">$dir/mgcf_p2u_uac");
                    print FD "sleep $1 ";
                    close (FD);


                    open (FD, ">$dir/pstnueterm");
                    print FD "sleep $1 ";
                    close (FD);
            }


            if($REG_RPS * $REG_LMT > 0)
            {
                    open (FD, ">$dir/regs");
                    print FD "sleep $1 ";
                    close (FD);
            }


            open (FD, ">$dir/autorun");
            $term_offset = ($pool%2)*600;
            print FD 'gnome-terminal --geometry=' . "80x46+$term_offset+0" . '
            --tab --title=u2u_term --working-directory=`pwd` -e "./ueueterm 0"
            --tab --title=p2u_term --working-directory=`pwd` -e "./pstnueterm 0"
            --tab --title=u2p_term --working-directory=`pwd` -e "./mgcf_u2p_uas 0"
            --tab --title=u2u_orig --working-directory=`pwd` -e "./ueueorig 300"
            --tab --title=p2u_orig --working-directory=`pwd` -e "./mgcf_p2u_uac 300"
            --tab --title=u2p_orig --working-directory=`pwd` -e "./uepstnorig 300"
            --tab --title=reg --working-directory=`pwd` -e "./regs 300"';
            close (FD);


            system ("chmod 755 $dir/*");
    }


    sub gen_sipp_one_grp
    {
            my($pool) = @_;


            $dir = sprintf "grp%03d", $pool;
            printf " >>> generate sipp for ims pool $pool now... ";
            mkdir $dir;


            gen_datafile_one_grp_tp1($pool, $dir);
            gen_cmd_one_grp_tp1($pool, $dir);
    }


    for(my $pool=0; $pool<$ims_node_number; $pool++)
    {
            gen_sipp_one_grp $pool;
    }


    print "Done! ";
  • 相关阅读:
    C#线程的IsBackgroud属性动态设置
    asp.net 异步
    IBM一些Java文章
    (一)Apollo配置中心介绍
    样式表中的 element.style样式如何修改
    jquery中的append和js原生中的innerhtml的区别
    如何在datagrid中的column获取json数据
    快速排序
    冒泡排序
    二进制中有多少个1?
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/6940993.html
Copyright © 2020-2023  润新知