我需要做sip压测freeswitch,一台服务器ip为192.168.107.83这台服务器上装了sipp,另一台服务器ip为192.168.107.143这台服务器装了freeswitch,压测的时候走5060端口,写一个可以完成压测的脚本
时间: 2024-03-02 22:49:47 浏览: 174
好的,可以使用以下脚本进行 SIP 压测:
```bash
#!/bin/bash
# 设置变量
SERVER_IP=192.168.107.143
SERVER_PORT=5060
CALL_COUNT=1000
CONCURRENT_CALLS=10
# 启动 sipp 进行压测
sipp -sn uac -d 3000 -s 1000 -l $CONCURRENT_CALLS -r $CONCURRENT_CALLS \
-t tn -m $CALL_COUNT -i 192.168.107.83 $SERVER_IP:$SERVER_PORT -trace_msg -trace_err
```
上述脚本中,`SERVER_IP` 为 Freeswitch 服务器的 IP 地址,`SERVER_PORT` 为 SIP 端口,`CALL_COUNT` 为要发起的呼叫数量,`CONCURRENT_CALLS` 为并发呼叫数。
脚本中启动了 sipp 进程,使用 `uac` 模式发起呼叫,同时指定了并发呼叫数、呼叫数量、目标服务器的 IP 和端口,以及指定了输出日志的参数。执行脚本后,sipp 将会模拟多个 SIP 用户同时向 Freeswitch 发起呼叫,进行压力测试。
相关问题
编写一个sip压测freeswitch的脚本,sip,ip为192.168.107.83.freeswitch ip为192.168.107.143
下面是一个针对FreeSWITCH服务器的SIPp压力测试脚本示例,用于模拟多个并发呼叫请求:
```
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE scenario SYSTEM "sipp.dtd">
<scenario name="SIPp Scenario">
<send retrans="500" recv_timeout="2000" timeout="5000">
<![CDATA[
INVITE sip:test@192.168.107.143 SIP/2.0
Via: SIP/2.0/UDP 192.168.107.83:5060;branch=z9hG4bK-1234
From: <sip:caller@test.com>;tag=1234
To: <sip:test@192.168.107.143>
Call-ID: call-1234@192.168.107.83
CSeq: 1 INVITE
Contact: <sip:caller@192.168.107.83:5060>
Content-Type: application/sdp
Content-Length: 150
v=0
o=- 1234 5678 IN IP4 192.168.107.83
s=Test call
c=IN IP4 192.168.107.83
t=0 0
m=audio 10000 RTP/AVP 0
a=rtpmap:0 PCMU/8000
]]>
</send>
<recv response="100" optional="true"/>
<recv response="180" optional="true"/>
<recv response="183" optional="true"/>
<recv response="200"/>
<send>
<![CDATA[
ACK sip:test@192.168.107.143 SIP/2.0
Via: SIP/2.0/UDP 192.168.107.83:5060;branch=z9hG4bK-5678
From: <sip:caller@test.com>;tag=1234
To: <sip:test@192.168.107.143>;tag=5678
Call-ID: call-1234@192.168.107.83
CSeq: 1 ACK
Contact: <sip:caller@192.168.107.83:5060>
Content-Length: 0
]]>
</send>
<pause milliseconds="5000"/>
<send>
<![CDATA[
BYE sip:test@192.168.107.143 SIP/2.0
Via: SIP/2.0/UDP 192.168.107.83:5060;branch=z9hG4bK-4321
From: <sip:caller@test.com>;tag=1234
To: <sip:test@192.168.107.143>;tag=5678
Call-ID: call-1234@192.168.107.83
CSeq: 2 BYE
Contact: <sip:caller@192.168.107.83:5060>
Content-Length: 0
]]>
</send>
<recv response="200"/>
</scenario>
```
在这个脚本中,我们使用SIPp工具来模拟一个SIP终端向FreeSWITCH服务器发送呼叫请求。该脚本使用192.168.107.83作为SIP终端的IP地址,使用192.168.107.143作为FreeSWITCH服务器的IP地址。为了模拟多个并发呼叫请求,您可以使用SIPp的-u参数来指定并发呼叫数。例如,如果要模拟10个并发呼叫请求,您可以使用以下命令:
```
sipp -sf script.xml -s test -m 10 -l 10 -trace_err 192.168.107.143
```
其中,-sf参数指定SIPp脚本文件,-s参数指定SIP终端的SIP地址,-m参数指定最大呼叫数,-l参数指定每秒呼叫数,-trace_err参数用于记录错误日志,最后一个参数为FreeSWITCH服务器的IP地址。
编写一个sip压测freeswitch的脚本
为了编写一个SIP压测FreeSWITCH的脚本,您可以使用SIPp工具。SIPp是一个开源的SIP协议测试和性能评估工具,它可以模拟SIP终端和服务器,生成和接收SIP请求,以及对SIP网络进行压力测试。
下面是一个简单的SIPp脚本示例,用于模拟SIP终端向FreeSWITCH服务器发送呼叫请求:
```
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE scenario SYSTEM "sipp.dtd">
<scenario name="SIPp Scenario">
<send retrans="500">
<![CDATA[
INVITE sip:test@freeswitch-server SIP/2.0
Via: SIP/2.0/UDP 192.168.0.1:5060;branch=z9hG4bK-1234
From: <sip:caller@test.com>;tag=1234
To: <sip:test@freeswitch-server>
Call-ID: call-1234@192.168.0.1
CSeq: 1 INVITE
Contact: <sip:caller@192.168.0.1:5060>
Content-Type: application/sdp
Content-Length: 150
v=0
o=- 1234 5678 IN IP4 192.168.0.1
s=Test call
c=IN IP4 192.168.0.1
t=0 0
m=audio 10000 RTP/AVP 0
a=rtpmap:0 PCMU/8000
]]>
</send>
<recv response="100" optional="true"/>
<recv response="180" optional="true"/>
<recv response="183" optional="true"/>
<recv response="200"/>
<send>
<![CDATA[
ACK sip:test@freeswitch-server SIP/2.0
Via: SIP/2.0/UDP 192.168.0.1:5060;branch=z9hG4bK-5678
From: <sip:caller@test.com>;tag=1234
To: <sip:test@freeswitch-server>;tag=5678
Call-ID: call-1234@192.168.0.1
CSeq: 1 ACK
Contact: <sip:caller@192.168.0.1:5060>
Content-Length: 0
]]>
</send>
<pause milliseconds="5000"/>
<send>
<![CDATA[
BYE sip:test@freeswitch-server SIP/2.0
Via: SIP/2.0/UDP 192.168.0.1:5060;branch=z9hG4bK-4321
From: <sip:caller@test.com>;tag=1234
To: <sip:test@freeswitch-server>;tag=5678
Call-ID: call-1234@192.168.0.1
CSeq: 2 BYE
Contact: <sip:caller@192.168.0.1:5060>
Content-Length: 0
]]>
</send>
<recv response="200"/>
</scenario>
```
该脚本使用SIPp模拟一个基本的SIP呼叫流程,包括发送INVITE请求、接收100、180、183和200响应、发送ACK请求、等待5秒钟
阅读全文