https://sipp.sourceforge.net/doc/uac.xml.html
这个 uac.xml 有没有问题呢?
有!
问题之一是:
<recv response="200" rtd="true" rrs="true">
要加 rrs, 仔细看注释就能看到
问题之二是:
ACK sip:[service]@[remote_ip]:[remote_port] SIP/2.0
这是不对的,应该是 ACK [next_url] SIP/2.0
问题之三还是 ACK 发的不对,要加 [routes] 头
还有,encoding 配置为 UTF-8 更好,这样可以增加中文注释
至于为什么,多看看自然就知道了
附完整的 uac.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE scenario SYSTEM "sipp.dtd"><!-- This program is free software; you can redistribute it and/or      -->
<!-- modify it under the terms of the GNU General Public License as     -->
<!-- published by the Free Software Foundation; either version 2 of the -->
<!-- License, or (at your option) any later version.                    -->
<!--                                                                    -->
<!-- This program is distributed in the hope that it will be useful,    -->
<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of     -->
<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the      -->
<!-- GNU General Public License for more details.                       -->
<!--                                                                    -->
<!-- You should have received a copy of the GNU General Public License  -->
<!-- along with this program; if not, write to the                      -->
<!-- Free Software Foundation, Inc.,                                    -->
<!-- 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA             -->
<!--                                                                    -->
<!--                 Sipp default 'uac' scenario.                       -->
<!--                                                                    --><scenario name="Basic Sipstone UAC"><!-- In client mode (sipp placing calls), the Call-ID MUST be         --><!-- generated by sipp. To do so, use [call_id] keyword.                --><send retrans="500"><![CDATA[INVITE sip:[service]@[remote_ip]:[remote_port] SIP/2.0Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[call_number]To: sut <sip:[service]@[remote_ip]:[remote_port]>Call-ID: [call_id]CSeq: 1 INVITEContact: sip:sipp@[local_ip]:[local_port]Max-Forwards: 70Subject: Performance TestContent-Type: application/sdpContent-Length: [len]v=0o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]s=-c=IN IP[media_ip_type] [media_ip]t=0 0m=audio [media_port] RTP/AVP 0a=rtpmap:0 PCMU/8000]]></send><recv response="100"optional="true"></recv><recv response="180" optional="true"></recv><!-- By adding rrs="true" (Record Route Sets), the route sets         --><!-- are saved and used for following messages sent. Useful to test   --><!-- against stateful SIP proxies/B2BUAs.                             --><recv response="200" rtd="true" rrs="true"></recv><!-- Packet lost can be simulated in any send/recv message by         --><!-- by adding the 'lost = "10"'. Value can be [1-100] percent.       --><send><![CDATA[ACK sip:[next_url] SIP/2.0Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[call_number]To: sut <sip:[service]@[remote_ip]:[remote_port]>[peer_tag_param]Call-ID: [call_id]CSeq: 1 ACK[routes]Contact: sip:sipp@[local_ip]:[local_port]Max-Forwards: 70Subject: Performance TestContent-Length: 0]]></send><!-- This delay can be customized by the -d command-line option       --><!-- or by adding a 'milliseconds = "value"' option here.             --><pause/><!-- The 'crlf' option inserts a blank line in the statistics report. --><send retrans="500"><![CDATA[BYE sip:[service]@[remote_ip]:[remote_port] SIP/2.0Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[call_number]To: sut <sip:[service]@[remote_ip]:[remote_port]>[peer_tag_param]Call-ID: [call_id]CSeq: 2 BYEContact: sip:sipp@[local_ip]:[local_port]Max-Forwards: 70Subject: Performance TestContent-Length: 0]]></send><recv response="200" crlf="true"></recv><!-- definition of the response time repartition table (unit is ms)   --><ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/><!-- definition of the call length repartition table (unit is ms)     --><CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/></scenario>