SIPp常用脚本之二:UAS
看名字就能猜出来,这是作为SIP消息服务端的存在,启动uas,等着接受SIP消息并且给出响应。
一、uas.xml
<?xml version="2.0" encoding="ISO-8859-1" ?> <!DOCTYPE scenario SYSTEM "sipp.dtd"> <scenario name="Basic UAS responder"> <recv request="INVITE" crlf="true"> </recv> <send> <![CDATA[ SIP/2.0 180 Ringing [last_Via:] [last_From:] [last_To:];tag=[call_number] [last_Call-ID:] [last_CSeq:] Contact: <sip:[local_ip]:[local_port];transport=[transport]> Content-Length: 0 ]]> </send> <send retrans="500"> <![CDATA[ SIP/2.0 200 OK [last_Via:] [last_From:] [last_To:];tag=[call_number] [last_Call-ID:] [last_CSeq:] Contact: <sip:[local_ip]:[local_port];transport=[transport]> Content-Type: application/sdp Content-Length: [len] v=0 o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip] s=- c=IN IP[media_ip_type] [media_ip] t=0 0 m=audio [media_port] RTP/AVP 0 a=rtpmap:0 PCMU/8000 ]]> </send> <recv request="ACK" optional="true" rtd="true" crlf="true"> </recv> <recv request="BYE"> </recv> <send> <![CDATA[ SIP/2.0 200 OK [last_Via:] [last_From:] [last_To:] [last_Call-ID:] [last_CSeq:] Contact: <sip:[local_ip]:[local_port];transport=[transport]> Content-Length: 0 ]]> </send> <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/> <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/> </scenario>
二、uas.sh
1. 以TCP方式启动服务
./sipp -sf uas.xml -i 本地服务器地址 -p 本地服务器端口 -m 500 业务服务器地址:端口 -t tn -max_socket 1024
2. 以UDP方式启动服务
./sipp -sf uas.xml -i 本地服务器地址 -p 本地服务器端口 -m 500 业务服务器地址:端口
三、一个小说明
-m 500的意思是,接受500条起始SIP消息后,自动终止运行,给出统计报告。
上善若水,水利万物而不争。