Asterisk 压力测试各种坑

1. SSLSocket

SSLContext context;

javax.net.ssl.SSLSocketFactory factory = null;

context = SSLContext.getInstance("TLS");

context.init(nullnew TrustManager[] { tm }, new SecureRandom());

factory = context.getSocketFactory();

SSLSocket sslSocket = (SSLSocket) factory.createSocket(serverAddress, serverPort);


2.MD5

private static String MD5(String sourceStr) {

        String result = "";

        try {

            MessageDigest md = MessageDigest.getInstance("MD5");

            md.update(sourceStr.getBytes());

            byte b[] = md.digest();

            int i;

            StringBuffer buf = new StringBuffer("");

            for (int offset = 0; offset < b.length; offset++) {

                i = b[offset];

                if (i < 0)

                    i += 256;

                if (i < 16)

                    buf.append("0");

                buf.append(Integer.toHexString(i));

            }

            result = buf.toString();

        } catch (NoSuchAlgorithmException e) {

            //System.out.println(e);

        }

        return result;

    }



3.校验

String uri = "sip:"+MainClass.serverAddress+":"+MainClass.serverPort+"";

String str1 = name + ":" + realm + ":" + pwd;

String hash1 = MD5(str1);


String str2 = "REGISTER:" + uri;

String hash2 = MD5(str2);


String str3 = hash1 + ":" + nonce + ":" + hash2;

String hash3 = MD5(str3);


4.最大的坑啊 printWrite输入的行后面带的回车符是\n, 而Astisk要求的是\r\n, 坑了我整整一天!!!!

PrintWriter pw = new PrintWriter(new OutputStreamWriter(sslSocket.getOutputStream()));

String xx = "REGISTER sip:" + MainClass.serverAddress + ":"+MainClass.serverPort+" SIP/2.0\r\n";

xx+="Via: SIP/2.0/TLS " + address + ":" + port + ";alias;branch=z9hG4bKhfYKNAg7r7;rport\r\n";

xx+="From: <sip:" + name + "@" + MainClass.serverAddress + ">;tag=uXpl3fxe1G\r\n";

xx+="To: sip:" + name + "@" + MainClass.serverAddress+"\r\n";

xx+="CSeq: "+(time+1)+" REGISTER\r\n";

xx+="Call-ID: awf"+name.hashCode()+"KT\r\n";

xx+="Max-Forwards: 70\r\n";

xx+="Supported: replaces, outbound\r\n";

xx+="Accept: application/sdp\r\n";

xx+="Accept: text/plain\r\n";

//xx+="Accept: application/vnd.gsma.rcs-ft-http+xml");

xx+="Contact: <sip:" + name + "@" + address + ":" + port + ";transport=tls>;+sip.instance=\"<urn:uuid:aa11ae5c-b87c-44d8-8bb2-ae04c1" + name + ">\"\r\n";

xx+="Expires: 660\r\n";

xx+="User-Agent: Justek/1.0 (belle-sip/1.4.2)\r\n";

xx+="Content-Length: 0\r\n";

xx+="Authorization: Digest realm=\"" + realm + "\", nonce=\"" + nonce

+ "\", algorithm=MD5, username=\"" + name + "\", uri=\"" + uri + "\", response=\""

+ hash3 + "\"\r\n\r\n";

pw.write(xx);

pw.flush();





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值